fix issue when loading voice channel lists into local affiliation tables; fix issue where appropriate voice channel data for remote callbacks was not correct; better hide messages from console and use logging appropriately in RESTClient;

pull/24/head 2023-03-26
Bryan Biedenkapp 3 years ago
parent 86748665ba
commit 08d282844d

@ -736,7 +736,8 @@ void Slot::setSiteData(const std::vector<uint32_t> voiceChNo, const std::unorder
m_affiliations->addRFCh(chNo); m_affiliations->addRFCh(chNo);
} }
m_affiliations->setRFChData(voiceChData); std::unordered_map<uint32_t, ::lookups::VoiceChData> chData = std::unordered_map<uint32_t, ::lookups::VoiceChData>(voiceChData);
m_affiliations->setRFChData(chData);
lc::CSBK::setSiteData(m_siteData); lc::CSBK::setSiteData(m_siteData);
} }

@ -443,7 +443,7 @@ VoiceChData AffiliationLookup::getRFChData(uint32_t chNo) const
data = VoiceChData(); data = VoiceChData();
} }
return VoiceChData(); return data;
} }
/// <summary> /// <summary>

@ -152,7 +152,7 @@ namespace lookups
virtual uint32_t getGrantedSrcId(uint32_t srcId); virtual uint32_t getGrantedSrcId(uint32_t srcId);
/// <summary>Helper to set RF channel data.</summary> /// <summary>Helper to set RF channel data.</summary>
void setRFChData(const std::unordered_map<uint32_t, VoiceChData> chData) { m_rfChDataTable = chData; } void setRFChData(const std::unordered_map<uint32_t, VoiceChData>& chData) { m_rfChDataTable = chData; }
/// <summary>Helper to get RF channel data.</summary> /// <summary>Helper to get RF channel data.</summary>
VoiceChData getRFChData(uint32_t chNo) const; VoiceChData getRFChData(uint32_t chNo) const;

@ -272,7 +272,8 @@ void Control::setOptions(yaml::Node& conf, bool controlPermitTG, const std::stri
m_affiliations.addRFCh(ch); m_affiliations.addRFCh(ch);
} }
m_affiliations.setRFChData(voiceChData); std::unordered_map<uint32_t, ::lookups::VoiceChData> chData = std::unordered_map<uint32_t, ::lookups::VoiceChData>(voiceChData);
m_affiliations.setRFChData(chData);
lc::RCCH::setSiteData(m_siteData); lc::RCCH::setSiteData(m_siteData);
lc::RCCH::setCallsign(cwCallsign); lc::RCCH::setCallsign(cwCallsign);

@ -316,7 +316,8 @@ void Control::setOptions(yaml::Node& conf, bool controlPermitTG, const std::stri
m_affiliations.addRFCh(ch); m_affiliations.addRFCh(ch);
} }
m_affiliations.setRFChData(voiceChData); std::unordered_map<uint32_t, ::lookups::VoiceChData> chData = std::unordered_map<uint32_t, ::lookups::VoiceChData>(voiceChData);
m_affiliations.setRFChData(chData);
uint32_t ccBcstInterval = p25Protocol["control"]["interval"].as<uint32_t>(300U); uint32_t ccBcstInterval = p25Protocol["control"]["interval"].as<uint32_t>(300U);
m_trunk->m_adjSiteUpdateInterval += ccBcstInterval; m_trunk->m_adjSiteUpdateInterval += ccBcstInterval;

@ -2237,6 +2237,7 @@ bool Trunk::writeRF_TSDU_Grant(uint32_t srcId, uint32_t dstId, uint8_t serviceOp
// callback RCON to permit-tg on the specified voice channel // callback RCON to permit-tg on the specified voice channel
if (m_p25->m_authoritative && m_p25->m_controlPermitTG) { if (m_p25->m_authoritative && m_p25->m_controlPermitTG) {
::lookups::VoiceChData voiceChData = m_p25->m_affiliations.getRFChData(chNo); ::lookups::VoiceChData voiceChData = m_p25->m_affiliations.getRFChData(chNo);
if (voiceChData.isValidCh() && !voiceChData.address().empty() && voiceChData.port() > 0 && if (voiceChData.isValidCh() && !voiceChData.address().empty() && voiceChData.port() > 0 &&
chNo != m_p25->m_siteData.channelNo()) { chNo != m_p25->m_siteData.channelNo()) {
json::object req = json::object(); json::object req = json::object();

@ -63,6 +63,7 @@ using namespace network::rest::http;
bool RESTClient::m_responseAvailable = false; bool RESTClient::m_responseAvailable = false;
HTTPPayload RESTClient::m_response; HTTPPayload RESTClient::m_response;
bool RESTClient::m_console = false;
bool RESTClient::m_debug = false; bool RESTClient::m_debug = false;
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@ -117,6 +118,7 @@ RESTClient::RESTClient(const std::string& address, uint32_t port, const std::str
assert(!address.empty()); assert(!address.empty());
assert(port > 0U); assert(port > 0U);
m_console = true;
m_debug = debug; m_debug = debug;
} }
@ -234,7 +236,14 @@ int RESTClient::send(const std::string& address, uint32_t port, const std::strin
return ERRNO_API_CALL_TIMEOUT; return ERRNO_API_CALL_TIMEOUT;
} }
fprintf(stdout, "%s\r\n", m_response.content.c_str()); if (m_console) {
fprintf(stdout, "%s\r\n", m_response.content.c_str());
}
else {
if (m_debug) {
::LogDebug(LOG_REST, "REST Response: %s", m_response.content.c_str());
}
}
client.close(); client.close();
} }

@ -64,6 +64,8 @@ private:
uint32_t m_port; uint32_t m_port;
std::string m_password; std::string m_password;
static bool m_console;
static bool m_responseAvailable; static bool m_responseAvailable;
static HTTPPayload m_response; static HTTPPayload m_response;

Loading…
Cancel
Save

Powered by TurnKey Linux.