kopia lustrzana https://github.com/meshtastic/protobufs
fix formatting
rodzic
4c62d8e536
commit
2e15426fe3
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"cmake.configureOnOpen": false
|
||||||
|
}
|
|
@ -6,18 +6,24 @@ option optimize_for = LITE_RUNTIME;
|
||||||
|
|
||||||
import "mesh.proto";
|
import "mesh.proto";
|
||||||
|
|
||||||
/**
|
/*
|
||||||
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
|
||||||
|
*/
|
||||||
MeshPacket packet = 1;
|
MeshPacket packet = 1;
|
||||||
|
|
||||||
/** The global channel ID it was sent on */
|
/*
|
||||||
|
* The global channel ID it was sent on
|
||||||
|
*/
|
||||||
string channel_id = 2;
|
string channel_id = 2;
|
||||||
|
|
||||||
/** The sending gateway. Can we use this to authenticate/prevent fake
|
/*
|
||||||
nodeid impersonation for senders? - i.e. use gateway/mesh id (which is authenticated) + local node id as
|
* The sending gateway. Can we use this to authenticate/prevent fake
|
||||||
the globally trusted nodenum */
|
* nodeid impersonation for senders? - i.e. use gateway/mesh id (which is authenticated) + local node id as
|
||||||
|
* the globally trusted nodenum
|
||||||
|
*/
|
||||||
string gateway_id = 3;
|
string gateway_id = 3;
|
||||||
}
|
}
|
|
@ -6,45 +6,62 @@ option optimize_for = LITE_RUNTIME;
|
||||||
|
|
||||||
import "mesh.proto";
|
import "mesh.proto";
|
||||||
|
|
||||||
// This message is never sent over the wire, but it is used for serializing DB
|
/*
|
||||||
// state to flash in the device code
|
* This message is never sent over the wire, but it is used for serializing DB
|
||||||
// FIXME, since we write this each time we enter deep sleep (and have infinite
|
* state to flash in the device code
|
||||||
// flash) it would be better to use some sort of append only data structure for
|
* FIXME, since we write this each time we enter deep sleep (and have infinite
|
||||||
// the receive queue and use the preferences store for the other stuff
|
* flash) it would be better to use some sort of append only data structure for
|
||||||
|
* the receive queue and use the preferences store for the other stuff
|
||||||
|
*/
|
||||||
message DeviceState {
|
message DeviceState {
|
||||||
RadioConfig radio = 1;
|
RadioConfig radio = 1;
|
||||||
|
|
||||||
/// Read only settings/info about this node
|
/*
|
||||||
|
* Read only settings/info about this node
|
||||||
|
*/
|
||||||
MyNodeInfo my_node = 2;
|
MyNodeInfo my_node = 2;
|
||||||
|
|
||||||
/// My owner info
|
/*
|
||||||
|
* My owner info
|
||||||
|
*/
|
||||||
User owner = 3;
|
User owner = 3;
|
||||||
|
|
||||||
repeated NodeInfo node_db = 4;
|
repeated NodeInfo node_db = 4;
|
||||||
|
|
||||||
/// Received packets saved for delivery to the phone
|
/*
|
||||||
|
* Received packets saved for delivery to the phone
|
||||||
|
*/
|
||||||
repeated MeshPacket receive_queue = 5;
|
repeated MeshPacket receive_queue = 5;
|
||||||
|
|
||||||
/** A version integer used to invalidate old save files when we make
|
/*
|
||||||
incompatible changes This integer is set at build time and is private to
|
* A version integer used to invalidate old save files when we make
|
||||||
NodeDB.cpp in the device code. */
|
* incompatible changes This integer is set at build time and is private to
|
||||||
|
* NodeDB.cpp in the device code.
|
||||||
|
*/
|
||||||
uint32 version = 8;
|
uint32 version = 8;
|
||||||
|
|
||||||
// We keep the last received text message (only) stored in the device flash,
|
/*
|
||||||
// so we can show it on the screen. Might be null
|
* We keep the last received text message (only) stored in the device flash,
|
||||||
|
* so we can show it on the screen.
|
||||||
|
* Might be null
|
||||||
|
*/
|
||||||
MeshPacket rx_text_message = 7;
|
MeshPacket rx_text_message = 7;
|
||||||
|
|
||||||
// Used only during development. Indicates developer is testing and changes
|
/*
|
||||||
// should never be saved to flash.
|
* Used only during development. Indicates developer is testing and changes
|
||||||
|
* should never be saved to flash.
|
||||||
|
*/
|
||||||
bool no_save = 9;
|
bool no_save = 9;
|
||||||
|
|
||||||
// Some GPSes seem to have bogus settings from the factory, so we always do
|
/*
|
||||||
// one factory reset
|
* Some GPSes seem to have bogus settings from the factory, so we always do one factory reset.
|
||||||
|
*/
|
||||||
bool did_gps_reset = 11;
|
bool did_gps_reset = 11;
|
||||||
|
|
||||||
/** Secondary channels are only used for encryption/decryption/authentication purposes. Their radio settings (freq etc)
|
/*
|
||||||
are ignored, only psk is used.
|
* Secondary channels are only used for encryption/decryption/authentication purposes. Their radio settings (freq etc)
|
||||||
Note: this is not kept inside of RadioConfig because that would make ToRadio/FromRadio worse case > 512 bytes (to big for BLE)
|
* are ignored, only psk is used.
|
||||||
*/
|
* Note: this is not kept inside of RadioConfig because that would make ToRadio/FromRadio worse case > 512 bytes (to big for BLE)
|
||||||
|
*/
|
||||||
repeated ChannelSettings secondary_channels = 12;
|
repeated ChannelSettings secondary_channels = 12;
|
||||||
}
|
}
|
1475
mesh.proto
1475
mesh.proto
Plik diff jest za duży
Load Diff
|
@ -1,29 +1,37 @@
|
||||||
syntax = "proto3";
|
syntax = "proto3";
|
||||||
|
|
||||||
/** This file documents protobufs that are being considered but are not yet in use
|
/*
|
||||||
*/
|
* This file documents protobufs that are being considered but are not yet in use
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/*
|
||||||
Placeholder for data we will eventually set during initial programming. This
|
* Placeholder for data we will eventually set during initial programming. This
|
||||||
will allow us to stop having a load for each region.
|
* will allow us to stop having a load for each region.
|
||||||
*/
|
*/
|
||||||
message ManufacturingData {
|
message ManufacturingData {
|
||||||
/// center frequency for the radio hardware that was stuffed
|
|
||||||
uint32 fradioFreq = 1;
|
|
||||||
|
|
||||||
/// TBEAM, HELTEC, etc...
|
/*
|
||||||
|
* center frequency for the radio hardware that was stuffed
|
||||||
|
*/
|
||||||
|
uint32 fradioFreq = 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TBEAM, HELTEC, etc...
|
||||||
|
*/
|
||||||
string hw_model = 2;
|
string hw_model = 2;
|
||||||
|
|
||||||
// Hardware version number
|
/*
|
||||||
|
* Hardware version number
|
||||||
|
*/
|
||||||
string hw_version = 3;
|
string hw_version = 3;
|
||||||
|
|
||||||
/**
|
/*
|
||||||
This code is written during manfacturing time and allows users to confirm that
|
* This code is written during manfacturing time and allows users to confirm that
|
||||||
the initial manufacturing tests succeeded.
|
* the initial manufacturing tests succeeded.
|
||||||
|
*
|
||||||
0 means no test performed.
|
* 0 means no test performed.
|
||||||
1 means all tests passed
|
* 1 means all tests passed
|
||||||
negative numbers indicate particular error codes
|
* negative numbers indicate particular error codes
|
||||||
*/
|
*/
|
||||||
sint32 selftest_result = 4;
|
sint32 selftest_result = 4;
|
||||||
}
|
}
|
149
portnums.proto
149
portnums.proto
|
@ -4,88 +4,105 @@ option java_package = "com.geeksville.mesh";
|
||||||
option java_outer_classname = "Portnums";
|
option java_outer_classname = "Portnums";
|
||||||
option optimize_for = LITE_RUNTIME;
|
option optimize_for = LITE_RUNTIME;
|
||||||
|
|
||||||
/**
|
/*
|
||||||
For any new 'apps' that run on the device or via sister apps on phones/PCs they should pick and use a
|
* For any new 'apps' that run on the device or via sister apps on phones/PCs they should pick and use a
|
||||||
unique 'portnum' for their application.
|
* unique 'portnum' for their application.
|
||||||
|
*
|
||||||
If you are making a new app using meshtastic, please send in a pull request to add your 'portnum' to this
|
* If you are making a new app using meshtastic, please send in a pull request to add your 'portnum' to this
|
||||||
master table. PortNums should be assigned in the following range:
|
* master table. PortNums should be assigned in the following range:
|
||||||
|
*
|
||||||
0-63 Core Meshtastic use, do not use for third party apps
|
* 0-63 Core Meshtastic use, do not use for third party apps
|
||||||
64-127 Registered 3rd party apps, send in a pull request that adds a new entry to portnums.proto to
|
* 64-127 Registered 3rd party apps, send in a pull request that adds a new entry to portnums.proto to register your application
|
||||||
register your application
|
* 256-511 Use one of these portnums for your private applications that you don't want to register publically
|
||||||
256-511 Use one of these portnums for your private applications that you don't want to register publically
|
*
|
||||||
|
* All other values are reserved.
|
||||||
All other values are reserved.
|
*
|
||||||
|
* Note: This was formerly a Type enum named 'typ' with the same id #
|
||||||
Note: This was formerly a Type enum named 'typ' with the same id #
|
*
|
||||||
|
* We have change to this 'portnum' based scheme for specifying app handlers for particular payloads.
|
||||||
We have change to this 'portnum' based scheme for specifying app handlers for particular payloads.
|
* 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)
|
|
||||||
A message sent from a device outside of the mesh, in a form the mesh
|
/*
|
||||||
does not understand
|
* Deprecated: do not use in new code (formerly called OPAQUE)
|
||||||
NOTE: This must be 0, because it is documented in IMeshService.aidl to be so
|
* A message sent from a device outside of the mesh, in a form the mesh does not understand
|
||||||
*/
|
* NOTE: This must be 0, because it is documented in IMeshService.aidl to be so
|
||||||
|
*/
|
||||||
UNKNOWN_APP = 0;
|
UNKNOWN_APP = 0;
|
||||||
|
|
||||||
/** a simple UTF-8 text message, which even the little micros in the mesh
|
/*
|
||||||
can understand and show on their screen eventually in some circumstances
|
* A simple UTF-8 text message, which even the little micros in the mesh
|
||||||
even signal might send messages in this form (see below)
|
* can understand and show on their screen eventually in some circumstances
|
||||||
Formerly called CLEAR_TEXT */
|
* even signal might send messages in this form (see below)
|
||||||
|
* Formerly called CLEAR_TEXT
|
||||||
|
*/
|
||||||
TEXT_MESSAGE_APP = 1;
|
TEXT_MESSAGE_APP = 1;
|
||||||
|
|
||||||
/** a message receive acknowledgement, sent in cleartext - allows radio to
|
/*
|
||||||
show user that a message has been read by the recipient, optional
|
* A message receive acknowledgement, 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?
|
* Note: this concept has been removed for now. Once READACK is implemented, use the
|
||||||
|
* new packet type/port number stuff?
|
||||||
@exclude
|
*
|
||||||
|
* @exclude
|
||||||
CLEAR_READACK = 2;
|
*
|
||||||
*/
|
* CLEAR_READACK = 2;
|
||||||
|
*
|
||||||
/** Reserved for built-in GPIO/example app.
|
* Reserved for built-in GPIO/example app.
|
||||||
See remote_hardware.proto/HardwareMessage for details on the message sent/received to this port number
|
* See remote_hardware.proto/HardwareMessage for details on the message sent/received to this port number
|
||||||
*/
|
*/
|
||||||
REMOTE_HARDWARE_APP = 2;
|
REMOTE_HARDWARE_APP = 2;
|
||||||
|
|
||||||
/** The built-in position messaging app.
|
/*
|
||||||
See Position for details on the message sent to this port number.
|
* The built-in position messaging app.
|
||||||
*/
|
* See Position for details on the message sent to this port number.
|
||||||
|
*/
|
||||||
POSITION_APP = 3;
|
POSITION_APP = 3;
|
||||||
|
|
||||||
/** The built-in user info app.
|
/*
|
||||||
See User for details on the message sent to this port number.
|
* The built-in user info app.
|
||||||
*/
|
* See User for details on the message sent to this port number.
|
||||||
|
*/
|
||||||
NODEINFO_APP = 4;
|
NODEINFO_APP = 4;
|
||||||
|
|
||||||
/** Provides a 'ping' service that replies to any packet it receives. Also this serves as a
|
/*
|
||||||
small example plugin.
|
* Provides a 'ping' service that replies to any packet it receives. Also this serves as a small example plugin.
|
||||||
*/
|
*/
|
||||||
REPLY_APP = 32;
|
REPLY_APP = 32;
|
||||||
|
|
||||||
/** Used for the python IP tunnel feature */
|
/*
|
||||||
|
* Used for the python IP tunnel feature
|
||||||
|
*/
|
||||||
IP_TUNNEL_APP = 33;
|
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
|
* Provides a hardware serial interface to send and receive from the Meshtastic network.
|
||||||
network is forwarded to the RX pin while sending a packet to TX will go out to the Mesh
|
* Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic
|
||||||
network. Maximum packet size of 240 bytes.
|
* 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
|
||||||
|
*/
|
||||||
Maintained by Jm Casler (MC Hamster) : jm@casler.org
|
|
||||||
|
|
||||||
*/
|
|
||||||
SERIAL_APP = 64;
|
SERIAL_APP = 64;
|
||||||
|
|
||||||
/** Private applications should use portnums >= 256. To simplify initial development and testing you can use "PRIVATE_APP"
|
/*
|
||||||
in your code without needing to rebuild protobuf files (via bin/regin_protos.sh) */
|
* STORE_REQUEST_APP (Work in Progress)
|
||||||
|
*
|
||||||
|
* Maintained by Jm Casler (MC Hamster) : jm@casler.org
|
||||||
|
*/
|
||||||
|
STORE_REQUEST_APP = 65;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Private applications should use portnums >= 256.
|
||||||
|
* To simplify initial development and testing you can use "PRIVATE_APP"
|
||||||
|
* in your code without needing to rebuild protobuf files (via bin/regin_protos.sh)
|
||||||
|
*/
|
||||||
PRIVATE_APP = 256;
|
PRIVATE_APP = 256;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ATAK Forwarder Plugin https://github.com/paulmandal/atak-forwarder
|
||||||
|
*/
|
||||||
|
ATAK_FORWARDER = 257;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,49 +4,65 @@ option java_package = "com.geeksville.mesh";
|
||||||
option java_outer_classname = "RemoteHardware";
|
option java_outer_classname = "RemoteHardware";
|
||||||
option optimize_for = LITE_RUNTIME;
|
option optimize_for = LITE_RUNTIME;
|
||||||
|
|
||||||
/** A example app to show off the plugin system. This message is used for REMOTE_HARDWARE_APP PortNums.
|
/* A 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.
|
* Also provides easy remote access to any GPIO.
|
||||||
|
*
|
||||||
In the future other remote hardware operations can be added based on user interest
|
* In the future other remote hardware operations can be added based on user interest (i.e. serial output, spi/i2c input/output).
|
||||||
(i.e. serial output, spi/i2c input/output).
|
*
|
||||||
|
* FIXME - currently this feature is turned on by default which is dangerous because no security yet (beyond the channel mechanism).
|
||||||
FIXME - currently this feature is turned on by default which is dangerous because no security yet (beyond the
|
* It should be off by default and then protected based on some TBD mechanism (a special channel once multichannel support is included?)
|
||||||
channel mechanism). It should be off by default and then protected based on some TBD mechanism (a special channel
|
*/
|
||||||
once multichannel support is included?)
|
|
||||||
*/
|
|
||||||
message HardwareMessage {
|
message HardwareMessage {
|
||||||
enum Type {
|
enum Type {
|
||||||
/** Unset/unused */
|
|
||||||
|
/*
|
||||||
|
* Unset/unused
|
||||||
|
*/
|
||||||
UNSET = 0;
|
UNSET = 0;
|
||||||
|
|
||||||
/** Set gpio gpios based on gpio_mask/gpio_value */
|
/*
|
||||||
|
* Set gpio gpios based on gpio_mask/gpio_value
|
||||||
|
*/
|
||||||
WRITE_GPIOS = 1;
|
WRITE_GPIOS = 1;
|
||||||
|
|
||||||
/** We are now interested in watching the gpio_mask gpios. If the selected gpios change, please broadcast
|
/*
|
||||||
GPIOS_CHANGED.
|
* 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.
|
*
|
||||||
*/
|
* Will implicitly change the gpios requested to be INPUT gpios.
|
||||||
|
*/
|
||||||
WATCH_GPIOS = 2;
|
WATCH_GPIOS = 2;
|
||||||
|
|
||||||
/** The gpios listed in gpio_mask have changed, the new values are listed in gpio_value */
|
/*
|
||||||
|
* The gpios listed in gpio_mask have changed, the new values are listed in gpio_value
|
||||||
|
*/
|
||||||
GPIOS_CHANGED = 3;
|
GPIOS_CHANGED = 3;
|
||||||
|
|
||||||
/** Read the gpios specified in gpio_mask, send back a READ_GPIOS_REPLY reply with gpio_value populated */
|
/*
|
||||||
|
* Read the gpios specified in gpio_mask, send back a READ_GPIOS_REPLY reply with gpio_value populated
|
||||||
|
*/
|
||||||
READ_GPIOS = 4;
|
READ_GPIOS = 4;
|
||||||
|
|
||||||
/** A reply to READ_GPIOS. gpio_mask and gpio_value will be populated */
|
/*
|
||||||
|
* A reply to READ_GPIOS. gpio_mask and gpio_value will be populated
|
||||||
|
*/
|
||||||
READ_GPIOS_REPLY = 5;
|
READ_GPIOS_REPLY = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** What type of HardwareMessage is this? */
|
/*
|
||||||
|
* What type of HardwareMessage is this?
|
||||||
|
*/
|
||||||
Type typ = 1;
|
Type typ = 1;
|
||||||
|
|
||||||
/** What gpios are we changing. Not used for all MessageTypes, see MessageType for details */
|
/*
|
||||||
|
* What gpios are we changing. Not used for all MessageTypes, see MessageType for details
|
||||||
|
*/
|
||||||
uint64 gpio_mask = 2;
|
uint64 gpio_mask = 2;
|
||||||
|
|
||||||
/** For gpios that were listed in gpio_mask as valid, what are the signal levels for those gpios.
|
/*
|
||||||
Not used for all MessageTypes, see MessageType for details */
|
* For gpios that were listed in gpio_mask as valid, what are the signal levels for those gpios.
|
||||||
|
* Not used for all MessageTypes, see MessageType for details
|
||||||
|
*/
|
||||||
uint64 gpio_value = 3;
|
uint64 gpio_value = 3;
|
||||||
}
|
}
|
Ładowanie…
Reference in New Issue