Merge branch 'M17_AX25_FM' into I2C

This commit is contained in:
Jonathan Naylor 2020-11-17 10:37:37 +00:00
commit 53b5659639
3 changed files with 15 additions and 15 deletions

View File

@ -886,7 +886,7 @@ void CSerialPort::process()
// The full packet has been received, process it
if (m_ptr == m_len)
processMessage(m_buffer + 3U, m_len - 3U);
processMessage(m_buffer[2U], m_buffer + 3U, m_len - 3U);
} else {
// Any other bytes are added to the buffer
m_buffer[m_ptr] = c;
@ -895,9 +895,9 @@ void CSerialPort::process()
// The full packet has been received, process it
if (m_ptr == m_len) {
if (m_len > 255U)
processMessage(m_buffer + 4U, m_len - 4U);
processMessage(m_buffer[3U], m_buffer + 4U, m_len - 4U);
else
processMessage(m_buffer + 3U, m_len - 3U);
processMessage(m_buffer[2U], m_buffer + 3U, m_len - 3U);
}
}
}
@ -957,11 +957,11 @@ void CSerialPort::process()
#endif
}
void CSerialPort::processMessage(const uint8_t* buffer, uint16_t length)
void CSerialPort::processMessage(uint8_t type, const uint8_t* buffer, uint16_t length)
{
uint8_t err = 2U;
switch (m_buffer[2U]) {
switch (type) {
case MMDVM_GET_STATUS:
getStatus();
break;
@ -1157,12 +1157,12 @@ void CSerialPort::processMessage(const uint8_t* buffer, uint16_t length)
case MMDVM_DMR_START:
if (m_dmrEnable) {
err = 4U;
if (m_len == 4U) {
if (m_buffer[3U] == 0x01U && m_modemState == STATE_DMR) {
if (length == 1U) {
if (buffer[0U] == 0x01U && m_modemState == STATE_DMR) {
if (!m_tx)
dmrTX.setStart(true);
err = 0U;
} else if (m_buffer[3U] == 0x00U && m_modemState == STATE_DMR) {
} else if (buffer[0U] == 0x00U && m_modemState == STATE_DMR) {
if (m_tx)
dmrTX.setStart(false);
err = 0U;
@ -1292,7 +1292,7 @@ void CSerialPort::processMessage(const uint8_t* buffer, uint16_t length)
case MMDVM_FM_DATA:
if (m_fmEnable) {
if (m_modemState == STATE_IDLE || m_modemState == STATE_FM)
err = fm.writeData(m_buffer + 3U, m_len - 3U);
err = fm.writeData(buffer, length);
}
if (err == 0U) {
if (m_modemState == STATE_IDLE)
@ -1324,16 +1324,16 @@ void CSerialPort::processMessage(const uint8_t* buffer, uint16_t length)
#if defined(SERIAL_REPEATER)
case MMDVM_SERIAL_DATA: {
for (uint8_t i = 3U; i < m_len; i++)
m_serialData.put(m_buffer[i]);
for (uint16_t i = 0U; i < length; i++)
m_serialData.put(buffer[i]);
}
break;
#endif
#if defined(I2C_REPEATER)
case MMDVM_I2C_DATA: {
for (uint8_t i = 3U; i < m_len; i++)
m_i2CData.put(m_buffer[i]);
for (uint16_t i = 0U; i < length; i++)
m_i2CData.put(buffer[i]);
}
break;
#endif

View File

@ -109,7 +109,7 @@ private:
uint8_t setConfig(const uint8_t* data, uint16_t length);
uint8_t setMode(const uint8_t* data, uint16_t length);
void setMode(MMDVM_STATE modemState);
void processMessage(const uint8_t* data, uint16_t length);
void processMessage(uint8_t type, const uint8_t* data, uint16_t length);
#if defined(MODE_FM)
uint8_t setFMParams1(const uint8_t* data, uint16_t length);

View File

@ -19,7 +19,7 @@
#if !defined(VERSION_H)
#define VERSION_H
#define VERSION "20201115"
#define VERSION "20201117"
#endif