Add new remote command:
- hosts: display connected hosts, or NONE if disconnected (surrounded with double quotes). Increase buffer size, for reply string, from 100 to 1024.
This commit is contained in:
parent
e0adf4328b
commit
a30ae3af4d
|
@ -51,6 +51,7 @@ m_random()
|
||||||
m_addrLen = 0U;
|
m_addrLen = 0U;
|
||||||
|
|
||||||
m_linkReflector = new unsigned char[DSTAR_LONG_CALLSIGN_LENGTH];
|
m_linkReflector = new unsigned char[DSTAR_LONG_CALLSIGN_LENGTH];
|
||||||
|
::memset(m_linkReflector, 0, DSTAR_LONG_CALLSIGN_LENGTH);
|
||||||
|
|
||||||
std::random_device rd;
|
std::random_device rd;
|
||||||
std::mt19937 mt(rd());
|
std::mt19937 mt(rd());
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include "I2CController.h"
|
#include "I2CController.h"
|
||||||
#endif
|
#endif
|
||||||
#include "UDPController.h"
|
#include "UDPController.h"
|
||||||
|
#include "DStarDefines.h"
|
||||||
#include "Version.h"
|
#include "Version.h"
|
||||||
#include "StopWatch.h"
|
#include "StopWatch.h"
|
||||||
#include "Defines.h"
|
#include "Defines.h"
|
||||||
|
@ -2701,3 +2702,37 @@ void CMMDVMHost::buildNetworkStatusString(std::string &str)
|
||||||
str += std::string(" m17:") + (((m_m17Network == NULL) || (m_m17Enabled == false)) ? "n/a" : (m_m17Network->isConnected() ? "conn" : "disc"));
|
str += std::string(" m17:") + (((m_m17Network == NULL) || (m_m17Enabled == false)) ? "n/a" : (m_m17Network->isConnected() ? "conn" : "disc"));
|
||||||
str += std::string(" fm:") + (m_fmEnabled ? "conn" : "n/a");
|
str += std::string(" fm:") + (m_fmEnabled ? "conn" : "n/a");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CMMDVMHost::buildNetworkHostsString(std::string &str)
|
||||||
|
{
|
||||||
|
str = "";
|
||||||
|
|
||||||
|
std::string dstarReflector;
|
||||||
|
if (m_dstarEnabled && (m_dstarNetwork != NULL)) {
|
||||||
|
unsigned char ref[DSTAR_LONG_CALLSIGN_LENGTH + 1];
|
||||||
|
LINK_STATUS status;
|
||||||
|
|
||||||
|
::memset(ref, 0, sizeof(ref));
|
||||||
|
|
||||||
|
m_dstarNetwork->getStatus(status, &ref[0]);
|
||||||
|
switch (status) {
|
||||||
|
case LINK_STATUS::LS_LINKED_LOOPBACK:
|
||||||
|
case LINK_STATUS::LS_LINKED_DEXTRA:
|
||||||
|
case LINK_STATUS::LS_LINKED_DPLUS:
|
||||||
|
case LINK_STATUS::LS_LINKED_DCS:
|
||||||
|
case LINK_STATUS::LS_LINKED_CCS:
|
||||||
|
dstarReflector = std::string((char *)ref);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
str += std::string("dstar:\"") + ((dstarReflector.length() == 0) ? "NONE" : dstarReflector) + "\"";
|
||||||
|
str += std::string(" dmr:\"") + ((m_dmrEnabled && (m_dmrNetwork != NULL)) ? m_conf.getDMRNetworkRemoteAddress() : "NONE") + "\"";
|
||||||
|
str += std::string(" ysf:\"") + ((m_ysfEnabled && (m_ysfNetwork != NULL)) ? m_conf.getFusionNetworkGatewayAddress() : "NONE") + "\"";
|
||||||
|
str += std::string(" p25:\"") + ((m_p25Enabled && (m_p25Network != NULL)) ? m_conf.getP25GatewayAddress() : "NONE") + "\"";
|
||||||
|
str += std::string(" nxdn:\"") + ((m_nxdnEnabled && (m_nxdnNetwork != NULL)) ? m_conf.getNXDNGatewayAddress() : "NONE") + "\"";
|
||||||
|
str += std::string(" m17:\"") + ((m_m17Enabled && (m_m17Network != NULL)) ? m_conf.getM17GatewayAddress() : "NONE") + "\"";
|
||||||
|
str += std::string(" fm:\"") + ((m_fmEnabled && (m_fmNetwork != NULL)) ? m_conf.getFMGatewayAddress() : "NONE") + "\"";
|
||||||
|
}
|
||||||
|
|
|
@ -57,6 +57,7 @@ public:
|
||||||
int run();
|
int run();
|
||||||
|
|
||||||
void buildNetworkStatusString(std::string &str);
|
void buildNetworkStatusString(std::string &str);
|
||||||
|
void buildNetworkHostsString(std::string &str);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CConf m_conf;
|
CConf m_conf;
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
|
|
||||||
const unsigned int BUFFER_LENGTH = 100U;
|
const unsigned int BUFFER_LENGTH = 1024U;
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
|
|
|
@ -151,6 +151,14 @@ REMOTE_COMMAND CRemoteControl::getCommand()
|
||||||
}
|
}
|
||||||
|
|
||||||
m_command = RCD_CONNECTION_STATUS;
|
m_command = RCD_CONNECTION_STATUS;
|
||||||
|
} else if (m_args.at(0U) == "hosts") {
|
||||||
|
if (m_host != NULL) {
|
||||||
|
m_host->buildNetworkHostsString(replyStr);
|
||||||
|
} else {
|
||||||
|
replyStr = "KO";
|
||||||
|
}
|
||||||
|
|
||||||
|
m_command = RCD_CONFIG_HOSTS;
|
||||||
} else {
|
} else {
|
||||||
replyStr = "KO";
|
replyStr = "KO";
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,8 @@ enum REMOTE_COMMAND {
|
||||||
RCD_PAGE,
|
RCD_PAGE,
|
||||||
RCD_CW,
|
RCD_CW,
|
||||||
RCD_RELOAD,
|
RCD_RELOAD,
|
||||||
RCD_CONNECTION_STATUS
|
RCD_CONNECTION_STATUS,
|
||||||
|
RCD_CONFIG_HOSTS
|
||||||
};
|
};
|
||||||
|
|
||||||
class CRemoteControl {
|
class CRemoteControl {
|
||||||
|
|
Loading…
Reference in New Issue