#include "DataHandle.h" #include "../config/ConfigManager.h" void DataHandle::DataCallBackProc(void* pthis, const ReadData& msg) { DataHandle* p = (DataHandle*)pthis; ReadData readData = msg; p->DataCallBackHandle(readData); } DataHandle::DataHandle() : m_dataCallBack(nullptr) , m_streamClient(nullptr){ } DataHandle::~DataHandle() { DELP(m_streamClient); } void DataHandle::Init() { m_streamClient = new StreamClient(); m_streamClient->SetCallBackFunc(this,&DataHandle::DataCallBackProc); m_streamClient->Init(); SetPushMsg(VERSIONREQ); //获取版本信息 } void DataHandle::UpdateSysParam(const ReadData& msg){ SysParam::Lck(); auto it = msg.its.begin(); while (it != msg.its.end()) { string key = it->nameKey; if (SysParam::m_sysParamMp.find(key) != SysParam::m_sysParamMp.end()) { DValue& param = SysParam::m_sysParamMp.at(key); switch ((*it).valueType) { case iBOOL: param.sysParamB->SetValue((bool)atoi((*it).strValue.c_str())); break; case iSHORT: param.sysParamW->SetValue((short)atoi((*it).strValue.c_str())); break; case iINT: param.sysParamI->SetValue(atoi((*it).strValue.c_str())); break; case iFLOAT: param.sysParamF->SetValue(atof((*it).strValue.c_str())); break; default: break; } } ++it; } SysParam::UnLck(); } void DataHandle::DataCallBackHandle(const ReadData& msg) { switch (msg.dataType) { case SYSPARAMDATA: UpdateSysParam(msg); break; case VERSIONRSP: m_version = msg.its.front().strValue; break; case IOSIGNALRSP: //io信号返回 ConfigManager::Instance()->GetIoCfgWrapper()->Update(msg); break; default:break; } }