kopia lustrzana https://github.com/OpenRTX/OpenRTX
Fix M17 callsign management
Now a default callsign "OPNRTX" is used in M17 mode, and when the user sets its own callsign in the settings menu, that one is correctly used instead. Add initialization to RTX data structure.replace/c0b900904fddaeb860cf3cc63ed15ea60263abac
rodzic
e60d79241d
commit
120fd92d73
|
@ -77,9 +77,9 @@ void OpMode_M17::update(rtxStatus_t *const status, const bool newCfg)
|
|||
audio_enableMic();
|
||||
radio_enableTx();
|
||||
|
||||
// TODO: Allow destinations different than broadcast
|
||||
std::string source_address("OPNRTX");
|
||||
m17Tx.start(source_address);
|
||||
std::string source_address(status->source_address);
|
||||
std::string destination_address(status->destination_address);
|
||||
m17Tx.start(source_address, destination_address);
|
||||
|
||||
status->opStatus = TX;
|
||||
}
|
||||
|
|
|
@ -24,18 +24,18 @@
|
|||
#include <OpMode_FM.h>
|
||||
#include <OpMode_M17.h>
|
||||
|
||||
pthread_mutex_t *cfgMutex; // Mutex for incoming config messages
|
||||
pthread_mutex_t *cfgMutex; // Mutex for incoming config messages
|
||||
|
||||
const rtxStatus_t *newCnf; // Pointer for incoming config messages
|
||||
rtxStatus_t rtxStatus; // RTX driver status
|
||||
const rtxStatus_t *newCnf; // Pointer for incoming config messages
|
||||
rtxStatus_t rtxStatus = { 0 }; // RTX driver status
|
||||
|
||||
float rssi; // Current RSSI in dBm
|
||||
bool reinitFilter; // Flag for RSSI filter re-initialisation
|
||||
float rssi; // Current RSSI in dBm
|
||||
bool reinitFilter; // Flag for RSSI filter re-initialisation
|
||||
|
||||
OpMode *currMode; // Pointer to currently active opMode handler
|
||||
OpMode noMode; // Empty opMode handler for opmode::NONE
|
||||
OpMode_FM fmMode; // FM mode handler
|
||||
OpMode_M17 m17Mode; // M17 mode handler
|
||||
OpMode *currMode; // Pointer to currently active opMode handler
|
||||
OpMode noMode; // Empty opMode handler for opmode::NONE
|
||||
OpMode_FM fmMode; // FM mode handler
|
||||
OpMode_M17 m17Mode; // M17 mode handler
|
||||
|
||||
void rtx_init(pthread_mutex_t *m)
|
||||
{
|
||||
|
|
|
@ -82,6 +82,9 @@ void state_init()
|
|||
|
||||
state.emergency = false;
|
||||
|
||||
// Initialize M17_data
|
||||
strncpy(state.m17_data.callsign, "OPNRTX", 10);
|
||||
|
||||
// Read settings from flash memory
|
||||
// NOTE: Disable reading VFO from flash until persistence is implemented
|
||||
//int valid = nvm_readSettings(&state.settings);
|
||||
|
|
|
@ -103,6 +103,10 @@ void *ui_task(void *arg)
|
|||
rtx_cfg.txTone = ctcss_tone[state.channel.fm.txTone];
|
||||
pthread_mutex_unlock(&rtx_mutex);
|
||||
|
||||
// Copy new M17 source and destination addresses
|
||||
strncpy(rtx_cfg.source_address, state.m17_data.callsign, 10);
|
||||
strncpy(rtx_cfg.destination_address, "", 10);
|
||||
|
||||
rtx_configure(&rtx_cfg);
|
||||
sync_rtx = false;
|
||||
}
|
||||
|
|
|
@ -1324,8 +1324,9 @@ void ui_updateFSM(event_t event, bool *sync_rtx)
|
|||
{
|
||||
_ui_textInputConfirm(ui_state.new_callsign);
|
||||
// Save selected callsign and disable input mode
|
||||
strcpy(state.m17_data.callsign, ui_state.new_callsign);
|
||||
strncpy(state.m17_data.callsign, ui_state.new_callsign, 10);
|
||||
ui_state.edit_mode = false;
|
||||
*sync_rtx = true;
|
||||
}
|
||||
else if(msg.keys & KEY_ESC)
|
||||
// Discard selected callsign and disable input mode
|
||||
|
|
Ładowanie…
Reference in New Issue