This commit is contained in:
qingjiao 2025-12-10 18:23:34 +08:00
parent dc12ef7c8c
commit 25de7b4c32
4 changed files with 76 additions and 16 deletions

View File

@ -37,6 +37,9 @@ void Config::Init() {
Setting->ServerPort = Json["ServerPort"];
Setting->ID = Json["ID"];
Setting->Name = Json["Name"];
Setting->WorkingMode = Json["WorkingMode"];
Setting->TermNumber = Json["TermNumber"];
Setting->DHCPFlag = Json["DHCPFlag"];
}
}
catch (CCException& e) {
@ -90,11 +93,16 @@ ConfigTerm * Config::getThisInfo() {
std::strcpy(Data->termCmdPortStr,CC::to_String(Setting->OrderPort).c_str());
std::strcpy(Data->servCmdPortStr,CC::to_String(Setting->ServerPort).c_str());
std::strcpy(Data->termStmPortStr,CC::to_String(Setting->StreamPort).c_str());
std::strcpy(Data->workModeStr,"");
// const auto workModeStrS = APPTool::GetBytes(Setting->WorkingMode);
// std::strcpy(Data->workModeStr,CC::to_String(Setting->WorkingMode).c_str());
// Data->workModeStr[0] = workModeStrS[0];
// Data->workModeStr[1] = workModeStrS[1];
Data->workModeStr[0] = getTermWorkInfo(Setting->WorkingMode);
Data->workModeStr[1] = '\0';
std::strcpy(Data->btNameStr,"");
std::strcpy(Data->dhcpFlagStr,CC::to_String(1).c_str());
std::strcpy(Data->dhcpFlagStr,CC::to_String(Setting->DHCPFlag).c_str());
std::strcpy(Data->btPwdStr,"");
std::strcpy(Data->termTypeStr,CC::to_String(1).c_str());
std::strcpy(Data->termTypeStr,CC::to_String(Setting->TermNumber).c_str());
std::strcpy(Data->sipUsrNameStr,"");
std::strcpy(Data->sipUsrPwdStr,"");
std::strcpy(Data->sipProxyRealmStr,"");
@ -174,3 +182,19 @@ CTL::String Config::GetNetMaskCIDR(const CTL::String& Mask) {
CTL::String cidr_str = CTL::String::format("%d",cidr);
return cidr_str;
}
char Config::getTermWorkInfo(const char index) {
static constexpr char mappings[] = {
0x30, 0x31, 0x32, 0x33, 0x34,
0x35, 0x36, 0x37, 0x38, 0x39,
'a', 'b', 'c', 'd', 'e',
'f', 'g', 'h', 'i', 'j',
'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't',
};
const auto size = std::size(mappings) - 1;
if (index >= 0 && index <= size) {
return mappings[index];
}
return 0x30;
}

View File

@ -31,7 +31,7 @@ struct ConfigTerm{
class Config {
JSON_TYPE_INTRUSIVE(Config,IP,OrderPort,StreamPort,HttpPort,Flag,ServerID,ServerIP,ServerPort,ID
,Name);
,Name,WorkingMode,TermNumber,DHCPFlag);
public:
int ServerID = 2;
int ID = 1;
@ -45,6 +45,9 @@ public:
int StreamPort = 10062;
bool isConnect = false;
int HttpPort = 9090;
int WorkingMode = 0; // 工作模式
int TermNumber = 0; // 机器编号
int DHCPFlag = 0; // DHCP开关标识
bool Flag = false;
CTL::String MacAddr;
CTL::String TermIPGw;
@ -83,6 +86,7 @@ public:
static void SetNetWorkInfo(const CTL::String& IP,const CTL::String& GW,const CTL::String& Mask);
static void CloseService();
static CTL::String GetNetMaskCIDR(const CTL::String& Mask);/*获取CIDR格式子网掩码*/
static char getTermWorkInfo(char index);
};

View File

@ -107,26 +107,57 @@ public:
const ConfigTerm* t = CTL::ByteArray::Conversion<ConfigTerm>(packet.AdditionalData);
CTL::AutoDestruct autoDestruct(t);
if (t) {
const auto TMac = CTL::String(t->macStr);
const auto TMac = CTL::String(t->macChkStr);
if (TMac == Setting->MacAddr) {
const int ID = CTL::String(t->termIDnVerStr).to_int();
const auto IDS = CTL::String(t->termIDnVerStr);
if (!IDS.empty()) {
const int ID = IDS.to_int();
Setting->ID = ID;
}
const auto ServerIP = CTL::String(t->servIPAddrStr);
const auto ServerPort = CTL::String(t->servCmdPortStr).to_int();
const auto Port = CTL::String(t->termCmdPortStr).to_int();
const auto DataPort = CTL::String(t->termStmPortStr).to_int();
if (!ServerIP.empty()) {
Setting->ServerIP = ServerIP;
}
const auto ServerPort = CTL::String(t->servCmdPortStr);
if (!ServerPort.empty()) {
Setting->ServerPort = ServerPort.to_int();
}
const auto Port = CTL::String(t->termCmdPortStr);
if (!Port.empty()) {
Setting->OrderPort = Port.to_int();
}
const auto DataPort = CTL::String(t->termStmPortStr);
if (!DataPort.empty()) {
Setting->StreamPort = DataPort.to_int();
}
const auto WorkN = CTL::String(t->workModeStr);
if (!WorkN.empty()) {
Setting->WorkingMode = WorkN.to_int();
}
const auto number = CTL::String(t->termTypeStr);
if (!number.empty()) {
Setting->TermNumber = number.to_int();
}
const auto Flag = CTL::String(t->dhcpFlagStr);
if (!Flag.empty()) {
Setting->DHCPFlag = Flag.to_int();
}
// -----------------------------------------------------------------
const auto IP = CTL::String(t->termIPAddrStr);
if (!IP.empty()) {
Setting->IP = IP;
}
const auto GW = CTL::String(t->termIPGwStr);
if (!GW.empty()) {
Setting->TermIPGw = GW;
}
const auto NM = CTL::String(t->termIPNmStr);
if (!NM.empty()) {
Setting->TermIPNm = NM;
}
// -----------------------------------------------------------------
Setting->ID = ID;
Setting->ServerIP = ServerIP;
Setting->ServerPort = ServerPort;
Setting->OrderPort = Port;
Setting->StreamPort = DataPort;
Setting->IP = IP;
#if IS_ARM
Config::SetNetWorkInfo(IP,GW,NM);
Config::SetNetWorkInfo(IP,Setting->TermIPGw,Setting->TermIPNm);
#endif
Config::Save();
Config::CloseService();

View File

@ -90,6 +90,7 @@ private:
BS_Log::Warning("ConfigTool End");
}
static void ConnectService() {
CTL::Thread::SleepMS(3000);
const auto Setting = Config::getConfig();
const auto sock = ConnectionService::getSocket();
bool IsConn = true;