diff --git a/TODO.md b/TODO.md index 43c5d39f4..a7a8567cc 100644 --- a/TODO.md +++ b/TODO.md @@ -1,8 +1,7 @@ # High priority -* watch for ntofies of numread changing -* implement android side of mesh radio bluetooth link +* watch for notfies of numread changing * investigate the Signal SMS message flow path, see if I could just make Mesh a third peer to signal & sms? * make signal work when there is no internet up * make Signal rx path work @@ -11,27 +10,16 @@ public static final int SENDERKEY_TYPE = 4; public static final int SENDERKEY_DISTRIBUTION_TYPE = 5;" * don't do mesh based algoritm for node id assignment (initially) - instead just store in flash - possibly even in the initial alpha release do this hack -* use the lora net code on my current protoboard -* investigate a 16 bit node number. If possible it would make collisions super rare. Much easier to just pick a nodenum and go. * add large packet reassembly? -* optionally turn off crypto in signal -* change signal package ID +* optionally turn off crypto in signal - preferably though see if there is a nice way to be a peer of signal/sms and now mesh. +* change signal package ID - if distributing modified binary * good tips on which bands might be more free https://github.com/TheThingsNetwork/ttn/issues/119 * make my android app show mesh state * use https://codelabs.developers.google.com/codelabs/jetpack-compose-basics/#4 to show service state -* connect to bluetooth device automatically using minimum power -* fix BT device scanning +* connect to bluetooth device automatically using minimum power, start looking at phone boot +* fix BT device scanning * call crashlytics from exceptionReporter!!! currently not logging failures caught there -protobuf notes -protoc -I=. --java_out /tmp mesh.proto - -to generate nanopb c code -/home/kevinh/packages/nanopb-0.4.0-linux-x86/generator-bin/protoc --nanopb_out=/tmp -I=app/src/main/proto mesh.proto -https://jpa.kapsi.fi/nanopb/docs/ - -nanopb binaries available here: https://jpa.kapsi.fi/nanopb/download/ use nanopb 0.4.0 - # Medium priority * change info() log strings to debug() @@ -46,8 +34,7 @@ Don't leave device discoverable. Don't let unpaired users do things with device # Low priority * make analytics optional -* possibly use finotes for analytics https://finotes.com/ -* also add a receiver that fires after a new update was installed from the play stoe +* also add a receiver that fires after a new update was installed from the play store # Done @@ -70,10 +57,11 @@ Don't leave device discoverable. Don't let unpaired users do things with device * undo base64 * use android service from Signal * send signal message type over wire - * DONE add broadcasters for use by signal (node changes and packet received) - * DONE have signal declare receivers: https://developer.android.com/guide/components/broadcasts#manifest-declared-receivers * fix // FIXME hack for now - throw IdNotFoundException(id) in MeshService * clean up sw update code in device side * add real messaging code/protobufs +* implement android side of mesh radio bluetooth link +* use the lora net code on my current protoboard +* investigate a 16 bit node number. If possible it would make collisions super rare. Much easier to just pick a nodenum and go. diff --git a/app/src/main/proto/mesh.proto b/app/src/main/proto/mesh.proto index 4b7b975cd..9b1d1fd56 100644 --- a/app/src/main/proto/mesh.proto +++ b/app/src/main/proto/mesh.proto @@ -41,6 +41,18 @@ If user wants to send a text they can SEND_TEXT(dest user, short text message). node number, or 0xff for broadcast. */ +/* +Protobuf build instructions: + +protoc -I=. --java_out /tmp mesh.proto + +To generate Nanopb c code +/home/kevinh/packages/nanopb-0.4.0-linux-x86/generator-bin/protoc --nanopb_out=/tmp -I=app/src/main/proto mesh.proto + +Nanopb binaries available here: https://jpa.kapsi.fi/nanopb/download/ use nanopb 0.4.0 + +*/ + // a gps position message Position { double latitude = 1; @@ -49,7 +61,7 @@ message Position { int32 battery_level = 4; // 0-100 /// true if this position came from the GPS inside the esp32 board, false if it was from a helper app on the phone - bool from_hardware = 5; + bool from_hardware = 5; } // Times are typically not sent over the mesh, but they will be added to any Packet (chain of SubPacket) @@ -128,7 +140,7 @@ message SubPacket { message MeshPacket { int32 from = 1; int32 to = 2; - + // See note above: // MeshPayload payloads = 4; SubPacket payload = 3;