Merge upstream MeshCore v1.18.0 (tag repeater-v1.18.0) into main
Разрешённые конфликты (12 файлов, из них 4 companion взяты из upstream целиком): - examples/companion_radio/*: взят upstream, companion в форке не собирается - examples/simple_repeater/MyMesh.cpp: убрана наша интеграция вентилятора (setFanPostTxHoldMs/setFanMode) — upstream 1.18.0 сам грузит настройки вентилятора через attachDynamicPrefs, а его CLI (get fan, set fan auto|on|off, set fan.lo/hi) доступен через board.handleCommand из CommonCLI; удалён наш дублирующий блок get fan/set fan. Оставлена наша сигнатура format*StatsReply(char*, size_t) - examples/simple_repeater/MyMesh.h: оставлены наши WebSensorSnapshot/BlacklistEntry/ ChanNameFilter и getCLI() (нужен мастеру настройки), добавлен upstream isHiddenNode(); FIRMWARE_VERSION по умолчанию — v1.18.0 - src/helpers/CommonCLI.h: оставлены наши FanPrefs (совместимость NVS) и добавлен upstream DynamicConfigSerializer custom (getCustom() нужен attachDynamicPrefs) - src/helpers/ESP32Board.h: время восстанавливается сначала из NVS (наша надстройка, переживает отключение питания), затем из RTC-памяти upstream, иначе опорная дата; deep sleep по-прежнему не трогаем - src/helpers/sensors/EnvironmentSensorManager.cpp: взята логика upstream (detected[], один драйвер на тип), поверх возвращено определение адреса платой (boardDetectedI2CSensorAddress) - variants/lilygo_tbeam_1w/*: взят upstream (задача вентилятора, NTC, гистерезис, CLI и сохранение настроек), наши правки перенесены как делегирование его API - README.md: оставлен наш
This commit is contained in:
commit
80d36d20bc
200 files changed
+7197
-1571
No files matched your search
@@ -443,7 +443,7 @@ void MyMesh::onPeerDataRecv(mesh::Packet *packet, uint8_t type, int sender_idx,
|
||||
memcpy(&sender_timestamp, data, 4); // timestamp (by sender's RTC clock - which could be wrong)
|
||||
uint8_t flags = (data[4] >> 2); // message attempt number, and other flags
|
||||
|
||||
if (!(flags == TXT_TYPE_PLAIN || flags == TXT_TYPE_CLI_DATA)) {
|
||||
if (!(flags == TXT_TYPE_PLAIN || flags == TXT_TYPE_CLI_DATA || flags == TXT_TYPE_CLI_COMMAND)) {
|
||||
MESH_DEBUG_PRINTLN("onPeerDataRecv: unsupported command flags received: flags=%02x", (uint32_t)flags);
|
||||
} else if (sender_timestamp >= client->last_timestamp) { // prevent replay attacks, but send Acks for retries
|
||||
bool is_retry = (sender_timestamp == client->last_timestamp);
|
||||
@@ -463,7 +463,7 @@ void MyMesh::onPeerDataRecv(mesh::Packet *packet, uint8_t type, int sender_idx,
|
||||
|
||||
uint8_t temp[166];
|
||||
bool send_ack;
|
||||
if (flags == TXT_TYPE_CLI_DATA) {
|
||||
if (flags == TXT_TYPE_CLI_DATA || flags == TXT_TYPE_CLI_COMMAND) {
|
||||
if (client->isAdmin()) {
|
||||
if (is_retry) {
|
||||
temp[5] = 0; // no reply
|
||||
@@ -725,8 +725,8 @@ void MyMesh::begin(FILESYSTEM *fs) {
|
||||
radio_driver.setParams(_prefs.freq, _prefs.bw, _prefs.sf, _prefs.cr);
|
||||
radio_driver.setTxPower(_prefs.tx_power_dbm);
|
||||
radio_driver.setRxBoostedGainMode(_prefs.rx_boosted_gain);
|
||||
board.setLoRaFemLnaEnabled(_prefs.radio_fem_rxgain);
|
||||
board.setLoRaFemPaGainEnabled(_prefs.radio_fem_txgain);
|
||||
|
||||
board.attachDynamicPrefs(_prefs.getCustom());
|
||||
|
||||
updateAdvertTimer();
|
||||
updateFloodAdvertTimer();
|
||||
@@ -987,6 +987,8 @@ void MyMesh::handleCommand(uint32_t sender_timestamp, char *command, char *reply
|
||||
addSystemPost(msg);
|
||||
snprintf(reply, MAX_POST_TEXT_LEN, "OK");
|
||||
}
|
||||
} else if (memcmp(command, "set repeat on", 13) == 0) {
|
||||
strcpy(reply, "ERR - repeat now deprecated");
|
||||
} else{
|
||||
_cli.handleCommand(sender_timestamp, command, reply); // common CLI commands
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user