2024-03-15 12:31:34 +08:00
|
|
|
|
#include "DataHandle.h"
|
|
|
|
|
|
|
|
|
|
DataHandle::DataHandle()
|
|
|
|
|
: m_dataCallBack(nullptr)
|
|
|
|
|
, m_streamClient(nullptr){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DataHandle::~DataHandle() {
|
2024-04-02 17:45:03 +08:00
|
|
|
|
DELP(m_streamClient);
|
2024-03-15 12:31:34 +08:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DataHandle::Init() {
|
|
|
|
|
m_streamClient = new StreamClient();
|
|
|
|
|
m_streamClient->SetCallBackFunc(this,&DataHandle::DataCallBackProc);
|
|
|
|
|
m_streamClient->Init();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2024-04-02 17:45:03 +08:00
|
|
|
|
|
|
|
|
|
|
2024-03-15 12:31:34 +08:00
|
|
|
|
void DataHandle::DataCallBackProc(void* pthis, const ReadData& msg) {
|
|
|
|
|
DataHandle* p = (DataHandle*)pthis;
|
|
|
|
|
|
2024-04-02 17:45:03 +08:00
|
|
|
|
std::istringstream issKey(msg.nameKey),issVal(msg.strValue);
|
|
|
|
|
string key, value;
|
|
|
|
|
if (msg.dataType == TIMEDATA) {
|
|
|
|
|
SysParam::Lck();
|
|
|
|
|
while (issKey >> key && issVal >> value) {
|
|
|
|
|
size_t pos = value.find("_");
|
|
|
|
|
if (pos == string::npos || SysParam::m_sysParamMp.find(key) == SysParam::m_sysParamMp.end()) continue;
|
|
|
|
|
DATATYPE valType = (DATATYPE)atoi(value.substr(pos + 1).c_str()); //值类型
|
|
|
|
|
string val = value.substr(0, pos); //值
|
|
|
|
|
DValue& param = SysParam::m_sysParamMp.at(key);
|
|
|
|
|
switch (valType) {
|
|
|
|
|
case iBOOL:
|
|
|
|
|
param.sysParamB->SetValue((bool)atoi(val.c_str()));
|
|
|
|
|
break;
|
|
|
|
|
case iSHORT:
|
|
|
|
|
param.sysParamW->SetValue((short)atoi(val.c_str()));
|
|
|
|
|
break;
|
|
|
|
|
//case iUSHORT:
|
|
|
|
|
// param.sysParamB->SetValue((bool)atoi(val.c_str()));
|
|
|
|
|
// break;
|
|
|
|
|
case iINT:
|
|
|
|
|
param.sysParamI->SetValue(atoi(val.c_str()));
|
|
|
|
|
break;
|
|
|
|
|
//case iUINT:
|
|
|
|
|
// param.sysParamB->SetValue((bool)atoi(val.c_str()));
|
|
|
|
|
// break;
|
|
|
|
|
case iFLOAT:
|
|
|
|
|
param.sysParamB->SetValue(atof(val.c_str()));
|
|
|
|
|
break;
|
|
|
|
|
default: break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
SysParam::UnLck();
|
|
|
|
|
}
|
2024-03-15 12:31:34 +08:00
|
|
|
|
|
|
|
|
|
}
|