#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; case AXISMOLD: m_controller->m_Axis->m_Mold->GetState()->Update(msg); break; case AXISMOLDSLAVE: m_controller->m_Axis->m_MoldSlave->GetState()->Update(msg); break; case AXISCLEAN: m_controller->m_Axis->m_Clean->GetState()->Update(msg); break; case AXISCLEANSLAVE: m_controller->m_Axis->m_CleanSlave->GetState()->Update(msg); break; case AXISLOAD: m_controller->m_Axis->m_Load->GetState()->Update(msg); break; case AXISMARM: m_controller->m_Axis->m_Arm->GetState()->Update(msg); break; case AXISMSUPPLY: m_controller->m_Axis->m_Supply->GetState()->Update(msg); break; case AXISELE: m_controller->m_Axis->m_Ele->GetState()->Update(msg); break; case AXISELESLAVE: m_controller->m_Axis->m_EleSlave->GetState()->Update(msg); break; case PARAMLIMITCFGPARAM: ConfigManager::Instance()->GetParamLimitCfg()->Update(msg); break; case MOLDCFGPARAM: ConfigManager::Instance()->m_MoldCfg.Update(msg); break; case LOADCFGPARAM: ConfigManager::Instance()->m_LoadCfg.Update(msg); break; case ARMCFGPARAM: ConfigManager::Instance()->m_ArmCfg.Update(msg); break; case SUPPLYCFGPARAM: ConfigManager::Instance()->m_SupplyCfg.Update(msg); break; case CLEANCFGPARAM: ConfigManager::Instance()->m_CleanCfg.Update(msg); break; case ELECFGPARAM: ConfigManager::Instance()->m_EleCfg.Update(msg); break; case LOADPARAM: ConfigManager::Instance()->GetMachine()->Update(msg); break; default:break; } }