Remove Cascadia power saving default
This commit is contained in:
1 parent
01f43b12c9
commit
fec6ddbfa5
5 files changed
+48
-6
No files matched your search
@@ -446,7 +446,6 @@ prompt_for_cascadia_profile_enable() {
|
||||
echo " - multi.acks: 1"
|
||||
echo " - path.hash.mode: 2"
|
||||
echo " - loop.detect: minimal"
|
||||
echo " - powersaving: on"
|
||||
prompt_on_off_choice "Enable Cascadia profile overrides" "on"
|
||||
if [ "$MENU_CHOICE" == "on" ]; then
|
||||
FIRMWARE_PROFILE_OVERRIDE="cascadia"
|
||||
@@ -958,7 +957,7 @@ apply_radio_overrides() {
|
||||
apply_firmware_profile_overrides() {
|
||||
case "${FIRMWARE_PROFILE_OVERRIDE,,}" in
|
||||
cascadia)
|
||||
export PLATFORMIO_BUILD_FLAGS="${PLATFORMIO_BUILD_FLAGS} -DCASCADIA_PROFILE=1 -DDEFAULT_RX_DELAY_BASE=1.0f -DDEFAULT_LOOP_DETECT=1 -DDEFAULT_POWERSAVING_ENABLED=1 -DDEFAULT_AGC_RESET_INTERVAL=2 -DDEFAULT_ADVERT_INTERVAL=0 -DDEFAULT_FLOOD_ADVERT_INTERVAL=83 -DDEFAULT_MULTI_ACKS=1 -DDEFAULT_PATH_HASH_MODE=2"
|
||||
export PLATFORMIO_BUILD_FLAGS="${PLATFORMIO_BUILD_FLAGS} -DCASCADIA_PROFILE=1 -DDEFAULT_RX_DELAY_BASE=1.0f -DDEFAULT_LOOP_DETECT=1 -DDEFAULT_AGC_RESET_INTERVAL=2 -DDEFAULT_ADVERT_INTERVAL=0 -DDEFAULT_FLOOD_ADVERT_INTERVAL=83 -DDEFAULT_MULTI_ACKS=1 -DDEFAULT_PATH_HASH_MODE=2"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
@@ -498,7 +498,7 @@ This document provides an overview of CLI commands that can be sent to MeshCore
|
||||
- `on`: enable power saving
|
||||
- `off`: disable power saving
|
||||
|
||||
**Default:** `on`
|
||||
**Default:** `off`
|
||||
|
||||
**Note:** When enabled, device enters sleep mode between radio transmissions
|
||||
|
||||
|
||||
@@ -2143,7 +2143,6 @@ void MyMesh::begin(FILESYSTEM *fs) {
|
||||
_prefs.multi_acks = DEFAULT_MULTI_ACKS;
|
||||
_prefs.path_hash_mode = DEFAULT_PATH_HASH_MODE;
|
||||
_prefs.loop_detect = DEFAULT_LOOP_DETECT;
|
||||
_prefs.powersaving_enabled = DEFAULT_POWERSAVING_ENABLED;
|
||||
#endif
|
||||
acl.load(_fs, self_id);
|
||||
// TODO: key_store.begin();
|
||||
@@ -2208,6 +2207,34 @@ void MyMesh::sendFloodScoped(const TransportKey& scope, mesh::Packet* pkt, uint3
|
||||
}
|
||||
}
|
||||
|
||||
void MyMesh::sendFloodScopedWithSelfPath(const TransportKey& scope, mesh::Packet* pkt,
|
||||
uint32_t delay_millis, uint8_t path_hash_size) {
|
||||
if (pkt == NULL) {
|
||||
return;
|
||||
}
|
||||
if (path_hash_size == 0 || path_hash_size > MAX_ROUTE_HASH_BYTES) {
|
||||
MESH_DEBUG_PRINTLN("%s MyMesh::sendFloodScopedWithSelfPath(): invalid path_hash_size", getLogDateTime());
|
||||
return;
|
||||
}
|
||||
|
||||
pkt->header &= ~PH_ROUTE_MASK;
|
||||
if (scope.isNull()) {
|
||||
pkt->header |= ROUTE_TYPE_FLOOD;
|
||||
} else {
|
||||
uint16_t codes[2];
|
||||
codes[0] = scope.calcTransportCode(pkt);
|
||||
codes[1] = 0;
|
||||
pkt->header |= ROUTE_TYPE_TRANSPORT_FLOOD;
|
||||
pkt->transport_codes[0] = codes[0];
|
||||
pkt->transport_codes[1] = codes[1];
|
||||
}
|
||||
|
||||
pkt->setPathHashSizeAndCount(path_hash_size, 1);
|
||||
self_id.copyHashTo(pkt->path, path_hash_size);
|
||||
getTables()->markSent(pkt);
|
||||
sendPacket(pkt, 1, delay_millis);
|
||||
}
|
||||
|
||||
bool MyMesh::sendRepeatersFloodText(const char* text) {
|
||||
if (text == NULL || *text == 0) return false;
|
||||
|
||||
@@ -2223,8 +2250,15 @@ bool MyMesh::sendRepeatersFloodText(const char* text) {
|
||||
|
||||
const size_t max_data_len = MAX_PACKET_PAYLOAD - CIPHER_BLOCK_SIZE;
|
||||
const size_t prefix_cap = max_data_len > 5 ? max_data_len - 5 + 1 : 0;
|
||||
char sender_name[sizeof(_prefs.node_name)];
|
||||
StrHelper::strncpy(sender_name, _prefs.node_name, sizeof(sender_name));
|
||||
for (char* p = sender_name; *p; p++) {
|
||||
if (*p == ':') {
|
||||
*p = ';';
|
||||
}
|
||||
}
|
||||
int prefix_written = prefix_cap > 0
|
||||
? snprintf((char*)&temp[5], prefix_cap, "%s: ", _prefs.node_name)
|
||||
? snprintf((char*)&temp[5], prefix_cap, "%s: ", sender_name)
|
||||
: -1;
|
||||
if (prefix_written < 0) {
|
||||
return false;
|
||||
@@ -2247,7 +2281,7 @@ bool MyMesh::sendRepeatersFloodText(const char* text) {
|
||||
return false;
|
||||
}
|
||||
|
||||
sendFloodScoped(default_scope, pkt, 0, _prefs.path_hash_mode + 1);
|
||||
sendFloodScopedWithSelfPath(default_scope, pkt, 0, _prefs.path_hash_mode + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -242,6 +242,8 @@ protected:
|
||||
const uint8_t* path, uint8_t path_len,
|
||||
const uint8_t* alt_path, uint8_t alt_path_len,
|
||||
uint32_t delay_millis);
|
||||
void sendFloodScopedWithSelfPath(const TransportKey& scope, mesh::Packet* pkt,
|
||||
uint32_t delay_millis, uint8_t path_hash_size);
|
||||
|
||||
public:
|
||||
MyMesh(mesh::MainBoard& board, mesh::Radio& radio, mesh::MillisecondClock& ms, mesh::RNG& rng, mesh::RTCClock& rtc, mesh::MeshTables& tables);
|
||||
|
||||
@@ -73,6 +73,13 @@ public:
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(ARDUINO_USB_CDC_ON_BOOT) && ARDUINO_USB_CDC_ON_BOOT
|
||||
if (Serial) {
|
||||
delay(1);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Set GPIO wakeup
|
||||
gpio_num_t wakeupPin = (gpio_num_t)getIRQGpio();
|
||||
|
||||
|
||||
Reference in new issue
Block a user