mirror of
https://github.com/meshtastic/protobufs.git
synced 2026-04-20 22:13:55 +00:00
Merge branch 'meshtastic:master' into master
This commit is contained in:
commit
773e6a4246
14 changed files with 355 additions and 409 deletions
|
|
@ -1,4 +1,4 @@
|
|||
*AdminMessage.variant anonymous_oneof:true
|
||||
*AdminMessage.payload_variant anonymous_oneof:true
|
||||
|
||||
*AdminMessage.set_canned_message_module_messages max_size:201
|
||||
*AdminMessage.get_canned_message_module_messages_response max_size:201
|
||||
|
|
|
|||
180
admin.proto
180
admin.proto
|
|
@ -42,7 +42,7 @@ message AdminMessage {
|
|||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
WIFI_CONFIG = 3;
|
||||
NETWORK_CONFIG = 3;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
|
|
@ -104,87 +104,112 @@ message AdminMessage {
|
|||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
oneof variant {
|
||||
|
||||
/*
|
||||
* Set the owner for this node
|
||||
*/
|
||||
User set_owner = 2;
|
||||
|
||||
/*
|
||||
* Set channels (using the new API).
|
||||
* A special channel is the "primary channel".
|
||||
* The other records are secondary channels.
|
||||
* Note: only one channel can be marked as primary.
|
||||
* If the client sets a particular channel to be primary, the previous channel will be set to SECONDARY automatically.
|
||||
*/
|
||||
Channel set_channel = 3;
|
||||
oneof payload_variant {
|
||||
|
||||
/*
|
||||
* Send the specified channel in the response to this message
|
||||
* NOTE: This field is sent with the channel index + 1 (to ensure we never try to send 'zero' - which protobufs treats as not present)
|
||||
*/
|
||||
uint32 get_channel_request = 6;
|
||||
uint32 get_channel_request = 1;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
Channel get_channel_response = 7;
|
||||
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
Channel get_channel_response = 2;
|
||||
|
||||
/*
|
||||
* Send the current owner data in the response to this message.
|
||||
*/
|
||||
bool get_owner_request = 8;
|
||||
|
||||
* Send the current owner data in the response to this message.
|
||||
*/
|
||||
bool get_owner_request = 3;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
User get_owner_response = 9;
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
User get_owner_response = 4;
|
||||
|
||||
/*
|
||||
* Ask for the following config data to be sent
|
||||
*/
|
||||
ConfigType get_config_request = 5;
|
||||
|
||||
/*
|
||||
* Send the current Config in the response to this message.
|
||||
*/
|
||||
Config get_config_response = 6;
|
||||
|
||||
/*
|
||||
* Ask for the following config data to be sent
|
||||
*/
|
||||
ConfigType get_config_request = 10;
|
||||
ModuleConfigType get_module_config_request = 7;
|
||||
|
||||
/*
|
||||
* Send the current Config in the response to this message.
|
||||
*/
|
||||
Config get_config_response = 11;
|
||||
|
||||
/*
|
||||
* Set the current Config
|
||||
*/
|
||||
Config set_config = 12;
|
||||
|
||||
/*
|
||||
* Sent immediatly after a config change has been sent to ensure comms, if this is not recieved, the config will be reverted after 10 mins
|
||||
*/
|
||||
bool confirm_set_config = 13;
|
||||
|
||||
/*
|
||||
* Ask for the following config data to be sent
|
||||
*/
|
||||
ModuleConfigType get_module_config_request = 14;
|
||||
|
||||
/*
|
||||
* Send the current Config in the response to this message.
|
||||
*/
|
||||
ModuleConfig get_module_config_response = 15;
|
||||
|
||||
/*
|
||||
* Set the current Config
|
||||
*/
|
||||
ModuleConfig set_module_config = 16;
|
||||
|
||||
/*
|
||||
* Sent immediatly after a config change has been sent to ensure comms, if this is not recieved, the config will be reverted after 10 mins
|
||||
*/
|
||||
bool confirm_set_module_config = 17;
|
||||
ModuleConfig get_module_config_response = 8;
|
||||
|
||||
/*
|
||||
* Send all channels in the response to this message
|
||||
*/
|
||||
bool get_all_channel_request = 18;
|
||||
bool get_all_channel_request = 9;
|
||||
|
||||
/*
|
||||
* Get the Canned Message Module messages in the response to this message.
|
||||
*/
|
||||
bool get_canned_message_module_messages_request = 10;
|
||||
|
||||
/*
|
||||
* Get the Canned Message Module messages in the response to this message.
|
||||
*/
|
||||
string get_canned_message_module_messages_response = 11;
|
||||
|
||||
/*
|
||||
* Request the node to send device metadata (firmware, protobuf version, etc)
|
||||
*/
|
||||
uint32 get_device_metadata_request = 12;
|
||||
|
||||
/*
|
||||
* Device metadata response
|
||||
*/
|
||||
DeviceMetadata get_device_metadata_response = 13;
|
||||
|
||||
/*
|
||||
* Set the owner for this node
|
||||
*/
|
||||
User set_owner = 32;
|
||||
|
||||
/*
|
||||
* Set channels (using the new API).
|
||||
* A special channel is the "primary channel".
|
||||
* The other records are secondary channels.
|
||||
* Note: only one channel can be marked as primary.
|
||||
* If the client sets a particular channel to be primary, the previous channel will be set to SECONDARY automatically.
|
||||
*/
|
||||
Channel set_channel = 33;
|
||||
|
||||
/*
|
||||
* Set the current Config
|
||||
*/
|
||||
Config set_config = 34;
|
||||
|
||||
/*
|
||||
* Set the current Config
|
||||
*/
|
||||
ModuleConfig set_module_config = 35;
|
||||
|
||||
/*
|
||||
* Set the Canned Message Module messages text.
|
||||
*/
|
||||
string set_canned_message_module_messages = 36;
|
||||
|
||||
/*
|
||||
* Sent immediatly after a config change has been sent to ensure comms, if this is not recieved, the config will be reverted after 10 mins
|
||||
*/
|
||||
bool confirm_set_config = 64;
|
||||
|
||||
/*
|
||||
* Sent immediatly after a config change has been sent to ensure comms, if this is not recieved, the config will be reverted after 10 mins
|
||||
*/
|
||||
bool confirm_set_module_config = 65;
|
||||
|
||||
/*
|
||||
* Setting channels/radio config remotely carries the risk that you might send an invalid config and the radio never talks to your mesh again.
|
||||
|
|
@ -192,52 +217,37 @@ message AdminMessage {
|
|||
* If you fail to do so, the radio will assume loss of comms and revert your changes.
|
||||
* These messages are optional when changing the local node.
|
||||
*/
|
||||
bool confirm_set_channel = 32;
|
||||
bool confirm_set_channel = 66;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
bool confirm_set_radio = 33;
|
||||
bool confirm_set_radio = 67;
|
||||
|
||||
/*
|
||||
* This message is only supported for the simulator porduino build.
|
||||
* If received the simulator will exit successfully.
|
||||
*/
|
||||
bool exit_simulator = 34;
|
||||
bool exit_simulator = 96;
|
||||
|
||||
/*
|
||||
* Tell the node to reboot in this many seconds (or <0 to cancel reboot)
|
||||
*/
|
||||
int32 reboot_seconds = 35;
|
||||
|
||||
/*
|
||||
* Get the Canned Message Module messages in the response to this message.
|
||||
*/
|
||||
bool get_canned_message_module_messages_request = 36;
|
||||
|
||||
/*
|
||||
* Get the Canned Message Module messages in the response to this message.
|
||||
*/
|
||||
string get_canned_message_module_messages_response = 37;
|
||||
|
||||
/*
|
||||
* Set the Canned Message Module messages text.
|
||||
*/
|
||||
string set_canned_message_module_messages = 44;
|
||||
int32 reboot_seconds = 97;
|
||||
|
||||
/*
|
||||
* Tell the node to shutdown in this many seconds (or <0 to cancel shutdown)
|
||||
*/
|
||||
int32 shutdown_seconds = 51;
|
||||
int32 shutdown_seconds = 98;
|
||||
|
||||
/*
|
||||
* Request the node to send device metadata (firmware, protobuf version, etc)
|
||||
* Tell the node to factory reset, all device settings will be returned to factory defaults.
|
||||
*/
|
||||
uint32 get_device_metadata_request = 52;
|
||||
int32 factory_reset = 99;
|
||||
|
||||
/*
|
||||
* Device metadata response
|
||||
* Tell the node to reset the nodedb.
|
||||
*/
|
||||
DeviceMetadata get_device_metadata_response = 53;
|
||||
int32 nodedb_reset = 100;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ message ChannelSettings {
|
|||
* return hash;
|
||||
* }
|
||||
*/
|
||||
uint32 channel_num = 9;
|
||||
uint32 channel_num = 1;
|
||||
|
||||
/*
|
||||
* A simple pre-shared key for now for crypto.
|
||||
|
|
@ -64,7 +64,7 @@ message ChannelSettings {
|
|||
* `2` through 10 = The default channel key, except with 1 through 9 added to the last byte.
|
||||
* Shown to user as simple1 through 10
|
||||
*/
|
||||
bytes psk = 4;
|
||||
bytes psk = 2;
|
||||
|
||||
/*
|
||||
* A SHORT name that will be packed into the URL.
|
||||
|
|
@ -76,7 +76,7 @@ message ChannelSettings {
|
|||
* For channel_num hashing empty string will be treated as "X".
|
||||
* Where "X" is selected based on the English words listed above for ModemPreset
|
||||
*/
|
||||
string name = 5;
|
||||
string name = 3;
|
||||
|
||||
/*
|
||||
* Used to construct a globally unique channel ID.
|
||||
|
|
@ -91,17 +91,17 @@ message ChannelSettings {
|
|||
* a table of well known IDs.
|
||||
* (see Well Known Channels FIXME)
|
||||
*/
|
||||
fixed32 id = 10;
|
||||
fixed32 id = 4;
|
||||
|
||||
/*
|
||||
* If true, messages on the mesh will be sent to the *public* internet by any gateway ndoe
|
||||
*/
|
||||
bool uplink_enabled = 16;
|
||||
bool uplink_enabled = 5;
|
||||
|
||||
/*
|
||||
* If true, messages seen on the internet will be forwarded to the local mesh.
|
||||
*/
|
||||
bool downlink_enabled = 17;
|
||||
bool downlink_enabled = 6;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
*WiFiConfig.ssid max_size:33
|
||||
*WiFiConfig.psk max_size:64
|
||||
*NetworkConfig.wifi_ssid max_size:33
|
||||
*NetworkConfig.wifi_psk max_size:64
|
||||
|
||||
# Max of three ignored nodes for our testing
|
||||
*LoRaConfig.ignore_incoming max_count:3
|
||||
|
||||
*DeviceConfig.ntp_server max_size:33
|
||||
*NetworkConfig.ntp_server max_size:33
|
||||
|
|
|
|||
224
config.proto
224
config.proto
|
|
@ -18,26 +18,26 @@ message Config {
|
|||
/*
|
||||
* Client device role
|
||||
*/
|
||||
Client = 0;
|
||||
CLIENT = 0;
|
||||
|
||||
/*
|
||||
* Client Mute device role
|
||||
* Same as a client except packets will not hop over this node, does not contribute to routing packets for mesh.
|
||||
*/
|
||||
ClientMute = 1;
|
||||
CLIENT_MUTE = 1;
|
||||
|
||||
/*
|
||||
* Router device role.
|
||||
* Mesh packets will prefer to be routed over this node. This node will not be used by client apps.
|
||||
* The wifi/ble radios and the oled screen will be put to sleep.
|
||||
*/
|
||||
Router = 2;
|
||||
ROUTER = 2;
|
||||
|
||||
/*
|
||||
* Router Client device role
|
||||
* Mesh packets will prefer to be routed over this node. The Router Client can be used as both a Router and an app connected Client.
|
||||
*/
|
||||
RouterClient = 3;
|
||||
ROUTER_CLIENT = 3;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -47,25 +47,15 @@ message Config {
|
|||
Role role = 1;
|
||||
|
||||
/*
|
||||
* If set, this will disable the SerialConsole by not initilizing the StreamAPI
|
||||
* Disabling this will disable the SerialConsole by not initilizing the StreamAPI
|
||||
*/
|
||||
bool serial_disabled = 2;
|
||||
|
||||
/*
|
||||
* This setting is never saved to disk, but if set, all device settings will be returned to factory defaults.
|
||||
*/
|
||||
bool factory_reset = 3;
|
||||
bool serial_enabled = 2;
|
||||
|
||||
/*
|
||||
* By default we turn off logging as soon as an API client connects (to keep shared serial link quiet).
|
||||
* Set this to true to leave the debug log outputting even when API is active.
|
||||
*/
|
||||
bool debug_log_enabled = 4;
|
||||
|
||||
/*
|
||||
* NTP server to use if WiFi is conneced, defaults to `0.pool.ntp.org`
|
||||
*/
|
||||
string ntp_server = 5;
|
||||
bool debug_log_enabled = 3;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -84,61 +74,61 @@ message Config {
|
|||
/*
|
||||
* Required for compilation
|
||||
*/
|
||||
POS_UNDEFINED = 0x0000;
|
||||
UNSET = 0x0000;
|
||||
|
||||
/*
|
||||
* Include an altitude value (if available)
|
||||
*/
|
||||
POS_ALTITUDE = 0x0001;
|
||||
ALTITUDE = 0x0001;
|
||||
|
||||
/*
|
||||
* Altitude value is MSL
|
||||
*/
|
||||
POS_ALT_MSL = 0x0002;
|
||||
ALTITUDE_MSL = 0x0002;
|
||||
|
||||
/*
|
||||
* Include geoidal separation
|
||||
*/
|
||||
POS_GEO_SEP = 0x0004;
|
||||
GEOIDAL_SEPERATION = 0x0004;
|
||||
|
||||
/*
|
||||
* Include the DOP value ; PDOP used by default, see below
|
||||
*/
|
||||
POS_DOP = 0x0008;
|
||||
DOP = 0x0008;
|
||||
|
||||
/*
|
||||
* If POS_DOP set, send separate HDOP / VDOP values instead of PDOP
|
||||
*/
|
||||
POS_HVDOP = 0x0010;
|
||||
HVDOP = 0x0010;
|
||||
|
||||
/*
|
||||
* Include number of "satellites in view"
|
||||
*/
|
||||
POS_SATINVIEW = 0x0020;
|
||||
SATINVIEW = 0x0020;
|
||||
|
||||
/*
|
||||
* Include a sequence number incremented per packet
|
||||
*/
|
||||
POS_SEQ_NOS = 0x0040;
|
||||
SEQ_NO = 0x0040;
|
||||
|
||||
/*
|
||||
* Include positional timestamp (from GPS solution)
|
||||
*/
|
||||
POS_TIMESTAMP = 0x0080;
|
||||
TIMESTAMP = 0x0080;
|
||||
|
||||
/*
|
||||
* Include positional heading
|
||||
* Intended for use with vehicle not walking speeds
|
||||
* walking speeds are likely to be error prone like the compass
|
||||
*/
|
||||
POS_HEADING = 0x0100;
|
||||
HEADING = 0x0100;
|
||||
|
||||
/*
|
||||
* Include positional speed
|
||||
* Intended for use with vehicle not walking speeds
|
||||
* walking speeds are likely to be error prone like the compass
|
||||
*/
|
||||
POS_SPEED = 0x0200;
|
||||
SPEED = 0x0200;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -148,9 +138,9 @@ message Config {
|
|||
uint32 position_broadcast_secs = 1;
|
||||
|
||||
/*
|
||||
* Disable adaptive position braoadcast, which is now the default.
|
||||
* Adaptive position braoadcast, which is now the default.
|
||||
*/
|
||||
bool position_broadcast_smart_disabled = 2;
|
||||
bool position_broadcast_smart_enabled = 2;
|
||||
|
||||
/*
|
||||
* If set, this node is at a fixed position.
|
||||
|
|
@ -160,16 +150,16 @@ message Config {
|
|||
bool fixed_position = 3;
|
||||
|
||||
/*
|
||||
* Should the GPS be disabled for this node?
|
||||
* Is GPS enabled for this node?
|
||||
*/
|
||||
bool gps_disabled = 5;
|
||||
bool gps_enabled = 4;
|
||||
|
||||
/*
|
||||
* How often should we try to get GPS position (in seconds)
|
||||
* or zero for the default of once every 30 seconds
|
||||
* or a very large value (maxint) to update only once at boot.
|
||||
*/
|
||||
uint32 gps_update_interval = 6;
|
||||
uint32 gps_update_interval = 5;
|
||||
|
||||
/*
|
||||
* How long should we try to get our position during each gps_update_interval attempt? (in seconds)
|
||||
|
|
@ -177,13 +167,13 @@ message Config {
|
|||
* If we don't get a new gps fix in that time, the gps will be put into sleep until the next gps_update_rate
|
||||
* window.
|
||||
*/
|
||||
uint32 gps_attempt_time = 7;
|
||||
uint32 gps_attempt_time = 6;
|
||||
|
||||
/*
|
||||
* Bit field of boolean configuration options for POSITION messages
|
||||
* (bitwise OR of PositionFlags)
|
||||
*/
|
||||
uint32 position_flags = 10;
|
||||
uint32 position_flags = 7;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -193,49 +183,18 @@ message Config {
|
|||
*/
|
||||
message PowerConfig {
|
||||
|
||||
/*
|
||||
* Sets the charge control current of devices with a battery charger that can be configured
|
||||
* **TBEAM 1.1 Only**
|
||||
*/
|
||||
enum ChargeCurrent {
|
||||
|
||||
MAUnset = 0;
|
||||
MA100 = 1;
|
||||
MA190 = 2;
|
||||
MA280 = 3;
|
||||
MA360 = 4;
|
||||
MA450 = 5;
|
||||
MA550 = 6;
|
||||
MA630 = 7;
|
||||
MA700 = 8;
|
||||
MA780 = 9;
|
||||
MA880 = 10;
|
||||
MA960 = 11;
|
||||
MA1000 = 12;
|
||||
MA1080 = 13;
|
||||
MA1160 = 14;
|
||||
MA1240 = 15;
|
||||
MA1320 = 16;
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets the current of the battery charger
|
||||
* TBEAM 1.1 Only
|
||||
*/
|
||||
ChargeCurrent charge_current = 1;
|
||||
|
||||
/*
|
||||
* If set, we are powered from a low-current source (i.e. solar), so even if it looks like we have power flowing in
|
||||
* we should try to minimize power consumption as much as possible.
|
||||
* YOU DO NOT NEED TO SET THIS IF YOU'VE set is_router (it is implied in that case).
|
||||
* Advanced Option
|
||||
*/
|
||||
bool is_power_saving = 2;
|
||||
bool is_power_saving = 1;
|
||||
|
||||
/*
|
||||
* If non-zero, the device will fully power off this many seconds after external power is removed.
|
||||
*/
|
||||
uint32 on_battery_shutdown_after_secs = 4;
|
||||
uint32 on_battery_shutdown_after_secs = 2;
|
||||
|
||||
/*
|
||||
* Ratio of voltage divider for battery pin eg. 3.20 (R1=100k, R2=220k)
|
||||
|
|
@ -243,14 +202,14 @@ message Config {
|
|||
* Should be set to floating point value between 2 and 4
|
||||
* Fixes issues on Heltec v2
|
||||
*/
|
||||
float adc_multiplier_override = 6;
|
||||
float adc_multiplier_override = 3;
|
||||
|
||||
/*
|
||||
* Wait Bluetooth Seconds
|
||||
* The number of seconds for to wait before turning off BLE in No Bluetooth states
|
||||
* 0 for default of 1 minute
|
||||
*/
|
||||
uint32 wait_bluetooth_secs = 7;
|
||||
uint32 wait_bluetooth_secs = 4;
|
||||
|
||||
/*
|
||||
* Mesh Super Deep Sleep Timeout Seconds
|
||||
|
|
@ -258,7 +217,7 @@ message Config {
|
|||
* for sds_secs (default 1 year) or a button press
|
||||
* 0 for default of two hours, MAXUINT for disabled
|
||||
*/
|
||||
uint32 mesh_sds_timeout_secs = 9;
|
||||
uint32 mesh_sds_timeout_secs = 5;
|
||||
|
||||
/*
|
||||
* Super Deep Sleep Seconds
|
||||
|
|
@ -266,7 +225,7 @@ message Config {
|
|||
* for this value (default 1 year) or a button press
|
||||
* 0 for default of one year
|
||||
*/
|
||||
uint32 sds_secs = 10;
|
||||
uint32 sds_secs = 6;
|
||||
|
||||
/*
|
||||
* Light Sleep Seconds
|
||||
|
|
@ -274,60 +233,65 @@ message Config {
|
|||
* ESP32 Only
|
||||
* 0 for default of 300
|
||||
*/
|
||||
uint32 ls_secs = 11;
|
||||
uint32 ls_secs = 7;
|
||||
|
||||
/*
|
||||
* Minimum Wake Seconds
|
||||
* While in light sleep when we receive packets on the LoRa radio we will wake and handle them and stay awake in no BLE mode for this value
|
||||
* 0 for default of 10 seconds
|
||||
*/
|
||||
uint32 min_wake_secs = 12;
|
||||
uint32 min_wake_secs = 8;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* WiFi Config
|
||||
* Network Config
|
||||
*/
|
||||
message WiFiConfig {
|
||||
message NetworkConfig {
|
||||
|
||||
enum WiFiMode {
|
||||
/*
|
||||
* This mode is used to connect to an external WiFi network
|
||||
*/
|
||||
Client = 0;
|
||||
CLIENT = 0;
|
||||
|
||||
/*
|
||||
* In this mode the node will operate as an AP (and DHCP server)
|
||||
*/
|
||||
AccessPoint = 1;
|
||||
ACCESS_POINT = 1;
|
||||
|
||||
/*
|
||||
* If set, the node AP will broadcast as a hidden SSID
|
||||
*/
|
||||
AccessPointHidden = 2;
|
||||
ACCESS_POINT_HIDDEN = 2;
|
||||
}
|
||||
|
||||
/*
|
||||
* Enable WiFi (disables Bluetooth)
|
||||
*/
|
||||
bool enabled = 1;
|
||||
bool wifi_enabled = 1;
|
||||
|
||||
/*
|
||||
* If set, this node will try to join the specified wifi network and
|
||||
* acquire an address via DHCP
|
||||
*/
|
||||
WiFiMode mode = 2;
|
||||
WiFiMode wifi_mode = 2;
|
||||
|
||||
/*
|
||||
* If set, this node will try to join the specified wifi network and
|
||||
* acquire an address via DHCP
|
||||
*/
|
||||
string ssid = 3;
|
||||
string wifi_ssid = 3;
|
||||
|
||||
/*
|
||||
* If set, will be use to authenticate to the named wifi
|
||||
*/
|
||||
string psk = 4;
|
||||
string wifi_psk = 4;
|
||||
|
||||
/*
|
||||
* NTP server to use if WiFi is conneced, defaults to `0.pool.ntp.org`
|
||||
*/
|
||||
string ntp_server = 5;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -343,38 +307,54 @@ message Config {
|
|||
* GPS coordinates are displayed in the normal decimal degrees format:
|
||||
* DD.DDDDDD DDD.DDDDDD
|
||||
*/
|
||||
GpsFormatDec = 0;
|
||||
DEC = 0;
|
||||
|
||||
/*
|
||||
* GPS coordinates are displayed in the degrees minutes seconds format:
|
||||
* DD°MM'SS"C DDD°MM'SS"C, where C is the compass point representing the locations quadrant
|
||||
*/
|
||||
GpsFormatDMS = 1;
|
||||
DMS = 1;
|
||||
|
||||
/*
|
||||
* Universal Transverse Mercator format:
|
||||
* ZZB EEEEEE NNNNNNN, where Z is zone, B is band, E is easting, N is northing
|
||||
*/
|
||||
GpsFormatUTM = 2;
|
||||
UTM = 2;
|
||||
|
||||
/*
|
||||
* Military Grid Reference System format:
|
||||
* ZZB CD EEEEE NNNNN, where Z is zone, B is band, C is the east 100k square, D is the north 100k square,
|
||||
* E is easting, N is northing
|
||||
*/
|
||||
GpsFormatMGRS = 3;
|
||||
MGRS = 3;
|
||||
|
||||
/*
|
||||
* Open Location Code (aka Plus Codes).
|
||||
*/
|
||||
GpsFormatOLC = 4;
|
||||
OLC = 4;
|
||||
|
||||
/*
|
||||
* Ordnance Survey Grid Reference (the National Grid System of the UK).
|
||||
* Format: AB EEEEE NNNNN, where A is the east 100k square, B is the north 100k square,
|
||||
* E is the easting, N is the northing
|
||||
*/
|
||||
GpsFormatOSGR = 5;
|
||||
OSGR = 5;
|
||||
}
|
||||
|
||||
/*
|
||||
* Unit display preference
|
||||
*/
|
||||
enum DisplayUnits {
|
||||
|
||||
/*
|
||||
* Metric (Default)
|
||||
*/
|
||||
METRIC = 0;
|
||||
|
||||
/*
|
||||
* Imperial
|
||||
*/
|
||||
IMPERIAL = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -399,6 +379,16 @@ message Config {
|
|||
* (top of display is heading direction) is used.
|
||||
*/
|
||||
bool compass_north_top = 4;
|
||||
|
||||
/*
|
||||
* Flip screen vertically, for cases that mount the screen upside down
|
||||
*/
|
||||
bool flip_screen = 5;
|
||||
|
||||
/*
|
||||
* Perferred display units
|
||||
*/
|
||||
DisplayUnits units = 6;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -411,7 +401,7 @@ message Config {
|
|||
/*
|
||||
* Region is not set
|
||||
*/
|
||||
Unset = 0;
|
||||
UNSET = 0;
|
||||
|
||||
/*
|
||||
* United States
|
||||
|
|
@ -421,12 +411,12 @@ message Config {
|
|||
/*
|
||||
* European Union 433mhz
|
||||
*/
|
||||
EU433 = 2;
|
||||
EU_433 = 2;
|
||||
|
||||
/*
|
||||
* European Union 433mhz
|
||||
*/
|
||||
EU868 = 3;
|
||||
EU_868 = 3;
|
||||
|
||||
/*
|
||||
* China
|
||||
|
|
@ -466,7 +456,7 @@ message Config {
|
|||
/*
|
||||
* New Zealand 865mhz
|
||||
*/
|
||||
NZ865 = 11;
|
||||
NZ_865 = 11;
|
||||
|
||||
/*
|
||||
* Thailand
|
||||
|
|
@ -483,46 +473,44 @@ message Config {
|
|||
/*
|
||||
* Long Range - Fast
|
||||
*/
|
||||
LongFast = 0;
|
||||
LONG_FAST = 0;
|
||||
|
||||
/*
|
||||
* Long Range - Slow
|
||||
*/
|
||||
LongSlow = 1;
|
||||
LONG_SLOW = 1;
|
||||
|
||||
/*
|
||||
* Very Long Range - Slow
|
||||
*/
|
||||
VLongSlow = 2;
|
||||
VERY_LONG_SLOW = 2;
|
||||
|
||||
/*
|
||||
* Medium Range - Slow
|
||||
*/
|
||||
MedSlow = 3;
|
||||
MEDIUM_SLOW = 3;
|
||||
|
||||
/*
|
||||
* Medium Range - Fast
|
||||
*/
|
||||
MedFast = 4;
|
||||
MEDIUM_FAST = 4;
|
||||
|
||||
/*
|
||||
* Short Range - Slow
|
||||
*/
|
||||
ShortSlow = 5;
|
||||
SHORT_SLOW = 5;
|
||||
|
||||
/*
|
||||
* Short Range - Fast
|
||||
*/
|
||||
ShortFast = 6;
|
||||
SHORT_FAST = 6;
|
||||
}
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
int32 tx_power = 1;
|
||||
* When enabled, the `modem_preset` fields will be adheared to, else the `bandwidth`/`spread_factor`/`coding_rate`
|
||||
* will be taked from their respective manually defined fields
|
||||
*/
|
||||
bool use_preset = 1;
|
||||
|
||||
/*
|
||||
* Either modem_config or bandwidth/spreading/coding will be specified - NOT BOTH.
|
||||
|
|
@ -565,8 +553,8 @@ message Config {
|
|||
RegionCode region = 7;
|
||||
|
||||
/*
|
||||
* Overrides HOPS_RELIABLE and sets the maximum number of hops. This can't be greater than 7.
|
||||
* 0 for default of 3
|
||||
* Maximum number of hops. This can't be greater than 7.
|
||||
* Default of 3
|
||||
*/
|
||||
uint32 hop_limit = 8;
|
||||
|
||||
|
|
@ -574,7 +562,15 @@ message Config {
|
|||
* Disable TX from the LoRa radio. Useful for hot-swapping antennas and other tests.
|
||||
* Defaults to false
|
||||
*/
|
||||
bool tx_disabled = 9;
|
||||
bool tx_enabled = 9;
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
int32 tx_power = 10;
|
||||
|
||||
/*
|
||||
* For testing it is useful sometimes to force a node to never listen to
|
||||
|
|
@ -591,17 +587,17 @@ message Config {
|
|||
/*
|
||||
* Device generates a random pin that will be shown on the screen of the device for pairing
|
||||
*/
|
||||
RandomPin = 0;
|
||||
RANDOM_PIN = 0;
|
||||
|
||||
/*
|
||||
* Device requires a specified fixed pin for pairing
|
||||
*/
|
||||
FixedPin = 1;
|
||||
FIXED_PIN = 1;
|
||||
|
||||
/*
|
||||
* Device requires no pin for pairing
|
||||
*/
|
||||
NoPin = 2;
|
||||
NO_PIN = 2;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -624,12 +620,12 @@ message Config {
|
|||
/*
|
||||
* Payload Variant
|
||||
*/
|
||||
oneof payloadVariant {
|
||||
oneof payload_variant {
|
||||
|
||||
DeviceConfig device = 1;
|
||||
PositionConfig position = 2;
|
||||
PowerConfig power = 3;
|
||||
WiFiConfig wifi = 4;
|
||||
NetworkConfig network = 4;
|
||||
DisplayConfig display = 5;
|
||||
LoRaConfig lora = 6;
|
||||
BluetoothConfig bluetooth = 7;
|
||||
|
|
|
|||
|
|
@ -18,11 +18,6 @@ option java_outer_classname = "DeviceOnly";
|
|||
*/
|
||||
message DeviceState {
|
||||
|
||||
/*
|
||||
* Was secondary_channels before 1.2
|
||||
*/
|
||||
reserved 12;
|
||||
|
||||
/*
|
||||
* Read only settings/info about this node
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ message LocalConfig {
|
|||
/*
|
||||
* The part of the config that is specific to the Wifi Settings
|
||||
*/
|
||||
Config.WiFiConfig wifi = 4;
|
||||
Config.NetworkConfig network = 4;
|
||||
|
||||
/*
|
||||
* The part of the config that is specific to the Display
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
# outside of this envelope
|
||||
*Data.payload max_size:237
|
||||
*Data.payload_compressed max_size:237
|
||||
*Data.payloadVariant anonymous_oneof:true
|
||||
*Data.payload_variant anonymous_oneof:true
|
||||
|
||||
# Big enough for 1.2.28.568032c-d
|
||||
*MyNodeInfo.firmware_version max_size:18
|
||||
|
|
@ -26,13 +26,13 @@
|
|||
# Note: the actual limit (because of header bytes) on the size of encrypted payloads is 251 bytes, but I use 256
|
||||
# here because we might need to fill with zeros for padding to encryption block size (16 bytes per block)
|
||||
*MeshPacket.encrypted max_size:256
|
||||
*MeshPacket.payloadVariant anonymous_oneof:true
|
||||
*MeshPacket.payload_variant anonymous_oneof:true
|
||||
*MeshPacket.hop_limit int_size:8
|
||||
*MeshPacket.channel int_size:8
|
||||
|
||||
*ToRadio.payloadVariant anonymous_oneof:true
|
||||
*ToRadio.payload_variant anonymous_oneof:true
|
||||
|
||||
*FromRadio.payloadVariant anonymous_oneof:true
|
||||
*FromRadio.payload_variant anonymous_oneof:true
|
||||
|
||||
*Routing.variant anonymous_oneof:true
|
||||
|
||||
|
|
|
|||
230
mesh.proto
230
mesh.proto
|
|
@ -38,13 +38,7 @@ message Position {
|
|||
* be sent by devices which has a hardware GPS clock.
|
||||
* seconds since 1970
|
||||
*/
|
||||
fixed32 time = 9;
|
||||
|
||||
/*
|
||||
* Precision positioning elements - optional and usually not included
|
||||
* ------------------------------------------------------------------
|
||||
* TODO: REMOVE/INTEGRATE
|
||||
*/
|
||||
fixed32 time = 4;
|
||||
|
||||
/*
|
||||
* How the location was acquired: manual, onboard GPS, external (EUD) GPS
|
||||
|
|
@ -54,33 +48,28 @@ message Position {
|
|||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
LOCSRC_UNSPECIFIED = 0;
|
||||
LOC_UNSET = 0;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
LOCSRC_MANUAL_ENTRY = 1;
|
||||
LOC_MANUAL = 1;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
LOCSRC_GPS_INTERNAL = 2;
|
||||
LOC_INTERNAL = 2;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
LOCSRC_GPS_EXTERNAL = 3;
|
||||
/*
|
||||
* More location sources can be added here when available:
|
||||
* GSM, radio beacons (BLE etc), location fingerprinting etc
|
||||
* TODO: REMOVE/INTEGRATE
|
||||
*/
|
||||
LOC_EXTERNAL = 3;
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
LocSource location_source = 10;
|
||||
LocSource location_source = 5;
|
||||
|
||||
/*
|
||||
* How the altitude was acquired: manual, GPS int/ext, etc
|
||||
|
|
@ -91,53 +80,53 @@ message Position {
|
|||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
ALTSRC_UNSPECIFIED = 0;
|
||||
ALT_UNSET = 0;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
ALTSRC_MANUAL_ENTRY = 1;
|
||||
ALT_MANUAL = 1;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
ALTSRC_GPS_INTERNAL = 2;
|
||||
ALT_INTERNAL = 2;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
ALTSRC_GPS_EXTERNAL = 3;
|
||||
ALT_EXTERNAL = 3;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
ALTSRC_BAROMETRIC = 4;
|
||||
ALT_BAROMETRIC = 4;
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
AltSource altitude_source = 11;
|
||||
AltSource altitude_source = 6;
|
||||
|
||||
/*
|
||||
* Positional timestamp (actual timestamp of GPS solution) in integer epoch seconds
|
||||
*/
|
||||
fixed32 pos_timestamp = 12;
|
||||
fixed32 timestamp = 7;
|
||||
|
||||
/*
|
||||
* Pos. timestamp milliseconds adjustment (rarely available or required)
|
||||
*/
|
||||
int32 pos_time_millis = 13;
|
||||
int32 timestamp_millis_adjust = 8;
|
||||
|
||||
/*
|
||||
* HAE altitude in meters - can be used instead of MSL altitude
|
||||
*/
|
||||
sint32 altitude_hae = 14;
|
||||
sint32 altitude_hae = 9;
|
||||
|
||||
/*
|
||||
* Geoidal separation in meters
|
||||
*/
|
||||
sint32 alt_geoid_sep = 15;
|
||||
sint32 altitude_geoidal_seperation = 10;
|
||||
|
||||
/*
|
||||
* Horizontal, Vertical and Position Dilution of Precision, in 1/100 units
|
||||
|
|
@ -146,24 +135,24 @@ message Position {
|
|||
* in which case PDOP becomes redundant (PDOP=sqrt(HDOP^2 + VDOP^2))
|
||||
* TODO: REMOVE/INTEGRATE
|
||||
*/
|
||||
uint32 PDOP = 16;
|
||||
uint32 PDOP = 11;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 HDOP = 17;
|
||||
uint32 HDOP = 12;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 VDOP = 18;
|
||||
uint32 VDOP = 13;
|
||||
|
||||
/*
|
||||
* GPS accuracy (a hardware specific constant) in mm
|
||||
* multiplied with DOP to calculate positional accuracy
|
||||
* Default: "'bout three meters-ish" :)
|
||||
*/
|
||||
uint32 gps_accuracy = 19;
|
||||
uint32 gps_accuracy = 14;
|
||||
|
||||
/*
|
||||
* Ground speed in m/s and True North TRACK in 1/100 degrees
|
||||
|
|
@ -173,32 +162,32 @@ message Position {
|
|||
* - "yaw" indicates a relative rotation about the vertical axis
|
||||
* TODO: REMOVE/INTEGRATE
|
||||
*/
|
||||
uint32 ground_speed = 20;
|
||||
uint32 ground_speed = 15;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 ground_track = 21;
|
||||
uint32 ground_track = 16;
|
||||
|
||||
/*
|
||||
* GPS fix quality (from NMEA GxGGA statement or similar)
|
||||
*/
|
||||
uint32 fix_quality = 22;
|
||||
uint32 fix_quality = 17;
|
||||
|
||||
/*
|
||||
* GPS fix type 2D/3D (from NMEA GxGSA statement)
|
||||
*/
|
||||
uint32 fix_type = 23;
|
||||
uint32 fix_type = 18;
|
||||
|
||||
/*
|
||||
* GPS "Satellites in View" number
|
||||
*/
|
||||
uint32 sats_in_view = 24;
|
||||
uint32 sats_in_view = 19;
|
||||
|
||||
/*
|
||||
* Sensor ID - in case multiple positioning sensors are being used
|
||||
*/
|
||||
uint32 sensor_id = 25;
|
||||
uint32 sensor_id = 20;
|
||||
|
||||
/*
|
||||
* Estimated/expected time (in seconds) until next update:
|
||||
|
|
@ -206,18 +195,13 @@ message Position {
|
|||
* - if we update at dynamic intervals (based on relative movement etc),
|
||||
* but "AT LEAST every Y seconds", use Y
|
||||
*/
|
||||
uint32 pos_next_update = 40;
|
||||
uint32 next_update = 21;
|
||||
|
||||
/*
|
||||
* A sequence number, incremented with each Position message to help
|
||||
* detect lost updates if needed
|
||||
*/
|
||||
uint32 pos_seq_number = 41;
|
||||
|
||||
/*
|
||||
* END precision positioning elements
|
||||
* TODO: REMOVE/INTEGRATE
|
||||
*/
|
||||
uint32 seq_number = 22;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -246,7 +230,7 @@ enum HardwareModel {
|
|||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
TLORA_V2_1_1p6 = 3;
|
||||
TLORA_V2_1_1P6 = 3;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
|
|
@ -262,7 +246,7 @@ enum HardwareModel {
|
|||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
TBEAM0p7 = 6;
|
||||
TBEAM_V0P7 = 6;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
|
|
@ -272,7 +256,7 @@ enum HardwareModel {
|
|||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
TLORA_V1_1p3 = 8;
|
||||
TLORA_V1_1P3 = 8;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
|
|
@ -290,6 +274,26 @@ enum HardwareModel {
|
|||
*/
|
||||
HELTEC_V1 = 11;
|
||||
|
||||
/*
|
||||
* New T-BEAM with ESP32-S3 CPU
|
||||
*/
|
||||
LILYGO_TBEAM_S3_CORE = 12;
|
||||
|
||||
/*
|
||||
* RAK WisBlock ESP32 core: https://docs.rakwireless.com/Product-Categories/WisBlock/RAK11200/Overview/
|
||||
*/
|
||||
RAK11200 = 13;
|
||||
|
||||
/*
|
||||
* B&Q Consulting Nano Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:nano
|
||||
*/
|
||||
NANO_G1 = 14;
|
||||
|
||||
/*
|
||||
* B&Q Consulting Station Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:station
|
||||
*/
|
||||
STATION_G1 = 25;
|
||||
|
||||
/*
|
||||
* Less common/prototype boards listed here (needs one more byte over the air)
|
||||
*/
|
||||
|
|
@ -330,36 +334,21 @@ enum HardwareModel {
|
|||
*/
|
||||
DIY_V1 = 39;
|
||||
|
||||
/*
|
||||
* RAK WisBlock ESP32 core: https://docs.rakwireless.com/Product-Categories/WisBlock/RAK11200/Overview/
|
||||
*/
|
||||
RAK11200 = 40;
|
||||
|
||||
/*
|
||||
* B&Q Consulting Nano Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:nano
|
||||
*/
|
||||
NANO_G1 = 41;
|
||||
|
||||
/*
|
||||
* nRF52840 Dongle : https://www.nordicsemi.com/Products/Development-hardware/nrf52840-dongle/
|
||||
*/
|
||||
NRF52840_PCA10059 = 42;
|
||||
NRF52840_PCA10059 = 40;
|
||||
|
||||
/*
|
||||
* Custom Disaster Radio esp32 v3 device https://github.com/sudomesh/disaster-radio/tree/master/hardware/board_esp32_v3
|
||||
*/
|
||||
DR_DEV = 43;
|
||||
DR_DEV = 41;
|
||||
|
||||
/*
|
||||
* M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, Paper) https://m5stack.com/
|
||||
*/
|
||||
M5STACK = 44;
|
||||
M5STACK = 42;
|
||||
|
||||
/*
|
||||
* B&Q Consulting Station Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:station
|
||||
*/
|
||||
STATION_G1 = 45;
|
||||
|
||||
/*
|
||||
* Reserved ID For developing private Ports. These will show up in live traffic sparsely, so we can use a high number. Keep it within 8 bits.
|
||||
*/
|
||||
|
|
@ -421,14 +410,14 @@ message User {
|
|||
* Apps will still need the string here for older builds
|
||||
* (so OTA update can find the right image), but if the enum is available it will be used instead.
|
||||
*/
|
||||
HardwareModel hw_model = 6;
|
||||
HardwareModel hw_model = 5;
|
||||
|
||||
/*
|
||||
* In some regions Ham radio operators have different bandwidth limitations than others.
|
||||
* If this user is a licensed operator, set this flag.
|
||||
* Also, "long_name" should be their licence number.
|
||||
*/
|
||||
bool is_licensed = 7;
|
||||
bool is_licensed = 6;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -439,7 +428,7 @@ message RouteDiscovery {
|
|||
/*
|
||||
* The list of nodenums this packet has visited so far
|
||||
*/
|
||||
repeated fixed32 route = 2;
|
||||
repeated fixed32 route = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -635,7 +624,7 @@ message Waypoint {
|
|||
|
||||
/*
|
||||
* A packet envelope sent/received over the mesh
|
||||
* only payloadVariant is sent in the payload portion of the LORA packet.
|
||||
* only payload_variant is sent in the payload portion of the LORA packet.
|
||||
* The other fields are either not sent at all, or sent in the special 16 byte LORA header.
|
||||
*/
|
||||
message MeshPacket {
|
||||
|
|
@ -743,7 +732,7 @@ message MeshPacket {
|
|||
* Therefore channel_index is inherently a local concept and meaningless to send between nodes.
|
||||
* Very briefly, while sending and receiving deep inside the device Router code, this field instead
|
||||
* contains the 'channel hash' instead of the index.
|
||||
* This 'trick' is only used while the payloadVariant is an 'encrypted'.
|
||||
* This 'trick' is only used while the payload_variant is an 'encrypted'.
|
||||
*/
|
||||
uint32 channel = 3;
|
||||
|
||||
|
|
@ -756,7 +745,7 @@ message MeshPacket {
|
|||
* The numeric IDs for these fields were selected to keep backwards compatibility with old applications.
|
||||
*/
|
||||
|
||||
oneof payloadVariant {
|
||||
oneof payload_variant {
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
|
|
@ -804,7 +793,7 @@ message MeshPacket {
|
|||
* For our usecase real world topologies probably have a max of about 3.
|
||||
* This field is normally placed into a few of bits in the header.
|
||||
*/
|
||||
uint32 hop_limit = 10;
|
||||
uint32 hop_limit = 9;
|
||||
|
||||
/*
|
||||
* This packet is being sent as a reliable message, we would prefer it to arrive at the destination.
|
||||
|
|
@ -817,23 +806,23 @@ message MeshPacket {
|
|||
* If after some time we don't hear anyone rebroadcast our packet, we will timeout and retransmit, using the regular resend logic.
|
||||
* Note: This flag is normally sent in a flag bit in the header when sent over the wire
|
||||
*/
|
||||
bool want_ack = 11;
|
||||
bool want_ack = 10;
|
||||
|
||||
/*
|
||||
* The priority of this message for sending.
|
||||
* See MeshPacket.Priority description for more details.
|
||||
*/
|
||||
Priority priority = 12;
|
||||
Priority priority = 11;
|
||||
|
||||
/*
|
||||
* rssi of received packet. Only sent to phone for dispay purposes.
|
||||
*/
|
||||
int32 rx_rssi = 13;
|
||||
int32 rx_rssi = 12;
|
||||
|
||||
/*
|
||||
* Describe if this message is delayed
|
||||
*/
|
||||
Delayed delayed = 15;
|
||||
Delayed delayed = 13;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -846,7 +835,7 @@ enum Constants {
|
|||
* First enum must be zero, and we are just using this enum to
|
||||
* pass int constants between two very different environments
|
||||
*/
|
||||
Unused = 0;
|
||||
ZERO = 0;
|
||||
|
||||
/*
|
||||
* From mesh.options
|
||||
|
|
@ -946,63 +935,63 @@ enum CriticalErrorCode {
|
|||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
None = 0;
|
||||
NONE = 0;
|
||||
|
||||
/*
|
||||
* A software bug was detected while trying to send lora
|
||||
*/
|
||||
TxWatchdog = 1;
|
||||
TX_WATCHDOG = 1;
|
||||
|
||||
/*
|
||||
* A software bug was detected on entry to sleep
|
||||
*/
|
||||
SleepEnterWait = 2;
|
||||
SLEEP_ENTER_WAIT = 2;
|
||||
|
||||
/*
|
||||
* No Lora radio hardware could be found
|
||||
*/
|
||||
NoRadio = 3;
|
||||
NO_RADIO = 3;
|
||||
|
||||
/*
|
||||
* Not normally used
|
||||
*/
|
||||
Unspecified = 4;
|
||||
UNSPECIFIED = 4;
|
||||
|
||||
/*
|
||||
* We failed while configuring a UBlox GPS
|
||||
*/
|
||||
UBloxInitFailed = 5;
|
||||
UBLOX_UNIT_FAILED = 5;
|
||||
|
||||
/*
|
||||
* This board was expected to have a power management chip and it is missing or broken
|
||||
*/
|
||||
NoAXP192 = 6;
|
||||
NO_AXP192 = 6;
|
||||
|
||||
/*
|
||||
* The channel tried to set a radio setting which is not supported by this chipset,
|
||||
* radio comms settings are now undefined.
|
||||
*/
|
||||
InvalidRadioSetting = 7;
|
||||
INVALID_RADIO_SETTING = 7;
|
||||
|
||||
/*
|
||||
* Radio transmit hardware failure. We sent data to the radio chip, but it didn't
|
||||
* reply with an interrupt.
|
||||
*/
|
||||
TransmitFailed = 8;
|
||||
TRANSMIT_FAILED = 8;
|
||||
|
||||
/*
|
||||
* We detected that the main CPU voltage dropped below the minumum acceptable value
|
||||
*/
|
||||
Brownout = 9;
|
||||
BROWNOUT = 9;
|
||||
|
||||
/* Selftest of SX1262 radio chip failed */
|
||||
SX1262Failure = 10;
|
||||
SX1262_FAILURE = 10;
|
||||
|
||||
/*
|
||||
* A (likely software but possibly hardware) failure was detected while trying to send packets.
|
||||
* If this occurs on your board, please post in the forum so that we can ask you to collect some information to allow fixing this bug
|
||||
*/
|
||||
RadioSpiBug = 11;
|
||||
RADIO_SPI_BUG = 11;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -1027,12 +1016,12 @@ message MyNodeInfo {
|
|||
/*
|
||||
* The maximum number of 'software' channels that can be set on this node.
|
||||
*/
|
||||
uint32 max_channels = 15;
|
||||
uint32 max_channels = 3;
|
||||
|
||||
/*
|
||||
* 0.0.5 etc...
|
||||
*/
|
||||
string firmware_version = 6;
|
||||
string firmware_version = 4;
|
||||
|
||||
/*
|
||||
* An error message we'd like to report back to the mothership through analytics.
|
||||
|
|
@ -1042,29 +1031,29 @@ message MyNodeInfo {
|
|||
* (i.e. it will only be reported once)
|
||||
* a numeric error code to go with error message, zero means no error
|
||||
*/
|
||||
CriticalErrorCode error_code = 7;
|
||||
CriticalErrorCode error_code = 5;
|
||||
|
||||
/*
|
||||
* A numeric error address (nonzero if available)
|
||||
*/
|
||||
uint32 error_address = 8;
|
||||
uint32 error_address = 6;
|
||||
|
||||
/*
|
||||
* The total number of errors this node has ever encountered
|
||||
* (well - since the last time we discarded preferences)
|
||||
*/
|
||||
uint32 error_count = 9;
|
||||
uint32 error_count = 7;
|
||||
|
||||
/*
|
||||
* The total number of reboots this node has ever encountered
|
||||
* (well - since the last time we discarded preferences)
|
||||
*/
|
||||
uint32 reboot_count = 10;
|
||||
uint32 reboot_count = 8;
|
||||
|
||||
/*
|
||||
* Calculated bitrate of the current channel (in Bytes Per Second)
|
||||
*/
|
||||
float bitrate = 11;
|
||||
float bitrate = 9;
|
||||
|
||||
/*
|
||||
* How long before we consider a message abandoned and we can clear our
|
||||
|
|
@ -1072,38 +1061,38 @@ message MyNodeInfo {
|
|||
* message delivery time, 5 minutes.
|
||||
* Formerly called FLOOD_EXPIRE_TIME in the device code
|
||||
*/
|
||||
uint32 message_timeout_msec = 13;
|
||||
uint32 message_timeout_msec = 10;
|
||||
|
||||
/*
|
||||
* The minimum app version that can talk to this device.
|
||||
* Phone/PC apps should compare this to their build number and if too low tell the user they must update their app
|
||||
*/
|
||||
uint32 min_app_version = 14;
|
||||
uint32 min_app_version = 11;
|
||||
|
||||
/*
|
||||
* 24 time windows of 1hr each with the airtime transmitted out of the device per hour.
|
||||
*/
|
||||
repeated uint32 air_period_tx = 16;
|
||||
repeated uint32 air_period_tx = 12;
|
||||
|
||||
/*
|
||||
* 24 time windows of 1hr each with the airtime of valid packets for your mesh.
|
||||
*/
|
||||
repeated uint32 air_period_rx = 17;
|
||||
repeated uint32 air_period_rx = 13;
|
||||
|
||||
/*
|
||||
* Is the device wifi capable?
|
||||
*/
|
||||
bool has_wifi = 18;
|
||||
bool has_wifi = 14;
|
||||
|
||||
/*
|
||||
* Utilization for the current channel, including well formed TX, RX and malformed RX (aka noise).
|
||||
*/
|
||||
float channel_utilization = 19;
|
||||
float channel_utilization = 15;
|
||||
|
||||
/*
|
||||
* Percent of airtime for transmission used within the last hour.
|
||||
*/
|
||||
float air_util_tx = 20;
|
||||
float air_util_tx = 16;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -1184,11 +1173,6 @@ message LogRecord {
|
|||
*/
|
||||
message FromRadio {
|
||||
|
||||
/*
|
||||
* In the <1.2 versions packet had ID 2, to prevent confusing old apps with our new packets, we've changed
|
||||
*/
|
||||
reserved 2;
|
||||
|
||||
/*
|
||||
* The packet id, used to allow the phone to request missing read packets from the FIFO,
|
||||
* see our bluetooth docs
|
||||
|
|
@ -1198,12 +1182,12 @@ message FromRadio {
|
|||
/*
|
||||
* Log levels, chosen to match python logging conventions.
|
||||
*/
|
||||
oneof payloadVariant {
|
||||
oneof payload_variant {
|
||||
|
||||
/*
|
||||
* Log levels, chosen to match python logging conventions.
|
||||
*/
|
||||
MeshPacket packet = 11;
|
||||
MeshPacket packet = 2;
|
||||
|
||||
/*
|
||||
* Tells the phone what our node number is, can be -1 if we've not yet joined a mesh.
|
||||
|
|
@ -1220,12 +1204,12 @@ message FromRadio {
|
|||
/*
|
||||
* Include a part of the config (was: RadioConfig radio)
|
||||
*/
|
||||
Config config = 6;
|
||||
Config config = 5;
|
||||
|
||||
/*
|
||||
* Set to send debug console output over our protobuf stream
|
||||
*/
|
||||
LogRecord log_record = 7;
|
||||
LogRecord log_record = 6;
|
||||
|
||||
/*
|
||||
* Sent as true once the device has finished sending all of the responses to want_config
|
||||
|
|
@ -1233,7 +1217,7 @@ message FromRadio {
|
|||
* not, it means your config responses haven't started yet.
|
||||
* NOTE: This ID must not change - to keep (minimal) compatibility with <1.2 version of android apps.
|
||||
*/
|
||||
uint32 config_complete_id = 8;
|
||||
uint32 config_complete_id = 7;
|
||||
|
||||
/*
|
||||
* Sent to tell clients the radio has just rebooted.
|
||||
|
|
@ -1241,13 +1225,13 @@ message FromRadio {
|
|||
* Not used on all transports, currently just used for the serial console.
|
||||
* NOTE: This ID must not change - to keep (minimal) compatibility with <1.2 version of android apps.
|
||||
*/
|
||||
bool rebooted = 9;
|
||||
bool rebooted = 8;
|
||||
|
||||
|
||||
/*
|
||||
* Include module config
|
||||
*/
|
||||
ModuleConfig moduleConfig = 10;
|
||||
ModuleConfig moduleConfig = 9;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1278,27 +1262,21 @@ message ToRadio {
|
|||
bool mqtt_gateway = 2;
|
||||
}
|
||||
|
||||
/*
|
||||
* In the <1.2 versions packet had ID 2, to prevent confusing old apps with our new packets, we've changed.
|
||||
* 101-103 were used for set_radio, set_owner, set_channel
|
||||
*/
|
||||
reserved 1, 101, 102, 103;
|
||||
|
||||
/*
|
||||
* Log levels, chosen to match python logging conventions.
|
||||
*/
|
||||
oneof payloadVariant {
|
||||
oneof payload_variant {
|
||||
|
||||
/*
|
||||
* Send this packet on the mesh
|
||||
*/
|
||||
MeshPacket packet = 2;
|
||||
MeshPacket packet = 1;
|
||||
|
||||
/*
|
||||
* Information about the peer, sent after the phone sneds want_config_id.
|
||||
* Old clients do not send this, which is fine.
|
||||
*/
|
||||
PeerInfo peer_info = 3;
|
||||
PeerInfo peer_info = 2;
|
||||
|
||||
/*
|
||||
* Phone wants radio to send full node db to the phone, This is
|
||||
|
|
@ -1310,14 +1288,14 @@ message ToRadio {
|
|||
* config_complete_id response this allows clients to never be confused by
|
||||
* a stale old partially sent config.
|
||||
*/
|
||||
uint32 want_config_id = 100;
|
||||
uint32 want_config_id = 3;
|
||||
|
||||
/*
|
||||
* Tell API server we are disconnecting now.
|
||||
* This is useful for serial links where there is no hardware/protocol based notification that the client has dropped the link.
|
||||
* (Sending this message is optional for clients)
|
||||
*/
|
||||
bool disconnect = 104;
|
||||
bool disconnect = 4;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ message ModuleConfig {
|
|||
/*
|
||||
* If a meshtastic node is able to reach the internet it will normally attempt to gateway any channels that are marked as
|
||||
* is_uplink_enabled or is_downlink_enabled.
|
||||
* But if this flag is set, all MQTT features will be disabled and no servers will be contacted.
|
||||
*/
|
||||
bool enabled = 1;
|
||||
|
||||
|
|
@ -49,6 +48,11 @@ message ModuleConfig {
|
|||
* Decrypted packets may be useful for external systems that want to consume meshtastic packets
|
||||
*/
|
||||
bool encryption_enabled = 5;
|
||||
|
||||
/*
|
||||
* Whether to send / consume json packets on MQTT
|
||||
*/
|
||||
bool json_enabled = 6;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -60,7 +64,7 @@ message ModuleConfig {
|
|||
* TODO: REPLACE
|
||||
*/
|
||||
enum Serial_Baud {
|
||||
BAUD_Default = 0;
|
||||
BAUD_DEFAULT = 0;
|
||||
BAUD_110 = 1;
|
||||
BAUD_300 = 2;
|
||||
BAUD_600 = 3;
|
||||
|
|
@ -82,9 +86,9 @@ message ModuleConfig {
|
|||
* TODO: REPLACE
|
||||
*/
|
||||
enum Serial_Mode {
|
||||
MODE_Default = 0;
|
||||
MODE_SIMPLE = 1;
|
||||
MODE_PROTO = 2;
|
||||
DEFAULT = 0;
|
||||
SIMPLE = 1;
|
||||
PROTO = 2;
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -249,7 +253,7 @@ message ModuleConfig {
|
|||
* We'll always read the sensor in Celsius, but sometimes we might want to
|
||||
* display the results in Fahrenheit as a "user preference".
|
||||
*/
|
||||
bool environment_display_fahrenheit = 7;
|
||||
bool environment_display_fahrenheit = 5;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -265,42 +269,42 @@ message ModuleConfig {
|
|||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_NONE = 0;
|
||||
NONE = 0;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_UP = 17;
|
||||
UP = 17;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_DOWN = 18;
|
||||
DOWN = 18;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_LEFT = 19;
|
||||
LEFT = 19;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_RIGHT = 20;
|
||||
RIGHT = 20;
|
||||
|
||||
/*
|
||||
* '\n'
|
||||
*/
|
||||
KEY_SELECT = 10;
|
||||
SELECT = 10;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_BACK = 27;
|
||||
BACK = 27;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_CANCEL = 24;
|
||||
CANCEL = 24;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -364,7 +368,7 @@ message ModuleConfig {
|
|||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
oneof payloadVariant {
|
||||
oneof payload_variant {
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
|
|
|
|||
|
|
@ -1,36 +0,0 @@
|
|||
syntax = "proto3";
|
||||
|
||||
/*
|
||||
* This file documents protobufs that are being considered but are not yet in use
|
||||
*/
|
||||
|
||||
/*
|
||||
* Placeholder for data we will eventually set during initial programming.
|
||||
* This will allow us to stop having a load for each region.
|
||||
*/
|
||||
message ManufacturingData {
|
||||
|
||||
/*
|
||||
* center frequency for the radio hardware that was stuffed
|
||||
*/
|
||||
uint32 fradioFreq = 1;
|
||||
|
||||
/*
|
||||
* TBEAM, HELTEC, etc...
|
||||
*/
|
||||
string hw_model = 2;
|
||||
|
||||
/*
|
||||
* Hardware version number
|
||||
*/
|
||||
string hw_version = 3;
|
||||
|
||||
/*
|
||||
* This code is written during manfacturing time and allows users to confirm that
|
||||
* the initial manufacturing tests succeeded.
|
||||
* 0 means no test performed.
|
||||
* 1 means all tests passed
|
||||
* negative numbers indicate particular error codes
|
||||
*/
|
||||
sint32 selftest_result = 4;
|
||||
}
|
||||
|
|
@ -35,16 +35,6 @@ enum PortNum {
|
|||
*/
|
||||
TEXT_MESSAGE_APP = 1;
|
||||
|
||||
/*
|
||||
* A message receive acknowledgment, sent in cleartext - allows radio to
|
||||
* show user that a message has been read by the recipient, optional
|
||||
* Note: this concept has been removed for now.
|
||||
* Once READACK is implemented, use the new packet type/port number stuff?
|
||||
* @exclude
|
||||
* CLEAR_READACK = 2;
|
||||
* TODO: REMOVE/INTEGRATE
|
||||
*/
|
||||
|
||||
/*
|
||||
* Reserved for built-in GPIO/example app.
|
||||
* See remote_hardware.proto/HardwareMessage for details on the message sent/received to this port number
|
||||
|
|
@ -75,7 +65,6 @@ enum PortNum {
|
|||
*/
|
||||
ADMIN_APP = 6;
|
||||
|
||||
|
||||
/*
|
||||
* Compressed TEXT_MESSAGE payloads.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ message HardwareMessage {
|
|||
/*
|
||||
* What type of HardwareMessage is this?
|
||||
*/
|
||||
Type typ = 1;
|
||||
Type type = 1;
|
||||
|
||||
/*
|
||||
* What gpios are we changing. Not used for all MessageTypes, see MessageType for details
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ enum TelemetrySensorType {
|
|||
/*
|
||||
* No external telemetry sensor explicitly set
|
||||
*/
|
||||
NotSet = 0;
|
||||
SENSOR_UNSET = 0;
|
||||
|
||||
/*
|
||||
* High accuracy temperature, pressure, humidity
|
||||
|
|
@ -130,4 +130,14 @@ enum TelemetrySensorType {
|
|||
* High accuracy temperature and pressure
|
||||
*/
|
||||
BMP280 = 6;
|
||||
|
||||
/*
|
||||
* High accuracy temperature and humidity
|
||||
*/
|
||||
SHTC3 = 7;
|
||||
|
||||
/*
|
||||
* High accuracy pressure
|
||||
*/
|
||||
LPS22 = 8;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue