mirror of
https://github.com/meshtastic/protobufs.git
synced 2026-04-20 22:13:55 +00:00
Config migration
This commit is contained in:
parent
cb8c31bdd9
commit
fc6436c325
7 changed files with 803 additions and 1040 deletions
18
admin.proto
18
admin.proto
|
|
@ -8,7 +8,6 @@ import "channel.proto";
|
|||
import "config.proto";
|
||||
import "mesh.proto";
|
||||
import "module_config.proto";
|
||||
import "radioconfig.proto";
|
||||
|
||||
option java_outer_classname = "AdminProtos";
|
||||
|
||||
|
|
@ -32,7 +31,7 @@ message AdminMessage {
|
|||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
GPS_CONFIG = 1;
|
||||
POSITION_CONFIG = 1;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
|
|
@ -101,11 +100,6 @@ message AdminMessage {
|
|||
*/
|
||||
oneof variant {
|
||||
|
||||
/*
|
||||
* Set the radio provisioning for this node
|
||||
*/
|
||||
RadioConfig set_radio = 1;
|
||||
|
||||
/*
|
||||
* Set the owner for this node
|
||||
*/
|
||||
|
|
@ -120,16 +114,6 @@ message AdminMessage {
|
|||
*/
|
||||
Channel set_channel = 3;
|
||||
|
||||
/*
|
||||
* Send the current RadioConfig in the response to this message.
|
||||
*/
|
||||
bool get_radio_request = 4;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
RadioConfig get_radio_response = 5;
|
||||
|
||||
/*
|
||||
* 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)
|
||||
|
|
|
|||
5
config.options
Normal file
5
config.options
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
*WiFiConfig.wifi_ssid max_size:33
|
||||
*WiFiConfig.wifi_password max_size:64
|
||||
|
||||
# Max of three ignored nodes for our testing
|
||||
*LoRaConfig.ignore_incoming max_count:3
|
||||
666
config.proto
666
config.proto
|
|
@ -11,13 +11,197 @@ message Config {
|
|||
* TODO: REPLACE
|
||||
*/
|
||||
message DeviceConfig {
|
||||
/*
|
||||
* Defines the device's role on the Mesh network
|
||||
* unset
|
||||
* Behave normally.
|
||||
* Router
|
||||
* Functions as a router
|
||||
*/
|
||||
enum Role {
|
||||
|
||||
/*
|
||||
* Client device role
|
||||
*/
|
||||
Client = 0;
|
||||
|
||||
/*
|
||||
* ClientMute device role
|
||||
* This is like the client but packets will not hop over this node. Would be
|
||||
* useful if you want to save power by not contributing to the mesh.
|
||||
*/
|
||||
ClientMute = 1;
|
||||
|
||||
/*
|
||||
* Router device role.
|
||||
* Uses an agressive algirithem for the flood networking so packets will
|
||||
* prefer to be routed over this node. Also assume that this will be generally
|
||||
* unattended and so will turn off the wifi/ble radio as well as the oled screen.
|
||||
*/
|
||||
Router = 2;
|
||||
|
||||
/*
|
||||
* RouterClient device role
|
||||
* Uses an agressive algirithem for the flood networking so packets will
|
||||
* prefer to be routed over this node. Similiar power management as a regular
|
||||
* client, so the RouterClient can be used as both a Router and a Client. Useful
|
||||
* as a well placed base station that you could also use to send messages.
|
||||
*/
|
||||
RouterClient = 3;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets the role of node
|
||||
*/
|
||||
Role role = 1;
|
||||
|
||||
/*
|
||||
* If set, 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.
|
||||
* (Region, serial number etc... will be preserved)
|
||||
*/
|
||||
bool factory_reset = 3;
|
||||
|
||||
/*
|
||||
* 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;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
message GpsConfig {
|
||||
message PositionConfig {
|
||||
/*
|
||||
* Bit field of boolean configuration options, indicating which optional
|
||||
* fields to include when assembling POSITION messages
|
||||
* Longitude and latitude are always included (also time if GPS-synced)
|
||||
* NOTE: the more fields are included, the larger the message will be -
|
||||
* leading to longer airtime and a higher risk of packet loss
|
||||
*/
|
||||
enum PositionFlags {
|
||||
/*
|
||||
* Required for compilation
|
||||
*/
|
||||
POS_UNDEFINED = 0x0000;
|
||||
|
||||
/*
|
||||
* Include an altitude value (if available)
|
||||
*/
|
||||
POS_ALTITUDE = 0x0001;
|
||||
|
||||
/*
|
||||
* Altitude value is MSL
|
||||
*/
|
||||
POS_ALT_MSL = 0x0002;
|
||||
|
||||
/*
|
||||
* Include geoidal separation
|
||||
*/
|
||||
POS_GEO_SEP = 0x0004;
|
||||
|
||||
/*
|
||||
* Include the DOP value ; PDOP used by default, see below
|
||||
*/
|
||||
POS_DOP = 0x0008;
|
||||
|
||||
/*
|
||||
* If POS_DOP set, send separate HDOP / VDOP values instead of PDOP
|
||||
*/
|
||||
POS_HVDOP = 0x0010;
|
||||
|
||||
/*
|
||||
* Include battery level
|
||||
*/
|
||||
POS_BATTERY = 0x0020;
|
||||
|
||||
/*
|
||||
* Include number of "satellites in view"
|
||||
*/
|
||||
POS_SATINVIEW = 0x0040;
|
||||
|
||||
/*
|
||||
* Include a sequence number incremented per packet
|
||||
*/
|
||||
POS_SEQ_NOS = 0x0080;
|
||||
|
||||
/*
|
||||
* Include positional timestamp (from GPS solution)
|
||||
*/
|
||||
POS_TIMESTAMP = 0x0100;
|
||||
}
|
||||
|
||||
/*
|
||||
* We should send our position this often (but only if it has changed significantly)
|
||||
* Defaults to 15 minutes
|
||||
*/
|
||||
uint32 position_broadcast_secs = 1;
|
||||
|
||||
/*
|
||||
* We should send our position this often (but only if it has changed significantly)
|
||||
*/
|
||||
bool position_broadcast_smart_disabled = 2;
|
||||
|
||||
/*
|
||||
* If set, this node is at a fixed position.
|
||||
* We will generate GPS position updates at the regular interval, but use whatever the last lat/lon/alt we have for the node.
|
||||
* The lat/lon/alt can be set by an internal GPS or with the help of the app.
|
||||
*/
|
||||
bool fixed_position = 3;
|
||||
|
||||
/*
|
||||
* Should we disbale location sharing with other nodes (or the local phone)
|
||||
*/
|
||||
bool location_share_disabled = 4;
|
||||
|
||||
/*
|
||||
* Should the GPS be disabled for this node?
|
||||
*/
|
||||
bool gps_disabled = 5;
|
||||
|
||||
/*
|
||||
* 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;
|
||||
|
||||
/*
|
||||
* How long should we try to get our position during each gps_update_interval attempt? (in seconds)
|
||||
* Or if zero, use the default of 30 seconds.
|
||||
* 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;
|
||||
|
||||
/*
|
||||
* Shall we accept 2D GPS fixes? By default, only 3D fixes are accepted
|
||||
* (during a 2D fix, altitude values are unreliable and will be excluded)
|
||||
*/
|
||||
bool gps_accept_2d = 8;
|
||||
|
||||
/*
|
||||
* GPS maximum DOP accepted (dilution of precision)
|
||||
* Set a rejection threshold for GPS readings based on their precision,
|
||||
* relative to the GPS rated accuracy (which is typically ~3m)
|
||||
* Solutions above this value will be treated as retryable errors!
|
||||
* Useful range is between 1 - 64 (3m - <~200m)
|
||||
* By default (if zero), accept all GPS readings
|
||||
*/
|
||||
uint32 gps_max_dop = 9;
|
||||
|
||||
/*
|
||||
* Bit field of boolean configuration options for POSITION messages
|
||||
* (bitwise OR of PositionFlags)
|
||||
*/
|
||||
uint32 position_flags = 10;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -26,6 +210,176 @@ message Config {
|
|||
*/
|
||||
message PowerConfig {
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
enum ChargeCurrent {
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MAUnset = 0;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA100 = 1;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA190 = 2;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA280 = 3;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA360 = 4;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA450 = 5;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA550 = 6;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA630 = 7;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA700 = 8;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA780 = 9;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA880 = 10;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA960 = 11;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA1000 = 12;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA1080 = 13;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA1160 = 14;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA1240 = 15;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA1320 = 16;
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets the current of the battery charger
|
||||
*/
|
||||
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).
|
||||
*/
|
||||
bool is_low_power = 2;
|
||||
|
||||
/*
|
||||
* Circumvents the logic block for determining whether the device is powered or not.
|
||||
* Useful for devices with finicky ADC issues on the battery sense pins.
|
||||
*/
|
||||
bool is_always_powered = 3;
|
||||
|
||||
|
||||
/*
|
||||
* If non-zero, the device will fully power off this many seconds after external power is removed.
|
||||
*/
|
||||
uint32 on_battery_shutdown_after_secs = 4;
|
||||
|
||||
/*
|
||||
* If set to true, enable power saving features of the esp32
|
||||
*/
|
||||
bool is_power_saving = 5;
|
||||
|
||||
/*
|
||||
* Ratio of voltage divider for battery pin eg. 3.20 (R1=100k, R2=220k)
|
||||
* Overrides the ADC_MULTIPLIER defined in variant for battery voltage calculation.
|
||||
*/
|
||||
float adc_multiplier_override = 6;
|
||||
|
||||
/*
|
||||
* Power management state machine option.
|
||||
* See [power management](/docs/software/other/power) for details.
|
||||
* 0 for default of 1 minute
|
||||
*/
|
||||
uint32 wait_bluetooth_secs = 7;
|
||||
|
||||
/*
|
||||
* Power management state machine option.
|
||||
* See [power management](/docs/software/other/power) for details.
|
||||
* 0 for default of 15 minutes
|
||||
* IMPORTANT NOTE FOR DEVICE CLIENTS: YOU MUST SEND SOME SORT OF PACKET TO THE PHONE AT LEAST THIS OFTEN OR THE DEVICE WILL DECIDE YOU ARE GONE!
|
||||
*/
|
||||
uint32 phone_timeout_secs = 8;
|
||||
|
||||
/*
|
||||
* Power management state machine option.
|
||||
* See [power management](/docs/software/other/power) for details.
|
||||
* 0 for default of two hours, MAXUINT for disabled
|
||||
*/
|
||||
uint32 mesh_sds_timeout_secs = 9;
|
||||
|
||||
/*
|
||||
* Power management state machine option.
|
||||
* See [power management](/docs/software/other/power) for details.
|
||||
* 0 for default of one year
|
||||
*/
|
||||
uint32 sds_secs = 10;
|
||||
|
||||
/*
|
||||
* Power management state machine option.
|
||||
* See [power management](/docs/software/other/power) for details.
|
||||
* 0 for default of 3600
|
||||
*/
|
||||
uint32 ls_secs = 11;
|
||||
|
||||
/*
|
||||
* Power management state machine option.
|
||||
* See [power management](/docs/software/other/power) for details.
|
||||
* 0 for default of 10 seconds
|
||||
*/
|
||||
uint32 min_wake_secs = 12;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -55,6 +409,66 @@ message Config {
|
|||
* TODO: REPLACE
|
||||
*/
|
||||
message DisplayConfig {
|
||||
/*
|
||||
* How the GPS coordinates are displayed on the OLED screen.
|
||||
*/
|
||||
enum GpsCoordinateFormat {
|
||||
|
||||
/*
|
||||
* GPS coordinates are displayed in the normal decimal degrees format:
|
||||
* DD.DDDDDD DDD.DDDDDD
|
||||
*/
|
||||
GpsFormatDec = 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;
|
||||
|
||||
/*
|
||||
* GPS coordinates are displayed in Universal Transverse Mercator format:
|
||||
* ZZB EEEEEE NNNNNNN, where Z is zone, B is band, E is easting, N is northing
|
||||
*/
|
||||
GpsFormatUTM = 2;
|
||||
|
||||
/*
|
||||
* GPS coordinates are displayed in 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;
|
||||
|
||||
/*
|
||||
* GPS coordinates are displayed in Open Location Code (aka Plus Codes).
|
||||
*/
|
||||
GpsFormatOLC = 4;
|
||||
|
||||
/*
|
||||
* GPS coordinates are displayed in 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;
|
||||
}
|
||||
|
||||
/*
|
||||
* Power management state machine option.
|
||||
* See [power management](/docs/software/other/power) for details.
|
||||
* 0 for default of one minute
|
||||
*/
|
||||
uint32 screen_on_secs = 1;
|
||||
|
||||
/*
|
||||
* How the GPS coordinates are displayed on the OLED screen.
|
||||
*/
|
||||
GpsCoordinateFormat gps_format = 2;
|
||||
|
||||
/*
|
||||
* Automatically toggles to the next page on the screen like a carousel, based the specified interval in seconds.
|
||||
* Potentially useful for devices without user buttons.
|
||||
*/
|
||||
uint32 auto_screen_carousel_secs = 3;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -62,14 +476,81 @@ message Config {
|
|||
* TODO: REPLACE
|
||||
*/
|
||||
message LoRaConfig {
|
||||
|
||||
/*
|
||||
* 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;
|
||||
* The frequency/regulatory region the user has selected.
|
||||
* Note: In 1.0 builds (which must still be supported by the android app for a
|
||||
* long time) this field will be unpopulated.
|
||||
* If firmware is ever upgraded from an old 1.0ish build, the old
|
||||
* MyNodeInfo.region string will be used to set UserPreferences.region and the
|
||||
* old value will be no longer set.
|
||||
*/
|
||||
enum RegionCode {
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
Unset = 0;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
US = 1;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
EU433 = 2;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
EU868 = 3;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
CN = 4;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
JP = 5;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
ANZ = 6;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KR = 7;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
TW = 8;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
RU = 9;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
IN = 10;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
NZ865 = 11;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
TH = 12;
|
||||
}
|
||||
|
||||
/*
|
||||
* Standard predefined channel settings
|
||||
|
|
@ -113,6 +594,14 @@ message Config {
|
|||
ShortFast = 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;
|
||||
|
||||
/*
|
||||
* Note: This is the 'old' mechanism for specifying channel parameters.
|
||||
* Either modem_config or bandwidth/spreading/coding will be specified - NOT BOTH.
|
||||
|
|
@ -121,173 +610,57 @@ message Config {
|
|||
* 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.
|
||||
*/
|
||||
ModemConfig modem_config = 3;
|
||||
ModemConfig modem_config = 2;
|
||||
|
||||
/*
|
||||
* Bandwidth in MHz
|
||||
* Certain bandwidth numbers are 'special' and will be converted to the
|
||||
* appropriate floating point value: 31 -> 31.25MHz
|
||||
*/
|
||||
uint32 bandwidth = 6;
|
||||
uint32 bandwidth = 3;
|
||||
|
||||
/*
|
||||
* A number from 7 to 12.
|
||||
* Indicates number of chirps per symbol as 1<<spread_factor.
|
||||
*/
|
||||
uint32 spread_factor = 7;
|
||||
uint32 spread_factor = 4;
|
||||
|
||||
/*
|
||||
* The denominator of the coding rate.
|
||||
* ie for 4/8, the value is 8. 5/8 the value is 5.
|
||||
*/
|
||||
uint32 coding_rate = 8;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
message ModuleConfig {
|
||||
uint32 coding_rate = 5;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
* This parameter is for advanced users with advanced test equipment, we do not recommend most users use it.
|
||||
* A frequency offset that is added to to the calculated band center frequency.
|
||||
* Used to correct for crystal calibration errors.
|
||||
*/
|
||||
message MQTTConfig {
|
||||
|
||||
}
|
||||
float frequency_offset = 6;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
* The region code for my radio (US, CN, EU433, etc...)
|
||||
*/
|
||||
message SerialConfig {
|
||||
|
||||
}
|
||||
RegionCode region = 7;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
* Overrides HOPS_RELIABLE and sets the maximum number of hops. This can't be greater than 7.
|
||||
*/
|
||||
message ExternalNotificationConfig {
|
||||
|
||||
}
|
||||
uint32 hop_limit = 8;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
* Disable TX from the LoRa radio. Useful for hot-swapping antennas and other tests.
|
||||
* Defaults to false
|
||||
*/
|
||||
message StoreForwardConfig {
|
||||
|
||||
}
|
||||
bool tx_disabled = 9;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
* For testing it is useful sometimes to force a node to never listen to
|
||||
* particular other nodes (simulating radio out of range). All nodenums listed
|
||||
* in ignore_incoming will have packets they send droped on receive (by router.cpp)
|
||||
*/
|
||||
message RangeTestConfig {
|
||||
repeated uint32 ignore_incoming = 103;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Configuration for both device and environment metrics
|
||||
*/
|
||||
message TelemetryConfig {
|
||||
/*
|
||||
* Interval in seconds of how often we should try to send our
|
||||
* device measurements to the mesh
|
||||
*/
|
||||
uint32 device_update_interval = 1;
|
||||
/*
|
||||
* Interval in seconds of how often we should try to send our
|
||||
* environment measurements to the mesh
|
||||
*/
|
||||
uint32 environment_update_interval = 2;
|
||||
/*
|
||||
* Preferences for the Telemetry Module (Environment)
|
||||
* Enable/Disable the telemetry measurement module measurement collection
|
||||
*/
|
||||
bool environment_measurement_enabled = 3;
|
||||
|
||||
/*
|
||||
* Enable/Disable the telemetry measurement module on-device display
|
||||
*/
|
||||
bool environment_screen_enabled = 4;
|
||||
|
||||
/*
|
||||
* Sometimes sensor reads can fail.
|
||||
* If this happens, we will retry a configurable number of attempts,
|
||||
* each attempt will be delayed by the minimum required refresh rate for that sensor
|
||||
*/
|
||||
uint32 environment_read_error_count_threshold = 5;
|
||||
|
||||
/*
|
||||
* Sometimes we can end up with more than read_error_count_threshold failures.
|
||||
* In this case, we will stop trying to read from the sensor for a while.
|
||||
* Wait this long until trying to read from the sensor again
|
||||
*/
|
||||
uint32 environment_recovery_interval = 6;
|
||||
|
||||
/*
|
||||
* 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;
|
||||
|
||||
/*
|
||||
* Specify the sensor type
|
||||
*/
|
||||
TelemetrySensorType environment_sensor_type = 8;
|
||||
|
||||
/*
|
||||
* Specify the peferred GPIO Pin for sensor readings
|
||||
*/
|
||||
uint32 environment_sensor_pin = 9;
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
message CannedMessageConfig {
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
oneof payloadVariant {
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MQTTConfig mqtt_config = 1;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
SerialConfig serial_config = 2;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
ExternalNotificationConfig external_notification_config = 3;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
StoreForwardConfig store_forward_config = 4;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
RangeTestConfig range_test_config = 5;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
TelemetryConfig telemetry_config = 6;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
CannedMessageConfig canned_message_config = 7;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -303,7 +676,7 @@ message Config {
|
|||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
GpsConfig gps_config = 2;
|
||||
PositionConfig position_config = 2;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
|
|
@ -325,10 +698,5 @@ message Config {
|
|||
*/
|
||||
LoRaConfig lora_config = 6;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
ModuleConfig module_config = 7;
|
||||
|
||||
}
|
||||
}
|
||||
6
module_config.options
Normal file
6
module_config.options
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
*CannedMessageConfig.allow_input_source max_size:16
|
||||
*CannedMessageConfig.messages max_size:200
|
||||
|
||||
*MQTTConfig.address max_size:32
|
||||
*MQTTConfig.username max_size:32
|
||||
*MQTTConfig.password max_size:32
|
||||
|
|
@ -16,6 +16,40 @@ message ModuleConfig {
|
|||
*/
|
||||
message MQTTConfig {
|
||||
|
||||
/*
|
||||
* 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 disabled = 1;
|
||||
|
||||
/*
|
||||
* The server to use for our MQTT global message gateway feature.
|
||||
* If not set, the default server will be used
|
||||
*/
|
||||
string address = 2;
|
||||
|
||||
/*
|
||||
* MQTT username to use (most useful for a custom MQTT server).
|
||||
* If using a custom server, this will be honoured even if empty.
|
||||
* If using the default server, this will only be honoured if set, otherwise the device will use the default username
|
||||
*/
|
||||
string username = 3;
|
||||
|
||||
/*
|
||||
* MQTT password to use (most useful for a custom MQTT server).
|
||||
* If using a custom server, this will be honoured even if empty.
|
||||
* If using the default server, this will only be honoured if set, otherwise the device will use the default password
|
||||
*/
|
||||
string password = 4;
|
||||
|
||||
/*
|
||||
* Whether to send encrypted or decrypted packets to MQTT.
|
||||
* This parameter is only honoured if you also set server
|
||||
* (the default official mqtt.meshtastic.org server can handle encrypted packets)
|
||||
* Decrypted packets may be useful for external systems that want to consume meshtastic packets
|
||||
*/
|
||||
bool encryption_enabled = 5;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -23,6 +57,73 @@ message ModuleConfig {
|
|||
*/
|
||||
message SerialConfig {
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
enum Serial_Baud {
|
||||
BAUD_Default = 0;
|
||||
BAUD_2400 = 1;
|
||||
BAUD_4800 = 2;
|
||||
BAUD_9600 = 3;
|
||||
BAUD_19200 = 4;
|
||||
BAUD_38400 = 5;
|
||||
BAUD_57600 = 6;
|
||||
BAUD_115200 = 7;
|
||||
BAUD_230400 = 8;
|
||||
BAUD_460800 = 9;
|
||||
BAUD_576000 = 10;
|
||||
BAUD_921600 = 11;
|
||||
BAUD_110 = 12;
|
||||
BAUD_300 = 13;
|
||||
BAUD_600 = 14;
|
||||
BAUD_1200 = 15;
|
||||
};
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
enum Serial_Mode {
|
||||
MODE_Default = 0;
|
||||
MODE_SIMPLE = 1;
|
||||
MODE_PROTO = 2;
|
||||
};
|
||||
|
||||
/*
|
||||
* Preferences for the SerialModule
|
||||
* FIXME - Move this out of UserPreferences and into a section for module configuration.
|
||||
*/
|
||||
bool enabled = 1;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
bool echo = 2;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 rxd = 3;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 txd = 4;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
Serial_Baud baud = 5;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 timeout = 6;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
Serial_Mode mode = 7;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -30,12 +131,69 @@ message ModuleConfig {
|
|||
*/
|
||||
message ExternalNotificationConfig {
|
||||
|
||||
/*
|
||||
* Preferences for the ExternalNotificationModule
|
||||
* FIXME - Move this out of UserPreferences and into a section for module configuration.
|
||||
*/
|
||||
bool enabled = 1;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 output_ms = 2;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 output = 3;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
bool active = 4;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
bool alert_message = 5;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
bool alert_bell = 6;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
message StoreForwardConfig {
|
||||
/*
|
||||
* Preferences for the StoreForwardModule
|
||||
*FIXME - Move this out of UserPreferences and into a section for module configuration. (was 136)
|
||||
*/
|
||||
bool enabled = 1;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
bool heartbeat = 2;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 records = 3;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 history_return_max = 4;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 history_return_window = 5;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -43,7 +201,21 @@ message ModuleConfig {
|
|||
* TODO: REPLACE
|
||||
*/
|
||||
message RangeTestConfig {
|
||||
/*
|
||||
* Preferences for the RangeTestModule
|
||||
* FIXME - Move this out of UserPreferences and into a section for module configuration.
|
||||
*/
|
||||
bool enabled = 1;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 sender = 2;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
bool save = 3;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -110,7 +282,109 @@ message ModuleConfig {
|
|||
* TODO: REPLACE
|
||||
*/
|
||||
message CannedMessageConfig {
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
enum InputEventChar {
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_NONE = 0;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_UP = 17;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_DOWN = 18;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_LEFT = 19;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_RIGHT = 20;
|
||||
|
||||
/*
|
||||
* '\n'
|
||||
*/
|
||||
KEY_SELECT = 10;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_BACK = 27;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_CANCEL = 24;
|
||||
}
|
||||
|
||||
/*
|
||||
* Enable the rotary encoder #1. This is a 'dumb' encoder sending pulses on both A and B pins while rotating.
|
||||
*/
|
||||
bool rotary1_enabled = 1;
|
||||
|
||||
/*
|
||||
* GPIO pin for rotary encoder A port.
|
||||
*/
|
||||
uint32 inputbroker_pin_a = 2;
|
||||
|
||||
/*
|
||||
* GPIO pin for rotary encoder B port.
|
||||
*/
|
||||
uint32 inputbroker_pin_b = 3;
|
||||
|
||||
/*
|
||||
* GPIO pin for rotary encoder Press port.
|
||||
*/
|
||||
uint32 inputbroker_pin_press = 4;
|
||||
|
||||
/*
|
||||
* Generate input event on CW of this kind.
|
||||
*/
|
||||
InputEventChar inputbroker_event_cw = 5;
|
||||
|
||||
/*
|
||||
* Generate input event on CCW of this kind.
|
||||
*/
|
||||
InputEventChar inputbroker_event_ccw = 6;
|
||||
|
||||
/*
|
||||
* Generate input event on Press of this kind.
|
||||
*/
|
||||
InputEventChar inputbroker_event_press = 7;
|
||||
|
||||
/*
|
||||
* Enable the Up/Down/Select input device. Can be RAK rotary encoder or 3 buttons. Uses the a/b/press definitions from inputbroker.
|
||||
*/
|
||||
bool updown1_enabled = 8;
|
||||
|
||||
/*
|
||||
* Enable/disable CannedMessageModule.
|
||||
*/
|
||||
bool enabled = 9;
|
||||
|
||||
/*
|
||||
* Input event origin accepted by the canned message module.
|
||||
* Can be e.g. "rotEnc1", "upDownEnc1" or keyword "_any"
|
||||
*/
|
||||
string allow_input_source = 10;
|
||||
|
||||
/*
|
||||
* CannedMessageModule also sends a bell character with the messages.
|
||||
* ExternalNotificationModule can benefit from this feature.
|
||||
*/
|
||||
bool send_bell = 11;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
*UserPreferences.wifi_ssid max_size:33
|
||||
*UserPreferences.wifi_password max_size:64
|
||||
*UserPreferences.region max_size:6
|
||||
|
||||
# Max of three ignored nodes for our testing
|
||||
*UserPreferences.ignore_incoming max_count:3
|
||||
|
||||
*UserPreferences.mqtt_server max_size:32
|
||||
*UserPreferences.mqtt_username max_size:32
|
||||
*UserPreferences.mqtt_password max_size:32
|
||||
|
||||
*UserPreferences.canned_message_module_allow_input_source max_size:16
|
||||
*UserPreferences.canned_message_module_messages max_size:200
|
||||
|
|
@ -1,861 +0,0 @@
|
|||
syntax = "proto3";
|
||||
|
||||
option java_package = "com.geeksville.mesh";
|
||||
option java_outer_classname = "RadioConfigProtos";
|
||||
option optimize_for = LITE_RUNTIME;
|
||||
option go_package = "github.com/meshtastic/gomeshproto";
|
||||
|
||||
/*
|
||||
* The frequency/regulatory region the user has selected.
|
||||
* Note: In 1.0 builds (which must still be supported by the android app for a
|
||||
* long time) this field will be unpopulated.
|
||||
* If firmware is ever upgraded from an old 1.0ish build, the old
|
||||
* MyNodeInfo.region string will be used to set UserPreferences.region and the
|
||||
* old value will be no longer set.
|
||||
*/
|
||||
enum RegionCode {
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
Unset = 0;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
US = 1;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
EU433 = 2;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
EU868 = 3;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
CN = 4;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
JP = 5;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
ANZ = 6;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KR = 7;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
TW = 8;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
RU = 9;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
IN = 10;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
NZ865 = 11;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
TH = 12;
|
||||
}
|
||||
|
||||
/*
|
||||
* Defines the device's role on the Mesh network
|
||||
* unset
|
||||
* Behave normally.
|
||||
* Router
|
||||
* Functions as a router
|
||||
*/
|
||||
enum Role {
|
||||
|
||||
/*
|
||||
* Client device role
|
||||
*/
|
||||
Client = 0;
|
||||
|
||||
/*
|
||||
* ClientMute device role
|
||||
* This is like the client but packets will not hop over this node. Would be
|
||||
* useful if you want to save power by not contributing to the mesh.
|
||||
*/
|
||||
ClientMute = 1;
|
||||
|
||||
/*
|
||||
* Router device role.
|
||||
* Uses an agressive algirithem for the flood networking so packets will
|
||||
* prefer to be routed over this node. Also assume that this will be generally
|
||||
* unattended and so will turn off the wifi/ble radio as well as the oled screen.
|
||||
*/
|
||||
Router = 2;
|
||||
|
||||
/*
|
||||
* RouterClient device role
|
||||
* Uses an agressive algirithem for the flood networking so packets will
|
||||
* prefer to be routed over this node. Similiar power management as a regular
|
||||
* client, so the RouterClient can be used as both a Router and a Client. Useful
|
||||
* as a well placed base station that you could also use to send messages.
|
||||
*/
|
||||
RouterClient = 3;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
enum ChargeCurrent {
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MAUnset = 0;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA100 = 1;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA190 = 2;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA280 = 3;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA360 = 4;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA450 = 5;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA550 = 6;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA630 = 7;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA700 = 8;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA780 = 9;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA880 = 10;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA960 = 11;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA1000 = 12;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA1080 = 13;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA1160 = 14;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA1240 = 15;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
MA1320 = 16;
|
||||
}
|
||||
|
||||
/*
|
||||
* How the GPS coordinates are displayed on the OLED screen.
|
||||
*/
|
||||
enum GpsCoordinateFormat {
|
||||
|
||||
/*
|
||||
* GPS coordinates are displayed in the normal decimal degrees format:
|
||||
* DD.DDDDDD DDD.DDDDDD
|
||||
*/
|
||||
GpsFormatDec = 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;
|
||||
|
||||
/*
|
||||
* GPS coordinates are displayed in Universal Transverse Mercator format:
|
||||
* ZZB EEEEEE NNNNNNN, where Z is zone, B is band, E is easting, N is northing
|
||||
*/
|
||||
GpsFormatUTM = 2;
|
||||
|
||||
/*
|
||||
* GPS coordinates are displayed in 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;
|
||||
|
||||
/*
|
||||
* GPS coordinates are displayed in Open Location Code (aka Plus Codes).
|
||||
*/
|
||||
GpsFormatOLC = 4;
|
||||
|
||||
/*
|
||||
* GPS coordinates are displayed in 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;
|
||||
}
|
||||
|
||||
/*
|
||||
* Bit field of boolean configuration options, indicating which optional
|
||||
* fields to include when assembling POSITION messages
|
||||
* Longitude and latitude are always included (also time if GPS-synced)
|
||||
* NOTE: the more fields are included, the larger the message will be -
|
||||
* leading to longer airtime and a higher risk of packet loss
|
||||
*/
|
||||
enum PositionFlags {
|
||||
/*
|
||||
* Required for compilation
|
||||
*/
|
||||
POS_UNDEFINED = 0x0000;
|
||||
|
||||
/*
|
||||
* Include an altitude value (if available)
|
||||
*/
|
||||
POS_ALTITUDE = 0x0001;
|
||||
|
||||
/*
|
||||
* Altitude value is MSL
|
||||
*/
|
||||
POS_ALT_MSL = 0x0002;
|
||||
|
||||
/*
|
||||
* Include geoidal separation
|
||||
*/
|
||||
POS_GEO_SEP = 0x0004;
|
||||
|
||||
/*
|
||||
* Include the DOP value ; PDOP used by default, see below
|
||||
*/
|
||||
POS_DOP = 0x0008;
|
||||
|
||||
/*
|
||||
* If POS_DOP set, send separate HDOP / VDOP values instead of PDOP
|
||||
*/
|
||||
POS_HVDOP = 0x0010;
|
||||
|
||||
/*
|
||||
* Include battery level
|
||||
*/
|
||||
POS_BATTERY = 0x0020;
|
||||
|
||||
/*
|
||||
* Include number of "satellites in view"
|
||||
*/
|
||||
POS_SATINVIEW = 0x0040;
|
||||
|
||||
/*
|
||||
* Include a sequence number incremented per packet
|
||||
*/
|
||||
POS_SEQ_NOS = 0x0080;
|
||||
|
||||
/*
|
||||
* Include positional timestamp (from GPS solution)
|
||||
*/
|
||||
POS_TIMESTAMP = 0x0100;
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
enum InputEventChar {
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_NONE = 0;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_UP = 17;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_DOWN = 18;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_LEFT = 19;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_RIGHT = 20;
|
||||
|
||||
/*
|
||||
* '\n'
|
||||
*/
|
||||
KEY_SELECT = 10;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_BACK = 27;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
KEY_CANCEL = 24;
|
||||
}
|
||||
|
||||
/*
|
||||
* The entire set of user settable/readable settings for our radio device.
|
||||
* Includes both the current channel settings and any preferences the user has
|
||||
* set for behavior of their node
|
||||
*/
|
||||
message RadioConfig {
|
||||
|
||||
/*
|
||||
* See [software design](/docs/software/other/sw-design) for more information on these preferences
|
||||
*/
|
||||
message UserPreferences {
|
||||
|
||||
/*
|
||||
* We should send our position this often (but only if it has changed significantly)
|
||||
* Defaults to 15 minutes
|
||||
*/
|
||||
uint32 position_broadcast_secs = 1;
|
||||
|
||||
/*
|
||||
* We should send our position this often (but only if it has changed significantly)
|
||||
*/
|
||||
bool position_broadcast_smart_disabled = 17;
|
||||
|
||||
/*
|
||||
* If we miss this many owner messages from a node, we declare the node
|
||||
* offline (defaults to 3 - to allow for some lost packets) (FIXME not yet used)
|
||||
* uint32 num_missed_to_fail = 3;
|
||||
TODO: REMOVE/INTEGRATE
|
||||
*/
|
||||
|
||||
/*
|
||||
* Power management state machine option.
|
||||
* See [power management](/docs/software/other/power) for details.
|
||||
* 0 for default of 1 minute
|
||||
*/
|
||||
uint32 wait_bluetooth_secs = 4;
|
||||
|
||||
/*
|
||||
* Power management state machine option.
|
||||
* See [power management](/docs/software/other/power) for details.
|
||||
* 0 for default of one minute
|
||||
*/
|
||||
uint32 screen_on_secs = 5;
|
||||
|
||||
/*
|
||||
* Power management state machine option.
|
||||
* See [power management](/docs/software/other/power) for details.
|
||||
* 0 for default of 15 minutes
|
||||
* IMPORTANT NOTE FOR DEVICE CLIENTS: YOU MUST SEND SOME SORT OF PACKET TO THE PHONE AT LEAST THIS OFTEN OR THE DEVICE WILL DECIDE YOU ARE GONE!
|
||||
*/
|
||||
uint32 phone_timeout_secs = 6;
|
||||
|
||||
/*
|
||||
* Power management state machine option.
|
||||
* See [power management](/docs/software/other/power) for details.
|
||||
* 0 for default of two hours, MAXUINT for disabled
|
||||
*/
|
||||
uint32 mesh_sds_timeout_secs = 8;
|
||||
|
||||
/*
|
||||
* Power management state machine option.
|
||||
* See [power management](/docs/software/other/power) for details.
|
||||
* 0 for default of one year
|
||||
*/
|
||||
uint32 sds_secs = 9;
|
||||
|
||||
/*
|
||||
* Power management state machine option.
|
||||
* See [power management](/docs/software/other/power) for details.
|
||||
* 0 for default of 3600
|
||||
*/
|
||||
uint32 ls_secs = 10;
|
||||
|
||||
/*
|
||||
* Power management state machine option.
|
||||
* See [power management](/docs/software/other/power) for details.
|
||||
* 0 for default of 10 seconds
|
||||
*/
|
||||
uint32 min_wake_secs = 11;
|
||||
|
||||
/*
|
||||
* If set, this node will try to join the specified wifi network and
|
||||
* acquire an address via DHCP
|
||||
*/
|
||||
string wifi_ssid = 12;
|
||||
|
||||
/*
|
||||
* If set, will be use to authenticate to the named wifi
|
||||
*/
|
||||
string wifi_password = 13;
|
||||
|
||||
/*
|
||||
* If set, the node will operate as an AP (and DHCP server), otherwise it
|
||||
* will be a station
|
||||
*/
|
||||
bool wifi_ap_mode = 14;
|
||||
|
||||
/*
|
||||
* The region code for my radio (US, CN, EU433, etc...)
|
||||
*/
|
||||
RegionCode region = 15;
|
||||
|
||||
/*
|
||||
* Sets the current of the battery charger
|
||||
*/
|
||||
ChargeCurrent charge_current = 16;
|
||||
|
||||
/*
|
||||
* Sets the role of node
|
||||
*/
|
||||
Role role = 18;
|
||||
|
||||
/*
|
||||
* 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).
|
||||
*/
|
||||
bool is_low_power = 38;
|
||||
|
||||
/*
|
||||
* If set, this node is at a fixed position.
|
||||
* We will generate GPS position updates at the regular interval, but use whatever the last lat/lon/alt we have for the node.
|
||||
* The lat/lon/alt can be set by an internal GPS or with the help of the app.
|
||||
*/
|
||||
bool fixed_position = 39;
|
||||
|
||||
/*
|
||||
* If set, this will disable the SerialConsole by not initilizing the StreamAPI
|
||||
*/
|
||||
bool serial_disabled = 40;
|
||||
|
||||
/*
|
||||
* Should we disbale location sharing with other nodes (or the local phone)
|
||||
*/
|
||||
bool location_share_disabled = 32;
|
||||
|
||||
/*
|
||||
* Should the GPS be disabled for this node?
|
||||
*/
|
||||
bool gps_disabled = 33;
|
||||
|
||||
/*
|
||||
* 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 = 34;
|
||||
|
||||
/*
|
||||
* How long should we try to get our position during each gps_update_interval attempt? (in seconds)
|
||||
* Or if zero, use the default of 30 seconds.
|
||||
* 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 = 36;
|
||||
|
||||
/*
|
||||
* Shall we accept 2D GPS fixes? By default, only 3D fixes are accepted
|
||||
* (during a 2D fix, altitude values are unreliable and will be excluded)
|
||||
*/
|
||||
bool gps_accept_2d = 45;
|
||||
|
||||
/*
|
||||
* GPS maximum DOP accepted (dilution of precision)
|
||||
* Set a rejection threshold for GPS readings based on their precision,
|
||||
* relative to the GPS rated accuracy (which is typically ~3m)
|
||||
* Solutions above this value will be treated as retryable errors!
|
||||
* Useful range is between 1 - 64 (3m - <~200m)
|
||||
* By default (if zero), accept all GPS readings
|
||||
*/
|
||||
uint32 gps_max_dop = 46;
|
||||
|
||||
/*
|
||||
* This parameter is for advanced users with advanced test equipment, we do not recommend most users use it.
|
||||
* A frequency offset that is added to to the calculated band center frequency.
|
||||
* Used to correct for crystal calibration errors.
|
||||
*/
|
||||
float frequency_offset = 41;
|
||||
|
||||
/*
|
||||
* The server to use for our MQTT global message gateway feature.
|
||||
* If not set, the default server will be used
|
||||
*/
|
||||
string mqtt_server = 42;
|
||||
|
||||
/*
|
||||
* 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 mqtt_disabled = 43;
|
||||
|
||||
/*
|
||||
* How the GPS coordinates are displayed on the OLED screen.
|
||||
*/
|
||||
GpsCoordinateFormat gps_format = 44;
|
||||
|
||||
/*
|
||||
* This setting is never saved to disk, but if set, all device settings will be returned to factory defaults.
|
||||
* (Region, serial number etc... will be preserved)
|
||||
*/
|
||||
bool factory_reset = 100;
|
||||
|
||||
/*
|
||||
* 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 = 101;
|
||||
|
||||
/*
|
||||
* If true, radio should not try to be smart about what packets to queue to
|
||||
* the phone
|
||||
* bool keep_all_packets = 101;
|
||||
* If true, we will try to capture all the packets sent on the mesh, not just the ones destined to our node.
|
||||
* bool promiscuous_mode = 102;
|
||||
* For testing it is useful sometimes to force a node to never listen to
|
||||
* particular other nodes (simulating radio out of range). All nodenums listed
|
||||
* in ignore_incoming will have packets they send droped on receive (by router.cpp)
|
||||
*/
|
||||
repeated uint32 ignore_incoming = 103;
|
||||
|
||||
/*
|
||||
* Preferences for the SerialModule
|
||||
* FIXME - Move this out of UserPreferences and into a section for module configuration.
|
||||
*/
|
||||
bool serial_module_enabled = 120;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
bool serial_module_echo = 121;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 serial_module_rxd = 122;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 serial_module_txd = 123;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
enum Serial_Baud {
|
||||
BAUD_Default = 0;
|
||||
BAUD_2400 = 1;
|
||||
BAUD_4800 = 2;
|
||||
BAUD_9600 = 3;
|
||||
BAUD_19200 = 4;
|
||||
BAUD_38400 = 5;
|
||||
BAUD_57600 = 6;
|
||||
BAUD_115200 = 7;
|
||||
BAUD_230400 = 8;
|
||||
BAUD_460800 = 9;
|
||||
BAUD_576000 = 10;
|
||||
BAUD_921600 = 11;
|
||||
BAUD_110 = 12;
|
||||
BAUD_300 = 13;
|
||||
BAUD_600 = 14;
|
||||
BAUD_1200 = 15;
|
||||
};
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
Serial_Baud serial_module_baud = 176;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 serial_module_timeout = 124;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
enum Serial_Mode {
|
||||
MODE_Default = 0;
|
||||
MODE_SIMPLE = 1;
|
||||
MODE_PROTO = 2;
|
||||
};
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
Serial_Mode serial_module_mode = 125;
|
||||
|
||||
/*
|
||||
* Preferences for the ExternalNotificationModule
|
||||
* FIXME - Move this out of UserPreferences and into a section for module configuration.
|
||||
*/
|
||||
bool ext_notification_module_enabled = 126;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 ext_notification_module_output_ms = 127;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 ext_notification_module_output = 128;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
bool ext_notification_module_active = 129;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
bool ext_notification_module_alert_message = 130;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
bool ext_notification_module_alert_bell = 131;
|
||||
|
||||
/*
|
||||
* Preferences for the RangeTestModule
|
||||
* FIXME - Move this out of UserPreferences and into a section for module configuration.
|
||||
*/
|
||||
bool range_test_module_enabled = 132;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 range_test_module_sender = 133;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
bool range_test_module_save = 134;
|
||||
|
||||
/*
|
||||
* Preferences for the StoreForwardModule
|
||||
*FIXME - Move this out of UserPreferences and into a section for module configuration. (was 136)
|
||||
*/
|
||||
bool store_forward_module_enabled = 148;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
bool store_forward_module_heartbeat = 149;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 store_forward_module_records = 137;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 store_forward_module_history_return_max = 138;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
uint32 store_forward_module_history_return_window = 139;
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
reserved 136;
|
||||
|
||||
|
||||
/*
|
||||
* Bit field of boolean configuration options for POSITION messages
|
||||
* (bitwise OR of PositionFlags)
|
||||
*/
|
||||
uint32 position_flags = 150;
|
||||
|
||||
/*
|
||||
* Circumvents the logic block for determining whether the device is powered or not.
|
||||
* Useful for devices with finicky ADC issues on the battery sense pins.
|
||||
*/
|
||||
bool is_always_powered = 151;
|
||||
|
||||
/*
|
||||
* Automatically toggles to the next page on the screen like a carousel, based the specified interval in seconds.
|
||||
* Potentially useful for devices without user buttons.
|
||||
*/
|
||||
uint32 auto_screen_carousel_secs = 152;
|
||||
|
||||
/*
|
||||
* If non-zero, the device will fully power off this many seconds after external power is removed.
|
||||
*/
|
||||
uint32 on_battery_shutdown_after_secs = 153;
|
||||
|
||||
/*
|
||||
* Overrides HOPS_RELIABLE and sets the maximum number of hops. This can't be greater than 7.
|
||||
*/
|
||||
uint32 hop_limit = 154;
|
||||
|
||||
/*
|
||||
* MQTT username to use (most useful for a custom MQTT server).
|
||||
* If using a custom server, this will be honoured even if empty.
|
||||
* If using the default server, this will only be honoured if set, otherwise the device will use the default username
|
||||
*/
|
||||
string mqtt_username = 155;
|
||||
|
||||
/*
|
||||
* MQTT password to use (most useful for a custom MQTT server).
|
||||
* If using a custom server, this will be honoured even if empty.
|
||||
* If using the default server, this will only be honoured if set, otherwise the device will use the default password
|
||||
*/
|
||||
string mqtt_password = 156;
|
||||
|
||||
/*
|
||||
* Disable TX from the LoRa radio. Useful for hot-swapping antennas and other tests.
|
||||
* Defaults to false
|
||||
*/
|
||||
bool is_lora_tx_disabled = 157;
|
||||
|
||||
/*
|
||||
* If set to true, enable power saving features of the esp32
|
||||
*/
|
||||
bool is_power_saving = 158;
|
||||
|
||||
/*
|
||||
* Enable the rotary encoder #1. This is a 'dumb' encoder sending pulses on both A and B pins while rotating.
|
||||
*/
|
||||
bool rotary1_enabled = 160;
|
||||
|
||||
/*
|
||||
* GPIO pin for rotary encoder A port.
|
||||
*/
|
||||
uint32 inputbroker_pin_a = 161;
|
||||
|
||||
/*
|
||||
* GPIO pin for rotary encoder B port.
|
||||
*/
|
||||
uint32 inputbroker_pin_b = 162;
|
||||
|
||||
/*
|
||||
* GPIO pin for rotary encoder Press port.
|
||||
*/
|
||||
uint32 inputbroker_pin_press = 163;
|
||||
|
||||
/*
|
||||
* Generate input event on CW of this kind.
|
||||
*/
|
||||
InputEventChar inputbroker_event_cw = 164;
|
||||
|
||||
/*
|
||||
* Generate input event on CCW of this kind.
|
||||
*/
|
||||
InputEventChar inputbroker_event_ccw = 165;
|
||||
|
||||
/*
|
||||
* Generate input event on Press of this kind.
|
||||
*/
|
||||
InputEventChar inputbroker_event_press = 166;
|
||||
|
||||
/*
|
||||
* Enable the Up/Down/Select input device. Can be RAK rotary encoder or 3 buttons. Uses the a/b/press definitions from inputbroker.
|
||||
*/
|
||||
bool updown1_enabled = 167;
|
||||
|
||||
/*
|
||||
* Enable/disable CannedMessageModule.
|
||||
*/
|
||||
bool canned_message_module_enabled = 170;
|
||||
|
||||
/*
|
||||
* Input event origin accepted by the canned message module.
|
||||
* Can be e.g. "rotEnc1", "upDownEnc1" or keyword "_any"
|
||||
*/
|
||||
string canned_message_module_allow_input_source = 171;
|
||||
|
||||
/*
|
||||
* CannedMessageModule also sends a bell character with the messages.
|
||||
* ExternalNotificationModule can benefit from this feature.
|
||||
*/
|
||||
bool canned_message_module_send_bell = 173;
|
||||
|
||||
/*
|
||||
* Whether to send encrypted or decrypted packets to MQTT.
|
||||
* This parameter is only honoured if you also set mqtt_server
|
||||
* (the default official mqtt.meshtastic.org server can handle encrypted packets)
|
||||
* Decrypted packets may be useful for external systems that want to consume meshtastic packets
|
||||
*/
|
||||
bool mqtt_encryption_enabled = 174;
|
||||
|
||||
/*
|
||||
* Ratio of voltage divider for battery pin eg. 3.20 (R1=100k, R2=220k)
|
||||
* Overrides the ADC_MULTIPLIER defined in variant for battery voltage calculation.
|
||||
*/
|
||||
float adc_multiplier_override = 175;
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO: REPLACE
|
||||
*/
|
||||
UserPreferences preferences = 1;
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue