kopia lustrzana https://github.com/meshtastic/protobufs
Fix comment formatting
rodzic
7c025b9a4d
commit
ae5119b8fb
10
admin.proto
10
admin.proto
|
@ -9,11 +9,11 @@ import "channel.proto";
|
|||
|
||||
option java_outer_classname = "AdminProtos";
|
||||
|
||||
/* This message is handled by the Admin plugin and is responsible for all settings/channel read/write operations. This message
|
||||
is used to do settings operations to both remote AND local nodes.
|
||||
|
||||
(Prior to 1.2 these operations were done via special ToRadio operations)
|
||||
*/
|
||||
/*
|
||||
* This message is handled by the Admin plugin and is responsible for all settings/channel read/write operations. This message
|
||||
* is used to do settings operations to both remote AND local nodes.
|
||||
* (Prior to 1.2 these operations were done via special ToRadio operations)
|
||||
*/
|
||||
message AdminMessage {
|
||||
|
||||
oneof variant {
|
||||
|
|
|
@ -30,12 +30,11 @@ message ServiceEnvelope {
|
|||
string gateway_id = 3;
|
||||
}
|
||||
|
||||
/* This is the most compact possible representation for a set of channels. It includes only one PRIMARY channel (which must be first) and
|
||||
any SECONDARY channels. No DISABLED channels are included.
|
||||
|
||||
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 is the most compact possible representation for a set of channels. It includes only one PRIMARY channel (which must be first) and
|
||||
* any SECONDARY channels. No DISABLED channels are included.
|
||||
* 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 {
|
||||
repeated ChannelSettings settings = 1;
|
||||
}
|
|
@ -15,7 +15,7 @@ syntax = "proto3";
|
|||
*
|
||||
* To generate Nanopb c code:
|
||||
* /home/kevinh/packages/nanopb-0.4.0-linux-x86/generator-bin/protoc --nanopb_out=/tmp -I=app/src/main/proto mesh.proto
|
||||
*
|
||||
*
|
||||
* Nanopb binaries available here: https://jpa.kapsi.fi/nanopb/download/ use nanopb 0.4.0
|
||||
*/
|
||||
|
||||
|
@ -41,7 +41,7 @@ option java_outer_classname = "ChannelProtos";
|
|||
* users COULD type in a channel name and be able to talk.
|
||||
* Y is a lower case letter from a-z that represents the channel 'speed' settings
|
||||
* (for some future definition of speed)
|
||||
*
|
||||
*
|
||||
* FIXME: Add description of multi-channel support and how primary vs secondary channels are used.
|
||||
* FIXME: explain how apps use channels for security. explain how remote settings and
|
||||
* remote gpio are managed as an example
|
||||
|
@ -88,13 +88,11 @@ message ChannelSettings {
|
|||
|
||||
/*
|
||||
* Note: This is the 'old' mechanism for specifying channel parameters.
|
||||
* Either modem_config or bandwidth/spreading/coding will be specified - NOT
|
||||
* BOTH. As a heuristic: If bandwidth is specified, do not use modem_config.
|
||||
* Because protobufs take ZERO space when the value is zero this works out
|
||||
* nicely.
|
||||
* This value is replaced by bandwidth/spread_factor/coding_rate. If you'd
|
||||
* like to experiment with other options add them to MeshRadio.cpp in the
|
||||
* device code.
|
||||
* Either modem_config or bandwidth/spreading/coding will be specified - NOT BOTH.
|
||||
* As a heuristic: If bandwidth is specified, do not use modem_config.
|
||||
* Because protobufs take ZERO space when the value is zero this works out nicely.
|
||||
* This value is replaced by bandwidth/spread_factor/coding_rate.
|
||||
* If you'd like to experiment with other options add them to MeshRadio.cpp in the device code.
|
||||
*/
|
||||
ModemConfig modem_config = 3;
|
||||
|
||||
|
@ -140,9 +138,9 @@ message ChannelSettings {
|
|||
* A special shorthand is used for 1 byte long psks.
|
||||
* These psks should be treated as only minimally secure,
|
||||
* because they are listed in this source code. Those bytes are mapped using the following scheme:
|
||||
* 0 = No crypto
|
||||
* 1 = The special default channel key: {0xd4, 0xf1, 0xbb, 0x3a, 0x20, 0x29, 0x07, 0x59, 0xf0, 0xbc, 0xff, 0xab, 0xcf, 0x4e, 0x69, 0xbf}
|
||||
* 2 through 10 = The default channel key, except with 1 through 9 added to the last byte
|
||||
* `0` = No crypto
|
||||
* `1` = The special default channel key: {0xd4, 0xf1, 0xbb, 0x3a, 0x20, 0x29, 0x07, 0x59, 0xf0, 0xbc, 0xff, 0xab, 0xcf, 0x4e, 0x69, 0xbf}
|
||||
* `2` through 10 = The default channel key, except with 1 through 9 added to the last byte
|
||||
*/
|
||||
bytes psk = 4;
|
||||
|
||||
|
@ -181,36 +179,48 @@ message ChannelSettings {
|
|||
bool downlink_enabled = 17;
|
||||
}
|
||||
|
||||
/* 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 {
|
||||
|
||||
/* How this channel is being used (or not).
|
||||
|
||||
Note: this field is an enum to give us options for the future. In particular, someday
|
||||
we might make a 'SCANNING' option. SCANNING channels could have different frequencies and the radio would
|
||||
occasionally check that freq to see if anything is being transmitted.
|
||||
|
||||
For devices that have multiple physical radios attached, we could keep multiple PRIMARY/SCANNING channels active at once to allow
|
||||
cross band routing as needed. If a device has only a single radio (the common case) only one channel can be PRIMARY at a time
|
||||
(but any number of SECONDARY channels can't be sent received on that common frequency)
|
||||
*/
|
||||
/*
|
||||
* How this channel is being used (or not).
|
||||
*
|
||||
* Note: this field is an enum to give us options for the future. In particular, someday
|
||||
* we might make a 'SCANNING' option. SCANNING channels could have different frequencies and the radio would
|
||||
* occasionally check that freq to see if anything is being transmitted.
|
||||
*
|
||||
* For devices that have multiple physical radios attached, we could keep multiple PRIMARY/SCANNING channels active at once to allow
|
||||
* cross band routing as needed. If a device has only a single radio (the common case) only one channel can be PRIMARY at a time
|
||||
* (but any number of SECONDARY channels can't be sent received on that common frequency)
|
||||
*/
|
||||
enum Role {
|
||||
/* This channel is not in use right now */
|
||||
/*
|
||||
* This channel is not in use right now
|
||||
*/
|
||||
DISABLED = 0;
|
||||
|
||||
/* This channel is used to set the frequency for the radio - all other enabled channels must be SECONDARY */
|
||||
/*
|
||||
* This channel is used to set the frequency for the radio - all other enabled channels must be SECONDARY
|
||||
*/
|
||||
PRIMARY = 1;
|
||||
|
||||
/* Secondary channels are only used for encryption/decryption/authentication purposes. Their radio settings (freq etc)
|
||||
/*
|
||||
* Secondary channels are only used for encryption/decryption/authentication purposes. Their radio settings (freq etc)
|
||||
* are ignored, only psk is used.
|
||||
*/
|
||||
SECONDARY = 2;
|
||||
}
|
||||
|
||||
/* The index of this channel in the channel table (from 0 to MAX_NUM_CHANNELS-1) */
|
||||
/*
|
||||
* The index of this channel in the channel table (from 0 to MAX_NUM_CHANNELS-1)
|
||||
*/
|
||||
uint32 index = 1;
|
||||
|
||||
/* The new settings, or NULL to disable that channel */
|
||||
/*
|
||||
* The new settings, or NULL to disable that channel
|
||||
*/
|
||||
ChannelSettings settings = 2;
|
||||
|
||||
Role role = 3;
|
||||
|
|
|
@ -18,7 +18,9 @@ option java_outer_classname = "DeviceOnly";
|
|||
*/
|
||||
message DeviceState {
|
||||
|
||||
// Was secondary_channels before 1.2
|
||||
/*
|
||||
* Was secondary_channels before 1.2
|
||||
*/
|
||||
reserved 12;
|
||||
|
||||
RadioConfig radio = 1;
|
||||
|
|
214
mesh.proto
214
mesh.proto
|
@ -15,7 +15,7 @@ syntax = "proto3";
|
|||
*
|
||||
* To generate Nanopb c code:
|
||||
* /home/kevinh/packages/nanopb-0.4.0-linux-x86/generator-bin/protoc --nanopb_out=/tmp -I=app/src/main/proto mesh.proto
|
||||
*
|
||||
*
|
||||
* Nanopb binaries available here: https://jpa.kapsi.fi/nanopb/download/ use nanopb 0.4.0
|
||||
*/
|
||||
|
||||
|
@ -30,8 +30,10 @@ option java_outer_classname = "MeshProtos";
|
|||
* a gps position
|
||||
*/
|
||||
message Position {
|
||||
/* The old (pre 1.2) position encoding sent lat/lon as sint32s in field 7,8.
|
||||
Do not use to prevent confusing old apps */
|
||||
/*
|
||||
* The old (pre 1.2) position encoding sent lat/lon as sint32s in field 7,8.
|
||||
* Do not use to prevent confusing old apps
|
||||
*/
|
||||
reserved 7, 8;
|
||||
|
||||
/*
|
||||
|
@ -42,12 +44,15 @@ message Position {
|
|||
|
||||
sfixed32 longitude_i = 2;
|
||||
|
||||
/* This is a special 'small' position update for lat/lon. It encodes a signed 16 bit latitude in the upper
|
||||
2 bytes, and a signed longitude in the lower 16 bits. It is not currently implemented, but can be added in an
|
||||
automatically backwards compatible way later. Note: ONLY microlatlon OR latitude_i, longitude_i are populated in any particular
|
||||
position. A microdelta is always relative to the last received full position.
|
||||
|
||||
fixed32 microlatlon = 3; */
|
||||
/*
|
||||
* This is a special 'small' position update for lat/lon.
|
||||
* It encodes a signed 16 bit latitude in the upper 2 bytes, and a signed longitude in the lower 16 bits.
|
||||
* It is not currently implemented, but can be added in an automatically backwards compatible way later.
|
||||
* Note: ONLY microlatlon OR latitude_i, longitude_i are populated in any particular position.
|
||||
* A microdelta is always relative to the last received full position.
|
||||
*
|
||||
* fixed32 microlatlon = 3;
|
||||
*/
|
||||
|
||||
/*
|
||||
* In meters above MSL
|
||||
|
@ -127,91 +132,102 @@ message User {
|
|||
message RouteDiscovery {
|
||||
|
||||
/*
|
||||
* The list of nodenums this packet has visited so far
|
||||
*/
|
||||
* The list of nodenums this packet has visited so far
|
||||
*/
|
||||
repeated fixed32 route = 2;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* A Routing control Data packet handled by the routing plugin
|
||||
*/
|
||||
/*
|
||||
*A Routing control Data packet handled by the routing plugin
|
||||
*/
|
||||
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
|
||||
* details on the type of failure).
|
||||
*/
|
||||
* 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).
|
||||
*/
|
||||
enum Error {
|
||||
|
||||
/* This message is not a failure */
|
||||
/*
|
||||
* This message is not a failure
|
||||
*/
|
||||
NONE = 0;
|
||||
|
||||
/*
|
||||
* Our node doesn't have a route to the requested destination anymore.
|
||||
*/
|
||||
* Our node doesn't have a route to the requested destination anymore.
|
||||
*/
|
||||
NO_ROUTE = 1;
|
||||
|
||||
/*
|
||||
* We received a nak while trying to forward on your behalf
|
||||
*/
|
||||
* We received a nak while trying to forward on your behalf
|
||||
*/
|
||||
GOT_NAK = 2;
|
||||
|
||||
TIMEOUT = 3;
|
||||
|
||||
/*
|
||||
* No suitable interface could be found for delivering this packet
|
||||
*/
|
||||
* No suitable interface could be found for delivering this packet
|
||||
*/
|
||||
NO_INTERFACE = 4;
|
||||
|
||||
/*
|
||||
* We reached the max retransmission count (typically for naive flood routing)
|
||||
*/
|
||||
* We reached the max retransmission count (typically for naive flood routing)
|
||||
*/
|
||||
MAX_RETRANSMIT = 5;
|
||||
|
||||
/* No suitable channel was found for sending this packet (i.e. was requested channel index disabled?) */
|
||||
/*
|
||||
* No suitable channel was found for sending this packet (i.e. was requested channel index disabled?)
|
||||
*/
|
||||
NO_CHANNEL = 6;
|
||||
|
||||
/* The packet was too big for sending (exceeds interface MTU after encoding) */
|
||||
/*
|
||||
* The packet was too big for sending (exceeds interface MTU after encoding)
|
||||
*/
|
||||
TOO_LARGE = 7;
|
||||
}
|
||||
|
||||
oneof variant {
|
||||
/*
|
||||
* A route request going from the requester
|
||||
*/
|
||||
* A route request going from the requester
|
||||
*/
|
||||
RouteDiscovery route_request = 1;
|
||||
|
||||
/*
|
||||
* A route reply
|
||||
*/
|
||||
* A route reply
|
||||
*/
|
||||
RouteDiscovery route_reply = 2;
|
||||
|
||||
/*
|
||||
* 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).
|
||||
*/
|
||||
* 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).
|
||||
*/
|
||||
Error error_reason = 3;
|
||||
|
||||
/* Deprecated - this has been replced with error_reason == NONE && request_id != 0
|
||||
/*
|
||||
* Deprecated - this has been replced with error_reason == NONE && request_id != 0
|
||||
* This is an ack.
|
||||
* This packet is a requested acknoledgement indicating that we have received
|
||||
* the specified message ID. This packet type can be used both for immediate
|
||||
* (0 hops) messages or can be routed through multiple hops if dest is set.
|
||||
* Note: As an optimization, recipients can _also_ populate a field in payload
|
||||
* if they think the recipient would appreciate that extra state.
|
||||
|
||||
fixed32 success_id = 4;
|
||||
*
|
||||
* fixed32 success_id = 4;
|
||||
*/
|
||||
|
||||
/* Deprecated - this has been replced with error_reason !== NONE && request_id != 0
|
||||
/*
|
||||
* Deprecated - this has been replced with error_reason !== NONE && request_id != 0
|
||||
* This is a nak, we failed to deliver this message.
|
||||
fixed32 fail_id = 5;
|
||||
*/
|
||||
*
|
||||
* fixed32 fail_id = 5;
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
/* (Formerly called SubPacket)
|
||||
/*
|
||||
* (Formerly called SubPacket)
|
||||
* The payload portion fo a packet, this is the actual bytes that are sent
|
||||
* inside a radio packet (because from/to are broken out by the comms library)
|
||||
*/
|
||||
|
@ -264,48 +280,59 @@ message Data {
|
|||
*/
|
||||
message MeshPacket {
|
||||
|
||||
/* The priority of this message for sending. Higher priorities are sent first
|
||||
(when managing the transmit queue).
|
||||
This field is never sent over the air, it is only used internally inside of a local device node.
|
||||
API clients (either on the local node or connected directly to the node)
|
||||
can set this parameter if necessary.
|
||||
|
||||
(values must be <= 127 to keep protobuf field to one byte in size.
|
||||
|
||||
Detailed background on this field:
|
||||
|
||||
I noticed a funny side effect of lora being so slow: Usually when making
|
||||
a protocol there isn’t much need to use message priority to change the order
|
||||
of transmission (because interfaces are fairly fast).
|
||||
But for lora where packets can take a few seconds each, it is very important
|
||||
to make sure that critical packets are sent ASAP.
|
||||
In the case of meshtastic that means we want to send protocol acks as soon as possible
|
||||
(to prevent unneeded retransmissions), we want routing messages to be sent next,
|
||||
then messages marked as reliable and finally ‘background’ packets like periodic position updates.
|
||||
|
||||
So I bit the bullet and implemented a new (internal - not sent over the air)
|
||||
field in MeshPacket called ‘priority’.
|
||||
And the transmission queue in the router object is now a priority queue.
|
||||
*/
|
||||
/*
|
||||
* The priority of this message for sending. Higher priorities are sent first
|
||||
* (when managing the transmit queue).
|
||||
* This field is never sent over the air, it is only used internally inside of a local device node.
|
||||
* API clients (either on the local node or connected directly to the node)
|
||||
* can set this parameter if necessary.
|
||||
*
|
||||
* (values must be <= 127 to keep protobuf field to one byte in size.
|
||||
*
|
||||
* Detailed background on this field:
|
||||
*
|
||||
* I noticed a funny side effect of lora being so slow: Usually when making
|
||||
* a protocol there isn’t much need to use message priority to change the order
|
||||
* of transmission (because interfaces are fairly fast).
|
||||
* But for lora where packets can take a few seconds each, it is very important
|
||||
* to make sure that critical packets are sent ASAP.
|
||||
* In the case of meshtastic that means we want to send protocol acks as soon as possible
|
||||
* (to prevent unneeded retransmissions), we want routing messages to be sent next,
|
||||
* then messages marked as reliable and finally ‘background’ packets like periodic position updates.
|
||||
*
|
||||
* So I bit the bullet and implemented a new (internal - not sent over the air)
|
||||
* field in MeshPacket called ‘priority’.
|
||||
* And the transmission queue in the router object is now a priority queue.
|
||||
*/
|
||||
enum Priority {
|
||||
/* Treated as Priority.DEFAULT */
|
||||
/*
|
||||
* Treated as Priority.DEFAULT
|
||||
*/
|
||||
UNSET = 0;
|
||||
|
||||
MIN = 1;
|
||||
|
||||
/* Background position updates are sent with very low priority -
|
||||
* if the link is super congested they might not go out at all */
|
||||
/*
|
||||
* Background position updates are sent with very low priority -
|
||||
* if the link is super congested they might not go out at all
|
||||
*/
|
||||
BACKGROUND = 10;
|
||||
|
||||
/* This priority is used for most messages that don't have a priority set */
|
||||
/*
|
||||
* This priority is used for most messages that don't have a priority set
|
||||
*/
|
||||
DEFAULT = 64;
|
||||
|
||||
/* If priority is unset but the message is marked as want_ack,
|
||||
* assume it is important and use a slightly higher priority */
|
||||
/*
|
||||
* If priority is unset but the message is marked as want_ack,
|
||||
* assume it is important and use a slightly higher priority
|
||||
*/
|
||||
RELIABLE = 70;
|
||||
|
||||
/* Ack/naks are sent with very high priority to ensure that retransmission
|
||||
* stops as soon as possible */
|
||||
/*
|
||||
* Ack/naks are sent with very high priority to ensure that retransmission
|
||||
* stops as soon as possible
|
||||
*/
|
||||
ACK = 120;
|
||||
|
||||
MAX = 127;
|
||||
|
@ -330,7 +357,6 @@ message MeshPacket {
|
|||
* was sent/received on. If unset, packet was on the primary channel.
|
||||
* A particular node might know only a subset of channels in use on the mesh. Therefore channel_index
|
||||
* is inherently a local concept and meaningless to send between nodes.
|
||||
*
|
||||
* Very briefly, while sending and receiving deep inside the device Router code, this field instead
|
||||
* contains the 'channel hash' instead of the index. This 'trick' is only used while the payloadVariant is
|
||||
* an 'encrypted'.
|
||||
|
@ -401,9 +427,10 @@ message MeshPacket {
|
|||
*/
|
||||
bool want_ack = 11;
|
||||
|
||||
/* The priority of this message for sending.
|
||||
See MeshPacket.Priority description for more details.
|
||||
*/
|
||||
/*
|
||||
* The priority of this message for sending.
|
||||
* See MeshPacket.Priority description for more details.
|
||||
*/
|
||||
Priority priority = 12;
|
||||
}
|
||||
|
||||
|
@ -482,24 +509,22 @@ message NodeInfo {
|
|||
* transmitter, the receiver or both. \return The estimated center frequency
|
||||
* offset in Hz of the last received message.
|
||||
* int32 frequency_error = 6;
|
||||
*
|
||||
* enum RouteState {
|
||||
* Invalid = 0;
|
||||
* Discovering = 1;
|
||||
* Valid = 2;
|
||||
* }
|
||||
*
|
||||
* Not needed?
|
||||
* RouteState route = 4;
|
||||
*
|
||||
* Our current preferred node node for routing - might be the same as num if
|
||||
* we are adjacent Or zero if we don't yet know a route to this node.
|
||||
*/
|
||||
uint32 next_hop = 5;
|
||||
}
|
||||
|
||||
/** Error codes for critical errors
|
||||
*
|
||||
/*
|
||||
* Error codes for critical errors
|
||||
*
|
||||
* The device might report these fault codes on the screen.
|
||||
* If you encounter a fault code, please post on the meshtastic.discourse.group
|
||||
* and we'll try to help.
|
||||
|
@ -579,11 +604,13 @@ message MyNodeInfo {
|
|||
*/
|
||||
uint32 num_bands = 3;
|
||||
|
||||
/* The maximum number of 'software' channels that can be set on this node.
|
||||
*/
|
||||
/*
|
||||
* The maximum number of 'software' channels that can be set on this node.
|
||||
*/
|
||||
uint32 max_channels = 15;
|
||||
|
||||
/* Deprecated! ONLY USED IN DEVICE CODE (for upgrading old 1.0 firmwares) DO NOT READ ELSEWHERE.
|
||||
/*
|
||||
* Deprecated! ONLY USED IN DEVICE CODE (for upgrading old 1.0 firmwares) DO NOT READ ELSEWHERE.
|
||||
* The region code for my radio (US, CN, etc...)
|
||||
* Note: This string is deprecated. The 1.0 builds populate it based on the
|
||||
* flashed firmware name. But for newer builds this string will be unpopulated
|
||||
|
@ -644,7 +671,8 @@ message MyNodeInfo {
|
|||
*/
|
||||
}
|
||||
|
||||
/* Debug output from the device.
|
||||
/*
|
||||
* Debug output from the device.
|
||||
*
|
||||
* To minimize the size of records inside the device code, if a time/source/level is not set
|
||||
* on the message it is assumed to be a continuation of the previously sent message.
|
||||
|
@ -692,9 +720,14 @@ message LogRecord {
|
|||
*/
|
||||
message FromRadio {
|
||||
|
||||
/* In the <1.2 versions packet had ID 2, to prevent confusing old apps with our new packets, we've changed */
|
||||
/*
|
||||
* In the <1.2 versions packet had ID 2, to prevent confusing old apps with our new packets, we've changed
|
||||
*/
|
||||
reserved 2;
|
||||
/* In the <1.2 versions nodeinfo had ID 4, to prevent confusing old apps with our new packets, we've changed */
|
||||
|
||||
/*
|
||||
* In the <1.2 versions nodeinfo had ID 4, to prevent confusing old apps with our new packets, we've changed
|
||||
*/
|
||||
reserved 6;
|
||||
|
||||
/*
|
||||
|
@ -748,9 +781,10 @@ message FromRadio {
|
|||
*/
|
||||
message ToRadio {
|
||||
|
||||
/* In the <1.2 versions packet had ID 2, to prevent confusing old apps with our new packets, we've changed.
|
||||
101-103 were used for set_radio, set_owner, set_channel
|
||||
*/
|
||||
/*
|
||||
* In the <1.2 versions packet had ID 2, to prevent confusing old apps with our new packets, we've changed.
|
||||
* 101-103 were used for set_radio, set_owner, set_channel
|
||||
*/
|
||||
reserved 1, 101, 102, 103;
|
||||
|
||||
oneof payloadVariant {
|
||||
|
|
|
@ -42,14 +42,10 @@ enum PortNum {
|
|||
/*
|
||||
* A message receive acknowledgment, sent in cleartext - allows radio to
|
||||
* show user that a message has been read by the recipient, optional
|
||||
*
|
||||
* Note: this concept has been removed for now. Once READACK is implemented, use the
|
||||
* new packet type/port number stuff?
|
||||
*
|
||||
* @exclude
|
||||
*
|
||||
* CLEAR_READACK = 2;
|
||||
*
|
||||
* Reserved for built-in GPIO/example app.
|
||||
* See remote_hardware.proto/HardwareMessage for details on the message sent/received to this port number
|
||||
*/
|
||||
|
@ -69,10 +65,14 @@ enum PortNum {
|
|||
*/
|
||||
NODEINFO_APP = 4;
|
||||
|
||||
/* Protocol control packets for mesh protocol use, payload is a Routing protobuf */
|
||||
/*
|
||||
* Protocol control packets for mesh protocol use, payload is a Routing protobuf
|
||||
*/
|
||||
ROUTING_APP = 5;
|
||||
|
||||
/* Admin control packets, payload is a AdminMessage protobuf */
|
||||
/*
|
||||
* Admin control packets, payload is a AdminMessage protobuf
|
||||
*/
|
||||
ADMIN_APP = 6;
|
||||
|
||||
/*
|
||||
|
@ -86,35 +86,30 @@ enum PortNum {
|
|||
*/
|
||||
IP_TUNNEL_APP = 33;
|
||||
|
||||
/** Provides a hardware serial interface to send and receive from the Meshtastic network.
|
||||
Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic
|
||||
network is forwarded to the RX pin while sending a packet to TX will go out to the Mesh
|
||||
network. Maximum packet size of 240 bytes.
|
||||
|
||||
Plugin is disabled by default can be turned on by setting SERIALPLUGIN_ENABLED = 1 in
|
||||
SerialPlugh.cpp.
|
||||
Maintained by Jm Casler (MC Hamster) : jm@casler.org
|
||||
|
||||
*/
|
||||
/*
|
||||
* Provides a hardware serial interface to send and receive from the Meshtastic network.
|
||||
* Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic
|
||||
* network is forwarded to the RX pin while sending a packet to TX will go out to the Mesh network.
|
||||
* Maximum packet size of 240 bytes.
|
||||
* Plugin is disabled by default can be turned on by setting SERIALPLUGIN_ENABLED = 1 in SerialPlugh.cpp.
|
||||
* Maintained by Jm Casler (MC Hamster) : jm@casler.org
|
||||
*/
|
||||
SERIAL_APP = 64;
|
||||
|
||||
/*
|
||||
* STORE_FORWARD_APP (Work in Progress)
|
||||
*
|
||||
* Maintained by Jm Casler (MC Hamster) : jm@casler.org
|
||||
*/
|
||||
STORE_FORWARD_APP = 65;
|
||||
|
||||
/*
|
||||
* STORE_FORWARD_APP (Work in Progress)
|
||||
*
|
||||
* Maintained by Jm Casler (MC Hamster) : jm@casler.org
|
||||
*/
|
||||
RANGE_TEST_APP = 66;
|
||||
|
||||
/*
|
||||
* Provides a format to send and receive environmental data from the Meshtastic network.
|
||||
*
|
||||
* Maintained by Charles Crossan (crossan007) : crossan007@gmail.com
|
||||
*/
|
||||
ENVIRONMENTAL_MEASUREMENT_APP = 67;
|
||||
|
@ -131,6 +126,8 @@ enum PortNum {
|
|||
*/
|
||||
ATAK_FORWARDER = 257;
|
||||
|
||||
/** Currently we limit port nums to no higher than this value */
|
||||
/*
|
||||
* Currently we limit port nums to no higher than this value
|
||||
*/
|
||||
MAX = 511;
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ syntax = "proto3";
|
|||
*
|
||||
* To generate Nanopb c code:
|
||||
* /home/kevinh/packages/nanopb-0.4.0-linux-x86/generator-bin/protoc --nanopb_out=/tmp -I=app/src/main/proto mesh.proto
|
||||
*
|
||||
*
|
||||
* Nanopb binaries available here: https://jpa.kapsi.fi/nanopb/download/ use nanopb 0.4.0
|
||||
*/
|
||||
|
||||
|
@ -88,7 +88,6 @@ enum GpsOperation {
|
|||
|
||||
/*
|
||||
* Note: This mode was removed, because it is identical go GpsOpMobile with a gps_update_rate of once per day
|
||||
*
|
||||
* This node is mostly stationary, we should try to get location only once per day,
|
||||
* Once we have that position we should turn the GPS to sleep mode
|
||||
* This is the recommended configuration for stationary 'router' nodes
|
||||
|
@ -159,9 +158,7 @@ message RadioConfig {
|
|||
/*
|
||||
* 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;
|
||||
*/
|
||||
|
||||
|
@ -221,7 +218,8 @@ message RadioConfig {
|
|||
*/
|
||||
uint32 min_wake_secs = 11;
|
||||
|
||||
/* If set, this node will try to join the specified wifi network and
|
||||
/*
|
||||
* If set, this node will try to join the specified wifi network and
|
||||
* acquire an address via DHCP
|
||||
*/
|
||||
string wifi_ssid = 12;
|
||||
|
@ -281,9 +279,9 @@ message RadioConfig {
|
|||
*/
|
||||
bool debug_log_enabled = 101;
|
||||
|
||||
/**
|
||||
How our location is shared with other nodes (or the local phone)
|
||||
*/
|
||||
/*
|
||||
* How our location is shared with other nodes (or the local phone)
|
||||
*/
|
||||
LocationSharing location_share = 32;
|
||||
|
||||
/*
|
||||
|
@ -311,22 +309,18 @@ message RadioConfig {
|
|||
* 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.
|
||||
* 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 SerialPlugin
|
||||
|
||||
FIXME - Move this out of UserPreferences and into a section for plugin configuration.
|
||||
*/
|
||||
/*
|
||||
* Preferences for the SerialPlugin
|
||||
* FIXME - Move this out of UserPreferences and into a section for plugin configuration.
|
||||
*/
|
||||
bool serialplugin_enabled = 120;
|
||||
bool serialplugin_echo = 121;
|
||||
uint32 serialplugin_rxd = 122;
|
||||
|
@ -334,11 +328,10 @@ message RadioConfig {
|
|||
uint32 serialplugin_timeout = 124;
|
||||
uint32 serialplugin_mode = 125;
|
||||
|
||||
/**
|
||||
Preferences for the ExternalNotificationPlugin
|
||||
|
||||
FIXME - Move this out of UserPreferences and into a section for plugin configuration.
|
||||
*/
|
||||
/*
|
||||
* Preferences for the ExternalNotificationPlugin
|
||||
* FIXME - Move this out of UserPreferences and into a section for plugin configuration.
|
||||
*/
|
||||
bool ext_notification_plugin_enabled = 126;
|
||||
uint32 ext_notification_plugin_output_ms = 127;
|
||||
uint32 ext_notification_plugin_output = 128;
|
||||
|
@ -346,68 +339,68 @@ message RadioConfig {
|
|||
bool ext_notification_plugin_alert_message = 130;
|
||||
bool ext_notification_plugin_alert_bell = 131;
|
||||
|
||||
/**
|
||||
Preferences for the RangeTestPlugin
|
||||
|
||||
FIXME - Move this out of UserPreferences and into a section for plugin configuration.
|
||||
*/
|
||||
/*
|
||||
*Preferences for the RangeTestPlugin
|
||||
* FIXME - Move this out of UserPreferences and into a section for plugin configuration.
|
||||
*/
|
||||
bool range_test_plugin_enabled = 132;
|
||||
uint32 range_test_plugin_sender = 133;
|
||||
bool range_test_plugin_save = 134;
|
||||
|
||||
/**
|
||||
Preferences for the StoreForwardPlugin
|
||||
|
||||
FIXME - Move this out of UserPreferences and into a section for plugin configuration.
|
||||
*/
|
||||
/*
|
||||
* Preferences for the StoreForwardPlugin
|
||||
*FIXME - Move this out of UserPreferences and into a section for plugin configuration.
|
||||
*/
|
||||
bool store_forward_plugin_enabled = 136;
|
||||
uint32 store_forward_plugin_records = 137;
|
||||
|
||||
/**
|
||||
Preferences for the EnvironmentalMeasurement Plugin
|
||||
FIXME - Move this out of UserPreferences and into a section for plugin configuration.
|
||||
*/
|
||||
/*
|
||||
* Enable/Disable the environmental measurement plugin measurement collection
|
||||
*/
|
||||
* Preferences for the EnvironmentalMeasurement Plugin
|
||||
* FIXME - Move this out of UserPreferences and into a section for plugin configuration.
|
||||
* Enable/Disable the environmental measurement plugin measurement collection
|
||||
*/
|
||||
bool environmental_measurement_plugin_measurement_enabled = 140;
|
||||
/*
|
||||
* Enable/Disable the environmental measurement plugin on-device display
|
||||
*/
|
||||
* Enable/Disable the environmental measurement plugin on-device display
|
||||
*/
|
||||
bool environmental_measurement_plugin_screen_enabled = 141;
|
||||
/*
|
||||
* 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
|
||||
*/
|
||||
* 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 environmental_measurement_plugin_read_error_count_threshold = 142;
|
||||
/*
|
||||
* Interval in seconds of how often we should try to send our
|
||||
* measurements to the mesh
|
||||
*/
|
||||
* Interval in seconds of how often we should try to send our
|
||||
* measurements to the mesh
|
||||
*/
|
||||
uint32 environmental_measurement_plugin_update_interval = 143;
|
||||
/* 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
|
||||
*/
|
||||
/*
|
||||
* 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 environmental_measurement_plugin_recovery_interval = 144;
|
||||
|
||||
/* We'll always read the sensor in Celsius, but sometimes we might want to
|
||||
display the results in Farenheit as a "user preference". s
|
||||
*/
|
||||
/*
|
||||
* We'll always read the sensor in Celsius, but sometimes we might want to
|
||||
* display the results in Farenheit as a "user preference".
|
||||
*/
|
||||
bool environmental_measurement_plugin_display_farenheit = 145;
|
||||
|
||||
enum EnvironmentalMeasurementSensorType {
|
||||
DHT11 = 0;
|
||||
};
|
||||
|
||||
/* Specify the sensor type
|
||||
*/
|
||||
/*
|
||||
* Specify the sensor type
|
||||
*/
|
||||
EnvironmentalMeasurementSensorType environmental_measurement_plugin_sensor_type = 146;
|
||||
|
||||
/* Specify the peferred GPIO Pin for sensor readings
|
||||
*/
|
||||
/*
|
||||
* Specify the peferred GPIO Pin for sensor readings
|
||||
*/
|
||||
uint32 environmental_measurement_plugin_sensor_pin = 147;
|
||||
|
||||
|
||||
|
|
|
@ -4,7 +4,8 @@ option java_package = "com.geeksville.mesh";
|
|||
option java_outer_classname = "RemoteHardware";
|
||||
option optimize_for = LITE_RUNTIME;
|
||||
|
||||
/* A example app to show off the plugin system. This message is used for
|
||||
/*
|
||||
* An example app to show off the plugin system. This message is used for
|
||||
* REMOTE_HARDWARE_APP PortNums.
|
||||
*
|
||||
* Also provides easy remote access to any GPIO.
|
||||
|
@ -33,7 +34,6 @@ message HardwareMessage {
|
|||
/*
|
||||
* We are now interested in watching the gpio_mask gpios.
|
||||
* If the selected gpios change, please broadcast GPIOS_CHANGED.
|
||||
*
|
||||
* Will implicitly change the gpios requested to be INPUT gpios.
|
||||
*/
|
||||
WATCH_GPIOS = 2;
|
||||
|
|
Ładowanie…
Reference in New Issue