make redundant immediate an option (for experimentation purposes);

pull/39/head
Bryan Biedenkapp 3 years ago
parent 5fa4da4caf
commit 37fe46df12

@ -173,6 +173,8 @@ protocols:
enableTimeDateAnn: false
# Flag indicating whether or not the source ID validation before granting disabled.
disableGrantSourceIdCheck: false
# Flag indicating immediate TSDUs will be sent twice.
redundantImmediate: true
# Flag indicating whether redundant grant responses should be transmitted.
# (This is useful for single-channel VOC (voice on control) configurations.)
redundantGrantTransmit: false

@ -272,6 +272,7 @@ void Control::setOptions(yaml::Node& conf, bool supervisor, const std::string cw
m_ackTSBKRequests = control["ackRequests"].as<bool>(true);
m_control->m_ctrlTSDUMBF = !control["disableTSDUMBF"].as<bool>(false);
m_control->m_ctrlTimeDateAnn = control["enableTimeDateAnn"].as<bool>(false);
m_control->m_redundantImmediate = control["redundantImmediate"].as<bool>(true);
m_control->m_redundantGrant = control["redundantGrantTransmit"].as<bool>(false);
m_allowExplicitSourceId = p25Protocol["allowExplicitSourceId"].as<bool>(true);
@ -445,6 +446,7 @@ void Control::setOptions(yaml::Node& conf, bool supervisor, const std::string cw
LogInfo(" Unit-to-Unit Availability Check: %s", m_control->m_unitToUnitAvailCheck ? "yes" : "no");
LogInfo(" Explicit Source ID Support: %s", m_allowExplicitSourceId ? "yes" : "no");
LogInfo(" Redundant Immediate: %s", m_control->m_redundantImmediate ? "yes" : "no");
if (m_control->m_redundantGrant) {
LogInfo(" Redundant Grant Transmit: yes");
}

@ -1216,6 +1216,7 @@ ControlSignaling::ControlSignaling(Control* p25, bool dumpTSBKData, bool debug,
m_ctrlTSDUMBF(true),
m_sndcpChGrant(false),
m_disableGrantSrcIdCheck(false),
m_redundantImmediate(true),
m_redundantGrant(false),
m_dumpTSBK(dumpTSBKData),
m_verbose(verbose),
@ -1463,7 +1464,8 @@ void ControlSignaling::writeRF_TSDU_SBF(lc::TSBK* tsbk, bool noNetwork, bool cle
data[1U] = 0x00U;
m_p25->addFrame(data, P25_TSDU_FRAME_LENGTH_BYTES + 2U, false, imm);
if (imm) {
if (imm && m_redundantImmediate) {
// queue an immediate frame at least twice
m_p25->addFrame(data, P25_TSDU_FRAME_LENGTH_BYTES + 2U, false, imm);
}

@ -147,6 +147,7 @@ namespace p25
bool m_sndcpChGrant;
bool m_disableGrantSrcIdCheck;
bool m_redundantImmediate;
bool m_redundantGrant;
bool m_dumpTSBK;

Loading…
Cancel
Save

Powered by TurnKey Linux.