mirror of
https://github.com/meshtastic/firmware.git
synced 2025-12-23 11:10:52 +00:00
Move LoRa config out of primary channel
This commit is contained in:
@@ -11,3 +11,4 @@ PB_BIND(AdminMessage, AdminMessage, 2)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -14,4 +14,3 @@ PB_BIND(Channel, Channel, AUTO)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -10,16 +10,6 @@
|
||||
#endif
|
||||
|
||||
/* Enum definitions */
|
||||
typedef enum _ChannelSettings_ModemConfig {
|
||||
ChannelSettings_ModemConfig_VLongSlow = 0,
|
||||
ChannelSettings_ModemConfig_LongSlow = 1,
|
||||
ChannelSettings_ModemConfig_LongFast = 2,
|
||||
ChannelSettings_ModemConfig_MidSlow = 3,
|
||||
ChannelSettings_ModemConfig_MidFast = 4,
|
||||
ChannelSettings_ModemConfig_ShortSlow = 5,
|
||||
ChannelSettings_ModemConfig_ShortFast = 6
|
||||
} ChannelSettings_ModemConfig;
|
||||
|
||||
typedef enum _Channel_Role {
|
||||
Channel_Role_DISABLED = 0,
|
||||
Channel_Role_PRIMARY = 1,
|
||||
@@ -48,28 +38,6 @@ typedef PB_BYTES_ARRAY_T(32) ChannelSettings_psk_t;
|
||||
FIXME: explain how apps use channels for security.
|
||||
explain how remote settings and remote gpio are managed as an example */
|
||||
typedef struct _ChannelSettings {
|
||||
/* If zero then, use default max legal continuous power (ie. something that won't
|
||||
burn out the radio hardware)
|
||||
In most cases you should use zero here.
|
||||
Units are in dBm. */
|
||||
int8_t tx_power;
|
||||
/* Note: This is the 'old' mechanism for specifying channel parameters.
|
||||
Either modem_config or bandwidth/spreading/coding will be specified - NOT BOTH.
|
||||
As a heuristic: If bandwidth is specified, do not use modem_config.
|
||||
Because protobufs take ZERO space when the value is zero this works out nicely.
|
||||
This value is replaced by bandwidth/spread_factor/coding_rate.
|
||||
If you'd like to experiment with other options add them to MeshRadio.cpp in the device code. */
|
||||
ChannelSettings_ModemConfig modem_config;
|
||||
/* Bandwidth in MHz
|
||||
Certain bandwidth numbers are 'special' and will be converted to the
|
||||
appropriate floating point value: 31 -> 31.25MHz */
|
||||
ChannelSettings_psk_t psk;
|
||||
/* A number from 7 to 12.
|
||||
Indicates number of chirps per symbol as 1<<spread_factor. */
|
||||
char name[12];
|
||||
/* The denominator of the coding rate.
|
||||
ie for 4/8, the value is 8. 5/8 the value is 5. */
|
||||
uint16_t bandwidth;
|
||||
/* NOTE: this field is _independent_ and unrelated to the concepts in channel.proto.
|
||||
this is controlling the actual hardware frequency the radio is transmitting on.
|
||||
In a perfect world we would have called it something else (band?) but I forgot to make this change during the big 1.2 renaming.
|
||||
@@ -88,7 +56,7 @@ typedef struct _ChannelSettings {
|
||||
hash = ((hash << 5) + hash) + (unsigned char) c;
|
||||
return hash;
|
||||
} */
|
||||
uint32_t spread_factor;
|
||||
ChannelSettings_psk_t psk;
|
||||
/* A simple pre-shared key for now for crypto.
|
||||
Must be either 0 bytes (no crypto), 16 bytes (AES128), or 32 bytes (AES256).
|
||||
A special shorthand is used for 1 byte long psks.
|
||||
@@ -99,7 +67,7 @@ typedef struct _ChannelSettings {
|
||||
`1` = The special "default" channel key: {0xd4, 0xf1, 0xbb, 0x3a, 0x20, 0x29, 0x07, 0x59, 0xf0, 0xbc, 0xff, 0xab, 0xcf, 0x4e, 0x69, 0xbf}
|
||||
`2` through 10 = The default channel key, except with 1 through 9 added to the last byte.
|
||||
Shown to user as simple1 through 10 */
|
||||
uint8_t coding_rate;
|
||||
char name[12];
|
||||
/* A SHORT name that will be packed into the URL.
|
||||
Less than 12 bytes.
|
||||
Something for end users to call the channel
|
||||
@@ -142,10 +110,6 @@ typedef struct _Channel {
|
||||
|
||||
|
||||
/* Helper constants for enums */
|
||||
#define _ChannelSettings_ModemConfig_MIN ChannelSettings_ModemConfig_VLongSlow
|
||||
#define _ChannelSettings_ModemConfig_MAX ChannelSettings_ModemConfig_ShortFast
|
||||
#define _ChannelSettings_ModemConfig_ARRAYSIZE ((ChannelSettings_ModemConfig)(ChannelSettings_ModemConfig_ShortFast+1))
|
||||
|
||||
#define _Channel_Role_MIN Channel_Role_DISABLED
|
||||
#define _Channel_Role_MAX Channel_Role_SECONDARY
|
||||
#define _Channel_Role_ARRAYSIZE ((Channel_Role)(Channel_Role_SECONDARY+1))
|
||||
@@ -156,19 +120,14 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/* Initializer values for message structs */
|
||||
#define ChannelSettings_init_default {0, _ChannelSettings_ModemConfig_MIN, {0, {0}}, "", 0, 0, 0, 0, 0, 0, 0}
|
||||
#define ChannelSettings_init_default {{0, {0}}, "", 0, 0, 0, 0}
|
||||
#define Channel_init_default {0, false, ChannelSettings_init_default, _Channel_Role_MIN}
|
||||
#define ChannelSettings_init_zero {0, _ChannelSettings_ModemConfig_MIN, {0, {0}}, "", 0, 0, 0, 0, 0, 0, 0}
|
||||
#define ChannelSettings_init_zero {{0, {0}}, "", 0, 0, 0, 0}
|
||||
#define Channel_init_zero {0, false, ChannelSettings_init_zero, _Channel_Role_MIN}
|
||||
|
||||
/* Field tags (for use in manual encoding/decoding) */
|
||||
#define ChannelSettings_tx_power_tag 1
|
||||
#define ChannelSettings_modem_config_tag 3
|
||||
#define ChannelSettings_psk_tag 4
|
||||
#define ChannelSettings_name_tag 5
|
||||
#define ChannelSettings_bandwidth_tag 6
|
||||
#define ChannelSettings_spread_factor_tag 7
|
||||
#define ChannelSettings_coding_rate_tag 8
|
||||
#define ChannelSettings_channel_num_tag 9
|
||||
#define ChannelSettings_id_tag 10
|
||||
#define ChannelSettings_uplink_enabled_tag 16
|
||||
@@ -179,13 +138,8 @@ extern "C" {
|
||||
|
||||
/* Struct field encoding specification for nanopb */
|
||||
#define ChannelSettings_FIELDLIST(X, a) \
|
||||
X(a, STATIC, SINGULAR, INT32, tx_power, 1) \
|
||||
X(a, STATIC, SINGULAR, UENUM, modem_config, 3) \
|
||||
X(a, STATIC, SINGULAR, BYTES, psk, 4) \
|
||||
X(a, STATIC, SINGULAR, STRING, name, 5) \
|
||||
X(a, STATIC, SINGULAR, UINT32, bandwidth, 6) \
|
||||
X(a, STATIC, SINGULAR, UINT32, spread_factor, 7) \
|
||||
X(a, STATIC, SINGULAR, UINT32, coding_rate, 8) \
|
||||
X(a, STATIC, SINGULAR, UINT32, channel_num, 9) \
|
||||
X(a, STATIC, SINGULAR, FIXED32, id, 10) \
|
||||
X(a, STATIC, SINGULAR, BOOL, uplink_enabled, 16) \
|
||||
@@ -209,8 +163,8 @@ extern const pb_msgdesc_t Channel_msg;
|
||||
#define Channel_fields &Channel_msg
|
||||
|
||||
/* Maximum encoded size of messages (where known) */
|
||||
#define ChannelSettings_size 87
|
||||
#define Channel_size 102
|
||||
#define ChannelSettings_size 61
|
||||
#define Channel_size 76
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
|
||||
@@ -52,3 +52,4 @@ PB_BIND(Config_ModuleConfig_CannedMessageConfig, Config_ModuleConfig_CannedMessa
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -10,6 +10,17 @@
|
||||
#error Regenerate this file with the current version of nanopb generator.
|
||||
#endif
|
||||
|
||||
/* Enum definitions */
|
||||
typedef enum _Config_LoRaConfig_ModemConfig {
|
||||
Config_LoRaConfig_ModemConfig_VLongSlow = 0,
|
||||
Config_LoRaConfig_ModemConfig_LongSlow = 1,
|
||||
Config_LoRaConfig_ModemConfig_LongFast = 2,
|
||||
Config_LoRaConfig_ModemConfig_MidSlow = 3,
|
||||
Config_LoRaConfig_ModemConfig_MidFast = 4,
|
||||
Config_LoRaConfig_ModemConfig_ShortSlow = 5,
|
||||
Config_LoRaConfig_ModemConfig_ShortFast = 6
|
||||
} Config_LoRaConfig_ModemConfig;
|
||||
|
||||
/* Struct definitions */
|
||||
typedef struct _Config_DeviceConfig {
|
||||
char dummy_field;
|
||||
@@ -23,10 +34,6 @@ typedef struct _Config_GpsConfig {
|
||||
char dummy_field;
|
||||
} Config_GpsConfig;
|
||||
|
||||
typedef struct _Config_LoRaConfig {
|
||||
char dummy_field;
|
||||
} Config_LoRaConfig;
|
||||
|
||||
typedef struct _Config_ModuleConfig_CannedMessageConfig {
|
||||
char dummy_field;
|
||||
} Config_ModuleConfig_CannedMessageConfig;
|
||||
@@ -55,6 +62,14 @@ typedef struct _Config_PowerConfig {
|
||||
char dummy_field;
|
||||
} Config_PowerConfig;
|
||||
|
||||
typedef struct _Config_LoRaConfig {
|
||||
int32_t tx_power;
|
||||
Config_LoRaConfig_ModemConfig modem_config;
|
||||
uint32_t bandwidth;
|
||||
uint32_t spread_factor;
|
||||
uint32_t coding_rate;
|
||||
} Config_LoRaConfig;
|
||||
|
||||
typedef struct _Config_ModuleConfig_TelemetryConfig {
|
||||
uint32_t device_update_interval;
|
||||
uint32_t environment_update_interval;
|
||||
@@ -101,6 +116,12 @@ typedef struct _Config {
|
||||
} Config;
|
||||
|
||||
|
||||
/* Helper constants for enums */
|
||||
#define _Config_LoRaConfig_ModemConfig_MIN Config_LoRaConfig_ModemConfig_VLongSlow
|
||||
#define _Config_LoRaConfig_ModemConfig_MAX Config_LoRaConfig_ModemConfig_ShortFast
|
||||
#define _Config_LoRaConfig_ModemConfig_ARRAYSIZE ((Config_LoRaConfig_ModemConfig)(Config_LoRaConfig_ModemConfig_ShortFast+1))
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -112,7 +133,7 @@ extern "C" {
|
||||
#define Config_PowerConfig_init_default {0}
|
||||
#define Config_WiFiConfig_init_default {{{NULL}, NULL}, {{NULL}, NULL}, 0}
|
||||
#define Config_DisplayConfig_init_default {0}
|
||||
#define Config_LoRaConfig_init_default {0}
|
||||
#define Config_LoRaConfig_init_default {0, _Config_LoRaConfig_ModemConfig_MIN, 0, 0, 0}
|
||||
#define Config_ModuleConfig_init_default {0, {Config_ModuleConfig_MQTTConfig_init_default}}
|
||||
#define Config_ModuleConfig_MQTTConfig_init_default {0}
|
||||
#define Config_ModuleConfig_SerialConfig_init_default {0}
|
||||
@@ -127,7 +148,7 @@ extern "C" {
|
||||
#define Config_PowerConfig_init_zero {0}
|
||||
#define Config_WiFiConfig_init_zero {{{NULL}, NULL}, {{NULL}, NULL}, 0}
|
||||
#define Config_DisplayConfig_init_zero {0}
|
||||
#define Config_LoRaConfig_init_zero {0}
|
||||
#define Config_LoRaConfig_init_zero {0, _Config_LoRaConfig_ModemConfig_MIN, 0, 0, 0}
|
||||
#define Config_ModuleConfig_init_zero {0, {Config_ModuleConfig_MQTTConfig_init_zero}}
|
||||
#define Config_ModuleConfig_MQTTConfig_init_zero {0}
|
||||
#define Config_ModuleConfig_SerialConfig_init_zero {0}
|
||||
@@ -138,6 +159,11 @@ extern "C" {
|
||||
#define Config_ModuleConfig_CannedMessageConfig_init_zero {0}
|
||||
|
||||
/* Field tags (for use in manual encoding/decoding) */
|
||||
#define Config_LoRaConfig_tx_power_tag 1
|
||||
#define Config_LoRaConfig_modem_config_tag 3
|
||||
#define Config_LoRaConfig_bandwidth_tag 6
|
||||
#define Config_LoRaConfig_spread_factor_tag 7
|
||||
#define Config_LoRaConfig_coding_rate_tag 8
|
||||
#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
|
||||
@@ -212,7 +238,11 @@ X(a, STATIC, SINGULAR, BOOL, wifi_ap_mode, 3)
|
||||
#define Config_DisplayConfig_DEFAULT NULL
|
||||
|
||||
#define Config_LoRaConfig_FIELDLIST(X, a) \
|
||||
|
||||
X(a, STATIC, SINGULAR, INT32, tx_power, 1) \
|
||||
X(a, STATIC, SINGULAR, UENUM, modem_config, 3) \
|
||||
X(a, STATIC, SINGULAR, UINT32, bandwidth, 6) \
|
||||
X(a, STATIC, SINGULAR, UINT32, spread_factor, 7) \
|
||||
X(a, STATIC, SINGULAR, UINT32, coding_rate, 8)
|
||||
#define Config_LoRaConfig_CALLBACK NULL
|
||||
#define Config_LoRaConfig_DEFAULT NULL
|
||||
|
||||
@@ -316,7 +346,7 @@ extern const pb_msgdesc_t Config_ModuleConfig_CannedMessageConfig_msg;
|
||||
#define Config_DeviceConfig_size 0
|
||||
#define Config_DisplayConfig_size 0
|
||||
#define Config_GpsConfig_size 0
|
||||
#define Config_LoRaConfig_size 0
|
||||
#define Config_LoRaConfig_size 31
|
||||
#define Config_ModuleConfig_CannedMessageConfig_size 0
|
||||
#define Config_ModuleConfig_ExternalNotificationConfig_size 0
|
||||
#define Config_ModuleConfig_MQTTConfig_size 0
|
||||
|
||||
@@ -158,7 +158,7 @@ extern const pb_msgdesc_t OEMStore_msg;
|
||||
#define OEMStore_fields &OEMStore_msg
|
||||
|
||||
/* Maximum encoded size of messages (where known) */
|
||||
#define ChannelFile_size 832
|
||||
#define ChannelFile_size 624
|
||||
#define DeviceState_size 19197
|
||||
#define OEMStore_size 2106
|
||||
|
||||
|
||||
@@ -55,4 +55,3 @@ PB_BIND(ToRadio_PeerInfo, ToRadio_PeerInfo, AUTO)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user