mirror of
https://github.com/g4klx/DMRGateway
synced 2025-12-21 21:45:39 +08:00
Flo's fixes and other bits.
This commit is contained in:
6
Conf.cpp
6
Conf.cpp
@@ -45,13 +45,13 @@ m_localAddress("127.0.0.1"),
|
|||||||
m_localPort(62031U),
|
m_localPort(62031U),
|
||||||
m_timeout(10U),
|
m_timeout(10U),
|
||||||
m_debug(false),
|
m_debug(false),
|
||||||
|
m_voiceEnabled(true),
|
||||||
|
m_voiceLanguage("en_GB"),
|
||||||
|
m_voiceDirectory(),
|
||||||
m_logDisplayLevel(0U),
|
m_logDisplayLevel(0U),
|
||||||
m_logFileLevel(0U),
|
m_logFileLevel(0U),
|
||||||
m_logFilePath(),
|
m_logFilePath(),
|
||||||
m_logFileRoot(),
|
m_logFileRoot(),
|
||||||
m_voiceEnabled(true),
|
|
||||||
m_voiceLanguage("en_GB"),
|
|
||||||
m_voiceDirectory(),
|
|
||||||
m_dmrNetwork1Enabled(false),
|
m_dmrNetwork1Enabled(false),
|
||||||
m_dmrNetwork1Id(0U),
|
m_dmrNetwork1Id(0U),
|
||||||
m_dmrNetwork1Address(),
|
m_dmrNetwork1Address(),
|
||||||
|
|||||||
12
Conf.h
12
Conf.h
@@ -119,6 +119,9 @@ private:
|
|||||||
unsigned int m_dmrNetwork1Local;
|
unsigned int m_dmrNetwork1Local;
|
||||||
std::string m_dmrNetwork1Password;
|
std::string m_dmrNetwork1Password;
|
||||||
bool m_dmrNetwork1Debug;
|
bool m_dmrNetwork1Debug;
|
||||||
|
std::vector<CRewriteStruct> m_dmrNetwork1Rewrites;
|
||||||
|
bool m_dmrNetwork1PrivateSlot1;
|
||||||
|
bool m_dmrNetwork1PrivateSlot2;
|
||||||
|
|
||||||
bool m_dmrNetwork2Enabled;
|
bool m_dmrNetwork2Enabled;
|
||||||
unsigned int m_dmrNetwork2Id;
|
unsigned int m_dmrNetwork2Id;
|
||||||
@@ -127,9 +130,9 @@ private:
|
|||||||
unsigned int m_dmrNetwork2Local;
|
unsigned int m_dmrNetwork2Local;
|
||||||
std::string m_dmrNetwork2Password;
|
std::string m_dmrNetwork2Password;
|
||||||
bool m_dmrNetwork2Debug;
|
bool m_dmrNetwork2Debug;
|
||||||
std::vector<CRewriteStruct> m_dmrNetwork1Rewrites;
|
std::vector<CRewriteStruct> m_dmrNetwork2Rewrites;
|
||||||
bool m_dmrNetwork1PrivateSlot1;
|
bool m_dmrNetwork2PrivateSlot1;
|
||||||
bool m_dmrNetwork1PrivateSlot2;
|
bool m_dmrNetwork2PrivateSlot2;
|
||||||
|
|
||||||
bool m_xlxNetworkEnabled;
|
bool m_xlxNetworkEnabled;
|
||||||
unsigned int m_xlxNetworkId;
|
unsigned int m_xlxNetworkId;
|
||||||
@@ -141,9 +144,6 @@ private:
|
|||||||
unsigned int m_xlxNetworkTG;
|
unsigned int m_xlxNetworkTG;
|
||||||
std::string m_xlxNetworkOptions;
|
std::string m_xlxNetworkOptions;
|
||||||
bool m_xlxNetworkDebug;
|
bool m_xlxNetworkDebug;
|
||||||
std::vector<CRewriteStruct> m_dmrNetwork2Rewrites;
|
|
||||||
bool m_dmrNetwork2PrivateSlot1;
|
|
||||||
bool m_dmrNetwork2PrivateSlot2;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
#include "DMRGateway.h"
|
#include "DMRGateway.h"
|
||||||
#include "Version.h"
|
#include "Version.h"
|
||||||
#include "StopWatch.h"
|
#include "StopWatch.h"
|
||||||
#include "Rewrite.h"
|
|
||||||
#include "Thread.h"
|
#include "Thread.h"
|
||||||
#include "Voice.h"
|
#include "Voice.h"
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
@@ -122,6 +121,8 @@ m_xlxNetwork(NULL),
|
|||||||
m_reflector(4000U),
|
m_reflector(4000U),
|
||||||
m_xlxSlot(0U),
|
m_xlxSlot(0U),
|
||||||
m_xlxTG(0U),
|
m_xlxTG(0U),
|
||||||
|
m_rptRewrite(NULL),
|
||||||
|
m_xlxRewrite(NULL),
|
||||||
m_dmr1NetRewrites(),
|
m_dmr1NetRewrites(),
|
||||||
m_dmr1RFRewrites(),
|
m_dmr1RFRewrites(),
|
||||||
m_dmr2NetRewrites(),
|
m_dmr2NetRewrites(),
|
||||||
@@ -260,6 +261,7 @@ int CDMRGateway::run()
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (m_conf.getXLXNetworkEnabled()) {
|
if (m_conf.getXLXNetworkEnabled()) {
|
||||||
ret = createXLXNetwork();
|
ret = createXLXNetwork();
|
||||||
if (!ret)
|
if (!ret)
|
||||||
@@ -268,9 +270,6 @@ int CDMRGateway::run()
|
|||||||
|
|
||||||
unsigned int timeout = m_conf.getTimeout();
|
unsigned int timeout = m_conf.getTimeout();
|
||||||
|
|
||||||
CRewrite rptRewrite(XLX_SLOT, XLX_TG, m_xlxSlot, m_xlxTG);
|
|
||||||
CRewrite xlxRewrite(m_xlxSlot, m_xlxTG, XLX_SLOT, XLX_TG);
|
|
||||||
|
|
||||||
CVoice* voice = NULL;
|
CVoice* voice = NULL;
|
||||||
if (m_conf.getVoiceEnabled() && m_xlxNetwork != NULL) {
|
if (m_conf.getVoiceEnabled() && m_xlxNetwork != NULL) {
|
||||||
std::string language = m_conf.getVoiceLanguage();
|
std::string language = m_conf.getVoiceLanguage();
|
||||||
@@ -315,7 +314,7 @@ int CDMRGateway::run()
|
|||||||
FLCO flco = data.getFLCO();
|
FLCO flco = data.getFLCO();
|
||||||
|
|
||||||
if (flco == FLCO_GROUP && slotNo == m_xlxSlot && dstId == m_xlxTG) {
|
if (flco == FLCO_GROUP && slotNo == m_xlxSlot && dstId == m_xlxTG) {
|
||||||
xlxRewrite.process(data);
|
m_xlxRewrite->process(data);
|
||||||
m_xlxNetwork->write(data);
|
m_xlxNetwork->write(data);
|
||||||
status[slotNo] = DMRGWS_REFLECTOR;
|
status[slotNo] = DMRGWS_REFLECTOR;
|
||||||
timer[slotNo]->start();
|
timer[slotNo]->start();
|
||||||
@@ -347,7 +346,7 @@ int CDMRGateway::run()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (flco = FLCO_USER_USER) {
|
} else if (flco == FLCO_USER_USER) {
|
||||||
if (m_dmrNetwork1 != NULL && slotNo == 1U && m_dmr1PrivateSlot1) {
|
if (m_dmrNetwork1 != NULL && slotNo == 1U && m_dmr1PrivateSlot1) {
|
||||||
m_dmrNetwork1->write(data);
|
m_dmrNetwork1->write(data);
|
||||||
status[slotNo] = DMRGWS_NETWORK1;
|
status[slotNo] = DMRGWS_NETWORK1;
|
||||||
@@ -418,7 +417,7 @@ int CDMRGateway::run()
|
|||||||
if (status[m_xlxSlot] == DMRGWS_NONE || status[m_xlxSlot] == DMRGWS_REFLECTOR) {
|
if (status[m_xlxSlot] == DMRGWS_NONE || status[m_xlxSlot] == DMRGWS_REFLECTOR) {
|
||||||
unsigned int slotNo = data.getSlotNo();
|
unsigned int slotNo = data.getSlotNo();
|
||||||
if (slotNo == XLX_SLOT) {
|
if (slotNo == XLX_SLOT) {
|
||||||
rptRewrite.process(data);
|
m_rptRewrite->process(data);
|
||||||
m_repeater->write(data);
|
m_repeater->write(data);
|
||||||
status[m_xlxSlot] = DMRGWS_REFLECTOR;
|
status[m_xlxSlot] = DMRGWS_REFLECTOR;
|
||||||
timer[m_xlxSlot]->start();
|
timer[m_xlxSlot]->start();
|
||||||
@@ -575,6 +574,9 @@ int CDMRGateway::run()
|
|||||||
delete m_xlxNetwork;
|
delete m_xlxNetwork;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete m_rptRewrite;
|
||||||
|
delete m_xlxRewrite;
|
||||||
|
|
||||||
delete timer[1U];
|
delete timer[1U];
|
||||||
delete timer[2U];
|
delete timer[2U];
|
||||||
|
|
||||||
@@ -628,7 +630,7 @@ bool CDMRGateway::createDMRNetwork1()
|
|||||||
else
|
else
|
||||||
LogInfo(" Local: random");
|
LogInfo(" Local: random");
|
||||||
|
|
||||||
m_dmrNetwork1 = new CDMRNetwork(address, port, local, id, password, "DMR", debug);
|
m_dmrNetwork1 = new CDMRNetwork(address, port, local, id, password, "DMR1", debug);
|
||||||
|
|
||||||
std::string options = m_repeater->getOptions();
|
std::string options = m_repeater->getOptions();
|
||||||
if (!options.empty()) {
|
if (!options.empty()) {
|
||||||
@@ -689,7 +691,7 @@ bool CDMRGateway::createDMRNetwork2()
|
|||||||
else
|
else
|
||||||
LogInfo(" Local: random");
|
LogInfo(" Local: random");
|
||||||
|
|
||||||
m_dmrNetwork2 = new CDMRNetwork(address, port, local, id, password, "DMR", debug);
|
m_dmrNetwork2 = new CDMRNetwork(address, port, local, id, password, "DMR2", debug);
|
||||||
|
|
||||||
std::string options = m_repeater->getOptions();
|
std::string options = m_repeater->getOptions();
|
||||||
if (!options.empty()) {
|
if (!options.empty()) {
|
||||||
@@ -776,5 +778,8 @@ bool CDMRGateway::createXLXNetwork()
|
|||||||
LogInfo(" Slot: %u", m_xlxSlot);
|
LogInfo(" Slot: %u", m_xlxSlot);
|
||||||
LogInfo(" TG: %u", m_xlxTG);
|
LogInfo(" TG: %u", m_xlxTG);
|
||||||
|
|
||||||
|
m_rptRewrite = new CRewrite(XLX_SLOT, XLX_TG, m_xlxSlot, m_xlxTG);
|
||||||
|
m_xlxRewrite = new CRewrite(m_xlxSlot, m_xlxTG, XLX_SLOT, XLX_TG);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,8 @@ private:
|
|||||||
unsigned int m_reflector;
|
unsigned int m_reflector;
|
||||||
unsigned int m_xlxSlot;
|
unsigned int m_xlxSlot;
|
||||||
unsigned int m_xlxTG;
|
unsigned int m_xlxTG;
|
||||||
|
CRewrite* m_rptRewrite;
|
||||||
|
CRewrite* m_xlxRewrite;
|
||||||
std::vector<CRewrite*> m_dmr1NetRewrites;
|
std::vector<CRewrite*> m_dmr1NetRewrites;
|
||||||
std::vector<CRewrite*> m_dmr1RFRewrites;
|
std::vector<CRewrite*> m_dmr1RFRewrites;
|
||||||
std::vector<CRewrite*> m_dmr2NetRewrites;
|
std::vector<CRewrite*> m_dmr2NetRewrites;
|
||||||
|
|||||||
@@ -19,6 +19,6 @@
|
|||||||
#if !defined(VERSION_H)
|
#if !defined(VERSION_H)
|
||||||
#define VERSION_H
|
#define VERSION_H
|
||||||
|
|
||||||
const char* VERSION = "20170506";
|
const char* VERSION = "20170506a";
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -56,8 +56,8 @@ m_stopWatch(),
|
|||||||
m_seqNo(0U),
|
m_seqNo(0U),
|
||||||
m_streamId(0U),
|
m_streamId(0U),
|
||||||
m_sent(0U),
|
m_sent(0U),
|
||||||
m_positions(NULL),
|
|
||||||
m_ambe(NULL),
|
m_ambe(NULL),
|
||||||
|
m_positions(NULL),
|
||||||
m_data(),
|
m_data(),
|
||||||
m_it()
|
m_it()
|
||||||
{
|
{
|
||||||
@@ -111,8 +111,8 @@ bool CVoice::open()
|
|||||||
|
|
||||||
m_ambe = new unsigned char[statStruct.st_size];
|
m_ambe = new unsigned char[statStruct.st_size];
|
||||||
|
|
||||||
::fread(m_ambe, 1U, statStruct.st_size, fpambe);
|
size_t sizeRead = ::fread(m_ambe, 1U, statStruct.st_size, fpambe);
|
||||||
|
if (sizeRead != 0U) {
|
||||||
char buffer[80U];
|
char buffer[80U];
|
||||||
while (::fgets(buffer, 80, fpindx) != NULL) {
|
while (::fgets(buffer, 80, fpindx) != NULL) {
|
||||||
char* p1 = ::strtok(buffer, "\t\r\n");
|
char* p1 = ::strtok(buffer, "\t\r\n");
|
||||||
@@ -162,6 +162,7 @@ bool CVoice::open()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
::fclose(fpindx);
|
::fclose(fpindx);
|
||||||
::fclose(fpambe);
|
::fclose(fpambe);
|
||||||
|
|||||||
Reference in New Issue
Block a user