boot adverts are now zero hop instead of flood
This commit is contained in:
@@ -854,10 +854,14 @@ bool MyMesh::formatFileSystem() {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyMesh::sendSelfAdvertisement(int delay_millis) {
|
void MyMesh::sendSelfAdvertisement(int delay_millis, bool flood) {
|
||||||
mesh::Packet *pkt = createSelfAdvert();
|
mesh::Packet *pkt = createSelfAdvert();
|
||||||
if (pkt) {
|
if (pkt) {
|
||||||
sendFlood(pkt, delay_millis);
|
if (flood) {
|
||||||
|
sendFlood(pkt, delay_millis);
|
||||||
|
} else {
|
||||||
|
sendZeroHop(pkt, delay_millis);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
MESH_DEBUG_PRINTLN("ERROR: unable to create advertisement packet!");
|
MESH_DEBUG_PRINTLN("ERROR: unable to create advertisement packet!");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -187,7 +187,7 @@ public:
|
|||||||
|
|
||||||
void applyTempRadioParams(float freq, float bw, uint8_t sf, uint8_t cr, int timeout_mins) override;
|
void applyTempRadioParams(float freq, float bw, uint8_t sf, uint8_t cr, int timeout_mins) override;
|
||||||
bool formatFileSystem() override;
|
bool formatFileSystem() override;
|
||||||
void sendSelfAdvertisement(int delay_millis) override;
|
void sendSelfAdvertisement(int delay_millis, bool flood) override;
|
||||||
void updateAdvertTimer() override;
|
void updateAdvertTimer() override;
|
||||||
void updateFloodAdvertTimer() override;
|
void updateFloodAdvertTimer() override;
|
||||||
|
|
||||||
|
|||||||
@@ -87,8 +87,8 @@ void setup() {
|
|||||||
ui_task.begin(the_mesh.getNodePrefs(), FIRMWARE_BUILD_DATE, FIRMWARE_VERSION);
|
ui_task.begin(the_mesh.getNodePrefs(), FIRMWARE_BUILD_DATE, FIRMWARE_VERSION);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// send out initial Advertisement to the mesh
|
// send out initial zero hop Advertisement to the mesh
|
||||||
the_mesh.sendSelfAdvertisement(16000);
|
the_mesh.sendSelfAdvertisement(16000, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
|||||||
@@ -675,10 +675,14 @@ bool MyMesh::formatFileSystem() {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyMesh::sendSelfAdvertisement(int delay_millis) {
|
void MyMesh::sendSelfAdvertisement(int delay_millis, bool flood) {
|
||||||
mesh::Packet *pkt = createSelfAdvert();
|
mesh::Packet *pkt = createSelfAdvert();
|
||||||
if (pkt) {
|
if (pkt) {
|
||||||
sendFlood(pkt, delay_millis);
|
if (flood) {
|
||||||
|
sendFlood(pkt, delay_millis);
|
||||||
|
} else {
|
||||||
|
sendZeroHop(pkt, delay_millis);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
MESH_DEBUG_PRINTLN("ERROR: unable to create advertisement packet!");
|
MESH_DEBUG_PRINTLN("ERROR: unable to create advertisement packet!");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ public:
|
|||||||
|
|
||||||
void applyTempRadioParams(float freq, float bw, uint8_t sf, uint8_t cr, int timeout_mins) override;
|
void applyTempRadioParams(float freq, float bw, uint8_t sf, uint8_t cr, int timeout_mins) override;
|
||||||
bool formatFileSystem() override;
|
bool formatFileSystem() override;
|
||||||
void sendSelfAdvertisement(int delay_millis) override;
|
void sendSelfAdvertisement(int delay_millis, bool flood) override;
|
||||||
void updateAdvertTimer() override;
|
void updateAdvertTimer() override;
|
||||||
void updateFloodAdvertTimer() override;
|
void updateFloodAdvertTimer() override;
|
||||||
|
|
||||||
|
|||||||
@@ -76,8 +76,8 @@ void setup() {
|
|||||||
ui_task.begin(the_mesh.getNodePrefs(), FIRMWARE_BUILD_DATE, FIRMWARE_VERSION);
|
ui_task.begin(the_mesh.getNodePrefs(), FIRMWARE_BUILD_DATE, FIRMWARE_VERSION);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// send out initial Advertisement to the mesh
|
// send out initial zero hop Advertisement to the mesh
|
||||||
the_mesh.sendSelfAdvertisement(16000);
|
the_mesh.sendSelfAdvertisement(16000, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
|||||||
@@ -787,10 +787,14 @@ void SensorMesh::applyTempRadioParams(float freq, float bw, uint8_t sf, uint8_t
|
|||||||
revert_radio_at = futureMillis(2000 + timeout_mins*60*1000); // schedule when to revert radio params
|
revert_radio_at = futureMillis(2000 + timeout_mins*60*1000); // schedule when to revert radio params
|
||||||
}
|
}
|
||||||
|
|
||||||
void SensorMesh::sendSelfAdvertisement(int delay_millis) {
|
void SensorMesh::sendSelfAdvertisement(int delay_millis, bool flood) {
|
||||||
mesh::Packet* pkt = createSelfAdvert();
|
mesh::Packet* pkt = createSelfAdvert();
|
||||||
if (pkt) {
|
if (pkt) {
|
||||||
sendFlood(pkt, delay_millis);
|
if (flood) {
|
||||||
|
sendFlood(pkt, delay_millis);
|
||||||
|
} else {
|
||||||
|
sendZeroHop(pkt, delay_millis);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
MESH_DEBUG_PRINTLN("ERROR: unable to create advertisement packet!");
|
MESH_DEBUG_PRINTLN("ERROR: unable to create advertisement packet!");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public:
|
|||||||
NodePrefs* getNodePrefs() { return &_prefs; }
|
NodePrefs* getNodePrefs() { return &_prefs; }
|
||||||
void savePrefs() override { _cli.savePrefs(_fs); }
|
void savePrefs() override { _cli.savePrefs(_fs); }
|
||||||
bool formatFileSystem() override;
|
bool formatFileSystem() override;
|
||||||
void sendSelfAdvertisement(int delay_millis) override;
|
void sendSelfAdvertisement(int delay_millis, bool flood) override;
|
||||||
void updateAdvertTimer() override;
|
void updateAdvertTimer() override;
|
||||||
void updateFloodAdvertTimer() override;
|
void updateFloodAdvertTimer() override;
|
||||||
void setLoggingOn(bool enable) override { }
|
void setLoggingOn(bool enable) override { }
|
||||||
|
|||||||
@@ -110,8 +110,8 @@ void setup() {
|
|||||||
ui_task.begin(the_mesh.getNodePrefs(), FIRMWARE_BUILD_DATE, FIRMWARE_VERSION);
|
ui_task.begin(the_mesh.getNodePrefs(), FIRMWARE_BUILD_DATE, FIRMWARE_VERSION);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// send out initial Advertisement to the mesh
|
// send out initial zero hop Advertisement to the mesh
|
||||||
the_mesh.sendSelfAdvertisement(16000);
|
the_mesh.sendSelfAdvertisement(16000, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
|||||||
@@ -197,7 +197,8 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch
|
|||||||
if (memcmp(command, "reboot", 6) == 0) {
|
if (memcmp(command, "reboot", 6) == 0) {
|
||||||
_board->reboot(); // doesn't return
|
_board->reboot(); // doesn't return
|
||||||
} else if (memcmp(command, "advert", 6) == 0) {
|
} else if (memcmp(command, "advert", 6) == 0) {
|
||||||
_callbacks->sendSelfAdvertisement(1500); // longer delay, give CLI response time to be sent first
|
// send flood advert
|
||||||
|
_callbacks->sendSelfAdvertisement(1500, true); // longer delay, give CLI response time to be sent first
|
||||||
strcpy(reply, "OK - Advert sent");
|
strcpy(reply, "OK - Advert sent");
|
||||||
} else if (memcmp(command, "clock sync", 10) == 0) {
|
} else if (memcmp(command, "clock sync", 10) == 0) {
|
||||||
uint32_t curr = getRTCClock()->getCurrentTime();
|
uint32_t curr = getRTCClock()->getCurrentTime();
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ public:
|
|||||||
virtual const char* getBuildDate() = 0;
|
virtual const char* getBuildDate() = 0;
|
||||||
virtual const char* getRole() = 0;
|
virtual const char* getRole() = 0;
|
||||||
virtual bool formatFileSystem() = 0;
|
virtual bool formatFileSystem() = 0;
|
||||||
virtual void sendSelfAdvertisement(int delay_millis) = 0;
|
virtual void sendSelfAdvertisement(int delay_millis, bool flood) = 0;
|
||||||
virtual void updateAdvertTimer() = 0;
|
virtual void updateAdvertTimer() = 0;
|
||||||
virtual void updateFloodAdvertTimer() = 0;
|
virtual void updateFloodAdvertTimer() = 0;
|
||||||
virtual void setLoggingOn(bool enable) = 0;
|
virtual void setLoggingOn(bool enable) = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user