mirror of
https://github.com/portapack-mayhem/mayhem-firmware.git
synced 2026-09-08 07:49:04 +00:00
FLEX TX: pager transmitter with long address support (1600/2FSK) (#3132)
External app for encoding and transmitting FLEX pager frames at 1600bps/2FSK. Supports short (1-1,933,312) and long (2,101,249- 4,297,068,542) addresses across all encoding sets (1-2, 1-3/1-4, 2-3). Message types: - Alphanumeric (vector type 5): 7-bit chars, signature, K checksum - Standard Numeric (vector type 3): 4-bit BCD, K checksum - Short/tone-only (vector type 2): space-filled BCD in vector word - Short numeric (vector type 2): BCD digits in vector word (3/8 digits) Frame structure: - FIW (Frame Information Word): cycle, frame, roaming flag - BIW (Block Information Word) support with up to 3 extra words: Date, Time, SysInfo/timezone+DST, SSID1 (Simulcast System ID: Local ID + Coverage Zone), SSID2 (Country Code) - BCH(31,21) encoding with bit reversal, block interleaving - Two frames per TX: message R=1 (new) then R=0 (duplicate) - Message number N (0-63): random seed from RTC, auto-increments - ERS (Emergency Re-Sync) burst: configurable N x 42-cycle bursts with 8-cycle preamble per frame UI: - Capcode info line: address type, computed frame/phase (reference) - TX status: step counter with ERS/frame progress - Set params view: Date/Time/TZ/DST, LocID/CovZone, CountryCode, Roaming, message number, ERS count - Date/time auto-populated from RTC with calendar-equivalent year mapping for years beyond 2025 (per ARIB STD-43A) - Year validation with equiv-year popup for out-of-range values - Capcode and BIW flags persisted via SettingsManager Serial interface: - sendflex <capcode> <type> <msglen> + payload - Types: 0=alpha, 1=numeric, 2=short/tone, 3=short numeric - FlexTosendMessage (ID 103) for serial-to-app communication - App must be open to receive serial commands
This commit is contained in:
+7
@@ -108,6 +108,7 @@ MEMORY
|
||||
ram_external_app_p25_tx (rwx) : org = 0xAE030000, len = 32k
|
||||
ram_external_app_two_tone_pager (rwx) : org = 0xAE040000, len = 32k
|
||||
ram_external_app_two_tone_rx (rwx) : org = 0xAE050000, len = 32k
|
||||
ram_external_app_flex_tx (rwx) : org = 0xAE060000, len = 32k
|
||||
}
|
||||
|
||||
SECTIONS
|
||||
@@ -621,4 +622,10 @@ SECTIONS
|
||||
KEEP(*(.external_app.app_two_tone_rx.application_information));
|
||||
*(*ui*external_app*two_tone_rx*);
|
||||
} > ram_external_app_two_tone_rx
|
||||
|
||||
.external_app_flex_tx : ALIGN(4) SUBALIGN(4)
|
||||
{
|
||||
KEEP(*(.external_app.app_flex_tx.application_information));
|
||||
*(*ui*external_app*flex_tx*);
|
||||
} > ram_external_app_flex_tx
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user