diff --git a/FM.cpp b/FM.cpp index 466a281..f500ccb 100644 --- a/FM.cpp +++ b/FM.cpp @@ -40,7 +40,7 @@ void CFM::setCallsign(const char* callsign, uint8_t speed, uint16_t frequency, u { } -void CFM::setAck(const char* ack, uint8_t speed, uint16_t frequency, uint16_t delay, uint8_t level) +void CFM::setAck(const char* ack, uint8_t speed, uint16_t frequency, uint8_t minTime, uint16_t delay, uint8_t level) { } diff --git a/FM.h b/FM.h index a315869..cbbd72b 100644 --- a/FM.h +++ b/FM.h @@ -32,7 +32,7 @@ public: void reset(); void setCallsign(const char* callsign, uint8_t speed, uint16_t frequency, uint8_t time, uint8_t holdoff, uint8_t highLevel, uint8_t lowLevel, bool callAtStart, bool callAtEnd); - void setAck(const char* ack, uint8_t speed, uint16_t frequency, uint16_t delay, uint8_t level); + void setAck(const char* ack, uint8_t speed, uint16_t frequency, uint8_t minTime, uint16_t delay, uint8_t level); void setMisc(uint16_t timeout, uint8_t timeoutLevel, uint8_t ctcssFrequency, uint8_t ctcssThreshold, uint8_t ctcssLevel, uint8_t kerchunkTime, uint8_t hangTime); private: diff --git a/SerialPort.cpp b/SerialPort.cpp index 872657a..62ded18 100644 --- a/SerialPort.cpp +++ b/SerialPort.cpp @@ -391,21 +391,22 @@ uint8_t CSerialPort::setFMParams1(const uint8_t* data, uint8_t length) uint8_t CSerialPort::setFMParams2(const uint8_t* data, uint8_t length) { - if (length < 4U) + if (length < 5U) return 4U; uint8_t speed = data[0U]; uint16_t frequency = data[1U] * 10U; - uint16_t delay = data[2U] * 10U; - uint8_t level = data[3U]; + uint8_t minTime = data[2U]; + uint16_t delay = data[3U] * 10U; + uint8_t level = data[4U]; char ack[50U]; uint8_t n = 0U; - for (uint8_t i = 4U; i < length; i++, n++) + for (uint8_t i = 5U; i < length; i++, n++) ack[n] = data[i]; ack[n] = '\0'; - fm.setAck(ack, speed, frequency, delay, level); + fm.setAck(ack, speed, frequency, minTime, delay, level); return 0U; }