kopia lustrzana https://github.com/meshtastic/protobufs
				
				
				
			
		
			
				
	
	
		
			241 wiersze
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
			
		
		
	
	
			241 wiersze
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
| syntax = "proto3";
 | |
| 
 | |
| package meshtastic;
 | |
| 
 | |
| import "meshtastic/channel.proto";
 | |
| import "meshtastic/mesh.proto";
 | |
| import "meshtastic/telemetry.proto";
 | |
| import "meshtastic/config.proto";
 | |
| import "nanopb.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 = "";
 | |
| option (nanopb_fileopt).include = "<vector>";
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Position with static location information only for NodeDBLite
 | |
|  */
 | |
| message PositionLite {
 | |
|   /*
 | |
|    * The new preferred location encoding, multiply by 1e-7 to get degrees
 | |
|    * in floating point
 | |
|    */
 | |
|   sfixed32 latitude_i = 1;
 | |
| 
 | |
|   /*
 | |
|    * TODO: REPLACE
 | |
|    */
 | |
|   sfixed32 longitude_i = 2;
 | |
| 
 | |
|   /*
 | |
|    * In meters above MSL (but see issue #359)
 | |
|    */
 | |
|   int32 altitude = 3;
 | |
| 
 | |
|   /*
 | |
|    * This is usually not sent over the mesh (to save space), but it is sent
 | |
|    * from the phone so that the local device can set its RTC If it is sent over
 | |
|    * the mesh (because there are devices on the mesh without GPS), it will only
 | |
|    * be sent by devices which has a hardware GPS clock.
 | |
|    * seconds since 1970
 | |
|    */
 | |
|   fixed32 time = 4;
 | |
| 
 | |
|   /*
 | |
|    * TODO: REPLACE
 | |
|    */
 | |
|   Position.LocSource location_source = 5;
 | |
| }
 | |
| 
 | |
| message UserLite {
 | |
|   /*
 | |
|    * This is the addr of the radio.
 | |
|    */
 | |
|   bytes macaddr = 1 [deprecated = true];
 | |
| 
 | |
|   /*
 | |
|    * A full name for this user, i.e. "Kevin Hester"
 | |
|    */
 | |
|   string long_name = 2;
 | |
| 
 | |
|   /*
 | |
|    * A VERY short name, ideally two characters.
 | |
|    * Suitable for a tiny OLED screen
 | |
|    */
 | |
|   string short_name = 3;
 | |
| 
 | |
|   /*
 | |
|    * TBEAM, HELTEC, etc...
 | |
|    * Starting in 1.2.11 moved to hw_model enum in the NodeInfo object.
 | |
|    * Apps will still need the string here for older builds
 | |
|    * (so OTA update can find the right image), but if the enum is available it will be used instead.
 | |
|    */
 | |
|   HardwareModel hw_model = 4;
 | |
| 
 | |
|   /*
 | |
|    * In some regions Ham radio operators have different bandwidth limitations than others.
 | |
|    * If this user is a licensed operator, set this flag.
 | |
|    * Also, "long_name" should be their licence number.
 | |
|    */
 | |
|   bool is_licensed = 5;
 | |
| 
 | |
|   /*
 | |
|    * Indicates that the user's role in the mesh
 | |
|    */
 | |
|   Config.DeviceConfig.Role role = 6;
 | |
| 
 | |
|   /*
 | |
|    * The public key of the user's device.
 | |
|    * This is sent out to other nodes on the mesh to allow them to compute a shared secret key.
 | |
|    */
 | |
|   bytes public_key = 7;
 | |
| }
 | |
| 
 | |
| message NodeInfoLite {
 | |
|   /*
 | |
|    * The node number
 | |
|    */
 | |
|   uint32 num = 1;
 | |
| 
 | |
|   /*
 | |
|    * The user info for this node
 | |
|    */
 | |
|   UserLite user = 2;
 | |
| 
 | |
|   /*
 | |
|    * This position data. Note: before 1.2.14 we would also store the last time we've heard from this node in position.time, that is no longer true.
 | |
|    * Position.time now indicates the last time we received a POSITION from that node.
 | |
|    */
 | |
|   PositionLite position = 3;
 | |
| 
 | |
|   /*
 | |
|    * Returns the Signal-to-noise ratio (SNR) of the last received message,
 | |
|    * as measured by the receiver. Return SNR of the last received message in dB
 | |
|    */
 | |
|   float snr = 4;
 | |
| 
 | |
|   /*
 | |
|    * Set to indicate the last time we received a packet from this node
 | |
|    */
 | |
|   fixed32 last_heard = 5;
 | |
|   /*
 | |
|    * The latest device metrics for the node.
 | |
|    */
 | |
|   DeviceMetrics device_metrics = 6;
 | |
| 
 | |
|   /*
 | |
|    * local channel index we heard that node on. Only populated if its not the default channel.
 | |
|    */
 | |
|   uint32 channel = 7;
 | |
| 
 | |
|   /*
 | |
|    * True if we witnessed the node over MQTT instead of LoRA transport
 | |
|    */
 | |
|   bool via_mqtt = 8;
 | |
| 
 | |
|   /*
 | |
|    * Number of hops away from us this node is (0 if direct neighbor)
 | |
|    */
 | |
|   optional uint32 hops_away = 9;
 | |
| 
 | |
|   /*
 | |
|    * True if node is in our favorites list
 | |
|    * Persists between NodeDB internal clean ups
 | |
|    */
 | |
|   bool is_favorite = 10;
 | |
| 
 | |
|   /*
 | |
|    * True if node is in our ignored list
 | |
|    * Persists between NodeDB internal clean ups
 | |
|    */
 | |
|   bool is_ignored = 11;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * This message is never sent over the wire, but it is used for serializing DB
 | |
|  * state to flash in the device code
 | |
|  * FIXME, since we write this each time we enter deep sleep (and have infinite
 | |
|  * 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 {
 | |
|   /*
 | |
|    * Read only settings/info about this node
 | |
|    */
 | |
|   MyNodeInfo my_node = 2;
 | |
| 
 | |
|   /*
 | |
|    * My owner info
 | |
|    */
 | |
|   User owner = 3;
 | |
| 
 | |
|   /*
 | |
|    * Received packets saved for delivery to the phone
 | |
|    */
 | |
|   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
 | |
|    * NodeDB.cpp in the device code.
 | |
|    */
 | |
|   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
 | |
|    */
 | |
|   MeshPacket rx_text_message = 7;
 | |
| 
 | |
|   /*
 | |
|    * Used only during development.
 | |
|    * Indicates developer is testing and changes should never be saved to flash.
 | |
|    * Deprecated in 2.3.1
 | |
|    */
 | |
|   bool no_save = 9 [deprecated = true];
 | |
| 
 | |
|   /*
 | |
|    * Some GPS receivers seem to have bogus settings from the factory, so we always do one factory reset.
 | |
|    */
 | |
|   bool did_gps_reset = 11;
 | |
| 
 | |
|   /*
 | |
|    * We keep the last received waypoint stored in the device flash,
 | |
|    * so we can show it on the screen.
 | |
|    * Might be null
 | |
|    */
 | |
|   MeshPacket rx_waypoint = 12;
 | |
| 
 | |
|   /*
 | |
|    * The mesh's nodes with their available gpio pins for RemoteHardware module
 | |
|    */
 | |
|   repeated NodeRemoteHardwarePin node_remote_hardware_pins = 13;
 | |
| 
 | |
|   /*
 | |
|    * New lite version of NodeDB to decrease memory footprint
 | |
|    */
 | |
|   repeated NodeInfoLite node_db_lite = 14 [(nanopb).callback_datatype = "std::vector<meshtastic_NodeInfoLite>"];
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * The on-disk saved channels
 | |
|  */
 | |
| message ChannelFile {
 | |
|   /*
 | |
|    * The channels our node knows about
 | |
|    */
 | |
|   repeated Channel channels = 1;
 | |
| 
 | |
|   /*
 | |
|    * 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
 | |
|    * NodeDB.cpp in the device code.
 | |
|    */
 | |
|   uint32 version = 2;
 | |
| }
 |