[unlim-networks] DMRGateway

This commit is contained in:
Alexander Mokrov UR6LKW 2025-06-01 20:30:57 +03:00
parent fa558552d8
commit 366b32a29a
3 changed files with 306 additions and 1465 deletions

File diff suppressed because it is too large Load diff

View file

@ -39,14 +39,15 @@
enum class DMRGW_STATUS { enum class DMRGW_STATUS {
NONE, NONE,
DMRNETWORK1, DMRNETWORK,
DMRNETWORK2,
DMRNETWORK3,
DMRNETWORK4,
DMRNETWORK5,
XLXREFLECTOR XLXREFLECTOR
}; };
struct CDMRGWExtStatus {
DMRGW_STATUS m_status;
unsigned int m_dmrNetwork;
};
class CDMRGateway class CDMRGateway
{ {
public: public:
@ -60,20 +61,13 @@ public:
private: private:
CConf m_conf; CConf m_conf;
DMRGW_STATUS* m_status; CDMRGWExtStatus* m_extStatus;
CMMDVMNetwork* m_repeater; CMMDVMNetwork* m_repeater;
unsigned char* m_config; unsigned char* m_config;
unsigned int m_configLen; unsigned int m_configLen;
CDMRNetwork* m_dmrNetwork1; unsigned int m_dmrNetworkCount;
std::string m_dmr1Name; std::vector<CDMRNetwork*> m_dmrNetworks;
CDMRNetwork* m_dmrNetwork2; std::vector<std::string> m_dmrName;
std::string m_dmr2Name;
CDMRNetwork* m_dmrNetwork3;
std::string m_dmr3Name;
CDMRNetwork* m_dmrNetwork4;
std::string m_dmr4Name;
CDMRNetwork* m_dmrNetwork5;
std::string m_dmr5Name;
CReflectors* m_xlxReflectors; CReflectors* m_xlxReflectors;
CDMRNetwork* m_xlxNetwork; CDMRNetwork* m_xlxNetwork;
unsigned int m_xlxId; unsigned int m_xlxId;
@ -95,26 +89,10 @@ private:
CRewriteTG* m_rptRewrite; CRewriteTG* m_rptRewrite;
CRewriteTG* m_xlxRewrite; CRewriteTG* m_xlxRewrite;
CXLXVoice* m_xlxVoice; CXLXVoice* m_xlxVoice;
std::vector<CRewrite*> m_dmr1NetRewrites; std::vector<std::vector<CRewrite*>> m_dmrNetRewrites;
std::vector<CRewrite*> m_dmr1RFRewrites; std::vector<std::vector<CRewrite*>> m_dmrRFRewrites;
std::vector<CRewrite*> m_dmr1SrcRewrites; std::vector<std::vector<CRewrite*>> m_dmrSrcRewrites;
std::vector<CRewrite*> m_dmr2NetRewrites; std::vector<std::vector<CRewrite*>> m_dmrPassalls;
std::vector<CRewrite*> m_dmr2RFRewrites;
std::vector<CRewrite*> m_dmr2SrcRewrites;
std::vector<CRewrite*> m_dmr3NetRewrites;
std::vector<CRewrite*> m_dmr3RFRewrites;
std::vector<CRewrite*> m_dmr3SrcRewrites;
std::vector<CRewrite*> m_dmr4NetRewrites;
std::vector<CRewrite*> m_dmr4RFRewrites;
std::vector<CRewrite*> m_dmr4SrcRewrites;
std::vector<CRewrite*> m_dmr5NetRewrites;
std::vector<CRewrite*> m_dmr5RFRewrites;
std::vector<CRewrite*> m_dmr5SrcRewrites;
std::vector<CRewrite*> m_dmr1Passalls;
std::vector<CRewrite*> m_dmr2Passalls;
std::vector<CRewrite*> m_dmr3Passalls;
std::vector<CRewrite*> m_dmr4Passalls;
std::vector<CRewrite*> m_dmr5Passalls;
std::vector<CDynVoice*> m_dynVoices; std::vector<CDynVoice*> m_dynVoices;
std::vector<CRewriteDynTGRF*> m_dynRF; std::vector<CRewriteDynTGRF*> m_dynRF;
CUDPSocket* m_socket; CUDPSocket* m_socket;
@ -125,20 +103,12 @@ private:
#if defined(USE_GPSD) #if defined(USE_GPSD)
CGPSD* m_gpsd; CGPSD* m_gpsd;
#endif #endif
bool m_network1Enabled; bool* m_networkEnabled;
bool m_network2Enabled;
bool m_network3Enabled;
bool m_network4Enabled;
bool m_network5Enabled;
bool m_networkXlxEnabled; bool m_networkXlxEnabled;
CRemoteControl* m_remoteControl; CRemoteControl* m_remoteControl;
bool createMMDVM(); bool createMMDVM();
bool createDMRNetwork1(); bool createDMRNetwork(unsigned int index);
bool createDMRNetwork2();
bool createDMRNetwork3();
bool createDMRNetwork4();
bool createDMRNetwork5();
bool createXLXNetwork(); bool createXLXNetwork();
bool createDynamicTGControl(); bool createDynamicTGControl();

View file

@ -25,17 +25,24 @@
#include <string> #include <string>
enum class REMOTE_COMMAND { enum class REMOTE_COMMAND {
//!!TODO: make command with argument to remove networks limit
ENABLE_NETWORK1, ENABLE_NETWORK1,
ENABLE_NETWORK2, ENABLE_NETWORK2,
ENABLE_NETWORK3, ENABLE_NETWORK3,
ENABLE_NETWORK4, ENABLE_NETWORK4,
ENABLE_NETWORK5, ENABLE_NETWORK5,
ENABLE_NETWORK6,
ENABLE_NETWORK7,
ENABLE_NETWORK8,
ENABLE_XLX, ENABLE_XLX,
DISABLE_NETWORK1, DISABLE_NETWORK1,
DISABLE_NETWORK2, DISABLE_NETWORK2,
DISABLE_NETWORK3, DISABLE_NETWORK3,
DISABLE_NETWORK4, DISABLE_NETWORK4,
DISABLE_NETWORK5, DISABLE_NETWORK5,
DISABLE_NETWORK6,
DISABLE_NETWORK7,
DISABLE_NETWORK8,
DISABLE_XLX, DISABLE_XLX,
CONNECTION_STATUS, CONNECTION_STATUS,
CONFIG_HOSTS, CONFIG_HOSTS,