* companion radio: RESP_CODE_END_OF_CONTACTS change

This commit is contained in:
Scott Powell 2025-02-01 17:04:26 +11:00
parent ef45cb3ae0
commit 5523daad9d
2 changed files with 8 additions and 2 deletions

View file

@ -132,6 +132,7 @@ class MyMesh : public BaseChatMesh {
unsigned long last_msg_sent; unsigned long last_msg_sent;
ContactsIterator _iter; ContactsIterator _iter;
uint32_t _iter_filter_since; uint32_t _iter_filter_since;
uint32_t _most_recent_lastmod;
bool _iter_started; bool _iter_started;
uint8_t cmd_frame[MAX_FRAME_SIZE+1]; uint8_t cmd_frame[MAX_FRAME_SIZE+1];
uint8_t out_frame[MAX_FRAME_SIZE+1]; uint8_t out_frame[MAX_FRAME_SIZE+1];
@ -513,6 +514,7 @@ public:
// start iterator // start iterator
_iter = startContactsIterator(); _iter = startContactsIterator();
_iter_started = true; _iter_started = true;
_most_recent_lastmod = 0;
} }
} else if (cmd_frame[0] == CMD_SET_ADVERT_NAME && len >= 2) { } else if (cmd_frame[0] == CMD_SET_ADVERT_NAME && len >= 2) {
int nlen = len - 1; int nlen = len - 1;
@ -610,10 +612,14 @@ public:
if (_iter.hasNext(this, contact)) { if (_iter.hasNext(this, contact)) {
if (contact.lastmod > _iter_filter_since) { // apply the 'since' filter if (contact.lastmod > _iter_filter_since) { // apply the 'since' filter
writeContactRespFrame(RESP_CODE_CONTACT, contact); writeContactRespFrame(RESP_CODE_CONTACT, contact);
if (contact.lastmod > _most_recent_lastmod) {
_most_recent_lastmod = contact.lastmod; // save for the RESP_CODE_END_OF_CONTACTS frame
}
} }
} else { // EOF } else { // EOF
out_frame[0] = RESP_CODE_END_OF_CONTACTS; out_frame[0] = RESP_CODE_END_OF_CONTACTS;
_serial->writeFrame(out_frame, 1); memcpy(&out_frame[1], &_most_recent_lastmod, 4); // include the most recent lastmod, so app can update their 'since'
_serial->writeFrame(out_frame, 5);
_iter_started = false; _iter_started = false;
} }
} }

View file

@ -19,7 +19,7 @@
/* ------------------------------ Config -------------------------------- */ /* ------------------------------ Config -------------------------------- */
#define FIRMWARE_VER_TEXT "v2 (build: 31 Jan 2025)" #define FIRMWARE_VER_TEXT "v2 (build: 1 Feb 2025)"
#ifndef LORA_FREQ #ifndef LORA_FREQ
#define LORA_FREQ 915.0 #define LORA_FREQ 915.0