diff --git a/Controller.cpp b/Controller.cpp index 4161c74..05d23ed 100644 --- a/Controller.cpp +++ b/Controller.cpp @@ -107,7 +107,7 @@ bool CController::InitDevices() // set each of the 3 vocoders to the current type for (uint8_t channel=PKT_CHANNEL0; channel<=PKT_CHANNEL2; channel++) { - if (a3003->ConfigureCodec(channel, type)) + if (a3003->ConfigureVocoder(channel, type)) return true; } diff --git a/DV3003.cpp b/DV3003.cpp index 71f84fb..0b5cd1b 100644 --- a/DV3003.cpp +++ b/DV3003.cpp @@ -234,19 +234,26 @@ bool CDV3003::InitDV3003() return false; } -bool CDV3003::ConfigureCodec(uint8_t pkt_ch, Encoding type) +bool CDV3003::ConfigureVocoder(uint8_t pkt_ch, Encoding type) { SDV3003_Packet controlPacket, responsePacket; - const uint8_t dstar[13] { PKT_RATEP, 0x01U, 0x30U, 0x07U, 0x63U, 0x40U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x48U }; - const uint8_t dmr[13] { PKT_RATEP, 0x04U, 0x31U, 0x07U, 0x54U, 0x24U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x6FU, 0x48U }; - const uint8_t init[2] { PKT_INIT, 0x3U }; + const uint8_t dstar[] { PKT_RATEP, 0x01U, 0x30U, 0x07U, 0x63U, 0x40U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x48U }; + const uint8_t dmr[] { PKT_RATEP, 0x04U, 0x31U, 0x07U, 0x54U, 0x24U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x6FU, 0x48U }; + const uint8_t init[] { PKT_INIT, 0x3U }; controlPacket.start_byte = PKT_HEADER; controlPacket.header.payload_length = htons(1 + sizeof(SDV3003_Packet::payload.codec)); controlPacket.header.packet_type = PKT_CONTROL; controlPacket.field_id = pkt_ch; - memcpy(controlPacket.payload.codec.ratep, (type == Encoding::dstar) ? dstar : dmr, 13); + if (type == Encoding::dstar) + { + memcpy(controlPacket.payload.codec.ratep, dstar, 13); + } + else + { + memcpy(controlPacket.payload.codec.ratep, dmr, 13); + } memcpy(controlPacket.payload.codec.init, init, 2); // write packet diff --git a/DV3003.h b/DV3003.h index 3083b4b..81d968b 100644 --- a/DV3003.h +++ b/DV3003.h @@ -98,7 +98,7 @@ public: ~CDV3003(); bool OpenDevice(const std::string &device, int baudrate); bool InitDV3003(); - bool ConfigureCodec(uint8_t pkt_ch, Encoding type); + bool ConfigureVocoder(uint8_t pkt_ch, Encoding type); bool SendAudio(const uint8_t channel, const int16_t *audio) const; bool SendData(const uint8_t channel, const uint8_t *data) const; bool GetResponse(SDV3003_Packet &packet);