EPIRB TX Application (#3081)

* First step to epirb-tx app

* Next step to epirb_tx app

* Fixed merge

* EPIRB TX app progress

- Fixed UI
- Added automatic frame resend after delay
- Added load of beacons from EPIRB/BEACONS.TXT file

* First step to adding 121.5 MHz signal

* Refactored 121.5 signal generation code

* Added frequency change when switching from BPSK to AM

* Added checkbox for AM signal.

Added START/STOP button
Added AM frequency
First step to editor mode.

* Next step to frame editor

* Fixed location bits.

* Refactored code + fixed location

* Added location fields

* UI fixes + settings backup

Fixed lat/long display
Added send on change checkbox
Added settings backup
Fixed locator edition
Fixed BEACONS.TXT to move to Self test beacons.

* Update ui_epirb_tx.cpp

Fixed timeout reset

* Added national location protocol.

Added national location protocol.
Fixed send on change.

* UI fixes

Added country selection
Separated beacon protocol and beacon type selectors

* Standard protocol

Added standard protocol
Added internal checkbox

* Fixed fomratting

* Code cleanup

* Comments / doc

* More comments / doc

* More comments / doc

Fixed pre count duration.
Added frequency restore after leaving

* Prepare merge

* Prepare merge

* Finished merge

* More comments and doc

* Update ui_epirb_tx.cpp

Fixed out of memory error when using AlphanumView

* Update proc_epirb_tx.hpp

Fixed comment

* Fixed copilot PR comments.

* Update proc_epirb_tx.hpp

Fixed formatting

* Update external.ld

Merge with kiss_tnc app
This commit is contained in:
Frederic BORRY
2026-03-12 10:05:42 +01:00
committed by GitHub
parent 2c2959df30
commit 5aecd4097e
17 changed files with 1885 additions and 0 deletions
+14
View File
@@ -156,6 +156,7 @@ class Message {
RTTYData = 98,
NotificationData = 99,
TimeSinkConfig = 100,
EPIRBTXData = 101,
MAX
};
@@ -1110,6 +1111,19 @@ class SigGenToneMessage : public Message {
const uint32_t tone_delta;
};
class EPIRBTXDataMessage : public Message {
public:
static constexpr uint8_t max_len = 18;
constexpr EPIRBTXDataMessage()
: Message{ID::EPIRBTXData} {
}
bool mode_bpsk = true;
uint8_t data[max_len]{0};
uint8_t data_len = 0;
uint32_t pre_count = 0;
uint32_t post_count = 0;
};
class AFSKTxConfigureMessage : public Message {
public:
constexpr AFSKTxConfigureMessage(