Start the AX.25 transmit path development.

This commit is contained in:
Jonathan Naylor 2020-06-21 18:53:38 +01:00
parent 27c9ad43ec
commit c026471aec
5 changed files with 39 additions and 3 deletions

View File

@ -49,7 +49,7 @@ bool CAX25Control::writeModem(unsigned char *data, unsigned int len)
if (m_trace)
decode(data, len);
CUtils::dump(1U, "AX.25 raw packet", data, len);
CUtils::dump(1U, "AX.25 received packet", data, len);
if (m_network == NULL)
return true;
@ -57,6 +57,24 @@ bool CAX25Control::writeModem(unsigned char *data, unsigned int len)
return m_network->write(data, len);
}
unsigned int CAX25Control::readModem(unsigned char* data)
{
assert(data != NULL);
if (m_network == NULL)
return 0U;
if (!m_enabled)
return 0U;
unsigned int length = m_network->read(data, 500U);
if (length > 0U)
CUtils::dump(1U, "AX.25 transmitted packet", data, length);
return length;
}
bool CAX25Control::openFile()
{
if (m_fp != NULL)

View File

@ -30,6 +30,8 @@ public:
bool writeModem(unsigned char* data, unsigned int len);
unsigned int readModem(unsigned char* data);
void enable(bool enabled);
private:

View File

@ -181,7 +181,7 @@ void CAX25Network::enable(bool enabled)
{
m_enabled = enabled;
if (enabled && !m_enabled) {
if (enabled != m_enabled) {
m_rxLastChar = 0U;
m_rxLength = 0U;
}

View File

@ -688,7 +688,7 @@ int CMMDVMHost::run()
m_ump->setCD(cd);
}
unsigned char data[220U];
unsigned char data[500U];
unsigned int len;
bool ret;
@ -989,6 +989,20 @@ int CMMDVMHost::run()
}
}
if (m_ax25 != NULL) {
ret = m_modem->hasAX25Space();
if (ret) {
len = m_ax25->readModem(data);
if (len > 0U) {
if (m_mode == MODE_IDLE || m_mode == MODE_FM) {
m_modem->writeAX25Data(data, len);
} else if (m_mode != MODE_LOCKOUT) {
LogWarning("AX.25 data received when in mode %u", m_mode);
}
}
}
}
if (transparentSocket != NULL) {
in_addr address;
unsigned int port = 0U;

View File

@ -80,6 +80,7 @@ public:
virtual bool hasP25Space() const;
virtual bool hasNXDNSpace() const;
virtual bool hasPOCSAGSpace() const;
virtual bool hasAX25Space() const;
virtual bool hasTX() const;
virtual bool hasCD() const;
@ -95,6 +96,7 @@ public:
virtual bool writeP25Data(const unsigned char* data, unsigned int length);
virtual bool writeNXDNData(const unsigned char* data, unsigned int length);
virtual bool writePOCSAGData(const unsigned char* data, unsigned int length);
virtual bool writeAX25Data(const unsigned char* data, unsigned int length);
virtual bool writeTransparentData(const unsigned char* data, unsigned int length);