GrpcPrint/PrintC/DataManage/DataHandle.cpp

68 lines
1.5 KiB
C++
Raw Normal View History

2024-03-15 12:31:34 +08:00
#include "DataHandle.h"
2024-04-09 16:53:02 +08:00
void DataHandle::DataCallBackProc(void* pthis, const ReadData& msg) {
DataHandle* p = (DataHandle*)pthis;
p->DataCallBackHandle(msg);
}
2024-03-15 12:31:34 +08:00
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-09 16:53:02 +08:00
SetPushMsg(VERSIONREQ); //获取版本信息
2024-03-15 12:31:34 +08:00
}
2024-04-09 16:53:02 +08:00
void DataHandle::DataCallBackHandle(const ReadData& msg) {
std::istringstream issKey(msg.nameKey), issVal(msg.strValue);
2024-04-02 17:45:03 +08:00
string key, value;
2024-04-09 16:53:02 +08:00
switch (msg.dataType) {
case TIMEDATA:
2024-04-02 17:45:03 +08:00
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 iINT:
param.sysParamI->SetValue(atoi(val.c_str()));
break;
case iFLOAT:
param.sysParamB->SetValue(atof(val.c_str()));
break;
default: break;
}
}
SysParam::UnLck();
2024-04-09 16:53:02 +08:00
break;
case VERSIONRSP:
m_version = msg.strValue;
break;
default:break;
2024-04-02 17:45:03 +08:00
}
2024-03-15 12:31:34 +08:00
2024-04-09 16:53:02 +08:00
}