pull/347/head
Sacha Weatherstone 2023-05-20 19:29:34 +10:00
rodzic 4195c6881e
commit 25c319a898
22 zmienionych plików z 303 dodań i 389 usunięć

Wyświetl plik

@ -5,7 +5,7 @@ on:
inputs: inputs:
increment_type: increment_type:
type: choice type: choice
description: "Select the type of version increment" description: Select the type of version increment
required: true required: true
options: options:
- patch - patch

1
.trunk/.gitignore vendored
Wyświetl plik

@ -5,3 +5,4 @@
plugins plugins
user_trunk.yaml user_trunk.yaml
user.yaml user.yaml
shims

Wyświetl plik

@ -1,6 +1,6 @@
version: 0.1 version: 0.1
cli: cli:
version: 1.7.0 version: 1.9.1
plugins: plugins:
sources: sources:
- id: trunk - id: trunk
@ -8,13 +8,13 @@ plugins:
uri: https://github.com/trunk-io/plugins uri: https://github.com/trunk-io/plugins
lint: lint:
enabled: enabled:
- yamllint@1.30.0 - yamllint@1.31.0
- buf-lint@1.17.0 - buf-lint@1.19.0
- buf-breaking@1.17.0 - buf-breaking@1.19.0
- actionlint@1.6.24 - actionlint@1.6.24
- markdownlint@0.33.0 - markdownlint@0.34.0
- prettier@2.8.7 - prettier@2.8.8
- gitleaks@8.16.2 - gitleaks@8.16.3
- git-diff-check - git-diff-check
runtimes: runtimes:
enabled: enabled:

Wyświetl plik

@ -1,7 +1,3 @@
{ {
"recommendations": [ "recommendations": ["trunk.io", "pbkit.vscode-pbkit", "bufbuild.vscode-buf"]
"trunk.io",
"pbkit.vscode-pbkit",
"bufbuild.vscode-buf"
]
} }

Wyświetl plik

@ -2,18 +2,18 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "AdminProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs";
option swift_prefix = "";
import "meshtastic/channel.proto"; import "meshtastic/channel.proto";
import "meshtastic/config.proto"; import "meshtastic/config.proto";
import "meshtastic/mesh.proto";
import "meshtastic/module_config.proto";
import "meshtastic/connection_status.proto"; import "meshtastic/connection_status.proto";
import "meshtastic/deviceonly.proto"; import "meshtastic/deviceonly.proto";
import "meshtastic/mesh.proto";
import "meshtastic/module_config.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "AdminProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = "";
/* /*
* This message is handled by the Admin module and is responsible for all settings/channel read/write operations. * This message is handled by the Admin module and is responsible for all settings/channel read/write operations.
@ -21,12 +21,10 @@ import "meshtastic/deviceonly.proto";
* (Prior to 1.2 these operations were done via special ToRadio operations) * (Prior to 1.2 these operations were done via special ToRadio operations)
*/ */
message AdminMessage { message AdminMessage {
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
enum ConfigType { enum ConfigType {
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
@ -67,40 +65,39 @@ message AdminMessage {
* TODO: REPLACE * TODO: REPLACE
*/ */
enum ModuleConfigType { enum ModuleConfigType {
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
MQTT_CONFIG = 0; MQTT_CONFIG = 0;
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
SERIAL_CONFIG = 1; SERIAL_CONFIG = 1;
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
EXTNOTIF_CONFIG = 2; EXTNOTIF_CONFIG = 2;
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
STOREFORWARD_CONFIG = 3; STOREFORWARD_CONFIG = 3;
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
RANGETEST_CONFIG = 4; RANGETEST_CONFIG = 4;
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
TELEMETRY_CONFIG = 5; TELEMETRY_CONFIG = 5;
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
CANNEDMSG_CONFIG = 6; CANNEDMSG_CONFIG = 6;
/* /*
@ -118,7 +115,6 @@ message AdminMessage {
* TODO: REPLACE * TODO: REPLACE
*/ */
oneof payload_variant { oneof payload_variant {
/* /*
* Send the specified channel in the response to this message * 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) * NOTE: This field is sent with the channel index + 1 (to ensure we never try to send 'zero' - which protobufs treats as not present)
@ -126,28 +122,28 @@ message AdminMessage {
uint32 get_channel_request = 1; uint32 get_channel_request = 1;
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
Channel get_channel_response = 2; Channel get_channel_response = 2;
/* /*
* Send the current owner data in the response to this message. * Send the current owner data in the response to this message.
*/ */
bool get_owner_request = 3; bool get_owner_request = 3;
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
User get_owner_response = 4; User get_owner_response = 4;
/* /*
* Ask for the following config data to be sent * Ask for the following config data to be sent
*/ */
ConfigType get_config_request = 5; ConfigType get_config_request = 5;
/* /*
* Send the current Config in the response to this message. * Send the current Config in the response to this message.
*/ */
Config get_config_response = 6; Config get_config_response = 6;
/* /*
@ -176,8 +172,8 @@ message AdminMessage {
bool get_device_metadata_request = 12; bool get_device_metadata_request = 12;
/* /*
* Device metadata response * Device metadata response
*/ */
DeviceMetadata get_device_metadata_response = 13; DeviceMetadata get_device_metadata_response = 13;
/* /*
@ -221,12 +217,12 @@ message AdminMessage {
User set_owner = 32; User set_owner = 32;
/* /*
* Set channels (using the new API). * Set channels (using the new API).
* A special channel is the "primary channel". * A special channel is the "primary channel".
* The other records are secondary channels. * The other records are secondary channels.
* Note: only one channel can be marked as primary. * 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. * If the client sets a particular channel to be primary, the previous channel will be set to SECONDARY automatically.
*/ */
Channel set_channel = 33; Channel set_channel = 33;
/* /*

Wyświetl plik

@ -2,16 +2,15 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "AppOnlyProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs";
option swift_prefix = "";
import "meshtastic/channel.proto"; import "meshtastic/channel.proto";
import "meshtastic/config.proto"; import "meshtastic/config.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "AppOnlyProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = "";
/* /*
* This is the most compact possible representation for a set of channels. * This is the most compact possible representation for a set of channels.
* It includes only one PRIMARY channel (which must be first) and * It includes only one PRIMARY channel (which must be first) and
@ -20,7 +19,6 @@ import "meshtastic/config.proto";
* This abstraction is used only on the the 'app side' of the world (ie python, javascript and android etc) to show a group of Channels as a (long) URL * This abstraction is used only on the the 'app side' of the world (ie python, javascript and android etc) to show a group of Channels as a (long) URL
*/ */
message ChannelSet { message ChannelSet {
/* /*
* Channel list with settings * Channel list with settings
*/ */

Wyświetl plik

@ -2,17 +2,16 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "CannedMessageConfigProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs"; option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "CannedMessageConfigProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = ""; option swift_prefix = "";
/* /*
* Canned message module configuration. * Canned message module configuration.
*/ */
message CannedMessageModuleConfig { message CannedMessageModuleConfig {
/* /*
* Predefined messages for canned message module separated by '|' characters. * Predefined messages for canned message module separated by '|' characters.
*/ */

Wyświetl plik

@ -2,10 +2,10 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "ChannelProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs"; option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "ChannelProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = ""; option swift_prefix = "";
/* /*
@ -26,7 +26,6 @@ option swift_prefix = "";
* explain how remote settings and remote gpio are managed as an example * explain how remote settings and remote gpio are managed as an example
*/ */
message ChannelSettings { message ChannelSettings {
/* /*
* Deprecated in favor of LoraConfig.channel_num * Deprecated in favor of LoraConfig.channel_num
*/ */
@ -88,7 +87,6 @@ message ChannelSettings {
* A pair of a channel number, mode and the (sharable) settings for that channel * A pair of a channel number, mode and the (sharable) settings for that channel
*/ */
message Channel { message Channel {
/* /*
* How this channel is being used (or not). * How this channel is being used (or not).
* Note: this field is an enum to give us options for the future. * Note: this field is an enum to give us options for the future.
@ -101,7 +99,6 @@ message Channel {
* (but any number of SECONDARY channels can't be sent received on that common frequency) * (but any number of SECONDARY channels can't be sent received on that common frequency)
*/ */
enum Role { enum Role {
/* /*
* This channel is not in use right now * This channel is not in use right now
*/ */

Wyświetl plik

@ -2,15 +2,14 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "ClientOnlyProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs";
option swift_prefix = "";
import "meshtastic/localonly.proto"; import "meshtastic/localonly.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "ClientOnlyProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = "";
/* /*
* This abstraction is used to contain any configuration for provisioning a node on any client. * This abstraction is used to contain any configuration for provisioning a node on any client.
* It is useful for importing and exporting configurations. * It is useful for importing and exporting configurations.

Wyświetl plik

@ -2,10 +2,10 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "ConfigProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs"; option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "ConfigProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = ""; option swift_prefix = "";
message Config { message Config {
@ -17,7 +17,6 @@ message Config {
* Defines the device's role on the Mesh network * Defines the device's role on the Mesh network
*/ */
enum Role { enum Role {
/* /*
* Client device role * Client device role
*/ */
@ -157,27 +156,27 @@ message Config {
/* /*
* Include an altitude value (if available) * Include an altitude value (if available)
*/ */
ALTITUDE = 0x0001; ALTITUDE = 0x0001;
/* /*
* Altitude value is MSL * Altitude value is MSL
*/ */
ALTITUDE_MSL = 0x0002; ALTITUDE_MSL = 0x0002;
/* /*
* Include geoidal separation * Include geoidal separation
*/ */
GEOIDAL_SEPARATION = 0x0004; GEOIDAL_SEPARATION = 0x0004;
/* /*
* Include the DOP value ; PDOP used by default, see below * Include the DOP value ; PDOP used by default, see below
*/ */
DOP = 0x0008; DOP = 0x0008;
/* /*
* If POS_DOP set, send separate HDOP / VDOP values instead of PDOP * If POS_DOP set, send separate HDOP / VDOP values instead of PDOP
*/ */
HVDOP = 0x0010; HVDOP = 0x0010;
/* /*
* Include number of "satellites in view" * Include number of "satellites in view"
@ -187,7 +186,7 @@ message Config {
/* /*
* Include a sequence number incremented per packet * Include a sequence number incremented per packet
*/ */
SEQ_NO = 0x0040; SEQ_NO = 0x0040;
/* /*
* Include positional timestamp (from GPS solution) * Include positional timestamp (from GPS solution)
@ -199,14 +198,14 @@ message Config {
* Intended for use with vehicle not walking speeds * Intended for use with vehicle not walking speeds
* walking speeds are likely to be error prone like the compass * walking speeds are likely to be error prone like the compass
*/ */
HEADING = 0x0100; HEADING = 0x0100;
/* /*
* Include positional speed * Include positional speed
* Intended for use with vehicle not walking speeds * Intended for use with vehicle not walking speeds
* walking speeds are likely to be error prone like the compass * walking speeds are likely to be error prone like the compass
*/ */
SPEED = 0x0200; SPEED = 0x0200;
} }
/* /*
@ -279,7 +278,6 @@ message Config {
* See [Power Config](/docs/settings/config/power) for additional power config details. * See [Power Config](/docs/settings/config/power) for additional power config details.
*/ */
message PowerConfig { message PowerConfig {
/* /*
* If set, we are powered from a low-current source (i.e. solar), so even if it looks like we have power flowing in * 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. * we should try to minimize power consumption as much as possible.
@ -338,14 +336,12 @@ message Config {
* 0 for default of 10 seconds * 0 for default of 10 seconds
*/ */
uint32 min_wake_secs = 8; uint32 min_wake_secs = 8;
} }
/* /*
* Network Config * Network Config
*/ */
message NetworkConfig { message NetworkConfig {
enum AddressMode { enum AddressMode {
/* /*
* obtain ip address via DHCP * obtain ip address via DHCP
@ -430,7 +426,6 @@ message Config {
* How the GPS coordinates are displayed on the OLED screen. * How the GPS coordinates are displayed on the OLED screen.
*/ */
enum GpsCoordinateFormat { enum GpsCoordinateFormat {
/* /*
* GPS coordinates are displayed in the normal decimal degrees format: * GPS coordinates are displayed in the normal decimal degrees format:
* DD.DDDDDD DDD.DDDDDD * DD.DDDDDD DDD.DDDDDD
@ -473,7 +468,6 @@ message Config {
* Unit display preference * Unit display preference
*/ */
enum DisplayUnits { enum DisplayUnits {
/* /*
* Metric (Default) * Metric (Default)
*/ */
@ -489,7 +483,6 @@ message Config {
* Override OLED outo detect with this if it fails. * Override OLED outo detect with this if it fails.
*/ */
enum OledType { enum OledType {
/* /*
* Default / Auto * Default / Auto
*/ */
@ -590,9 +583,7 @@ message Config {
* Lora Config * Lora Config
*/ */
message LoRaConfig { message LoRaConfig {
enum RegionCode { enum RegionCode {
/* /*
* Region is not set * Region is not set
*/ */
@ -679,7 +670,6 @@ message Config {
* Note: these mappings must match ModemPreset Choice in the device code. * Note: these mappings must match ModemPreset Choice in the device code.
*/ */
enum ModemPreset { enum ModemPreset {
/* /*
* Long Range - Fast * Long Range - Fast
*/ */
@ -784,7 +774,7 @@ message Config {
* burn out the radio hardware) * burn out the radio hardware)
* In most cases you should use zero here. * In most cases you should use zero here.
* Units are in dBm. * Units are in dBm.
*/ */
int32 tx_power = 10; int32 tx_power = 10;
/* /*
@ -802,12 +792,12 @@ message Config {
* If true, duty cycle limits will be exceeded and thus you're possibly not following * If true, duty cycle limits will be exceeded and thus you're possibly not following
* the local regulations if you're not a HAM. * the local regulations if you're not a HAM.
* Has no effect if the duty cycle of the used region is 100%. * Has no effect if the duty cycle of the used region is 100%.
*/ */
bool override_duty_cycle = 12; bool override_duty_cycle = 12;
/* /*
* If true, sets RX boosted gain mode on SX126X based radios * If true, sets RX boosted gain mode on SX126X based radios
*/ */
bool sx126x_rx_boosted_gain = 13; bool sx126x_rx_boosted_gain = 13;
/* /*
@ -825,11 +815,9 @@ message Config {
* in ignore_incoming will have packets they send dropped on receive (by router.cpp) * in ignore_incoming will have packets they send dropped on receive (by router.cpp)
*/ */
repeated uint32 ignore_incoming = 103; repeated uint32 ignore_incoming = 103;
} }
message BluetoothConfig { message BluetoothConfig {
enum PairingMode { enum PairingMode {
/* /*
* Device generates a random PIN that will be shown on the screen of the device for pairing * Device generates a random PIN that will be shown on the screen of the device for pairing
@ -861,14 +849,12 @@ message Config {
* Specified PIN for PairingMode.FixedPin * Specified PIN for PairingMode.FixedPin
*/ */
uint32 fixed_pin = 3; uint32 fixed_pin = 3;
} }
/* /*
* Payload Variant * Payload Variant
*/ */
oneof payload_variant { oneof payload_variant {
DeviceConfig device = 1; DeviceConfig device = 1;
PositionConfig position = 2; PositionConfig position = 2;
PowerConfig power = 3; PowerConfig power = 3;
@ -876,6 +862,5 @@ message Config {
DisplayConfig display = 5; DisplayConfig display = 5;
LoRaConfig lora = 6; LoRaConfig lora = 6;
BluetoothConfig bluetooth = 7; BluetoothConfig bluetooth = 7;
} }
} }

Wyświetl plik

@ -2,10 +2,10 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "ConnStatusProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs"; option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "ConnStatusProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = ""; option swift_prefix = "";
message DeviceConnectionStatus { message DeviceConnectionStatus {
@ -56,7 +56,7 @@ message EthernetConnectionStatus {
/* /*
* Connection status * Connection status
*/ */
NetworkConnectionStatus status = 1; NetworkConnectionStatus status = 1;
} }
/* /*
@ -107,7 +107,7 @@ message BluetoothConnectionStatus {
/* /*
* Serial connection status * Serial connection status
*/ */
message SerialConnectionStatus { message SerialConnectionStatus {
/* /*
* Serial baud rate * Serial baud rate
*/ */

Wyświetl plik

@ -2,17 +2,17 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "DeviceOnly";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs";
option swift_prefix = "";
import "meshtastic/channel.proto"; import "meshtastic/channel.proto";
import "meshtastic/localonly.proto"; import "meshtastic/localonly.proto";
import "meshtastic/mesh.proto"; import "meshtastic/mesh.proto";
import "meshtastic/module_config.proto"; import "meshtastic/module_config.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "DeviceOnly";
option java_package = "com.geeksville.mesh";
option swift_prefix = "";
/* /*
* This message is never sent over the wire, but it is used for serializing DB * This message is never sent over the wire, but it is used for serializing DB
* state to flash in the device code * state to flash in the device code
@ -21,7 +21,6 @@ import "meshtastic/module_config.proto";
* the receive queue and use the preferences store for the other stuff * the receive queue and use the preferences store for the other stuff
*/ */
message DeviceState { message DeviceState {
/* /*
* Read only settings/info about this node * Read only settings/info about this node
*/ */
@ -84,7 +83,6 @@ message DeviceState {
* The on-disk saved channels * The on-disk saved channels
*/ */
message ChannelFile { message ChannelFile {
/* /*
* The channels our node knows about * The channels our node knows about
*/ */
@ -102,7 +100,6 @@ message ChannelFile {
* TODO: REPLACE * TODO: REPLACE
*/ */
enum ScreenFonts { enum ScreenFonts {
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
@ -124,7 +121,6 @@ enum ScreenFonts {
* show a secondary bootup screen with custom logo and text for 2.5 seconds. * show a secondary bootup screen with custom logo and text for 2.5 seconds.
*/ */
message OEMStore { message OEMStore {
/* /*
* The Logo width in Px * The Logo width in Px
*/ */
@ -170,7 +166,6 @@ message OEMStore {
* RemoteHardwarePins associated with a node * RemoteHardwarePins associated with a node
*/ */
message NodeRemoteHardwarePin { message NodeRemoteHardwarePin {
/* /*
* The node_num exposing the available gpio pin * The node_num exposing the available gpio pin
*/ */

Wyświetl plik

@ -2,15 +2,15 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "LocalOnlyProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs";
option swift_prefix = "";
import "meshtastic/config.proto"; import "meshtastic/config.proto";
import "meshtastic/module_config.proto"; import "meshtastic/module_config.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "LocalOnlyProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = "";
/* /*
* Protobuf structures common to apponly.proto and deviceonly.proto * Protobuf structures common to apponly.proto and deviceonly.proto
* This is never sent over the wire, only for local use * This is never sent over the wire, only for local use

Wyświetl plik

@ -2,12 +2,6 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "MeshProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs";
option swift_prefix = "";
import "meshtastic/channel.proto"; import "meshtastic/channel.proto";
import "meshtastic/config.proto"; import "meshtastic/config.proto";
import "meshtastic/module_config.proto"; import "meshtastic/module_config.proto";
@ -15,6 +9,12 @@ import "meshtastic/portnums.proto";
import "meshtastic/telemetry.proto"; import "meshtastic/telemetry.proto";
import "meshtastic/xmodem.proto"; import "meshtastic/xmodem.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "MeshProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = "";
/* /*
* a gps position * a gps position
*/ */
@ -48,7 +48,6 @@ message Position {
* How the location was acquired: manual, onboard GPS, external (EUD) GPS * How the location was acquired: manual, onboard GPS, external (EUD) GPS
*/ */
enum LocSource { enum LocSource {
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
@ -80,7 +79,6 @@ message Position {
* Default: same as location_source if present * Default: same as location_source if present
*/ */
enum AltSource { enum AltSource {
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
@ -209,13 +207,12 @@ message Position {
} }
/* /*
* Note: these enum names must EXACTLY match the string used in the device * Note: these enum names must EXACTLY match the string used in the device
* bin/build-all.sh script. * bin/build-all.sh script.
* Because they will be used to find firmware filenames in the android app for OTA updates. * Because they will be used to find firmware filenames in the android app for OTA updates.
* To match the old style filenames, _ is converted to -, p is converted to . * To match the old style filenames, _ is converted to -, p is converted to .
*/ */
enum HardwareModel { enum HardwareModel {
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
@ -421,7 +418,6 @@ enum HardwareModel {
* 0 through 3 - for future use * 0 through 3 - for future use
*/ */
message User { message User {
/* /*
* A globally unique ID string for this user. * A globally unique ID string for this user.
* In the case of Signal that would mean +16504442323, for the default macaddr derived id it would be !<8 hexidecimal bytes>. * In the case of Signal that would mean +16504442323, for the default macaddr derived id it would be !<8 hexidecimal bytes>.
@ -467,7 +463,6 @@ message User {
* A message used in our Dynamic Source Routing protocol (RFC 4728 based) * A message used in our Dynamic Source Routing protocol (RFC 4728 based)
*/ */
message RouteDiscovery { message RouteDiscovery {
/* /*
* The list of nodenums this packet has visited so far * The list of nodenums this packet has visited so far
*/ */
@ -478,13 +473,11 @@ message RouteDiscovery {
* A Routing control Data packet handled by the routing module * A Routing control Data packet handled by the routing module
*/ */
message Routing { message Routing {
/* /*
* A failure in delivering a message (usually used for routing control messages, but might be provided in addition to ack.fail_id to provide * A failure in delivering a message (usually used for routing control messages, but might be provided in addition to ack.fail_id to provide
* details on the type of failure). * details on the type of failure).
*/ */
enum Error { enum Error {
/* /*
* This message is not a failure * This message is not a failure
*/ */
@ -549,7 +542,6 @@ message Routing {
} }
oneof variant { oneof variant {
/* /*
* A route request going from the requester * A route request going from the requester
*/ */
@ -565,7 +557,6 @@ message Routing {
* in addition to ack.fail_id to provide details on the type of failure). * in addition to ack.fail_id to provide details on the type of failure).
*/ */
Error error_reason = 3; Error error_reason = 3;
} }
} }
@ -575,15 +566,14 @@ message Routing {
* inside a radio packet (because from/to are broken out by the comms library) * inside a radio packet (because from/to are broken out by the comms library)
*/ */
message Data { message Data {
/* /*
* Formerly named typ and of type Type * Formerly named typ and of type Type
*/ */
PortNum portnum = 1; PortNum portnum = 1;
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
bytes payload = 2; bytes payload = 2;
/* /*
@ -625,14 +615,12 @@ message Data {
* a message a heart or poop emoji. * a message a heart or poop emoji.
*/ */
fixed32 emoji = 8; fixed32 emoji = 8;
} }
/* /*
* Waypoint message, used to share arbitrary locations across the mesh * Waypoint message, used to share arbitrary locations across the mesh
*/ */
message Waypoint { message Waypoint {
/* /*
* Id of the waypoint * Id of the waypoint
*/ */
@ -681,7 +669,6 @@ message Waypoint {
* The other fields are either not sent at all, or sent in the special 16 byte LORA header. * The other fields are either not sent at all, or sent in the special 16 byte LORA header.
*/ */
message MeshPacket { message MeshPacket {
/* /*
* The priority of this message for sending. * The priority of this message for sending.
* Higher priorities are sent first (when managing the transmit queue). * Higher priorities are sent first (when managing the transmit queue).
@ -703,7 +690,6 @@ message MeshPacket {
* And the transmission queue in the router object is now a priority queue. * And the transmission queue in the router object is now a priority queue.
*/ */
enum Priority { enum Priority {
/* /*
* Treated as Priority.DEFAULT * Treated as Priority.DEFAULT
*/ */
@ -747,7 +733,6 @@ message MeshPacket {
* Identify if this is a delayed packet * Identify if this is a delayed packet
*/ */
enum Delayed { enum Delayed {
/* /*
* If unset, the message is being sent in real time. * If unset, the message is being sent in real time.
*/ */
@ -799,7 +784,6 @@ message MeshPacket {
*/ */
oneof payload_variant { oneof payload_variant {
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
@ -876,14 +860,12 @@ message MeshPacket {
* Describe if this message is delayed * Describe if this message is delayed
*/ */
Delayed delayed = 13; Delayed delayed = 13;
} }
/* /*
* Shared constants between device and phone * Shared constants between device and phone
*/ */
enum Constants { enum Constants {
/* /*
* First enum must be zero, and we are just using this enum to * First enum must be zero, and we are just using this enum to
* pass int constants between two very different environments * pass int constants between two very different environments
@ -917,7 +899,6 @@ enum Constants {
* Full information about a node on the mesh * Full information about a node on the mesh
*/ */
message NodeInfo { message NodeInfo {
/* /*
* The node number * The node number
*/ */
@ -980,7 +961,6 @@ message NodeInfo {
* local channel index we heard that node on. Only populated if its not the default channel. * local channel index we heard that node on. Only populated if its not the default channel.
*/ */
uint32 channel = 7; uint32 channel = 7;
} }
/* /*
@ -990,7 +970,6 @@ message NodeInfo {
* and we'll try to help. * and we'll try to help.
*/ */
enum CriticalErrorCode { enum CriticalErrorCode {
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
@ -1059,7 +1038,6 @@ enum CriticalErrorCode {
* Sent to the phone in response to WantNodes. * Sent to the phone in response to WantNodes.
*/ */
message MyNodeInfo { message MyNodeInfo {
/* /*
* Tells the phone what our node number is, default starting value is * Tells the phone what our node number is, default starting value is
* lowbyte of macaddr, but it will be fixed if that is already in use * lowbyte of macaddr, but it will be fixed if that is already in use
@ -1162,7 +1140,6 @@ message MyNodeInfo {
* and then extend as needed by emitting multiple records. * and then extend as needed by emitting multiple records.
*/ */
message LogRecord { message LogRecord {
/* /*
* Log levels, chosen to match python logging conventions. * Log levels, chosen to match python logging conventions.
*/ */
@ -1245,7 +1222,6 @@ message QueueStatus {
* at which point the next item in the FIFO will be populated. * at which point the next item in the FIFO will be populated.
*/ */
message FromRadio { message FromRadio {
/* /*
* The packet id, used to allow the phone to request missing read packets from the FIFO, * The packet id, used to allow the phone to request missing read packets from the FIFO,
* see our bluetooth docs * see our bluetooth docs
@ -1256,7 +1232,6 @@ message FromRadio {
* Log levels, chosen to match python logging conventions. * Log levels, chosen to match python logging conventions.
*/ */
oneof payload_variant { oneof payload_variant {
/* /*
* Log levels, chosen to match python logging conventions. * Log levels, chosen to match python logging conventions.
*/ */
@ -1327,18 +1302,15 @@ message FromRadio {
} }
} }
/* /*
* Packets/commands to the radio will be written (reliably) to the toRadio characteristic. * Packets/commands to the radio will be written (reliably) to the toRadio characteristic.
* Once the write completes the phone can assume it is handled. * Once the write completes the phone can assume it is handled.
*/ */
message ToRadio { message ToRadio {
/* /*
* Log levels, chosen to match python logging conventions. * Log levels, chosen to match python logging conventions.
*/ */
oneof payload_variant { oneof payload_variant {
/* /*
* Send this packet on the mesh * Send this packet on the mesh
*/ */
@ -1375,7 +1347,6 @@ message ToRadio {
* Compressed message payload * Compressed message payload
*/ */
message Compressed { message Compressed {
/* /*
* PortNum to determine the how to handle the compressed payload. * PortNum to determine the how to handle the compressed payload.
*/ */
@ -1388,42 +1359,42 @@ message Compressed {
} }
/* /*
* Full info on edges for a single node * Full info on edges for a single node
*/ */
message NeighborInfo { message NeighborInfo {
/* /*
* The node ID of the node sending info on its neighbors * The node ID of the node sending info on its neighbors
*/ */
uint32 node_id = 1; uint32 node_id = 1;
/* /*
* Field to pass neighbor info for the next sending cycle * Field to pass neighbor info for the next sending cycle
*/ */
uint32 last_sent_by_id = 2; uint32 last_sent_by_id = 2;
/* /*
* The list of out edges from this node * The list of out edges from this node
*/ */
repeated Neighbor neighbors = 3; repeated Neighbor neighbors = 3;
} }
/* /*
* A single edge in the mesh * A single edge in the mesh
*/ */
message Neighbor { message Neighbor {
/* /*
* Node ID of neighbor * Node ID of neighbor
*/ */
uint32 node_id = 1; uint32 node_id = 1;
/* /*
* SNR of last heard message * SNR of last heard message
*/ */
float snr = 2; float snr = 2;
} }
/* /*
* Device metadata response * Device metadata response
*/ */
message DeviceMetadata { message DeviceMetadata {
/* /*
* Device firmware version string * Device firmware version string
*/ */

Wyświetl plik

@ -2,26 +2,24 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "ModuleConfigProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs"; option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "ModuleConfigProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = ""; option swift_prefix = "";
/* /*
* Module Config * Module Config
*/ */
message ModuleConfig { message ModuleConfig {
/* /*
* MQTT Client Config * MQTT Client Config
*/ */
message MQTTConfig { message MQTTConfig {
/* /*
* If a meshtastic node is able to reach the internet it will normally attempt to gateway any channels that are marked as * 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. * is_uplink_enabled or is_downlink_enabled.
*/ */
bool enabled = 1; bool enabled = 1;
/* /*
@ -73,7 +71,6 @@ message ModuleConfig {
* RemoteHardwareModule Config * RemoteHardwareModule Config
*/ */
message RemoteHardwareConfig { message RemoteHardwareConfig {
/* /*
* Whether the Module is enabled * Whether the Module is enabled
*/ */
@ -94,7 +91,6 @@ message ModuleConfig {
* Audio Config for codec2 voice * Audio Config for codec2 voice
*/ */
message AudioConfig { message AudioConfig {
/* /*
* Baudrate for codec2 voice * Baudrate for codec2 voice
*/ */
@ -108,7 +104,7 @@ message ModuleConfig {
CODEC2_1200 = 6; CODEC2_1200 = 6;
CODEC2_700 = 7; CODEC2_700 = 7;
CODEC2_700B = 8; CODEC2_700B = 8;
}; }
/* /*
* Whether Audio is enabled * Whether Audio is enabled
@ -150,7 +146,6 @@ message ModuleConfig {
* Serial Config * Serial Config
*/ */
message SerialConfig { message SerialConfig {
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
@ -171,7 +166,7 @@ message ModuleConfig {
BAUD_460800 = 13; BAUD_460800 = 13;
BAUD_576000 = 14; BAUD_576000 = 14;
BAUD_921600 = 15; BAUD_921600 = 15;
}; }
/* /*
* TODO: REPLACE * TODO: REPLACE
@ -182,7 +177,7 @@ message ModuleConfig {
PROTO = 2; PROTO = 2;
TEXTMSG = 3; TEXTMSG = 3;
NMEA = 4; NMEA = 4;
}; }
/* /*
* Preferences for the SerialModule * Preferences for the SerialModule
@ -219,14 +214,12 @@ message ModuleConfig {
* TODO: REPLACE * TODO: REPLACE
*/ */
Serial_Mode mode = 7; Serial_Mode mode = 7;
} }
/* /*
* External Notifications Config * External Notifications Config
*/ */
message ExternalNotificationConfig { message ExternalNotificationConfig {
/* /*
* Enable the ExternalNotificationModule * Enable the ExternalNotificationModule
*/ */
@ -336,7 +329,6 @@ message ModuleConfig {
* TODO: REPLACE * TODO: REPLACE
*/ */
uint32 history_return_window = 5; uint32 history_return_window = 5;
} }
/* /*
@ -364,7 +356,6 @@ message ModuleConfig {
* Configuration for both device and environment metrics * Configuration for both device and environment metrics
*/ */
message TelemetryConfig { message TelemetryConfig {
/* /*
* Interval in seconds of how often we should try to send our * Interval in seconds of how often we should try to send our
* device metrics to the mesh * device metrics to the mesh
@ -411,36 +402,34 @@ message ModuleConfig {
* TODO: REPLACE * TODO: REPLACE
*/ */
message CannedMessageConfig { message CannedMessageConfig {
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
enum InputEventChar { enum InputEventChar {
/*
* TODO: REPLACE
*/
NONE = 0;
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
NONE = 0; UP = 17;
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
UP = 17; DOWN = 18;
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
DOWN = 18; LEFT = 19;
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
LEFT = 19; RIGHT = 20;
/*
* TODO: REPLACE
*/
RIGHT = 20;
/* /*
* '\n' * '\n'
@ -450,7 +439,7 @@ message ModuleConfig {
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
BACK = 27; BACK = 27;
/* /*
* TODO: REPLACE * TODO: REPLACE
@ -520,7 +509,6 @@ message ModuleConfig {
* TODO: REPLACE * TODO: REPLACE
*/ */
oneof payload_variant { oneof payload_variant {
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
@ -565,14 +553,13 @@ message ModuleConfig {
* TODO: REPLACE * TODO: REPLACE
*/ */
RemoteHardwareConfig remote_hardware = 9; RemoteHardwareConfig remote_hardware = 9;
} }
} }
/* /*
* A GPIO pin definition for remote hardware module * A GPIO pin definition for remote hardware module
*/ */
message RemoteHardwarePin { message RemoteHardwarePin {
/* /*
* GPIO Pin number (must match Arduino) * GPIO Pin number (must match Arduino)
*/ */

Wyświetl plik

@ -2,19 +2,18 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "MQTTProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs";
option swift_prefix = "";
import "meshtastic/mesh.proto"; import "meshtastic/mesh.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "MQTTProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = "";
/* /*
* This message wraps a MeshPacket with extra metadata about the sender and how it arrived. * This message wraps a MeshPacket with extra metadata about the sender and how it arrived.
*/ */
message ServiceEnvelope { message ServiceEnvelope {
/* /*
* The (probably encrypted) packet * The (probably encrypted) packet
*/ */

Wyświetl plik

@ -2,10 +2,10 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "Portnums";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs"; option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "Portnums";
option java_package = "com.geeksville.mesh";
option swift_prefix = ""; option swift_prefix = "";
/* /*
@ -23,7 +23,6 @@ option swift_prefix = "";
* This change is backwards compatible by treating the legacy OPAQUE/CLEAR_TEXT values identically. * This change is backwards compatible by treating the legacy OPAQUE/CLEAR_TEXT values identically.
*/ */
enum PortNum { enum PortNum {
/* /*
* Deprecated: do not use in new code (formerly called OPAQUE) * Deprecated: do not use in new code (formerly called OPAQUE)
* A message sent from a device outside of the mesh, in a form the mesh does not understand * A message sent from a device outside of the mesh, in a form the mesh does not understand

Wyświetl plik

@ -2,10 +2,10 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "RemoteHardware";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs"; option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "RemoteHardware";
option java_package = "com.geeksville.mesh";
option swift_prefix = ""; option swift_prefix = "";
/* /*
@ -20,12 +20,10 @@ option swift_prefix = "";
* (a special channel once multichannel support is included?) * (a special channel once multichannel support is included?)
*/ */
message HardwareMessage { message HardwareMessage {
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
enum Type { enum Type {
/* /*
* Unset/unused * Unset/unused
*/ */

Wyświetl plik

@ -2,17 +2,16 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "RTTTLConfigProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs"; option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "RTTTLConfigProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = ""; option swift_prefix = "";
/* /*
* Canned message module configuration. * Canned message module configuration.
*/ */
message RTTTLConfig { message RTTTLConfig {
/* /*
* Ringtone for PWM Buzzer in RTTTL Format. * Ringtone for PWM Buzzer in RTTTL Format.
*/ */

Wyświetl plik

@ -2,23 +2,21 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "StoreAndForwardProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs"; option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "StoreAndForwardProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = ""; option swift_prefix = "";
/* /*
* TODO: REPLACE * TODO: REPLACE
*/ */
message StoreAndForward { message StoreAndForward {
/* /*
* 001 - 063 = From Router * 001 - 063 = From Router
* 064 - 127 = From Client * 064 - 127 = From Client
*/ */
enum RequestResponse { enum RequestResponse {
/* /*
* Unset/unused * Unset/unused
*/ */
@ -96,7 +94,6 @@ message StoreAndForward {
* TODO: REPLACE * TODO: REPLACE
*/ */
message Statistics { message Statistics {
/* /*
* Number of messages we have ever seen * Number of messages we have ever seen
*/ */
@ -147,7 +144,6 @@ message StoreAndForward {
* TODO: REPLACE * TODO: REPLACE
*/ */
message History { message History {
/* /*
* Number of that will be sent to the client * Number of that will be sent to the client
*/ */
@ -168,7 +164,6 @@ message StoreAndForward {
* TODO: REPLACE * TODO: REPLACE
*/ */
message Heartbeat { message Heartbeat {
/* /*
* Number of that will be sent to the client * Number of that will be sent to the client
*/ */

Wyświetl plik

@ -2,10 +2,10 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "TelemetryProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs"; option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "TelemetryProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = ""; option swift_prefix = "";
/* /*
@ -71,7 +71,7 @@ message EnvironmentMetrics {
/* /*
* Air quality metrics * Air quality metrics
*/ */
message AirQualityMetrics { message AirQualityMetrics {
/* /*
* Concentration Units Standard PM1.0 * Concentration Units Standard PM1.0
*/ */
@ -165,76 +165,76 @@ message Telemetry {
} }
/* /*
* Supported I2C Sensors for telemetry in Meshtastic * Supported I2C Sensors for telemetry in Meshtastic
*/ */
enum TelemetrySensorType { enum TelemetrySensorType {
/* /*
* No external telemetry sensor explicitly set * No external telemetry sensor explicitly set
*/ */
SENSOR_UNSET = 0; SENSOR_UNSET = 0;
/* /*
* High accuracy temperature, pressure, humidity * High accuracy temperature, pressure, humidity
*/ */
BME280 = 1; BME280 = 1;
/* /*
* High accuracy temperature, pressure, humidity, and air resistance * High accuracy temperature, pressure, humidity, and air resistance
*/ */
BME680 = 2; BME680 = 2;
/* /*
* Very high accuracy temperature * Very high accuracy temperature
*/ */
MCP9808 = 3; MCP9808 = 3;
/* /*
* Moderate accuracy current and voltage * Moderate accuracy current and voltage
*/ */
INA260 = 4; INA260 = 4;
/* /*
* Moderate accuracy current and voltage * Moderate accuracy current and voltage
*/ */
INA219 = 5; INA219 = 5;
/* /*
* High accuracy temperature and pressure * High accuracy temperature and pressure
*/ */
BMP280 = 6; BMP280 = 6;
/* /*
* High accuracy temperature and humidity * High accuracy temperature and humidity
*/ */
SHTC3 = 7; SHTC3 = 7;
/* /*
* High accuracy pressure * High accuracy pressure
*/ */
LPS22 = 8; LPS22 = 8;
/* /*
* 3-Axis magnetic sensor * 3-Axis magnetic sensor
*/ */
QMC6310 = 9; QMC6310 = 9;
/* /*
* 6-Axis inertial measurement sensor * 6-Axis inertial measurement sensor
*/ */
QMI8658 = 10; QMI8658 = 10;
/* /*
* 3-Axis magnetic sensor * 3-Axis magnetic sensor
*/ */
QMC5883L = 11; QMC5883L = 11;
/* /*
* High accuracy temperature and humidity * High accuracy temperature and humidity
*/ */
SHT31 = 12; SHT31 = 12;
/* /*
* PM2.5 air quality sensor * PM2.5 air quality sensor
*/ */
PMSA003I = 13; PMSA003I = 13;
}; }

Wyświetl plik

@ -2,21 +2,21 @@ syntax = "proto3";
package meshtastic; package meshtastic;
option java_package = "com.geeksville.mesh";
option java_outer_classname = "XmodemProtos";
option go_package = "github.com/meshtastic/go/generated";
option csharp_namespace = "Meshtastic.Protobufs"; option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "XmodemProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = ""; option swift_prefix = "";
message XModem { message XModem {
enum Control { enum Control {
NUL = 0; NUL = 0;
SOH = 1; SOH = 1;
STX = 2; STX = 2;
EOT = 4; EOT = 4;
ACK = 6; ACK = 6;
NAK = 21; NAK = 21;
CAN = 24; CAN = 24;
CTRLZ = 26; CTRLZ = 26;
} }