New methods to retrieve product and vendor information of the radio used for better dashboard integration.
This commit is contained in:
parent
bb8ed356d0
commit
b0ad69cf1f
|
|
@ -324,6 +324,12 @@ void Reflector::updateRssistate(Json::Value eventmessage)
|
|||
} /* Reflector::updateRssistate */
|
||||
|
||||
|
||||
void Reflector::updateSysteminfostate(Json::Value eventmessage)
|
||||
{
|
||||
cout << jsonToString(eventmessage) << endl;
|
||||
} /* Reflector::updateSysteminfostate */
|
||||
|
||||
|
||||
void Reflector::nodeList(std::vector<std::string>& nodes) const
|
||||
{
|
||||
nodes.clear();
|
||||
|
|
|
|||
|
|
@ -200,6 +200,12 @@ class Reflector : public sigc::trackable
|
|||
*/
|
||||
void updateQsostate(Json::Value eventmessage);
|
||||
|
||||
/**
|
||||
* @brief Update System information
|
||||
* @param event message with System information
|
||||
*/
|
||||
void updateSysteminfostate(Json::Value eventmessage);
|
||||
|
||||
/**
|
||||
* @brief Update Rssi information
|
||||
* @param event message with rssi info
|
||||
|
|
|
|||
|
|
@ -722,6 +722,10 @@ void ReflectorClient::handleStateEvent(std::istream& is)
|
|||
{
|
||||
m_reflector->updateRssistate(eventmessage);
|
||||
}
|
||||
else if (msg.name() == "System:info")
|
||||
{
|
||||
m_reflector->updateSysteminfostate(eventmessage);
|
||||
}
|
||||
} /* ReflectorClient::handleStateEvent */
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -117,6 +117,8 @@ using namespace SvxLink;
|
|||
#define WAP_MESSAGE 32
|
||||
#define LOCATION_SYSTEM_TSDU 33
|
||||
#define RSSI 34
|
||||
#define VENDOR 35
|
||||
#define MODEL 36
|
||||
|
||||
#define DMO_OFF 7
|
||||
#define DMO_ON 8
|
||||
|
|
@ -132,7 +134,7 @@ using namespace SvxLink;
|
|||
|
||||
#define MAX_TRIES 5
|
||||
|
||||
#define TETRA_LOGIC_VERSION "10012023"
|
||||
#define TETRA_LOGIC_VERSION "13012023"
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
|
|
@ -210,7 +212,7 @@ TetraLogic::TetraLogic(void)
|
|||
dmcc(0), dissi(0), infosds(""), is_tx(false), last_sdsid(0), pei_pty_path(""),
|
||||
pei_pty(0), ai(-1), check_qos(0), qos_sds_to("0815"), qos_limit(-90),
|
||||
qosTimer(300000, Timer::TYPE_ONESHOT, false), min_rssi(100), max_rssi(100),
|
||||
reg_cell(0), reg_la(0), reg_mni(0)
|
||||
reg_cell(0), reg_la(0), reg_mni(0), vendor(""), model("")
|
||||
{
|
||||
peiComTimer.expired.connect(mem_fun(*this, &TetraLogic::onComTimeout));
|
||||
peiActivityTimer.expired.connect(mem_fun(*this,
|
||||
|
|
@ -729,7 +731,7 @@ bool TetraLogic::initialize(Async::Config& cfgobj, const std::string& logic_name
|
|||
|
||||
rxValveSetOpen(true);
|
||||
setTxCtrlMode(Tx::TX_AUTO);
|
||||
|
||||
|
||||
processEvent("startup");
|
||||
|
||||
cout << ">>> Started SvxLink with special TetraLogic extension (v"
|
||||
|
|
@ -904,6 +906,7 @@ void TetraLogic::initPei(void)
|
|||
ss << "pei_init_finished";
|
||||
processEvent(ss.str());
|
||||
sendUserInfo(); // send userinfo to reflector
|
||||
if (vendor.length() > 1) sendSystemInfo(); // send systeminfo to reflector
|
||||
peirequest = INIT_COMPLETE;
|
||||
}
|
||||
} /* TetraLogic::initPei */
|
||||
|
|
@ -1072,6 +1075,14 @@ void TetraLogic::handlePeiAnswer(std::string m_message)
|
|||
handleCreg(m_message);
|
||||
break;
|
||||
|
||||
case VENDOR:
|
||||
handleVendor(m_message);
|
||||
break;
|
||||
|
||||
case MODEL:
|
||||
handleModel(m_message);
|
||||
break;
|
||||
|
||||
case INVALID:
|
||||
log(LOGWARN, "+++ Pei answer not known, ignoring ;)");
|
||||
|
||||
|
|
@ -2037,6 +2048,8 @@ int TetraLogic::handleMessage(std::string mesg)
|
|||
mre["^\\+CLVL:"] = CLVL;
|
||||
mre["^\\+CSQ:"] = RSSI;
|
||||
mre["^\\+CREG:"] = REGISTRATION;
|
||||
mre["^\\+GMI:"] = VENDOR;
|
||||
mre["^\\+GMM:"] = MODEL;
|
||||
mre["^01"] = OTAK;
|
||||
mre["^02"] = SIMPLE_TEXT_SDS;
|
||||
mre["^03"] = SIMPLE_LIP_SDS;
|
||||
|
|
@ -2487,6 +2500,36 @@ void TetraLogic::handleCreg(std::string m_message)
|
|||
} /* TetraLogic::handleCreg */
|
||||
|
||||
|
||||
void TetraLogic::handleModel(std::string m_message)
|
||||
{
|
||||
// +GMM: 54007,M83PF-----AN,88.2.0.0
|
||||
m_message.erase(0,6);
|
||||
model = getNextStr(m_message);
|
||||
} /* TetraLogic::handleModel */
|
||||
|
||||
|
||||
void TetraLogic::handleVendor(std::string m_message)
|
||||
{
|
||||
// +GMI: MOTOROLA
|
||||
m_message.erase(0,6);
|
||||
vendor = m_message;
|
||||
} /* TetraLogic::handleVendor */
|
||||
|
||||
|
||||
void TetraLogic::sendSystemInfo(void)
|
||||
{
|
||||
// prepare event systeminfo for reflector
|
||||
Json::Value systeminfo(Json::objectValue);
|
||||
systeminfo["vendor"] = vendor;
|
||||
systeminfo["model"] = model;
|
||||
systeminfo["call"] = callsign();
|
||||
systeminfo["issi"] = issi;
|
||||
systeminfo["message"] = "Signal:info";
|
||||
systeminfo["tl_version"] = TETRA_LOGIC_VERSION;
|
||||
publishInfo("System:info", systeminfo);
|
||||
} /* TetraLogic::sendSystemInfo */
|
||||
|
||||
|
||||
std::string TetraLogic::jsonToString(Json::Value eventmessage)
|
||||
{
|
||||
Json::StreamWriterBuilder builder;
|
||||
|
|
|
|||
|
|
@ -297,7 +297,7 @@ class TetraLogic : public Logic
|
|||
{
|
||||
SDS_SEND_OK = 4, SDS_SEND_FAILED = 5
|
||||
} SdsSentState;
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
TMO=0, DMO_MS=1, VD_DUAL_WATCH_DMO=2, DMO_DUAL_WATCH_DV=3, GATEWAY=5,
|
||||
|
|
@ -366,6 +366,8 @@ class TetraLogic : public Logic
|
|||
int reg_la;
|
||||
int reg_mni;
|
||||
int reg_state;
|
||||
std::string vendor;
|
||||
std::string model;
|
||||
|
||||
void initPei(void);
|
||||
void onCharactersReceived(char *buf, int count);
|
||||
|
|
@ -419,6 +421,9 @@ class TetraLogic : public Logic
|
|||
void handleRssi(std::string m_message);
|
||||
void handleCreg(std::string m_message);
|
||||
void checkReg(void);
|
||||
void handleModel(std::string m_message);
|
||||
void handleVendor(std::string m_message);
|
||||
void sendSystemInfo(void);
|
||||
std::string jsonToString(Json::Value eventmessage);
|
||||
}; /* class TetraLogic */
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[
|
||||
{ "mode" : "TMO", "commands" : ["AT+CTOM=0", "AT+CTSP=1,3,131", "AT+CTSP=1,3,130", "AT+CTSP=1,3,138", "AT+CTSP=1,2,20", "AT+CTSP=2,0,0", "AT+CTSP=1,3,24", "AT+CTSP=1,3,25", "AT+CTSP=1,3,3", "AT+CTSP=1,3,10", "AT+CTSP=1,1,11", "AT+CTSDC=0,0,0,1,1,0,1,1,0,0"]},
|
||||
{ "mode" : "DMO-RPT", "commands" : ["AT+CTOM=6", "AT+CTSP=1,3,131", "AT+CTSP=1,3,130", "AT+CTSP=1,3,138", "AT+CTSP=1,2,20", "AT+CTSP=2,0,0", "AT+CTSP=1,3,24", "AT+CTSP=1,3,25", "AT+CTSP=1,3,3", "AT+CTSP=1,3,10", "AT+CTSP=1,1,11", "AT+CTSDC=0,0,0,1,1,0,1,1,0,0"]},
|
||||
{ "mode" : "DMO-MS", "commands" : ["AT+CTOM=1", "AT+CTSP=1,3,131", "AT+CTSP=1,3,130", "AT+CTSP=1,3,138", "AT+CTSP=1,2,20", "AT+CTSP=2,0,0", "AT+CTSP=1,3,24", "AT+CTSP=1,3,25", "AT+CTSP=1,3,3", "AT+CTSP=1,3,10", "AT+CTSP=1,1,11", "AT+CTSDC=0,0,0,1,1,0,1,1,0,0"]},
|
||||
{ "mode" : "GATEWAY", "commands" : ["AT+CTOM=5", "AT+CTSP=1,3,131", "AT+CTSP=1,3,130", "AT+CTSP=1,3,138", "AT+CTSP=1,2,20", "AT+CTSP=2,0,0", "AT+CTSP=1,3,24", "AT+CTSP=1,3,25", "AT+CTSP=1,3,3", "AT+CTSP=1,3,10", "AT+CTSP=1,1,11", "AT+CTSDC=0,0,0,1,1,0,1,1,0,0"]}
|
||||
{ "mode" : "TMO", "commands" : ["AT+CTOM=0", "AT+CTSP=1,3,131", "AT+CTSP=1,3,130", "AT+CTSP=1,3,138", "AT+CTSP=1,2,20", "AT+CTSP=2,0,0", "AT+CTSP=1,3,24", "AT+CTSP=1,3,25", "AT+CTSP=1,3,3", "AT+CTSP=1,3,10", "AT+CTSP=1,1,11", "AT+CTSDC=0,0,0,1,1,0,1,1,0,0", "AT+GMI", "AT+GMM"]},
|
||||
{ "mode" : "DMO-RPT", "commands" : ["AT+CTOM=6", "AT+CTSP=1,3,131", "AT+CTSP=1,3,130", "AT+CTSP=1,3,138", "AT+CTSP=1,2,20", "AT+CTSP=2,0,0", "AT+CTSP=1,3,24", "AT+CTSP=1,3,25", "AT+CTSP=1,3,3", "AT+CTSP=1,3,10", "AT+CTSP=1,1,11", "AT+CTSDC=0,0,0,1,1,0,1,1,0,0", "AT+GMI", "AT+GMM"]},
|
||||
{ "mode" : "DMO-MS", "commands" : ["AT+CTOM=1", "AT+CTSP=1,3,131", "AT+CTSP=1,3,130", "AT+CTSP=1,3,138", "AT+CTSP=1,2,20", "AT+CTSP=2,0,0", "AT+CTSP=1,3,24", "AT+CTSP=1,3,25", "AT+CTSP=1,3,3", "AT+CTSP=1,3,10", "AT+CTSP=1,1,11", "AT+CTSDC=0,0,0,1,1,0,1,1,0,0", "AT+GMI", "AT+GMM"]},
|
||||
{ "mode" : "GATEWAY", "commands" : ["AT+CTOM=5", "AT+CTSP=1,3,131", "AT+CTSP=1,3,130", "AT+CTSP=1,3,138", "AT+CTSP=1,2,20", "AT+CTSP=2,0,0", "AT+CTSP=1,3,24", "AT+CTSP=1,3,25", "AT+CTSP=1,3,3", "AT+CTSP=1,3,10", "AT+CTSP=1,1,11", "AT+CTSDC=0,0,0,1,1,0,1,1,0,0", "AT+GMI", "AT+GMM"]}
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in New Issue