mirror of
https://github.com/pelgraine/Meck.git
synced 2026-03-28 17:42:44 +01:00
moved nrf sdk headers to ./lib/ and added Repeater envs for t114 & t-echo
This commit is contained in:
@@ -84,6 +84,14 @@
|
|||||||
#include <helpers/nrf52/RAK4631Board.h>
|
#include <helpers/nrf52/RAK4631Board.h>
|
||||||
#include <helpers/CustomSX1262Wrapper.h>
|
#include <helpers/CustomSX1262Wrapper.h>
|
||||||
static RAK4631Board board;
|
static RAK4631Board board;
|
||||||
|
#elif defined(HELTEC_T114)
|
||||||
|
#include <helpers/nrf52/T114Board.h>
|
||||||
|
#include <helpers/CustomSX1262Wrapper.h>
|
||||||
|
static T114Board board;
|
||||||
|
#elif defined(LILYGO_TECHO)
|
||||||
|
#include <helpers/nrf52/TechoBoard.h>
|
||||||
|
#include <helpers/CustomSX1262Wrapper.h>
|
||||||
|
static TechoBoard board;
|
||||||
#else
|
#else
|
||||||
#error "need to provide a 'board' object"
|
#error "need to provide a 'board' object"
|
||||||
#endif
|
#endif
|
||||||
@@ -165,7 +173,7 @@ class MyMesh : public mesh::Mesh, public CommonCLICallbacks {
|
|||||||
return oldest;
|
return oldest;
|
||||||
}
|
}
|
||||||
|
|
||||||
int handleRequest(ClientInfo* sender, uint8_t* payload, size_t payload_len) {
|
int handleRequest(ClientInfo* sender, uint8_t* payload, size_t payload_len) {
|
||||||
uint32_t now = getRTCClock()->getCurrentTimeUnique();
|
uint32_t now = getRTCClock()->getCurrentTimeUnique();
|
||||||
memcpy(reply_data, &now, 4); // response packets always prefixed with timestamp
|
memcpy(reply_data, &now, 4); // response packets always prefixed with timestamp
|
||||||
|
|
||||||
@@ -226,7 +234,7 @@ protected:
|
|||||||
return !_prefs.disable_fwd;
|
return !_prefs.disable_fwd;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* getLogDateTime() override {
|
const char* getLogDateTime() override {
|
||||||
static char tmp[32];
|
static char tmp[32];
|
||||||
uint32_t now = getRTCClock()->getCurrentTime();
|
uint32_t now = getRTCClock()->getCurrentTime();
|
||||||
DateTime dt = DateTime(now);
|
DateTime dt = DateTime(now);
|
||||||
@@ -258,7 +266,7 @@ protected:
|
|||||||
File f = openAppend(PACKET_LOG_FILE);
|
File f = openAppend(PACKET_LOG_FILE);
|
||||||
if (f) {
|
if (f) {
|
||||||
f.print(getLogDateTime());
|
f.print(getLogDateTime());
|
||||||
f.printf(": TX, len=%d (type=%d, route=%s, payload_len=%d)",
|
f.printf(": TX, len=%d (type=%d, route=%s, payload_len=%d)",
|
||||||
len, pkt->getPayloadType(), pkt->isRouteDirect() ? "D" : "F", pkt->payload_len);
|
len, pkt->getPayloadType(), pkt->isRouteDirect() ? "D" : "F", pkt->payload_len);
|
||||||
|
|
||||||
if (pkt->getPayloadType() == PAYLOAD_TYPE_PATH || pkt->getPayloadType() == PAYLOAD_TYPE_REQ
|
if (pkt->getPayloadType() == PAYLOAD_TYPE_PATH || pkt->getPayloadType() == PAYLOAD_TYPE_REQ
|
||||||
@@ -276,7 +284,7 @@ protected:
|
|||||||
File f = openAppend(PACKET_LOG_FILE);
|
File f = openAppend(PACKET_LOG_FILE);
|
||||||
if (f) {
|
if (f) {
|
||||||
f.print(getLogDateTime());
|
f.print(getLogDateTime());
|
||||||
f.printf(": TX FAIL!, len=%d (type=%d, route=%s, payload_len=%d)\n",
|
f.printf(": TX FAIL!, len=%d (type=%d, route=%s, payload_len=%d)\n",
|
||||||
len, pkt->getPayloadType(), pkt->isRouteDirect() ? "D" : "F", pkt->payload_len);
|
len, pkt->getPayloadType(), pkt->isRouteDirect() ? "D" : "F", pkt->payload_len);
|
||||||
f.close();
|
f.close();
|
||||||
}
|
}
|
||||||
@@ -318,7 +326,7 @@ protected:
|
|||||||
auto client = putClient(sender); // add to known clients (if not already known)
|
auto client = putClient(sender); // add to known clients (if not already known)
|
||||||
if (timestamp <= client->last_timestamp) {
|
if (timestamp <= client->last_timestamp) {
|
||||||
MESH_DEBUG_PRINTLN("Possible login replay attack!");
|
MESH_DEBUG_PRINTLN("Possible login replay attack!");
|
||||||
return; // FATAL: client table is full -OR- replay attack
|
return; // FATAL: client table is full -OR- replay attack
|
||||||
}
|
}
|
||||||
|
|
||||||
MESH_DEBUG_PRINTLN("Login success!");
|
MESH_DEBUG_PRINTLN("Login success!");
|
||||||
@@ -389,7 +397,7 @@ protected:
|
|||||||
uint32_t timestamp;
|
uint32_t timestamp;
|
||||||
memcpy(×tamp, data, 4);
|
memcpy(×tamp, data, 4);
|
||||||
|
|
||||||
if (timestamp > client->last_timestamp) { // prevent replay attacks
|
if (timestamp > client->last_timestamp) { // prevent replay attacks
|
||||||
int reply_len = handleRequest(client, &data[4], len - 4);
|
int reply_len = handleRequest(client, &data[4], len - 4);
|
||||||
if (reply_len == 0) return; // invalid command
|
if (reply_len == 0) return; // invalid command
|
||||||
|
|
||||||
@@ -421,7 +429,7 @@ protected:
|
|||||||
|
|
||||||
if (!(flags == TXT_TYPE_PLAIN || flags == TXT_TYPE_CLI_DATA)) {
|
if (!(flags == TXT_TYPE_PLAIN || flags == TXT_TYPE_CLI_DATA)) {
|
||||||
MESH_DEBUG_PRINTLN("onPeerDataRecv: unsupported text type received: flags=%02x", (uint32_t)flags);
|
MESH_DEBUG_PRINTLN("onPeerDataRecv: unsupported text type received: flags=%02x", (uint32_t)flags);
|
||||||
} else if (sender_timestamp >= client->last_timestamp) { // prevent replay attacks
|
} else if (sender_timestamp >= client->last_timestamp) { // prevent replay attacks
|
||||||
bool is_retry = (sender_timestamp == client->last_timestamp);
|
bool is_retry = (sender_timestamp == client->last_timestamp);
|
||||||
client->last_timestamp = sender_timestamp;
|
client->last_timestamp = sender_timestamp;
|
||||||
client->last_activity = getRTCClock()->getCurrentTime();
|
client->last_activity = getRTCClock()->getCurrentTime();
|
||||||
@@ -626,7 +634,7 @@ SimpleMeshTables tables;
|
|||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
ESP32RTCClock fallback_clock;
|
ESP32RTCClock fallback_clock;
|
||||||
#else
|
#else
|
||||||
VolatileRTCClock fallback_clock;
|
VolatileRTCClock fallback_clock;
|
||||||
#endif
|
#endif
|
||||||
AutoDiscoverRTCClock rtc_clock(fallback_clock);
|
AutoDiscoverRTCClock rtc_clock(fallback_clock);
|
||||||
|
|
||||||
@@ -653,7 +661,7 @@ void setup() {
|
|||||||
#else
|
#else
|
||||||
float tcxo = 1.6f;
|
float tcxo = 1.6f;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DISPLAY_CLASS
|
#ifdef DISPLAY_CLASS
|
||||||
display.begin();
|
display.begin();
|
||||||
#endif
|
#endif
|
||||||
@@ -722,7 +730,7 @@ void loop() {
|
|||||||
int len = strlen(command);
|
int len = strlen(command);
|
||||||
while (Serial.available() && len < sizeof(command)-1) {
|
while (Serial.available() && len < sizeof(command)-1) {
|
||||||
char c = Serial.read();
|
char c = Serial.read();
|
||||||
if (c != '\n') {
|
if (c != '\n') {
|
||||||
command[len++] = c;
|
command[len++] = c;
|
||||||
command[len] = 0;
|
command[len] = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -628,8 +628,8 @@ extends = nrf52_base
|
|||||||
platform_packages = framework-arduinoadafruitnrf52
|
platform_packages = framework-arduinoadafruitnrf52
|
||||||
build_flags = ${nrf52_base.build_flags}
|
build_flags = ${nrf52_base.build_flags}
|
||||||
-I src/helpers/nrf52
|
-I src/helpers/nrf52
|
||||||
-I src/helpers/nrf52/s140_nrf52_7.3.0_API/include
|
-I lib/nrf52/s140_nrf52_7.3.0_API/include
|
||||||
-I src/helpers/nrf52/s140_nrf52_7.3.0_API/include/nrf52
|
-I lib/nrf52/s140_nrf52_7.3.0_API/include/nrf52
|
||||||
lib_ignore =
|
lib_ignore =
|
||||||
BluetoothOTA
|
BluetoothOTA
|
||||||
lvgl
|
lvgl
|
||||||
@@ -675,8 +675,8 @@ extends = nrf52_base
|
|||||||
platform_packages = framework-arduinoadafruitnrf52
|
platform_packages = framework-arduinoadafruitnrf52
|
||||||
build_flags = ${nrf52_base.build_flags}
|
build_flags = ${nrf52_base.build_flags}
|
||||||
-I src/helpers/nrf52
|
-I src/helpers/nrf52
|
||||||
-I src/helpers/nrf52/s140_nrf52_6.1.1_API/include
|
-I lib/nrf52/s140_nrf52_6.1.1_API/include
|
||||||
-I src/helpers/nrf52/s140_nrf52_6.1.1_API/include/nrf52
|
-I lib/nrf52/s140_nrf52_6.1.1_API/include/nrf52
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52_base.lib_deps}
|
${nrf52_base.lib_deps}
|
||||||
rweather/Crypto @ ^0.4.0
|
rweather/Crypto @ ^0.4.0
|
||||||
@@ -699,6 +699,18 @@ build_src_filter = ${nrf52840_t114.build_src_filter}
|
|||||||
debug_tool = jlink
|
debug_tool = jlink
|
||||||
upload_protocol = nrfutil
|
upload_protocol = nrfutil
|
||||||
|
|
||||||
|
[env:Heltec_t114_repeater]
|
||||||
|
extends = Heltec_t114
|
||||||
|
build_src_filter = ${Heltec_t114.build_src_filter} +<../examples/simple_repeater/main.cpp>
|
||||||
|
build_flags =
|
||||||
|
${Heltec_t114.build_flags}
|
||||||
|
-D ADVERT_NAME="\"Heltec_T114 Repeater\""
|
||||||
|
-D ADVERT_LAT=-37.0
|
||||||
|
-D ADVERT_LON=145.0
|
||||||
|
-D ADMIN_PASSWORD="\"password\""
|
||||||
|
; -D MESH_PACKET_LOGGING=1
|
||||||
|
; -D MESH_DEBUG=1
|
||||||
|
|
||||||
[env:Heltec_t114_companion_radio_ble]
|
[env:Heltec_t114_companion_radio_ble]
|
||||||
extends = Heltec_t114
|
extends = Heltec_t114
|
||||||
build_flags =
|
build_flags =
|
||||||
@@ -721,8 +733,8 @@ extends = nrf52_base
|
|||||||
platform_packages = framework-arduinoadafruitnrf52
|
platform_packages = framework-arduinoadafruitnrf52
|
||||||
build_flags = ${nrf52_base.build_flags}
|
build_flags = ${nrf52_base.build_flags}
|
||||||
-I src/helpers/nrf52
|
-I src/helpers/nrf52
|
||||||
-I src/helpers/nrf52/s140_nrf52_6.1.1_API/include
|
-I lib/nrf52/s140_nrf52_6.1.1_API/include
|
||||||
-I src/helpers/nrf52/s140_nrf52_6.1.1_API/include/nrf52
|
-I lib/nrf52/s140_nrf52_6.1.1_API/include/nrf52
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52_base.lib_deps}
|
${nrf52_base.lib_deps}
|
||||||
rweather/Crypto @ ^0.4.0
|
rweather/Crypto @ ^0.4.0
|
||||||
@@ -745,6 +757,18 @@ build_src_filter = ${nrf52840_techo.build_src_filter}
|
|||||||
debug_tool = jlink
|
debug_tool = jlink
|
||||||
upload_protocol = nrfutil
|
upload_protocol = nrfutil
|
||||||
|
|
||||||
|
[env:LilyGo_T-Echo_repeater]
|
||||||
|
extends = LilyGo_Techo
|
||||||
|
build_src_filter = ${LilyGo_Techo.build_src_filter} +<../examples/simple_repeater/main.cpp>
|
||||||
|
build_flags =
|
||||||
|
${LilyGo_Techo.build_flags}
|
||||||
|
-D ADVERT_NAME="\"T-Echo Repeater\""
|
||||||
|
-D ADVERT_LAT=-37.0
|
||||||
|
-D ADVERT_LON=145.0
|
||||||
|
-D ADMIN_PASSWORD="\"password\""
|
||||||
|
; -D MESH_PACKET_LOGGING=1
|
||||||
|
; -D MESH_DEBUG=1
|
||||||
|
|
||||||
[env:LilyGo_T-Echo_companion_radio_ble]
|
[env:LilyGo_T-Echo_companion_radio_ble]
|
||||||
extends = LilyGo_Techo
|
extends = LilyGo_Techo
|
||||||
build_flags =
|
build_flags =
|
||||||
|
|||||||
Reference in New Issue
Block a user