mirror of
https://github.com/meshtastic/firmware.git
synced 2025-06-09 14:42:05 +00:00
Moved refactored prefs
This commit is contained in:
parent
6a8724213e
commit
163774bb1f
2
proto
2
proto
@ -1 +1 @@
|
|||||||
Subproject commit 6c790cef4c500f02773986726e48d45d4a218b5d
|
Subproject commit d02d7131a20210a18f12a87a327753e1e34b4282
|
@ -35,6 +35,7 @@ NodeDB nodeDB;
|
|||||||
EXT_RAM_ATTR DeviceState devicestate;
|
EXT_RAM_ATTR DeviceState devicestate;
|
||||||
MyNodeInfo &myNodeInfo = devicestate.my_node;
|
MyNodeInfo &myNodeInfo = devicestate.my_node;
|
||||||
RadioConfig radioConfig;
|
RadioConfig radioConfig;
|
||||||
|
Config config;
|
||||||
ChannelFile channelFile;
|
ChannelFile channelFile;
|
||||||
|
|
||||||
/** The current change # for radio settings. Starts at 0 on boot and any time the radio settings
|
/** The current change # for radio settings. Starts at 0 on boot and any time the radio settings
|
||||||
|
@ -12,6 +12,7 @@ extern DeviceState devicestate;
|
|||||||
extern ChannelFile channelFile;
|
extern ChannelFile channelFile;
|
||||||
extern MyNodeInfo &myNodeInfo;
|
extern MyNodeInfo &myNodeInfo;
|
||||||
extern RadioConfig radioConfig;
|
extern RadioConfig radioConfig;
|
||||||
|
extern Config config;
|
||||||
extern User &owner;
|
extern User &owner;
|
||||||
|
|
||||||
/// Given a node, return how many seconds in the past (vs now) that we last heard from it
|
/// Given a node, return how many seconds in the past (vs now) that we last heard from it
|
||||||
@ -161,13 +162,17 @@ extern NodeDB nodeDB;
|
|||||||
|
|
||||||
#define IF_ROUTER(routerVal, normalVal) ((radioConfig.preferences.role == Role_Router) ? (routerVal) : (normalVal))
|
#define IF_ROUTER(routerVal, normalVal) ((radioConfig.preferences.role == Role_Router) ? (routerVal) : (normalVal))
|
||||||
|
|
||||||
|
#define default_broadcast_interval_secs IF_ROUTER(12 * 60 * 60, 15 * 60)
|
||||||
|
|
||||||
|
inline uint32_t getIntervalOrDefaultMs(uint32_t interval) {
|
||||||
|
if (interval > 0) return interval * 1000;
|
||||||
|
return default_broadcast_interval_secs * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
#define PREF_GET(name, defaultVal) \
|
#define PREF_GET(name, defaultVal) \
|
||||||
inline uint32_t getPref_##name() { return radioConfig.preferences.name ? radioConfig.preferences.name : (defaultVal); }
|
inline uint32_t getPref_##name() { return radioConfig.preferences.name ? radioConfig.preferences.name : (defaultVal); }
|
||||||
|
|
||||||
PREF_GET(position_broadcast_secs, IF_ROUTER(12 * 60 * 60, 15 * 60))
|
PREF_GET(position_broadcast_secs, IF_ROUTER(12 * 60 * 60, 15 * 60))
|
||||||
// Defaulting Telemetry to the same as position interval for now
|
|
||||||
PREF_GET(telemetry_module_device_update_interval, IF_ROUTER(12 * 60 * 60, 15 * 60))
|
|
||||||
PREF_GET(telemetry_module_environment_update_interval, IF_ROUTER(12 * 60 * 60, 15 * 60))
|
|
||||||
|
|
||||||
|
|
||||||
// Each time we wake into the DARK state allow 1 minute to send and receive BLE packets to the phone
|
// Each time we wake into the DARK state allow 1 minute to send and receive BLE packets to the phone
|
||||||
|
@ -10,3 +10,4 @@ PB_BIND(AdminMessage, AdminMessage, 2)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -165,7 +165,7 @@ extern const pb_msgdesc_t AdminMessage_msg;
|
|||||||
/* Maximum encoded size of messages (where known) */
|
/* Maximum encoded size of messages (where known) */
|
||||||
#if defined(Config_size)
|
#if defined(Config_size)
|
||||||
#define AdminMessage_size (0 + sizeof(union AdminMessage_variant_size_union))
|
#define AdminMessage_size (0 + sizeof(union AdminMessage_variant_size_union))
|
||||||
union AdminMessage_variant_size_union {char f0[598]; char f11[(6 + Config_size)];};
|
union AdminMessage_variant_size_union {char f11[(6 + Config_size)]; char f0[551];};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#ifndef PB_CONFIG_PB_H_INCLUDED
|
#ifndef PB_CONFIG_PB_H_INCLUDED
|
||||||
#define PB_CONFIG_PB_H_INCLUDED
|
#define PB_CONFIG_PB_H_INCLUDED
|
||||||
#include <pb.h>
|
#include <pb.h>
|
||||||
|
#include "telemetry.pb.h"
|
||||||
|
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
#error Regenerate this file with the current version of nanopb generator.
|
#error Regenerate this file with the current version of nanopb generator.
|
||||||
@ -50,14 +51,28 @@ typedef struct _Config_ModuleConfig_StoreForwardConfig {
|
|||||||
char dummy_field;
|
char dummy_field;
|
||||||
} Config_ModuleConfig_StoreForwardConfig;
|
} Config_ModuleConfig_StoreForwardConfig;
|
||||||
|
|
||||||
typedef struct _Config_ModuleConfig_TelemetryConfig {
|
|
||||||
char dummy_field;
|
|
||||||
} Config_ModuleConfig_TelemetryConfig;
|
|
||||||
|
|
||||||
typedef struct _Config_PowerConfig {
|
typedef struct _Config_PowerConfig {
|
||||||
char dummy_field;
|
char dummy_field;
|
||||||
} Config_PowerConfig;
|
} Config_PowerConfig;
|
||||||
|
|
||||||
|
typedef struct _Config_ModuleConfig_TelemetryConfig {
|
||||||
|
uint32_t device_update_interval;
|
||||||
|
uint32_t environment_update_interval;
|
||||||
|
bool environment_measurement_enabled;
|
||||||
|
bool environment_screen_enabled;
|
||||||
|
uint32_t environment_read_error_count_threshold;
|
||||||
|
uint32_t environment_recovery_interval;
|
||||||
|
bool environment_display_fahrenheit;
|
||||||
|
TelemetrySensorType environment_sensor_type;
|
||||||
|
uint32_t environment_sensor_pin;
|
||||||
|
} Config_ModuleConfig_TelemetryConfig;
|
||||||
|
|
||||||
|
typedef struct _Config_WiFiConfig {
|
||||||
|
pb_callback_t wifi_ssid;
|
||||||
|
pb_callback_t wifi_password;
|
||||||
|
bool wifi_ap_mode;
|
||||||
|
} Config_WiFiConfig;
|
||||||
|
|
||||||
typedef struct _Config_ModuleConfig {
|
typedef struct _Config_ModuleConfig {
|
||||||
pb_size_t which_payloadVariant;
|
pb_size_t which_payloadVariant;
|
||||||
union {
|
union {
|
||||||
@ -71,12 +86,6 @@ typedef struct _Config_ModuleConfig {
|
|||||||
} payloadVariant;
|
} payloadVariant;
|
||||||
} Config_ModuleConfig;
|
} Config_ModuleConfig;
|
||||||
|
|
||||||
typedef struct _Config_WiFiConfig {
|
|
||||||
pb_callback_t wifi_ssid;
|
|
||||||
pb_callback_t wifi_password;
|
|
||||||
bool wifi_ap_mode;
|
|
||||||
} Config_WiFiConfig;
|
|
||||||
|
|
||||||
typedef struct _Config {
|
typedef struct _Config {
|
||||||
/* TODO: REPLACE */
|
/* TODO: REPLACE */
|
||||||
pb_size_t which_payloadVariant;
|
pb_size_t which_payloadVariant;
|
||||||
@ -110,7 +119,7 @@ extern "C" {
|
|||||||
#define Config_ModuleConfig_ExternalNotificationConfig_init_default {0}
|
#define Config_ModuleConfig_ExternalNotificationConfig_init_default {0}
|
||||||
#define Config_ModuleConfig_StoreForwardConfig_init_default {0}
|
#define Config_ModuleConfig_StoreForwardConfig_init_default {0}
|
||||||
#define Config_ModuleConfig_RangeTestConfig_init_default {0}
|
#define Config_ModuleConfig_RangeTestConfig_init_default {0}
|
||||||
#define Config_ModuleConfig_TelemetryConfig_init_default {0}
|
#define Config_ModuleConfig_TelemetryConfig_init_default {0, 0, 0, 0, 0, 0, 0, _TelemetrySensorType_MIN, 0}
|
||||||
#define Config_ModuleConfig_CannedMessageConfig_init_default {0}
|
#define Config_ModuleConfig_CannedMessageConfig_init_default {0}
|
||||||
#define Config_init_zero {0, {Config_DeviceConfig_init_zero}}
|
#define Config_init_zero {0, {Config_DeviceConfig_init_zero}}
|
||||||
#define Config_DeviceConfig_init_zero {0}
|
#define Config_DeviceConfig_init_zero {0}
|
||||||
@ -125,10 +134,22 @@ extern "C" {
|
|||||||
#define Config_ModuleConfig_ExternalNotificationConfig_init_zero {0}
|
#define Config_ModuleConfig_ExternalNotificationConfig_init_zero {0}
|
||||||
#define Config_ModuleConfig_StoreForwardConfig_init_zero {0}
|
#define Config_ModuleConfig_StoreForwardConfig_init_zero {0}
|
||||||
#define Config_ModuleConfig_RangeTestConfig_init_zero {0}
|
#define Config_ModuleConfig_RangeTestConfig_init_zero {0}
|
||||||
#define Config_ModuleConfig_TelemetryConfig_init_zero {0}
|
#define Config_ModuleConfig_TelemetryConfig_init_zero {0, 0, 0, 0, 0, 0, 0, _TelemetrySensorType_MIN, 0}
|
||||||
#define Config_ModuleConfig_CannedMessageConfig_init_zero {0}
|
#define Config_ModuleConfig_CannedMessageConfig_init_zero {0}
|
||||||
|
|
||||||
/* Field tags (for use in manual encoding/decoding) */
|
/* Field tags (for use in manual encoding/decoding) */
|
||||||
|
#define Config_ModuleConfig_TelemetryConfig_device_update_interval_tag 1
|
||||||
|
#define Config_ModuleConfig_TelemetryConfig_environment_update_interval_tag 2
|
||||||
|
#define Config_ModuleConfig_TelemetryConfig_environment_measurement_enabled_tag 3
|
||||||
|
#define Config_ModuleConfig_TelemetryConfig_environment_screen_enabled_tag 4
|
||||||
|
#define Config_ModuleConfig_TelemetryConfig_environment_read_error_count_threshold_tag 5
|
||||||
|
#define Config_ModuleConfig_TelemetryConfig_environment_recovery_interval_tag 6
|
||||||
|
#define Config_ModuleConfig_TelemetryConfig_environment_display_fahrenheit_tag 7
|
||||||
|
#define Config_ModuleConfig_TelemetryConfig_environment_sensor_type_tag 8
|
||||||
|
#define Config_ModuleConfig_TelemetryConfig_environment_sensor_pin_tag 9
|
||||||
|
#define Config_WiFiConfig_wifi_ssid_tag 1
|
||||||
|
#define Config_WiFiConfig_wifi_password_tag 2
|
||||||
|
#define Config_WiFiConfig_wifi_ap_mode_tag 3
|
||||||
#define Config_ModuleConfig_mqtt_config_tag 1
|
#define Config_ModuleConfig_mqtt_config_tag 1
|
||||||
#define Config_ModuleConfig_serial_config_tag 2
|
#define Config_ModuleConfig_serial_config_tag 2
|
||||||
#define Config_ModuleConfig_external_notification_config_tag 3
|
#define Config_ModuleConfig_external_notification_config_tag 3
|
||||||
@ -136,9 +157,6 @@ extern "C" {
|
|||||||
#define Config_ModuleConfig_range_test_config_tag 5
|
#define Config_ModuleConfig_range_test_config_tag 5
|
||||||
#define Config_ModuleConfig_telemetry_config_tag 6
|
#define Config_ModuleConfig_telemetry_config_tag 6
|
||||||
#define Config_ModuleConfig_canned_message_config_tag 7
|
#define Config_ModuleConfig_canned_message_config_tag 7
|
||||||
#define Config_WiFiConfig_wifi_ssid_tag 1
|
|
||||||
#define Config_WiFiConfig_wifi_password_tag 2
|
|
||||||
#define Config_WiFiConfig_wifi_ap_mode_tag 3
|
|
||||||
#define Config_device_config_tag 1
|
#define Config_device_config_tag 1
|
||||||
#define Config_gps_config_tag 2
|
#define Config_gps_config_tag 2
|
||||||
#define Config_power_config_tag 3
|
#define Config_power_config_tag 3
|
||||||
@ -242,7 +260,15 @@ X(a, STATIC, ONEOF, MESSAGE, (payloadVariant,canned_message_config,payload
|
|||||||
#define Config_ModuleConfig_RangeTestConfig_DEFAULT NULL
|
#define Config_ModuleConfig_RangeTestConfig_DEFAULT NULL
|
||||||
|
|
||||||
#define Config_ModuleConfig_TelemetryConfig_FIELDLIST(X, a) \
|
#define Config_ModuleConfig_TelemetryConfig_FIELDLIST(X, a) \
|
||||||
|
X(a, STATIC, SINGULAR, UINT32, device_update_interval, 1) \
|
||||||
|
X(a, STATIC, SINGULAR, UINT32, environment_update_interval, 2) \
|
||||||
|
X(a, STATIC, SINGULAR, BOOL, environment_measurement_enabled, 3) \
|
||||||
|
X(a, STATIC, SINGULAR, BOOL, environment_screen_enabled, 4) \
|
||||||
|
X(a, STATIC, SINGULAR, UINT32, environment_read_error_count_threshold, 5) \
|
||||||
|
X(a, STATIC, SINGULAR, UINT32, environment_recovery_interval, 6) \
|
||||||
|
X(a, STATIC, SINGULAR, BOOL, environment_display_fahrenheit, 7) \
|
||||||
|
X(a, STATIC, SINGULAR, UENUM, environment_sensor_type, 8) \
|
||||||
|
X(a, STATIC, SINGULAR, UINT32, environment_sensor_pin, 9)
|
||||||
#define Config_ModuleConfig_TelemetryConfig_CALLBACK NULL
|
#define Config_ModuleConfig_TelemetryConfig_CALLBACK NULL
|
||||||
#define Config_ModuleConfig_TelemetryConfig_DEFAULT NULL
|
#define Config_ModuleConfig_TelemetryConfig_DEFAULT NULL
|
||||||
|
|
||||||
@ -297,8 +323,8 @@ extern const pb_msgdesc_t Config_ModuleConfig_CannedMessageConfig_msg;
|
|||||||
#define Config_ModuleConfig_RangeTestConfig_size 0
|
#define Config_ModuleConfig_RangeTestConfig_size 0
|
||||||
#define Config_ModuleConfig_SerialConfig_size 0
|
#define Config_ModuleConfig_SerialConfig_size 0
|
||||||
#define Config_ModuleConfig_StoreForwardConfig_size 0
|
#define Config_ModuleConfig_StoreForwardConfig_size 0
|
||||||
#define Config_ModuleConfig_TelemetryConfig_size 0
|
#define Config_ModuleConfig_TelemetryConfig_size 38
|
||||||
#define Config_ModuleConfig_size 2
|
#define Config_ModuleConfig_size 40
|
||||||
#define Config_PowerConfig_size 0
|
#define Config_PowerConfig_size 0
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -21,4 +21,3 @@ PB_BIND(RadioConfig_UserPreferences, RadioConfig_UserPreferences, 2)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -237,31 +237,6 @@ typedef enum _RadioConfig_UserPreferences_Serial_Mode {
|
|||||||
RadioConfig_UserPreferences_Serial_Mode_MODE_PROTO = 2
|
RadioConfig_UserPreferences_Serial_Mode_MODE_PROTO = 2
|
||||||
} RadioConfig_UserPreferences_Serial_Mode;
|
} RadioConfig_UserPreferences_Serial_Mode;
|
||||||
|
|
||||||
/* Sets the charge control current of devices with a battery charger that can be
|
|
||||||
configured. This is passed into the axp power management chip like on the tbeam. */
|
|
||||||
typedef enum _RadioConfig_UserPreferences_TelemetrySensorType {
|
|
||||||
/* TODO: REPLACE */
|
|
||||||
RadioConfig_UserPreferences_TelemetrySensorType_None = 0,
|
|
||||||
/* TODO: REPLACE */
|
|
||||||
RadioConfig_UserPreferences_TelemetrySensorType_DHT11 = 1,
|
|
||||||
/* TODO: REPLACE */
|
|
||||||
RadioConfig_UserPreferences_TelemetrySensorType_DS18B20 = 2,
|
|
||||||
/* TODO: REPLACE */
|
|
||||||
RadioConfig_UserPreferences_TelemetrySensorType_DHT12 = 3,
|
|
||||||
/* TODO: REPLACE */
|
|
||||||
RadioConfig_UserPreferences_TelemetrySensorType_DHT21 = 4,
|
|
||||||
/* TODO: REPLACE */
|
|
||||||
RadioConfig_UserPreferences_TelemetrySensorType_DHT22 = 5,
|
|
||||||
/* TODO: REPLACE */
|
|
||||||
RadioConfig_UserPreferences_TelemetrySensorType_BME280 = 6,
|
|
||||||
/* TODO: REPLACE */
|
|
||||||
RadioConfig_UserPreferences_TelemetrySensorType_BME680 = 7,
|
|
||||||
/* TODO: REPLACE */
|
|
||||||
RadioConfig_UserPreferences_TelemetrySensorType_MCP9808 = 8,
|
|
||||||
/* TODO: REPLACE */
|
|
||||||
RadioConfig_UserPreferences_TelemetrySensorType_SHTC3 = 9
|
|
||||||
} RadioConfig_UserPreferences_TelemetrySensorType;
|
|
||||||
|
|
||||||
/* Struct definitions */
|
/* Struct definitions */
|
||||||
typedef struct _RadioConfig_UserPreferences {
|
typedef struct _RadioConfig_UserPreferences {
|
||||||
uint32_t position_broadcast_secs;
|
uint32_t position_broadcast_secs;
|
||||||
@ -314,14 +289,6 @@ typedef struct _RadioConfig_UserPreferences {
|
|||||||
uint32_t store_forward_module_records;
|
uint32_t store_forward_module_records;
|
||||||
uint32_t store_forward_module_history_return_max;
|
uint32_t store_forward_module_history_return_max;
|
||||||
uint32_t store_forward_module_history_return_window;
|
uint32_t store_forward_module_history_return_window;
|
||||||
bool telemetry_module_environment_measurement_enabled;
|
|
||||||
bool telemetry_module_environment_screen_enabled;
|
|
||||||
uint32_t telemetry_module_environment_read_error_count_threshold;
|
|
||||||
uint32_t telemetry_module_device_update_interval;
|
|
||||||
uint32_t telemetry_module_environment_recovery_interval;
|
|
||||||
bool telemetry_module_environment_display_fahrenheit;
|
|
||||||
RadioConfig_UserPreferences_TelemetrySensorType telemetry_module_environment_sensor_type;
|
|
||||||
uint32_t telemetry_module_environment_sensor_pin;
|
|
||||||
bool store_forward_module_enabled;
|
bool store_forward_module_enabled;
|
||||||
bool store_forward_module_heartbeat;
|
bool store_forward_module_heartbeat;
|
||||||
uint32_t position_flags;
|
uint32_t position_flags;
|
||||||
@ -347,7 +314,6 @@ typedef struct _RadioConfig_UserPreferences {
|
|||||||
bool mqtt_encryption_enabled;
|
bool mqtt_encryption_enabled;
|
||||||
float adc_multiplier_override;
|
float adc_multiplier_override;
|
||||||
RadioConfig_UserPreferences_Serial_Baud serial_module_baud;
|
RadioConfig_UserPreferences_Serial_Baud serial_module_baud;
|
||||||
uint32_t telemetry_module_environment_update_interval;
|
|
||||||
} RadioConfig_UserPreferences;
|
} RadioConfig_UserPreferences;
|
||||||
|
|
||||||
/* The entire set of user settable/readable settings for our radio device.
|
/* The entire set of user settable/readable settings for our radio device.
|
||||||
@ -393,10 +359,6 @@ typedef struct _RadioConfig {
|
|||||||
#define _RadioConfig_UserPreferences_Serial_Mode_MAX RadioConfig_UserPreferences_Serial_Mode_MODE_PROTO
|
#define _RadioConfig_UserPreferences_Serial_Mode_MAX RadioConfig_UserPreferences_Serial_Mode_MODE_PROTO
|
||||||
#define _RadioConfig_UserPreferences_Serial_Mode_ARRAYSIZE ((RadioConfig_UserPreferences_Serial_Mode)(RadioConfig_UserPreferences_Serial_Mode_MODE_PROTO+1))
|
#define _RadioConfig_UserPreferences_Serial_Mode_ARRAYSIZE ((RadioConfig_UserPreferences_Serial_Mode)(RadioConfig_UserPreferences_Serial_Mode_MODE_PROTO+1))
|
||||||
|
|
||||||
#define _RadioConfig_UserPreferences_TelemetrySensorType_MIN RadioConfig_UserPreferences_TelemetrySensorType_None
|
|
||||||
#define _RadioConfig_UserPreferences_TelemetrySensorType_MAX RadioConfig_UserPreferences_TelemetrySensorType_SHTC3
|
|
||||||
#define _RadioConfig_UserPreferences_TelemetrySensorType_ARRAYSIZE ((RadioConfig_UserPreferences_TelemetrySensorType)(RadioConfig_UserPreferences_TelemetrySensorType_SHTC3+1))
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@ -404,9 +366,9 @@ extern "C" {
|
|||||||
|
|
||||||
/* Initializer values for message structs */
|
/* Initializer values for message structs */
|
||||||
#define RadioConfig_init_default {false, RadioConfig_UserPreferences_init_default}
|
#define RadioConfig_init_default {false, RadioConfig_UserPreferences_init_default}
|
||||||
#define RadioConfig_UserPreferences_init_default {0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, _RegionCode_MIN, _ChargeCurrent_MIN, 0, _Role_MIN, 0, 0, 0, 0, 0, 0, 0, 0, "", 0, _GpsCoordinateFormat_MIN, 0, 0, 0, 0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, _RadioConfig_UserPreferences_Serial_Mode_MIN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _RadioConfig_UserPreferences_TelemetrySensorType_MIN, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, 0, 0, 0, 0, 0, _InputEventChar_MIN, _InputEventChar_MIN, _InputEventChar_MIN, 0, 0, "", 0, 0, 0, _RadioConfig_UserPreferences_Serial_Baud_MIN, 0}
|
#define RadioConfig_UserPreferences_init_default {0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, _RegionCode_MIN, _ChargeCurrent_MIN, 0, _Role_MIN, 0, 0, 0, 0, 0, 0, 0, 0, "", 0, _GpsCoordinateFormat_MIN, 0, 0, 0, 0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, _RadioConfig_UserPreferences_Serial_Mode_MIN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, 0, 0, 0, 0, 0, _InputEventChar_MIN, _InputEventChar_MIN, _InputEventChar_MIN, 0, 0, "", 0, 0, 0, _RadioConfig_UserPreferences_Serial_Baud_MIN}
|
||||||
#define RadioConfig_init_zero {false, RadioConfig_UserPreferences_init_zero}
|
#define RadioConfig_init_zero {false, RadioConfig_UserPreferences_init_zero}
|
||||||
#define RadioConfig_UserPreferences_init_zero {0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, _RegionCode_MIN, _ChargeCurrent_MIN, 0, _Role_MIN, 0, 0, 0, 0, 0, 0, 0, 0, "", 0, _GpsCoordinateFormat_MIN, 0, 0, 0, 0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, _RadioConfig_UserPreferences_Serial_Mode_MIN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _RadioConfig_UserPreferences_TelemetrySensorType_MIN, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, 0, 0, 0, 0, 0, _InputEventChar_MIN, _InputEventChar_MIN, _InputEventChar_MIN, 0, 0, "", 0, 0, 0, _RadioConfig_UserPreferences_Serial_Baud_MIN, 0}
|
#define RadioConfig_UserPreferences_init_zero {0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, _RegionCode_MIN, _ChargeCurrent_MIN, 0, _Role_MIN, 0, 0, 0, 0, 0, 0, 0, 0, "", 0, _GpsCoordinateFormat_MIN, 0, 0, 0, 0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, _RadioConfig_UserPreferences_Serial_Mode_MIN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, 0, 0, 0, 0, 0, _InputEventChar_MIN, _InputEventChar_MIN, _InputEventChar_MIN, 0, 0, "", 0, 0, 0, _RadioConfig_UserPreferences_Serial_Baud_MIN}
|
||||||
|
|
||||||
/* Field tags (for use in manual encoding/decoding) */
|
/* Field tags (for use in manual encoding/decoding) */
|
||||||
#define RadioConfig_UserPreferences_position_broadcast_secs_tag 1
|
#define RadioConfig_UserPreferences_position_broadcast_secs_tag 1
|
||||||
@ -458,14 +420,6 @@ extern "C" {
|
|||||||
#define RadioConfig_UserPreferences_store_forward_module_records_tag 137
|
#define RadioConfig_UserPreferences_store_forward_module_records_tag 137
|
||||||
#define RadioConfig_UserPreferences_store_forward_module_history_return_max_tag 138
|
#define RadioConfig_UserPreferences_store_forward_module_history_return_max_tag 138
|
||||||
#define RadioConfig_UserPreferences_store_forward_module_history_return_window_tag 139
|
#define RadioConfig_UserPreferences_store_forward_module_history_return_window_tag 139
|
||||||
#define RadioConfig_UserPreferences_telemetry_module_environment_measurement_enabled_tag 140
|
|
||||||
#define RadioConfig_UserPreferences_telemetry_module_environment_screen_enabled_tag 141
|
|
||||||
#define RadioConfig_UserPreferences_telemetry_module_environment_read_error_count_threshold_tag 142
|
|
||||||
#define RadioConfig_UserPreferences_telemetry_module_device_update_interval_tag 143
|
|
||||||
#define RadioConfig_UserPreferences_telemetry_module_environment_recovery_interval_tag 144
|
|
||||||
#define RadioConfig_UserPreferences_telemetry_module_environment_display_fahrenheit_tag 145
|
|
||||||
#define RadioConfig_UserPreferences_telemetry_module_environment_sensor_type_tag 146
|
|
||||||
#define RadioConfig_UserPreferences_telemetry_module_environment_sensor_pin_tag 147
|
|
||||||
#define RadioConfig_UserPreferences_store_forward_module_enabled_tag 148
|
#define RadioConfig_UserPreferences_store_forward_module_enabled_tag 148
|
||||||
#define RadioConfig_UserPreferences_store_forward_module_heartbeat_tag 149
|
#define RadioConfig_UserPreferences_store_forward_module_heartbeat_tag 149
|
||||||
#define RadioConfig_UserPreferences_position_flags_tag 150
|
#define RadioConfig_UserPreferences_position_flags_tag 150
|
||||||
@ -491,7 +445,6 @@ extern "C" {
|
|||||||
#define RadioConfig_UserPreferences_mqtt_encryption_enabled_tag 174
|
#define RadioConfig_UserPreferences_mqtt_encryption_enabled_tag 174
|
||||||
#define RadioConfig_UserPreferences_adc_multiplier_override_tag 175
|
#define RadioConfig_UserPreferences_adc_multiplier_override_tag 175
|
||||||
#define RadioConfig_UserPreferences_serial_module_baud_tag 176
|
#define RadioConfig_UserPreferences_serial_module_baud_tag 176
|
||||||
#define RadioConfig_UserPreferences_telemetry_module_environment_update_interval_tag 177
|
|
||||||
#define RadioConfig_preferences_tag 1
|
#define RadioConfig_preferences_tag 1
|
||||||
|
|
||||||
/* Struct field encoding specification for nanopb */
|
/* Struct field encoding specification for nanopb */
|
||||||
@ -551,14 +504,6 @@ X(a, STATIC, SINGULAR, BOOL, range_test_module_save, 134) \
|
|||||||
X(a, STATIC, SINGULAR, UINT32, store_forward_module_records, 137) \
|
X(a, STATIC, SINGULAR, UINT32, store_forward_module_records, 137) \
|
||||||
X(a, STATIC, SINGULAR, UINT32, store_forward_module_history_return_max, 138) \
|
X(a, STATIC, SINGULAR, UINT32, store_forward_module_history_return_max, 138) \
|
||||||
X(a, STATIC, SINGULAR, UINT32, store_forward_module_history_return_window, 139) \
|
X(a, STATIC, SINGULAR, UINT32, store_forward_module_history_return_window, 139) \
|
||||||
X(a, STATIC, SINGULAR, BOOL, telemetry_module_environment_measurement_enabled, 140) \
|
|
||||||
X(a, STATIC, SINGULAR, BOOL, telemetry_module_environment_screen_enabled, 141) \
|
|
||||||
X(a, STATIC, SINGULAR, UINT32, telemetry_module_environment_read_error_count_threshold, 142) \
|
|
||||||
X(a, STATIC, SINGULAR, UINT32, telemetry_module_device_update_interval, 143) \
|
|
||||||
X(a, STATIC, SINGULAR, UINT32, telemetry_module_environment_recovery_interval, 144) \
|
|
||||||
X(a, STATIC, SINGULAR, BOOL, telemetry_module_environment_display_fahrenheit, 145) \
|
|
||||||
X(a, STATIC, SINGULAR, UENUM, telemetry_module_environment_sensor_type, 146) \
|
|
||||||
X(a, STATIC, SINGULAR, UINT32, telemetry_module_environment_sensor_pin, 147) \
|
|
||||||
X(a, STATIC, SINGULAR, BOOL, store_forward_module_enabled, 148) \
|
X(a, STATIC, SINGULAR, BOOL, store_forward_module_enabled, 148) \
|
||||||
X(a, STATIC, SINGULAR, BOOL, store_forward_module_heartbeat, 149) \
|
X(a, STATIC, SINGULAR, BOOL, store_forward_module_heartbeat, 149) \
|
||||||
X(a, STATIC, SINGULAR, UINT32, position_flags, 150) \
|
X(a, STATIC, SINGULAR, UINT32, position_flags, 150) \
|
||||||
@ -583,8 +528,7 @@ X(a, STATIC, SINGULAR, STRING, canned_message_module_allow_input_source, 171
|
|||||||
X(a, STATIC, SINGULAR, BOOL, canned_message_module_send_bell, 173) \
|
X(a, STATIC, SINGULAR, BOOL, canned_message_module_send_bell, 173) \
|
||||||
X(a, STATIC, SINGULAR, BOOL, mqtt_encryption_enabled, 174) \
|
X(a, STATIC, SINGULAR, BOOL, mqtt_encryption_enabled, 174) \
|
||||||
X(a, STATIC, SINGULAR, FLOAT, adc_multiplier_override, 175) \
|
X(a, STATIC, SINGULAR, FLOAT, adc_multiplier_override, 175) \
|
||||||
X(a, STATIC, SINGULAR, UENUM, serial_module_baud, 176) \
|
X(a, STATIC, SINGULAR, UENUM, serial_module_baud, 176)
|
||||||
X(a, STATIC, SINGULAR, UINT32, telemetry_module_environment_update_interval, 177)
|
|
||||||
#define RadioConfig_UserPreferences_CALLBACK NULL
|
#define RadioConfig_UserPreferences_CALLBACK NULL
|
||||||
#define RadioConfig_UserPreferences_DEFAULT NULL
|
#define RadioConfig_UserPreferences_DEFAULT NULL
|
||||||
|
|
||||||
@ -596,8 +540,8 @@ extern const pb_msgdesc_t RadioConfig_UserPreferences_msg;
|
|||||||
#define RadioConfig_UserPreferences_fields &RadioConfig_UserPreferences_msg
|
#define RadioConfig_UserPreferences_fields &RadioConfig_UserPreferences_msg
|
||||||
|
|
||||||
/* Maximum encoded size of messages (where known) */
|
/* Maximum encoded size of messages (where known) */
|
||||||
#define RadioConfig_UserPreferences_size 592
|
#define RadioConfig_UserPreferences_size 545
|
||||||
#define RadioConfig_size 595
|
#define RadioConfig_size 548
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
|
@ -16,3 +16,4 @@ PB_BIND(Telemetry, Telemetry, AUTO)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,6 +9,31 @@
|
|||||||
#error Regenerate this file with the current version of nanopb generator.
|
#error Regenerate this file with the current version of nanopb generator.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Enum definitions */
|
||||||
|
/* TODO: REPLACE */
|
||||||
|
typedef enum _TelemetrySensorType {
|
||||||
|
/* No external telemetry sensor */
|
||||||
|
TelemetrySensorType_NotSet = 0,
|
||||||
|
/* TODO: REPLACE */
|
||||||
|
TelemetrySensorType_DHT11 = 1,
|
||||||
|
/* TODO: REPLACE */
|
||||||
|
TelemetrySensorType_DS18B20 = 2,
|
||||||
|
/* TODO: REPLACE */
|
||||||
|
TelemetrySensorType_DHT12 = 3,
|
||||||
|
/* TODO: REPLACE */
|
||||||
|
TelemetrySensorType_DHT21 = 4,
|
||||||
|
/* TODO: REPLACE */
|
||||||
|
TelemetrySensorType_DHT22 = 5,
|
||||||
|
/* TODO: REPLACE */
|
||||||
|
TelemetrySensorType_BME280 = 6,
|
||||||
|
/* TODO: REPLACE */
|
||||||
|
TelemetrySensorType_BME680 = 7,
|
||||||
|
/* TODO: REPLACE */
|
||||||
|
TelemetrySensorType_MCP9808 = 8,
|
||||||
|
/* TODO: REPLACE */
|
||||||
|
TelemetrySensorType_SHTC3 = 9
|
||||||
|
} TelemetrySensorType;
|
||||||
|
|
||||||
/* Struct definitions */
|
/* Struct definitions */
|
||||||
/* Key native device metrics such as battery level */
|
/* Key native device metrics such as battery level */
|
||||||
typedef struct _DeviceMetrics {
|
typedef struct _DeviceMetrics {
|
||||||
@ -55,6 +80,12 @@ typedef struct _Telemetry {
|
|||||||
} Telemetry;
|
} Telemetry;
|
||||||
|
|
||||||
|
|
||||||
|
/* Helper constants for enums */
|
||||||
|
#define _TelemetrySensorType_MIN TelemetrySensorType_NotSet
|
||||||
|
#define _TelemetrySensorType_MAX TelemetrySensorType_SHTC3
|
||||||
|
#define _TelemetrySensorType_ARRAYSIZE ((TelemetrySensorType)(TelemetrySensorType_SHTC3+1))
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
@ -20,7 +20,8 @@ int32_t DeviceTelemetryModule::runOnce()
|
|||||||
}
|
}
|
||||||
sendOurTelemetry();
|
sendOurTelemetry();
|
||||||
// OSThread library. Multiply the preference value by 1000 to convert seconds to miliseconds
|
// OSThread library. Multiply the preference value by 1000 to convert seconds to miliseconds
|
||||||
return (getPref_telemetry_module_device_update_interval() * 1000);
|
|
||||||
|
return getIntervalOrDefaultMs(moduleConfig.device_update_interval);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "../mesh/generated/telemetry.pb.h"
|
#include "../mesh/generated/telemetry.pb.h"
|
||||||
#include "ProtobufModule.h"
|
#include "ProtobufModule.h"
|
||||||
|
#include "NodeDB.h"
|
||||||
#include <OLEDDisplay.h>
|
#include <OLEDDisplay.h>
|
||||||
#include <OLEDDisplayUi.h>
|
#include <OLEDDisplayUi.h>
|
||||||
|
|
||||||
@ -27,6 +28,7 @@ class DeviceTelemetryModule : private concurrency::OSThread, public ProtobufModu
|
|||||||
bool sendOurTelemetry(NodeNum dest = NODENUM_BROADCAST, bool wantReplies = false);
|
bool sendOurTelemetry(NodeNum dest = NODENUM_BROADCAST, bool wantReplies = false);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Config_ModuleConfig_TelemetryConfig moduleConfig = config.payloadVariant.module_config.payloadVariant.telemetry_config;
|
||||||
bool firstTime = 1;
|
bool firstTime = 1;
|
||||||
const MeshPacket *lastMeasurementPacket;
|
const MeshPacket *lastMeasurementPacket;
|
||||||
};
|
};
|
||||||
|
@ -50,17 +50,17 @@ int32_t EnvironmentTelemetryModule::runOnce()
|
|||||||
without having to configure it from the PythonAPI or WebUI.
|
without having to configure it from the PythonAPI or WebUI.
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
radioConfig.preferences.telemetry_module_environment_measurement_enabled = 1;
|
moduleConfig.environment_measurement_enabled = 1;
|
||||||
radioConfig.preferences.telemetry_module_environment_screen_enabled = 1;
|
moduleConfig.environment_screen_enabled = 1;
|
||||||
radioConfig.preferences.telemetry_module_environment_read_error_count_threshold = 5;
|
moduleConfig.environment_read_error_count_threshold = 5;
|
||||||
radioConfig.preferences.telemetry_module_environment_update_interval = 600;
|
moduleConfig.environment_update_interval = 600;
|
||||||
radioConfig.preferences.telemetry_module_environment_recovery_interval = 60;
|
moduleConfig.environment_recovery_interval = 60;
|
||||||
radioConfig.preferences.telemetry_module_environment_sensor_pin = 13; // If one-wire
|
moduleConfig.environment_sensor_pin = 13; // If one-wire
|
||||||
radioConfig.preferences.telemetry_module_environment_sensor_type = RadioConfig_UserPreferences_TelemetrySensorType::RadioConfig_UserPreferences_TelemetrySensorType_BME280;
|
moduleConfig.environment_sensor_type = TelemetrySensorType::TelemetrySensorType_BME280;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!(radioConfig.preferences.telemetry_module_environment_measurement_enabled ||
|
if (!(moduleConfig.environment_measurement_enabled ||
|
||||||
radioConfig.preferences.telemetry_module_environment_screen_enabled)) {
|
moduleConfig.environment_screen_enabled)) {
|
||||||
// If this module is not enabled, and the user doesn't want the display screen don't waste any OSThread time on it
|
// If this module is not enabled, and the user doesn't want the display screen don't waste any OSThread time on it
|
||||||
return (INT32_MAX);
|
return (INT32_MAX);
|
||||||
}
|
}
|
||||||
@ -69,24 +69,24 @@ int32_t EnvironmentTelemetryModule::runOnce()
|
|||||||
// This is the first time the OSThread library has called this function, so do some setup
|
// This is the first time the OSThread library has called this function, so do some setup
|
||||||
firstTime = 0;
|
firstTime = 0;
|
||||||
|
|
||||||
if (radioConfig.preferences.telemetry_module_environment_measurement_enabled) {
|
if (moduleConfig.environment_measurement_enabled) {
|
||||||
DEBUG_MSG("Environment Telemetry: Initializing\n");
|
DEBUG_MSG("Environment Telemetry: Initializing\n");
|
||||||
// it's possible to have this module enabled, only for displaying values on the screen.
|
// it's possible to have this module enabled, only for displaying values on the screen.
|
||||||
// therefore, we should only enable the sensor loop if measurement is also enabled
|
// therefore, we should only enable the sensor loop if measurement is also enabled
|
||||||
switch (radioConfig.preferences.telemetry_module_environment_sensor_type) {
|
switch (moduleConfig.environment_sensor_type) {
|
||||||
|
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DHT11:
|
case TelemetrySensorType_DHT11:
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DHT12:
|
case TelemetrySensorType_DHT12:
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DHT21:
|
case TelemetrySensorType_DHT21:
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DHT22:
|
case TelemetrySensorType_DHT22:
|
||||||
return dhtSensor.runOnce();
|
return dhtSensor.runOnce();
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DS18B20:
|
case TelemetrySensorType_DS18B20:
|
||||||
return dallasSensor.runOnce();
|
return dallasSensor.runOnce();
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_BME280:
|
case TelemetrySensorType_BME280:
|
||||||
return bme280Sensor.runOnce();
|
return bme280Sensor.runOnce();
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_BME680:
|
case TelemetrySensorType_BME680:
|
||||||
return bme680Sensor.runOnce();
|
return bme680Sensor.runOnce();
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_MCP9808:
|
case TelemetrySensorType_MCP9808:
|
||||||
return mcp9808Sensor.runOnce();
|
return mcp9808Sensor.runOnce();
|
||||||
default:
|
default:
|
||||||
DEBUG_MSG("Environment Telemetry: Invalid sensor type selected; Disabling module");
|
DEBUG_MSG("Environment Telemetry: Invalid sensor type selected; Disabling module");
|
||||||
@ -97,55 +97,54 @@ int32_t EnvironmentTelemetryModule::runOnce()
|
|||||||
return (INT32_MAX);
|
return (INT32_MAX);
|
||||||
} else {
|
} else {
|
||||||
// if we somehow got to a second run of this module with measurement disabled, then just wait forever
|
// if we somehow got to a second run of this module with measurement disabled, then just wait forever
|
||||||
if (!radioConfig.preferences.telemetry_module_environment_measurement_enabled)
|
if (!moduleConfig.environment_measurement_enabled)
|
||||||
return (INT32_MAX);
|
return (INT32_MAX);
|
||||||
// this is not the first time OSThread library has called this function
|
// this is not the first time OSThread library has called this function
|
||||||
// so just do what we intend to do on the interval
|
// so just do what we intend to do on the interval
|
||||||
if (sensor_read_error_count > radioConfig.preferences.telemetry_module_environment_read_error_count_threshold) {
|
if (sensor_read_error_count > moduleConfig.environment_read_error_count_threshold) {
|
||||||
if (radioConfig.preferences.telemetry_module_environment_recovery_interval > 0) {
|
if (moduleConfig.environment_recovery_interval > 0) {
|
||||||
DEBUG_MSG("Environment Telemetry: TEMPORARILY DISABLED; The "
|
DEBUG_MSG("Environment Telemetry: TEMPORARILY DISABLED; The "
|
||||||
"telemetry_module_environment_read_error_count_threshold has been exceed: %d. Will retry reads in "
|
"telemetry_module_environment_read_error_count_threshold has been exceed: %d. Will retry reads in "
|
||||||
"%d seconds\n",
|
"%d seconds\n",
|
||||||
radioConfig.preferences.telemetry_module_environment_read_error_count_threshold,
|
moduleConfig.environment_read_error_count_threshold,
|
||||||
radioConfig.preferences.telemetry_module_environment_recovery_interval);
|
moduleConfig.environment_recovery_interval);
|
||||||
sensor_read_error_count = 0;
|
sensor_read_error_count = 0;
|
||||||
return (radioConfig.preferences.telemetry_module_environment_recovery_interval * 1000);
|
return (moduleConfig.environment_recovery_interval * 1000);
|
||||||
}
|
}
|
||||||
DEBUG_MSG("Environment Telemetry: DISABLED; The telemetry_module_environment_read_error_count_threshold has "
|
DEBUG_MSG("Environment Telemetry: DISABLED; The telemetry_module_environment_read_error_count_threshold has "
|
||||||
"been exceed: %d. Reads will not be retried until after device reset\n",
|
"been exceed: %d. Reads will not be retried until after device reset\n",
|
||||||
radioConfig.preferences.telemetry_module_environment_read_error_count_threshold);
|
moduleConfig.environment_read_error_count_threshold);
|
||||||
return (INT32_MAX);
|
return (INT32_MAX);
|
||||||
|
|
||||||
} else if (sensor_read_error_count > 0) {
|
} else if (sensor_read_error_count > 0) {
|
||||||
DEBUG_MSG("Environment Telemetry: There have been %d sensor read failures. Will retry %d more times\n",
|
DEBUG_MSG("Environment Telemetry: There have been %d sensor read failures. Will retry %d more times\n",
|
||||||
sensor_read_error_count, sensor_read_error_count, sensor_read_error_count,
|
sensor_read_error_count, sensor_read_error_count, sensor_read_error_count,
|
||||||
radioConfig.preferences.telemetry_module_environment_read_error_count_threshold -
|
moduleConfig.environment_read_error_count_threshold -
|
||||||
sensor_read_error_count);
|
sensor_read_error_count);
|
||||||
}
|
}
|
||||||
if (!sendOurTelemetry()) {
|
if (!sendOurTelemetry()) {
|
||||||
// if we failed to read the sensor, then try again
|
// if we failed to read the sensor, then try again
|
||||||
// as soon as we can according to the maximum polling frequency
|
// as soon as we can according to the maximum polling frequency
|
||||||
|
|
||||||
switch (radioConfig.preferences.telemetry_module_environment_sensor_type) {
|
switch (moduleConfig.environment_sensor_type) {
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DHT11:
|
case TelemetrySensorType_DHT11:
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DHT12:
|
case TelemetrySensorType_DHT12:
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DHT21:
|
case TelemetrySensorType_DHT21:
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DHT22:
|
case TelemetrySensorType_DHT22:
|
||||||
return (DHT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS);
|
return (DHT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS);
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DS18B20:
|
case TelemetrySensorType_DS18B20:
|
||||||
return (DS18B20_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS);
|
return (DS18B20_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS);
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_BME280:
|
case TelemetrySensorType_BME280:
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_BME680:
|
case TelemetrySensorType_BME680:
|
||||||
return (BME_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS);
|
return (BME_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS);
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_MCP9808:
|
case TelemetrySensorType_MCP9808:
|
||||||
return (MCP_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS);
|
return (MCP_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS);
|
||||||
default:
|
default:
|
||||||
return (DEFAULT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS);
|
return (DEFAULT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// OSThread library. Multiply the preference value by 1000 to convert seconds to miliseconds
|
return getIntervalOrDefaultMs(moduleConfig.environment_update_interval);
|
||||||
return (getPref_telemetry_module_environment_update_interval() * 1000);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,7 +162,7 @@ uint32_t GetTimeSinceMeshPacket(const MeshPacket *mp)
|
|||||||
|
|
||||||
bool EnvironmentTelemetryModule::wantUIFrame()
|
bool EnvironmentTelemetryModule::wantUIFrame()
|
||||||
{
|
{
|
||||||
return radioConfig.preferences.telemetry_module_environment_screen_enabled;
|
return moduleConfig.environment_screen_enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
float EnvironmentTelemetryModule::CelsiusToFahrenheit(float c)
|
float EnvironmentTelemetryModule::CelsiusToFahrenheit(float c)
|
||||||
@ -197,7 +196,7 @@ void EnvironmentTelemetryModule::drawFrame(OLEDDisplay *display, OLEDDisplayUiSt
|
|||||||
|
|
||||||
display->setFont(FONT_SMALL);
|
display->setFont(FONT_SMALL);
|
||||||
String last_temp = String(lastMeasurement.variant.environment_metrics.temperature, 0) + "°C";
|
String last_temp = String(lastMeasurement.variant.environment_metrics.temperature, 0) + "°C";
|
||||||
if (radioConfig.preferences.telemetry_module_environment_display_fahrenheit) {
|
if (moduleConfig.environment_display_fahrenheit) {
|
||||||
last_temp = String(CelsiusToFahrenheit(lastMeasurement.variant.environment_metrics.temperature), 0) + "°F";
|
last_temp = String(CelsiusToFahrenheit(lastMeasurement.variant.environment_metrics.temperature), 0) + "°F";
|
||||||
}
|
}
|
||||||
display->drawString(x, y += fontHeight(FONT_MEDIUM) - 2, "From: " + String(lastSender) + "(" + String(agoSecs) + "s)");
|
display->drawString(x, y += fontHeight(FONT_MEDIUM) - 2, "From: " + String(lastSender) + "(" + String(agoSecs) + "s)");
|
||||||
@ -243,25 +242,25 @@ bool EnvironmentTelemetryModule::sendOurTelemetry(NodeNum dest, bool wantReplies
|
|||||||
DEBUG_MSG("-----------------------------------------\n");
|
DEBUG_MSG("-----------------------------------------\n");
|
||||||
DEBUG_MSG("Environment Telemetry: Read data\n");
|
DEBUG_MSG("Environment Telemetry: Read data\n");
|
||||||
|
|
||||||
switch (radioConfig.preferences.telemetry_module_environment_sensor_type) {
|
switch (moduleConfig.environment_sensor_type) {
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DS18B20:
|
case TelemetrySensorType_DS18B20:
|
||||||
if (!dallasSensor.getMeasurement(&m))
|
if (!dallasSensor.getMeasurement(&m))
|
||||||
sensor_read_error_count++;
|
sensor_read_error_count++;
|
||||||
break;
|
break;
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DHT11:
|
case TelemetrySensorType_DHT11:
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DHT12:
|
case TelemetrySensorType_DHT12:
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DHT21:
|
case TelemetrySensorType_DHT21:
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_DHT22:
|
case TelemetrySensorType_DHT22:
|
||||||
if (!dhtSensor.getMeasurement(&m))
|
if (!dhtSensor.getMeasurement(&m))
|
||||||
sensor_read_error_count++;
|
sensor_read_error_count++;
|
||||||
break;
|
break;
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_BME280:
|
case TelemetrySensorType_BME280:
|
||||||
bme280Sensor.getMeasurement(&m);
|
bme280Sensor.getMeasurement(&m);
|
||||||
break;
|
break;
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_BME680:
|
case TelemetrySensorType_BME680:
|
||||||
bme680Sensor.getMeasurement(&m);
|
bme680Sensor.getMeasurement(&m);
|
||||||
break;
|
break;
|
||||||
case RadioConfig_UserPreferences_TelemetrySensorType_MCP9808:
|
case TelemetrySensorType_MCP9808:
|
||||||
mcp9808Sensor.getMeasurement(&m);
|
mcp9808Sensor.getMeasurement(&m);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "../mesh/generated/telemetry.pb.h"
|
#include "../mesh/generated/telemetry.pb.h"
|
||||||
#include "ProtobufModule.h"
|
#include "ProtobufModule.h"
|
||||||
|
#include "NodeDB.h"
|
||||||
#include <OLEDDisplay.h>
|
#include <OLEDDisplay.h>
|
||||||
#include <OLEDDisplayUi.h>
|
#include <OLEDDisplayUi.h>
|
||||||
|
|
||||||
@ -28,6 +29,7 @@ class EnvironmentTelemetryModule : private concurrency::OSThread, public Protobu
|
|||||||
bool sendOurTelemetry(NodeNum dest = NODENUM_BROADCAST, bool wantReplies = false);
|
bool sendOurTelemetry(NodeNum dest = NODENUM_BROADCAST, bool wantReplies = false);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Config_ModuleConfig_TelemetryConfig moduleConfig = config.payloadVariant.module_config.payloadVariant.telemetry_config;
|
||||||
float CelsiusToFahrenheit(float c);
|
float CelsiusToFahrenheit(float c);
|
||||||
bool firstTime = 1;
|
bool firstTime = 1;
|
||||||
const MeshPacket *lastMeasurementPacket;
|
const MeshPacket *lastMeasurementPacket;
|
||||||
|
@ -9,18 +9,18 @@ DHTSensor::DHTSensor() : TelemetrySensor {} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int32_t DHTSensor::runOnce() {
|
int32_t DHTSensor::runOnce() {
|
||||||
if (RadioConfig_UserPreferences_TelemetrySensorType_DHT11 ||
|
if (TelemetrySensorType_DHT11 ||
|
||||||
RadioConfig_UserPreferences_TelemetrySensorType_DHT12) {
|
TelemetrySensorType_DHT12) {
|
||||||
dht = new DHT(radioConfig.preferences.telemetry_module_environment_sensor_pin, DHT11);
|
dht = new DHT(moduleConfig.environment_sensor_pin, DHT11);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
dht = new DHT(radioConfig.preferences.telemetry_module_environment_sensor_pin, DHT22);
|
dht = new DHT(moduleConfig.environment_sensor_pin, DHT22);
|
||||||
}
|
}
|
||||||
|
|
||||||
dht->begin();
|
dht->begin();
|
||||||
dht->read();
|
dht->read();
|
||||||
DEBUG_MSG("Telemetry: Opened DHT11/DHT12 on pin: %d\n",
|
DEBUG_MSG("Telemetry: Opened DHT11/DHT12 on pin: %d\n",
|
||||||
radioConfig.preferences.telemetry_module_environment_sensor_pin);
|
moduleConfig.environment_sensor_pin);
|
||||||
|
|
||||||
return (DHT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS);
|
return (DHT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS);
|
||||||
}
|
}
|
||||||
|
@ -10,13 +10,13 @@ DallasSensor::DallasSensor() : TelemetrySensor {} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int32_t DallasSensor::runOnce() {
|
int32_t DallasSensor::runOnce() {
|
||||||
oneWire = new OneWire(radioConfig.preferences.telemetry_module_environment_sensor_pin);
|
oneWire = new OneWire(moduleConfig.environment_sensor_pin);
|
||||||
ds18b20 = new DS18B20(oneWire);
|
ds18b20 = new DS18B20(oneWire);
|
||||||
ds18b20->begin();
|
ds18b20->begin();
|
||||||
ds18b20->setResolution(12);
|
ds18b20->setResolution(12);
|
||||||
ds18b20->requestTemperatures();
|
ds18b20->requestTemperatures();
|
||||||
DEBUG_MSG("Telemetry: Opened DS18B20 on pin: %d\n",
|
DEBUG_MSG("Telemetry: Opened DS18B20 on pin: %d\n",
|
||||||
radioConfig.preferences.telemetry_module_environment_sensor_pin);
|
moduleConfig.environment_sensor_pin);
|
||||||
return (DS18B20_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS);
|
return (DS18B20_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "../mesh/generated/telemetry.pb.h"
|
#include "../mesh/generated/telemetry.pb.h"
|
||||||
|
#include "NodeDB.h"
|
||||||
#define DEFAULT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS 1000
|
#define DEFAULT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS 1000
|
||||||
|
|
||||||
class TelemetrySensor {
|
class TelemetrySensor {
|
||||||
protected:
|
protected:
|
||||||
TelemetrySensor() { }
|
TelemetrySensor() { }
|
||||||
|
Config_ModuleConfig_TelemetryConfig moduleConfig = config.payloadVariant.module_config.payloadVariant.telemetry_config;
|
||||||
public:
|
public:
|
||||||
virtual int32_t runOnce() = 0;
|
virtual int32_t runOnce() = 0;
|
||||||
virtual bool getMeasurement(Telemetry *measurement) = 0;
|
virtual bool getMeasurement(Telemetry *measurement) = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user