Add hints how the payload of a certain portnum is encoded

This commit is contained in:
Thomas Göttgens 2023-08-03 14:19:56 +02:00
parent 0ea704baf5
commit 3105696a1e

View file

@ -27,6 +27,7 @@ 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
* NOTE: This must be 0, because it is documented in IMeshService.aidl to be so
* ENCODING: binary undefined
*/
UNKNOWN_APP = 0;
@ -34,64 +35,80 @@ enum PortNum {
* 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
* even signal might send messages in this form (see below)
* ENCODING: UTF-8 Plaintext (?)
*/
TEXT_MESSAGE_APP = 1;
/*
* Reserved for built-in GPIO/example app.
* See remote_hardware.proto/HardwareMessage for details on the message sent/received to this port number
* ENCODING: Protobuf
*/
REMOTE_HARDWARE_APP = 2;
/*
* The built-in position messaging app.
* Payload is a [Position](/docs/developers/protobufs/api#position) message
* ENCODING: Protobuf
*/
POSITION_APP = 3;
/*
* The built-in user info app.
* Payload is a [User](/docs/developers/protobufs/api#user) message
* ENCODING: Protobuf
*/
NODEINFO_APP = 4;
/*
* Protocol control packets for mesh protocol use.
* Payload is a [Routing](/docs/developers/protobufs/api#routing) message
* ENCODING: Protobuf
*/
ROUTING_APP = 5;
/*
* Admin control packets.
* Payload is a [AdminMessage](/docs/developers/protobufs/api#adminmessage) message
* ENCODING: Protobuf
*/
ADMIN_APP = 6;
/*
* Compressed TEXT_MESSAGE payloads.
* ENCODING: UTF-8 Plaintext (?) with Unishox2 Compression
* NOTE: The Device Firmware converts a TEXT_MESSAGE_APP to TEXT_MESSAGE_COMPRESSED_APP if the compressed
* payload is shorter. There's no need for app developers to do this themselves. Also the firmware will decompress
* any incoming TEXT_MESSAGE_COMPRESSED_APP payload and convert to TEXT_MESSAGE_APP.
*/
TEXT_MESSAGE_COMPRESSED_APP = 7;
/*
* Waypoint payloads.
* Payload is a [Waypoint](/docs/developers/protobufs/api#waypoint) message
* ENCODING: Protobuf
*/
WAYPOINT_APP = 8;
/*
* Audio Payloads.
* Encapsulated codec2 packets. On 2.4 GHZ Bandwidths only for now
* ENCODING: codec2 audio frames
* NOTE: audio frames contain a 3 byte header (0xc0 0xde 0xc2) and a one byte marker for the decompressed bitrate.
* This marker comes from the 'moduleConfig.audio.bitrate' enum minus one.
*/
AUDIO_APP = 9;
/*
* Provides a 'ping' service that replies to any packet it receives.
* Also serves as a small example module.
* ENCODING: ASCII Plaintext
*/
REPLY_APP = 32;
/*
* Used for the python IP tunnel feature
* ENCODING: IP Packet. Handled by the python API, firmware ignores this one and pases on.
*/
IP_TUNNEL_APP = 33;
@ -101,23 +118,27 @@ enum PortNum {
* 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.
* Module is disabled by default can be turned on by setting SERIAL_MODULE_ENABLED = 1 in SerialPlugh.cpp.
* ENCODING: binary undefined
*/
SERIAL_APP = 64;
/*
* STORE_FORWARD_APP (Work in Progress)
* Maintained by Jm Casler (MC Hamster) : jm@casler.org
* ENCODING: Protobuf
*/
STORE_FORWARD_APP = 65;
/*
* Optional port for messages for the range test module.
* ENCODING: ASCII Plaintext
*/
RANGE_TEST_APP = 66;
/*
* Provides a format to send and receive telemetry data from the Meshtastic network.
* Maintained by Charles Crossan (crossan007) : crossan007@gmail.com
* ENCODING: Protobuf
*/
TELEMETRY_APP = 67;
@ -125,6 +146,7 @@ enum PortNum {
* Experimental tools for estimating node position without a GPS
* Maintained by Github user a-f-G-U-C (a Meshtastic contributor)
* Project files at https://github.com/a-f-G-U-C/Meshtastic-ZPS
* ENCODING: arrays of int64 fields
*/
ZPS_APP = 68;
@ -133,17 +155,20 @@ enum PortNum {
* as if they did using their LoRa chip.
* Maintained by GitHub user GUVWAF.
* Project files at https://github.com/GUVWAF/Meshtasticator
* ENCODING: Protobuf (?)
*/
SIMULATOR_APP = 69;
/*
* Provides a traceroute functionality to show the route a packet towards
* a certain destination would take on the mesh.
* ENCODING: Protobuf
*/
TRACEROUTE_APP = 70;
/*
* Aggregates edge info for the network by sending out a list of each node's neighbors
* ENCODING: Protobuf
*/
NEIGHBORINFO_APP = 71;
@ -156,6 +181,7 @@ enum PortNum {
/*
* ATAK Forwarder Module https://github.com/paulmandal/atak-forwarder
* ENCODING: libcotshrink
*/
ATAK_FORWARDER = 257;
@ -163,4 +189,4 @@ enum PortNum {
* Currently we limit port nums to no higher than this value
*/
MAX = 511;
}
}