[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 {
NONE,
DMRNETWORK1,
DMRNETWORK2,
DMRNETWORK3,
DMRNETWORK4,
DMRNETWORK5,
DMRNETWORK,
XLXREFLECTOR
};
struct CDMRGWExtStatus {
DMRGW_STATUS m_status;
unsigned int m_dmrNetwork;
};
class CDMRGateway
{
public:
@ -60,20 +61,13 @@ public:
private:
CConf m_conf;
DMRGW_STATUS* m_status;
CDMRGWExtStatus* m_extStatus;
CMMDVMNetwork* m_repeater;
unsigned char* m_config;
unsigned int m_configLen;
CDMRNetwork* m_dmrNetwork1;
std::string m_dmr1Name;
CDMRNetwork* m_dmrNetwork2;
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;
unsigned int m_dmrNetworkCount;
std::vector<CDMRNetwork*> m_dmrNetworks;
std::vector<std::string> m_dmrName;
CReflectors* m_xlxReflectors;
CDMRNetwork* m_xlxNetwork;
unsigned int m_xlxId;
@ -95,26 +89,10 @@ private:
CRewriteTG* m_rptRewrite;
CRewriteTG* m_xlxRewrite;
CXLXVoice* m_xlxVoice;
std::vector<CRewrite*> m_dmr1NetRewrites;
std::vector<CRewrite*> m_dmr1RFRewrites;
std::vector<CRewrite*> m_dmr1SrcRewrites;
std::vector<CRewrite*> m_dmr2NetRewrites;
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<std::vector<CRewrite*>> m_dmrNetRewrites;
std::vector<std::vector<CRewrite*>> m_dmrRFRewrites;
std::vector<std::vector<CRewrite*>> m_dmrSrcRewrites;
std::vector<std::vector<CRewrite*>> m_dmrPassalls;
std::vector<CDynVoice*> m_dynVoices;
std::vector<CRewriteDynTGRF*> m_dynRF;
CUDPSocket* m_socket;
@ -125,20 +103,12 @@ private:
#if defined(USE_GPSD)
CGPSD* m_gpsd;
#endif
bool m_network1Enabled;
bool m_network2Enabled;
bool m_network3Enabled;
bool m_network4Enabled;
bool m_network5Enabled;
bool* m_networkEnabled;
bool m_networkXlxEnabled;
CRemoteControl* m_remoteControl;
bool createMMDVM();
bool createDMRNetwork1();
bool createDMRNetwork2();
bool createDMRNetwork3();
bool createDMRNetwork4();
bool createDMRNetwork5();
bool createDMRNetwork(unsigned int index);
bool createXLXNetwork();
bool createDynamicTGControl();

View file

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