Fixed up the use of the writeFMEOT method.

This commit is contained in:
Jonathan Naylor 2020-05-16 13:15:21 +01:00
parent d75042dc4c
commit 625749a546
1 changed files with 13 additions and 14 deletions

11
FM.cpp
View File

@ -154,8 +154,8 @@ void CFM::process()
{ {
uint16_t space = io.getSpace(); uint16_t space = io.getSpace();
uint16_t length = m_outputRFRB.getData(); uint16_t length = m_outputRFRB.getData();
if (space > FM_TX_BLOCK_SIZE && length >= FM_TX_BLOCK_SIZE ) {
if (space > FM_TX_BLOCK_SIZE && length >= FM_TX_BLOCK_SIZE ) {
if (length > FM_TX_BLOCK_SIZE) if (length > FM_TX_BLOCK_SIZE)
length = FM_TX_BLOCK_SIZE; length = FM_TX_BLOCK_SIZE;
if (space > FM_TX_BLOCK_SIZE) if (space > FM_TX_BLOCK_SIZE)
@ -183,9 +183,8 @@ void CFM::process()
TSamplePairPack serialSamples[FM_SERIAL_BLOCK_SIZE]; TSamplePairPack serialSamples[FM_SERIAL_BLOCK_SIZE];
for(uint16_t j = 0U; j < length; j++) { for (uint16_t j = 0U; j < length; j++)
m_downsampler.getPackedData(serialSamples[j]); m_downsampler.getPackedData(serialSamples[j]);
}
serial.writeFMData((uint8_t*)serialSamples, length * sizeof(TSamplePairPack)); serial.writeFMData((uint8_t*)serialSamples, length * sizeof(TSamplePairPack));
} }
@ -434,6 +433,9 @@ void CFM::relayingRFState(bool validSignal)
DEBUG1("State to RELAYING_WAIT_RF"); DEBUG1("State to RELAYING_WAIT_RF");
m_state = FS_RELAYING_WAIT_RF; m_state = FS_RELAYING_WAIT_RF;
m_ackDelayTimer.start(); m_ackDelayTimer.start();
if (m_extEnabled)
serial.writeFMEOT();
} }
if (m_callsignTimer.isRunning() && m_callsignTimer.hasExpired()) { if (m_callsignTimer.isRunning() && m_callsignTimer.hasExpired()) {
@ -580,9 +582,6 @@ void CFM::hangState(bool validRFSignal, bool validExtSignal)
m_hangTimer.stop(); m_hangTimer.stop();
m_statusTimer.stop(); m_statusTimer.stop();
if(m_extEnabled)
serial.writeFMEOT();
if (m_callsignAtEnd) if (m_callsignAtEnd)
sendCallsign(); sendCallsign();