From 70ed6677275b9a710bf434b61620b274db6f476e Mon Sep 17 00:00:00 2001 From: geeksville Date: Sat, 1 Feb 2020 14:23:02 -0800 Subject: [PATCH] protob work --- TODO.md | 6 +- src/MeshRadio.cpp | 2 + src/mesh.pb.c | 30 +-- src/mesh.pb.h | 495 +++++++++++++++++++++++----------------------- 4 files changed, 270 insertions(+), 263 deletions(-) diff --git a/TODO.md b/TODO.md index 356476d92..5b17ac0f6 100644 --- a/TODO.md +++ b/TODO.md @@ -2,8 +2,10 @@ # High priority -* make protobufs more real -* attach mesh service to radio and bluetooth +* make message send from android go to service, then to mesh radio +* make message receive from radio go through to android +* have MeshService keep a node DB by sniffing user messages +* have meshservice send location data on mesh (if device has a GPS) # Medium priority diff --git a/src/MeshRadio.cpp b/src/MeshRadio.cpp index 261e7c151..600a8abc5 100644 --- a/src/MeshRadio.cpp +++ b/src/MeshRadio.cpp @@ -63,6 +63,8 @@ bool MeshRadio::init() { // you can set transmitter powers from 5 to 23 dBm: // FIXME - can we do this? // rf95.setTxPower(23, false); + + return true; } diff --git a/src/mesh.pb.c b/src/mesh.pb.c index dc2cd1af8..829867b4e 100644 --- a/src/mesh.pb.c +++ b/src/mesh.pb.c @@ -6,49 +6,49 @@ #error Regenerate this file with the current version of nanopb generator. #endif -PB_BIND(mesh_Position, mesh_Position, AUTO) +PB_BIND(Position, Position, AUTO) -PB_BIND(mesh_Time, mesh_Time, AUTO) +PB_BIND(Time, Time, AUTO) -PB_BIND(mesh_Data, mesh_Data, AUTO) +PB_BIND(Data, Data, AUTO) -PB_BIND(mesh_User, mesh_User, AUTO) +PB_BIND(User, User, AUTO) -PB_BIND(mesh_WantNodeNum, mesh_WantNodeNum, AUTO) +PB_BIND(WantNodeNum, WantNodeNum, AUTO) -PB_BIND(mesh_DenyNodeNum, mesh_DenyNodeNum, AUTO) +PB_BIND(DenyNodeNum, DenyNodeNum, AUTO) -PB_BIND(mesh_SubPacket, mesh_SubPacket, AUTO) +PB_BIND(SubPacket, SubPacket, AUTO) -PB_BIND(mesh_MeshPayload, mesh_MeshPayload, 2) +PB_BIND(MeshPayload, MeshPayload, 2) -PB_BIND(mesh_MeshPacket, mesh_MeshPacket, 2) +PB_BIND(MeshPacket, MeshPacket, 2) -PB_BIND(mesh_RadioConfig, mesh_RadioConfig, 2) +PB_BIND(RadioConfig, RadioConfig, 2) -PB_BIND(mesh_NodeInfo, mesh_NodeInfo, AUTO) +PB_BIND(NodeInfo, NodeInfo, AUTO) -PB_BIND(mesh_DeviceState, mesh_DeviceState, 4) +PB_BIND(DeviceState, DeviceState, 4) -PB_BIND(mesh_FromRadio, mesh_FromRadio, 2) +PB_BIND(FromRadio, FromRadio, 2) -PB_BIND(mesh_ToRadio, mesh_ToRadio, 2) +PB_BIND(ToRadio, ToRadio, 2) -PB_BIND(mesh_ToRadio_WantNodes, mesh_ToRadio_WantNodes, AUTO) +PB_BIND(ToRadio_WantNodes, ToRadio_WantNodes, AUTO) diff --git a/src/mesh.pb.h b/src/mesh.pb.h index c33391091..ea490c880 100644 --- a/src/mesh.pb.h +++ b/src/mesh.pb.h @@ -1,8 +1,8 @@ /* Automatically generated nanopb header */ /* Generated by nanopb-0.4.0 */ -#ifndef PB_MESH_MESH_PB_H_INCLUDED -#define PB_MESH_MESH_PB_H_INCLUDED +#ifndef PB_MESH_PB_H_INCLUDED +#define PB_MESH_PB_H_INCLUDED #include #if PB_PROTO_HEADER_VERSION != 40 @@ -14,375 +14,378 @@ extern "C" { #endif /* Enum definitions */ -typedef enum _mesh_Data_Type { - mesh_Data_Type_SIGNAL_OPAQUE = 0, - mesh_Data_Type_CLEAR_TEXT = 1, - mesh_Data_Type_CLEAR_READACK = 2 -} mesh_Data_Type; +typedef enum _Data_Type { + Data_Type_SIGNAL_OPAQUE = 0, + Data_Type_CLEAR_TEXT = 1, + Data_Type_CLEAR_READACK = 2 +} Data_Type; /* Struct definitions */ -typedef struct _mesh_ToRadio_WantNodes { +typedef struct _ToRadio_WantNodes { char dummy_field; -} mesh_ToRadio_WantNodes; +} ToRadio_WantNodes; -typedef PB_BYTES_ARRAY_T(100) mesh_Data_payload_t; -typedef struct _mesh_Data { - mesh_Data_Type typ; - mesh_Data_payload_t payload; -} mesh_Data; +typedef PB_BYTES_ARRAY_T(100) Data_payload_t; +typedef struct _Data { + Data_Type typ; + Data_payload_t payload; +} Data; -typedef struct _mesh_DenyNodeNum { +typedef struct _DenyNodeNum { char macaddr[6]; -} mesh_DenyNodeNum; +} DenyNodeNum; -typedef struct _mesh_Position { +typedef struct _Position { double latitude; double longitude; int32_t altitude; int32_t battery_level; -} mesh_Position; + bool from_hardware; +} Position; -typedef struct _mesh_RadioConfig { +typedef struct _RadioConfig { bool keep_all_packets; bool promiscuous_mode; -} mesh_RadioConfig; +} RadioConfig; -typedef struct _mesh_Time { +typedef struct _Time { uint64_t msecs; -} mesh_Time; +} Time; -typedef struct _mesh_User { +typedef struct _User { char id[16]; char long_name[40]; char short_name[4]; char macaddr[6]; -} mesh_User; +} User; -typedef struct _mesh_WantNodeNum { +typedef struct _WantNodeNum { uint32_t desired_nodenum; char macaddr[6]; -} mesh_WantNodeNum; +} WantNodeNum; -typedef struct _mesh_NodeInfo { +typedef struct _NodeInfo { int32_t num; bool has_user; - mesh_User user; + User user; bool has_position; - mesh_Position position; + Position position; bool has_last_seen; - mesh_Time last_seen; -} mesh_NodeInfo; + Time last_seen; +} NodeInfo; -typedef struct _mesh_SubPacket { +typedef struct _SubPacket { pb_size_t which_variant; union { - mesh_Position position; - mesh_Time time; - mesh_Data data; - mesh_User user; - mesh_WantNodeNum want_node; - mesh_DenyNodeNum deny_node; + Position position; + Time time; + Data data; + User user; + WantNodeNum want_node; + DenyNodeNum deny_node; } variant; -} mesh_SubPacket; +} SubPacket; -typedef struct _mesh_MeshPayload { +typedef struct _MeshPayload { pb_size_t subPackets_count; - mesh_SubPacket subPackets[4]; -} mesh_MeshPayload; + SubPacket subPackets[4]; +} MeshPayload; -typedef struct _mesh_MeshPacket { +typedef struct _MeshPacket { int32_t from; int32_t to; bool has_payload; - mesh_MeshPayload payload; -} mesh_MeshPacket; + MeshPayload payload; +} MeshPacket; -typedef struct _mesh_DeviceState { +typedef struct _DeviceState { bool has_radio; - mesh_RadioConfig radio; + RadioConfig radio; pb_size_t node_db_count; - mesh_NodeInfo node_db[32]; + NodeInfo node_db[32]; pb_size_t receive_queue_count; - mesh_MeshPacket receive_queue[32]; + MeshPacket receive_queue[32]; int32_t my_node_num; -} mesh_DeviceState; +} DeviceState; -typedef struct _mesh_FromRadio { +typedef struct _FromRadio { uint32_t num; pb_size_t which_variant; union { - mesh_MeshPacket packet; + MeshPacket packet; int32_t my_node_num; - mesh_NodeInfo node_info; + NodeInfo node_info; } variant; -} mesh_FromRadio; +} FromRadio; -typedef struct _mesh_ToRadio { +typedef struct _ToRadio { pb_size_t which_variant; union { - mesh_MeshPacket packet; - mesh_ToRadio_WantNodes want_nodes; - mesh_RadioConfig set_radio; - mesh_User set_owner; + MeshPacket packet; + ToRadio_WantNodes want_nodes; + RadioConfig set_radio; + User set_owner; } variant; -} mesh_ToRadio; +} ToRadio; /* Helper constants for enums */ -#define _mesh_Data_Type_MIN mesh_Data_Type_SIGNAL_OPAQUE -#define _mesh_Data_Type_MAX mesh_Data_Type_CLEAR_READACK -#define _mesh_Data_Type_ARRAYSIZE ((mesh_Data_Type)(mesh_Data_Type_CLEAR_READACK+1)) +#define _Data_Type_MIN Data_Type_SIGNAL_OPAQUE +#define _Data_Type_MAX Data_Type_CLEAR_READACK +#define _Data_Type_ARRAYSIZE ((Data_Type)(Data_Type_CLEAR_READACK+1)) /* Initializer values for message structs */ -#define mesh_Position_init_default {0, 0, 0, 0} -#define mesh_Time_init_default {0} -#define mesh_Data_init_default {_mesh_Data_Type_MIN, {0, {0}}} -#define mesh_User_init_default {"", "", "", ""} -#define mesh_WantNodeNum_init_default {0, ""} -#define mesh_DenyNodeNum_init_default {""} -#define mesh_SubPacket_init_default {0, {mesh_Position_init_default}} -#define mesh_MeshPayload_init_default {0, {mesh_SubPacket_init_default, mesh_SubPacket_init_default, mesh_SubPacket_init_default, mesh_SubPacket_init_default}} -#define mesh_MeshPacket_init_default {0, 0, false, mesh_MeshPayload_init_default} -#define mesh_RadioConfig_init_default {0, 0} -#define mesh_NodeInfo_init_default {0, false, mesh_User_init_default, false, mesh_Position_init_default, false, mesh_Time_init_default} -#define mesh_DeviceState_init_default {false, mesh_RadioConfig_init_default, 0, {mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default, mesh_NodeInfo_init_default}, 0, {mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default, mesh_MeshPacket_init_default}, 0} -#define mesh_FromRadio_init_default {0, 0, {mesh_MeshPacket_init_default}} -#define mesh_ToRadio_init_default {0, {mesh_MeshPacket_init_default}} -#define mesh_ToRadio_WantNodes_init_default {0} -#define mesh_Position_init_zero {0, 0, 0, 0} -#define mesh_Time_init_zero {0} -#define mesh_Data_init_zero {_mesh_Data_Type_MIN, {0, {0}}} -#define mesh_User_init_zero {"", "", "", ""} -#define mesh_WantNodeNum_init_zero {0, ""} -#define mesh_DenyNodeNum_init_zero {""} -#define mesh_SubPacket_init_zero {0, {mesh_Position_init_zero}} -#define mesh_MeshPayload_init_zero {0, {mesh_SubPacket_init_zero, mesh_SubPacket_init_zero, mesh_SubPacket_init_zero, mesh_SubPacket_init_zero}} -#define mesh_MeshPacket_init_zero {0, 0, false, mesh_MeshPayload_init_zero} -#define mesh_RadioConfig_init_zero {0, 0} -#define mesh_NodeInfo_init_zero {0, false, mesh_User_init_zero, false, mesh_Position_init_zero, false, mesh_Time_init_zero} -#define mesh_DeviceState_init_zero {false, mesh_RadioConfig_init_zero, 0, {mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero, mesh_NodeInfo_init_zero}, 0, {mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero, mesh_MeshPacket_init_zero}, 0} -#define mesh_FromRadio_init_zero {0, 0, {mesh_MeshPacket_init_zero}} -#define mesh_ToRadio_init_zero {0, {mesh_MeshPacket_init_zero}} -#define mesh_ToRadio_WantNodes_init_zero {0} +#define Position_init_default {0, 0, 0, 0, 0} +#define Time_init_default {0} +#define Data_init_default {_Data_Type_MIN, {0, {0}}} +#define User_init_default {"", "", "", ""} +#define WantNodeNum_init_default {0, ""} +#define DenyNodeNum_init_default {""} +#define SubPacket_init_default {0, {Position_init_default}} +#define MeshPayload_init_default {0, {SubPacket_init_default, SubPacket_init_default, SubPacket_init_default, SubPacket_init_default}} +#define MeshPacket_init_default {0, 0, false, MeshPayload_init_default} +#define RadioConfig_init_default {0, 0} +#define NodeInfo_init_default {0, false, User_init_default, false, Position_init_default, false, Time_init_default} +#define DeviceState_init_default {false, RadioConfig_init_default, 0, {NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default, NodeInfo_init_default}, 0, {MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default, MeshPacket_init_default}, 0} +#define FromRadio_init_default {0, 0, {MeshPacket_init_default}} +#define ToRadio_init_default {0, {MeshPacket_init_default}} +#define ToRadio_WantNodes_init_default {0} +#define Position_init_zero {0, 0, 0, 0, 0} +#define Time_init_zero {0} +#define Data_init_zero {_Data_Type_MIN, {0, {0}}} +#define User_init_zero {"", "", "", ""} +#define WantNodeNum_init_zero {0, ""} +#define DenyNodeNum_init_zero {""} +#define SubPacket_init_zero {0, {Position_init_zero}} +#define MeshPayload_init_zero {0, {SubPacket_init_zero, SubPacket_init_zero, SubPacket_init_zero, SubPacket_init_zero}} +#define MeshPacket_init_zero {0, 0, false, MeshPayload_init_zero} +#define RadioConfig_init_zero {0, 0} +#define NodeInfo_init_zero {0, false, User_init_zero, false, Position_init_zero, false, Time_init_zero} +#define DeviceState_init_zero {false, RadioConfig_init_zero, 0, {NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero, NodeInfo_init_zero}, 0, {MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero, MeshPacket_init_zero}, 0} +#define FromRadio_init_zero {0, 0, {MeshPacket_init_zero}} +#define ToRadio_init_zero {0, {MeshPacket_init_zero}} +#define ToRadio_WantNodes_init_zero {0} /* Field tags (for use in manual encoding/decoding) */ -#define mesh_Data_typ_tag 1 -#define mesh_Data_payload_tag 2 -#define mesh_DenyNodeNum_macaddr_tag 1 -#define mesh_Position_latitude_tag 1 -#define mesh_Position_longitude_tag 2 -#define mesh_Position_altitude_tag 3 -#define mesh_Position_battery_level_tag 4 -#define mesh_RadioConfig_keep_all_packets_tag 100 -#define mesh_RadioConfig_promiscuous_mode_tag 101 -#define mesh_Time_msecs_tag 1 -#define mesh_User_id_tag 1 -#define mesh_User_long_name_tag 2 -#define mesh_User_short_name_tag 3 -#define mesh_User_macaddr_tag 4 -#define mesh_WantNodeNum_desired_nodenum_tag 1 -#define mesh_WantNodeNum_macaddr_tag 2 -#define mesh_NodeInfo_num_tag 1 -#define mesh_NodeInfo_user_tag 2 -#define mesh_NodeInfo_position_tag 4 -#define mesh_NodeInfo_last_seen_tag 5 -#define mesh_SubPacket_position_tag 1 -#define mesh_SubPacket_time_tag 2 -#define mesh_SubPacket_data_tag 3 -#define mesh_SubPacket_user_tag 4 -#define mesh_SubPacket_want_node_tag 5 -#define mesh_SubPacket_deny_node_tag 6 -#define mesh_MeshPayload_subPackets_tag 3 -#define mesh_MeshPacket_from_tag 1 -#define mesh_MeshPacket_to_tag 2 -#define mesh_MeshPacket_payload_tag 3 -#define mesh_DeviceState_radio_tag 1 -#define mesh_DeviceState_node_db_tag 2 -#define mesh_DeviceState_receive_queue_tag 3 -#define mesh_DeviceState_my_node_num_tag 4 -#define mesh_FromRadio_packet_tag 2 -#define mesh_FromRadio_my_node_num_tag 3 -#define mesh_FromRadio_node_info_tag 4 -#define mesh_FromRadio_num_tag 1 -#define mesh_ToRadio_packet_tag 1 -#define mesh_ToRadio_want_nodes_tag 100 -#define mesh_ToRadio_set_radio_tag 101 -#define mesh_ToRadio_set_owner_tag 102 +#define Data_typ_tag 1 +#define Data_payload_tag 2 +#define DenyNodeNum_macaddr_tag 1 +#define Position_latitude_tag 1 +#define Position_longitude_tag 2 +#define Position_altitude_tag 3 +#define Position_battery_level_tag 4 +#define Position_from_hardware_tag 5 +#define RadioConfig_keep_all_packets_tag 100 +#define RadioConfig_promiscuous_mode_tag 101 +#define Time_msecs_tag 1 +#define User_id_tag 1 +#define User_long_name_tag 2 +#define User_short_name_tag 3 +#define User_macaddr_tag 4 +#define WantNodeNum_desired_nodenum_tag 1 +#define WantNodeNum_macaddr_tag 2 +#define NodeInfo_num_tag 1 +#define NodeInfo_user_tag 2 +#define NodeInfo_position_tag 4 +#define NodeInfo_last_seen_tag 5 +#define SubPacket_position_tag 1 +#define SubPacket_time_tag 2 +#define SubPacket_data_tag 3 +#define SubPacket_user_tag 4 +#define SubPacket_want_node_tag 5 +#define SubPacket_deny_node_tag 6 +#define MeshPayload_subPackets_tag 3 +#define MeshPacket_from_tag 1 +#define MeshPacket_to_tag 2 +#define MeshPacket_payload_tag 3 +#define DeviceState_radio_tag 1 +#define DeviceState_node_db_tag 2 +#define DeviceState_receive_queue_tag 3 +#define DeviceState_my_node_num_tag 4 +#define FromRadio_packet_tag 2 +#define FromRadio_my_node_num_tag 3 +#define FromRadio_node_info_tag 4 +#define FromRadio_num_tag 1 +#define ToRadio_packet_tag 1 +#define ToRadio_want_nodes_tag 100 +#define ToRadio_set_radio_tag 101 +#define ToRadio_set_owner_tag 102 /* Struct field encoding specification for nanopb */ -#define mesh_Position_FIELDLIST(X, a) \ +#define Position_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, DOUBLE, latitude, 1) \ X(a, STATIC, SINGULAR, DOUBLE, longitude, 2) \ X(a, STATIC, SINGULAR, INT32, altitude, 3) \ -X(a, STATIC, SINGULAR, INT32, battery_level, 4) -#define mesh_Position_CALLBACK NULL -#define mesh_Position_DEFAULT NULL +X(a, STATIC, SINGULAR, INT32, battery_level, 4) \ +X(a, STATIC, SINGULAR, BOOL, from_hardware, 5) +#define Position_CALLBACK NULL +#define Position_DEFAULT NULL -#define mesh_Time_FIELDLIST(X, a) \ +#define Time_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UINT64, msecs, 1) -#define mesh_Time_CALLBACK NULL -#define mesh_Time_DEFAULT NULL +#define Time_CALLBACK NULL +#define Time_DEFAULT NULL -#define mesh_Data_FIELDLIST(X, a) \ +#define Data_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, typ, 1) \ X(a, STATIC, SINGULAR, BYTES, payload, 2) -#define mesh_Data_CALLBACK NULL -#define mesh_Data_DEFAULT NULL +#define Data_CALLBACK NULL +#define Data_DEFAULT NULL -#define mesh_User_FIELDLIST(X, a) \ +#define User_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, STRING, id, 1) \ X(a, STATIC, SINGULAR, STRING, long_name, 2) \ X(a, STATIC, SINGULAR, STRING, short_name, 3) \ X(a, STATIC, SINGULAR, STRING, macaddr, 4) -#define mesh_User_CALLBACK NULL -#define mesh_User_DEFAULT NULL +#define User_CALLBACK NULL +#define User_DEFAULT NULL -#define mesh_WantNodeNum_FIELDLIST(X, a) \ +#define WantNodeNum_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UINT32, desired_nodenum, 1) \ X(a, STATIC, SINGULAR, STRING, macaddr, 2) -#define mesh_WantNodeNum_CALLBACK NULL -#define mesh_WantNodeNum_DEFAULT NULL +#define WantNodeNum_CALLBACK NULL +#define WantNodeNum_DEFAULT NULL -#define mesh_DenyNodeNum_FIELDLIST(X, a) \ +#define DenyNodeNum_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, STRING, macaddr, 1) -#define mesh_DenyNodeNum_CALLBACK NULL -#define mesh_DenyNodeNum_DEFAULT NULL +#define DenyNodeNum_CALLBACK NULL +#define DenyNodeNum_DEFAULT NULL -#define mesh_SubPacket_FIELDLIST(X, a) \ +#define SubPacket_FIELDLIST(X, a) \ X(a, STATIC, ONEOF, MESSAGE, (variant,position,variant.position), 1) \ X(a, STATIC, ONEOF, MESSAGE, (variant,time,variant.time), 2) \ X(a, STATIC, ONEOF, MESSAGE, (variant,data,variant.data), 3) \ X(a, STATIC, ONEOF, MESSAGE, (variant,user,variant.user), 4) \ X(a, STATIC, ONEOF, MESSAGE, (variant,want_node,variant.want_node), 5) \ X(a, STATIC, ONEOF, MESSAGE, (variant,deny_node,variant.deny_node), 6) -#define mesh_SubPacket_CALLBACK NULL -#define mesh_SubPacket_DEFAULT NULL -#define mesh_SubPacket_variant_position_MSGTYPE mesh_Position -#define mesh_SubPacket_variant_time_MSGTYPE mesh_Time -#define mesh_SubPacket_variant_data_MSGTYPE mesh_Data -#define mesh_SubPacket_variant_user_MSGTYPE mesh_User -#define mesh_SubPacket_variant_want_node_MSGTYPE mesh_WantNodeNum -#define mesh_SubPacket_variant_deny_node_MSGTYPE mesh_DenyNodeNum +#define SubPacket_CALLBACK NULL +#define SubPacket_DEFAULT NULL +#define SubPacket_variant_position_MSGTYPE Position +#define SubPacket_variant_time_MSGTYPE Time +#define SubPacket_variant_data_MSGTYPE Data +#define SubPacket_variant_user_MSGTYPE User +#define SubPacket_variant_want_node_MSGTYPE WantNodeNum +#define SubPacket_variant_deny_node_MSGTYPE DenyNodeNum -#define mesh_MeshPayload_FIELDLIST(X, a) \ +#define MeshPayload_FIELDLIST(X, a) \ X(a, STATIC, REPEATED, MESSAGE, subPackets, 3) -#define mesh_MeshPayload_CALLBACK NULL -#define mesh_MeshPayload_DEFAULT NULL -#define mesh_MeshPayload_subPackets_MSGTYPE mesh_SubPacket +#define MeshPayload_CALLBACK NULL +#define MeshPayload_DEFAULT NULL +#define MeshPayload_subPackets_MSGTYPE SubPacket -#define mesh_MeshPacket_FIELDLIST(X, a) \ +#define MeshPacket_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, INT32, from, 1) \ X(a, STATIC, SINGULAR, INT32, to, 2) \ X(a, STATIC, OPTIONAL, MESSAGE, payload, 3) -#define mesh_MeshPacket_CALLBACK NULL -#define mesh_MeshPacket_DEFAULT NULL -#define mesh_MeshPacket_payload_MSGTYPE mesh_MeshPayload +#define MeshPacket_CALLBACK NULL +#define MeshPacket_DEFAULT NULL +#define MeshPacket_payload_MSGTYPE MeshPayload -#define mesh_RadioConfig_FIELDLIST(X, a) \ +#define RadioConfig_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, BOOL, keep_all_packets, 100) \ X(a, STATIC, SINGULAR, BOOL, promiscuous_mode, 101) -#define mesh_RadioConfig_CALLBACK NULL -#define mesh_RadioConfig_DEFAULT NULL +#define RadioConfig_CALLBACK NULL +#define RadioConfig_DEFAULT NULL -#define mesh_NodeInfo_FIELDLIST(X, a) \ +#define NodeInfo_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, INT32, num, 1) \ X(a, STATIC, OPTIONAL, MESSAGE, user, 2) \ X(a, STATIC, OPTIONAL, MESSAGE, position, 4) \ X(a, STATIC, OPTIONAL, MESSAGE, last_seen, 5) -#define mesh_NodeInfo_CALLBACK NULL -#define mesh_NodeInfo_DEFAULT NULL -#define mesh_NodeInfo_user_MSGTYPE mesh_User -#define mesh_NodeInfo_position_MSGTYPE mesh_Position -#define mesh_NodeInfo_last_seen_MSGTYPE mesh_Time +#define NodeInfo_CALLBACK NULL +#define NodeInfo_DEFAULT NULL +#define NodeInfo_user_MSGTYPE User +#define NodeInfo_position_MSGTYPE Position +#define NodeInfo_last_seen_MSGTYPE Time -#define mesh_DeviceState_FIELDLIST(X, a) \ +#define DeviceState_FIELDLIST(X, a) \ X(a, STATIC, OPTIONAL, MESSAGE, radio, 1) \ X(a, STATIC, REPEATED, MESSAGE, node_db, 2) \ X(a, STATIC, REPEATED, MESSAGE, receive_queue, 3) \ X(a, STATIC, SINGULAR, SINT32, my_node_num, 4) -#define mesh_DeviceState_CALLBACK NULL -#define mesh_DeviceState_DEFAULT NULL -#define mesh_DeviceState_radio_MSGTYPE mesh_RadioConfig -#define mesh_DeviceState_node_db_MSGTYPE mesh_NodeInfo -#define mesh_DeviceState_receive_queue_MSGTYPE mesh_MeshPacket +#define DeviceState_CALLBACK NULL +#define DeviceState_DEFAULT NULL +#define DeviceState_radio_MSGTYPE RadioConfig +#define DeviceState_node_db_MSGTYPE NodeInfo +#define DeviceState_receive_queue_MSGTYPE MeshPacket -#define mesh_FromRadio_FIELDLIST(X, a) \ +#define FromRadio_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UINT32, num, 1) \ X(a, STATIC, ONEOF, MESSAGE, (variant,packet,variant.packet), 2) \ X(a, STATIC, ONEOF, SINT32, (variant,my_node_num,variant.my_node_num), 3) \ X(a, STATIC, ONEOF, MESSAGE, (variant,node_info,variant.node_info), 4) -#define mesh_FromRadio_CALLBACK NULL -#define mesh_FromRadio_DEFAULT NULL -#define mesh_FromRadio_variant_packet_MSGTYPE mesh_MeshPacket -#define mesh_FromRadio_variant_node_info_MSGTYPE mesh_NodeInfo +#define FromRadio_CALLBACK NULL +#define FromRadio_DEFAULT NULL +#define FromRadio_variant_packet_MSGTYPE MeshPacket +#define FromRadio_variant_node_info_MSGTYPE NodeInfo -#define mesh_ToRadio_FIELDLIST(X, a) \ +#define ToRadio_FIELDLIST(X, a) \ X(a, STATIC, ONEOF, MESSAGE, (variant,packet,variant.packet), 1) \ X(a, STATIC, ONEOF, MESSAGE, (variant,want_nodes,variant.want_nodes), 100) \ X(a, STATIC, ONEOF, MESSAGE, (variant,set_radio,variant.set_radio), 101) \ X(a, STATIC, ONEOF, MESSAGE, (variant,set_owner,variant.set_owner), 102) -#define mesh_ToRadio_CALLBACK NULL -#define mesh_ToRadio_DEFAULT NULL -#define mesh_ToRadio_variant_packet_MSGTYPE mesh_MeshPacket -#define mesh_ToRadio_variant_want_nodes_MSGTYPE mesh_ToRadio_WantNodes -#define mesh_ToRadio_variant_set_radio_MSGTYPE mesh_RadioConfig -#define mesh_ToRadio_variant_set_owner_MSGTYPE mesh_User +#define ToRadio_CALLBACK NULL +#define ToRadio_DEFAULT NULL +#define ToRadio_variant_packet_MSGTYPE MeshPacket +#define ToRadio_variant_want_nodes_MSGTYPE ToRadio_WantNodes +#define ToRadio_variant_set_radio_MSGTYPE RadioConfig +#define ToRadio_variant_set_owner_MSGTYPE User -#define mesh_ToRadio_WantNodes_FIELDLIST(X, a) \ +#define ToRadio_WantNodes_FIELDLIST(X, a) \ -#define mesh_ToRadio_WantNodes_CALLBACK NULL -#define mesh_ToRadio_WantNodes_DEFAULT NULL +#define ToRadio_WantNodes_CALLBACK NULL +#define ToRadio_WantNodes_DEFAULT NULL -extern const pb_msgdesc_t mesh_Position_msg; -extern const pb_msgdesc_t mesh_Time_msg; -extern const pb_msgdesc_t mesh_Data_msg; -extern const pb_msgdesc_t mesh_User_msg; -extern const pb_msgdesc_t mesh_WantNodeNum_msg; -extern const pb_msgdesc_t mesh_DenyNodeNum_msg; -extern const pb_msgdesc_t mesh_SubPacket_msg; -extern const pb_msgdesc_t mesh_MeshPayload_msg; -extern const pb_msgdesc_t mesh_MeshPacket_msg; -extern const pb_msgdesc_t mesh_RadioConfig_msg; -extern const pb_msgdesc_t mesh_NodeInfo_msg; -extern const pb_msgdesc_t mesh_DeviceState_msg; -extern const pb_msgdesc_t mesh_FromRadio_msg; -extern const pb_msgdesc_t mesh_ToRadio_msg; -extern const pb_msgdesc_t mesh_ToRadio_WantNodes_msg; +extern const pb_msgdesc_t Position_msg; +extern const pb_msgdesc_t Time_msg; +extern const pb_msgdesc_t Data_msg; +extern const pb_msgdesc_t User_msg; +extern const pb_msgdesc_t WantNodeNum_msg; +extern const pb_msgdesc_t DenyNodeNum_msg; +extern const pb_msgdesc_t SubPacket_msg; +extern const pb_msgdesc_t MeshPayload_msg; +extern const pb_msgdesc_t MeshPacket_msg; +extern const pb_msgdesc_t RadioConfig_msg; +extern const pb_msgdesc_t NodeInfo_msg; +extern const pb_msgdesc_t DeviceState_msg; +extern const pb_msgdesc_t FromRadio_msg; +extern const pb_msgdesc_t ToRadio_msg; +extern const pb_msgdesc_t ToRadio_WantNodes_msg; /* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define mesh_Position_fields &mesh_Position_msg -#define mesh_Time_fields &mesh_Time_msg -#define mesh_Data_fields &mesh_Data_msg -#define mesh_User_fields &mesh_User_msg -#define mesh_WantNodeNum_fields &mesh_WantNodeNum_msg -#define mesh_DenyNodeNum_fields &mesh_DenyNodeNum_msg -#define mesh_SubPacket_fields &mesh_SubPacket_msg -#define mesh_MeshPayload_fields &mesh_MeshPayload_msg -#define mesh_MeshPacket_fields &mesh_MeshPacket_msg -#define mesh_RadioConfig_fields &mesh_RadioConfig_msg -#define mesh_NodeInfo_fields &mesh_NodeInfo_msg -#define mesh_DeviceState_fields &mesh_DeviceState_msg -#define mesh_FromRadio_fields &mesh_FromRadio_msg -#define mesh_ToRadio_fields &mesh_ToRadio_msg -#define mesh_ToRadio_WantNodes_fields &mesh_ToRadio_WantNodes_msg +#define Position_fields &Position_msg +#define Time_fields &Time_msg +#define Data_fields &Data_msg +#define User_fields &User_msg +#define WantNodeNum_fields &WantNodeNum_msg +#define DenyNodeNum_fields &DenyNodeNum_msg +#define SubPacket_fields &SubPacket_msg +#define MeshPayload_fields &MeshPayload_msg +#define MeshPacket_fields &MeshPacket_msg +#define RadioConfig_fields &RadioConfig_msg +#define NodeInfo_fields &NodeInfo_msg +#define DeviceState_fields &DeviceState_msg +#define FromRadio_fields &FromRadio_msg +#define ToRadio_fields &ToRadio_msg +#define ToRadio_WantNodes_fields &ToRadio_WantNodes_msg /* Maximum encoded size of messages (where known) */ -#define mesh_Position_size 40 -#define mesh_Time_size 11 -#define mesh_Data_size 104 -#define mesh_User_size 70 -#define mesh_WantNodeNum_size 13 -#define mesh_DenyNodeNum_size 7 -#define mesh_SubPacket_size 106 -#define mesh_MeshPayload_size 432 -#define mesh_MeshPacket_size 457 -#define mesh_RadioConfig_size 6 -#define mesh_NodeInfo_size 138 -#define mesh_DeviceState_size 19246 -#define mesh_FromRadio_size 466 -#define mesh_ToRadio_size 460 -#define mesh_ToRadio_WantNodes_size 0 +#define Position_size 42 +#define Time_size 11 +#define Data_size 104 +#define User_size 70 +#define WantNodeNum_size 13 +#define DenyNodeNum_size 7 +#define SubPacket_size 106 +#define MeshPayload_size 432 +#define MeshPacket_size 457 +#define RadioConfig_size 6 +#define NodeInfo_size 140 +#define DeviceState_size 19310 +#define FromRadio_size 466 +#define ToRadio_size 460 +#define ToRadio_WantNodes_size 0 #ifdef __cplusplus } /* extern "C" */