GrpcPrint/PrintC/DataManage/DataHandle.cpp

109 lines
3.2 KiB
C++

#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)
, m_controller(nullptr){
}
DataHandle::~DataHandle() {
DELP(m_streamClient);
}
void DataHandle::Init() {
m_streamClient = new StreamClient();
m_streamClient->SetCallBackFunc(this,&DataHandle::DataCallBackProc);
m_streamClient->Init();
m_controller = new Controller();
m_controller->Init();
SetPushMsg(VERSIONREQ); //获取版本信息
stream::ResponseInfo* response = new stream::ResponseInfo(); //获取一层图层的数据
m_streamClient->GetLayerByIndex(1, response);
}
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;
case POWERPARAM:
m_controller->m_ComServer->m_PowerMeterClient->UpdateData(msg); break;
case CHILLERPARAM:
m_controller->m_ComServer->m_LaserChillerClient->UpdateData(msg); break;
case TEMPCTRLPARAM:
m_controller->m_ComServer->m_TempCtrlClient->UpdateData(msg); break;
case OXYGENPARAM:
m_controller->m_ComServer->m_OxygenClient->UpdateData(msg); break;
case POWDERSUPPLYSIMPLEPARAM:
m_controller->m_ComServer->m_SimpleSupplyClient->UpdateData(msg); break;
case UPSPARAM:
m_controller->m_ComServer->m_UPSClient->UpdateData(msg); break;
case SCANNERPOWERPARAM:
m_controller->m_ComServer->m_ScannerPowerClient->UpdateData(msg); break;
case POWERMETERPARAM:
m_controller->m_ComServer->m_PowerMeterClient->UpdateData(msg); break;
case LASERPARAM1: //激光1参数
m_controller->m_ComServer->m_LaserClients.at(0)->UpdateData(msg); break;
case LASERPARAM2: //激光2参数
m_controller->m_ComServer->m_LaserClients.at(1)->UpdateData(msg); break;
case LASERPARAM3: //激光3参数
m_controller->m_ComServer->m_LaserClients.at(2)->UpdateData(msg); break;
case LASERPARAM4: //激光4参数
m_controller->m_ComServer->m_LaserClients.at(3)->UpdateData(msg); break;
case LASERPARAM5: //激光5参数
m_controller->m_ComServer->m_LaserClients.at(4)->UpdateData(msg); break;
case LASERPARAM6: //激光6参数
m_controller->m_ComServer->m_LaserClients.at(5)->UpdateData(msg); break;
default:break;
}
}