mirror of https://github.com/g4klx/MMDVM.git
Merge branch 'M17_AX25_FM' into I2C
This commit is contained in:
commit
53b5659639
|
@ -886,7 +886,7 @@ void CSerialPort::process()
|
||||||
|
|
||||||
// The full packet has been received, process it
|
// The full packet has been received, process it
|
||||||
if (m_ptr == m_len)
|
if (m_ptr == m_len)
|
||||||
processMessage(m_buffer + 3U, m_len - 3U);
|
processMessage(m_buffer[2U], m_buffer + 3U, m_len - 3U);
|
||||||
} else {
|
} else {
|
||||||
// Any other bytes are added to the buffer
|
// Any other bytes are added to the buffer
|
||||||
m_buffer[m_ptr] = c;
|
m_buffer[m_ptr] = c;
|
||||||
|
@ -895,9 +895,9 @@ void CSerialPort::process()
|
||||||
// The full packet has been received, process it
|
// The full packet has been received, process it
|
||||||
if (m_ptr == m_len) {
|
if (m_ptr == m_len) {
|
||||||
if (m_len > 255U)
|
if (m_len > 255U)
|
||||||
processMessage(m_buffer + 4U, m_len - 4U);
|
processMessage(m_buffer[3U], m_buffer + 4U, m_len - 4U);
|
||||||
else
|
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
|
#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;
|
uint8_t err = 2U;
|
||||||
|
|
||||||
switch (m_buffer[2U]) {
|
switch (type) {
|
||||||
case MMDVM_GET_STATUS:
|
case MMDVM_GET_STATUS:
|
||||||
getStatus();
|
getStatus();
|
||||||
break;
|
break;
|
||||||
|
@ -1157,12 +1157,12 @@ void CSerialPort::processMessage(const uint8_t* buffer, uint16_t length)
|
||||||
case MMDVM_DMR_START:
|
case MMDVM_DMR_START:
|
||||||
if (m_dmrEnable) {
|
if (m_dmrEnable) {
|
||||||
err = 4U;
|
err = 4U;
|
||||||
if (m_len == 4U) {
|
if (length == 1U) {
|
||||||
if (m_buffer[3U] == 0x01U && m_modemState == STATE_DMR) {
|
if (buffer[0U] == 0x01U && m_modemState == STATE_DMR) {
|
||||||
if (!m_tx)
|
if (!m_tx)
|
||||||
dmrTX.setStart(true);
|
dmrTX.setStart(true);
|
||||||
err = 0U;
|
err = 0U;
|
||||||
} else if (m_buffer[3U] == 0x00U && m_modemState == STATE_DMR) {
|
} else if (buffer[0U] == 0x00U && m_modemState == STATE_DMR) {
|
||||||
if (m_tx)
|
if (m_tx)
|
||||||
dmrTX.setStart(false);
|
dmrTX.setStart(false);
|
||||||
err = 0U;
|
err = 0U;
|
||||||
|
@ -1292,7 +1292,7 @@ void CSerialPort::processMessage(const uint8_t* buffer, uint16_t length)
|
||||||
case MMDVM_FM_DATA:
|
case MMDVM_FM_DATA:
|
||||||
if (m_fmEnable) {
|
if (m_fmEnable) {
|
||||||
if (m_modemState == STATE_IDLE || m_modemState == STATE_FM)
|
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 (err == 0U) {
|
||||||
if (m_modemState == STATE_IDLE)
|
if (m_modemState == STATE_IDLE)
|
||||||
|
@ -1324,16 +1324,16 @@ void CSerialPort::processMessage(const uint8_t* buffer, uint16_t length)
|
||||||
|
|
||||||
#if defined(SERIAL_REPEATER)
|
#if defined(SERIAL_REPEATER)
|
||||||
case MMDVM_SERIAL_DATA: {
|
case MMDVM_SERIAL_DATA: {
|
||||||
for (uint8_t i = 3U; i < m_len; i++)
|
for (uint16_t i = 0U; i < length; i++)
|
||||||
m_serialData.put(m_buffer[i]);
|
m_serialData.put(buffer[i]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(I2C_REPEATER)
|
#if defined(I2C_REPEATER)
|
||||||
case MMDVM_I2C_DATA: {
|
case MMDVM_I2C_DATA: {
|
||||||
for (uint8_t i = 3U; i < m_len; i++)
|
for (uint16_t i = 0U; i < length; i++)
|
||||||
m_i2CData.put(m_buffer[i]);
|
m_i2CData.put(buffer[i]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -109,7 +109,7 @@ private:
|
||||||
uint8_t setConfig(const uint8_t* data, uint16_t length);
|
uint8_t setConfig(const uint8_t* data, uint16_t length);
|
||||||
uint8_t setMode(const uint8_t* data, uint16_t length);
|
uint8_t setMode(const uint8_t* data, uint16_t length);
|
||||||
void setMode(MMDVM_STATE modemState);
|
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)
|
#if defined(MODE_FM)
|
||||||
uint8_t setFMParams1(const uint8_t* data, uint16_t length);
|
uint8_t setFMParams1(const uint8_t* data, uint16_t length);
|
||||||
|
|
Loading…
Reference in New Issue