diff --git a/mesh.proto b/mesh.proto index 0fbb94c..f05ab10 100644 --- a/mesh.proto +++ b/mesh.proto @@ -9,6 +9,7 @@ import "config.proto"; import "module_config.proto"; import "portnums.proto"; import "telemetry.proto"; +import "xmodem.proto"; option java_outer_classname = "MeshProtos"; option csharp_namespace = "Meshtastic.Protobufs"; @@ -1288,8 +1289,15 @@ message FromRadio { */ Channel channel = 10; - /* Queue status info */ + /* + * Queue status info + */ QueueStatus queueStatus = 11; + + /* + * File Transfer Chunk + */ + XModem xmodemPacket = 12; } } @@ -1328,6 +1336,12 @@ message ToRadio { * (Sending this message is optional for clients) */ bool disconnect = 4; + + /* + * File Transfer Chunk + */ + + XModem xmodemPacket = 5; } } diff --git a/xmodem.options b/xmodem.options new file mode 100644 index 0000000..3af6125 --- /dev/null +++ b/xmodem.options @@ -0,0 +1,6 @@ +# options for nanopb +# https://jpa.kapsi.fi/nanopb/docs/reference.html#proto-file-options + +*XModem.buffer max_size:128 +*XModem.seq int_size:16 +*XModem.crc16 int_size:16 diff --git a/xmodem.proto b/xmodem.proto new file mode 100644 index 0000000..9cf787b --- /dev/null +++ b/xmodem.proto @@ -0,0 +1,26 @@ +syntax = "proto3"; + +option java_package = "com.geeksville.mesh"; +option optimize_for = LITE_RUNTIME; +option go_package = "github.com/meshtastic/go/generated"; + +option java_outer_classname = "XmodemProtos"; +option csharp_namespace = "Meshtastic.Protobufs"; + +message XModem { + enum Control { + NUL = 0; + SOH = 1; + STX = 2; + EOT = 4; + ACK = 6; + NAK = 21; + CAN = 24; + CTRLZ = 26; + } + + Control control = 1; + uint32 seq = 2; + uint32 crc16 = 3; + bytes buffer = 4; +} \ No newline at end of file