Merge pull request #259 from F4FXL/FM

Fix stuck on TX
This commit is contained in:
Jonathan Naylor 2020-05-10 17:06:26 +01:00 committed by GitHub
commit 85acdc7121
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 20 deletions

23
FM.cpp
View File

@ -129,25 +129,8 @@ void CFM::samples(bool cos, const q15_t* samples, uint8_t length)
void CFM::process() void CFM::process()
{ {
if (m_modemState != STATE_FM) q15_t sample;
return; while(io.getSpace() >= 3U && m_outputRB.get(sample)) {
uint16_t length = m_outputRB.getData();
if (length == 0U)
return;
uint16_t space = io.getSpace();
if (space < 3U)
return;
space -= 2U;
if (space < length)
length = space;
for (uint16_t i = 0U; i < length; i++) {
q15_t sample;
m_outputRB.get(sample);
io.write(STATE_FM, &sample, 1U); io.write(STATE_FM, &sample, 1U);
} }
} }
@ -251,7 +234,7 @@ void CFM::stateMachine(bool validSignal)
} }
if (m_state == FS_LISTENING && m_modemState == STATE_FM) { if (m_state == FS_LISTENING && m_modemState == STATE_FM) {
if (!m_callsign.isRunning() && !m_rfAck.isRunning() && m_outputRB.getData() == 0U) { if (!m_callsign.isRunning() && !m_rfAck.isRunning()) {
DEBUG1("Change to STATE_IDLE"); DEBUG1("Change to STATE_IDLE");
m_modemState = STATE_IDLE; m_modemState = STATE_IDLE;
m_callsignTimer.stop(); m_callsignTimer.stop();