Add an FM EOT network message.

This commit is contained in:
Jonathan Naylor 2020-05-16 13:09:28 +01:00
parent 283b54c46a
commit a66f4c6188
3 changed files with 22 additions and 5 deletions

View file

@ -45,7 +45,7 @@ bool CFMControl::writeModem(const unsigned char* data, unsigned int length)
return true;
if (data[0U] == TAG_EOT)
return m_network->write(data, 1U);
return m_network->writeEOT();
if (data[0U] != TAG_DATA)
return false;
@ -55,7 +55,7 @@ bool CFMControl::writeModem(const unsigned char* data, unsigned int length)
m_incomingRFAudio.addData(data + 1U, length - 1U);
unsigned int bufferLength = m_incomingRFAudio.dataSize();
if(bufferLength > 255U)
if (bufferLength > 255U)
bufferLength = 255U;
if (bufferLength >= 3U) {
@ -100,7 +100,7 @@ bool CFMControl::writeModem(const unsigned char* data, unsigned int length)
out[nOut++] = (sample >> 0) & 0xFFU;
}
return m_network->write((unsigned char*)out, nOut);
return m_network->writeData((unsigned char*)out, nOut);
}
return true;

View file

@ -55,7 +55,7 @@ bool CFMNetwork::open()
return m_socket.open();
}
bool CFMNetwork::write(const unsigned char* data, unsigned int length)
bool CFMNetwork::writeData(const unsigned char* data, unsigned int length)
{
assert(data != NULL);
@ -74,6 +74,21 @@ bool CFMNetwork::write(const unsigned char* data, unsigned int length)
return m_socket.write(buffer, length + 3U, m_address, m_port);
}
bool CFMNetwork::writeEOT()
{
unsigned char buffer[10U];
::memset(buffer, 0x00U, 10U);
buffer[0U] = 'F';
buffer[1U] = 'M';
buffer[2U] = 'E';
if (m_debug)
CUtils::dump(1U, "FM Network Data Sent", buffer, 3U);
return m_socket.write(buffer, 3U, m_address, m_port);
}
void CFMNetwork::clock(unsigned int ms)
{
unsigned char buffer[BUFFER_LENGTH];

View file

@ -35,7 +35,9 @@ public:
void enable(bool enabled);
bool write(const unsigned char* data, unsigned int length);
bool writeData(const unsigned char* data, unsigned int length);
bool writeEOT();
unsigned int read(unsigned char* data, unsigned int space);