kopia lustrzana https://github.com/meshtastic/protobufs
				
				
				
			
		
			
				
	
	
		
			264 wiersze
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
			
		
		
	
	
			264 wiersze
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
| syntax = "proto3";
 | |
| 
 | |
| package meshtastic;
 | |
| 
 | |
| option csharp_namespace = "Meshtastic.Protobufs";
 | |
| option go_package = "github.com/meshtastic/go/generated";
 | |
| option java_outer_classname = "ATAKProtos";
 | |
| option java_package = "com.geeksville.mesh";
 | |
| option swift_prefix = "";
 | |
| 
 | |
| /*
 | |
|  * Packets for the official ATAK Plugin
 | |
|  */
 | |
| message TAKPacket {
 | |
|   /*
 | |
|    * Are the payloads strings compressed for LoRA transport?
 | |
|    */
 | |
|   bool is_compressed = 1;
 | |
|   /*
 | |
|    * The contact / callsign for ATAK user
 | |
|    */
 | |
|   Contact contact = 2;
 | |
|   /*
 | |
|    * The group for ATAK user
 | |
|    */
 | |
|   Group group = 3;
 | |
|   /*
 | |
|    * The status of the ATAK EUD
 | |
|    */
 | |
|   Status status = 4;
 | |
|   /*
 | |
|    * The payload of the packet
 | |
|    */
 | |
|   oneof payload_variant {
 | |
|     /*
 | |
|      * TAK position report
 | |
|      */
 | |
|     PLI pli = 5;
 | |
|     /*
 | |
|      * ATAK GeoChat message
 | |
|      */
 | |
|     GeoChat chat = 6;
 | |
| 
 | |
|     /*
 | |
|      * Generic CoT detail XML
 | |
|      * May be compressed / truncated by the sender (EUD)
 | |
|      */
 | |
|     bytes detail = 7;
 | |
|   }
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * ATAK GeoChat message
 | |
|  */
 | |
| message GeoChat {
 | |
|   /*
 | |
|    * The text message
 | |
|    */
 | |
|   string message = 1;
 | |
| 
 | |
|   /*
 | |
|    * Uid recipient of the message
 | |
|    */
 | |
|   optional string to = 2;
 | |
| 
 | |
|   /*
 | |
|    * Callsign of the recipient for the message
 | |
|    */
 | |
|   optional string to_callsign = 3;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * ATAK Group
 | |
|  * <__group role='Team Member' name='Cyan'/>
 | |
|  */
 | |
| message Group {
 | |
|   /*
 | |
|    * Role of the group member
 | |
|    */
 | |
|   MemberRole role = 1;
 | |
|   /*
 | |
|    * Team (color)
 | |
|    * Default Cyan
 | |
|    */
 | |
|   Team team = 2;
 | |
| }
 | |
| 
 | |
| enum Team {
 | |
|   /*
 | |
|    * Unspecifed
 | |
|    */
 | |
|   Unspecifed_Color = 0;
 | |
|   /*
 | |
|    * White
 | |
|    */
 | |
|   White = 1;
 | |
|   /*
 | |
|    * Yellow
 | |
|    */
 | |
|   Yellow = 2;
 | |
|   /*
 | |
|    * Orange
 | |
|    */
 | |
|   Orange = 3;
 | |
|   /*
 | |
|    * Magenta
 | |
|    */
 | |
|   Magenta = 4;
 | |
|   /*
 | |
|    * Red
 | |
|    */
 | |
|   Red = 5;
 | |
|   /*
 | |
|    * Maroon
 | |
|    */
 | |
|   Maroon = 6;
 | |
|   /*
 | |
|    * Purple
 | |
|    */
 | |
|   Purple = 7;
 | |
|   /*
 | |
|    * Dark Blue
 | |
|    */
 | |
|   Dark_Blue = 8;
 | |
|   /*
 | |
|    * Blue
 | |
|    */
 | |
|   Blue = 9;
 | |
|   /*
 | |
|    * Cyan
 | |
|    */
 | |
|   Cyan = 10;
 | |
|   /*
 | |
|    * Teal
 | |
|    */
 | |
|   Teal = 11;
 | |
|   /*
 | |
|    * Green
 | |
|    */
 | |
|   Green = 12;
 | |
|   /*
 | |
|    * Dark Green
 | |
|    */
 | |
|   Dark_Green = 13;
 | |
|   /*
 | |
|    * Brown
 | |
|    */
 | |
|   Brown = 14;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Role of the group member
 | |
|  */
 | |
| enum MemberRole {
 | |
|   /*
 | |
|    * Unspecifed
 | |
|    */
 | |
|   Unspecifed = 0;
 | |
|   /*
 | |
|    * Team Member
 | |
|    */
 | |
|   TeamMember = 1;
 | |
|   /*
 | |
|    * Team Lead
 | |
|    */
 | |
|   TeamLead = 2;
 | |
|   /*
 | |
|    * Headquarters
 | |
|    */
 | |
|   HQ = 3;
 | |
|   /*
 | |
|    * Airsoft enthusiast
 | |
|    */
 | |
|   Sniper = 4;
 | |
|   /*
 | |
|    * Medic
 | |
|    */
 | |
|   Medic = 5;
 | |
|   /*
 | |
|    * ForwardObserver
 | |
|    */
 | |
|   ForwardObserver = 6;
 | |
|   /*
 | |
|    * Radio Telephone Operator
 | |
|    */
 | |
|   RTO = 7;
 | |
|   /*
 | |
|    * Doggo
 | |
|    */
 | |
|   K9 = 8;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * ATAK EUD Status
 | |
|  * <status battery='100' />
 | |
|  */
 | |
| message Status {
 | |
|   /*
 | |
|    * Battery level
 | |
|    */
 | |
|   uint32 battery = 1;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * ATAK Contact
 | |
|  * <contact endpoint='0.0.0.0:4242:tcp' phone='+12345678' callsign='FALKE'/>
 | |
|  */
 | |
| message Contact {
 | |
|   /*
 | |
|    * Callsign
 | |
|    */
 | |
|   string callsign = 1;
 | |
| 
 | |
|   /*
 | |
|    * Device callsign
 | |
|    */
 | |
|   string device_callsign = 2;
 | |
|   /*
 | |
|    * IP address of endpoint in integer form (0.0.0.0 default)
 | |
|    */
 | |
|   // fixed32 enpoint_address = 3;
 | |
|   /*
 | |
|    * Port of endpoint (4242 default)
 | |
|    */
 | |
|   // uint32 endpoint_port = 4;
 | |
|   /*
 | |
|    * Phone represented as integer
 | |
|    * Terrible practice, but we really need the wire savings
 | |
|    */
 | |
|   // uint32 phone = 4;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Position Location Information from ATAK
 | |
|  */
 | |
| message PLI {
 | |
|   /*
 | |
|    * The new preferred location encoding, multiply by 1e-7 to get degrees
 | |
|    * in floating point
 | |
|    */
 | |
|   sfixed32 latitude_i = 1;
 | |
| 
 | |
|   /*
 | |
|    * The new preferred location encoding, multiply by 1e-7 to get degrees
 | |
|    * in floating point
 | |
|    */
 | |
|   sfixed32 longitude_i = 2;
 | |
| 
 | |
|   /*
 | |
|    * Altitude (ATAK prefers HAE)
 | |
|    */
 | |
|   int32 altitude = 3;
 | |
| 
 | |
|   /*
 | |
|    * Speed
 | |
|    */
 | |
|   uint32 speed = 4;
 | |
| 
 | |
|   /*
 | |
|    * Course in degrees
 | |
|    */
 | |
|   uint32 course = 5;
 | |
| }
 |