2024-03-15 12:31:34 +08:00
|
|
|
|
#include "DataHandle.h"
|
|
|
|
|
#include <iostream>
|
|
|
|
|
#include <typeinfo>
|
2024-04-08 13:43:56 +08:00
|
|
|
|
#include "../SystemInfo.h"
|
2024-03-15 12:31:34 +08:00
|
|
|
|
|
2024-04-08 13:43:56 +08:00
|
|
|
|
void DataHandle::DataCallBackProc(void* pthis, const ReadData& msg) {
|
|
|
|
|
DataHandle* p = (DataHandle*)pthis;
|
|
|
|
|
p->DataCallBackHandle(msg);
|
|
|
|
|
}
|
2024-03-26 10:33:00 +08:00
|
|
|
|
|
2024-03-15 12:31:34 +08:00
|
|
|
|
DataHandle::DataHandle()
|
|
|
|
|
: m_dataCallBack(nullptr)
|
2024-03-27 16:09:22 +08:00
|
|
|
|
, m_streamServer(nullptr)
|
|
|
|
|
, m_config(nullptr)
|
2024-04-10 16:15:33 +08:00
|
|
|
|
, m_controller(nullptr)
|
2024-03-27 16:09:22 +08:00
|
|
|
|
, m_testFlag(false){
|
2024-03-15 12:31:34 +08:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DataHandle::~DataHandle() {
|
2024-04-08 13:43:56 +08:00
|
|
|
|
Stop();
|
2024-03-26 10:33:00 +08:00
|
|
|
|
|
2024-04-07 17:09:01 +08:00
|
|
|
|
m_testFlag = true;
|
|
|
|
|
if (m_testTd.joinable()) m_testTd.join();
|
|
|
|
|
|
2024-03-26 10:33:00 +08:00
|
|
|
|
DELP(m_streamServer);
|
2024-04-10 16:15:33 +08:00
|
|
|
|
DELP(m_controller);
|
2024-03-15 12:31:34 +08:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DataHandle::Init() {
|
2024-03-22 11:28:06 +08:00
|
|
|
|
m_config = ConfigManager::GetInstance();
|
|
|
|
|
m_config->PreInit();
|
2024-03-26 10:33:00 +08:00
|
|
|
|
|
|
|
|
|
g_LngManager = new LanguageManager();
|
|
|
|
|
g_LngManager->Init();
|
|
|
|
|
g_Lang = &m_config->GetMachineCfg()->m_I18NLang[0];
|
|
|
|
|
|
2024-03-22 11:28:06 +08:00
|
|
|
|
m_config->Init();
|
|
|
|
|
|
|
|
|
|
m_streamServer = new StreamServer(m_config->GetMachine());
|
2024-03-15 12:31:34 +08:00
|
|
|
|
|
|
|
|
|
//测试线程
|
2024-03-22 11:28:06 +08:00
|
|
|
|
m_testTd = std::thread ([this] {
|
2024-03-15 12:31:34 +08:00
|
|
|
|
static float i = 10.12540f;
|
2024-03-27 16:09:22 +08:00
|
|
|
|
while (!m_testFlag) {
|
|
|
|
|
if (m_streamServer && m_streamServer->GetClient())
|
2024-04-11 10:15:32 +08:00
|
|
|
|
m_streamServer->GetClient()->PushMsg(new WriteData(RESPOND, { {string("hello"),std::to_string(i),iFLOAT}}));
|
2024-03-15 12:31:34 +08:00
|
|
|
|
std::this_thread::sleep_for(std::chrono::seconds(1));
|
|
|
|
|
}
|
2024-03-22 11:28:06 +08:00
|
|
|
|
});
|
|
|
|
|
m_testTd.detach();
|
2024-03-15 12:31:34 +08:00
|
|
|
|
|
|
|
|
|
m_streamServer->SetCallBackFunc(this, &DataHandle::DataCallBackProc);
|
2024-03-22 11:28:06 +08:00
|
|
|
|
m_streamServer->Init();
|
|
|
|
|
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller = new Controller();
|
|
|
|
|
m_controller->Init();
|
2024-03-26 10:33:00 +08:00
|
|
|
|
|
2024-03-22 11:28:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DataHandle::Run() {
|
2024-04-08 13:43:56 +08:00
|
|
|
|
if (m_streamServer) m_streamServer->Run();
|
2024-03-15 12:31:34 +08:00
|
|
|
|
|
2024-04-16 17:36:27 +08:00
|
|
|
|
if(m_controller) m_controller->StartSend();
|
2024-04-08 13:43:56 +08:00
|
|
|
|
}
|
2024-03-27 16:09:22 +08:00
|
|
|
|
|
2024-04-07 17:09:01 +08:00
|
|
|
|
|
2024-04-08 13:43:56 +08:00
|
|
|
|
void DataHandle::Stop() {
|
2024-04-07 17:09:01 +08:00
|
|
|
|
if(m_streamServer) m_streamServer->Stop();
|
2024-04-16 17:36:27 +08:00
|
|
|
|
if (m_controller) m_controller->StopSend();
|
2024-03-22 11:28:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2024-03-15 12:31:34 +08:00
|
|
|
|
|
2024-04-07 17:09:01 +08:00
|
|
|
|
void DataHandle::DataCallBackHandle(const ReadData& msg) {
|
2024-04-08 13:43:56 +08:00
|
|
|
|
vector<Scanner*>* scanners = nullptr;
|
|
|
|
|
WriteData* wd = nullptr;
|
|
|
|
|
int index = 0;
|
2024-03-15 12:31:34 +08:00
|
|
|
|
switch (msg.dataType) {
|
|
|
|
|
case GET:
|
|
|
|
|
break;
|
|
|
|
|
case SET: break;
|
2024-04-07 17:09:01 +08:00
|
|
|
|
case LOAD:
|
2024-04-10 16:15:33 +08:00
|
|
|
|
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
|
|
|
|
m_controller->m_Machine->LoadIn();
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break; //载入
|
|
|
|
|
case LOADOUT:
|
2024-04-10 16:15:33 +08:00
|
|
|
|
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
|
|
|
|
m_controller->m_Machine->LoadOut();
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break; //载出
|
|
|
|
|
case SUPPLYAXLEAFTER: //供粉轴后移
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK);
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break;
|
|
|
|
|
case SUPPLYAXLEFRONT: //供粉轴前移
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT);
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break;
|
|
|
|
|
case SUPPLYAXLEAFTERCONTSTART: //供粉轴后移连续
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK,true,true);
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break;
|
|
|
|
|
case SUPPLYAXLEAFTERCONTSTOP:
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::BACK, true, false);
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break; //供粉轴后移连续
|
|
|
|
|
case SUPPLYAXLEFRONTCONTSTART: //供粉轴前移连续开始
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT, true, true);
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break;
|
|
|
|
|
case SUPPLYAXLEFRONTCONTSTOP: //供粉轴前移连续结束
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->SupplyAxisMove(AxisConfig::ActiveDirect::FRONT, true, false);
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break;
|
2024-04-08 13:43:56 +08:00
|
|
|
|
case PAVEAXLEFRONT: //铺粉臂前移
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT);
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break;
|
|
|
|
|
case PAVEAXLEFRONTCONTSTART: //铺粉臂前移连续
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT,true,true);
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break;
|
|
|
|
|
case PAVEAXLEFRONTCONTSTOP: //铺粉臂前移连续
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::FRONT,true,false);
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break;
|
|
|
|
|
case PAVEAXLEAFTER: //铺粉臂后移
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK);
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break;
|
|
|
|
|
case PAVEAXLEAFTERCONTSTART: //铺粉臂后移连续开始
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK, true, true);
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break;
|
|
|
|
|
case PAVEAXLEAFTERCONTSTOP: //铺粉臂后移连续停止
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::BACK, true, false);
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break;
|
|
|
|
|
case PAVEAXLECLEAR:
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->ArmAxisMove(AxisConfig::ActiveDirect::ZERO);
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break; //铺粉臂清零
|
|
|
|
|
case PRINTAXLEUP:
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP);
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break; //成型缸上升
|
|
|
|
|
case PRINTAXLEUPCONTSTART: //成型缸连续上升开始
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP, true, true);
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break;
|
|
|
|
|
case PRINTAXLEUPCONTSTOP: //成型缸连续上升停止
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::UP, true, false);
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break;
|
|
|
|
|
case PRINTAXLEDOWN:
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN);
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break; //成型缸下降
|
|
|
|
|
case PRINTAXLEDOWNCONTSTART:
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN, true, true);
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break; //成型缸连续下降开始
|
|
|
|
|
case PRINTAXLEDOWNCONTSTOP: //成型缸连续下降停止
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::DOWN,true,false);
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break;
|
|
|
|
|
case PRINTAXLECLEAR: //成型缸清零
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->PrintAxisMove(AxisConfig::ActiveDirect::ZERO);
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break;
|
2024-04-07 17:09:01 +08:00
|
|
|
|
case TRANSFERAXIELEFT: //移栽轴左移
|
2024-04-10 16:15:33 +08:00
|
|
|
|
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
|
|
|
|
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT);
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break;
|
|
|
|
|
case TRANSFERAXIELEFTCONTSTART: //移栽轴连续左移开始
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT, true,true);
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break;
|
|
|
|
|
case TRANSFERAXIELEFTCONTSTOP: //移栽轴连续左移停止
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::LEFT, true, false);
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break;
|
|
|
|
|
case TRANSFERAXIERIGHT: //移栽轴右移
|
2024-04-10 16:15:33 +08:00
|
|
|
|
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
|
|
|
|
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT);
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break;
|
|
|
|
|
case TRANSFERAXIERIGHTCONTSTART: //移栽轴连续右移
|
2024-04-10 16:15:33 +08:00
|
|
|
|
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
|
|
|
|
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT,true,true);
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break;
|
|
|
|
|
case TRANSFERAXIERIGHTCONTSTOP: //移栽轴连续右移
|
2024-04-10 16:15:33 +08:00
|
|
|
|
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER)return;
|
|
|
|
|
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::RIGHT, true, false);
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break;
|
|
|
|
|
case TRANSFERAXIECLEAR: //移栽轴清零
|
2024-04-10 16:15:33 +08:00
|
|
|
|
m_controller->m_Machine->LoadAxisMove(AxisConfig::ActiveDirect::ZERO);
|
2024-04-07 17:09:01 +08:00
|
|
|
|
break;
|
2024-04-08 13:43:56 +08:00
|
|
|
|
case SCANERSTART: //开始扫描
|
2024-04-10 16:15:33 +08:00
|
|
|
|
scanners = m_controller->m_ScannerCtrl->GetScanners();
|
2024-04-08 13:43:56 +08:00
|
|
|
|
index = atoi(msg.strValue.c_str());
|
|
|
|
|
if (index >= (*scanners).size()) return;
|
|
|
|
|
if ((*scanners)[index]) (*scanners)[index]->StartDebugTest();
|
|
|
|
|
break;
|
|
|
|
|
case SCANERSTOP: //停止扫描
|
2024-04-10 16:15:33 +08:00
|
|
|
|
scanners = m_controller->m_ScannerCtrl->GetScanners();
|
2024-04-08 13:43:56 +08:00
|
|
|
|
index = atoi(msg.strValue.c_str());
|
|
|
|
|
if (index >= (*scanners).size()) return;
|
|
|
|
|
if ((*scanners)[index]) (*scanners)[index]->StopDebugTest();
|
|
|
|
|
break;
|
|
|
|
|
case STARTHEATINGSCANNERTEST: //开始振镜预热测试
|
2024-04-10 16:15:33 +08:00
|
|
|
|
scanners = m_controller->m_ScannerCtrl->GetScanners();
|
2024-04-08 13:43:56 +08:00
|
|
|
|
index = atoi(msg.strValue.c_str());
|
|
|
|
|
if (index >= (*scanners).size()) return;
|
|
|
|
|
if((*scanners)[index]) (*scanners)[index]->StartHeatingScannerTest();
|
|
|
|
|
break;
|
|
|
|
|
case STOPHEATINGSCANNERTEST: //停止振镜预热
|
2024-04-10 16:15:33 +08:00
|
|
|
|
scanners = m_controller->m_ScannerCtrl->GetScanners();
|
2024-04-08 13:43:56 +08:00
|
|
|
|
index = atoi(msg.strValue.c_str());
|
|
|
|
|
if (index >= (*scanners).size()) return;
|
|
|
|
|
if ((*scanners)[index]) (*scanners)[index]->StopHeatingScannerTest();
|
|
|
|
|
break;
|
|
|
|
|
case INITERRORINFOSREQ: //初始化错误信息
|
2024-04-11 10:15:32 +08:00
|
|
|
|
msg.clientPtr->PushMsg(new WriteData(INITERRORINFOSRSP, { {string(""), m_controller->m_ScannerCtrl->GetInitErrorInfos(), iSTRING} }));
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break;
|
|
|
|
|
case VERSIONREQ: //获取版本信息
|
2024-04-11 10:15:32 +08:00
|
|
|
|
msg.clientPtr->PushMsg(new WriteData(VERSIONRSP, { { string(""), g_SystemInfo->m_ProductVersion, iSTRING } }));
|
2024-04-08 13:43:56 +08:00
|
|
|
|
break;
|
|
|
|
|
|
2024-03-15 12:31:34 +08:00
|
|
|
|
default: break;
|
2024-04-07 17:09:01 +08:00
|
|
|
|
|
2024-04-08 13:43:56 +08:00
|
|
|
|
|
|
|
|
|
|
2024-03-15 12:31:34 +08:00
|
|
|
|
}
|
2024-04-07 17:09:01 +08:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2024-04-08 13:43:56 +08:00
|
|
|
|
|
2024-03-15 12:31:34 +08:00
|
|
|
|
|
|
|
|
|
|