Add JP_STRICT mode: enforce MAX_TEXT_LEN for ARIB STD-T108 compliance

JP_STRICT limits MAX_TEXT_LEN to 1*CIPHER_BLOCK_SIZE (16 bytes) to keep
TX time under 4 seconds on SF12/BW125/CR4-8 (Japan LoRa settings).

SF12/BW125/CR4-8 airtime:
  60 bytes total packet = ~3809ms (within 4s limit)
  packet overhead ~44 bytes, leaving 16 bytes for text payload

Enabled only for WioTrackerL1 and RAK_WisMesh_Tag builds.
This commit is contained in:
jirogit 2026-03-24 22:06:14 -07:00
parent 52b9d877a6
commit 309a090958
3 changed files with 11 additions and 2 deletions

View file

@ -5,7 +5,14 @@
#include <helpers/AdvertDataHelpers.h>
#include <helpers/TxtDataHelpers.h>
#define MAX_TEXT_LEN (10*CIPHER_BLOCK_SIZE) // must be LESS than (MAX_PACKET_PAYLOAD - 4 - CIPHER_MAC_SIZE - 1)
// JP_STRICT: limit MAX_TEXT_LEN to keep TX time under 4s (ARIB STD-T108)
// SF12/BW125/CR4-8: 60 bytes total packet = ~3809ms, overhead ~44 bytes
// leaving 16 bytes (1*CIPHER_BLOCK_SIZE) for text payload
#ifdef JP_STRICT
#define MAX_TEXT_LEN (1*CIPHER_BLOCK_SIZE) // ~16 chars, TX <= 4s for JP
#else
#define MAX_TEXT_LEN (10*CIPHER_BLOCK_SIZE) // must be LESS than (MAX_PACKET_PAYLOAD - 4 - CIPHER_MAC_SIZE - 1)
#endif
#include "ContactInfo.h"

View file

@ -25,6 +25,7 @@ build_flags = ${nrf52_base.build_flags}
-D PIN_BUZZER=21
-D PIN_BOARD_SDA=PIN_WIRE_SDA
-D PIN_BOARD_SCL=PIN_WIRE_SCL
-D JP_STRICT
build_src_filter = ${nrf52_base.build_src_filter}
+<../variants/rak_wismesh_tag>
+<helpers/ui/MomentaryButton.cpp>
@ -118,4 +119,4 @@ build_flags =
; -D MESH_PACKET_LOGGING=1
-D MESH_DEBUG=1
build_src_filter = ${rak4631.build_src_filter}
+<../examples/simple_sensor>
+<../examples/simple_sensor>

View file

@ -16,6 +16,7 @@ build_flags = ${nrf52_base.build_flags}
-D SX126X_RX_BOOSTED_GAIN=1
-D PIN_OLED_RESET=-1
-D GPS_BAUD_RATE=9600
-D JP_STRICT
build_src_filter = ${nrf52_base.build_src_filter}
+<WioTrackerL1Board.cpp>
+<../variants/wio-tracker-l1>