add FSC_REPORT_SEL_MODES;

82-dvmbridge---implement-notch-filter-for-2175hz-trc-guard-tone
Bryan Biedenkapp 1 year ago
parent da3a2a1869
commit ca7149e9f4

@ -48,6 +48,8 @@ namespace p25
FSC_HEARTBEAT = 1, //! Heartbeat/Connectivity Maintenance. FSC_HEARTBEAT = 1, //! Heartbeat/Connectivity Maintenance.
FSC_ACK = 2, //! Control Service Ack. FSC_ACK = 2, //! Control Service Ack.
FSC_REPORT_SEL_MODES = 8, //! Report Selected Modes
FSC_DISCONNECT = 9, //! Detach Control Service. FSC_DISCONNECT = 9, //! Detach Control Service.
FSC_INVALID = 127, //! Invalid Control Message. FSC_INVALID = 127, //! Invalid Control Message.

@ -32,6 +32,7 @@
#include "common/p25/dfsi/frames/fsc/FSCMessage.h" #include "common/p25/dfsi/frames/fsc/FSCMessage.h"
#include "common/p25/dfsi/frames/fsc/FSCACK.h" #include "common/p25/dfsi/frames/fsc/FSCACK.h"
#include "common/p25/dfsi/frames/fsc/FSCConnect.h" #include "common/p25/dfsi/frames/fsc/FSCConnect.h"
#include "common/p25/dfsi/frames/fsc/FSCReportSelModes.h"
#include "common/p25/dfsi/frames/fsc/FSCDisconnect.h" #include "common/p25/dfsi/frames/fsc/FSCDisconnect.h"
#include "common/p25/dfsi/frames/fsc/FSCHeartbeat.h" #include "common/p25/dfsi/frames/fsc/FSCHeartbeat.h"

@ -83,6 +83,9 @@ std::unique_ptr<FSCMessage> FSCMessage::createMessage(const uint8_t* data)
case FSCMessageType::FSC_ACK: case FSCMessageType::FSC_ACK:
message = new FSCACK(); message = new FSCACK();
break; break;
case FSCMessageType::FSC_REPORT_SEL_MODES:
message = new FSCReportSelModes();
break;
case FSCMessageType::FSC_DISCONNECT: case FSCMessageType::FSC_DISCONNECT:
message = new FSCDisconnect(); message = new FSCDisconnect();
break; break;

@ -492,6 +492,37 @@ void* V24UDPPort::threadedCtrlNetworkRx(void* arg)
} }
break; break;
case FSCMessageType::FSC_REPORT_SEL_MODES:
{
FSCACK ackResp = FSCACK();
ackResp.setCorrelationTag(message->getCorrelationTag());
ackResp.setAckMessageId(FSCMessageType::FSC_REPORT_SEL_MODES);
ackResp.setResponseCode(FSCAckResponseCode::CONTROL_ACK);
ackResp.setAckCorrelationTag(message->getCorrelationTag());
// construct connect ACK response data
uint8_t respData[5U];
::memset(respData, 0x00U, 5U);
// bryanb: because DVM is essentially a repeater -- we hardcode these values
respData[0U] = 1U; // Version 1
respData[1U] = 1U; // Repeat Inbound Audio
respData[2U] = 0U; // Rx Channel Selection
respData[3U] = 0U; // Tx Channel Selection
respData[4U] = 1U; // Monitor Mode
// pack ack
ackResp.setResponseLength(5U);
ackResp.responseData = respData;
uint8_t buffer[FSCACK::LENGTH + 5U];
::memset(buffer, 0x00U, FSCACK::LENGTH + 5U);
ackResp.encode(buffer);
network->m_ctrlFrameQueue->write(buffer, FSCACK::LENGTH + 5U, network->m_controlAddr, network->m_ctrlAddrLen);
}
break;
case FSCMessageType::FSC_DISCONNECT: case FSCMessageType::FSC_DISCONNECT:
{ {
LogMessage(LOG_MODEM, "V.24 UDP, DFSI FSC Disconnect, vcBasePort = %u", network->m_localPort); LogMessage(LOG_MODEM, "V.24 UDP, DFSI FSC Disconnect, vcBasePort = %u", network->m_localPort);

Loading…
Cancel
Save

Powered by TurnKey Linux.