Add the D-Star networking.

This commit is contained in:
Jonathan Naylor
2016-01-25 21:00:19 +00:00
parent 2f8c8fbba3
commit bdb41fb64e
7 changed files with 466 additions and 7 deletions

View File

@@ -73,6 +73,7 @@ int main(int argc, char** argv)
CMMDVMHost::CMMDVMHost(const std::string& confFile) :
m_conf(confFile),
m_modem(NULL),
m_dstarNetwork(NULL),
m_dmrNetwork(NULL),
m_display(NULL),
m_dstarEnabled(false),
@@ -116,6 +117,12 @@ int CMMDVMHost::run()
createDisplay();
if (m_dstarEnabled && m_conf.getDStarNetworkEnabled()) {
ret = createDStarNetwork();
if (!ret)
return 1;
}
if (m_dmrEnabled && m_conf.getDMRNetworkEnabled()) {
ret = createDMRNetwork();
if (!ret)
@@ -375,6 +382,11 @@ int CMMDVMHost::run()
m_display->close();
delete m_display;
if (m_dstarNetwork != NULL) {
m_dstarNetwork->close();
delete m_dstarNetwork;
}
if (m_dmrNetwork != NULL) {
m_dmrNetwork->close();
delete m_dmrNetwork;
@@ -422,6 +434,35 @@ bool CMMDVMHost::createModem()
return true;
}
bool CMMDVMHost::createDStarNetwork()
{
if (!m_conf.getDStarNetworkEnabled())
return false;
std::string gatewayAddress = m_conf.getDStarGatewayAddress();
unsigned int gatewayPort = m_conf.getDStarGatewayPort();
unsigned int localPort = m_conf.getDStarLocalPort();
bool debug = m_conf.getDStarNetworkDebug();
LogInfo("D-Star Network Parameters");
LogInfo(" Gateway Address: %s", gatewayAddress.c_str());
LogInfo(" Gateway Port: %u", gatewayPort);
LogInfo(" Local Port: %u", localPort);
m_dstarNetwork = new CDStarNetwork(gatewayAddress, gatewayPort, localPort, debug);
bool ret = m_dstarNetwork->open();
if (!ret) {
delete m_dstarNetwork;
m_dstarNetwork = NULL;
return false;
}
m_dstarNetwork->enable(true);
return true;
}
bool CMMDVMHost::createDMRNetwork()
{
if (!m_conf.getDMRNetworkEnabled())