mirror of
https://github.com/meshtastic/firmware.git
synced 2025-04-29 19:03:52 +00:00
Add ourGroupInfo to NodeDB
This commit is contained in:
parent
e969e83037
commit
389a8f1401
@ -34,6 +34,7 @@ NodeDB nodeDB;
|
|||||||
// we have plenty of ram so statically alloc this tempbuf (for now)
|
// we have plenty of ram so statically alloc this tempbuf (for now)
|
||||||
EXT_RAM_ATTR DeviceState devicestate;
|
EXT_RAM_ATTR DeviceState devicestate;
|
||||||
MyNodeInfo &myNodeInfo = devicestate.my_node;
|
MyNodeInfo &myNodeInfo = devicestate.my_node;
|
||||||
|
GroupInfo &ourGroupInfo = devicestate.group_info;
|
||||||
RadioConfig radioConfig;
|
RadioConfig radioConfig;
|
||||||
ChannelFile channelFile;
|
ChannelFile channelFile;
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
extern DeviceState devicestate;
|
extern DeviceState devicestate;
|
||||||
extern ChannelFile channelFile;
|
extern ChannelFile channelFile;
|
||||||
extern MyNodeInfo &myNodeInfo;
|
extern MyNodeInfo &myNodeInfo;
|
||||||
|
extern GroupInfo &ourGroupInfo;
|
||||||
extern RadioConfig radioConfig;
|
extern RadioConfig radioConfig;
|
||||||
extern User &owner;
|
extern User &owner;
|
||||||
|
|
||||||
|
@ -27,6 +27,8 @@ typedef struct _DeviceState {
|
|||||||
NodeInfo node_db[32];
|
NodeInfo node_db[32];
|
||||||
pb_size_t receive_queue_count;
|
pb_size_t receive_queue_count;
|
||||||
MeshPacket receive_queue[1];
|
MeshPacket receive_queue[1];
|
||||||
|
bool has_group_info;
|
||||||
|
GroupInfo group_info;
|
||||||
bool has_rx_text_message;
|
bool has_rx_text_message;
|
||||||
MeshPacket rx_text_message;
|
MeshPacket rx_text_message;
|
||||||
uint32_t version;
|
uint32_t version;
|
||||||
@ -45,9 +47,9 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Initializer values for message structs */
|
/* Initializer values for message structs */
|
||||||
#define DeviceState_init_default {false, MyNodeInfo_init_default, false, User_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}, false, MeshPacket_init_default, 0, 0, 0, "", "", "", "", ""}
|
#define DeviceState_init_default {false, MyNodeInfo_init_default, false, User_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}, false, GroupInfo_init_default, false, MeshPacket_init_default, 0, 0, 0, "", "", "", "", ""}
|
||||||
#define ChannelFile_init_default {0, {Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default}}
|
#define ChannelFile_init_default {0, {Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default, Channel_init_default}}
|
||||||
#define DeviceState_init_zero {false, MyNodeInfo_init_zero, false, User_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}, false, MeshPacket_init_zero, 0, 0, 0, "", "", "", "", ""}
|
#define DeviceState_init_zero {false, MyNodeInfo_init_zero, false, User_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}, false, GroupInfo_init_zero, false, MeshPacket_init_zero, 0, 0, 0, "", "", "", "", ""}
|
||||||
#define ChannelFile_init_zero {0, {Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero}}
|
#define ChannelFile_init_zero {0, {Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero, Channel_init_zero}}
|
||||||
|
|
||||||
/* Field tags (for use in manual encoding/decoding) */
|
/* Field tags (for use in manual encoding/decoding) */
|
||||||
@ -56,6 +58,7 @@ extern "C" {
|
|||||||
#define DeviceState_owner_tag 3
|
#define DeviceState_owner_tag 3
|
||||||
#define DeviceState_node_db_tag 4
|
#define DeviceState_node_db_tag 4
|
||||||
#define DeviceState_receive_queue_tag 5
|
#define DeviceState_receive_queue_tag 5
|
||||||
|
#define DeviceState_group_info_tag 6
|
||||||
#define DeviceState_rx_text_message_tag 7
|
#define DeviceState_rx_text_message_tag 7
|
||||||
#define DeviceState_version_tag 8
|
#define DeviceState_version_tag 8
|
||||||
#define DeviceState_no_save_tag 9
|
#define DeviceState_no_save_tag 9
|
||||||
@ -72,6 +75,7 @@ X(a, STATIC, OPTIONAL, MESSAGE, my_node, 2) \
|
|||||||
X(a, STATIC, OPTIONAL, MESSAGE, owner, 3) \
|
X(a, STATIC, OPTIONAL, MESSAGE, owner, 3) \
|
||||||
X(a, STATIC, REPEATED, MESSAGE, node_db, 4) \
|
X(a, STATIC, REPEATED, MESSAGE, node_db, 4) \
|
||||||
X(a, STATIC, REPEATED, MESSAGE, receive_queue, 5) \
|
X(a, STATIC, REPEATED, MESSAGE, receive_queue, 5) \
|
||||||
|
X(a, STATIC, OPTIONAL, MESSAGE, group_info, 6) \
|
||||||
X(a, STATIC, OPTIONAL, MESSAGE, rx_text_message, 7) \
|
X(a, STATIC, OPTIONAL, MESSAGE, rx_text_message, 7) \
|
||||||
X(a, STATIC, SINGULAR, UINT32, version, 8) \
|
X(a, STATIC, SINGULAR, UINT32, version, 8) \
|
||||||
X(a, STATIC, SINGULAR, BOOL, no_save, 9) \
|
X(a, STATIC, SINGULAR, BOOL, no_save, 9) \
|
||||||
@ -87,6 +91,7 @@ X(a, STATIC, SINGULAR, STRING, canned_message_plugin_message_part5, 17)
|
|||||||
#define DeviceState_owner_MSGTYPE User
|
#define DeviceState_owner_MSGTYPE User
|
||||||
#define DeviceState_node_db_MSGTYPE NodeInfo
|
#define DeviceState_node_db_MSGTYPE NodeInfo
|
||||||
#define DeviceState_receive_queue_MSGTYPE MeshPacket
|
#define DeviceState_receive_queue_MSGTYPE MeshPacket
|
||||||
|
#define DeviceState_group_info_MSGTYPE GroupInfo
|
||||||
#define DeviceState_rx_text_message_MSGTYPE MeshPacket
|
#define DeviceState_rx_text_message_MSGTYPE MeshPacket
|
||||||
|
|
||||||
#define ChannelFile_FIELDLIST(X, a) \
|
#define ChannelFile_FIELDLIST(X, a) \
|
||||||
@ -103,7 +108,7 @@ extern const pb_msgdesc_t ChannelFile_msg;
|
|||||||
#define ChannelFile_fields &ChannelFile_msg
|
#define ChannelFile_fields &ChannelFile_msg
|
||||||
|
|
||||||
/* Maximum encoded size of messages (where known) */
|
/* Maximum encoded size of messages (where known) */
|
||||||
#define DeviceState_size 10991
|
#define DeviceState_size 11174
|
||||||
#define ChannelFile_size 832
|
#define ChannelFile_size 832
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -2,9 +2,13 @@
|
|||||||
#include "MeshService.h"
|
#include "MeshService.h"
|
||||||
#include "Router.h"
|
#include "Router.h"
|
||||||
#include "configuration.h"
|
#include "configuration.h"
|
||||||
|
#include "NodeDB.h"
|
||||||
|
|
||||||
|
|
||||||
GroupPlugin *groupPlugin;
|
GroupPlugin *groupPlugin;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GroupPlugin::GroupPlugin()
|
GroupPlugin::GroupPlugin()
|
||||||
: ProtobufPlugin("group", PortNum_GROUP_APP, GroupInfo_fields), concurrency::OSThread("GroupPlugin")
|
: ProtobufPlugin("group", PortNum_GROUP_APP, GroupInfo_fields), concurrency::OSThread("GroupPlugin")
|
||||||
{
|
{
|
||||||
@ -14,7 +18,7 @@ GroupPlugin::GroupPlugin()
|
|||||||
|
|
||||||
bool GroupPlugin::handleReceivedProtobuf(const MeshPacket &mp, GroupInfo *pptr)
|
bool GroupPlugin::handleReceivedProtobuf(const MeshPacket &mp, GroupInfo *pptr)
|
||||||
{
|
{
|
||||||
auto p = *pptr;
|
//auto p = *pptr;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -23,7 +27,9 @@ bool GroupPlugin::handleReceivedProtobuf(const MeshPacket &mp, GroupInfo *pptr)
|
|||||||
|
|
||||||
MeshPacket *GroupPlugin::allocReply()
|
MeshPacket *GroupPlugin::allocReply()
|
||||||
{
|
{
|
||||||
return allocDataProtobuf(p);
|
GroupInfo gi = GroupInfo_init_default; // Start with an empty structure
|
||||||
|
|
||||||
|
return allocDataProtobuf(gi);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t GroupPlugin::runOnce()
|
int32_t GroupPlugin::runOnce()
|
||||||
@ -31,7 +37,7 @@ int32_t GroupPlugin::runOnce()
|
|||||||
NodeInfo *node = nodeDB.getNode(nodeDB.getNodeNum());
|
NodeInfo *node = nodeDB.getNode(nodeDB.getNodeNum());
|
||||||
|
|
||||||
|
|
||||||
|
//ourGroupInfo.group[0][1] = "a";
|
||||||
|
|
||||||
return 5000; // to save power only wake for our callback occasionally
|
return 5000; // to save power only wake for our callback occasionally
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/**
|
/**
|
||||||
* Position plugin for sending/receiving positions into the mesh
|
* Position plugin for sending/receiving positions into the mesh
|
||||||
*/
|
*/
|
||||||
class GroupPlugin : private concurrency::OSThread, public ProtobufPlugin<GroupInfo>
|
class GroupPlugin : public ProtobufPlugin<GroupInfo>, private concurrency::OSThread
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GroupPlugin();
|
GroupPlugin();
|
||||||
|
Loading…
Reference in New Issue
Block a user