protob work

This commit is contained in:
geeksville 2020-02-01 14:23:02 -08:00
parent 12fe7272de
commit 70ed667727
4 changed files with 270 additions and 263 deletions

View File

@ -2,8 +2,10 @@
# High priority # High priority
* make protobufs more real * make message send from android go to service, then to mesh radio
* attach mesh service to radio and bluetooth * 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 # Medium priority

View File

@ -63,6 +63,8 @@ bool MeshRadio::init() {
// you can set transmitter powers from 5 to 23 dBm: // you can set transmitter powers from 5 to 23 dBm:
// FIXME - can we do this? // FIXME - can we do this?
// rf95.setTxPower(23, false); // rf95.setTxPower(23, false);
return true;
} }

View File

@ -6,49 +6,49 @@
#error Regenerate this file with the current version of nanopb generator. #error Regenerate this file with the current version of nanopb generator.
#endif #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)

View File

@ -1,8 +1,8 @@
/* Automatically generated nanopb header */ /* Automatically generated nanopb header */
/* Generated by nanopb-0.4.0 */ /* Generated by nanopb-0.4.0 */
#ifndef PB_MESH_MESH_PB_H_INCLUDED #ifndef PB_MESH_PB_H_INCLUDED
#define PB_MESH_MESH_PB_H_INCLUDED #define PB_MESH_PB_H_INCLUDED
#include <pb.h> #include <pb.h>
#if PB_PROTO_HEADER_VERSION != 40 #if PB_PROTO_HEADER_VERSION != 40
@ -14,375 +14,378 @@ extern "C" {
#endif #endif
/* Enum definitions */ /* Enum definitions */
typedef enum _mesh_Data_Type { typedef enum _Data_Type {
mesh_Data_Type_SIGNAL_OPAQUE = 0, Data_Type_SIGNAL_OPAQUE = 0,
mesh_Data_Type_CLEAR_TEXT = 1, Data_Type_CLEAR_TEXT = 1,
mesh_Data_Type_CLEAR_READACK = 2 Data_Type_CLEAR_READACK = 2
} mesh_Data_Type; } Data_Type;
/* Struct definitions */ /* Struct definitions */
typedef struct _mesh_ToRadio_WantNodes { typedef struct _ToRadio_WantNodes {
char dummy_field; char dummy_field;
} mesh_ToRadio_WantNodes; } ToRadio_WantNodes;
typedef PB_BYTES_ARRAY_T(100) mesh_Data_payload_t; typedef PB_BYTES_ARRAY_T(100) Data_payload_t;
typedef struct _mesh_Data { typedef struct _Data {
mesh_Data_Type typ; Data_Type typ;
mesh_Data_payload_t payload; Data_payload_t payload;
} mesh_Data; } Data;
typedef struct _mesh_DenyNodeNum { typedef struct _DenyNodeNum {
char macaddr[6]; char macaddr[6];
} mesh_DenyNodeNum; } DenyNodeNum;
typedef struct _mesh_Position { typedef struct _Position {
double latitude; double latitude;
double longitude; double longitude;
int32_t altitude; int32_t altitude;
int32_t battery_level; int32_t battery_level;
} mesh_Position; bool from_hardware;
} Position;
typedef struct _mesh_RadioConfig { typedef struct _RadioConfig {
bool keep_all_packets; bool keep_all_packets;
bool promiscuous_mode; bool promiscuous_mode;
} mesh_RadioConfig; } RadioConfig;
typedef struct _mesh_Time { typedef struct _Time {
uint64_t msecs; uint64_t msecs;
} mesh_Time; } Time;
typedef struct _mesh_User { typedef struct _User {
char id[16]; char id[16];
char long_name[40]; char long_name[40];
char short_name[4]; char short_name[4];
char macaddr[6]; char macaddr[6];
} mesh_User; } User;
typedef struct _mesh_WantNodeNum { typedef struct _WantNodeNum {
uint32_t desired_nodenum; uint32_t desired_nodenum;
char macaddr[6]; char macaddr[6];
} mesh_WantNodeNum; } WantNodeNum;
typedef struct _mesh_NodeInfo { typedef struct _NodeInfo {
int32_t num; int32_t num;
bool has_user; bool has_user;
mesh_User user; User user;
bool has_position; bool has_position;
mesh_Position position; Position position;
bool has_last_seen; bool has_last_seen;
mesh_Time last_seen; Time last_seen;
} mesh_NodeInfo; } NodeInfo;
typedef struct _mesh_SubPacket { typedef struct _SubPacket {
pb_size_t which_variant; pb_size_t which_variant;
union { union {
mesh_Position position; Position position;
mesh_Time time; Time time;
mesh_Data data; Data data;
mesh_User user; User user;
mesh_WantNodeNum want_node; WantNodeNum want_node;
mesh_DenyNodeNum deny_node; DenyNodeNum deny_node;
} variant; } variant;
} mesh_SubPacket; } SubPacket;
typedef struct _mesh_MeshPayload { typedef struct _MeshPayload {
pb_size_t subPackets_count; pb_size_t subPackets_count;
mesh_SubPacket subPackets[4]; SubPacket subPackets[4];
} mesh_MeshPayload; } MeshPayload;
typedef struct _mesh_MeshPacket { typedef struct _MeshPacket {
int32_t from; int32_t from;
int32_t to; int32_t to;
bool has_payload; bool has_payload;
mesh_MeshPayload payload; MeshPayload payload;
} mesh_MeshPacket; } MeshPacket;
typedef struct _mesh_DeviceState { typedef struct _DeviceState {
bool has_radio; bool has_radio;
mesh_RadioConfig radio; RadioConfig radio;
pb_size_t node_db_count; pb_size_t node_db_count;
mesh_NodeInfo node_db[32]; NodeInfo node_db[32];
pb_size_t receive_queue_count; pb_size_t receive_queue_count;
mesh_MeshPacket receive_queue[32]; MeshPacket receive_queue[32];
int32_t my_node_num; int32_t my_node_num;
} mesh_DeviceState; } DeviceState;
typedef struct _mesh_FromRadio { typedef struct _FromRadio {
uint32_t num; uint32_t num;
pb_size_t which_variant; pb_size_t which_variant;
union { union {
mesh_MeshPacket packet; MeshPacket packet;
int32_t my_node_num; int32_t my_node_num;
mesh_NodeInfo node_info; NodeInfo node_info;
} variant; } variant;
} mesh_FromRadio; } FromRadio;
typedef struct _mesh_ToRadio { typedef struct _ToRadio {
pb_size_t which_variant; pb_size_t which_variant;
union { union {
mesh_MeshPacket packet; MeshPacket packet;
mesh_ToRadio_WantNodes want_nodes; ToRadio_WantNodes want_nodes;
mesh_RadioConfig set_radio; RadioConfig set_radio;
mesh_User set_owner; User set_owner;
} variant; } variant;
} mesh_ToRadio; } ToRadio;
/* Helper constants for enums */ /* Helper constants for enums */
#define _mesh_Data_Type_MIN mesh_Data_Type_SIGNAL_OPAQUE #define _Data_Type_MIN Data_Type_SIGNAL_OPAQUE
#define _mesh_Data_Type_MAX mesh_Data_Type_CLEAR_READACK #define _Data_Type_MAX Data_Type_CLEAR_READACK
#define _mesh_Data_Type_ARRAYSIZE ((mesh_Data_Type)(mesh_Data_Type_CLEAR_READACK+1)) #define _Data_Type_ARRAYSIZE ((Data_Type)(Data_Type_CLEAR_READACK+1))
/* Initializer values for message structs */ /* Initializer values for message structs */
#define mesh_Position_init_default {0, 0, 0, 0} #define Position_init_default {0, 0, 0, 0, 0}
#define mesh_Time_init_default {0} #define Time_init_default {0}
#define mesh_Data_init_default {_mesh_Data_Type_MIN, {0, {0}}} #define Data_init_default {_Data_Type_MIN, {0, {0}}}
#define mesh_User_init_default {"", "", "", ""} #define User_init_default {"", "", "", ""}
#define mesh_WantNodeNum_init_default {0, ""} #define WantNodeNum_init_default {0, ""}
#define mesh_DenyNodeNum_init_default {""} #define DenyNodeNum_init_default {""}
#define mesh_SubPacket_init_default {0, {mesh_Position_init_default}} #define SubPacket_init_default {0, {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 MeshPayload_init_default {0, {SubPacket_init_default, SubPacket_init_default, SubPacket_init_default, SubPacket_init_default}}
#define mesh_MeshPacket_init_default {0, 0, false, mesh_MeshPayload_init_default} #define MeshPacket_init_default {0, 0, false, MeshPayload_init_default}
#define mesh_RadioConfig_init_default {0, 0} #define 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 NodeInfo_init_default {0, false, User_init_default, false, Position_init_default, false, 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 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 mesh_FromRadio_init_default {0, 0, {mesh_MeshPacket_init_default}} #define FromRadio_init_default {0, 0, {MeshPacket_init_default}}
#define mesh_ToRadio_init_default {0, {mesh_MeshPacket_init_default}} #define ToRadio_init_default {0, {MeshPacket_init_default}}
#define mesh_ToRadio_WantNodes_init_default {0} #define ToRadio_WantNodes_init_default {0}
#define mesh_Position_init_zero {0, 0, 0, 0} #define Position_init_zero {0, 0, 0, 0, 0}
#define mesh_Time_init_zero {0} #define Time_init_zero {0}
#define mesh_Data_init_zero {_mesh_Data_Type_MIN, {0, {0}}} #define Data_init_zero {_Data_Type_MIN, {0, {0}}}
#define mesh_User_init_zero {"", "", "", ""} #define User_init_zero {"", "", "", ""}
#define mesh_WantNodeNum_init_zero {0, ""} #define WantNodeNum_init_zero {0, ""}
#define mesh_DenyNodeNum_init_zero {""} #define DenyNodeNum_init_zero {""}
#define mesh_SubPacket_init_zero {0, {mesh_Position_init_zero}} #define SubPacket_init_zero {0, {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 MeshPayload_init_zero {0, {SubPacket_init_zero, SubPacket_init_zero, SubPacket_init_zero, SubPacket_init_zero}}
#define mesh_MeshPacket_init_zero {0, 0, false, mesh_MeshPayload_init_zero} #define MeshPacket_init_zero {0, 0, false, MeshPayload_init_zero}
#define mesh_RadioConfig_init_zero {0, 0} #define 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 NodeInfo_init_zero {0, false, User_init_zero, false, Position_init_zero, false, 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 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 mesh_FromRadio_init_zero {0, 0, {mesh_MeshPacket_init_zero}} #define FromRadio_init_zero {0, 0, {MeshPacket_init_zero}}
#define mesh_ToRadio_init_zero {0, {mesh_MeshPacket_init_zero}} #define ToRadio_init_zero {0, {MeshPacket_init_zero}}
#define mesh_ToRadio_WantNodes_init_zero {0} #define ToRadio_WantNodes_init_zero {0}
/* Field tags (for use in manual encoding/decoding) */ /* Field tags (for use in manual encoding/decoding) */
#define mesh_Data_typ_tag 1 #define Data_typ_tag 1
#define mesh_Data_payload_tag 2 #define Data_payload_tag 2
#define mesh_DenyNodeNum_macaddr_tag 1 #define DenyNodeNum_macaddr_tag 1
#define mesh_Position_latitude_tag 1 #define Position_latitude_tag 1
#define mesh_Position_longitude_tag 2 #define Position_longitude_tag 2
#define mesh_Position_altitude_tag 3 #define Position_altitude_tag 3
#define mesh_Position_battery_level_tag 4 #define Position_battery_level_tag 4
#define mesh_RadioConfig_keep_all_packets_tag 100 #define Position_from_hardware_tag 5
#define mesh_RadioConfig_promiscuous_mode_tag 101 #define RadioConfig_keep_all_packets_tag 100
#define mesh_Time_msecs_tag 1 #define RadioConfig_promiscuous_mode_tag 101
#define mesh_User_id_tag 1 #define Time_msecs_tag 1
#define mesh_User_long_name_tag 2 #define User_id_tag 1
#define mesh_User_short_name_tag 3 #define User_long_name_tag 2
#define mesh_User_macaddr_tag 4 #define User_short_name_tag 3
#define mesh_WantNodeNum_desired_nodenum_tag 1 #define User_macaddr_tag 4
#define mesh_WantNodeNum_macaddr_tag 2 #define WantNodeNum_desired_nodenum_tag 1
#define mesh_NodeInfo_num_tag 1 #define WantNodeNum_macaddr_tag 2
#define mesh_NodeInfo_user_tag 2 #define NodeInfo_num_tag 1
#define mesh_NodeInfo_position_tag 4 #define NodeInfo_user_tag 2
#define mesh_NodeInfo_last_seen_tag 5 #define NodeInfo_position_tag 4
#define mesh_SubPacket_position_tag 1 #define NodeInfo_last_seen_tag 5
#define mesh_SubPacket_time_tag 2 #define SubPacket_position_tag 1
#define mesh_SubPacket_data_tag 3 #define SubPacket_time_tag 2
#define mesh_SubPacket_user_tag 4 #define SubPacket_data_tag 3
#define mesh_SubPacket_want_node_tag 5 #define SubPacket_user_tag 4
#define mesh_SubPacket_deny_node_tag 6 #define SubPacket_want_node_tag 5
#define mesh_MeshPayload_subPackets_tag 3 #define SubPacket_deny_node_tag 6
#define mesh_MeshPacket_from_tag 1 #define MeshPayload_subPackets_tag 3
#define mesh_MeshPacket_to_tag 2 #define MeshPacket_from_tag 1
#define mesh_MeshPacket_payload_tag 3 #define MeshPacket_to_tag 2
#define mesh_DeviceState_radio_tag 1 #define MeshPacket_payload_tag 3
#define mesh_DeviceState_node_db_tag 2 #define DeviceState_radio_tag 1
#define mesh_DeviceState_receive_queue_tag 3 #define DeviceState_node_db_tag 2
#define mesh_DeviceState_my_node_num_tag 4 #define DeviceState_receive_queue_tag 3
#define mesh_FromRadio_packet_tag 2 #define DeviceState_my_node_num_tag 4
#define mesh_FromRadio_my_node_num_tag 3 #define FromRadio_packet_tag 2
#define mesh_FromRadio_node_info_tag 4 #define FromRadio_my_node_num_tag 3
#define mesh_FromRadio_num_tag 1 #define FromRadio_node_info_tag 4
#define mesh_ToRadio_packet_tag 1 #define FromRadio_num_tag 1
#define mesh_ToRadio_want_nodes_tag 100 #define ToRadio_packet_tag 1
#define mesh_ToRadio_set_radio_tag 101 #define ToRadio_want_nodes_tag 100
#define mesh_ToRadio_set_owner_tag 102 #define ToRadio_set_radio_tag 101
#define ToRadio_set_owner_tag 102
/* Struct field encoding specification for nanopb */ /* 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, latitude, 1) \
X(a, STATIC, SINGULAR, DOUBLE, longitude, 2) \ X(a, STATIC, SINGULAR, DOUBLE, longitude, 2) \
X(a, STATIC, SINGULAR, INT32, altitude, 3) \ X(a, STATIC, SINGULAR, INT32, altitude, 3) \
X(a, STATIC, SINGULAR, INT32, battery_level, 4) X(a, STATIC, SINGULAR, INT32, battery_level, 4) \
#define mesh_Position_CALLBACK NULL X(a, STATIC, SINGULAR, BOOL, from_hardware, 5)
#define mesh_Position_DEFAULT NULL #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) X(a, STATIC, SINGULAR, UINT64, msecs, 1)
#define mesh_Time_CALLBACK NULL #define Time_CALLBACK NULL
#define mesh_Time_DEFAULT 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, UENUM, typ, 1) \
X(a, STATIC, SINGULAR, BYTES, payload, 2) X(a, STATIC, SINGULAR, BYTES, payload, 2)
#define mesh_Data_CALLBACK NULL #define Data_CALLBACK NULL
#define mesh_Data_DEFAULT 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, id, 1) \
X(a, STATIC, SINGULAR, STRING, long_name, 2) \ X(a, STATIC, SINGULAR, STRING, long_name, 2) \
X(a, STATIC, SINGULAR, STRING, short_name, 3) \ X(a, STATIC, SINGULAR, STRING, short_name, 3) \
X(a, STATIC, SINGULAR, STRING, macaddr, 4) X(a, STATIC, SINGULAR, STRING, macaddr, 4)
#define mesh_User_CALLBACK NULL #define User_CALLBACK NULL
#define mesh_User_DEFAULT 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, UINT32, desired_nodenum, 1) \
X(a, STATIC, SINGULAR, STRING, macaddr, 2) X(a, STATIC, SINGULAR, STRING, macaddr, 2)
#define mesh_WantNodeNum_CALLBACK NULL #define WantNodeNum_CALLBACK NULL
#define mesh_WantNodeNum_DEFAULT NULL #define WantNodeNum_DEFAULT NULL
#define mesh_DenyNodeNum_FIELDLIST(X, a) \ #define DenyNodeNum_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, STRING, macaddr, 1) X(a, STATIC, SINGULAR, STRING, macaddr, 1)
#define mesh_DenyNodeNum_CALLBACK NULL #define DenyNodeNum_CALLBACK NULL
#define mesh_DenyNodeNum_DEFAULT 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,position,variant.position), 1) \
X(a, STATIC, ONEOF, MESSAGE, (variant,time,variant.time), 2) \ 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,data,variant.data), 3) \
X(a, STATIC, ONEOF, MESSAGE, (variant,user,variant.user), 4) \ 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,want_node,variant.want_node), 5) \
X(a, STATIC, ONEOF, MESSAGE, (variant,deny_node,variant.deny_node), 6) X(a, STATIC, ONEOF, MESSAGE, (variant,deny_node,variant.deny_node), 6)
#define mesh_SubPacket_CALLBACK NULL #define SubPacket_CALLBACK NULL
#define mesh_SubPacket_DEFAULT NULL #define SubPacket_DEFAULT NULL
#define mesh_SubPacket_variant_position_MSGTYPE mesh_Position #define SubPacket_variant_position_MSGTYPE Position
#define mesh_SubPacket_variant_time_MSGTYPE mesh_Time #define SubPacket_variant_time_MSGTYPE Time
#define mesh_SubPacket_variant_data_MSGTYPE mesh_Data #define SubPacket_variant_data_MSGTYPE Data
#define mesh_SubPacket_variant_user_MSGTYPE mesh_User #define SubPacket_variant_user_MSGTYPE User
#define mesh_SubPacket_variant_want_node_MSGTYPE mesh_WantNodeNum #define SubPacket_variant_want_node_MSGTYPE WantNodeNum
#define mesh_SubPacket_variant_deny_node_MSGTYPE mesh_DenyNodeNum #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) X(a, STATIC, REPEATED, MESSAGE, subPackets, 3)
#define mesh_MeshPayload_CALLBACK NULL #define MeshPayload_CALLBACK NULL
#define mesh_MeshPayload_DEFAULT NULL #define MeshPayload_DEFAULT NULL
#define mesh_MeshPayload_subPackets_MSGTYPE mesh_SubPacket #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, from, 1) \
X(a, STATIC, SINGULAR, INT32, to, 2) \ X(a, STATIC, SINGULAR, INT32, to, 2) \
X(a, STATIC, OPTIONAL, MESSAGE, payload, 3) X(a, STATIC, OPTIONAL, MESSAGE, payload, 3)
#define mesh_MeshPacket_CALLBACK NULL #define MeshPacket_CALLBACK NULL
#define mesh_MeshPacket_DEFAULT NULL #define MeshPacket_DEFAULT NULL
#define mesh_MeshPacket_payload_MSGTYPE mesh_MeshPayload #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, keep_all_packets, 100) \
X(a, STATIC, SINGULAR, BOOL, promiscuous_mode, 101) X(a, STATIC, SINGULAR, BOOL, promiscuous_mode, 101)
#define mesh_RadioConfig_CALLBACK NULL #define RadioConfig_CALLBACK NULL
#define mesh_RadioConfig_DEFAULT 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, SINGULAR, INT32, num, 1) \
X(a, STATIC, OPTIONAL, MESSAGE, user, 2) \ X(a, STATIC, OPTIONAL, MESSAGE, user, 2) \
X(a, STATIC, OPTIONAL, MESSAGE, position, 4) \ X(a, STATIC, OPTIONAL, MESSAGE, position, 4) \
X(a, STATIC, OPTIONAL, MESSAGE, last_seen, 5) X(a, STATIC, OPTIONAL, MESSAGE, last_seen, 5)
#define mesh_NodeInfo_CALLBACK NULL #define NodeInfo_CALLBACK NULL
#define mesh_NodeInfo_DEFAULT NULL #define NodeInfo_DEFAULT NULL
#define mesh_NodeInfo_user_MSGTYPE mesh_User #define NodeInfo_user_MSGTYPE User
#define mesh_NodeInfo_position_MSGTYPE mesh_Position #define NodeInfo_position_MSGTYPE Position
#define mesh_NodeInfo_last_seen_MSGTYPE mesh_Time #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, OPTIONAL, MESSAGE, radio, 1) \
X(a, STATIC, REPEATED, MESSAGE, node_db, 2) \ X(a, STATIC, REPEATED, MESSAGE, node_db, 2) \
X(a, STATIC, REPEATED, MESSAGE, receive_queue, 3) \ X(a, STATIC, REPEATED, MESSAGE, receive_queue, 3) \
X(a, STATIC, SINGULAR, SINT32, my_node_num, 4) X(a, STATIC, SINGULAR, SINT32, my_node_num, 4)
#define mesh_DeviceState_CALLBACK NULL #define DeviceState_CALLBACK NULL
#define mesh_DeviceState_DEFAULT NULL #define DeviceState_DEFAULT NULL
#define mesh_DeviceState_radio_MSGTYPE mesh_RadioConfig #define DeviceState_radio_MSGTYPE RadioConfig
#define mesh_DeviceState_node_db_MSGTYPE mesh_NodeInfo #define DeviceState_node_db_MSGTYPE NodeInfo
#define mesh_DeviceState_receive_queue_MSGTYPE mesh_MeshPacket #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, SINGULAR, UINT32, num, 1) \
X(a, STATIC, ONEOF, MESSAGE, (variant,packet,variant.packet), 2) \ 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, SINT32, (variant,my_node_num,variant.my_node_num), 3) \
X(a, STATIC, ONEOF, MESSAGE, (variant,node_info,variant.node_info), 4) X(a, STATIC, ONEOF, MESSAGE, (variant,node_info,variant.node_info), 4)
#define mesh_FromRadio_CALLBACK NULL #define FromRadio_CALLBACK NULL
#define mesh_FromRadio_DEFAULT NULL #define FromRadio_DEFAULT NULL
#define mesh_FromRadio_variant_packet_MSGTYPE mesh_MeshPacket #define FromRadio_variant_packet_MSGTYPE MeshPacket
#define mesh_FromRadio_variant_node_info_MSGTYPE mesh_NodeInfo #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,packet,variant.packet), 1) \
X(a, STATIC, ONEOF, MESSAGE, (variant,want_nodes,variant.want_nodes), 100) \ 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_radio,variant.set_radio), 101) \
X(a, STATIC, ONEOF, MESSAGE, (variant,set_owner,variant.set_owner), 102) X(a, STATIC, ONEOF, MESSAGE, (variant,set_owner,variant.set_owner), 102)
#define mesh_ToRadio_CALLBACK NULL #define ToRadio_CALLBACK NULL
#define mesh_ToRadio_DEFAULT NULL #define ToRadio_DEFAULT NULL
#define mesh_ToRadio_variant_packet_MSGTYPE mesh_MeshPacket #define ToRadio_variant_packet_MSGTYPE MeshPacket
#define mesh_ToRadio_variant_want_nodes_MSGTYPE mesh_ToRadio_WantNodes #define ToRadio_variant_want_nodes_MSGTYPE ToRadio_WantNodes
#define mesh_ToRadio_variant_set_radio_MSGTYPE mesh_RadioConfig #define ToRadio_variant_set_radio_MSGTYPE RadioConfig
#define mesh_ToRadio_variant_set_owner_MSGTYPE mesh_User #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 ToRadio_WantNodes_CALLBACK NULL
#define mesh_ToRadio_WantNodes_DEFAULT NULL #define ToRadio_WantNodes_DEFAULT NULL
extern const pb_msgdesc_t mesh_Position_msg; extern const pb_msgdesc_t Position_msg;
extern const pb_msgdesc_t mesh_Time_msg; extern const pb_msgdesc_t Time_msg;
extern const pb_msgdesc_t mesh_Data_msg; extern const pb_msgdesc_t Data_msg;
extern const pb_msgdesc_t mesh_User_msg; extern const pb_msgdesc_t User_msg;
extern const pb_msgdesc_t mesh_WantNodeNum_msg; extern const pb_msgdesc_t WantNodeNum_msg;
extern const pb_msgdesc_t mesh_DenyNodeNum_msg; extern const pb_msgdesc_t DenyNodeNum_msg;
extern const pb_msgdesc_t mesh_SubPacket_msg; extern const pb_msgdesc_t SubPacket_msg;
extern const pb_msgdesc_t mesh_MeshPayload_msg; extern const pb_msgdesc_t MeshPayload_msg;
extern const pb_msgdesc_t mesh_MeshPacket_msg; extern const pb_msgdesc_t MeshPacket_msg;
extern const pb_msgdesc_t mesh_RadioConfig_msg; extern const pb_msgdesc_t RadioConfig_msg;
extern const pb_msgdesc_t mesh_NodeInfo_msg; extern const pb_msgdesc_t NodeInfo_msg;
extern const pb_msgdesc_t mesh_DeviceState_msg; extern const pb_msgdesc_t DeviceState_msg;
extern const pb_msgdesc_t mesh_FromRadio_msg; extern const pb_msgdesc_t FromRadio_msg;
extern const pb_msgdesc_t mesh_ToRadio_msg; extern const pb_msgdesc_t ToRadio_msg;
extern const pb_msgdesc_t mesh_ToRadio_WantNodes_msg; extern const pb_msgdesc_t ToRadio_WantNodes_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ /* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define mesh_Position_fields &mesh_Position_msg #define Position_fields &Position_msg
#define mesh_Time_fields &mesh_Time_msg #define Time_fields &Time_msg
#define mesh_Data_fields &mesh_Data_msg #define Data_fields &Data_msg
#define mesh_User_fields &mesh_User_msg #define User_fields &User_msg
#define mesh_WantNodeNum_fields &mesh_WantNodeNum_msg #define WantNodeNum_fields &WantNodeNum_msg
#define mesh_DenyNodeNum_fields &mesh_DenyNodeNum_msg #define DenyNodeNum_fields &DenyNodeNum_msg
#define mesh_SubPacket_fields &mesh_SubPacket_msg #define SubPacket_fields &SubPacket_msg
#define mesh_MeshPayload_fields &mesh_MeshPayload_msg #define MeshPayload_fields &MeshPayload_msg
#define mesh_MeshPacket_fields &mesh_MeshPacket_msg #define MeshPacket_fields &MeshPacket_msg
#define mesh_RadioConfig_fields &mesh_RadioConfig_msg #define RadioConfig_fields &RadioConfig_msg
#define mesh_NodeInfo_fields &mesh_NodeInfo_msg #define NodeInfo_fields &NodeInfo_msg
#define mesh_DeviceState_fields &mesh_DeviceState_msg #define DeviceState_fields &DeviceState_msg
#define mesh_FromRadio_fields &mesh_FromRadio_msg #define FromRadio_fields &FromRadio_msg
#define mesh_ToRadio_fields &mesh_ToRadio_msg #define ToRadio_fields &ToRadio_msg
#define mesh_ToRadio_WantNodes_fields &mesh_ToRadio_WantNodes_msg #define ToRadio_WantNodes_fields &ToRadio_WantNodes_msg
/* Maximum encoded size of messages (where known) */ /* Maximum encoded size of messages (where known) */
#define mesh_Position_size 40 #define Position_size 42
#define mesh_Time_size 11 #define Time_size 11
#define mesh_Data_size 104 #define Data_size 104
#define mesh_User_size 70 #define User_size 70
#define mesh_WantNodeNum_size 13 #define WantNodeNum_size 13
#define mesh_DenyNodeNum_size 7 #define DenyNodeNum_size 7
#define mesh_SubPacket_size 106 #define SubPacket_size 106
#define mesh_MeshPayload_size 432 #define MeshPayload_size 432
#define mesh_MeshPacket_size 457 #define MeshPacket_size 457
#define mesh_RadioConfig_size 6 #define RadioConfig_size 6
#define mesh_NodeInfo_size 138 #define NodeInfo_size 140
#define mesh_DeviceState_size 19246 #define DeviceState_size 19310
#define mesh_FromRadio_size 466 #define FromRadio_size 466
#define mesh_ToRadio_size 460 #define ToRadio_size 460
#define mesh_ToRadio_WantNodes_size 0 #define ToRadio_WantNodes_size 0
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */