Skip to content

Commit c411ac4

Browse files
committed
advanced text message callback for dm
1 parent a7a40ad commit c411ac4

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

src/Meshtastic.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ bool mt_request_node_report(void (*callback)(mt_node_t *, mt_nr_progress_t));
7575
// Set the callback function that gets called when the node receives a text message.
7676
void set_text_message_callback(void (*callback)(uint32_t from, const char * text));
7777

78+
// Set the callback function that gets called when the node receives a text message.
79+
void set_adv_text_message_callback(void (*callback)(uint32_t from, uint32_t to, const char * text));
80+
7881
// Send a text message with *text* as payload, to a destination node (optional), on a certain channel (optional).
7982
bool mt_send_text(const char * text, uint32_t dest = BROADCAST_ADDR, uint8_t channel_index = 0);
8083

src/mt_protocol.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ uint32_t my_node_num = 0;
2424

2525
bool mt_debugging = false;
2626
void (*text_message_callback)(uint32_t from, const char* text) = NULL;
27+
void (*adv_text_message_callback)(uint32_t from, uint32_t to, const char* text) = NULL;
2728
void (*node_report_callback)(mt_node_t *, mt_nr_progress_t) = NULL;
2829
mt_node_t node;
2930

@@ -120,6 +121,10 @@ void set_text_message_callback(void (*callback)(uint32_t from, const char* text)
120121
text_message_callback = callback;
121122
}
122123

124+
void set_adv_text_message_callback(void (*callback)(uint32_t from, uint32_t to, const char* text)) {
125+
adv_text_message_callback = callback;
126+
}
127+
123128
bool handle_my_info(meshtastic_MyNodeInfo *myNodeInfo) {
124129
my_node_num = myNodeInfo->my_node_num;
125130
return true;
@@ -191,6 +196,8 @@ bool handle_mesh_packet(meshtastic_MeshPacket *meshPacket) {
191196
if (meshPacket->decoded.portnum == meshtastic_PortNum_TEXT_MESSAGE_APP) {
192197
if (text_message_callback != NULL)
193198
text_message_callback(meshPacket->from, (const char*)meshPacket->decoded.payload.bytes);
199+
if (adv_text_message_callback != NULL)
200+
adv_text_message_callback(meshPacket->from, meshPacket->to, (const char*)meshPacket->decoded.payload.bytes);
194201
} else {
195202
// TODO handle other portnums
196203
return false;

0 commit comments

Comments
 (0)