2024-03-15 12:31:34 +08:00
|
|
|
|
#include "DataHandle.h"
|
2024-04-10 16:15:33 +08:00
|
|
|
|
#include "../config/ConfigManager.h"
|
2024-03-15 12:31:34 +08:00
|
|
|
|
|
2024-04-09 16:53:02 +08:00
|
|
|
|
void DataHandle::DataCallBackProc(void* pthis, const ReadData& msg) {
|
|
|
|
|
DataHandle* p = (DataHandle*)pthis;
|
2024-04-11 10:15:32 +08:00
|
|
|
|
ReadData readData = msg;
|
|
|
|
|
p->DataCallBackHandle(readData);
|
2024-04-09 16:53:02 +08:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-15 12:31:34 +08:00
|
|
|
|
DataHandle::DataHandle()
|
|
|
|
|
: m_dataCallBack(nullptr)
|
2024-04-23 13:41:16 +08:00
|
|
|
|
, m_streamClient(nullptr)
|
|
|
|
|
, m_controller(nullptr){
|
2024-03-15 12:31:34 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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-18 11:59:51 +08:00
|
|
|
|
m_controller = new Controller();
|
|
|
|
|
m_controller->Init();
|
|
|
|
|
|
2024-04-09 16:53:02 +08:00
|
|
|
|
SetPushMsg(VERSIONREQ); //获取版本信息
|
2024-04-24 18:12:41 +08:00
|
|
|
|
|
|
|
|
|
stream::ResponseInfo* response = new stream::ResponseInfo(); //获取一层图层的数据
|
|
|
|
|
m_streamClient->GetLayerByIndex(1, response);
|
2024-03-15 12:31:34 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-04-11 10:15:32 +08:00
|
|
|
|
|
|
|
|
|
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()) {
|
2024-04-02 17:45:03 +08:00
|
|
|
|
DValue& param = SysParam::m_sysParamMp.at(key);
|
2024-04-11 10:15:32 +08:00
|
|
|
|
switch ((*it).valueType) {
|
2024-04-02 17:45:03 +08:00
|
|
|
|
case iBOOL:
|
2024-04-11 10:15:32 +08:00
|
|
|
|
param.sysParamB->SetValue((bool)atoi((*it).strValue.c_str()));
|
2024-04-02 17:45:03 +08:00
|
|
|
|
break;
|
|
|
|
|
case iSHORT:
|
2024-04-11 10:15:32 +08:00
|
|
|
|
param.sysParamW->SetValue((short)atoi((*it).strValue.c_str()));
|
2024-04-02 17:45:03 +08:00
|
|
|
|
break;
|
|
|
|
|
case iINT:
|
2024-04-11 10:15:32 +08:00
|
|
|
|
param.sysParamI->SetValue(atoi((*it).strValue.c_str()));
|
2024-04-02 17:45:03 +08:00
|
|
|
|
break;
|
|
|
|
|
case iFLOAT:
|
2024-04-11 10:15:32 +08:00
|
|
|
|
param.sysParamF->SetValue(atof((*it).strValue.c_str()));
|
2024-04-02 17:45:03 +08:00
|
|
|
|
break;
|
|
|
|
|
default: break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-04-11 10:15:32 +08:00
|
|
|
|
++it;
|
|
|
|
|
}
|
|
|
|
|
SysParam::UnLck();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DataHandle::DataCallBackHandle(const ReadData& msg) {
|
|
|
|
|
switch (msg.dataType) {
|
|
|
|
|
case SYSPARAMDATA:
|
2024-04-23 13:41:16 +08:00
|
|
|
|
UpdateSysParam(msg); break;
|
2024-04-09 16:53:02 +08:00
|
|
|
|
case VERSIONRSP:
|
2024-04-23 13:41:16 +08:00
|
|
|
|
m_version = msg.its.front().strValue; break;
|
2024-04-10 16:15:33 +08:00
|
|
|
|
case IOSIGNALRSP: //io信号返回
|
2024-04-23 13:41:16 +08:00
|
|
|
|
ConfigManager::Instance()->GetIoCfgWrapper()->Update(msg); break;
|
2024-04-18 11:59:51 +08:00
|
|
|
|
case POWERPARAM:
|
2024-04-23 13:41:16 +08:00
|
|
|
|
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;
|
2024-05-06 10:49:15 +08:00
|
|
|
|
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:
|
2024-05-09 12:49:18 +08:00
|
|
|
|
ConfigManager::Instance()->GetMachine()->Update(msg); break;
|
|
|
|
|
|
2024-04-09 16:53:02 +08:00
|
|
|
|
|
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|