Refactor LoRa protocol to batch+ack with ACK-based time bootstrap
This commit is contained in:
@@ -7,21 +7,11 @@ enum class DeviceRole : uint8_t {
|
||||
Receiver = 1
|
||||
};
|
||||
|
||||
enum class PayloadType : uint8_t {
|
||||
MeterData = 0,
|
||||
TestCode = 1,
|
||||
TimeSync = 2,
|
||||
MeterBatch = 3,
|
||||
Ack = 4
|
||||
};
|
||||
|
||||
enum class BatchRetryPolicy : uint8_t {
|
||||
Keep = 0,
|
||||
Drop = 1
|
||||
};
|
||||
|
||||
constexpr uint8_t PROTOCOL_VERSION = 1;
|
||||
|
||||
// Pin definitions
|
||||
constexpr uint8_t PIN_LORA_SCK = 5;
|
||||
constexpr uint8_t PIN_LORA_MISO = 19;
|
||||
@@ -57,17 +47,7 @@ constexpr uint8_t LORA_PREAMBLE_LEN = 8;
|
||||
|
||||
// Timing
|
||||
constexpr uint32_t SENDER_WAKE_INTERVAL_SEC = 30;
|
||||
constexpr uint32_t TIME_SYNC_INTERVAL_SEC = 60;
|
||||
constexpr uint32_t TIME_SYNC_SLOW_INTERVAL_SEC = 3600;
|
||||
constexpr uint32_t TIME_SYNC_FAST_WINDOW_MS = 10UL * 60UL * 1000UL;
|
||||
constexpr uint32_t SENDER_TIMESYNC_WINDOW_MS = 300;
|
||||
constexpr uint32_t SENDER_TIMESYNC_CHECK_SEC_FAST = 60;
|
||||
constexpr uint32_t SENDER_TIMESYNC_CHECK_SEC_SLOW = 3600;
|
||||
constexpr uint32_t TIME_SYNC_DRIFT_THRESHOLD_SEC = 10;
|
||||
constexpr uint32_t TIME_SYNC_BURST_INTERVAL_MS = 10000;
|
||||
constexpr uint32_t TIME_SYNC_BURST_DURATION_MS = 10UL * 60UL * 1000UL;
|
||||
constexpr uint32_t TIME_SYNC_ERROR_TIMEOUT_MS = 2UL * 24UL * 60UL * 60UL * 1000UL;
|
||||
constexpr bool ENABLE_DS3231 = true;
|
||||
constexpr uint32_t SYNC_REQUEST_INTERVAL_MS = 15000;
|
||||
constexpr uint32_t OLED_PAGE_INTERVAL_MS = 4000;
|
||||
constexpr uint32_t OLED_AUTO_OFF_MS = 10UL * 60UL * 1000UL;
|
||||
constexpr uint32_t SENDER_OLED_READ_MS = 10000;
|
||||
@@ -107,6 +87,7 @@ constexpr const char *WEB_AUTH_DEFAULT_USER = "admin";
|
||||
constexpr const char *WEB_AUTH_DEFAULT_PASS = "admin";
|
||||
|
||||
constexpr uint8_t NUM_SENDERS = 1;
|
||||
constexpr uint32_t MIN_ACCEPTED_EPOCH_UTC = 1769904000UL; // 2026-02-01 00:00:00 UTC
|
||||
inline constexpr uint16_t EXPECTED_SENDER_IDS[NUM_SENDERS] = {
|
||||
0xF19C //433mhz sender
|
||||
//0x7EB4 //868mhz sender
|
||||
|
||||
Reference in New Issue
Block a user