diff --git a/PrintC/Machine/HBD1000.cpp b/PrintC/Machine/HBD1000.cpp index e4afd65..f4b33de 100644 --- a/PrintC/Machine/HBD1000.cpp +++ b/PrintC/Machine/HBD1000.cpp @@ -9223,7 +9223,9 @@ void HBD1000::DrawSignal(bool* isshow) // ImGui::EndChild(); //} -void HBD1000::DrawPowderCtrl(bool *winShow) + + +void HBD1000::DrawPowderCtrl(bool* winShow) { ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(4, 8)); ImGui::Begin(_(u8"铺粉装置调试").c_str(), winShow, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoNav); @@ -9235,27 +9237,14 @@ void HBD1000::DrawPowderCtrl(bool *winShow) static int kb = GTS_AXIS_ID_ARM; static bool continue_move = false; - AxisStateValue mold; - MainAxisState* pMold = m_Axis->m_Mold->GetState(); - pMold->GetValue(mold); + //CoverCfg* coverCfg = m_CoverCfg; + MainAxisState* mold = m_Axis->m_Mold->GetState(); + MainAxisState* clean = m_Axis->m_Clean->GetState(); + AxisState* load = m_Axis->m_Load->GetState(); + AxisState* arm = m_Axis->m_Arm->GetState(); + AxisState* supply = m_Axis->m_Supply->GetState(); - AxisStateValue clean; - MainAxisState* pClean = m_Axis->m_Clean->GetState(); - pClean->GetValue(clean); - - AxisStateValue load; - AxisState* pLoad = m_Axis->m_Load->GetState(); - pLoad->GetValue(load); - - AxisStateValue arm; - AxisState* pArm = m_Axis->m_Arm->GetState(); - pArm->GetValue(arm); - - AxisStateValue supply; - AxisState* pSupply = m_Axis->m_Supply->GetState(); - pSupply->GetValue(supply); - - AxisConfig* armCfg =m_Axis->m_Arm->GetConfig(); + AxisConfig* armCfg = m_Axis->m_Arm->GetConfig(); AxisConfig::CfgValue armCfgVal; armCfg->GetValue(armCfgVal); AxisConfig* moldCfg = m_Axis->m_Mold->GetConfig(); @@ -9271,13 +9260,15 @@ void HBD1000::DrawPowderCtrl(bool *winShow) AxisConfig::CfgValue supplyCfgVal; supplyCfg->GetValue(supplyCfgVal); + ParamLimitCfg paramLimitfg; + m_ParamLimitCfg->GetCfg(paramLimitfg); ChartletManager* chartletManager = ChartletManager::GetInstance(); ImVec2 wpos = ImGui::GetWindowPos(); SignalService::GetInstance().GetSignalState(m_SignalState); if (m_PowderAssist.isLeftExpand) { ImGui::BeginGroup(); - + vector tabs; tabs.push_back(_(u8"成型缸")); tabs.push_back(_(u8"移载轴")); @@ -9286,41 +9277,39 @@ void HBD1000::DrawPowderCtrl(bool *winShow) tabs.push_back(_(u8"铺粉")); tabs.push_back(_(u8"控制")); float tabwidth = 0; - for (size_t tindex = 0; tindexGetCfg(paramLimitfg); + if (ImGui::BeginTabItem(_(u8"成型缸").c_str())) { ImGui::PushItemWidth(100); - if (ImGui::InputFloatEx(_(u8"速度(mm/s)").c_str(), &moldCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_MoldSpeedMin,¶mLimitfg.m_MoldSpeedMax)) + if (ImGui::InputFloatEx(_(u8"速度(mm/s)").c_str(), &moldCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_MoldSpeedMin, ¶mLimitfg.m_MoldSpeedMax)) { moldCfg->m_Speed->SetValue(moldCfgVal.speed); g_log->TraceInfo(_(u8"更改成型缸速度:%.3f").c_str(), moldCfgVal.speed); } - if (ImGui::InputFloatEx(_(u8"加速度(m/s²)").c_str(), &moldCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_MoldAccMin,¶mLimitfg.m_MoldAccMax)) + if (ImGui::InputFloatEx(_(u8"加速度(m/s²)").c_str(), &moldCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_MoldAccMin, ¶mLimitfg.m_MoldAccMax)) { moldCfg->m_Acc->SetValue(moldCfgVal.acc); g_log->TraceInfo(_(u8"更改成型缸加速度:%.3f").c_str(), moldCfgVal.acc); } - if (ImGui::InputFloatEx(_(u8"减速度(m/s2)").c_str(), &moldCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_MoldDecMin,¶mLimitfg.m_MoldDecMax)) + if (ImGui::InputFloatEx(_(u8"减速度(m/s2)").c_str(), &moldCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_MoldDecMin, ¶mLimitfg.m_MoldDecMax)) { moldCfg->m_Dec->SetValue(moldCfgVal.dec); g_log->TraceInfo(_(u8"更新成型缸减速度:%.3f").c_str(), moldCfgVal.dec); } - if (ImGui::InputFloatEx(_(u8"点动行程(μm)").c_str(), &moldCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_MoldPointStepMin,¶mLimitfg.m_MoldPointStepMax)) { + if (ImGui::InputFloatEx(_(u8"点动行程(μm)").c_str(), &moldCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_MoldPointStepMin, ¶mLimitfg.m_MoldPointStepMax)) { moldCfg->m_RefDistance->SetValue(moldCfgVal.rel); g_log->TraceInfo(_(u8"更改成型缸点动行程:%.3f").c_str(), moldCfgVal.rel); } ImGui::PopItemWidth(); ImGui::Dummy(ImVec2(0, 20)); - if (mold.MoveAbsPos) + if (mold->m_MoveAbsPos) { if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 0) { @@ -9339,7 +9328,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) else { if (ImGui::ImageButton(chartletManager->m_MoldMoveSepEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (pMold->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (mold->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -9351,7 +9340,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"执行打印升降轴移动到缸体分离位").c_str()); } ImGui::SameLine(); - if (mold.MoveAbsPos) + if (mold->m_MoveAbsPos) { if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 1) { @@ -9370,7 +9359,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) else { if (ImGui::ImageButton(chartletManager->m_MoldMove3RSepEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (pMold->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (mold->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -9383,7 +9372,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } ImGui::SameLine(); - if (mold.MoveAbsPos) + if (mold->m_MoveAbsPos) { if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 2) { @@ -9402,7 +9391,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) else { if (ImGui::ImageButton(chartletManager->m_MoldMoveDeoxygenEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (pMold->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (mold->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -9415,7 +9404,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } ImGui::SameLine(); - if (mold.MoveAbsPos) + if (mold->m_MoveAbsPos) { if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 3) { @@ -9434,7 +9423,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) else { if (ImGui::ImageButton(chartletManager->m_MoldMoveDownestEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (pMold->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (mold->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -9447,7 +9436,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } ImGui::SameLine(); - if (mold.MoveAbsPos) + if (mold->m_MoveAbsPos) { if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 4) { @@ -9467,7 +9456,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) else { if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (pMold->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (mold->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -9483,22 +9472,22 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { ImGui::PushItemWidth(100); - if (ImGui::InputFloatEx(_(u8"速度(mm/s)").c_str(), &loadCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_LoadSpeedMin,¶mLimitfg.m_LoadSpeedMax)) + if (ImGui::InputFloatEx(_(u8"速度(mm/s)").c_str(), &loadCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_LoadSpeedMin, ¶mLimitfg.m_LoadSpeedMax)) { loadCfg->m_Speed->SetValue(loadCfgVal.speed); g_log->TraceInfo(_(u8"更新移载轴速度:%.3f").c_str(), loadCfgVal.speed); } - if (ImGui::InputFloatEx(_(u8"加速度(m/s²)").c_str(), &loadCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_LoadAccMin,¶mLimitfg.m_LoadAccMax)) + if (ImGui::InputFloatEx(_(u8"加速度(m/s²)").c_str(), &loadCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_LoadAccMin, ¶mLimitfg.m_LoadAccMax)) { loadCfg->m_Acc->SetValue(loadCfgVal.acc); g_log->TraceInfo(_(u8"更新移载轴加速度:%.3f").c_str(), loadCfgVal.acc); } - if (ImGui::InputFloatEx(_(u8"减速度(m/s2)").c_str(), &loadCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_LoadDecMin,¶mLimitfg.m_LoadDecMax)) + if (ImGui::InputFloatEx(_(u8"减速度(m/s2)").c_str(), &loadCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_LoadDecMin, ¶mLimitfg.m_LoadDecMax)) { loadCfg->m_Dec->SetValue(loadCfgVal.dec); g_log->TraceInfo(_(u8"更新移载轴减速度:%.3f").c_str(), loadCfgVal.dec); } - if (ImGui::InputFloatEx(_(u8"点动行程(μm)").c_str(), &loadCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_LoadPointStepMin,¶mLimitfg.m_LoadPointStepMax)) { + if (ImGui::InputFloatEx(_(u8"点动行程(μm)").c_str(), &loadCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_LoadPointStepMin, ¶mLimitfg.m_LoadPointStepMax)) { loadCfg->m_RefDistance->SetValue(loadCfgVal.rel); g_log->TraceInfo(_(u8"更新移载轴点动距离:%.3f").c_str(), loadCfgVal.rel); } @@ -9513,7 +9502,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) }*/ - if (load.MoveAbsPos) + if (load->m_MoveAbsPos) { if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 1) { @@ -9533,7 +9522,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) else { if (ImGui::ImageButton(chartletManager->m_LoadCleanPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (pLoad->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (load->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -9545,7 +9534,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"执行移载轴移动到轨道清粉位").c_str()); } ImGui::SameLine(); - if (load.MoveAbsPos) + if (load->m_MoveAbsPos) { if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 2) { @@ -9565,7 +9554,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) else { if (ImGui::ImageButton(chartletManager->m_LoadWaitPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (pLoad->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (load->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -9578,7 +9567,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } ImGui::SameLine(); - if (load.MoveAbsPos) + if (load->m_MoveAbsPos) { if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 0) { @@ -9598,7 +9587,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) else { if (ImGui::ImageButton(chartletManager->m_LoadPrintPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (pLoad->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (load->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -9704,7 +9693,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) ImGui::PopID(); if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"执行清粉升降移动到最低点").c_str()); } - + ImGui::EndTabItem(); } } @@ -9712,29 +9701,29 @@ void HBD1000::DrawPowderCtrl(bool *winShow) */ if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { ImGui::PushItemWidth(100); - if (ImGui::InputFloatEx(_(u8"速度(mm/s)").c_str(), &armCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_ArmSpeedMin,¶mLimitfg.m_ArmSpeedMax)) + if (ImGui::InputFloatEx(_(u8"速度(mm/s)").c_str(), &armCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_ArmSpeedMin, ¶mLimitfg.m_ArmSpeedMax)) { armCfg->m_Speed->SetValue(armCfgVal.speed); g_log->TraceInfo(_(u8"更新铺粉轴速度:%.3f").c_str(), armCfgVal.speed); } - if (ImGui::InputFloatEx(_(u8"加速度(m/s²)").c_str(), &armCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_ArmAccMin,¶mLimitfg.m_ArmAccMax)) + if (ImGui::InputFloatEx(_(u8"加速度(m/s²)").c_str(), &armCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_ArmAccMin, ¶mLimitfg.m_ArmAccMax)) { armCfg->m_Acc->SetValue(armCfgVal.acc); g_log->TraceInfo(_(u8"更新铺粉轴加速度:%.3f").c_str(), armCfgVal.acc); } - if (ImGui::InputFloatEx(_(u8"减速度(m/s2)").c_str(), &armCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_ArmDecMin,¶mLimitfg.m_ArmDecMax)) + if (ImGui::InputFloatEx(_(u8"减速度(m/s2)").c_str(), &armCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_ArmDecMin, ¶mLimitfg.m_ArmDecMax)) { armCfg->m_Dec->SetValue(armCfgVal.dec); g_log->TraceInfo(_(u8"更新铺粉轴减速度:%.3f").c_str(), armCfgVal.dec); } - if (ImGui::InputFloatEx(_(u8"点动行程(μm)").c_str(), &armCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_ArmPointStepMin,¶mLimitfg.m_ArmPointStepMax)) { + if (ImGui::InputFloatEx(_(u8"点动行程(μm)").c_str(), &armCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_ArmPointStepMin, ¶mLimitfg.m_ArmPointStepMax)) { armCfg->m_RefDistance->SetValue(armCfgVal.rel); g_log->TraceInfo(_(u8"更新铺粉轴点动距离:%.3f").c_str(), armCfgVal.rel); } ImGui::Dummy(ImVec2(0, 20)); - if (arm.MoveAbsPos) + if (arm->m_MoveAbsPos) { if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 0) { @@ -9754,7 +9743,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) else { if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (pArm->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (arm->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -9766,7 +9755,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"执行铺粉轴移动到接粉位").c_str()); } ImGui::SameLine(); - if (arm.MoveAbsPos) + if (arm->m_MoveAbsPos) { if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 1) { @@ -9786,7 +9775,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) else { if (ImGui::ImageButton(chartletManager->m_ArmFrontDropPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (pArm->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (arm->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -9804,22 +9793,22 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { ImGui::PushItemWidth(100); - if (ImGui::InputFloatEx(_(u8"速度(mm/s)").c_str(), &supplyCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_SupplySpeedMin,¶mLimitfg.m_SupplySpeedMax)) + if (ImGui::InputFloatEx(_(u8"速度(mm/s)").c_str(), &supplyCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_SupplySpeedMin, ¶mLimitfg.m_SupplySpeedMax)) { supplyCfg->m_Speed->SetValue(supplyCfgVal.speed); g_log->TraceInfo(_(u8"更新下粉轴速度:%.3f").c_str(), supplyCfgVal.speed); } - if (ImGui::InputFloatEx(_(u8"加速度(m/s²)").c_str(), &supplyCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_SupplyAccMin,¶mLimitfg.m_SupplyAccMax)) + if (ImGui::InputFloatEx(_(u8"加速度(m/s²)").c_str(), &supplyCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_SupplyAccMin, ¶mLimitfg.m_SupplyAccMax)) { supplyCfg->m_Acc->SetValue(supplyCfgVal.acc); g_log->TraceInfo(_(u8"更新下粉轴加速度:%.3f").c_str(), supplyCfgVal.acc); } - if (ImGui::InputFloatEx(_(u8"减速度(m/s2)").c_str(), &supplyCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_SupplyDecMin,¶mLimitfg.m_SupplyAccMax)) + if (ImGui::InputFloatEx(_(u8"减速度(m/s2)").c_str(), &supplyCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_SupplyDecMin, ¶mLimitfg.m_SupplyAccMax)) { supplyCfg->m_Dec->SetValue(supplyCfgVal.dec); g_log->TraceInfo(_(u8"更新下粉轴减速度:%.3f").c_str(), supplyCfgVal.dec); } - if (ImGui::InputFloatEx(_(u8"相对位移").c_str(), &supplyCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_SupplyPointStepMin,¶mLimitfg.m_SupplyPointStepMax)) { + if (ImGui::InputFloatEx(_(u8"相对位移").c_str(), &supplyCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_SupplyPointStepMin, ¶mLimitfg.m_SupplyPointStepMax)) { supplyCfg->m_RefDistance->SetValue(supplyCfgVal.rel); g_log->TraceInfo(_(u8"更新下粉轴相对移动距离:%.3f").c_str(), supplyCfgVal.rel); } @@ -9829,7 +9818,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (ImGui::BeginTabItem(_(u8"铺粉").c_str())) { AxisData ad; - vector ss = { _(u8"双向铺粉"),_(u8"单向铺粉"),_(u8"不铺粉") ,_(u8"双向铺粉2") ,_(u8"单向铺粉2"),_(u8"单向铺粉3")}; + vector ss = { _(u8"双向铺粉"),_(u8"单向铺粉"),_(u8"不铺粉") ,_(u8"双向铺粉2") ,_(u8"单向铺粉2"),_(u8"单向铺粉3") }; m_SysParamWrapper->GetAxisData(ad); ImGui::PushItemWidth(120); if (ImGui::SemicolonCombo(_(u8"铺粉类型").c_str(), &ad.CoverType, ss)) { @@ -9837,7 +9826,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) g_log->TraceInfo(_(u8"更新铺粉方式:%d").c_str(), ad.CoverType); } - if (ImGui::InputFloatEx(_(u8"打印铺粉速度(mm/s)").c_str(), &ad.CoverSpeed, 0, 0, 3, ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_ArmSpeedMin,¶mLimitfg.m_ArmSpeedMax)) { + if (ImGui::InputFloatEx(_(u8"打印铺粉速度(mm/s)").c_str(), &ad.CoverSpeed, 0, 0, 3, ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_ArmSpeedMin, ¶mLimitfg.m_ArmSpeedMax)) { m_SysParamWrapper->m_CoverSpeed->SetValue(ad.CoverSpeed); g_log->TraceInfo(_(u8"更新铺粉速度:%.3f").c_str(), ad.CoverSpeed); } @@ -9846,37 +9835,37 @@ void HBD1000::DrawPowderCtrl(bool *winShow) m_SysParamWrapper->m_CoverReturnSpeed->SetValue(ad.CoverReturnSpeed); g_log->TraceInfo(_(u8"更新打印单向返回速度:%.3f").c_str(), ad.CoverReturnSpeed); } - paramLimitfg.m_CoverDistanceMax = abs(ad.ArmPowderDropFrontPos - ad.ArmPowderAcceptPos)/1000.0f+1.0f; + paramLimitfg.m_CoverDistanceMax = abs(ad.ArmPowderDropFrontPos - ad.ArmPowderAcceptPos) / 1000.0f + 1.0f; - if (ImGui::InputFloatEx(_(u8"打印单向铺粉距离(mm)").c_str(), &ad.CoverDistance, 0, 0, 3, ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_CoverDistanceMin,¶mLimitfg.m_CoverDistanceMax)) { + if (ImGui::InputFloatEx(_(u8"打印单向铺粉距离(mm)").c_str(), &ad.CoverDistance, 0, 0, 3, ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_CoverDistanceMin, ¶mLimitfg.m_CoverDistanceMax)) { m_SysParamWrapper->m_CoverDistance->SetValue(ad.CoverDistance); g_log->TraceInfo(_(u8"更新打印单向铺粉距离:%.3f").c_str(), ad.CoverDistance); } - if (ImGui::InputFloatEx(_(u8"打印铺粉层厚(μm)").c_str(), &ad.LayerThick, 0, 0, 3, ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_CtrlLayerThicknessMin,¶mLimitfg.m_CtrlLayerThicknessMax)) { + if (ImGui::InputFloatEx(_(u8"打印铺粉层厚(μm)").c_str(), &ad.LayerThick, 0, 0, 3, ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_CtrlLayerThicknessMin, ¶mLimitfg.m_CtrlLayerThicknessMax)) { m_SysParamWrapper->m_LayerThick->SetValue(ad.LayerThick); g_log->TraceInfo(_(u8"更新打印铺粉层厚:%.3f").c_str(), ad.LayerThick); } - if (ImGui::InputFloatEx(_(u8"打印间隙补偿(μm)").c_str(), &ad.FixGap, 0, 0, 3, ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_FixGapMin,¶mLimitfg.m_FixGapMax)) { + if (ImGui::InputFloatEx(_(u8"打印间隙补偿(μm)").c_str(), &ad.FixGap, 0, 0, 3, ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_FixGapMin, ¶mLimitfg.m_FixGapMax)) { m_SysParamWrapper->m_FixGap->SetValue(ad.FixGap); g_log->TraceInfo(_(u8"更新打印间隙补偿:%.3f").c_str(), ad.FixGap); } - if (ImGui::InputScalarEx(_(u8"打印铺粉格数").c_str(), ImGuiDataType_S16, &ad.SupplyCount, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_SupplyCountMin,¶mLimitfg.m_SupplyCountMax)) { + if (ImGui::InputScalarEx(_(u8"打印铺粉格数").c_str(), ImGuiDataType_S16, &ad.SupplyCount, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_SupplyCountMin, ¶mLimitfg.m_SupplyCountMax)) { m_SysParamWrapper->m_SupplyCount->SetValue(ad.SupplyCount); g_log->TraceInfo(_(u8"更新打印铺粉格数:%d").c_str(), ad.SupplyCount); } - if (ImGui::InputIntEx(_(u8"打印下粉时间(ms)").c_str(), &ad.SupplyTime, 0, 0,ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_SupplyWaitTimeMin,¶mLimitfg.m_SupplyWaitTimeMax)) { + if (ImGui::InputIntEx(_(u8"打印下粉时间(ms)").c_str(), &ad.SupplyTime, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_SupplyWaitTimeMin, ¶mLimitfg.m_SupplyWaitTimeMax)) { m_SysParamWrapper->m_SupplyTime->SetValue(ad.SupplyTime); g_log->TraceInfo(_(u8"更新打印下粉时间:%d").c_str(), ad.SupplyTime); } - if (ImGui::InputFloatEx(_(u8"铺粉调试层厚(μm)").c_str(), &ad.DebugLayerThick, 0, 0, 3, ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_CtrlLayerThicknessMin,¶mLimitfg.m_CtrlLayerThicknessMax)) { + if (ImGui::InputFloatEx(_(u8"铺粉调试层厚(μm)").c_str(), &ad.DebugLayerThick, 0, 0, 3, ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_CtrlLayerThicknessMin, ¶mLimitfg.m_CtrlLayerThicknessMax)) { m_SysParamWrapper->m_DebugLayerThick->SetValue(ad.DebugLayerThick); g_log->TraceInfo(_(u8"更新铺粉调试层厚:%.3f").c_str(), ad.DebugLayerThick); } - if (ImGui::InputFloatEx(_(u8"铺粉调试间隙(μm)").c_str(), &ad.DebugFixGap, 0, 0, 3, ImGuiInputTextFlags_EnterReturnsTrue,¶mLimitfg.m_FixGapMin,¶mLimitfg.m_FixGapMax)) { + if (ImGui::InputFloatEx(_(u8"铺粉调试间隙(μm)").c_str(), &ad.DebugFixGap, 0, 0, 3, ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_FixGapMin, ¶mLimitfg.m_FixGapMax)) { m_SysParamWrapper->m_DebugFixGap->SetValue(ad.DebugFixGap); g_log->TraceInfo(_(u8"更新铺粉调试间隙补偿:%.3f").c_str(), ad.DebugFixGap); } - if (ImGui::InputIntEx(_(u8"铺粉调试下粉时间(ms)").c_str(), &ad.DebugSupplyTime, 0, 0,ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_SupplyWaitTimeMin, ¶mLimitfg.m_SupplyWaitTimeMax)) { + if (ImGui::InputIntEx(_(u8"铺粉调试下粉时间(ms)").c_str(), &ad.DebugSupplyTime, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_SupplyWaitTimeMin, ¶mLimitfg.m_SupplyWaitTimeMax)) { m_SysParamWrapper->m_DebugSupplyTime->SetValue(ad.DebugSupplyTime); g_log->TraceInfo(_(u8"更新铺粉调试下粉时间:%d").c_str(), ad.DebugSupplyTime); } @@ -9930,7 +9919,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) g_Toast->AddToast(new ToastBean(_(u8"铺粉调试条件不成立").c_str(), 3000)); } } - + } } ImGui::EndTabItem(); @@ -10017,7 +10006,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } ImGui::PopItemFlag(); } - + if (m_SignalState.m_CylinderConnectCleanBoxRun) { ImGui::PushID("CylinderConnectCleanBoxTrigerStop"); if (ImGui::Button(_(u8"停止").c_str())) { @@ -10070,7 +10059,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } ImGui::PopItemFlag(); } - + if (m_SignalState.m_CylinderDisconnectCleanBoxRun) { ImGui::PushID("CylinderDisconnectCleanBoxTrigerStop"); if (ImGui::Button(_(u8"停止").c_str())) { @@ -10119,7 +10108,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } ImGui::PopItemFlag(); } - + if (m_SignalState.m_MoldDisconnectCylinderRun) { ImGui::PushID("MoldDisconnectCylinderTrigerStop"); if (ImGui::Button(_(u8"停止").c_str())) { @@ -10186,7 +10175,11 @@ void HBD1000::DrawPowderCtrl(bool *winShow) ImGui::Text(_(u8"连续运动").c_str()); ImGui::Dummy(ImVec2(0, 250)); + /* + */ + MACHINEPARAM mp; + GetMachineParam(mp); if (ImGui::ImageButton(chartletManager->m_LoadOut->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { if (m_LoadAxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); @@ -10221,8 +10214,6 @@ void HBD1000::DrawPowderCtrl(bool *winShow) // ImGui::OpenPopup(u8"移载载入"); //} - MACHINEPARAM mp; - GetMachineParam(mp); if (ImGui::BeginPopupModal(_(u8"移载载入").c_str(), NULL, ImGuiWindowFlags_AlwaysAutoResize)) { if (GetLoadInProcStep() == In_Start) { ImGui::Text(_(u8"移载开始载入").c_str()); @@ -10242,7 +10233,6 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (GetLoadInProcStep() == In_CylinderPrintLoad) { ImGui::Text(_(u8"缸体打印位装载运行中").c_str()); } - if (mp.m_LoadInResut == In_Intercept) { ImGui::TextColored(Toast::COLOR_ORANGE, mp.m_LoadInfo.c_str()); @@ -10302,6 +10292,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) { ImGui::Text(_(u8"缸体与清粉箱连接中").c_str()); } + if (mp.m_WaitConnectBoxCommit) { if (ImGui::Button(_(u8"执行缸体与清粉箱连接").c_str())) @@ -10335,24 +10326,24 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (IsLoadOut()) { if (ImGui::Button(_(u8"中断载出").c_str(), ImVec2(-1, 0))) { - DataHandle::Instance()->SetPushMsg(INTERCEPTLOAD); //InterceptLoad(); + DataHandle::Instance()->SetPushMsg(INTERCEPTLOAD); } } - + ImGui::EndPopup(); } ImGui::Dummy(ImVec2(0, 80)); ImGui::RadioButton(_(u8"移载轴").c_str(), &kb, GTS_AXIS_ID_LOAD); - + if (IsLoadAxisCanMoveLeft()) { ImGui::PushID("LoadMovePointLeft"); if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); - g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), m_Axis->m_Load->GetState()->GetShowPos(), loadCfgVal.rel); + g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); } ImGui::PopID(); if (ImGui::IsItemHovered()) { @@ -10361,7 +10352,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (kb == GTS_AXIS_ID_LOAD && !continue_move) { if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); - g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), m_Axis->m_Load->GetState()->GetShowPos(), loadCfgVal.rel); + g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); } } } @@ -10371,36 +10362,36 @@ void HBD1000::DrawPowderCtrl(bool *winShow) ImGui::SetTooltip(GetLoadAxisCanotMoveLeftInfo().c_str()); } } - - + + ImGui::SameLine(); - if (IsLoadAxisCanMoveRight()) + //if (IsLoadAxisCanMoveRight()) + //{ + ImGui::PushID("LoadMovePointRight"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - ImGui::PushID("LoadMovePointRight"); - if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) - { + m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); + g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移载轴右移 %.3fmm").c_str(), loadCfgVal.rel / 1000.0f); + } + if (kb == GTS_AXIS_ID_LOAD && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) { m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); - g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), m_Axis->m_Load->GetState()->GetShowPos(), loadCfgVal.rel); - } - ImGui::PopID(); - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip(_(u8"移载轴右移 %.3fmm").c_str(), loadCfgVal.rel / 1000.0f); - } - if (kb == GTS_AXIS_ID_LOAD && !continue_move) { - if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) { - m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); - g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), m_Axis->m_Load->GetState()->GetShowPos(), loadCfgVal.rel); - } + g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); } } - else { - ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip(GetLoadAxisCanotMoveRightInfo().c_str()); - } - } - + //} + //else { + // ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + // if (ImGui::IsItemHovered()) { + // ImGui::SetTooltip(GetLoadAxisCanotMoveRightInfo().c_str()); + // } + //} + if (IsLoadAxisCanMoveLeft()) { ImGui::PushID("LoadMoveLimitLeft"); @@ -10408,7 +10399,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (!m_PowderAssist.isLoadLeftRepeat) { m_PowderAssist.isLoadLeftRepeat = true; m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); - g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), m_Axis->m_Load->GetState()->GetShowPos()); + g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), load->GetShowPos()); } } else { @@ -10422,7 +10413,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (ImGui::IsItemHovered()) { ImGui::SetTooltip(_(u8"移载轴左连续").c_str()); } - + } else { ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); @@ -10434,12 +10425,12 @@ void HBD1000::DrawPowderCtrl(bool *winShow) m_PowderAssist.isLoadLeftRepeat = false; } } - + if (kb == GTS_AXIS_ID_LOAD && continue_move) { if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { if (IsLoadAxisCanMoveLeft()) { m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); - g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), m_Axis->m_Load->GetState()->GetShowPos()); + g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), load->GetShowPos()); } else { g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveLeftInfo(), 5000, Toast::COLOR_ORANGE)); @@ -10448,7 +10439,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_LeftArrow))) m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); } - + ImGui::SameLine(); if (IsLoadAxisCanMoveRight()) { @@ -10459,7 +10450,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (!m_PowderAssist.isLoadRightRepeat) { m_PowderAssist.isLoadRightRepeat = true; m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); - g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), pLoad->GetShowPos()); + g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), load->GetShowPos()); } } else { @@ -10473,7 +10464,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (ImGui::IsItemHovered()) { ImGui::SetTooltip(_(u8"移载轴右连续").c_str()); } - + } else { ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); @@ -10490,7 +10481,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) { if (IsLoadAxisCanMoveRight()) { m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); - g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), pLoad->GetShowPos()); + g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), load->GetShowPos()); } else { g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveRightInfo(), 5000, Toast::COLOR_ORANGE)); @@ -10503,7 +10494,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } ImGui::PushID("load_to_zero"); if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) - pLoad->SetZeroPos(); + load->SetZeroPos(); ImGui::PopID(); if (ImGui::IsItemHovered()) { ImGui::SetTooltip(_(u8"移栽轴位置清零").c_str()); @@ -10518,10 +10509,10 @@ void HBD1000::DrawPowderCtrl(bool *winShow) //ImGui::Dummy(ImVec2(500,1)); ImGui::BeginChild("SupplyCtrl", ImVec2(500, 160)); ImGui::BeginGroup(); - ImGui::Text(_(u8"移栽轴:%.3f").c_str(), pLoad->GetShowPos() / 1000.0f); - ImGui::Text(_(u8"成型缸:%.3f").c_str(), pMold->GetShowPos() / 1000.0f); - ImGui::Text(_(u8"铺粉臂:%.3f").c_str(), pArm->GetShowPos() / 1000.0f); - ImGui::Text(_(u8"清粉位:%.3f").c_str(), pClean->GetShowPos() / 1000.0f); + ImGui::Text(_(u8"移栽轴:%.3f").c_str(), load->GetShowPos() / 1000.0f); + ImGui::Text(_(u8"成型缸:%.3f").c_str(), mold->GetShowPos() / 1000.0f); + ImGui::Text(_(u8"铺粉臂:%.3f").c_str(), arm->GetShowPos() / 1000.0f); + ImGui::Text(_(u8"清粉位:%.3f").c_str(), clean->GetShowPos() / 1000.0f); ImGui::EndGroup(); ImGui::SameLine(350); ImGui::BeginGroup(); @@ -10533,7 +10524,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) ImGui::PushID("SupplyMovePointBack"); if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (pSupply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (supply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -10546,7 +10537,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } if (kb == GTS_AXIS_ID_SUPPLY && !continue_move) { if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { - if (pSupply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (supply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -10560,7 +10551,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) ImGui::PushID("SupplyMoveLimitBack"); if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (pSupply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (supply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -10585,7 +10576,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (kb == GTS_AXIS_ID_SUPPLY && continue_move) { if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { - if (pSupply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (supply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -10601,7 +10592,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) ImGui::PushID("SupplyMovePointFront"); if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (pSupply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (supply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -10614,7 +10605,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } if (kb == GTS_AXIS_ID_SUPPLY && !continue_move) { if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { - if (pSupply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (supply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -10625,7 +10616,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) ImGui::SameLine(); ImGui::PushID("SupplyMoveLimitFront"); if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (m_Axis->m_Supply->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (supply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -10650,7 +10641,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } if (kb == GTS_AXIS_ID_SUPPLY && continue_move) { if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { - if (pSupply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (supply->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -10665,16 +10656,21 @@ void HBD1000::DrawPowderCtrl(bool *winShow) ImGui::EndGroup(); ImGui::EndChild(); + AxisStateValue moldValue; + mold->GetValue(moldValue); + AxisStateValue armValue; + arm->GetValue(armValue); + MotionDrawAssist assit; - //AxisStateValue loadvalue; - //load->GetValue(loadvalue); + AxisStateValue loadvalue; + load->GetValue(loadvalue); AxisData axisData; m_SysParamWrapper->GetAxisData(axisData); float loadposdif = axisData.LoadAxisTrackCleanPos - axisData.LoadAxisTrackPrintPos; - if (loadposdif != 0.0f)assit.loadRPos = (load.Pos - axisData.LoadAxisTrackPrintPos) / loadposdif; + if (loadposdif != 0.0f)assit.loadRPos = (loadvalue.Pos - axisData.LoadAxisTrackPrintPos) / loadposdif; else assit.loadRPos = 0.0f; - assit.loadRPos = assit.loadRPos >1.0f ? 1.0f : assit.loadRPos; + assit.loadRPos = assit.loadRPos > 1.0f ? 1.0f : assit.loadRPos; assit.loadRPos = assit.loadRPos < 0.0f ? 0.0f : assit.loadRPos; /*int cylinderState = m_SignalState.m_CylinderState; if (cylinderState == CylinderInCleanOutsidePlatformUnConnectBox || @@ -10684,8 +10680,8 @@ void HBD1000::DrawPowderCtrl(bool *winShow) assit.loadRPos = 1.0f; }*/ - assit.moldRpos = mold.RPos>1.0f ? 1.0f : mold.RPos; - assit.armRPos = arm.RPos; + assit.moldRpos = moldValue.RPos > 1.0f ? 1.0f : moldValue.RPos; + assit.armRPos = armValue.RPos; assit.isCleanPressure = m_IOCfgWrapper->m_CleannerPressOn->IsActive(); assit.isPrintPressure = m_IOCfgWrapper->m_PrintPressOn->IsActive(); if (!m_IOCfgWrapper->m_PrintSupportCylinderOn) { @@ -10710,7 +10706,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) ImGui::PushID("ArmMovPointBack"); if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (arm->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -10740,7 +10736,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) ImGui::PushID("ArmMoveLimitBack"); if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - + if (!m_PowderAssist.isArmBackRepeat) { m_PowderAssist.isArmBackRepeat = true; m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::BACK); @@ -10806,12 +10802,12 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } } - + ImGui::SameLine(); if (IsArmCanMoveFront()) { ImGui::PushID("ArmMoveLimitFront"); if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { - if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { + if (arm->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose) { g_Toast->AddToast(new ToastBean(_(u8"舱门打开时运动受限").c_str(), 5000, Toast::COLOR_RED)); } else { @@ -10855,10 +10851,10 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); } - + ImGui::PushID("arm_to_zero"); if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) - pArm->SetZeroPos(); + arm->SetZeroPos(); ImGui::PopID(); if (ImGui::IsItemHovered()) { ImGui::SetTooltip(_(u8"铺粉轴位置清零").c_str()); @@ -10879,13 +10875,13 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } ImGui::Dummy(ImVec2(0, 35)); - + ImGui::RadioButton(_(u8"成型缸").c_str(), &kb, GTS_AXIS_ID_MOLD); if (IsMoldCanMoveUp()) { ImGui::PushID("MoldMovePointUp"); if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); - g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), pMold->GetShowPos(), moldCfgVal.rel); + g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); } ImGui::PopID(); if (ImGui::IsItemHovered()) { @@ -10894,7 +10890,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (kb == GTS_AXIS_ID_MOLD && !continue_move) { if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); - g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), pMold->GetShowPos(), moldCfgVal.rel); + g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); } } } @@ -10904,7 +10900,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) ImGui::SetTooltip(GetMoldCanotUpInfo().c_str()); } } - + ImGui::SameLine(); if (IsMoldCanMoveUp()) { ImGui::PushID("MoldMoveLimitUp"); @@ -10912,13 +10908,13 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (!m_PowderAssist.isMoldUpRepeat) { m_PowderAssist.isMoldUpRepeat = true; m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); - g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), pMold->GetShowPos()); + g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), mold->GetShowPos()); } } else { if (m_PowderAssist.isMoldUpRepeat) { - + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); m_PowderAssist.isMoldUpRepeat = false; } @@ -10943,7 +10939,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { if (IsMoldCanMoveUp()) { m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); - g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), pMold->GetShowPos()); + g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), mold->GetShowPos()); } else { g_Toast->AddToast(new ToastBean(GetMoldCanotUpInfo(), 5000, Toast::COLOR_ORANGE)); @@ -10952,13 +10948,13 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_UpArrow))) m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); } - + if (IsMoldCanMoveDown()) { ImGui::PushID("MoldMovePointDown"); if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); - g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), pMold->GetShowPos(), moldCfgVal.rel); + g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); } ImGui::PopID(); if (ImGui::IsItemHovered()) { @@ -10967,7 +10963,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (kb == GTS_AXIS_ID_MOLD && !continue_move) { if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); - g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), pMold->GetShowPos(), moldCfgVal.rel); + g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); } } } @@ -10978,7 +10974,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } } ImGui::SameLine(); - + if (IsMoldCanMoveDown()) { ImGui::PushID("MoldMoveLimitDown"); @@ -10987,7 +10983,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) if (!m_PowderAssist.isMoldDownRepeat) { m_PowderAssist.isMoldDownRepeat = true; m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); - g_log->TraceInfo(_(u8"升降[%.3f]往下连续移动").c_str(), pMold->GetShowPos()); + g_log->TraceInfo(_(u8"升降[%.3f]往下连续移动").c_str(), mold->GetShowPos()); } } else { @@ -11018,13 +11014,13 @@ void HBD1000::DrawPowderCtrl(bool *winShow) { if (IsMoldCanMoveDown()) { m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); - g_log->TraceInfo(_(u8"升降[%.3f]往连续下移动").c_str(), pMold->GetShowPos()); + g_log->TraceInfo(_(u8"升降[%.3f]往连续下移动").c_str(), mold->GetShowPos()); } else { g_Toast->AddToast(new ToastBean(GetMoldCanotDownInfo(), 5000, Toast::COLOR_ORANGE)); } - + } if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) { @@ -11033,7 +11029,7 @@ void HBD1000::DrawPowderCtrl(bool *winShow) } ImGui::PushID("mold_to_zero"); if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) - pMold->SetZeroPos(); + mold->SetZeroPos(); ImGui::PopID(); if (ImGui::IsItemHovered()) { ImGui::SetTooltip(_(u8"成型缸位置清零").c_str()); @@ -11043,230 +11039,230 @@ void HBD1000::DrawPowderCtrl(bool *winShow) ImGui::EndChild(); ImGui::End(); - + } -//void HBD1000::DrawServoState(bool* winShow) -//{ -// -// ImGui::Begin(_(u8"伺服状态").c_str(), winShow,ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoResize| ImGuiWindowFlags_AlwaysAutoResize); -// ImGui::BeginTabBar("servo_state"); -// if (ImGui::BeginTabItem(_(u8"打印轴").c_str())) { -// AxisStateValue mold; -// m_Axis->m_Mold->GetState()->GetValue(mold); -// AxisStateValue mold_slave; -// m_Axis->m_MoldSlave->GetState()->GetValue(mold_slave); -// ImGui::BeginGroup(); -// ImGui::Button(_(u8"打印主轴").c_str(), ImVec2(200, 0)); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), mold.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), mold.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), mold.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对上运动: %s").c_str(), mold.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对下运动: %s").c_str(), mold.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"上JOG: %s").c_str(), mold.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"下JOG: %s").c_str(), mold.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), mold.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), mold.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), mold.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), mold.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), mold.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), mold.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), mold.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), mold.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), mold.ExceptionCode); //轴伺服异常字_R -// -// ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), mold.ServoBreakOn ? "YES" : "NO"); -// ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), mold.BindSlaveOn ? "YES" : "NO"); -// ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), mold.BindSlaveFinish ? "YES" : "NO"); -// -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), mold.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), mold.Torque); -// ImGui::EndGroup(); -// ImGui::SameLine(); -// ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); -// ImGui::SameLine(); -// -// ImGui::BeginGroup(); -// ImGui::Button(_(u8"打印从轴").c_str(), ImVec2(200, 0)); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), mold_slave.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), mold_slave.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), mold_slave.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对上运动: %s").c_str(), mold_slave.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对下运动: %s").c_str(), mold_slave.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"上JOG: %s").c_str(), mold_slave.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"下JOG: %s").c_str(), mold_slave.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), mold_slave.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), mold_slave.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), mold_slave.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), mold_slave.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), mold_slave.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), mold_slave.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), mold_slave.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), mold_slave.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), mold_slave.ExceptionCode); //轴伺服异常字_R -// -// ImGui::Text(_(u8"从轴伺服刹车: %s").c_str(), mold_slave.SlaveServoBreakOn ? "YES" : "NO"); -// ImGui::Text(_(u8"从轴伺服解除绑定: %s").c_str(), mold_slave.SlaveUnbind ? "YES" : "NO"); -// -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), mold_slave.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), mold_slave.Torque); -// ImGui::EndGroup(); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"清粉轴").c_str())) { -// AxisStateValue clean; -// m_Axis->m_Clean->GetState()->GetValue(clean); -// AxisStateValue clean_slave; -// m_Axis->m_CleanSlave->GetState()->GetValue(clean_slave); -// ImGui::BeginGroup(); -// ImGui::Button(_(u8"清粉主轴").c_str(), ImVec2(200, 0)); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), clean.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), clean.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), clean.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对上运动: %s").c_str(), clean.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对下运动: %s").c_str(), clean.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"上JOG: %s").c_str(), clean.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"下JOG: %s").c_str(), clean.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), clean.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), clean.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), clean.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), clean.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), clean.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), clean.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), clean.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), clean.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), clean.ExceptionCode); //轴伺服异常字_R -// -// ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), clean.ServoBreakOn ? "YES" : "NO"); -// ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), clean.BindSlaveOn ? "YES" : "NO"); -// ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), clean.BindSlaveFinish ? "YES" : "NO"); -// -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), clean.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), clean.Torque); -// ImGui::EndGroup(); -// ImGui::SameLine(); -// ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); -// ImGui::SameLine(); -// -// ImGui::BeginGroup(); -// ImGui::Button(_(u8"清粉从轴").c_str(), ImVec2(200, 0)); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), clean_slave.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), clean_slave.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), clean_slave.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对上运动: %s").c_str(), clean_slave.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对下运动: %s").c_str(), clean_slave.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"上JOG: %s").c_str(), clean_slave.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"下JOG: %s").c_str(), clean_slave.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), clean_slave.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), clean_slave.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), clean_slave.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), clean_slave.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), clean_slave.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), clean_slave.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), clean_slave.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), clean_slave.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), clean_slave.ExceptionCode); //轴伺服异常字_R -// -// ImGui::Text(_(u8"从轴伺服刹车: %s").c_str(), clean_slave.SlaveServoBreakOn ? "YES" : "NO"); -// ImGui::Text(_(u8"从轴伺服解除绑定: %s").c_str(), clean_slave.SlaveUnbind ? "YES" : "NO"); -// -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), clean_slave.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), clean_slave.Torque); -// ImGui::EndGroup(); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { -// AxisStateValue arm; -// m_Axis->m_Arm->GetState()->GetValue(arm); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), arm.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), arm.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), arm.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对前运动: %s").c_str(), arm.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对后运动: %s").c_str(), arm.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"前JOG: %s").c_str(), arm.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"后JOG: %s").c_str(), arm.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), arm.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), arm.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), arm.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), arm.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), arm.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), arm.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), arm.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), arm.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), arm.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), arm.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), arm.Torque); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { -// AxisStateValue load; -// m_Axis->m_Load->GetState()->GetValue(load); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), load.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), load.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), load.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对右运动: %s").c_str(), load.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对左运动: %s").c_str(), load.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"右JOG: %s").c_str(), load.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"左JOG: %s").c_str(), load.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), load.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), load.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), load.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), load.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), load.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), load.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), load.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), load.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), load.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), load.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), load.Torque); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { -// AxisStateValue supply; -// m_Axis->m_Supply->GetState()->GetValue(supply); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), supply.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), supply.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), supply.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对右运动: %s").c_str(), supply.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对左运动: %s").c_str(), supply.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"右JOG: %s").c_str(), supply.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"左JOG: %s").c_str(), supply.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), supply.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), supply.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), supply.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), supply.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), supply.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), supply.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), supply.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), supply.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), supply.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), supply.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), supply.Torque); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"光栅尺").c_str())) -// { -// g_SystemInfo->LockInfo(); -// float linearLayerValue = g_SystemInfo->m_EnvState.m_LinearLayerPos; -// float moldTheoryDis = g_SystemInfo->m_EnvState.m_MoldTheoryDistance; -// float linearActDis = g_SystemInfo->m_EnvState.m_LinearActDistance; -// float linearPulseValue = g_SystemInfo->m_EnvState.m_LinearActPulse; -// g_SystemInfo->UnlockInfo(); -// ImGui::Text(_(u8"光栅每层实际值: %.3f").c_str(), linearLayerValue); -// ImGui::Text(_(u8"升降理论行程: %.3f").c_str(), moldTheoryDis); -// ImGui::Text(_(u8"光栅实际行程: %.3f").c_str(), linearActDis); -// ImGui::Text(_(u8"光栅实际脉冲数: %.3f").c_str(), linearPulseValue); -// ImGui::EndTabItem(); -// } -// ImGui::EndTabBar(); -// ImGui::End(); -//} +void HBD1000::DrawServoState(bool* winShow) +{ + + ImGui::Begin(_(u8"伺服状态").c_str(), winShow,ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoResize| ImGuiWindowFlags_AlwaysAutoResize); + ImGui::BeginTabBar("servo_state"); + if (ImGui::BeginTabItem(_(u8"打印轴").c_str())) { + AxisStateValue mold; + m_Axis->m_Mold->GetState()->GetValue(mold); + AxisStateValue mold_slave; + m_Axis->m_MoldSlave->GetState()->GetValue(mold_slave); + ImGui::BeginGroup(); + ImGui::Button(_(u8"打印主轴").c_str(), ImVec2(200, 0)); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), mold.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), mold.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), mold.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对上运动: %s").c_str(), mold.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对下运动: %s").c_str(), mold.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"上JOG: %s").c_str(), mold.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"下JOG: %s").c_str(), mold.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), mold.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), mold.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), mold.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), mold.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), mold.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), mold.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), mold.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), mold.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), mold.ExceptionCode); //轴伺服异常字_R + + ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), mold.ServoBreakOn ? "YES" : "NO"); + ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), mold.BindSlaveOn ? "YES" : "NO"); + ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), mold.BindSlaveFinish ? "YES" : "NO"); + + ImGui::Text(_(u8"轴位置: %.3f").c_str(), mold.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), mold.Torque); + ImGui::EndGroup(); + ImGui::SameLine(); + ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); + ImGui::SameLine(); + + ImGui::BeginGroup(); + ImGui::Button(_(u8"打印从轴").c_str(), ImVec2(200, 0)); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), mold_slave.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), mold_slave.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), mold_slave.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对上运动: %s").c_str(), mold_slave.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对下运动: %s").c_str(), mold_slave.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"上JOG: %s").c_str(), mold_slave.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"下JOG: %s").c_str(), mold_slave.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), mold_slave.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), mold_slave.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), mold_slave.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), mold_slave.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), mold_slave.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), mold_slave.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), mold_slave.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), mold_slave.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), mold_slave.ExceptionCode); //轴伺服异常字_R + + ImGui::Text(_(u8"从轴伺服刹车: %s").c_str(), mold_slave.SlaveServoBreakOn ? "YES" : "NO"); + ImGui::Text(_(u8"从轴伺服解除绑定: %s").c_str(), mold_slave.SlaveUnbind ? "YES" : "NO"); + + ImGui::Text(_(u8"轴位置: %.3f").c_str(), mold_slave.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), mold_slave.Torque); + ImGui::EndGroup(); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"清粉轴").c_str())) { + AxisStateValue clean; + m_Axis->m_Clean->GetState()->GetValue(clean); + AxisStateValue clean_slave; + m_Axis->m_CleanSlave->GetState()->GetValue(clean_slave); + ImGui::BeginGroup(); + ImGui::Button(_(u8"清粉主轴").c_str(), ImVec2(200, 0)); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), clean.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), clean.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), clean.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对上运动: %s").c_str(), clean.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对下运动: %s").c_str(), clean.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"上JOG: %s").c_str(), clean.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"下JOG: %s").c_str(), clean.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), clean.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), clean.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), clean.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), clean.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), clean.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), clean.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), clean.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), clean.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), clean.ExceptionCode); //轴伺服异常字_R + + ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), clean.ServoBreakOn ? "YES" : "NO"); + ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), clean.BindSlaveOn ? "YES" : "NO"); + ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), clean.BindSlaveFinish ? "YES" : "NO"); + + ImGui::Text(_(u8"轴位置: %.3f").c_str(), clean.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), clean.Torque); + ImGui::EndGroup(); + ImGui::SameLine(); + ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); + ImGui::SameLine(); + + ImGui::BeginGroup(); + ImGui::Button(_(u8"清粉从轴").c_str(), ImVec2(200, 0)); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), clean_slave.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), clean_slave.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), clean_slave.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对上运动: %s").c_str(), clean_slave.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对下运动: %s").c_str(), clean_slave.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"上JOG: %s").c_str(), clean_slave.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"下JOG: %s").c_str(), clean_slave.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), clean_slave.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), clean_slave.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), clean_slave.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), clean_slave.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), clean_slave.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), clean_slave.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), clean_slave.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), clean_slave.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), clean_slave.ExceptionCode); //轴伺服异常字_R + + ImGui::Text(_(u8"从轴伺服刹车: %s").c_str(), clean_slave.SlaveServoBreakOn ? "YES" : "NO"); + ImGui::Text(_(u8"从轴伺服解除绑定: %s").c_str(), clean_slave.SlaveUnbind ? "YES" : "NO"); + + ImGui::Text(_(u8"轴位置: %.3f").c_str(), clean_slave.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), clean_slave.Torque); + ImGui::EndGroup(); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { + AxisStateValue arm; + m_Axis->m_Arm->GetState()->GetValue(arm); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), arm.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), arm.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), arm.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对前运动: %s").c_str(), arm.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对后运动: %s").c_str(), arm.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"前JOG: %s").c_str(), arm.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"后JOG: %s").c_str(), arm.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), arm.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), arm.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), arm.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), arm.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), arm.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), arm.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), arm.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), arm.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), arm.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"轴位置: %.3f").c_str(), arm.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), arm.Torque); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { + AxisStateValue load; + m_Axis->m_Load->GetState()->GetValue(load); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), load.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), load.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), load.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对右运动: %s").c_str(), load.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对左运动: %s").c_str(), load.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"右JOG: %s").c_str(), load.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"左JOG: %s").c_str(), load.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), load.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), load.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), load.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), load.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), load.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), load.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), load.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), load.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), load.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"轴位置: %.3f").c_str(), load.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), load.Torque); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { + AxisStateValue supply; + m_Axis->m_Supply->GetState()->GetValue(supply); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), supply.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), supply.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), supply.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对右运动: %s").c_str(), supply.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对左运动: %s").c_str(), supply.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"右JOG: %s").c_str(), supply.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"左JOG: %s").c_str(), supply.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), supply.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), supply.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), supply.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), supply.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), supply.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), supply.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), supply.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), supply.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), supply.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"轴位置: %.3f").c_str(), supply.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), supply.Torque); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"光栅尺").c_str())) + { + g_SystemInfo->LockInfo(); + float linearLayerValue = g_SystemInfo->m_EnvState.m_LinearLayerPos; + float moldTheoryDis = g_SystemInfo->m_EnvState.m_MoldTheoryDistance; + float linearActDis = g_SystemInfo->m_EnvState.m_LinearActDistance; + float linearPulseValue = g_SystemInfo->m_EnvState.m_LinearActPulse; + g_SystemInfo->UnlockInfo(); + ImGui::Text(_(u8"光栅每层实际值: %.3f").c_str(), linearLayerValue); + ImGui::Text(_(u8"升降理论行程: %.3f").c_str(), moldTheoryDis); + ImGui::Text(_(u8"光栅实际行程: %.3f").c_str(), linearActDis); + ImGui::Text(_(u8"光栅实际脉冲数: %.3f").c_str(), linearPulseValue); + ImGui::EndTabItem(); + } + ImGui::EndTabBar(); + ImGui::End(); +} void HBD1000::InitSignal(SignalStateWrapper* ssw, void* cc) diff --git a/PrintC/Machine/HBD1000.h b/PrintC/Machine/HBD1000.h index 54d7378..70bb4ad 100644 --- a/PrintC/Machine/HBD1000.h +++ b/PrintC/Machine/HBD1000.h @@ -59,7 +59,7 @@ public: void DrawAxisCfg(); void DrawPowderCtrl(bool* winShow); - //void DrawServoState(bool* winShow); + void DrawServoState(bool* winShow); virtual void CheckIO(); diff --git a/PrintC/Machine/HBD1200.cpp b/PrintC/Machine/HBD1200.cpp index 125a992..226c01c 100644 --- a/PrintC/Machine/HBD1200.cpp +++ b/PrintC/Machine/HBD1200.cpp @@ -1748,193 +1748,194 @@ void HBD1200::DrawSignal(bool* isshow) ImGui::End(); } + void HBD1200::DrawServoState(bool* winShow) { - ImGui::Begin(_(u8"伺服状态").c_str(), winShow, ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoResize| ImGuiWindowFlags_AlwaysAutoResize); + ImGui::Begin(_(u8"伺服状态").c_str(), winShow, ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize); ImGui::BeginTabBar("servo_state"); - //if (ImGui::BeginTabItem(_(u8"打印轴").c_str())) { - // AxisStateValue mold; - // m_Axis->m_Mold->GetState()->GetValue(mold); - // ImGui::BeginGroup(); - // //ImGui::Text(_(u8"伺服使能:%s").c_str(), mold.ServoOn ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服成立原点: %s").c_str(), mold.ServoHomeIndexOn ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服复位: %s").c_str(), mold.ServoReset ? "YES" : "NO"); - // ImGui::Text(_(u8"相对上运动: %s").c_str(), mold.MoveP ? "YES" : "NO"); - // ImGui::Text(_(u8"相对下运动: %s").c_str(), mold.MoveN ? "YES" : "NO"); - // ImGui::Text(_(u8"上JOG: %s").c_str(), mold.MovePContinue ? "YES" : "NO"); - // ImGui::Text(_(u8"下JOG: %s").c_str(), mold.MoveNContinue ? "YES" : "NO"); - // ImGui::Text(_(u8"绝对值运动: %s").c_str(), mold.MoveAbsPos ? "YES" : "NO"); - // ImGui::Text(_(u8"急停: %s").c_str(), mold.MotionStop ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), mold.ServoRDY ? "YES" : "NO"); - // ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), mold.ServoHomeDone ? "YES" : "NO"); - // ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), mold.ResetDone ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服BUSY: %s").c_str(), mold.ServoBusy ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服异常: %s").c_str(), mold.ServoException ? "YES" : "NO"); - // ImGui::Text(_(u8"可运行状态: %s").c_str(), mold.Runable ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服异常字: %d").c_str(), mold.ExceptionCode); //轴伺服异常字_R - // ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), mold.ServoBreakOn ? "YES" : "NO"); - // //ImGui::Text(u8"主轴伺服绑定从轴: %s", mold.BindSlaveOn ? "YES" : "NO"); - // //ImGui::Text(u8"主从轴已经绑定: %s", mold.BindSlaveFinish ? "YES" : "NO"); - // ImGui::Text(_(u8"轴位置: %.3f").c_str(), mold.Pos); - // ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), mold.Torque); - // ImGui::EndGroup(); + if (ImGui::BeginTabItem(_(u8"打印轴").c_str())) { + AxisStateValue mold; + m_Axis->m_Mold->GetState()->GetValue(mold); + ImGui::BeginGroup(); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), mold.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), mold.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), mold.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对上运动: %s").c_str(), mold.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对下运动: %s").c_str(), mold.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"上JOG: %s").c_str(), mold.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"下JOG: %s").c_str(), mold.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), mold.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), mold.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), mold.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), mold.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), mold.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), mold.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), mold.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), mold.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), mold.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), mold.ServoBreakOn ? "YES" : "NO"); + //ImGui::Text(u8"主轴伺服绑定从轴: %s", mold.BindSlaveOn ? "YES" : "NO"); + //ImGui::Text(u8"主从轴已经绑定: %s", mold.BindSlaveFinish ? "YES" : "NO"); + ImGui::Text(_(u8"轴位置: %.3f").c_str(), mold.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), mold.Torque); + ImGui::EndGroup(); - // ImGui::SameLine(); - // ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); - // ImGui::SameLine(); + ImGui::SameLine(); + ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); + ImGui::SameLine(); - // ImGui::BeginGroup(); - // g_SystemInfo->LockInfo(); - // float linearLayerValue = g_SystemInfo->m_EnvState.m_LinearLayerPos; - // float moldTheoryDis = g_SystemInfo->m_EnvState.m_MoldTheoryDistance; - // float linearActDis = g_SystemInfo->m_EnvState.m_LinearActDistance; - // float linearPulseValue = g_SystemInfo->m_EnvState.m_LinearActPulse; - // g_SystemInfo->UnlockInfo(); - // ImGui::Text(_(u8"光栅每层实际值: %.3f").c_str(), linearLayerValue); - // ImGui::Text(_(u8"升降理论行程: %.3f").c_str(), moldTheoryDis); - // ImGui::Text(_(u8"光栅实际行程: %.3f").c_str(), linearActDis); - // ImGui::Text(_(u8"光栅实际脉冲数: %.3f").c_str(), linearPulseValue); + ImGui::BeginGroup(); + g_SystemInfo->LockInfo(); + float linearLayerValue = g_SystemInfo->m_EnvState.m_LinearLayerPos; + float moldTheoryDis = g_SystemInfo->m_EnvState.m_MoldTheoryDistance; + float linearActDis = g_SystemInfo->m_EnvState.m_LinearActDistance; + float linearPulseValue = g_SystemInfo->m_EnvState.m_LinearActPulse; + g_SystemInfo->UnlockInfo(); + ImGui::Text(_(u8"光栅每层实际值: %.3f").c_str(), linearLayerValue); + ImGui::Text(_(u8"升降理论行程: %.3f").c_str(), moldTheoryDis); + ImGui::Text(_(u8"光栅实际行程: %.3f").c_str(), linearActDis); + ImGui::Text(_(u8"光栅实际脉冲数: %.3f").c_str(), linearPulseValue); - // ImGui::EndGroup(); - // ImGui::EndTabItem(); - //} + ImGui::EndGroup(); + ImGui::EndTabItem(); + } - //if (ImGui::BeginTabItem(_(u8"电缸").c_str())) { - // AxisStateValue ele_main; - // m_Axis->m_Ele->GetState()->GetValue(ele_main); - // AxisStateValue ele_slave; - // m_Axis->m_EleSlave->GetState()->GetValue(ele_slave); - // ImGui::BeginGroup(); - // ImGui::Button(_(u8"电缸主轴").c_str(), ImVec2(200, 0)); - // //ImGui::Text(_(u8"伺服使能:%s").c_str(), ele_main.ServoOn ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服成立原点: %s").c_str(), ele_main.ServoHomeIndexOn ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服复位: %s").c_str(), ele_main.ServoReset ? "YES" : "NO"); - // ImGui::Text(_(u8"相对上运动: %s").c_str(), ele_main.MoveP ? "YES" : "NO"); - // ImGui::Text(_(u8"相对下运动: %s").c_str(), ele_main.MoveN ? "YES" : "NO"); - // ImGui::Text(_(u8"上JOG: %s").c_str(), ele_main.MovePContinue ? "YES" : "NO"); - // ImGui::Text(_(u8"下JOG: %s").c_str(), ele_main.MoveNContinue ? "YES" : "NO"); - // ImGui::Text(_(u8"绝对值运动: %s").c_str(), ele_main.MoveAbsPos ? "YES" : "NO"); - // ImGui::Text(_(u8"急停: %s").c_str(), ele_main.MotionStop ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), ele_main.ServoRDY ? "YES" : "NO"); - // ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), ele_main.ServoHomeDone ? "YES" : "NO"); - // ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), ele_main.ResetDone ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服BUSY: %s").c_str(), ele_main.ServoBusy ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服异常: %s").c_str(), ele_main.ServoException ? "YES" : "NO"); - // ImGui::Text(_(u8"可运行状态: %s").c_str(), ele_main.Runable ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服异常字: %d").c_str(), ele_main.ExceptionCode); //轴伺服异常字_R + if (ImGui::BeginTabItem(_(u8"电缸").c_str())) { + AxisStateValue ele_main; + m_Axis->m_Ele->GetState()->GetValue(ele_main); + AxisStateValue ele_slave; + m_Axis->m_EleSlave->GetState()->GetValue(ele_slave); + ImGui::BeginGroup(); + ImGui::Button(_(u8"电缸主轴").c_str(), ImVec2(200, 0)); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), ele_main.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), ele_main.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), ele_main.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对上运动: %s").c_str(), ele_main.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对下运动: %s").c_str(), ele_main.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"上JOG: %s").c_str(), ele_main.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"下JOG: %s").c_str(), ele_main.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), ele_main.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), ele_main.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), ele_main.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), ele_main.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), ele_main.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), ele_main.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), ele_main.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), ele_main.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), ele_main.ExceptionCode); //轴伺服异常字_R - // ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), ele_main.ServoBreakOn ? "YES" : "NO"); - // ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), ele_main.BindSlaveOn ? "YES" : "NO"); - // ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), ele_main.BindSlaveFinish ? "YES" : "NO"); + ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), ele_main.ServoBreakOn ? "YES" : "NO"); + ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), ele_main.BindSlaveOn ? "YES" : "NO"); + ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), ele_main.BindSlaveFinish ? "YES" : "NO"); - // ImGui::Text(_(u8"轴位置: %.3f").c_str(), ele_main.Pos); - // ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), ele_main.Torque); - // ImGui::EndGroup(); - // ImGui::SameLine(); - // ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); - // ImGui::SameLine(); + ImGui::Text(_(u8"轴位置: %.3f").c_str(), ele_main.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), ele_main.Torque); + ImGui::EndGroup(); + ImGui::SameLine(); + ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); + ImGui::SameLine(); - // ImGui::BeginGroup(); - // ImGui::Button(_(u8"电缸从轴").c_str(), ImVec2(200, 0)); - // //ImGui::Text(_(u8"伺服使能:%s").c_str(), ele_slave.ServoOn ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服成立原点: %s").c_str(), ele_slave.ServoHomeIndexOn ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服复位: %s").c_str(), ele_slave.ServoReset ? "YES" : "NO"); - // ImGui::Text(_(u8"相对上运动: %s").c_str(), ele_slave.MoveP ? "YES" : "NO"); - // ImGui::Text(_(u8"相对下运动: %s").c_str(), ele_slave.MoveN ? "YES" : "NO"); - // ImGui::Text(_(u8"上JOG: %s").c_str(), ele_slave.MovePContinue ? "YES" : "NO"); - // ImGui::Text(_(u8"下JOG: %s").c_str(), ele_slave.MoveNContinue ? "YES" : "NO"); - // ImGui::Text(_(u8"绝对值运动: %s").c_str(), ele_slave.MoveAbsPos ? "YES" : "NO"); - // ImGui::Text(_(u8"急停: %s").c_str(), ele_slave.MotionStop ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), ele_slave.ServoRDY ? "YES" : "NO"); - // ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), ele_slave.ServoHomeDone ? "YES" : "NO"); - // ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), ele_slave.ResetDone ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服BUSY: %s").c_str(), ele_slave.ServoBusy ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服异常: %s").c_str(), ele_slave.ServoException ? "YES" : "NO"); - // ImGui::Text(_(u8"可运行状态: %s").c_str(), ele_slave.Runable ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服异常字: %d").c_str(), ele_slave.ExceptionCode); //轴伺服异常字_R + ImGui::BeginGroup(); + ImGui::Button(_(u8"电缸从轴").c_str(), ImVec2(200, 0)); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), ele_slave.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), ele_slave.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), ele_slave.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对上运动: %s").c_str(), ele_slave.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对下运动: %s").c_str(), ele_slave.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"上JOG: %s").c_str(), ele_slave.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"下JOG: %s").c_str(), ele_slave.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), ele_slave.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), ele_slave.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), ele_slave.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), ele_slave.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), ele_slave.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), ele_slave.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), ele_slave.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), ele_slave.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), ele_slave.ExceptionCode); //轴伺服异常字_R - // ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), ele_slave.ServoBreakOn ? "YES" : "NO"); - // ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), ele_slave.BindSlaveOn ? "YES" : "NO"); - // ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), ele_slave.BindSlaveFinish ? "YES" : "NO"); + ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), ele_slave.ServoBreakOn ? "YES" : "NO"); + ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), ele_slave.BindSlaveOn ? "YES" : "NO"); + ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), ele_slave.BindSlaveFinish ? "YES" : "NO"); - // ImGui::Text(_(u8"轴位置: %.3f").c_str(), ele_slave.Pos); - // ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), ele_slave.Torque); - // ImGui::EndGroup(); - // ImGui::EndTabItem(); - //} + ImGui::Text(_(u8"轴位置: %.3f").c_str(), ele_slave.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), ele_slave.Torque); + ImGui::EndGroup(); + ImGui::EndTabItem(); + } - //if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { - // AxisStateValue arm; - // m_Axis->m_Arm->GetState()->GetValue(arm); - // //ImGui::Text(_(u8"伺服使能:%s").c_str(), arm.ServoOn ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服成立原点: %s").c_str(), arm.ServoHomeIndexOn ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服复位: %s").c_str(), arm.ServoReset ? "YES" : "NO"); - // ImGui::Text(_(u8"相对前运动: %s").c_str(), arm.MoveP ? "YES" : "NO"); - // ImGui::Text(_(u8"相对后运动: %s").c_str(), arm.MoveN ? "YES" : "NO"); - // ImGui::Text(_(u8"前JOG: %s").c_str(), arm.MovePContinue ? "YES" : "NO"); - // ImGui::Text(_(u8"后JOG: %s").c_str(), arm.MoveNContinue ? "YES" : "NO"); - // ImGui::Text(_(u8"绝对值运动: %s").c_str(), arm.MoveAbsPos ? "YES" : "NO"); - // ImGui::Text(_(u8"急停: %s").c_str(), arm.MotionStop ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), arm.ServoRDY ? "YES" : "NO"); - // ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), arm.ServoHomeDone ? "YES" : "NO"); - // ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), arm.ResetDone ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服BUSY: %s").c_str(), arm.ServoBusy ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服异常: %s").c_str(), arm.ServoException ? "YES" : "NO"); - // ImGui::Text(_(u8"可运行状态: %s").c_str(), arm.Runable ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服异常字: %d").c_str(), arm.ExceptionCode); //轴伺服异常字_R - // ImGui::Text(_(u8"轴位置: %.3f").c_str(), arm.Pos); - // ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), arm.Torque); - // ImGui::EndTabItem(); - //} + if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { + AxisStateValue arm; + m_Axis->m_Arm->GetState()->GetValue(arm); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), arm.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), arm.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), arm.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对前运动: %s").c_str(), arm.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对后运动: %s").c_str(), arm.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"前JOG: %s").c_str(), arm.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"后JOG: %s").c_str(), arm.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), arm.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), arm.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), arm.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), arm.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), arm.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), arm.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), arm.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), arm.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), arm.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"轴位置: %.3f").c_str(), arm.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), arm.Torque); + ImGui::EndTabItem(); + } - //if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { - // AxisStateValue load; - // m_Axis->m_Load->GetState()->GetValue(load); - // //ImGui::Text(_(u8"伺服使能:%s").c_str(), load.ServoOn ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服成立原点: %s").c_str(), load.ServoHomeIndexOn ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服复位: %s").c_str(), load.ServoReset ? "YES" : "NO"); - // ImGui::Text(_(u8"相对右运动: %s").c_str(), load.MoveP ? "YES" : "NO"); - // ImGui::Text(_(u8"相对左运动: %s").c_str(), load.MoveN ? "YES" : "NO"); - // ImGui::Text(_(u8"右JOG: %s").c_str(), load.MovePContinue ? "YES" : "NO"); - // ImGui::Text(_(u8"左JOG: %s").c_str(), load.MoveNContinue ? "YES" : "NO"); - // ImGui::Text(_(u8"绝对值运动: %s").c_str(), load.MoveAbsPos ? "YES" : "NO"); - // ImGui::Text(_(u8"急停: %s").c_str(), load.MotionStop ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), load.ServoRDY ? "YES" : "NO"); - // ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), load.ServoHomeDone ? "YES" : "NO"); - // ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), load.ResetDone ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服BUSY: %s").c_str(), load.ServoBusy ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服异常: %s").c_str(), load.ServoException ? "YES" : "NO"); - // ImGui::Text(_(u8"可运行状态: %s").c_str(), load.Runable ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服异常字: %d").c_str(), load.ExceptionCode); //轴伺服异常字_R - // ImGui::Text(_(u8"轴位置: %.3f").c_str(), load.Pos); - // ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), load.Torque); - // ImGui::EndTabItem(); - //} + if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { + AxisStateValue load; + m_Axis->m_Load->GetState()->GetValue(load); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), load.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), load.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), load.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对右运动: %s").c_str(), load.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对左运动: %s").c_str(), load.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"右JOG: %s").c_str(), load.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"左JOG: %s").c_str(), load.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), load.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), load.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), load.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), load.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), load.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), load.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), load.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), load.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), load.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"轴位置: %.3f").c_str(), load.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), load.Torque); + ImGui::EndTabItem(); + } - //if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { - // AxisStateValue supply; - // m_Axis->m_Supply->GetState()->GetValue(supply); - // //ImGui::Text(_(u8"伺服使能:%s").c_str(), supply.ServoOn ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服成立原点: %s").c_str(), supply.ServoHomeIndexOn ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服复位: %s").c_str(), supply.ServoReset ? "YES" : "NO"); - // ImGui::Text(_(u8"相对右运动: %s").c_str(), supply.MoveP ? "YES" : "NO"); - // ImGui::Text(_(u8"相对左运动: %s").c_str(), supply.MoveN ? "YES" : "NO"); - // ImGui::Text(_(u8"右JOG: %s").c_str(), supply.MovePContinue ? "YES" : "NO"); - // ImGui::Text(_(u8"左JOG: %s").c_str(), supply.MoveNContinue ? "YES" : "NO"); - // ImGui::Text(_(u8"绝对值运动: %s").c_str(), supply.MoveAbsPos ? "YES" : "NO"); - // ImGui::Text(_(u8"急停: %s").c_str(), supply.MotionStop ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), supply.ServoRDY ? "YES" : "NO"); - // ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), supply.ServoHomeDone ? "YES" : "NO"); - // ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), supply.ResetDone ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服BUSY: %s").c_str(), supply.ServoBusy ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服异常: %s").c_str(), supply.ServoException ? "YES" : "NO"); - // ImGui::Text(_(u8"可运行状态: %s").c_str(), supply.Runable ? "YES" : "NO"); - // ImGui::Text(_(u8"伺服异常字: %d").c_str(), supply.ExceptionCode); //轴伺服异常字_R - // ImGui::Text(_(u8"轴位置: %.3f").c_str(), supply.Pos); - // ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), supply.Torque); - // ImGui::EndTabItem(); - //} + if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { + AxisStateValue supply; + m_Axis->m_Supply->GetState()->GetValue(supply); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), supply.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), supply.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), supply.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对右运动: %s").c_str(), supply.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对左运动: %s").c_str(), supply.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"右JOG: %s").c_str(), supply.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"左JOG: %s").c_str(), supply.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), supply.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), supply.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), supply.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), supply.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), supply.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), supply.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), supply.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), supply.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), supply.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"轴位置: %.3f").c_str(), supply.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), supply.Torque); + ImGui::EndTabItem(); + } ImGui::EndTabBar(); ImGui::End(); @@ -2835,11 +2836,9 @@ void HBD1200::DrawPowderCtrl(bool* winShow) static bool continue_move = false; //CoverCfg* coverCfg = m_CoverCfg; - MainAxisState* pMold = m_Axis->m_Mold->GetState(); - //MainAxisState* ele = m_Axis->m_Clean->GetState(); - AxisState* pLoad = m_Axis->m_Load->GetState(); - AxisState* pArm = m_Axis->m_Arm->GetState(); - AxisState* pSupply = m_Axis->m_Supply->GetState(); + MainAxisState* mold = m_Axis->m_Mold->GetState(); + AxisState* load = m_Axis->m_Load->GetState(); + AxisState* arm = m_Axis->m_Arm->GetState(); AxisConfig* armCfg = m_Axis->m_Arm->GetConfig(); AxisConfig::CfgValue armCfgVal; @@ -2903,7 +2902,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if ((g_Admin > USER_ADMIN)) { ImGui::Dummy(ImVec2(0, 20)); - if (pMold->m_MoveAbsPos) + if (mold->m_MoveAbsPos) { if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 0) { @@ -2931,7 +2930,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) ImGui::SameLine(); - if (pMold->m_MoveAbsPos) + if (mold->m_MoveAbsPos) { if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 3) { @@ -2957,7 +2956,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印轴移动到底座缸平面位").c_str()); } ImGui::SameLine(); - if (pMold->m_MoveAbsPos) + if (mold->m_MoveAbsPos) { if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 4) { @@ -3012,7 +3011,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (g_Admin > USER_ADMIN) { ImGui::Dummy(ImVec2(0, 20)); - if (pLoad->m_MoveAbsPos) + if (load->m_MoveAbsPos) { if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 3) { @@ -3040,7 +3039,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) } ImGui::SameLine(); - if (pLoad->m_MoveAbsPos) + if (load->m_MoveAbsPos) { if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 1) { @@ -3067,7 +3066,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"移载轴移动到轨道清粉位").c_str()); } ImGui::SameLine(); - if (pLoad->m_MoveAbsPos) + if (load->m_MoveAbsPos) { if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 0) { @@ -3123,7 +3122,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (g_Admin > USER_ADMIN) { ImGui::Dummy(ImVec2(0, 20)); - if (pArm->m_MoveAbsPos) + if (arm->m_MoveAbsPos) { if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 0) { @@ -3150,7 +3149,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"铺粉轴移动到接粉位").c_str()); } ImGui::SameLine(); - if (pArm->m_MoveAbsPos) + if (arm->m_MoveAbsPos) { if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 1) { @@ -3625,7 +3624,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) ImGui::PushID("LoadMovePointLeft"); if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); - g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), pLoad->GetShowPos(), loadCfgVal.rel); + g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); } ImGui::PopID(); if (ImGui::IsItemHovered()) { @@ -3634,7 +3633,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (kb == GTS_AXIS_ID_LOAD && !continue_move) { if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); - g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), pLoad->GetShowPos(), loadCfgVal.rel); + g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); } } } @@ -3653,7 +3652,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); - g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), pLoad->GetShowPos(), loadCfgVal.rel); + g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); } ImGui::PopID(); if (ImGui::IsItemHovered()) { @@ -3662,7 +3661,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (kb == GTS_AXIS_ID_LOAD && !continue_move) { if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) { m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); - g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), pLoad->GetShowPos(), loadCfgVal.rel); + g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); } } } @@ -3679,7 +3678,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (!m_PowderAssist.isLoadLeftRepeat) { m_PowderAssist.isLoadLeftRepeat = true; m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); - g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), pLoad->GetShowPos()); + g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), load->GetShowPos()); } } else { @@ -3709,7 +3708,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { if (IsLoadAxisCanMoveLeft()) { m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); - g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), pLoad->GetShowPos()); + g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), load->GetShowPos()); } else { g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveLeftInfo(), 5000, Toast::COLOR_ORANGE)); @@ -3727,7 +3726,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (!m_PowderAssist.isLoadRightRepeat) { m_PowderAssist.isLoadRightRepeat = true; m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); - g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), pLoad->GetShowPos()); + g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), load->GetShowPos()); } } @@ -3758,7 +3757,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) { if (IsLoadAxisCanMoveRight()) { m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); - g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), pLoad->GetShowPos()); + g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), load->GetShowPos()); } else { g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveRightInfo(), 5000, Toast::COLOR_ORANGE)); @@ -3771,7 +3770,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) } ImGui::PushID("load_to_zero"); if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) - pLoad->SetZeroPos(); + load->SetZeroPos(); ImGui::PopID(); if (ImGui::IsItemHovered()) { ImGui::SetTooltip(_(u8"移栽轴位置清零").c_str()); @@ -3785,9 +3784,9 @@ void HBD1200::DrawPowderCtrl(bool* winShow) //ImGui::Dummy(ImVec2(500,1)); ImGui::BeginChild("SupplyCtrl", ImVec2(500, 160)); ImGui::BeginGroup(); - ImGui::Text(_(u8"移栽轴:%.3f").c_str(), pLoad->GetShowPos() / 1000.0f); - ImGui::Text(_(u8"成型缸:%.3f").c_str(), pMold->GetShowPos() / 1000.0f); - ImGui::Text(_(u8"铺粉臂:%.3f").c_str(), pArm->GetShowPos() / 1000.0f); + ImGui::Text(_(u8"移栽轴:%.3f").c_str(), load->GetShowPos() / 1000.0f); + ImGui::Text(_(u8"成型缸:%.3f").c_str(), mold->GetShowPos() / 1000.0f); + ImGui::Text(_(u8"铺粉臂:%.3f").c_str(), arm->GetShowPos() / 1000.0f); ImGui::EndGroup(); ImGui::SameLine(350); ImGui::BeginGroup(); @@ -3843,11 +3842,11 @@ void HBD1200::DrawPowderCtrl(bool* winShow) MotionDrawAssist assit; AxisStateValue loadvalue; - pLoad->GetValue(loadvalue); - AxisStateValue mold; - pMold->GetValue(mold); - AxisStateValue arm; - pArm->GetValue(arm); + load->GetValue(loadvalue); + AxisStateValue moldValue; + mold->GetValue(moldValue); + AxisStateValue armValue; + arm->GetValue(armValue); AxisData axisData; m_SysParamWrapper->GetAxisData(axisData); float loadposdif = axisData.LoadAxisTrackCleanPos - axisData.LoadAxisTrackPrintPos; @@ -3866,8 +3865,8 @@ void HBD1200::DrawPowderCtrl(bool* winShow) }*/ - assit.moldRpos = mold.RPos>1.0f ? 1.0f : mold.RPos; - assit.armRPos = arm.RPos; + assit.moldRpos = moldValue.RPos>1.0f ? 1.0f : moldValue.RPos; + assit.armRPos = armValue.RPos; assit.isCleanPressure = true; assit.isPrintPressure = true; assit.isPrintMoldSupprt = false; @@ -4024,7 +4023,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) ImGui::PushID("arm_to_zero"); if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) - pArm->SetZeroPos(); + arm->SetZeroPos(); ImGui::PopID(); if (ImGui::IsItemHovered()) { ImGui::SetTooltip(_(u8"铺粉轴位置清零").c_str()); @@ -4048,7 +4047,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) ImGui::PushID("MoldMovePointUp"); if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); - g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), pMold->GetShowPos(), moldCfgVal.rel); + g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); } ImGui::PopID(); if (ImGui::IsItemHovered()) { @@ -4057,7 +4056,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (kb == GTS_AXIS_ID_MOLD && !continue_move) { if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); - g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), pMold->GetShowPos(), moldCfgVal.rel); + g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); } } } @@ -4075,7 +4074,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (!m_PowderAssist.isMoldUpRepeat) { m_PowderAssist.isMoldUpRepeat = true; m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); - g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), pMold->GetShowPos()); + g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), mold->GetShowPos()); } } else { @@ -4104,7 +4103,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { if (IsMoldCanMoveUp()) { m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); - g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), pMold->GetShowPos()); + g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), mold->GetShowPos()); } else { g_Toast->AddToast(new ToastBean(GetMoldCanotUpInfo(), 5000, Toast::COLOR_ORANGE)); @@ -4119,7 +4118,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); - g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), pMold->GetShowPos(), moldCfgVal.rel); + g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); } ImGui::PopID(); if (ImGui::IsItemHovered()) { @@ -4128,7 +4127,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (kb == GTS_AXIS_ID_MOLD && !continue_move) { if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); - g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), pMold->GetShowPos(), moldCfgVal.rel); + g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); } } } @@ -4148,7 +4147,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) if (!m_PowderAssist.isMoldDownRepeat) { m_PowderAssist.isMoldDownRepeat = true; m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); - g_log->TraceInfo(_(u8"升降[%.3f]往下连续移动").c_str(), pMold->GetShowPos()); + g_log->TraceInfo(_(u8"升降[%.3f]往下连续移动").c_str(), mold->GetShowPos()); } } else { @@ -4179,7 +4178,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) { if (IsMoldCanMoveDown()) { m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); - g_log->TraceInfo(_(u8"升降[%.3f]往连续下移动").c_str(), pMold->GetShowPos()); + g_log->TraceInfo(_(u8"升降[%.3f]往连续下移动").c_str(), mold->GetShowPos()); } else { @@ -4194,7 +4193,7 @@ void HBD1200::DrawPowderCtrl(bool* winShow) } ImGui::PushID("mold_to_zero"); if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) - pMold->SetZeroPos(); + mold->SetZeroPos(); ImGui::PopID(); if (ImGui::IsItemHovered()) { ImGui::SetTooltip(_(u8"成型缸位置清零").c_str()); diff --git a/PrintC/Machine/HBD1200OLD.cpp b/PrintC/Machine/HBD1200OLD.cpp index 298c160..75cc103 100644 --- a/PrintC/Machine/HBD1200OLD.cpp +++ b/PrintC/Machine/HBD1200OLD.cpp @@ -8,6 +8,7 @@ #include "../Toast.h" #include "../SystemInfo.h" #include "../Logger.h" +#include "../DataManage/DataHandle.h" const int HBD1200OLD::IO_V0 = 0; HBD1200OLD::HBD1200OLD(MachineTypeCfg::MachineTypeId type) :Machine(type) @@ -1726,196 +1727,196 @@ void HBD1200OLD::DrawSignal(bool* isshow) ImGui::End(); } -//void HBD1200OLD::DrawServoState(bool* winShow) -//{ -// -// ImGui::Begin(_(u8"伺服状态").c_str(), winShow, ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize); -// ImGui::BeginTabBar("servo_state"); -// if (ImGui::BeginTabItem(_(u8"打印轴").c_str())) { -// AxisStateValue mold; -// m_Axis->m_Mold->GetState()->GetValue(mold); -// ImGui::BeginGroup(); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), mold.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), mold.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), mold.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对上运动: %s").c_str(), mold.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对下运动: %s").c_str(), mold.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"上JOG: %s").c_str(), mold.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"下JOG: %s").c_str(), mold.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), mold.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), mold.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), mold.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), mold.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), mold.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), mold.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), mold.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), mold.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), mold.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), mold.ServoBreakOn ? "YES" : "NO"); -// -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), mold.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), mold.Torque); -// ImGui::EndGroup(); -// -// ImGui::SameLine(); -// ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); -// ImGui::SameLine(); -// -// ImGui::BeginGroup(); -// g_SystemInfo->LockInfo(); -// float linearLayerValue = g_SystemInfo->m_EnvState.m_LinearLayerPos; -// float moldTheoryDis = g_SystemInfo->m_EnvState.m_MoldTheoryDistance; -// float linearActDis = g_SystemInfo->m_EnvState.m_LinearActDistance; -// float linearPulseValue = g_SystemInfo->m_EnvState.m_LinearActPulse; -// g_SystemInfo->UnlockInfo(); -// ImGui::Text(_(u8"光栅每层实际值: %.3f").c_str(), linearLayerValue); -// ImGui::Text(_(u8"升降理论行程: %.3f").c_str(), moldTheoryDis); -// ImGui::Text(_(u8"光栅实际行程: %.3f").c_str(), linearActDis); -// ImGui::Text(_(u8"光栅实际脉冲数: %.3f").c_str(), linearPulseValue); -// -// ImGui::EndGroup(); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"电缸").c_str())) { -// AxisStateValue ele_main; -// m_Axis->m_Ele->GetState()->GetValue(ele_main); -// AxisStateValue ele_slave; -// m_Axis->m_EleSlave->GetState()->GetValue(ele_slave); -// ImGui::BeginGroup(); -// ImGui::Button(_(u8"电缸主轴").c_str(), ImVec2(200, 0)); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), ele_main.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), ele_main.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), ele_main.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对上运动: %s").c_str(), ele_main.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对下运动: %s").c_str(), ele_main.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"上JOG: %s").c_str(), ele_main.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"下JOG: %s").c_str(), ele_main.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), ele_main.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), ele_main.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), ele_main.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), ele_main.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), ele_main.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), ele_main.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), ele_main.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), ele_main.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), ele_main.ExceptionCode); //轴伺服异常字_R -// -// ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), ele_main.ServoBreakOn ? "YES" : "NO"); -// ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), ele_main.BindSlaveOn ? "YES" : "NO"); -// ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), ele_main.BindSlaveFinish ? "YES" : "NO"); -// -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), ele_main.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), ele_main.Torque); -// ImGui::EndGroup(); -// ImGui::SameLine(); -// ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); -// ImGui::SameLine(); -// -// ImGui::BeginGroup(); -// ImGui::Button(_(u8"电缸从轴").c_str(), ImVec2(200, 0)); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), ele_slave.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), ele_slave.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), ele_slave.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对上运动: %s").c_str(), ele_slave.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对下运动: %s").c_str(), ele_slave.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"上JOG: %s").c_str(), ele_slave.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"下JOG: %s").c_str(), ele_slave.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), ele_slave.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), ele_slave.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), ele_slave.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), ele_slave.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), ele_slave.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), ele_slave.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), ele_slave.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), ele_slave.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), ele_slave.ExceptionCode); //轴伺服异常字_R -// -// ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), ele_slave.ServoBreakOn ? "YES" : "NO"); -// ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), ele_slave.BindSlaveOn ? "YES" : "NO"); -// ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), ele_slave.BindSlaveFinish ? "YES" : "NO"); -// -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), ele_slave.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), ele_slave.Torque); -// ImGui::EndGroup(); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { -// AxisStateValue arm; -// m_Axis->m_Arm->GetState()->GetValue(arm); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), arm.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), arm.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), arm.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对前运动: %s").c_str(), arm.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对后运动: %s").c_str(), arm.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"前JOG: %s").c_str(), arm.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"后JOG: %s").c_str(), arm.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), arm.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), arm.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), arm.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), arm.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), arm.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), arm.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), arm.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), arm.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), arm.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), arm.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), arm.Torque); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { -// AxisStateValue load; -// m_Axis->m_Load->GetState()->GetValue(load); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), load.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), load.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), load.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对右运动: %s").c_str(), load.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对左运动: %s").c_str(), load.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"右JOG: %s").c_str(), load.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"左JOG: %s").c_str(), load.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), load.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), load.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), load.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), load.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), load.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), load.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), load.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), load.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), load.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), load.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), load.Torque); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { -// AxisStateValue supply; -// m_Axis->m_Supply->GetState()->GetValue(supply); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), supply.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), supply.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), supply.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对右运动: %s").c_str(), supply.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对左运动: %s").c_str(), supply.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"右JOG: %s").c_str(), supply.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"左JOG: %s").c_str(), supply.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), supply.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), supply.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), supply.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), supply.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), supply.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), supply.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), supply.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), supply.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), supply.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), supply.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), supply.Torque); -// ImGui::EndTabItem(); -// } -// -// ImGui::EndTabBar(); -// ImGui::End(); -//} +void HBD1200OLD::DrawServoState(bool* winShow) +{ + + ImGui::Begin(_(u8"伺服状态").c_str(), winShow, ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize); + ImGui::BeginTabBar("servo_state"); + if (ImGui::BeginTabItem(_(u8"打印轴").c_str())) { + AxisStateValue mold; + m_Axis->m_Mold->GetState()->GetValue(mold); + ImGui::BeginGroup(); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), mold.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), mold.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), mold.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对上运动: %s").c_str(), mold.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对下运动: %s").c_str(), mold.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"上JOG: %s").c_str(), mold.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"下JOG: %s").c_str(), mold.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), mold.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), mold.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), mold.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), mold.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), mold.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), mold.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), mold.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), mold.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), mold.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), mold.ServoBreakOn ? "YES" : "NO"); + + ImGui::Text(_(u8"轴位置: %.3f").c_str(), mold.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), mold.Torque); + ImGui::EndGroup(); + + ImGui::SameLine(); + ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); + ImGui::SameLine(); + + ImGui::BeginGroup(); + g_SystemInfo->LockInfo(); + float linearLayerValue = g_SystemInfo->m_EnvState.m_LinearLayerPos; + float moldTheoryDis = g_SystemInfo->m_EnvState.m_MoldTheoryDistance; + float linearActDis = g_SystemInfo->m_EnvState.m_LinearActDistance; + float linearPulseValue = g_SystemInfo->m_EnvState.m_LinearActPulse; + g_SystemInfo->UnlockInfo(); + ImGui::Text(_(u8"光栅每层实际值: %.3f").c_str(), linearLayerValue); + ImGui::Text(_(u8"升降理论行程: %.3f").c_str(), moldTheoryDis); + ImGui::Text(_(u8"光栅实际行程: %.3f").c_str(), linearActDis); + ImGui::Text(_(u8"光栅实际脉冲数: %.3f").c_str(), linearPulseValue); + + ImGui::EndGroup(); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"电缸").c_str())) { + AxisStateValue ele_main; + m_Axis->m_Ele->GetState()->GetValue(ele_main); + AxisStateValue ele_slave; + m_Axis->m_EleSlave->GetState()->GetValue(ele_slave); + ImGui::BeginGroup(); + ImGui::Button(_(u8"电缸主轴").c_str(), ImVec2(200, 0)); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), ele_main.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), ele_main.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), ele_main.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对上运动: %s").c_str(), ele_main.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对下运动: %s").c_str(), ele_main.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"上JOG: %s").c_str(), ele_main.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"下JOG: %s").c_str(), ele_main.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), ele_main.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), ele_main.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), ele_main.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), ele_main.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), ele_main.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), ele_main.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), ele_main.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), ele_main.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), ele_main.ExceptionCode); //轴伺服异常字_R + + ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), ele_main.ServoBreakOn ? "YES" : "NO"); + ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), ele_main.BindSlaveOn ? "YES" : "NO"); + ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), ele_main.BindSlaveFinish ? "YES" : "NO"); + + ImGui::Text(_(u8"轴位置: %.3f").c_str(), ele_main.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), ele_main.Torque); + ImGui::EndGroup(); + ImGui::SameLine(); + ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); + ImGui::SameLine(); + + ImGui::BeginGroup(); + ImGui::Button(_(u8"电缸从轴").c_str(), ImVec2(200, 0)); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), ele_slave.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), ele_slave.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), ele_slave.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对上运动: %s").c_str(), ele_slave.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对下运动: %s").c_str(), ele_slave.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"上JOG: %s").c_str(), ele_slave.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"下JOG: %s").c_str(), ele_slave.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), ele_slave.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), ele_slave.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), ele_slave.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), ele_slave.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), ele_slave.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), ele_slave.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), ele_slave.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), ele_slave.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), ele_slave.ExceptionCode); //轴伺服异常字_R + + ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), ele_slave.ServoBreakOn ? "YES" : "NO"); + ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), ele_slave.BindSlaveOn ? "YES" : "NO"); + ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), ele_slave.BindSlaveFinish ? "YES" : "NO"); + + ImGui::Text(_(u8"轴位置: %.3f").c_str(), ele_slave.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), ele_slave.Torque); + ImGui::EndGroup(); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { + AxisStateValue arm; + m_Axis->m_Arm->GetState()->GetValue(arm); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), arm.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), arm.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), arm.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对前运动: %s").c_str(), arm.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对后运动: %s").c_str(), arm.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"前JOG: %s").c_str(), arm.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"后JOG: %s").c_str(), arm.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), arm.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), arm.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), arm.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), arm.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), arm.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), arm.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), arm.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), arm.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), arm.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"轴位置: %.3f").c_str(), arm.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), arm.Torque); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { + AxisStateValue load; + m_Axis->m_Load->GetState()->GetValue(load); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), load.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), load.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), load.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对右运动: %s").c_str(), load.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对左运动: %s").c_str(), load.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"右JOG: %s").c_str(), load.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"左JOG: %s").c_str(), load.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), load.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), load.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), load.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), load.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), load.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), load.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), load.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), load.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), load.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"轴位置: %.3f").c_str(), load.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), load.Torque); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { + AxisStateValue supply; + m_Axis->m_Supply->GetState()->GetValue(supply); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), supply.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), supply.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), supply.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对右运动: %s").c_str(), supply.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对左运动: %s").c_str(), supply.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"右JOG: %s").c_str(), supply.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"左JOG: %s").c_str(), supply.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), supply.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), supply.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), supply.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), supply.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), supply.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), supply.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), supply.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), supply.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), supply.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"轴位置: %.3f").c_str(), supply.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), supply.Torque); + ImGui::EndTabItem(); + } + + ImGui::EndTabBar(); + ImGui::End(); +} //void HBD1200OLD::DrawAxisCfg() //{ @@ -2795,1365 +2796,1378 @@ void HBD1200OLD::DrawSignal(bool* isshow) // ImGui::EndChild(); //} -void HBD1200OLD::DrawPowderCtrl(bool* winShow) -{} -//void HBD1200OLD::DrawPowderCtrl(bool* winShow) -//{ -// ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(4, 8)); -// ImGui::Begin(_(u8"铺粉装置调试").c_str(), winShow, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoNav); -// ImGui::PopStyleVar(); -// -// int dstepflag = 1; -// double fstepflag = 1.0; -// long lstepflag = 1; -// static int kb = GTS_AXIS_ID_ARM; -// static bool continue_move = false; -// -// //CoverCfg* coverCfg = m_CoverCfg; -// MainAxisState* mold = m_Axis->m_Mold->GetState(); -// //MainAxisState* ele = m_Axis->m_Clean->GetState(); -// AxisState* load = m_Axis->m_Load->GetState(); -// AxisState* arm = m_Axis->m_Arm->GetState(); -// AxisState* supply = m_Axis->m_Supply->GetState(); -// -// AxisConfig* armCfg = m_Axis->m_Arm->GetConfig(); -// AxisConfig::CfgValue armCfgVal; -// armCfg->GetValue(armCfgVal); -// AxisConfig* moldCfg = m_Axis->m_Mold->GetConfig(); -// AxisConfig::CfgValue moldCfgVal; -// moldCfg->GetValue(moldCfgVal); -// //AxisConfig* cleanCfg = m_Axis->m_Clean->GetConfig(); -// //AxisConfig::CfgValue cleanCfgVal; -// //cleanCfg->GetValue(cleanCfgVal); -// AxisConfig* loadCfg = m_Axis->m_Load->GetConfig(); -// AxisConfig::CfgValue loadCfgVal; -// loadCfg->GetValue(loadCfgVal); -// AxisConfig* supplyCfg = m_Axis->m_Supply->GetConfig(); -// AxisConfig::CfgValue supplyCfgVal; -// supplyCfg->GetValue(supplyCfgVal); -// -// ChartletManager* chartletManager = ChartletManager::GetInstance(); -// ImVec2 wpos = ImGui::GetWindowPos(); -// SignalService::GetInstance().GetSignalState(m_SignalState); -// if (m_PowderAssist.isLeftExpand) -// { -// ImGui::BeginGroup(); -// vector tabs; -// tabs.push_back(_(u8"成型缸")); -// tabs.push_back(_(u8"移载轴")); -// tabs.push_back(_(u8"铺粉轴")); -// tabs.push_back(_(u8"供粉轴")); -// tabs.push_back(_(u8"铺粉")); -// tabs.push_back(_(u8"控制")); -// int tabwidth = 0; -// for (size_t tindex = 0; tindex < tabs.size(); tindex++) { -// tabwidth = tabwidth + ImGui::CalcTextSize(tabs[tindex].c_str(), 0).x + 15; -// } -// ImVec2 showSize = ImVec2(tabwidth, 600); -// -// ImGui::BeginChild("AxisSettingChild", showSize, false, ImGuiWindowFlags_NoNav); -// ImGui::BeginTabBar("AxisSetting"); -// if (ImGui::BeginTabItem(_(u8"成型缸").c_str())) { -// ImGui::PushItemWidth(100); -// if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &moldCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// moldCfg->m_Speed->SetValue(moldCfgVal.speed); -// g_log->TraceInfo(_(u8"更改成型缸速度:%.3f").c_str(), moldCfgVal.speed); -// } -// if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &moldCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// moldCfg->m_Acc->SetValue(moldCfgVal.acc); -// g_log->TraceInfo(_(u8"更改成型缸加速度:%.3f").c_str(), moldCfgVal.acc); -// } -// if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &moldCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// moldCfg->m_Dec->SetValue(moldCfgVal.dec); -// g_log->TraceInfo(_(u8"更新成型缸减速度:%.3f").c_str(), moldCfgVal.dec); -// } -// if (ImGui::InputScalar(_(u8"点动行程(μm)").c_str(), ImGuiDataType_Float, &moldCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// moldCfg->m_RefDistance->SetValue(moldCfgVal.rel); -// g_log->TraceInfo(_(u8"更改成型缸点动行程:%.3f").c_str(), moldCfgVal.rel); -// } -// ImGui::PopItemWidth(); -// -// if ((g_Admin > USER_ADMIN)) { -// ImGui::Dummy(ImVec2(0, 20)); -// if (mold->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 0) -// { -// if (ImGui::ImageButton(chartletManager->m_MoldMoveDownesting->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断打印升降轴移动到安全位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印升降轴移动到安全位").c_str()); -// } -// else { -// ImGui::ImageButton(chartletManager->m_MoldMoveDownestDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印升降轴移动到安全位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_MoldMoveDownestEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_MoldAbsTestPos->SetValue(0); -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行打印升降轴移动到安全位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印升降轴移动到安全位").c_str()); -// } -// -// ImGui::SameLine(); -// -// if (mold->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 3) -// { -// if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformBottoming->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断打印轴移动到底座缸平面位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断打印轴移动到底座缸平面位").c_str()); -// } -// else { -// ImGui::ImageButton(chartletManager->m_MoldMovePlatformBottomDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印轴移动到底座缸平面位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformBottomEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_MoldAbsTestPos->SetValue(3); -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行打印轴移动到底座缸平面位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印轴移动到底座缸平面位").c_str()); -// } -// ImGui::SameLine(); -// if (mold->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 4) -// { -// if (ImGui::ImageButton(chartletManager->m_MoldMovePlatforming->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断打印轴移动到基板缸平面位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断打印轴移动到基板缸平面位").c_str()); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_MoldMovePlatformDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印轴移动到基板缸平面位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_MoldAbsTestPos->SetValue(4); -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行打印轴移动到基板缸平面位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印轴移动到基板缸平面位").c_str()); -// } -// } -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { -// ImGui::PushItemWidth(100); -// if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &loadCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// loadCfg->m_Speed->SetValue(loadCfgVal.speed); -// g_log->TraceInfo(_(u8"更新移载轴速度:%.3f").c_str(), loadCfgVal.speed); -// } -// if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &loadCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// loadCfg->m_Acc->SetValue(loadCfgVal.acc); -// g_log->TraceInfo(_(u8"更新移载轴加速度:%.3f").c_str(), loadCfgVal.acc); -// } -// if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &loadCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// loadCfg->m_Dec->SetValue(loadCfgVal.dec); -// g_log->TraceInfo(_(u8"更新移载轴减速度:%.3f").c_str(), loadCfgVal.dec); -// } -// if (ImGui::InputScalar(_(u8"点动行程(μm)").c_str(), ImGuiDataType_Float, &loadCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// loadCfg->m_RefDistance->SetValue(loadCfgVal.rel); -// g_log->TraceInfo(_(u8"更新移载轴点动距离:%.3f").c_str(), loadCfgVal.rel); -// } -// ImGui::PopItemWidth(); -// if (g_Admin > USER_ADMIN) { -// ImGui::Dummy(ImVec2(0, 20)); -// -// if (load->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 3) -// { -// if (ImGui::ImageButton(chartletManager->m_LoadHandPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断移载轴移动到轨道吊装位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断移载轴移动到轨道吊装位").c_str()); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_LoadHandPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行移载轴移动到轨道吊装位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_LoadHandPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(3); -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行移载轴移动到轨道吊装位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"移载轴移动到轨道吊装位").c_str()); -// } -// -// ImGui::SameLine(); -// if (load->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 1) -// { -// if (ImGui::ImageButton(chartletManager->m_LoadCleanPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断移载轴移动到轨道清粉位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断移载轴移动到轨道清粉位").c_str()); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_LoadCleanPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行移载轴移动到轨道清粉位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_LoadCleanPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(1); -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行移载轴移动到轨道清粉位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"移载轴移动到轨道清粉位").c_str()); -// } -// ImGui::SameLine(); -// if (load->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 0) -// { -// if (ImGui::ImageButton(chartletManager->m_LoadPrintPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断移载轴移动到轨道打印位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断移载轴移动到轨道打印位").c_str()); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_LoadPrintPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行移载轴移动到轨道打印位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_LoadPrintPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(0); -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行移载轴移动到轨道打印位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"移载轴移动到轨道打印位").c_str()); -// } -// } -// -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { -// ImGui::PushItemWidth(100); -// if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &armCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// armCfg->m_Speed->SetValue(armCfgVal.speed); -// g_log->TraceInfo(_(u8"更新铺粉轴速度:%.3f").c_str(), armCfgVal.speed); -// } -// if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &armCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// armCfg->m_Acc->SetValue(armCfgVal.acc); -// g_log->TraceInfo(_(u8"更新铺粉轴加速度:%.3f").c_str(), armCfgVal.acc); -// } -// if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &armCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// armCfg->m_Dec->SetValue(armCfgVal.dec); -// g_log->TraceInfo(_(u8"更新铺粉轴减速度:%.3f").c_str(), armCfgVal.dec); -// } -// if (ImGui::InputScalar(_(u8"点动行程(μm)").c_str(), ImGuiDataType_Float, &armCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// armCfg->m_RefDistance->SetValue(armCfgVal.rel); -// g_log->TraceInfo(_(u8"更新铺粉轴点动距离:%.3f").c_str(), armCfgVal.rel); -// } -// ImGui::PopItemWidth(); -// if (g_Admin > USER_ADMIN) { -// ImGui::Dummy(ImVec2(0, 20)); -// -// if (arm->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 0) -// { -// if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断铺粉轴移动到接粉位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断铺粉轴移动到接粉位").c_str()); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_ArmAcceptPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行铺粉轴移动到接粉位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_ArmAbsTestPos->SetValue(0); -// m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行铺粉轴移动到接粉位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"铺粉轴移动到接粉位").c_str()); -// } -// ImGui::SameLine(); -// if (arm->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 1) -// { -// if (ImGui::ImageButton(chartletManager->m_ArmFrontDropPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断铺粉轴移动到前下粉位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断铺粉轴移动到前下粉位").c_str()); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_ArmFrontDropPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行铺粉轴移动到前下粉位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_ArmFrontDropPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_ArmAbsTestPos->SetValue(1); -// m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行铺粉轴移动到前下粉位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"铺粉轴移动到前下粉位").c_str()); -// } -// } -// -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { -// ImGui::PushItemWidth(100); -// if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &supplyCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// supplyCfg->m_Speed->SetValue(supplyCfgVal.speed); -// g_log->TraceInfo(_(u8"更新下粉轴速度:%.3f").c_str(), supplyCfgVal.speed); -// } -// if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &supplyCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// supplyCfg->m_Acc->SetValue(supplyCfgVal.acc); -// g_log->TraceInfo(_(u8"更新下粉轴加速度:%.3f").c_str(), supplyCfgVal.acc); -// } -// if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &supplyCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// supplyCfg->m_Dec->SetValue(supplyCfgVal.dec); -// g_log->TraceInfo(_(u8"更新下粉轴减速度:%.3f").c_str(), supplyCfgVal.dec); -// } -// if (ImGui::InputScalar(_(u8"粉格").c_str(), ImGuiDataType_Float, &supplyCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// supplyCfg->m_RefDistance->SetValue(supplyCfgVal.rel); -// g_log->TraceInfo(_(u8"更新下粉轴相对移动距离:%.3f").c_str(), supplyCfgVal.rel); -// } -// ImGui::PopItemWidth(); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"铺粉").c_str())) { -// AxisData ad; -// m_SysParamWrapper->GetAxisData(ad); -// vector ss = { _(u8"双向铺粉"),_(u8"单向铺粉"),_(u8"不铺粉") ,_(u8"双向铺粉2") ,_(u8"单向铺粉2"),_(u8"单向铺粉3") }; -// ImGui::PushItemWidth(120); -// if (ImGui::SemicolonCombo(_(u8"铺粉类型").c_str(), &ad.CoverType, ss)) { -// m_SysParamWrapper->m_CoverType->SetValue(ad.CoverType); -// g_log->TraceInfo(_(u8"更新铺粉方式:%d").c_str(), ad.CoverType); -// } -// -// if (ImGui::InputFloat(_(u8"打印铺粉速度(mm/s)").c_str(), &ad.CoverSpeed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_CoverSpeed->SetValue(ad.CoverSpeed); -// g_log->TraceInfo(_(u8"更新铺粉速度:%.3f").c_str(), ad.CoverSpeed); -// } -// if (ImGui::InputFloat(_(u8"打印单向铺粉返回变速(mm/s)").c_str(), &ad.CoverReturnSpeed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_CoverReturnSpeed->SetValue(ad.CoverReturnSpeed); -// g_log->TraceInfo(_(u8"更新打印单向返回速度:%.3f").c_str(), ad.CoverReturnSpeed); -// } -// if (ImGui::InputFloat(_(u8"打印单向铺粉距离(mm)").c_str(), &ad.CoverDistance, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_CoverDistance->SetValue(ad.CoverDistance); -// g_log->TraceInfo(_(u8"更新打印单向铺粉距离:%.3f").c_str(), ad.CoverDistance); -// } -// if (ImGui::InputFloat(_(u8"打印铺粉层厚(μm)").c_str(), &ad.LayerThick, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_LayerThick->SetValue(ad.LayerThick); -// g_log->TraceInfo(_(u8"更新打印铺粉层厚:%.3f").c_str(), ad.LayerThick); -// } -// if (ImGui::InputFloat(_(u8"打印间隙补偿(μm)").c_str(), &ad.FixGap, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_FixGap->SetValue(ad.FixGap); -// g_log->TraceInfo(_(u8"更新打印间隙补偿:%.3f").c_str(), ad.FixGap); -// } -// if (ImGui::InputScalar(_(u8"打印铺粉格数").c_str(), ImGuiDataType_S16, &ad.SupplyCount, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_SupplyCount->SetValue(ad.SupplyCount); -// g_log->TraceInfo(_(u8"更新打印铺粉格数:%d").c_str(), ad.SupplyCount); -// } -// if (ImGui::InputScalar(_(u8"打印下粉时间(ms)").c_str(), ImGuiDataType_S16, &ad.SupplyTime, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_SupplyTime->SetValue(ad.SupplyTime); -// g_log->TraceInfo(_(u8"更新打印下粉时间:%d").c_str(), ad.SupplyTime); -// } -// if (ImGui::InputFloat(_(u8"铺粉调试层厚(μm)").c_str(), &ad.DebugLayerThick, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugLayerThick->SetValue(ad.DebugLayerThick); -// g_log->TraceInfo(_(u8"更新铺粉调试层厚:%.3f").c_str(), ad.DebugLayerThick); -// } -// if (ImGui::InputFloat(_(u8"铺粉调试间隙(μm)").c_str(), &ad.DebugFixGap, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugFixGap->SetValue(ad.DebugFixGap); -// g_log->TraceInfo(_(u8"更新铺粉调试间隙补偿:%.3f").c_str(), ad.DebugFixGap); -// } -// if (ImGui::InputScalar(_(u8"铺粉调试下粉时间(ms)").c_str(), ImGuiDataType_S16, &ad.DebugSupplyTime, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugSupplyTime->SetValue(ad.DebugSupplyTime); -// g_log->TraceInfo(_(u8"更新铺粉调试下粉时间:%d").c_str(), ad.DebugSupplyTime); -// } -// if (ImGui::InputScalar(_(u8"铺粉调试格数").c_str(), ImGuiDataType_S16, &ad.DebugSupplyCount, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugSupplyCount->SetValue(ad.DebugSupplyCount); -// g_log->TraceInfo(_(u8"更新铺粉调试格数:%d").c_str(), ad.DebugSupplyCount); -// } -// if (ImGui::InputFloat(_(u8"铺粉调试铺粉距离(mm)").c_str(), &ad.DebugCoverDistance, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugCoverDistance->SetValue(ad.DebugCoverDistance); -// g_log->TraceInfo(_(u8"更新铺粉调试距离:%.3f").c_str(), ad.DebugCoverDistance); -// } -// ImGui::PopItemWidth(); -// -// ImGui::Dummy(ImVec2(0, 20)); -// if (m_SignalStateWrapper->m_IsCovering->GetValue()) { -// ImGui::PushID("CoverTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str(), ImVec2(-1, 0))) { -// m_SignalStateWrapper->m_CoverTriger->SetValue(false); -// g_log->TraceInfo(_(u8"停止铺粉调试").c_str()); -// } -// ImGui::PopID(); -// } -// else { -// // if (m_Purifier->IsCoverWindSet()) -// // { -// // m_Purifier->ResetSlowWind(); -// // } -// if (ImGui::Button(_(u8"铺粉调试").c_str(), ImVec2(-1, 0))) { -// if (m_SignalStateWrapper->m_CoverEnable->GetValue()) { -// // if (m_ExtCfg->m_AutoCoverSlowWind && m_Purifier->IsWindActive()) { -// // m_Purifier->SetCoverWind(true); -// // } -// m_SignalStateWrapper->m_IsCoverDebug->SetValue(true); -// Sleep(50); -// m_SignalStateWrapper->m_ManualCoverTest->SetValue(true); -// Sleep(50); -// g_log->TraceInfo(_(u8"执行铺粉调试").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"铺粉调试条件不成立").c_str(), 3000)); -// } -// } -// } -// ImGui::EndTabItem(); -// } -// if (g_Admin > USER_ADMIN) { -// if (ImGui::BeginTabItem(_(u8"控制").c_str())) { -// if (m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue()) { -// ImGui::PushID("CylinderReachPrintTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str())) { -// m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue()); -// if (ImGui::Button(_(u8"移动缸体到打印位").c_str())) { -// if (m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(true); -// g_log->TraceInfo(_(u8"执行移动缸体到打印位").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"移动缸体到打印位条件不成立").c_str(), 3000)); -// } -// m_RunCfg->m_HadSetBasePlatformPoint = false; -// } -// ImGui::PopItemFlag(); -// } -// -// if (m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue()) { -// ImGui::PushID("CylinderReachCleanTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str())) { -// m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue()); -// if (ImGui::Button(_(u8"移动缸体到清粉位").c_str())) { -// if (m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(true); -// g_log->TraceInfo(_(u8"执行移动缸体到清粉位").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"移动缸体到清粉位条件不成立").c_str(), 3000)); -// } -// -// } -// ImGui::PopItemFlag(); -// } -// -// -// if (m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue()) { -// ImGui::PushID("CylinderPrintLoadTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str())) { -// m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue()); -// if (ImGui::Button(_(u8"缸体打印位装载").c_str())) { -// if (m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(true); -// g_log->TraceInfo(_(u8"执行缸体打印位装载").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"缸体打印位装载条件不成立").c_str(), 3000)); -// } -// m_RunCfg->m_HadSetBasePlatformPoint = false; -// } -// ImGui::PopItemFlag(); -// } -// -// if (m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue()) { -// ImGui::PushID("CylinderConnectCleanBoxTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str())) { -// m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue()); -// if (ImGui::Button(_(u8"缸体连接清粉箱").c_str())) { -// if (m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(true); -// g_log->TraceInfo(_(u8"执行缸体连接清粉箱").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"缸体连接清粉箱条件不成立").c_str(), 3000)); -// } -// } -// ImGui::PopItemFlag(); -// } -// -// if (m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue()) { -// ImGui::PushID("CylinderPrintUnloadTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str())) { -// m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue()); -// if (ImGui::Button(_(u8"缸体打印位卸载").c_str())) { -// if (m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(true); -// g_log->TraceInfo(_(u8"执行缸体打印位卸载").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"缸体打印位卸载条件不成立").c_str(), 3000)); -// } -// m_RunCfg->m_HadSetBasePlatformPoint = false; -// } -// ImGui::PopItemFlag(); -// } -// -// if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue()) { -// ImGui::PushID("CylinderDisconnectCleanBoxTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str())) { -// m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue()); -// if (ImGui::Button(_(u8"缸体脱离清粉箱").c_str())) { -// if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(true); -// g_log->TraceInfo(_(u8"执行缸体脱离清粉箱").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"缸体脱离清粉箱条件不成立").c_str(), 3000)); -// } -// } -// ImGui::PopItemFlag(); -// } -// -// ImGui::EndTabItem(); -// } -// } -// ImGui::EndTabBar(); -// ImGui::EndChild(); -// -// -// if (ImGui::Button(_(u8"运动急停").c_str(), ImVec2(tabwidth, 0))) { -// m_Axis->StopAll(); -// g_log->TraceInfo(_(u8"运动急停").c_str()); -// } -// -// ImGui::EndGroup(); -// ImGui::SameLine(); -// } -// -// ImGui::BeginChild("AxisCtrl", ImVec2(840, 670)); -// if (m_PowderAssist.isLeftExpand) { -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::HNARROW]->GetTex(), ImVec2(38, 50), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_PowderAssist.isLeftExpand = !m_PowderAssist.isLeftExpand; -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::HEXPAND]->GetTex(), ImVec2(38, 50), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_PowderAssist.isLeftExpand = !m_PowderAssist.isLeftExpand; -// } -// } -// -// ImGui::SameLine(); -// ImGui::BeginGroup(); -// if (ImGui::ToggleButton(_(u8"连续运动").c_str(), continue_move)) -// continue_move = !continue_move; -// ImGui::SameLine(); -// ImGui::Text(_(u8"连续运动").c_str()); -// -// ImGui::Dummy(ImVec2(0, 250)); -// /* -// */ -// -// if (ImGui::ImageButton(chartletManager->m_LoadOut->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// LoadOut(); -// ImGui::OpenPopup(_(u8"移载载出").c_str()); -// g_log->TraceInfo(_(u8"执行移出").c_str()); -// } -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"载出").c_str()); -// } -// ImGui::SameLine(); -// if (ImGui::ImageButton(chartletManager->m_LoadIn->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// LoadIn(); -// ImGui::OpenPopup(_(u8"移载载入").c_str()); -// g_log->TraceInfo(_(u8"执行移入").c_str()); -// } -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"载入").c_str()); -// } -// -// if (ImGui::BeginPopupModal(_(u8"移载载入").c_str(), NULL, ImGuiWindowFlags_AlwaysAutoResize)) { -// if (GetLoadInProcStep() == In_Start) { -// ImGui::Text(_(u8"移载开始载入").c_str()); -// } -// if (GetLoadInProcStep() == In_CylinderDisconnectCleanBox) { -// ImGui::Text(_(u8"缸体与清粉箱分离中").c_str()); -// } -// if (GetLoadInProcStep() == In_CylinderReachPrint) { -// ImGui::Text(_(u8"缸体到打印位运行中").c_str()); -// } -// if (GetLoadInProcStep() == In_CylinderPrintLoad) { -// ImGui::Text(_(u8"缸体打印位装载运行中").c_str()); -// } -// if (GetLoadInResult() == In_Intercept) { -// ImGui::TextColored(Toast::COLOR_ORANGE, GetLoadInfo().c_str()); -// if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// else if (GetLoadInResult() == In_Success) { -// ImGui::TextColored(Toast::COLOR_GREEN, GetLoadInfo().c_str()); -// if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// else if (GetLoadInResult() > In_Success) { -// ImGui::TextColored(Toast::COLOR_RED, GetLoadInfo().c_str()); -// if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// -// if (IsLoadIn()) { -// if (ImGui::Button(_(u8"中断载入").c_str(), ImVec2(-1, 0))) -// { -// InterceptLoad(); -// } -// } -// ImGui::EndPopup(); -// } -// -// if (ImGui::BeginPopupModal(_(u8"移载载出").c_str(), NULL, ImGuiWindowFlags_AlwaysAutoResize)) { -// if (GetLoadOutProcSetp() == Out_Start) -// { -// ImGui::Text(_(u8"移载开始载出").c_str()); -// } -// if (GetLoadOutProcSetp() == Out_CylinderPrintUnload) -// { -// ImGui::Text(_(u8"缸体打印位卸载运行中").c_str()); -// } -// if (GetLoadOutProcSetp() == Out_CylinderReachClean) -// { -// ImGui::Text(_(u8"缸体到清粉位运行中").c_str()); -// } -// if (GetLoadOutProcSetp() == Out_CylinderConnectCleanBox) -// { -// ImGui::Text(_(u8"缸体与清粉箱连接中").c_str()); -// } -// if (GetLoadOutProcSetp() == Out_CylinderReachHand) -// { -// ImGui::Text(_(u8"缸体与吊装位运行中").c_str()); -// } -// -// if (GetLoadOutProcSetp() == Out_CylinderDisconnectCleanBox) -// { -// ImGui::Text(_(u8"缸体与清粉箱分离中").c_str()); -// } -// -// -// if (m_NeedWaitSelectOutPos) { -// vector combtemp = { _(u8"清粉位"),_(u8"吊装位") }; -// ImGui::SemicolonCombo(_(u8"选择载出位置").c_str(), &m_SelectOutPos, combtemp); -// if (ImGui::Button(_(u8"下一步").c_str())) -// { -// m_WaitSelectOutPosCommit = true; -// } -// } -// -// if (IsWaitConnectBoxCommit()) { -// if (ImGui::Button(_(u8"执行缸体与清粉箱连接").c_str())) -// { -// SetWaitConnectBoxCommit(false); -// } -// } -// -// if (GetLoadOutResult() == Out_Intercept) { -// ImGui::TextColored(Toast::COLOR_ORANGE, GetLoadInfo().c_str()); -// if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// else if (GetLoadOutResult() == Out_Success) { -// ImGui::TextColored(Toast::COLOR_GREEN, GetLoadInfo().c_str()); -// if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// else if (GetLoadOutResult() > Out_Success) { -// ImGui::TextColored(Toast::COLOR_RED, GetLoadInfo().c_str()); -// if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// -// if (IsLoadOut()) { -// if (ImGui::Button(_(u8"中断载出").c_str(), ImVec2(-1, 0))) -// { -// InterceptLoad(); -// } -// } -// ImGui::EndPopup(); -// } -// -// -// ImGui::Dummy(ImVec2(0, 80)); -// ImGui::RadioButton(_(u8"移载轴").c_str(), &kb, GTS_AXIS_ID_LOAD); -// if (IsLoadAxisCanMoveLeft()) -// { -// ImGui::PushID("LoadMovePointLeft"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); -// g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移载轴左移 %.3fmm").c_str(), loadCfgVal.rel / 1000.0f); -// } -// if (kb == GTS_AXIS_ID_LOAD && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { -// m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); -// g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetLoadAxisCanotMoveLeftInfo().c_str()); -// } -// } -// -// ImGui::SameLine(); -// -// if (IsLoadAxisCanMoveRight()) -// { -// ImGui::PushID("LoadMovePointRight"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); -// g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移载轴右移 %.3fmm").c_str(), loadCfgVal.rel); -// } -// if (kb == GTS_AXIS_ID_LOAD && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) { -// m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); -// g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetLoadAxisCanotMoveRightInfo().c_str()); -// } -// } -// -// if (IsLoadAxisCanMoveLeft()) { -// ImGui::PushID("LoadMoveLimitLeft"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// if (!m_PowderAssist.isLoadLeftRepeat) { -// m_PowderAssist.isLoadLeftRepeat = true; -// m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); -// g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), load->GetShowPos()); -// } -// } -// else { -// if (m_PowderAssist.isLoadLeftRepeat) -// { -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); -// m_PowderAssist.isLoadLeftRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移载轴左连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetLoadAxisCanotMoveLeftInfo().c_str()); -// } -// if (m_PowderAssist.isLoadLeftRepeat) { -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); -// m_PowderAssist.isLoadLeftRepeat = false; -// } -// } -// -// if (kb == GTS_AXIS_ID_LOAD && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { -// if (IsLoadAxisCanMoveLeft()) { -// m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); -// g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), load->GetShowPos()); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveLeftInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_LeftArrow))) -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); -// } -// -// ImGui::SameLine(); -// if (IsLoadAxisCanMoveRight()) { -// ImGui::PushID("LoadMoveLimitRight"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// if (!m_PowderAssist.isLoadRightRepeat) { -// m_PowderAssist.isLoadRightRepeat = true; -// m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); -// g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), load->GetShowPos()); -// } -// -// } -// else { -// if (m_PowderAssist.isLoadRightRepeat) -// { -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); -// m_PowderAssist.isLoadRightRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移载轴右连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetLoadAxisCanotMoveRightInfo().c_str()); -// } -// if (m_PowderAssist.isLoadRightRepeat) { -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); -// m_PowderAssist.isLoadRightRepeat = false; -// } -// } -// if (kb == GTS_AXIS_ID_LOAD && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) -// { -// if (IsLoadAxisCanMoveRight()) { -// m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); -// g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), load->GetShowPos()); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveRightInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_RightArrow))) -// { -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); -// } -// } -// ImGui::PushID("load_to_zero"); -// if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// load->SetZeroPos(); -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移栽轴位置清零").c_str()); -// } -// -// ImGui::EndGroup(); -// -// ImGui::SameLine(); -// ImGui::BeginGroup(); -// -// //ImGui::Dummy(ImVec2(500,1)); -// ImGui::BeginChild("SupplyCtrl", ImVec2(500, 160)); -// ImGui::BeginGroup(); -// ImGui::Text(_(u8"移栽轴:%.3f").c_str(), load->GetShowPos() / 1000.0f); -// ImGui::Text(_(u8"成型缸:%.3f").c_str(), mold->GetShowPos() / 1000.0f); -// ImGui::Text(_(u8"铺粉臂:%.3f").c_str(), arm->GetShowPos() / 1000.0f); -// ImGui::EndGroup(); -// ImGui::SameLine(350); -// ImGui::BeginGroup(); -// ImGui::RadioButton(_(u8"供粉轴").c_str(), &kb, GTS_AXIS_ID_SUPPLY); -// -// -// ImGui::PushID("SupplyMovePointFront"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_Axis->m_Supply->MovPoint(AxisConfig::ActiveDirect::FRONT); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"下粉轴前转%.2f格").c_str(), supplyCfgVal.rel); -// } -// if (kb == GTS_AXIS_ID_SUPPLY && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// m_Axis->m_Supply->MovPoint(AxisConfig::ActiveDirect::FRONT); -// } -// } -// ImGui::SameLine(); -// ImGui::PushID("SupplyMoveLimitFront"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// if (!m_PowderAssist.isSupplyNegativeRepeat) { -// m_PowderAssist.isSupplyNegativeRepeat = true; -// m_Axis->m_Supply->MovLimitStart(AxisConfig::ActiveDirect::FRONT); -// //OutputDebugString("left\n"); -// } -// } -// else { -// if (m_PowderAssist.isSupplyNegativeRepeat) -// { -// m_Axis->m_Supply->MovLimitStop(AxisConfig::ActiveDirect::FRONT); -// m_PowderAssist.isSupplyNegativeRepeat = false; -// //OutputDebugString("stop\n"); -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"供粉轴左连续").c_str()); -// } -// if (kb == GTS_AXIS_ID_SUPPLY && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// m_Axis->m_Supply->MovLimitStart(AxisConfig::ActiveDirect::FRONT); -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) -// m_Axis->m_Supply->MovLimitStop(AxisConfig::ActiveDirect::FRONT); -// } -// -// ImGui::EndGroup(); -// ImGui::EndChild(); -// -// MotionDrawAssist assit; -// assit.loadRPos = load->m_RPos>1.0f ? 1.0f : load->m_RPos; -// int cylinderState = m_SignalState.m_CylinderState; -// if (cylinderState == CylinderInCleanUnConnectBox || -// cylinderState == CylinderInCleanConnectedBox || -// cylinderState == CylinderInHand) { -// assit.loadRPos = 1.0f; -// } -// -// assit.moldRpos = mold->m_RPos>1.0f ? 1.0f : mold->m_RPos; -// assit.armRPos = arm->m_RPos; -// assit.isCleanPressure = true; -// assit.isPrintPressure = true; -// assit.isPrintMoldSupprt = false; -// assit.isPrintJackup = false; -// assit.isInPrintPos = (m_SignalState.m_CylinderState == CylinderInPrintLoaded || m_SignalState.m_CylinderState == CylinderInPrintUnLoaded); -// assit.isCleanClose = true; -// if (m_IOCfgWrapper->m_Clean3RCylinderContact)assit.isCleanConnect = m_IOCfgWrapper->m_Clean3RCylinderContact->IsActive(); -// ImGui::Powder1500V1(assit); -// ImGui::EndGroup(); -// -// ImGui::SameLine(); -// ImGui::BeginGroup(); -// ImGui::Dummy(ImVec2(0, 170)); -// ImGui::RadioButton(_(u8"铺粉臂").c_str(), &kb, GTS_AXIS_ID_ARM); -// if (IsArmCanMoveBack()) { -// ImGui::PushID("ArmMovPointBack"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::BACK); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴后移 %.3fmm").c_str(), armCfgVal.rel / 1000.0f); -// } -// if (kb == GTS_AXIS_ID_ARM && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { -// m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::BACK); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); -// } -// } -// -// ImGui::SameLine(); -// if (IsArmCanMoveBack()) { -// ImGui::PushID("ArmMoveLimitBack"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// if (!m_PowderAssist.isArmBackRepeat) { -// m_PowderAssist.isArmBackRepeat = true; -// m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::BACK); -// } -// } -// else { -// if (m_PowderAssist.isArmBackRepeat) -// { -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); -// m_PowderAssist.isArmBackRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴后连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); -// } -// if (m_PowderAssist.isArmBackRepeat) { -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); -// m_PowderAssist.isArmBackRepeat = false; -// } -// } -// if (kb == GTS_AXIS_ID_ARM && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) -// { -// if (IsArmCanMoveBack()) { -// m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::BACK); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetArmCanotMoveBackInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_UpArrow))) -// { -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); -// } -// } -// -// if (IsArmCanMoveFront()) { -// ImGui::PushID("ArmMovPointFront"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::FRONT); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴前移 %.3fmm").c_str(), armCfgVal.rel / 1000.0f); -// } -// -// if (kb == GTS_AXIS_ID_ARM && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::FRONT); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetArmCanotMoveFrontInfo().c_str()); -// } -// } -// -// ImGui::SameLine(); -// -// if (IsArmCanMoveFront()) { -// ImGui::PushID("ArmMoveLimitFront"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// if (!m_PowderAssist.isArmFrontRepeat) { -// m_PowderAssist.isArmFrontRepeat = true; -// m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::FRONT); -// } -// } -// else { -// if (m_PowderAssist.isArmFrontRepeat) -// { -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); -// m_PowderAssist.isArmFrontRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴前连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); -// } -// if (m_PowderAssist.isArmFrontRepeat) { -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); -// m_PowderAssist.isArmFrontRepeat = false; -// } -// } -// if (kb == GTS_AXIS_ID_ARM && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// if (IsArmCanMoveFront()) { -// m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::FRONT); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetArmCanotMoveBackInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); -// } -// -// ImGui::PushID("arm_to_zero"); -// if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// arm->SetZeroPos(); -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴位置清零").c_str()); -// } -// if (m_AxisRecordWrapper->m_PCArmOverLimitAlarm->GetValue()) -// { -// ImGui::SameLine(); -// ImGui::PushID("arm_alarm_remove"); -// if (ImGui::ImageButton(chartletManager->m_AlarmRemove->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_AxisRecordWrapper->m_PCArmOverLimitAlarmRemove->SetValue(true); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴越限解除").c_str()); -// } -// } -// ImGui::Dummy(ImVec2(0, 35)); -// ImGui::RadioButton(_(u8"成型缸").c_str(), &kb, GTS_AXIS_ID_MOLD); -// if (IsMoldCanMoveUp()) { -// ImGui::PushID("MoldMovePointUp"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); -// g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸上移 %.3fmm").c_str(), moldCfgVal.rel / 1000.0f); -// } -// if (kb == GTS_AXIS_ID_MOLD && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { -// m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); -// g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetMoldCanotUpInfo().c_str()); -// } -// } -// -// ImGui::SameLine(); -// if (IsMoldCanMoveUp()) { -// ImGui::PushID("MoldMoveLimitUp"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// if (!m_PowderAssist.isMoldUpRepeat) { -// m_PowderAssist.isMoldUpRepeat = true; -// m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); -// g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), mold->GetShowPos()); -// } -// } -// else { -// if (m_PowderAssist.isMoldUpRepeat) -// { -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); -// m_PowderAssist.isMoldUpRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸上连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetMoldCanotUpInfo().c_str()); -// } -// if (m_PowderAssist.isMoldUpRepeat) { -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); -// m_PowderAssist.isMoldUpRepeat = false; -// } -// } -// if (kb == GTS_AXIS_ID_MOLD && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { -// if (IsMoldCanMoveUp()) { -// m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); -// g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), mold->GetShowPos()); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetMoldCanotUpInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_UpArrow))) -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); -// } -// -// if (IsMoldCanMoveDown()) { -// ImGui::PushID("MoldMovePointDown"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); -// g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸下移 %.3fmm").c_str(), moldCfgVal.rel / 1000.0f); -// } -// if (kb == GTS_AXIS_ID_MOLD && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); -// g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetMoldCanotDownInfo().c_str()); -// } -// } -// -// ImGui::SameLine(); -// -// if (IsMoldCanMoveDown()) { -// ImGui::PushID("MoldMoveLimitDown"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// if (!m_PowderAssist.isMoldDownRepeat) { -// m_PowderAssist.isMoldDownRepeat = true; -// m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); -// g_log->TraceInfo(_(u8"升降[%.3f]往下连续移动").c_str(), mold->GetShowPos()); -// } -// } -// else { -// if (m_PowderAssist.isMoldDownRepeat) -// { -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); -// m_PowderAssist.isMoldDownRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸下连续").c_str()); -// } -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetMoldCanotDownInfo().c_str()); -// } -// if (m_PowderAssist.isMoldDownRepeat) { -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); -// m_PowderAssist.isMoldDownRepeat = false; -// } -// } -// if (kb == GTS_AXIS_ID_MOLD && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) -// { -// if (IsMoldCanMoveDown()) { -// m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); -// g_log->TraceInfo(_(u8"升降[%.3f]往连续下移动").c_str(), mold->GetShowPos()); -// } -// else -// { -// g_Toast->AddToast(new ToastBean(GetMoldCanotDownInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) -// { -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); -// } -// } -// ImGui::PushID("mold_to_zero"); -// if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// mold->SetZeroPos(); -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸位置清零").c_str()); -// } -// ImGui::EndGroup(); -// -// ImGui::EndChild(); -// -// ImGui::End(); -// -//} +void HBD1200OLD::DrawPowderCtrl(bool* winShow) +{ + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(4, 8)); + ImGui::Begin(_(u8"铺粉装置调试").c_str(), winShow, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoNav); + ImGui::PopStyleVar(); + + int dstepflag = 1; + double fstepflag = 1.0; + long lstepflag = 1; + static int kb = GTS_AXIS_ID_ARM; + static bool continue_move = false; + + //CoverCfg* coverCfg = m_CoverCfg; + MainAxisState* mold = m_Axis->m_Mold->GetState(); + //MainAxisState* ele = m_Axis->m_Clean->GetState(); + AxisState* load = m_Axis->m_Load->GetState(); + AxisState* arm = m_Axis->m_Arm->GetState(); + AxisState* supply = m_Axis->m_Supply->GetState(); + + AxisConfig* armCfg = m_Axis->m_Arm->GetConfig(); + AxisConfig::CfgValue armCfgVal; + armCfg->GetValue(armCfgVal); + AxisConfig* moldCfg = m_Axis->m_Mold->GetConfig(); + AxisConfig::CfgValue moldCfgVal; + moldCfg->GetValue(moldCfgVal); + //AxisConfig* cleanCfg = m_Axis->m_Clean->GetConfig(); + //AxisConfig::CfgValue cleanCfgVal; + //cleanCfg->GetValue(cleanCfgVal); + AxisConfig* loadCfg = m_Axis->m_Load->GetConfig(); + AxisConfig::CfgValue loadCfgVal; + loadCfg->GetValue(loadCfgVal); + AxisConfig* supplyCfg = m_Axis->m_Supply->GetConfig(); + AxisConfig::CfgValue supplyCfgVal; + supplyCfg->GetValue(supplyCfgVal); + + ChartletManager* chartletManager = ChartletManager::GetInstance(); + ImVec2 wpos = ImGui::GetWindowPos(); + SignalService::GetInstance().GetSignalState(m_SignalState); + if (m_PowderAssist.isLeftExpand) + { + ImGui::BeginGroup(); + vector tabs; + tabs.push_back(_(u8"成型缸")); + tabs.push_back(_(u8"移载轴")); + tabs.push_back(_(u8"铺粉轴")); + tabs.push_back(_(u8"供粉轴")); + tabs.push_back(_(u8"铺粉")); + tabs.push_back(_(u8"控制")); + float tabwidth = 0; + for (size_t tindex = 0; tindex < tabs.size(); tindex++) { + tabwidth = tabwidth + ImGui::CalcTextSize(tabs[tindex].c_str(), 0).x + 15; + } + ImVec2 showSize = ImVec2(tabwidth, 600); + + ImGui::BeginChild("AxisSettingChild", showSize, false, ImGuiWindowFlags_NoNav); + ImGui::BeginTabBar("AxisSetting"); + if (ImGui::BeginTabItem(_(u8"成型缸").c_str())) { + ImGui::PushItemWidth(100); + if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &moldCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + moldCfg->m_Speed->SetValue(moldCfgVal.speed); + g_log->TraceInfo(_(u8"更改成型缸速度:%.3f").c_str(), moldCfgVal.speed); + } + if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &moldCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + moldCfg->m_Acc->SetValue(moldCfgVal.acc); + g_log->TraceInfo(_(u8"更改成型缸加速度:%.3f").c_str(), moldCfgVal.acc); + } + if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &moldCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + moldCfg->m_Dec->SetValue(moldCfgVal.dec); + g_log->TraceInfo(_(u8"更新成型缸减速度:%.3f").c_str(), moldCfgVal.dec); + } + if (ImGui::InputScalar(_(u8"点动行程(μm)").c_str(), ImGuiDataType_Float, &moldCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + moldCfg->m_RefDistance->SetValue(moldCfgVal.rel); + g_log->TraceInfo(_(u8"更改成型缸点动行程:%.3f").c_str(), moldCfgVal.rel); + } + ImGui::PopItemWidth(); + + if ((g_Admin > USER_ADMIN)) { + ImGui::Dummy(ImVec2(0, 20)); + if (mold->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 0) + { + if (ImGui::ImageButton(chartletManager->m_MoldMoveDownesting->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断打印升降轴移动到安全位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印升降轴移动到安全位").c_str()); + } + else { + ImGui::ImageButton(chartletManager->m_MoldMoveDownestDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印升降轴移动到安全位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_MoldMoveDownestEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_MoldAbsTestPos->SetValue(0); + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行打印升降轴移动到安全位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印升降轴移动到安全位").c_str()); + } + + ImGui::SameLine(); + + if (mold->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 3) + { + if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformBottoming->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断打印轴移动到底座缸平面位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断打印轴移动到底座缸平面位").c_str()); + } + else { + ImGui::ImageButton(chartletManager->m_MoldMovePlatformBottomDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印轴移动到底座缸平面位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformBottomEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_MoldAbsTestPos->SetValue(3); + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行打印轴移动到底座缸平面位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印轴移动到底座缸平面位").c_str()); + } + ImGui::SameLine(); + if (mold->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 4) + { + if (ImGui::ImageButton(chartletManager->m_MoldMovePlatforming->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断打印轴移动到基板缸平面位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断打印轴移动到基板缸平面位").c_str()); + + } + else { + ImGui::ImageButton(chartletManager->m_MoldMovePlatformDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印轴移动到基板缸平面位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_MoldAbsTestPos->SetValue(4); + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行打印轴移动到基板缸平面位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印轴移动到基板缸平面位").c_str()); + } + } + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { + ImGui::PushItemWidth(100); + if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &loadCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + loadCfg->m_Speed->SetValue(loadCfgVal.speed); + g_log->TraceInfo(_(u8"更新移载轴速度:%.3f").c_str(), loadCfgVal.speed); + } + if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &loadCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + loadCfg->m_Acc->SetValue(loadCfgVal.acc); + g_log->TraceInfo(_(u8"更新移载轴加速度:%.3f").c_str(), loadCfgVal.acc); + } + if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &loadCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + loadCfg->m_Dec->SetValue(loadCfgVal.dec); + g_log->TraceInfo(_(u8"更新移载轴减速度:%.3f").c_str(), loadCfgVal.dec); + } + if (ImGui::InputScalar(_(u8"点动行程(μm)").c_str(), ImGuiDataType_Float, &loadCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + loadCfg->m_RefDistance->SetValue(loadCfgVal.rel); + g_log->TraceInfo(_(u8"更新移载轴点动距离:%.3f").c_str(), loadCfgVal.rel); + } + ImGui::PopItemWidth(); + if (g_Admin > USER_ADMIN) { + ImGui::Dummy(ImVec2(0, 20)); + + if (load->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 3) + { + if (ImGui::ImageButton(chartletManager->m_LoadHandPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断移载轴移动到轨道吊装位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断移载轴移动到轨道吊装位").c_str()); + + } + else { + ImGui::ImageButton(chartletManager->m_LoadHandPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行移载轴移动到轨道吊装位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_LoadHandPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(3); + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行移载轴移动到轨道吊装位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"移载轴移动到轨道吊装位").c_str()); + } + + ImGui::SameLine(); + if (load->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 1) + { + if (ImGui::ImageButton(chartletManager->m_LoadCleanPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断移载轴移动到轨道清粉位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断移载轴移动到轨道清粉位").c_str()); + + } + else { + ImGui::ImageButton(chartletManager->m_LoadCleanPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行移载轴移动到轨道清粉位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_LoadCleanPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(1); + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行移载轴移动到轨道清粉位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"移载轴移动到轨道清粉位").c_str()); + } + ImGui::SameLine(); + if (load->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 0) + { + if (ImGui::ImageButton(chartletManager->m_LoadPrintPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断移载轴移动到轨道打印位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断移载轴移动到轨道打印位").c_str()); + + } + else { + ImGui::ImageButton(chartletManager->m_LoadPrintPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行移载轴移动到轨道打印位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_LoadPrintPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(0); + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行移载轴移动到轨道打印位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"移载轴移动到轨道打印位").c_str()); + } + } + + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { + ImGui::PushItemWidth(100); + if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &armCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + armCfg->m_Speed->SetValue(armCfgVal.speed); + g_log->TraceInfo(_(u8"更新铺粉轴速度:%.3f").c_str(), armCfgVal.speed); + } + if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &armCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + armCfg->m_Acc->SetValue(armCfgVal.acc); + g_log->TraceInfo(_(u8"更新铺粉轴加速度:%.3f").c_str(), armCfgVal.acc); + } + if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &armCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + armCfg->m_Dec->SetValue(armCfgVal.dec); + g_log->TraceInfo(_(u8"更新铺粉轴减速度:%.3f").c_str(), armCfgVal.dec); + } + if (ImGui::InputScalar(_(u8"点动行程(μm)").c_str(), ImGuiDataType_Float, &armCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + armCfg->m_RefDistance->SetValue(armCfgVal.rel); + g_log->TraceInfo(_(u8"更新铺粉轴点动距离:%.3f").c_str(), armCfgVal.rel); + } + ImGui::PopItemWidth(); + if (g_Admin > USER_ADMIN) { + ImGui::Dummy(ImVec2(0, 20)); + + if (arm->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 0) + { + if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断铺粉轴移动到接粉位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断铺粉轴移动到接粉位").c_str()); + + } + else { + ImGui::ImageButton(chartletManager->m_ArmAcceptPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行铺粉轴移动到接粉位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_ArmAbsTestPos->SetValue(0); + m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行铺粉轴移动到接粉位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"铺粉轴移动到接粉位").c_str()); + } + ImGui::SameLine(); + if (arm->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 1) + { + if (ImGui::ImageButton(chartletManager->m_ArmFrontDropPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断铺粉轴移动到前下粉位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断铺粉轴移动到前下粉位").c_str()); + + } + else { + ImGui::ImageButton(chartletManager->m_ArmFrontDropPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行铺粉轴移动到前下粉位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_ArmFrontDropPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_ArmAbsTestPos->SetValue(1); + m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行铺粉轴移动到前下粉位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"铺粉轴移动到前下粉位").c_str()); + } + } + + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { + ImGui::PushItemWidth(100); + if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &supplyCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + supplyCfg->m_Speed->SetValue(supplyCfgVal.speed); + g_log->TraceInfo(_(u8"更新下粉轴速度:%.3f").c_str(), supplyCfgVal.speed); + } + if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &supplyCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + supplyCfg->m_Acc->SetValue(supplyCfgVal.acc); + g_log->TraceInfo(_(u8"更新下粉轴加速度:%.3f").c_str(), supplyCfgVal.acc); + } + if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &supplyCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + supplyCfg->m_Dec->SetValue(supplyCfgVal.dec); + g_log->TraceInfo(_(u8"更新下粉轴减速度:%.3f").c_str(), supplyCfgVal.dec); + } + if (ImGui::InputScalar(_(u8"粉格").c_str(), ImGuiDataType_Float, &supplyCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + supplyCfg->m_RefDistance->SetValue(supplyCfgVal.rel); + g_log->TraceInfo(_(u8"更新下粉轴相对移动距离:%.3f").c_str(), supplyCfgVal.rel); + } + ImGui::PopItemWidth(); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"铺粉").c_str())) { + AxisData ad; + m_SysParamWrapper->GetAxisData(ad); + vector ss = { _(u8"双向铺粉"),_(u8"单向铺粉"),_(u8"不铺粉") ,_(u8"双向铺粉2") ,_(u8"单向铺粉2"),_(u8"单向铺粉3") }; + ImGui::PushItemWidth(120); + if (ImGui::SemicolonCombo(_(u8"铺粉类型").c_str(), &ad.CoverType, ss)) { + m_SysParamWrapper->m_CoverType->SetValue(ad.CoverType); + g_log->TraceInfo(_(u8"更新铺粉方式:%d").c_str(), ad.CoverType); + } + + if (ImGui::InputFloat(_(u8"打印铺粉速度(mm/s)").c_str(), &ad.CoverSpeed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_CoverSpeed->SetValue(ad.CoverSpeed); + g_log->TraceInfo(_(u8"更新铺粉速度:%.3f").c_str(), ad.CoverSpeed); + } + if (ImGui::InputFloat(_(u8"打印单向铺粉返回变速(mm/s)").c_str(), &ad.CoverReturnSpeed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_CoverReturnSpeed->SetValue(ad.CoverReturnSpeed); + g_log->TraceInfo(_(u8"更新打印单向返回速度:%.3f").c_str(), ad.CoverReturnSpeed); + } + if (ImGui::InputFloat(_(u8"打印单向铺粉距离(mm)").c_str(), &ad.CoverDistance, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_CoverDistance->SetValue(ad.CoverDistance); + g_log->TraceInfo(_(u8"更新打印单向铺粉距离:%.3f").c_str(), ad.CoverDistance); + } + if (ImGui::InputFloat(_(u8"打印铺粉层厚(μm)").c_str(), &ad.LayerThick, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_LayerThick->SetValue(ad.LayerThick); + g_log->TraceInfo(_(u8"更新打印铺粉层厚:%.3f").c_str(), ad.LayerThick); + } + if (ImGui::InputFloat(_(u8"打印间隙补偿(μm)").c_str(), &ad.FixGap, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_FixGap->SetValue(ad.FixGap); + g_log->TraceInfo(_(u8"更新打印间隙补偿:%.3f").c_str(), ad.FixGap); + } + if (ImGui::InputScalar(_(u8"打印铺粉格数").c_str(), ImGuiDataType_S16, &ad.SupplyCount, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_SupplyCount->SetValue(ad.SupplyCount); + g_log->TraceInfo(_(u8"更新打印铺粉格数:%d").c_str(), ad.SupplyCount); + } + if (ImGui::InputScalar(_(u8"打印下粉时间(ms)").c_str(), ImGuiDataType_S16, &ad.SupplyTime, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_SupplyTime->SetValue(ad.SupplyTime); + g_log->TraceInfo(_(u8"更新打印下粉时间:%d").c_str(), ad.SupplyTime); + } + if (ImGui::InputFloat(_(u8"铺粉调试层厚(μm)").c_str(), &ad.DebugLayerThick, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugLayerThick->SetValue(ad.DebugLayerThick); + g_log->TraceInfo(_(u8"更新铺粉调试层厚:%.3f").c_str(), ad.DebugLayerThick); + } + if (ImGui::InputFloat(_(u8"铺粉调试间隙(μm)").c_str(), &ad.DebugFixGap, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugFixGap->SetValue(ad.DebugFixGap); + g_log->TraceInfo(_(u8"更新铺粉调试间隙补偿:%.3f").c_str(), ad.DebugFixGap); + } + if (ImGui::InputScalar(_(u8"铺粉调试下粉时间(ms)").c_str(), ImGuiDataType_S16, &ad.DebugSupplyTime, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugSupplyTime->SetValue(ad.DebugSupplyTime); + g_log->TraceInfo(_(u8"更新铺粉调试下粉时间:%d").c_str(), ad.DebugSupplyTime); + } + if (ImGui::InputScalar(_(u8"铺粉调试格数").c_str(), ImGuiDataType_S16, &ad.DebugSupplyCount, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugSupplyCount->SetValue(ad.DebugSupplyCount); + g_log->TraceInfo(_(u8"更新铺粉调试格数:%d").c_str(), ad.DebugSupplyCount); + } + if (ImGui::InputFloat(_(u8"铺粉调试铺粉距离(mm)").c_str(), &ad.DebugCoverDistance, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugCoverDistance->SetValue(ad.DebugCoverDistance); + g_log->TraceInfo(_(u8"更新铺粉调试距离:%.3f").c_str(), ad.DebugCoverDistance); + } + ImGui::PopItemWidth(); + + ImGui::Dummy(ImVec2(0, 20)); + if (m_SignalStateWrapper->m_IsCovering->GetValue()) { + ImGui::PushID("CoverTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str(), ImVec2(-1, 0))) { + m_SignalStateWrapper->m_CoverTriger->SetValue(false); + g_log->TraceInfo(_(u8"停止铺粉调试").c_str()); + } + ImGui::PopID(); + } + else { + // if (m_Purifier->IsCoverWindSet()) + // { + // m_Purifier->ResetSlowWind(); + // } + if (ImGui::Button(_(u8"铺粉调试").c_str(), ImVec2(-1, 0))) { + if (m_SignalStateWrapper->m_CoverEnable->GetValue()) { + // if (m_ExtCfg->m_AutoCoverSlowWind && m_Purifier->IsWindActive()) { + // m_Purifier->SetCoverWind(true); + // } + m_SignalStateWrapper->m_IsCoverDebug->SetValue(true); + Sleep(50); + m_SignalStateWrapper->m_ManualCoverTest->SetValue(true); + Sleep(50); + g_log->TraceInfo(_(u8"执行铺粉调试").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"铺粉调试条件不成立").c_str(), 3000)); + } + } + } + ImGui::EndTabItem(); + } + if (g_Admin > USER_ADMIN) { + if (ImGui::BeginTabItem(_(u8"控制").c_str())) { + if (m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue()) { + ImGui::PushID("CylinderReachPrintTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str())) { + m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue()); + if (ImGui::Button(_(u8"移动缸体到打印位").c_str())) { + if (m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(true); + g_log->TraceInfo(_(u8"执行移动缸体到打印位").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"移动缸体到打印位条件不成立").c_str(), 3000)); + } + m_RunCfg->m_HadSetBasePlatformPoint = false; + } + ImGui::PopItemFlag(); + } + + if (m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue()) { + ImGui::PushID("CylinderReachCleanTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str())) { + m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue()); + if (ImGui::Button(_(u8"移动缸体到清粉位").c_str())) { + if (m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(true); + g_log->TraceInfo(_(u8"执行移动缸体到清粉位").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"移动缸体到清粉位条件不成立").c_str(), 3000)); + } + + } + ImGui::PopItemFlag(); + } + + + if (m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue()) { + ImGui::PushID("CylinderPrintLoadTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str())) { + m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue()); + if (ImGui::Button(_(u8"缸体打印位装载").c_str())) { + if (m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(true); + g_log->TraceInfo(_(u8"执行缸体打印位装载").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"缸体打印位装载条件不成立").c_str(), 3000)); + } + m_RunCfg->m_HadSetBasePlatformPoint = false; + } + ImGui::PopItemFlag(); + } + + if (m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue()) { + ImGui::PushID("CylinderConnectCleanBoxTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str())) { + m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue()); + if (ImGui::Button(_(u8"缸体连接清粉箱").c_str())) { + if (m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(true); + g_log->TraceInfo(_(u8"执行缸体连接清粉箱").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"缸体连接清粉箱条件不成立").c_str(), 3000)); + } + } + ImGui::PopItemFlag(); + } + + if (m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue()) { + ImGui::PushID("CylinderPrintUnloadTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str())) { + m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue()); + if (ImGui::Button(_(u8"缸体打印位卸载").c_str())) { + if (m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(true); + g_log->TraceInfo(_(u8"执行缸体打印位卸载").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"缸体打印位卸载条件不成立").c_str(), 3000)); + } + m_RunCfg->m_HadSetBasePlatformPoint = false; + } + ImGui::PopItemFlag(); + } + + if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue()) { + ImGui::PushID("CylinderDisconnectCleanBoxTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str())) { + m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue()); + if (ImGui::Button(_(u8"缸体脱离清粉箱").c_str())) { + if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(true); + g_log->TraceInfo(_(u8"执行缸体脱离清粉箱").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"缸体脱离清粉箱条件不成立").c_str(), 3000)); + } + } + ImGui::PopItemFlag(); + } + + ImGui::EndTabItem(); + } + } + ImGui::EndTabBar(); + ImGui::EndChild(); + + + if (ImGui::Button(_(u8"运动急停").c_str(), ImVec2(tabwidth, 0))) { + //m_Axis->StopAll(); + DataHandle::Instance()->SetPushMsg(AXISSTOPALL); + g_log->TraceInfo(_(u8"运动急停").c_str()); + } + + ImGui::EndGroup(); + ImGui::SameLine(); + } + + ImGui::BeginChild("AxisCtrl", ImVec2(840, 670)); + if (m_PowderAssist.isLeftExpand) { + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::HNARROW]->GetTex(), ImVec2(38, 50), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_PowderAssist.isLeftExpand = !m_PowderAssist.isLeftExpand; + } + } + else { + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::HEXPAND]->GetTex(), ImVec2(38, 50), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_PowderAssist.isLeftExpand = !m_PowderAssist.isLeftExpand; + } + } + + ImGui::SameLine(); + ImGui::BeginGroup(); + if (ImGui::ToggleButton(_(u8"连续运动").c_str(), continue_move)) + continue_move = !continue_move; + ImGui::SameLine(); + ImGui::Text(_(u8"连续运动").c_str()); + + ImGui::Dummy(ImVec2(0, 250)); + /* + */ + + MACHINEPARAM mp; + GetMachineParam(mp); + if (ImGui::ImageButton(chartletManager->m_LoadOut->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + //LoadOut(); + DataHandle::Instance()->SetPushMsg(LOADOUT); + ImGui::OpenPopup(_(u8"移载载出").c_str()); + g_log->TraceInfo(_(u8"执行移出").c_str()); + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"载出").c_str()); + } + ImGui::SameLine(); + if (ImGui::ImageButton(chartletManager->m_LoadIn->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + //LoadIn(); + DataHandle::Instance()->SetPushMsg(LOADIN); + ImGui::OpenPopup(_(u8"移载载入").c_str()); + g_log->TraceInfo(_(u8"执行移入").c_str()); + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"载入").c_str()); + } + + if (ImGui::BeginPopupModal(_(u8"移载载入").c_str(), NULL, ImGuiWindowFlags_AlwaysAutoResize)) { + if (GetLoadInProcStep() == In_Start) { + ImGui::Text(_(u8"移载开始载入").c_str()); + } + if (GetLoadInProcStep() == In_CylinderDisconnectCleanBox) { + ImGui::Text(_(u8"缸体与清粉箱分离中").c_str()); + } + if (GetLoadInProcStep() == In_CylinderReachPrint) { + ImGui::Text(_(u8"缸体到打印位运行中").c_str()); + } + if (GetLoadInProcStep() == In_CylinderPrintLoad) { + ImGui::Text(_(u8"缸体打印位装载运行中").c_str()); + } + if (mp.m_LoadInResut == In_Intercept) { + ImGui::TextColored(Toast::COLOR_ORANGE, mp.m_LoadInfo.c_str()); + if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + else if (mp.m_LoadInResut == In_Success) { + ImGui::TextColored(Toast::COLOR_GREEN, mp.m_LoadInfo.c_str()); + if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + else if (mp.m_LoadInResut > In_Success) { + ImGui::TextColored(Toast::COLOR_RED, mp.m_LoadInfo.c_str()); + if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + + if (IsLoadIn()) { + if (ImGui::Button(_(u8"中断载入").c_str(), ImVec2(-1, 0))) + { + DataHandle::Instance()->SetPushMsg(INTERCEPTLOAD); + //InterceptLoad(); + } + } + ImGui::EndPopup(); + } + + if (ImGui::BeginPopupModal(_(u8"移载载出").c_str(), NULL, ImGuiWindowFlags_AlwaysAutoResize)) { + if (GetLoadOutProcSetp() == Out_Start) + { + ImGui::Text(_(u8"移载开始载出").c_str()); + } + if (GetLoadOutProcSetp() == Out_CylinderPrintUnload) + { + ImGui::Text(_(u8"缸体打印位卸载运行中").c_str()); + } + if (GetLoadOutProcSetp() == Out_CylinderReachClean) + { + ImGui::Text(_(u8"缸体到清粉位运行中").c_str()); + } + if (GetLoadOutProcSetp() == Out_CylinderConnectCleanBox) + { + ImGui::Text(_(u8"缸体与清粉箱连接中").c_str()); + } + if (GetLoadOutProcSetp() == Out_CylinderReachHand) + { + ImGui::Text(_(u8"缸体与吊装位运行中").c_str()); + } + + if (GetLoadOutProcSetp() == Out_CylinderDisconnectCleanBox) + { + ImGui::Text(_(u8"缸体与清粉箱分离中").c_str()); + } + + + if (m_NeedWaitSelectOutPos) { + vector combtemp = { _(u8"清粉位"),_(u8"吊装位") }; + ImGui::SemicolonCombo(_(u8"选择载出位置").c_str(), &m_SelectOutPos, combtemp); + if (ImGui::Button(_(u8"下一步").c_str())) + { + m_WaitSelectOutPosCommit = true; + } + } + + + if (mp.m_WaitConnectBoxCommit) { + if (ImGui::Button(_(u8"执行缸体与清粉箱连接").c_str())) + { + SetWaitConnectBoxCommit(false); + } + } + + if (mp.m_LoadOutResut == Out_Intercept) { + ImGui::TextColored(Toast::COLOR_ORANGE, mp.m_LoadInfo.c_str()); + if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + else if (mp.m_LoadOutResut == Out_Success) { + ImGui::TextColored(Toast::COLOR_GREEN, mp.m_LoadInfo.c_str()); + if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + else if (mp.m_LoadOutResut > Out_Success) { + ImGui::TextColored(Toast::COLOR_RED, mp.m_LoadInfo.c_str()); + if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + + if (IsLoadOut()) { + if (ImGui::Button(_(u8"中断载出").c_str(), ImVec2(-1, 0))) + { + DataHandle::Instance()->SetPushMsg(INTERCEPTLOAD); + //InterceptLoad(); + } + } + ImGui::EndPopup(); + } + + + ImGui::Dummy(ImVec2(0, 80)); + ImGui::RadioButton(_(u8"移载轴").c_str(), &kb, GTS_AXIS_ID_LOAD); + if (IsLoadAxisCanMoveLeft()) + { + ImGui::PushID("LoadMovePointLeft"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); + g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移载轴左移 %.3fmm").c_str(), loadCfgVal.rel / 1000.0f); + } + if (kb == GTS_AXIS_ID_LOAD && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { + m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); + g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetLoadAxisCanotMoveLeftInfo().c_str()); + } + } + + ImGui::SameLine(); + + if (IsLoadAxisCanMoveRight()) + { + ImGui::PushID("LoadMovePointRight"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); + g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移载轴右移 %.3fmm").c_str(), loadCfgVal.rel); + } + if (kb == GTS_AXIS_ID_LOAD && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) { + m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); + g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetLoadAxisCanotMoveRightInfo().c_str()); + } + } + + if (IsLoadAxisCanMoveLeft()) { + ImGui::PushID("LoadMoveLimitLeft"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + if (!m_PowderAssist.isLoadLeftRepeat) { + m_PowderAssist.isLoadLeftRepeat = true; + m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); + g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), load->GetShowPos()); + } + } + else { + if (m_PowderAssist.isLoadLeftRepeat) + { + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); + m_PowderAssist.isLoadLeftRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移载轴左连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetLoadAxisCanotMoveLeftInfo().c_str()); + } + if (m_PowderAssist.isLoadLeftRepeat) { + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); + m_PowderAssist.isLoadLeftRepeat = false; + } + } + + if (kb == GTS_AXIS_ID_LOAD && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { + if (IsLoadAxisCanMoveLeft()) { + m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); + g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), load->GetShowPos()); + } + else { + g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveLeftInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_LeftArrow))) + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); + } + + ImGui::SameLine(); + if (IsLoadAxisCanMoveRight()) { + ImGui::PushID("LoadMoveLimitRight"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + if (!m_PowderAssist.isLoadRightRepeat) { + m_PowderAssist.isLoadRightRepeat = true; + m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); + g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), load->GetShowPos()); + } + + } + else { + if (m_PowderAssist.isLoadRightRepeat) + { + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); + m_PowderAssist.isLoadRightRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移载轴右连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetLoadAxisCanotMoveRightInfo().c_str()); + } + if (m_PowderAssist.isLoadRightRepeat) { + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); + m_PowderAssist.isLoadRightRepeat = false; + } + } + if (kb == GTS_AXIS_ID_LOAD && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) + { + if (IsLoadAxisCanMoveRight()) { + m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); + g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), load->GetShowPos()); + } + else { + g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveRightInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_RightArrow))) + { + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); + } + } + ImGui::PushID("load_to_zero"); + if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + load->SetZeroPos(); + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移栽轴位置清零").c_str()); + } + + ImGui::EndGroup(); + + ImGui::SameLine(); + ImGui::BeginGroup(); + + //ImGui::Dummy(ImVec2(500,1)); + ImGui::BeginChild("SupplyCtrl", ImVec2(500, 160)); + ImGui::BeginGroup(); + ImGui::Text(_(u8"移栽轴:%.3f").c_str(), load->GetShowPos() / 1000.0f); + ImGui::Text(_(u8"成型缸:%.3f").c_str(), mold->GetShowPos() / 1000.0f); + ImGui::Text(_(u8"铺粉臂:%.3f").c_str(), arm->GetShowPos() / 1000.0f); + ImGui::EndGroup(); + ImGui::SameLine(350); + ImGui::BeginGroup(); + ImGui::RadioButton(_(u8"供粉轴").c_str(), &kb, GTS_AXIS_ID_SUPPLY); + + + ImGui::PushID("SupplyMovePointFront"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_Axis->m_Supply->MovPoint(AxisConfig::ActiveDirect::FRONT); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"下粉轴前转%.2f格").c_str(), supplyCfgVal.rel); + } + if (kb == GTS_AXIS_ID_SUPPLY && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + m_Axis->m_Supply->MovPoint(AxisConfig::ActiveDirect::FRONT); + } + } + ImGui::SameLine(); + ImGui::PushID("SupplyMoveLimitFront"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + if (!m_PowderAssist.isSupplyNegativeRepeat) { + m_PowderAssist.isSupplyNegativeRepeat = true; + m_Axis->m_Supply->MovLimitStart(AxisConfig::ActiveDirect::FRONT); + //OutputDebugString("left\n"); + } + } + else { + if (m_PowderAssist.isSupplyNegativeRepeat) + { + m_Axis->m_Supply->MovLimitStop(AxisConfig::ActiveDirect::FRONT); + m_PowderAssist.isSupplyNegativeRepeat = false; + //OutputDebugString("stop\n"); + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"供粉轴左连续").c_str()); + } + if (kb == GTS_AXIS_ID_SUPPLY && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + m_Axis->m_Supply->MovLimitStart(AxisConfig::ActiveDirect::FRONT); + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) + m_Axis->m_Supply->MovLimitStop(AxisConfig::ActiveDirect::FRONT); + } + + ImGui::EndGroup(); + ImGui::EndChild(); + + AxisStateValue moldValue; + mold->GetValue(moldValue); + AxisStateValue armValue; + arm->GetValue(armValue); + AxisStateValue loadValue; + load->GetValue(loadValue); + + MotionDrawAssist assit; + assit.loadRPos = loadValue.RPos>1.0f ? 1.0f : loadValue.RPos; + int cylinderState = m_SignalState.m_CylinderState; + if (cylinderState == CylinderInCleanUnConnectBox || + cylinderState == CylinderInCleanConnectedBox || + cylinderState == CylinderInHand) { + assit.loadRPos = 1.0f; + } + + assit.moldRpos = moldValue.RPos>1.0f ? 1.0f : moldValue.RPos; + assit.armRPos = armValue.RPos; + assit.isCleanPressure = true; + assit.isPrintPressure = true; + assit.isPrintMoldSupprt = false; + assit.isPrintJackup = false; + assit.isInPrintPos = (m_SignalState.m_CylinderState == CylinderInPrintLoaded || m_SignalState.m_CylinderState == CylinderInPrintUnLoaded); + assit.isCleanClose = true; + if (m_IOCfgWrapper->m_Clean3RCylinderContact)assit.isCleanConnect = m_IOCfgWrapper->m_Clean3RCylinderContact->IsActive(); + ImGui::Powder1500V1(assit); + ImGui::EndGroup(); + + ImGui::SameLine(); + ImGui::BeginGroup(); + ImGui::Dummy(ImVec2(0, 170)); + ImGui::RadioButton(_(u8"铺粉臂").c_str(), &kb, GTS_AXIS_ID_ARM); + if (IsArmCanMoveBack()) { + ImGui::PushID("ArmMovPointBack"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::BACK); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴后移 %.3fmm").c_str(), armCfgVal.rel / 1000.0f); + } + if (kb == GTS_AXIS_ID_ARM && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { + m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::BACK); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); + } + } + + ImGui::SameLine(); + if (IsArmCanMoveBack()) { + ImGui::PushID("ArmMoveLimitBack"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + if (!m_PowderAssist.isArmBackRepeat) { + m_PowderAssist.isArmBackRepeat = true; + m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::BACK); + } + } + else { + if (m_PowderAssist.isArmBackRepeat) + { + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); + m_PowderAssist.isArmBackRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴后连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); + } + if (m_PowderAssist.isArmBackRepeat) { + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); + m_PowderAssist.isArmBackRepeat = false; + } + } + if (kb == GTS_AXIS_ID_ARM && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) + { + if (IsArmCanMoveBack()) { + m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::BACK); + } + else { + g_Toast->AddToast(new ToastBean(GetArmCanotMoveBackInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_UpArrow))) + { + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); + } + } + + if (IsArmCanMoveFront()) { + ImGui::PushID("ArmMovPointFront"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::FRONT); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴前移 %.3fmm").c_str(), armCfgVal.rel / 1000.0f); + } + + if (kb == GTS_AXIS_ID_ARM && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::FRONT); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetArmCanotMoveFrontInfo().c_str()); + } + } + + ImGui::SameLine(); + + if (IsArmCanMoveFront()) { + ImGui::PushID("ArmMoveLimitFront"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + if (!m_PowderAssist.isArmFrontRepeat) { + m_PowderAssist.isArmFrontRepeat = true; + m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::FRONT); + } + } + else { + if (m_PowderAssist.isArmFrontRepeat) + { + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); + m_PowderAssist.isArmFrontRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴前连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); + } + if (m_PowderAssist.isArmFrontRepeat) { + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); + m_PowderAssist.isArmFrontRepeat = false; + } + } + if (kb == GTS_AXIS_ID_ARM && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + if (IsArmCanMoveFront()) { + m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::FRONT); + } + else { + g_Toast->AddToast(new ToastBean(GetArmCanotMoveBackInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); + } + + ImGui::PushID("arm_to_zero"); + if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + arm->SetZeroPos(); + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴位置清零").c_str()); + } + if (m_AxisRecordWrapper->m_PCArmOverLimitAlarm->GetValue()) + { + ImGui::SameLine(); + ImGui::PushID("arm_alarm_remove"); + if (ImGui::ImageButton(chartletManager->m_AlarmRemove->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_AxisRecordWrapper->m_PCArmOverLimitAlarmRemove->SetValue(true); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴越限解除").c_str()); + } + } + ImGui::Dummy(ImVec2(0, 35)); + ImGui::RadioButton(_(u8"成型缸").c_str(), &kb, GTS_AXIS_ID_MOLD); + if (IsMoldCanMoveUp()) { + ImGui::PushID("MoldMovePointUp"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); + g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸上移 %.3fmm").c_str(), moldCfgVal.rel / 1000.0f); + } + if (kb == GTS_AXIS_ID_MOLD && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { + m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); + g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetMoldCanotUpInfo().c_str()); + } + } + + ImGui::SameLine(); + if (IsMoldCanMoveUp()) { + ImGui::PushID("MoldMoveLimitUp"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + if (!m_PowderAssist.isMoldUpRepeat) { + m_PowderAssist.isMoldUpRepeat = true; + m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); + g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), mold->GetShowPos()); + } + } + else { + if (m_PowderAssist.isMoldUpRepeat) + { + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); + m_PowderAssist.isMoldUpRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸上连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetMoldCanotUpInfo().c_str()); + } + if (m_PowderAssist.isMoldUpRepeat) { + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); + m_PowderAssist.isMoldUpRepeat = false; + } + } + if (kb == GTS_AXIS_ID_MOLD && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { + if (IsMoldCanMoveUp()) { + m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); + g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), mold->GetShowPos()); + } + else { + g_Toast->AddToast(new ToastBean(GetMoldCanotUpInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_UpArrow))) + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); + } + + if (IsMoldCanMoveDown()) { + ImGui::PushID("MoldMovePointDown"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); + g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸下移 %.3fmm").c_str(), moldCfgVal.rel / 1000.0f); + } + if (kb == GTS_AXIS_ID_MOLD && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); + g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetMoldCanotDownInfo().c_str()); + } + } + + ImGui::SameLine(); + + if (IsMoldCanMoveDown()) { + ImGui::PushID("MoldMoveLimitDown"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + if (!m_PowderAssist.isMoldDownRepeat) { + m_PowderAssist.isMoldDownRepeat = true; + m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); + g_log->TraceInfo(_(u8"升降[%.3f]往下连续移动").c_str(), mold->GetShowPos()); + } + } + else { + if (m_PowderAssist.isMoldDownRepeat) + { + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); + m_PowderAssist.isMoldDownRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸下连续").c_str()); + } + + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetMoldCanotDownInfo().c_str()); + } + if (m_PowderAssist.isMoldDownRepeat) { + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); + m_PowderAssist.isMoldDownRepeat = false; + } + } + if (kb == GTS_AXIS_ID_MOLD && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) + { + if (IsMoldCanMoveDown()) { + m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); + g_log->TraceInfo(_(u8"升降[%.3f]往连续下移动").c_str(), mold->GetShowPos()); + } + else + { + g_Toast->AddToast(new ToastBean(GetMoldCanotDownInfo(), 5000, Toast::COLOR_ORANGE)); + } + + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) + { + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); + } + } + ImGui::PushID("mold_to_zero"); + if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + mold->SetZeroPos(); + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸位置清零").c_str()); + } + ImGui::EndGroup(); + + ImGui::EndChild(); + + ImGui::End(); + +} void HBD1200OLD::DrawAnalogExt() { @@ -6532,160 +6546,160 @@ void HBD1200OLD::InitSysParam(SysParamWrapper* spw, void* cc) // } // //} -// -//bool HBD1200OLD::CheckPrintMoldReady() -//{ -// if (m_SignalStateWrapper->m_CylinderState->GetValue() != CylinderInPrintLoaded) -// { -// return false; -// } -// else return true; -//} -// -//bool HBD1200OLD::IsLoadAxisCanMoveLeft() -//{ -// if (!m_SignalState.m_PrintJackupInSafePos)return false; -// if (!m_SignalState.m_LoadTorqueInsideLimit)return false; -// if (!m_SignalState.m_LoadPosInsideLeftSoftLimit)return false; -// if (!m_SignalState.m_CylinderFixInReleasePos)return false; -// if (!m_SignalState.m_LoadLeftNotInsideLimit)return false; -// if (!m_SignalState.m_LoadServoNoAlarm)return false; -// if (!m_SignalState.m_EleServoInBottomPos)return false; -// if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -// -//string HBD1200OLD::GetLoadAxisCanotMoveLeftInfo() { -// if (!m_SignalState.m_PrintJackupInSafePos)return _(u8"打印顶升轴不在安全位").c_str(); -// if (!m_SignalState.m_LoadTorqueInsideLimit)return _(u8"移载扭力越限").c_str(); -// if (!m_SignalState.m_LoadPosInsideLeftSoftLimit)return _(u8"移载轴越软左限").c_str(); -// if (!m_SignalState.m_CylinderFixInReleasePos)return _(u8"缸体固定气缸不在松开位").c_str(); -// if (!m_SignalState.m_LoadLeftNotInsideLimit)return _(u8"移载轴已到左限位").c_str(); -// if (!m_SignalState.m_LoadServoNoAlarm)return _(u8"移载轴伺服异常").c_str(); -// if (!m_SignalState.m_EleServoInBottomPos)return _(u8"电缸不在底座位").c_str(); -// if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); -// return _(u8"未知原因").c_str(); -//} -// -//bool HBD1200OLD::IsLoadAxisCanMoveRight() -//{ -// if (!m_SignalState.m_PrintJackupInSafePos)return false; -// if (!m_SignalState.m_LoadTorqueInsideLimit)return false; -// if (!m_SignalState.m_LoadPosInsideRightSoftLimit)return false; -// if (!m_SignalState.m_CylinderFixInReleasePos)return false; -// if (!m_SignalState.m_LoadRightNotInsideLimit)return false; -// if (!m_SignalState.m_LoadServoNoAlarm)return false; -// if (!m_SignalState.m_EleServoInBottomPos)return false; -// if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -// -//string HBD1200OLD::GetLoadAxisCanotMoveRightInfo() { -// if (!m_SignalState.m_PrintJackupInSafePos)return _(u8"打印顶升轴不在安全位").c_str(); -// if (!m_SignalState.m_LoadTorqueInsideLimit)return _(u8"移载扭力越限").c_str(); -// if (!m_SignalState.m_LoadPosInsideRightSoftLimit)return _(u8"移载轴越软右限").c_str(); -// if (!m_SignalState.m_CylinderFixInReleasePos)return _(u8"缸体固定气缸不在松开位").c_str(); -// if (!m_SignalState.m_LoadRightNotInsideLimit)return _(u8"移载轴已到右限位").c_str(); -// if (!m_SignalState.m_LoadServoNoAlarm)return _(u8"移载轴伺服异常").c_str(); -// if (!m_SignalState.m_EleServoInBottomPos)return _(u8"电缸不在底座位").c_str(); -// if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); -// return _(u8"未知原因").c_str(); -//} -// -//bool HBD1200OLD::IsArmCanMoveBack() -//{ -// if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return false; -// if (!m_SignalState.m_ArmTorqueInsideLimit)return false; -// if (!m_SignalState.m_ArmPosInsideSoftBackLimit)return false; -// if (!m_SignalState.m_ArmPosInsideBackLimit)return false; -// if (!m_SignalState.m_ArmServoNoAlarm)return false; -// if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -// -//string HBD1200OLD::GetArmCanotMoveBackInfo() -//{ -// if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return _(u8"打印升降轴高于基板缸平面").c_str(); -// if (!m_SignalState.m_ArmTorqueInsideLimit)return _(u8"铺粉轴扭力越限").c_str(); -// if (!m_SignalState.m_ArmPosInsideSoftBackLimit)return _(u8"铺粉轴位置超过软后限").c_str(); -// if (!m_SignalState.m_ArmPosInsideBackLimit)return _(u8"铺粉轴已到后限位").c_str(); -// if (!m_SignalState.m_ArmServoNoAlarm)return _(u8"铺粉轴伺服异常").c_str(); -// if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); -// return _(u8"未知原因").c_str(); -//} -// -//bool HBD1200OLD::IsArmCanMoveFront() -//{ -// if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return false; -// if (!m_SignalState.m_ArmTorqueInsideLimit)return false; -// if (!m_SignalState.m_ArmPosInsideSoftFrontLimit)return false; -// if (!m_SignalState.m_ArmPosInsideFrontLimit)return false; -// if (!m_SignalState.m_ArmServoNoAlarm)return false; -// if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -// -//string HBD1200OLD::GetArmCanotMoveFrontInfo() -//{ -// if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return _(u8"打印升降轴高于基板缸平面").c_str(); -// if (!m_SignalState.m_ArmTorqueInsideLimit)return _(u8"铺粉轴扭力越限").c_str(); -// if (!m_SignalState.m_ArmPosInsideSoftFrontLimit)return _(u8"铺粉轴位置超过软前限").c_str(); -// if (!m_SignalState.m_ArmPosInsideFrontLimit)return _(u8"铺粉轴已到前限位").c_str(); -// if (!m_SignalState.m_ArmServoNoAlarm)return _(u8"铺粉轴伺服异常").c_str(); -// if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); -// return _(u8"未知原因").c_str(); -//} -// -//bool HBD1200OLD::IsMoldCanMoveUp() -//{ -// if (!m_SignalState.m_PrintTorqueUpInsideLimit)return false; -// if (!m_SignalState.m_ArmNotUponBasePlatform)return false; -// if (!m_SignalState.m_PrintMoldPosInsideUpSoftLimit)return false; -// if (!m_SignalState.m_PrintInsideUpLimit)return false; -// if (!m_SignalState.m_PrintMainServoNoAlarm)return false; -// if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos)return false; -// if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -// -//string HBD1200OLD::GetMoldCanotUpInfo() -//{ -// if (!m_SignalState.m_PrintTorqueUpInsideLimit)return _(u8"升降轴上升扭力越限").c_str(); -// if (!m_SignalState.m_ArmNotUponBasePlatform)return _(u8"铺粉臂在基板范围内").c_str(); -// if (!m_SignalState.m_PrintMoldPosInsideUpSoftLimit)return _(u8"升降轴越软上限").c_str(); -// if (!m_SignalState.m_PrintInsideUpLimit)return _(u8"升降轴越上限").c_str(); -// if (!m_SignalState.m_PrintMainServoNoAlarm)return _(u8"打印主轴伺服异常").c_str(); -// if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos) -// { -// return _(u8"缸体不在打印位、清粉位、吊装位").c_str(); -// } -// if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); -// return _(u8"未知原因").c_str(); -//} -// -//bool HBD1200OLD::IsMoldCanMoveDown() -//{ -// if (!m_SignalState.m_PrintTorqueDownInsideLimit)return false; -// if (!m_SignalState.m_ArmNotUponBasePlatform)return false; -// if (!m_SignalState.m_PrintAxisPosInsideDownSoftLimit)return false; -// if (!m_SignalState.m_PrintInsideDownLimit)return false; -// if (!m_SignalState.m_PrintMainServoNoAlarm)return false; -// if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos)return false; -// if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -// -//string HBD1200OLD::GetMoldCanotDownInfo() -//{ -// if (!m_SignalState.m_PrintTorqueDownInsideLimit)return _(u8"升降轴下降扭力越限").c_str(); -// if (!m_SignalState.m_ArmNotUponBasePlatform)return _(u8"铺粉臂在基板范围内").c_str(); -// if (!m_SignalState.m_PrintAxisPosInsideDownSoftLimit)return _(u8"升降轴越软下限").c_str(); -// if (!m_SignalState.m_PrintInsideDownLimit)return _(u8"升降轴越下限").c_str(); -// if (!m_SignalState.m_PrintMainServoNoAlarm)return _(u8"打印主轴伺服异常").c_str(); -// if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos) -// { -// return _(u8"缸体不在打印位、清粉位、吊装位").c_str(); -// } -// if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); -// return _(u8"未知原因").c_str(); -//} \ No newline at end of file + +bool HBD1200OLD::CheckPrintMoldReady() +{ + if (m_SignalStateWrapper->m_CylinderState->GetValue() != CylinderInPrintLoaded) + { + return false; + } + else return true; +} + +bool HBD1200OLD::IsLoadAxisCanMoveLeft() +{ + if (!m_SignalState.m_PrintJackupInSafePos)return false; + if (!m_SignalState.m_LoadTorqueInsideLimit)return false; + if (!m_SignalState.m_LoadPosInsideLeftSoftLimit)return false; + if (!m_SignalState.m_CylinderFixInReleasePos)return false; + if (!m_SignalState.m_LoadLeftNotInsideLimit)return false; + if (!m_SignalState.m_LoadServoNoAlarm)return false; + if (!m_SignalState.m_EleServoInBottomPos)return false; + if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} + +string HBD1200OLD::GetLoadAxisCanotMoveLeftInfo() { + if (!m_SignalState.m_PrintJackupInSafePos)return _(u8"打印顶升轴不在安全位").c_str(); + if (!m_SignalState.m_LoadTorqueInsideLimit)return _(u8"移载扭力越限").c_str(); + if (!m_SignalState.m_LoadPosInsideLeftSoftLimit)return _(u8"移载轴越软左限").c_str(); + if (!m_SignalState.m_CylinderFixInReleasePos)return _(u8"缸体固定气缸不在松开位").c_str(); + if (!m_SignalState.m_LoadLeftNotInsideLimit)return _(u8"移载轴已到左限位").c_str(); + if (!m_SignalState.m_LoadServoNoAlarm)return _(u8"移载轴伺服异常").c_str(); + if (!m_SignalState.m_EleServoInBottomPos)return _(u8"电缸不在底座位").c_str(); + if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); + return _(u8"未知原因").c_str(); +} + +bool HBD1200OLD::IsLoadAxisCanMoveRight() +{ + if (!m_SignalState.m_PrintJackupInSafePos)return false; + if (!m_SignalState.m_LoadTorqueInsideLimit)return false; + if (!m_SignalState.m_LoadPosInsideRightSoftLimit)return false; + if (!m_SignalState.m_CylinderFixInReleasePos)return false; + if (!m_SignalState.m_LoadRightNotInsideLimit)return false; + if (!m_SignalState.m_LoadServoNoAlarm)return false; + if (!m_SignalState.m_EleServoInBottomPos)return false; + if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} + +string HBD1200OLD::GetLoadAxisCanotMoveRightInfo() { + if (!m_SignalState.m_PrintJackupInSafePos)return _(u8"打印顶升轴不在安全位").c_str(); + if (!m_SignalState.m_LoadTorqueInsideLimit)return _(u8"移载扭力越限").c_str(); + if (!m_SignalState.m_LoadPosInsideRightSoftLimit)return _(u8"移载轴越软右限").c_str(); + if (!m_SignalState.m_CylinderFixInReleasePos)return _(u8"缸体固定气缸不在松开位").c_str(); + if (!m_SignalState.m_LoadRightNotInsideLimit)return _(u8"移载轴已到右限位").c_str(); + if (!m_SignalState.m_LoadServoNoAlarm)return _(u8"移载轴伺服异常").c_str(); + if (!m_SignalState.m_EleServoInBottomPos)return _(u8"电缸不在底座位").c_str(); + if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); + return _(u8"未知原因").c_str(); +} + +bool HBD1200OLD::IsArmCanMoveBack() +{ + if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return false; + if (!m_SignalState.m_ArmTorqueInsideLimit)return false; + if (!m_SignalState.m_ArmPosInsideSoftBackLimit)return false; + if (!m_SignalState.m_ArmPosInsideBackLimit)return false; + if (!m_SignalState.m_ArmServoNoAlarm)return false; + if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} + +string HBD1200OLD::GetArmCanotMoveBackInfo() +{ + if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return _(u8"打印升降轴高于基板缸平面").c_str(); + if (!m_SignalState.m_ArmTorqueInsideLimit)return _(u8"铺粉轴扭力越限").c_str(); + if (!m_SignalState.m_ArmPosInsideSoftBackLimit)return _(u8"铺粉轴位置超过软后限").c_str(); + if (!m_SignalState.m_ArmPosInsideBackLimit)return _(u8"铺粉轴已到后限位").c_str(); + if (!m_SignalState.m_ArmServoNoAlarm)return _(u8"铺粉轴伺服异常").c_str(); + if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); + return _(u8"未知原因").c_str(); +} + +bool HBD1200OLD::IsArmCanMoveFront() +{ + if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return false; + if (!m_SignalState.m_ArmTorqueInsideLimit)return false; + if (!m_SignalState.m_ArmPosInsideSoftFrontLimit)return false; + if (!m_SignalState.m_ArmPosInsideFrontLimit)return false; + if (!m_SignalState.m_ArmServoNoAlarm)return false; + if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} + +string HBD1200OLD::GetArmCanotMoveFrontInfo() +{ + if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return _(u8"打印升降轴高于基板缸平面").c_str(); + if (!m_SignalState.m_ArmTorqueInsideLimit)return _(u8"铺粉轴扭力越限").c_str(); + if (!m_SignalState.m_ArmPosInsideSoftFrontLimit)return _(u8"铺粉轴位置超过软前限").c_str(); + if (!m_SignalState.m_ArmPosInsideFrontLimit)return _(u8"铺粉轴已到前限位").c_str(); + if (!m_SignalState.m_ArmServoNoAlarm)return _(u8"铺粉轴伺服异常").c_str(); + if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); + return _(u8"未知原因").c_str(); +} + +bool HBD1200OLD::IsMoldCanMoveUp() +{ + if (!m_SignalState.m_PrintTorqueUpInsideLimit)return false; + if (!m_SignalState.m_ArmNotUponBasePlatform)return false; + if (!m_SignalState.m_PrintMoldPosInsideUpSoftLimit)return false; + if (!m_SignalState.m_PrintInsideUpLimit)return false; + if (!m_SignalState.m_PrintMainServoNoAlarm)return false; + if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos)return false; + if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} + +string HBD1200OLD::GetMoldCanotUpInfo() +{ + if (!m_SignalState.m_PrintTorqueUpInsideLimit)return _(u8"升降轴上升扭力越限").c_str(); + if (!m_SignalState.m_ArmNotUponBasePlatform)return _(u8"铺粉臂在基板范围内").c_str(); + if (!m_SignalState.m_PrintMoldPosInsideUpSoftLimit)return _(u8"升降轴越软上限").c_str(); + if (!m_SignalState.m_PrintInsideUpLimit)return _(u8"升降轴越上限").c_str(); + if (!m_SignalState.m_PrintMainServoNoAlarm)return _(u8"打印主轴伺服异常").c_str(); + if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos) + { + return _(u8"缸体不在打印位、清粉位、吊装位").c_str(); + } + if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); + return _(u8"未知原因").c_str(); +} + +bool HBD1200OLD::IsMoldCanMoveDown() +{ + if (!m_SignalState.m_PrintTorqueDownInsideLimit)return false; + if (!m_SignalState.m_ArmNotUponBasePlatform)return false; + if (!m_SignalState.m_PrintAxisPosInsideDownSoftLimit)return false; + if (!m_SignalState.m_PrintInsideDownLimit)return false; + if (!m_SignalState.m_PrintMainServoNoAlarm)return false; + if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos)return false; + if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} + +string HBD1200OLD::GetMoldCanotDownInfo() +{ + if (!m_SignalState.m_PrintTorqueDownInsideLimit)return _(u8"升降轴下降扭力越限").c_str(); + if (!m_SignalState.m_ArmNotUponBasePlatform)return _(u8"铺粉臂在基板范围内").c_str(); + if (!m_SignalState.m_PrintAxisPosInsideDownSoftLimit)return _(u8"升降轴越软下限").c_str(); + if (!m_SignalState.m_PrintInsideDownLimit)return _(u8"升降轴越下限").c_str(); + if (!m_SignalState.m_PrintMainServoNoAlarm)return _(u8"打印主轴伺服异常").c_str(); + if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos) + { + return _(u8"缸体不在打印位、清粉位、吊装位").c_str(); + } + if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); + return _(u8"未知原因").c_str(); +} \ No newline at end of file diff --git a/PrintC/Machine/HBD1200OLD.h b/PrintC/Machine/HBD1200OLD.h index bb03c59..f099145 100644 --- a/PrintC/Machine/HBD1200OLD.h +++ b/PrintC/Machine/HBD1200OLD.h @@ -85,7 +85,7 @@ public: void InitSysParam(SysParamWrapper* spw, void* cc); //void InitPLCCommand(vector& vecs); //void GetAlarmState(SignalState& signalState); - //bool CheckPrintMoldReady(); + bool CheckPrintMoldReady(); virtual void CheckIO(); private: /*static*/ void CheckIO_V0(/*vector&ins, IOCfgWrapper* iocfgWrapper, string str, int type*/); diff --git a/PrintC/Machine/HBD1500.cpp b/PrintC/Machine/HBD1500.cpp index 1f8e97a..35dcea2 100644 --- a/PrintC/Machine/HBD1500.cpp +++ b/PrintC/Machine/HBD1500.cpp @@ -8,6 +8,7 @@ #include "../Toast.h" #include "../SystemInfo.h" #include "../Logger.h" +#include "../DataManage/DataHandle.h" const int HBD1500::IO_V0 = 0; HBD1500::HBD1500(MachineTypeCfg::MachineTypeId type) :Machine(type) @@ -2835,1497 +2836,1512 @@ void HBD1500::DrawSignal(bool* isshow) // ImGui::EndChild(); //} -void HBD1500::DrawPowderCtrl(bool* winShow) -{} -//void HBD1500::DrawPowderCtrl(bool* winShow) -//{ -// ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(4, 8)); -// ImGui::Begin(_(u8"铺粉装置调试").c_str(), winShow, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoNav); -// ImGui::PopStyleVar(); -// -// int dstepflag = 1; -// double fstepflag = 1.0; -// long lstepflag = 1; -// static int kb = GTS_AXIS_ID_ARM; -// static bool continue_move = false; -// -// //CoverCfg* coverCfg = m_CoverCfg; -// MainAxisState* mold = m_Axis->m_Mold->GetState(); -// MainAxisState* clean = m_Axis->m_Clean->GetState(); -// AxisState* load = m_Axis->m_Load->GetState(); -// AxisState* arm = m_Axis->m_Arm->GetState(); -// AxisState* supply = m_Axis->m_Supply->GetState(); -// -// AxisConfig* armCfg = m_Axis->m_Arm->GetConfig(); -// AxisConfig::CfgValue armCfgVal; -// armCfg->GetValue(armCfgVal); -// AxisConfig* moldCfg = m_Axis->m_Mold->GetConfig(); -// AxisConfig::CfgValue moldCfgVal; -// moldCfg->GetValue(moldCfgVal); -// AxisConfig* cleanCfg = m_Axis->m_Clean->GetConfig(); -// AxisConfig::CfgValue cleanCfgVal; -// cleanCfg->GetValue(cleanCfgVal); -// AxisConfig* loadCfg = m_Axis->m_Load->GetConfig(); -// AxisConfig::CfgValue loadCfgVal; -// loadCfg->GetValue(loadCfgVal); -// AxisConfig* supplyCfg = m_Axis->m_Supply->GetConfig(); -// AxisConfig::CfgValue supplyCfgVal; -// supplyCfg->GetValue(supplyCfgVal); -// -// ChartletManager* chartletManager = ChartletManager::GetInstance(); -// ImVec2 wpos = ImGui::GetWindowPos(); -// SignalService::GetInstance().GetSignalState(m_SignalState); -// if (m_PowderAssist.isLeftExpand) -// { -// ImGui::BeginGroup(); -// vector tabs; -// tabs.push_back(_(u8"成型缸")); -// tabs.push_back(_(u8"移载轴")); -// tabs.push_back(_(u8"铺粉轴")); -// tabs.push_back(_(u8"供粉轴")); -// tabs.push_back(_(u8"铺粉")); -// tabs.push_back(_(u8"控制")); -// int tabwidth = 0; -// for (size_t tindex = 0; tindex < tabs.size(); tindex++) { -// tabwidth = tabwidth + ImGui::CalcTextSize(tabs[tindex].c_str(), 0).x + 15; -// } -// ImVec2 showSize = ImVec2(tabwidth, 600); -// -// ImGui::BeginChild("AxisSettingChild", showSize, false, ImGuiWindowFlags_NoNav); -// ImGui::BeginTabBar("AxisSetting"); -// if (ImGui::BeginTabItem(_(u8"成型缸").c_str())) { -// ImGui::PushItemWidth(100); -// if (ImGui::InputFloatEx(_(u8"速度(mm/s)").c_str(), &moldCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, &m_ParamLimitCfg->m_MoldSpeedMin, &m_ParamLimitCfg->m_MoldSpeedMax)) -// { -// moldCfg->m_Speed->SetValue(moldCfgVal.speed); -// g_log->TraceInfo(_(u8"更改成型缸速度:%.3f").c_str(), moldCfgVal.speed); -// } -// if (ImGui::InputFloatEx(_(u8"加速度(m/s²)").c_str(), &moldCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, &m_ParamLimitCfg->m_MoldAccMin, &m_ParamLimitCfg->m_MoldAccMax)) -// { -// moldCfg->m_Acc->SetValue(moldCfgVal.acc); -// g_log->TraceInfo(_(u8"更改成型缸加速度:%.3f").c_str(), moldCfgVal.acc); -// } -// if (ImGui::InputFloatEx(_(u8"减速度(m/s2)").c_str(), &moldCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, &m_ParamLimitCfg->m_MoldDecMin, &m_ParamLimitCfg->m_MoldDecMax)) -// { -// moldCfg->m_Dec->SetValue(moldCfgVal.dec); -// g_log->TraceInfo(_(u8"更新成型缸减速度:%.3f").c_str(), moldCfgVal.dec); -// } -// if (ImGui::InputFloatEx(_(u8"点动行程(μm)").c_str(), &moldCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, &m_ParamLimitCfg->m_MoldPointStepMin, &m_ParamLimitCfg->m_MoldPointStepMax)) { -// moldCfg->m_RefDistance->SetValue(moldCfgVal.rel); -// g_log->TraceInfo(_(u8"更改成型缸点动行程:%.3f").c_str(), moldCfgVal.rel); -// } -// ImGui::PopItemWidth(); -// -// if ((g_Admin > USER_ADMIN)) { -// ImGui::Dummy(ImVec2(0, 20)); -// if (mold->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 0) -// { -// if (ImGui::ImageButton(chartletManager->m_MoldMoveSeping->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断打印升降轴移动到缸体分离位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印升降轴移动到缸体分离位").c_str()); -// } -// else { -// ImGui::ImageButton(chartletManager->m_MoldMoveSepDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印升降轴移动到缸体分离位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_MoldMoveSepEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_MoldAbsTestPos->SetValue(0); -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行打印升降轴移动到缸体分离位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印升降轴移动到缸体分离位").c_str()); -// } -// -// ImGui::SameLine(); -// if (mold->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 1) -// { -// if (ImGui::ImageButton(chartletManager->m_MoldMove3RSeping->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断打印升降轴移动到3R脱离位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断打印升降轴移动到3R脱离位").c_str()); -// } -// else { -// ImGui::ImageButton(chartletManager->m_MoldMove3RSepDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印升降轴移动到3R脱离位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_MoldMove3RSepEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_MoldAbsTestPos->SetValue(1); -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行打印升降轴移动到3R脱离位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印升降轴移动到3R脱离位").c_str()); -// } -// ImGui::SameLine(); -// if (mold->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 2) -// { -// if (ImGui::ImageButton(chartletManager->m_MoldMoveDeoxygening->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断打印升降轴移动到除氧最低点").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断打印升降轴移动到除氧最低点").c_str()); -// } -// else { -// ImGui::ImageButton(chartletManager->m_MoldMoveDeoxygenDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印升降轴移动到除氧最低点").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_MoldMoveDeoxygenEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_MoldAbsTestPos->SetValue(2); -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行打印升降轴移动到除氧最低点").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印升降轴移动到除氧最低点").c_str()); -// } -// ImGui::SameLine(); -// if (mold->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 3) -// { -// if (ImGui::ImageButton(chartletManager->m_MoldMoveDownesting->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断打印轴移动到底座缸平面位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断打印轴移动到底座缸平面位").c_str()); -// } -// else { -// ImGui::ImageButton(chartletManager->m_MoldMoveDownestDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印轴移动到底座缸平面位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_MoldMoveDownestEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_MoldAbsTestPos->SetValue(3); -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行打印轴移动到底座缸平面位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印轴移动到底座缸平面位").c_str()); -// } -// ImGui::SameLine(); -// if (mold->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 4) -// { -// if (ImGui::ImageButton(chartletManager->m_MoldMovePlatforming->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断打印轴移动到基板缸平面位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断打印轴移动到基板缸平面位").c_str()); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_MoldMovePlatformDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印轴移动到基板缸平面位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_MoldAbsTestPos->SetValue(4); -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行打印轴移动到基板缸平面位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印轴移动到基板缸平面位").c_str()); -// } -// } -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { -// ImGui::PushItemWidth(100); -// if (ImGui::InputFloatEx(_(u8"速度(mm/s)").c_str(), &loadCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, &m_ParamLimitCfg->m_LoadSpeedMin, &m_ParamLimitCfg->m_LoadSpeedMax)) -// { -// loadCfg->m_Speed->SetValue(loadCfgVal.speed); -// g_log->TraceInfo(_(u8"更新移载轴速度:%.3f").c_str(), loadCfgVal.speed); -// } -// if (ImGui::InputFloatEx(_(u8"加速度(m/s²)").c_str(), &loadCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, &m_ParamLimitCfg->m_LoadAccMin, &m_ParamLimitCfg->m_LoadAccMax)) -// { -// loadCfg->m_Acc->SetValue(loadCfgVal.acc); -// g_log->TraceInfo(_(u8"更新移载轴加速度:%.3f").c_str(), loadCfgVal.acc); -// } -// if (ImGui::InputFloatEx(_(u8"减速度(m/s2)").c_str(), &loadCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, &m_ParamLimitCfg->m_LoadDecMin, &m_ParamLimitCfg->m_LoadDecMax)) -// { -// loadCfg->m_Dec->SetValue(loadCfgVal.dec); -// g_log->TraceInfo(_(u8"更新移载轴减速度:%.3f").c_str(), loadCfgVal.dec); -// } -// if (ImGui::InputFloatEx(_(u8"点动行程(μm)").c_str(), &loadCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, &m_ParamLimitCfg->m_LoadPointStepMin, &m_ParamLimitCfg->m_LoadPointStepMax)) { -// loadCfg->m_RefDistance->SetValue(loadCfgVal.rel); -// g_log->TraceInfo(_(u8"更新移载轴点动距离:%.3f").c_str(), loadCfgVal.rel); -// } -// ImGui::PopItemWidth(); -// if (g_Admin > USER_ADMIN) { -// ImGui::Dummy(ImVec2(0, 20)); -// -// -// /* -// if (load->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 3) -// { -// if (ImGui::ImageButton(chartletManager->m_LoadHandPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断移载轴移动到轨道吊装位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断移载轴移动到轨道吊装位").c_str()); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_LoadHandPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行移载轴移动到轨道吊装位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_LoadHandPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(3); -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行移载轴移动到轨道吊装位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"移载轴移动到轨道吊装位").c_str()); -// } -// -// ImGui::SameLine(); -// -// */ -// if (load->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 1) -// { -// if (ImGui::ImageButton(chartletManager->m_LoadCleanPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断移载轴移动到轨道清粉位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断移载轴移动到轨道清粉位").c_str()); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_LoadCleanPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行移载轴移动到轨道清粉位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_LoadCleanPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(1); -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行移载轴移动到轨道清粉位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"移载轴移动到轨道清粉位").c_str()); -// } -// ImGui::SameLine(); -// if (load->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 0) -// { -// if (ImGui::ImageButton(chartletManager->m_LoadPrintPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断移载轴移动到轨道打印位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断移载轴移动到轨道打印位").c_str()); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_LoadPrintPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行移载轴移动到轨道打印位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_LoadPrintPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(0); -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行移载轴移动到轨道打印位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"移载轴移动到轨道打印位").c_str()); -// } -// } -// -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { -// ImGui::PushItemWidth(100); -// if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &armCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// armCfg->m_Speed->SetValue(armCfgVal.speed); -// g_log->TraceInfo(_(u8"更新铺粉轴速度:%.3f").c_str(), armCfgVal.speed); -// } -// if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &armCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// armCfg->m_Acc->SetValue(armCfgVal.acc); -// g_log->TraceInfo(_(u8"更新铺粉轴加速度:%.3f").c_str(), armCfgVal.acc); -// } -// if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &armCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// armCfg->m_Dec->SetValue(armCfgVal.dec); -// g_log->TraceInfo(_(u8"更新铺粉轴减速度:%.3f").c_str(), armCfgVal.dec); -// } -// if (ImGui::InputScalar(_(u8"点动行程(μm)").c_str(), ImGuiDataType_Float, &armCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// armCfg->m_RefDistance->SetValue(armCfgVal.rel); -// g_log->TraceInfo(_(u8"更新铺粉轴点动距离:%.3f").c_str(), armCfgVal.rel); -// } -// ImGui::PopItemWidth(); -// if (g_Admin > USER_ADMIN) { -// ImGui::Dummy(ImVec2(0, 20)); -// -// if (arm->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 0) -// { -// if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断铺粉轴移动到接粉位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断铺粉轴移动到接粉位").c_str()); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_ArmAcceptPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行铺粉轴移动到接粉位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_ArmAbsTestPos->SetValue(0); -// m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行铺粉轴移动到接粉位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"铺粉轴移动到接粉位").c_str()); -// } -// ImGui::SameLine(); -// if (arm->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 1) -// { -// if (ImGui::ImageButton(chartletManager->m_ArmFrontDropPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(_(u8"中断铺粉轴移动到前下粉位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断铺粉轴移动到前下粉位").c_str()); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_ArmFrontDropPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行铺粉轴移动到前下粉位").c_str()); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_ArmFrontDropPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_ArmAbsTestPos->SetValue(1); -// m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(_(u8"执行铺粉轴移动到前下粉位").c_str()); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"铺粉轴移动到前下粉位").c_str()); -// } -// } -// -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { -// ImGui::PushItemWidth(100); -// if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &supplyCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// supplyCfg->m_Speed->SetValue(supplyCfgVal.speed); -// g_log->TraceInfo(_(u8"更新下粉轴速度:%.3f").c_str(), supplyCfgVal.speed); -// } -// if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &supplyCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// supplyCfg->m_Acc->SetValue(supplyCfgVal.acc); -// g_log->TraceInfo(_(u8"更新下粉轴加速度:%.3f").c_str(), supplyCfgVal.acc); -// } -// if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &supplyCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// supplyCfg->m_Dec->SetValue(supplyCfgVal.dec); -// g_log->TraceInfo(_(u8"更新下粉轴减速度:%.3f").c_str(), supplyCfgVal.dec); -// } -// if (ImGui::InputScalar(_(u8"粉格").c_str(), ImGuiDataType_Float, &supplyCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// supplyCfg->m_RefDistance->SetValue(supplyCfgVal.rel); -// g_log->TraceInfo(_(u8"更新下粉轴相对移动距离:%.3f").c_str(), supplyCfgVal.rel); -// } -// ImGui::PopItemWidth(); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"铺粉").c_str())) { -// AxisData ad; -// vector ss = { _(u8"双向铺粉"),_(u8"单向铺粉"),_(u8"不铺粉") ,_(u8"双向铺粉2") ,_(u8"单向铺粉2"),_(u8"单向铺粉3") }; -// m_SysParamWrapper->GetAxisData(ad); -// ImGui::PushItemWidth(120); -// if (ImGui::SemicolonCombo(_(u8"铺粉类型").c_str(), &ad.CoverType, ss)) { -// m_SysParamWrapper->m_CoverType->SetValue(ad.CoverType); -// g_log->TraceInfo(_(u8"更新铺粉方式:%d").c_str(), ad.CoverType); -// } -// -// if (ImGui::InputFloat(_(u8"打印铺粉速度(mm/s)").c_str(), &ad.CoverSpeed,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_CoverSpeed->SetValue(ad.CoverSpeed); -// g_log->TraceInfo(_(u8"更新铺粉速度:%.3f").c_str(), ad.CoverSpeed); -// } -// if (ImGui::InputFloat(_(u8"打印单向铺粉返回变速(mm/s)").c_str(), &ad.CoverReturnSpeed,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_CoverReturnSpeed->SetValue(ad.CoverReturnSpeed); -// g_log->TraceInfo(_(u8"更新打印单向返回速度:%.3f").c_str(), ad.CoverReturnSpeed); -// } -// if (ImGui::InputFloat(_(u8"打印单向铺粉距离(mm)").c_str(), &ad.CoverDistance,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_CoverDistance->SetValue(ad.CoverDistance); -// g_log->TraceInfo(_(u8"更新打印单向铺粉距离:%.3f").c_str(), ad.CoverDistance); -// } -// if (ImGui::InputFloat(_(u8"打印铺粉层厚(μm)").c_str(), &ad.LayerThick,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_LayerThick->SetValue(ad.LayerThick); -// g_log->TraceInfo(_(u8"更新打印铺粉层厚:%.3f").c_str(), ad.LayerThick); -// } -// if (ImGui::InputFloat(_(u8"打印间隙补偿(μm)").c_str(), &ad.FixGap,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_FixGap->SetValue(ad.FixGap); -// g_log->TraceInfo(_(u8"更新打印间隙补偿:%.3f").c_str(), ad.FixGap); -// } -// if (ImGui::InputScalar(_(u8"打印铺粉格数").c_str(), ImGuiDataType_S16, &ad.SupplyCount, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_SupplyCount->SetValue(ad.SupplyCount); -// g_log->TraceInfo(_(u8"更新打印铺粉格数:%d").c_str(), ad.SupplyCount); -// } -// if (ImGui::InputScalar(_(u8"打印下粉时间(ms)").c_str(), ImGuiDataType_S16, &ad.SupplyTime, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_SupplyTime->SetValue(ad.SupplyTime); -// g_log->TraceInfo(_(u8"更新打印下粉时间:%d").c_str(), ad.SupplyTime); -// } -// if (ImGui::InputFloat(_(u8"铺粉调试层厚(μm)").c_str(), &ad.DebugLayerThick,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugLayerThick->SetValue(ad.DebugLayerThick); -// g_log->TraceInfo(_(u8"更新铺粉调试层厚:%.3f").c_str(), ad.DebugLayerThick); -// } -// if (ImGui::InputFloat(_(u8"铺粉调试间隙(μm)").c_str(), &ad.DebugFixGap,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugFixGap->SetValue(ad.DebugFixGap); -// g_log->TraceInfo(_(u8"更新铺粉调试间隙补偿:%.3f").c_str(), ad.DebugFixGap); -// } -// if (ImGui::InputScalar(_(u8"铺粉调试下粉时间(ms)").c_str(), ImGuiDataType_S16, &ad.DebugSupplyTime, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugSupplyTime->SetValue(ad.DebugSupplyTime); -// g_log->TraceInfo(_(u8"更新铺粉调试下粉时间:%d").c_str(), ad.DebugSupplyTime); -// } -// if (ImGui::InputScalar(_(u8"铺粉调试格数").c_str(), ImGuiDataType_S16, &ad.DebugSupplyCount, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugSupplyCount->SetValue(ad.DebugSupplyCount); -// g_log->TraceInfo(_(u8"更新铺粉调试格数:%d").c_str(), ad.DebugSupplyCount); -// } -// if (ImGui::InputFloat(_(u8"铺粉调试铺粉距离(mm)").c_str(), &ad.DebugCoverDistance,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugCoverDistance->SetValue(ad.DebugCoverDistance); -// g_log->TraceInfo(_(u8"更新铺粉调试距离:%.3f").c_str(), ad.DebugCoverDistance); -// } -// ImGui::PopItemWidth(); -// -// ImGui::Dummy(ImVec2(0, 20)); -// if (m_SignalStateWrapper->m_IsCovering->GetValue()) { -// ImGui::PushID("CoverTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str(), ImVec2(-1, 0))) { -// m_SignalStateWrapper->m_CoverTriger->SetValue(false); -// g_log->TraceInfo(_(u8"停止铺粉调试").c_str()); -// } -// ImGui::PopID(); -// } -// else { -// // if (m_Purifier->IsCoverWindSet()) -// // { -// // m_Purifier->ResetSlowWind(); -// // } -// if (ImGui::Button(_(u8"铺粉调试").c_str(), ImVec2(-1, 0))) { -// if (m_SignalStateWrapper->m_CoverEnable->GetValue()) { -// // if (m_ExtCfg->m_AutoCoverSlowWind && m_Purifier->IsWindActive()) { -// // m_Purifier->SetCoverWind(true); -// // } -// m_SignalStateWrapper->m_IsCoverDebug->SetValue(true); -// Sleep(50); -// m_SignalStateWrapper->m_ManualCoverTest->SetValue(true); -// Sleep(50); -// g_log->TraceInfo(_(u8"执行铺粉调试").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"铺粉调试条件不成立").c_str(), 3000)); -// } -// } -// } -// ImGui::EndTabItem(); -// } -// if (g_Admin > USER_ADMIN) { -// if (ImGui::BeginTabItem(_(u8"控制").c_str())) { -// /*if (ImGui::Button(_(u8"基板缸平面位置确定").c_str(), ImVec2(-1, 0))) { -// m_AxisRecordWrapper->m_PrintJackupPlatformPlanePosRecord->SetValue(true); -// Sleep(100); -// m_AxisRecordWrapper->m_PrintJackupPlatformPlanePosRecord->SetValue(false); -// m_RunCfg->m_HadSetBasePlatformPoint = true; -// }*/ -// /* if (ImGui::Button(_(u8"基板底座缸平面位置确定").c_str(), ImVec2(-1, 0))) { -// m_AxisRecordWrapper->m_PrintJackupPlatformBottomPosRecord->SetValue(true); -// m_AxisRecordWrapper->m_PrintJackupPlatformBottomPosRecord->SetValue(false); -// } -// */ -// -// if (m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue()) { -// ImGui::PushID("CylinderReachPrintTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str())) { -// m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue()); -// if (ImGui::Button(_(u8"移动缸体到打印位").c_str())) { -// if (m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(true); -// g_log->TraceInfo(_(u8"执行移动缸体到打印位").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"移动缸体到打印位条件不成立").c_str(), 3000)); -// } -// m_RunCfg->m_HadSetBasePlatformPoint = false; -// } -// ImGui::PopItemFlag(); -// } -// -// if (m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue()) { -// ImGui::PushID("CylinderReachCleanTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str())) { -// m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(false); -// -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue()); -// if (ImGui::Button(_(u8"移动缸体到清粉位").c_str())) { -// if (m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(true); -// g_log->TraceInfo(_(u8"执行移动缸体到清粉位").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"移动缸体到清粉位条件不成立").c_str(), 3000)); -// } -// -// } -// ImGui::PopItemFlag(); -// } -// -// -// if (m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue()) { -// ImGui::PushID("CylinderPrintLoadTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str())) { -// m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue()); -// if (ImGui::Button(_(u8"缸体打印位装载").c_str())) { -// if (m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(true); -// g_log->TraceInfo(_(u8"执行缸体打印位装载").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"缸体打印位装载条件不成立").c_str(), 3000)); -// } -// m_RunCfg->m_HadSetBasePlatformPoint = false; -// } -// ImGui::PopItemFlag(); -// } -// -// if (m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue()) { -// ImGui::PushID("CylinderConnectCleanBoxTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str())) { -// m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue()); -// if (ImGui::Button(_(u8"缸体连接清粉箱").c_str())) { -// if (m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(true); -// g_log->TraceInfo(_(u8"执行缸体连接清粉箱").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"缸体连接清粉箱条件不成立").c_str(), 3000)); -// } -// } -// ImGui::PopItemFlag(); -// } -// -// if (m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue()) { -// ImGui::PushID("CylinderPrintUnloadTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str())) { -// m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue()); -// if (ImGui::Button(_(u8"缸体打印位卸载").c_str())) { -// if (m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(true); -// g_log->TraceInfo(_(u8"执行缸体打印位卸载").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"缸体打印位卸载条件不成立").c_str(), 3000)); -// } -// m_RunCfg->m_HadSetBasePlatformPoint = false; -// } -// ImGui::PopItemFlag(); -// } -// -// if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue()) { -// ImGui::PushID("CylinderDisconnectCleanBoxTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str())) { -// m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue()); -// if (ImGui::Button(_(u8"缸体脱离清粉箱").c_str())) { -// if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(true); -// g_log->TraceInfo(_(u8"执行缸体脱离清粉箱").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"缸体脱离清粉箱条件不成立").c_str(), 3000)); -// } -// } -// ImGui::PopItemFlag(); -// } -// -// -// if (m_SignalStateWrapper->m_MoldConnectCylinderRun->GetValue()) { -// ImGui::PushID("MoldConnectCylinderTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str())) { -// m_SignalStateWrapper->m_MoldConnectCylinderTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_MoldConnectCylinderEnable->GetValue()); -// if (ImGui::Button(_(u8"打印升降轴连接缸体").c_str())) { -// if (m_SignalStateWrapper->m_MoldConnectCylinderEnable->GetValue()) { -// m_SignalStateWrapper->m_MoldConnectCylinderTriger->SetValue(true); -// g_log->TraceInfo(_(u8"执行打印升降轴连接缸体").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"打印升降轴连接缸体条件不成立").c_str(), 3000)); -// } -// m_RunCfg->m_HadSetBasePlatformPoint = false; -// } -// ImGui::PopItemFlag(); -// } -// -// if (m_SignalStateWrapper->m_MoldDisconnectCylinderRun->GetValue()) { -// ImGui::PushID("MoldDisconnectCylinderTrigerStop"); -// if (ImGui::Button(_(u8"停止").c_str())) { -// m_SignalStateWrapper->m_MoldDisconnectCylinderTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_MoldDisconnectCylinderEnable->GetValue()); -// if (ImGui::Button(_(u8"打印升降轴脱离缸体").c_str())) { -// if (m_SignalStateWrapper->m_MoldDisconnectCylinderEnable->GetValue()) { -// m_SignalStateWrapper->m_MoldDisconnectCylinderTriger->SetValue(true); -// m_SignalStateWrapper->m_MoldDeoxygenFinished->SetValue(false); -// g_log->TraceInfo(_(u8"执行打印升降轴脱离缸体").c_str()); -// } -// else { -// g_Toast->AddToast(new ToastBean(_(u8"打印升降轴脱离缸体条件不成立").c_str(), 3000)); -// } -// m_RunCfg->m_HadSetBasePlatformPoint = false; -// } -// ImGui::PopItemFlag(); -// } -// -// -// ImGui::EndTabItem(); -// } -// } -// ImGui::EndTabBar(); -// ImGui::EndChild(); -// -// -// if (ImGui::Button(_(u8"运动急停").c_str(), ImVec2(tabwidth, 0))) { -// m_Axis->StopAll(); -// g_log->TraceInfo(_(u8"运动急停").c_str()); -// } -// -// ImGui::EndGroup(); -// ImGui::SameLine(); -// } -// -// ImGui::BeginChild("AxisCtrl", ImVec2(840, 670)); -// if (m_PowderAssist.isLeftExpand) { -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::HNARROW]->GetTex(), ImVec2(38, 50), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_PowderAssist.isLeftExpand = !m_PowderAssist.isLeftExpand; -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::HEXPAND]->GetTex(), ImVec2(38, 50), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_PowderAssist.isLeftExpand = !m_PowderAssist.isLeftExpand; -// } -// } -// -// ImGui::SameLine(); -// ImGui::BeginGroup(); -// if (ImGui::ToggleButton(_(u8"连续运动").c_str(), continue_move)) -// continue_move = !continue_move; -// ImGui::SameLine(); -// ImGui::Text(_(u8"连续运动").c_str()); -// -// ImGui::Dummy(ImVec2(0, 250)); -// /* -// */ -// -// if (ImGui::ImageButton(chartletManager->m_LoadOut->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// LoadOut(); -// ImGui::OpenPopup(_(u8"移载载出").c_str()); -// g_log->TraceInfo(_(u8"执行移出").c_str()); -// } -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"载出").c_str()); -// } -// ImGui::SameLine(); -// if (ImGui::ImageButton(chartletManager->m_LoadIn->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// LoadIn(); -// ImGui::OpenPopup(_(u8"移载载入").c_str()); -// g_log->TraceInfo(_(u8"执行移入").c_str()); -// } -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"载入").c_str()); -// } -// -// if (ImGui::BeginPopupModal(_(u8"移载载入").c_str(), NULL, ImGuiWindowFlags_AlwaysAutoResize)) { -// if (GetLoadInProcStep() == In_Start) { -// ImGui::Text(_(u8"移载开始载入").c_str()); -// } -// if (GetLoadInProcStep() == In_CylinderDisconnectCleanBox) { -// ImGui::Text(_(u8"缸体与清粉箱分离中").c_str()); -// } -// if (GetLoadInProcStep() == In_CylinderReachPrint) { -// ImGui::Text(_(u8"缸体到打印位运行中").c_str()); -// } -// if (GetLoadInProcStep() == In_CylinderPrintLoad) { -// ImGui::Text(_(u8"缸体打印位装载运行中").c_str()); -// } -// if (GetLoadInProcStep() == In_MoldConnectCylinder) { -// ImGui::Text(_(u8"打印升降轴连接缸体运行中").c_str()); -// } -// -// if (GetLoadInResult() == In_Intercept) { -// ImGui::TextColored(Toast::COLOR_ORANGE, GetLoadInfo().c_str()); -// if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// else if (GetLoadInResult() == In_Success) { -// ImGui::TextColored(Toast::COLOR_GREEN, GetLoadInfo().c_str()); -// if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// else if (GetLoadInResult() > In_Success) { -// ImGui::TextColored(Toast::COLOR_RED, GetLoadInfo().c_str()); -// if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// -// if (IsLoadIn()) { -// if (ImGui::Button(_(u8"中断载入").c_str(), ImVec2(-1, 0))) -// { -// InterceptLoad(); -// } -// } -// ImGui::EndPopup(); -// } -// -// if (ImGui::BeginPopupModal(_(u8"移载载出").c_str(), NULL, ImGuiWindowFlags_AlwaysAutoResize)) { -// if (GetLoadOutProcSetp() == Out_Start) -// { -// ImGui::Text(_(u8"移载开始载出").c_str()); -// } -// if (GetLoadOutProcSetp() == Out_MoldDisconnectCylinder) -// { -// ImGui::Text(_(u8"打印升降轴脱离缸体运行中").c_str()); -// } -// if (GetLoadOutProcSetp() == Out_CylinderPrintUnload) -// { -// ImGui::Text(_(u8"缸体打印位卸载运行中").c_str()); -// } -// if (GetLoadOutProcSetp() == Out_CylinderReachClean) -// { -// ImGui::Text(_(u8"缸体到清粉位运行中").c_str()); -// } -// if (GetLoadOutProcSetp() == Out_CylinderConnectCleanBox) -// { -// ImGui::Text(_(u8"缸体与清粉箱连接中").c_str()); -// } -// if (GetLoadOutProcSetp() == Out_CylinderReachHand) -// { -// ImGui::Text(_(u8"缸体与吊装位运行中").c_str()); -// } -// -// if (GetLoadOutProcSetp() == Out_CylinderDisconnectCleanBox) -// { -// ImGui::Text(_(u8"缸体与清粉箱分离中").c_str()); -// } -// -// -// if (IsWaitConnectBoxCommit()) { -// if (ImGui::Button(_(u8"执行缸体与清粉箱连接").c_str())) -// { -// SetWaitConnectBoxCommit(false); -// } -// } -// -// -// if (GetLoadOutResult() == Out_Intercept) { -// ImGui::TextColored(Toast::COLOR_ORANGE, GetLoadInfo().c_str()); -// if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// else if (GetLoadOutResult() == Out_Success) { -// ImGui::TextColored(Toast::COLOR_GREEN, GetLoadInfo().c_str()); -// if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// else if (GetLoadOutResult() > Out_Success) { -// ImGui::TextColored(Toast::COLOR_RED, GetLoadInfo().c_str()); -// if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// -// if (IsLoadOut()) { -// if (ImGui::Button(_(u8"中断载出").c_str(), ImVec2(-1, 0))) -// { -// InterceptLoad(); -// } -// } -// -// ImGui::EndPopup(); -// } -// -// -// ImGui::Dummy(ImVec2(0, 80)); -// ImGui::RadioButton(_(u8"移载轴").c_str(), &kb, GTS_AXIS_ID_LOAD); -// if (IsLoadAxisCanMoveLeft()) -// { -// ImGui::PushID("LoadMovePointLeft"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); -// g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移载轴左移 %.3fmm").c_str(), loadCfgVal.rel / 1000.0f); -// } -// if (kb == GTS_AXIS_ID_LOAD && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { -// m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); -// g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetLoadAxisCanotMoveLeftInfo().c_str()); -// } -// } -// -// ImGui::SameLine(); -// if (IsLoadAxisCanMoveRight()) -// { -// ImGui::PushID("LoadMovePointRight"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); -// g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移载轴右移 %.3fmm").c_str(), loadCfgVal.rel); -// } -// if (kb == GTS_AXIS_ID_LOAD && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) { -// m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); -// g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetLoadAxisCanotMoveRightInfo().c_str()); -// } -// } -// -// if (IsLoadAxisCanMoveLeft()) { -// ImGui::PushID("LoadMoveLimitLeft"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// if (!m_PowderAssist.isLoadLeftRepeat) { -// m_PowderAssist.isLoadLeftRepeat = true; -// m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); -// g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), load->GetShowPos()); -// } -// } -// else { -// if (m_PowderAssist.isLoadLeftRepeat) -// { -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); -// m_PowderAssist.isLoadLeftRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移载轴左连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetLoadAxisCanotMoveLeftInfo().c_str()); -// } -// if (m_PowderAssist.isLoadLeftRepeat) { -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); -// m_PowderAssist.isLoadLeftRepeat = false; -// } -// } -// -// if (kb == GTS_AXIS_ID_LOAD && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { -// if (IsLoadAxisCanMoveLeft()) { -// m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); -// g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), load->GetShowPos()); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveLeftInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_LeftArrow))) -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); -// } -// -// ImGui::SameLine(); -// if (IsLoadAxisCanMoveRight()) { -// ImGui::PushID("LoadMoveLimitRight"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// if (!m_PowderAssist.isLoadRightRepeat) { -// m_PowderAssist.isLoadRightRepeat = true; -// m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); -// g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), load->GetShowPos()); -// } -// -// } -// else { -// if (m_PowderAssist.isLoadRightRepeat) -// { -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); -// m_PowderAssist.isLoadRightRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移载轴右连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetLoadAxisCanotMoveRightInfo().c_str()); -// } -// if (m_PowderAssist.isLoadRightRepeat) { -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); -// m_PowderAssist.isLoadRightRepeat = false; -// } -// } -// -// if (kb == GTS_AXIS_ID_LOAD && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) -// { -// if (IsLoadAxisCanMoveRight()) { -// m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); -// g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), load->GetShowPos()); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveRightInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_RightArrow))) -// { -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); -// } -// } -// ImGui::PushID("load_to_zero"); -// if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// load->SetZeroPos(); -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移栽轴位置清零").c_str()); -// } -// -// ImGui::EndGroup(); -// -// -// ImGui::SameLine(); -// ImGui::BeginGroup(); -// -// //ImGui::Dummy(ImVec2(500,1)); -// ImGui::BeginChild("SupplyCtrl", ImVec2(500, 160)); -// ImGui::BeginGroup(); -// ImGui::Text(_(u8"移栽轴:%.3f").c_str(), load->GetShowPos() / 1000.0f); -// ImGui::Text(_(u8"成型缸:%.3f").c_str(), mold->GetShowPos() / 1000.0f); -// ImGui::Text(_(u8"铺粉臂:%.3f").c_str(), arm->GetShowPos() / 1000.0f); -// ImGui::Text(_(u8"清粉位:%.3f").c_str(), clean->GetShowPos() / 1000.0f); -// ImGui::EndGroup(); -// ImGui::SameLine(350); -// ImGui::BeginGroup(); -// ImGui::RadioButton(_(u8"供粉轴").c_str(), &kb, GTS_AXIS_ID_SUPPLY); -// -// -// ImGui::PushID("SupplyMovePointFront"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_Axis->m_Supply->MovPoint(AxisConfig::ActiveDirect::FRONT); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"下粉轴前转%.2f格").c_str(), supplyCfgVal.rel); -// } -// if (kb == GTS_AXIS_ID_SUPPLY && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// m_Axis->m_Supply->MovPoint(AxisConfig::ActiveDirect::FRONT); -// } -// } -// ImGui::SameLine(); -// -// ImGui::PushID("SupplyMoveLimitFront"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// if (!m_PowderAssist.isSupplyNegativeRepeat) { -// m_PowderAssist.isSupplyNegativeRepeat = true; -// m_Axis->m_Supply->MovLimitStart(AxisConfig::ActiveDirect::FRONT); -// //OutputDebugString("left\n"); -// } -// } -// else { -// if (m_PowderAssist.isSupplyNegativeRepeat) -// { -// m_Axis->m_Supply->MovLimitStop(AxisConfig::ActiveDirect::FRONT); -// m_PowderAssist.isSupplyNegativeRepeat = false; -// //OutputDebugString("stop\n"); -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"供粉轴左连续").c_str()); -// } -// if (kb == GTS_AXIS_ID_SUPPLY && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// m_Axis->m_Supply->MovLimitStart(AxisConfig::ActiveDirect::FRONT); -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) -// m_Axis->m_Supply->MovLimitStop(AxisConfig::ActiveDirect::FRONT); -// } -// -// ImGui::EndGroup(); -// ImGui::EndChild(); -// -// MotionDrawAssist assit; -// AxisStateValue loadvalue; -// load->GetValue(loadvalue); -// AxisData axisData; -// m_SysParamWrapper->GetAxisData(axisData); -// float loadposdif = axisData.LoadAxisTrackCleanPos - axisData.LoadAxisTrackPrintPos; -// if (loadposdif != 0.0f)assit.loadRPos = (loadvalue.Pos - axisData.LoadAxisTrackPrintPos) / loadposdif; -// else assit.loadRPos = 0.0f; -// -// assit.loadRPos = assit.loadRPos > 1.0f ? 1.0f : assit.loadRPos; -// assit.loadRPos = assit.loadRPos < 0.0f ? 0.0f : assit.loadRPos; -// -// /*assit.loadRPos = load->m_RPos>1.0f ? 1.0f : load->m_RPos; -// int cylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); -// if (cylinderState == CylinderInCleanUnConnectBox || -// cylinderState == CylinderInCleanConnectedBox || -// cylinderState == CylinderInHandHasCylinder || -// cylinderState == CylinderInHandNoCylinder) { -// assit.loadRPos = 1.0f; -// }*/ -// -// assit.moldRpos = mold->m_RPos>1.0f ? 1.0f : mold->m_RPos; -// assit.armRPos = arm->m_RPos; -// assit.isCleanPressure = m_IOCfgWrapper->m_CleannerPressOn->IsActive(); -// assit.isPrintPressure = m_IOCfgWrapper->m_PrintPressOn->IsActive(); -// assit.isPrintMoldSupprt = m_IOCfgWrapper->m_PrintSupportCylinderOn->IsActive(); -// assit.isPrintJackup = m_IOCfgWrapper->m_PrintJackUpOn->IsActive(); -// assit.isInPrintPos = (m_SignalState.m_CylinderState == CylinderInPrintLoaded || m_SignalState.m_CylinderState == CylinderInPrintUnLoaded); -// assit.isCleanClose = true; -// //if (m_IOCfgWrapper->m_Clean3RCylinderContact)assit.isCleanConnect = m_IOCfgWrapper->m_Clean3RCylinderContact->IsActive(); -// ImGui::Powder(assit); -// ImGui::EndGroup(); -// -// ImGui::SameLine(); -// ImGui::BeginGroup(); -// ImGui::Dummy(ImVec2(0, 170)); -// ImGui::RadioButton(_(u8"铺粉臂").c_str(), &kb, GTS_AXIS_ID_ARM); -// -// if (IsArmCanMoveBack()) { -// ImGui::PushID("ArmMovPointBack"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::BACK); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴后移 %.3fmm").c_str(), armCfgVal.rel / 1000.0f); -// } -// if (kb == GTS_AXIS_ID_ARM && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { -// m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::BACK); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); -// } -// } -// -// ImGui::SameLine(); -// if (IsArmCanMoveBack()) { -// ImGui::PushID("ArmMoveLimitBack"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// if (!m_PowderAssist.isArmBackRepeat) { -// m_PowderAssist.isArmBackRepeat = true; -// m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::BACK); -// } -// } -// else { -// if (m_PowderAssist.isArmBackRepeat) -// { -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); -// m_PowderAssist.isArmBackRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴后连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); -// } -// if (m_PowderAssist.isArmBackRepeat) { -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); -// m_PowderAssist.isArmBackRepeat = false; -// } -// } -// if (kb == GTS_AXIS_ID_ARM && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) -// { -// if (IsArmCanMoveBack()) { -// m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::BACK); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetArmCanotMoveBackInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_UpArrow))) -// { -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); -// } -// } -// -// -// if (IsArmCanMoveFront()) { -// ImGui::PushID("ArmMovPointFront"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::FRONT); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴前移 %.3fmm").c_str(), armCfgVal.rel / 1000.0f); -// } -// if (kb == GTS_AXIS_ID_ARM && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::FRONT); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetArmCanotMoveFrontInfo().c_str()); -// } -// } -// -// ImGui::SameLine(); -// if (IsArmCanMoveFront()) { -// ImGui::PushID("ArmMoveLimitFront"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// if (!m_PowderAssist.isArmFrontRepeat) { -// m_PowderAssist.isArmFrontRepeat = true; -// m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::FRONT); -// } -// } -// else { -// if (m_PowderAssist.isArmFrontRepeat) -// { -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); -// m_PowderAssist.isArmFrontRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴前连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); -// } -// if (m_PowderAssist.isArmFrontRepeat) { -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); -// m_PowderAssist.isArmFrontRepeat = false; -// } -// } -// if (kb == GTS_AXIS_ID_ARM && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// if (IsArmCanMoveFront()) { -// m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::FRONT); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetArmCanotMoveBackInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); -// } -// -// ImGui::PushID("arm_to_zero"); -// if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// arm->SetZeroPos(); -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴位置清零").c_str()); -// } -// -// if (m_AxisRecordWrapper->m_PCArmOverLimitAlarm->GetValue()) -// { -// ImGui::SameLine(); -// ImGui::PushID("arm_alarm_remove"); -// if (ImGui::ImageButton(chartletManager->m_AlarmRemove->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_AxisRecordWrapper->m_PCArmOverLimitAlarmRemove->SetValue(true); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴越限解除").c_str()); -// } -// } -// -// -// ImGui::Dummy(ImVec2(0, 35)); -// ImGui::RadioButton(_(u8"成型缸").c_str(), &kb, GTS_AXIS_ID_MOLD); -// if (IsMoldCanMoveUp()) { -// ImGui::PushID("MoldMovePointUp"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); -// g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸上移 %.3fmm").c_str(), moldCfgVal.rel / 1000.0f); -// } -// if (kb == GTS_AXIS_ID_MOLD && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { -// m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); -// g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetMoldCanotUpInfo().c_str()); -// } -// } -// -// ImGui::SameLine(); -// if (IsMoldCanMoveUp()) { -// ImGui::PushID("MoldMoveLimitUp"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// if (!m_PowderAssist.isMoldUpRepeat) { -// m_PowderAssist.isMoldUpRepeat = true; -// m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); -// g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), mold->GetShowPos()); -// } -// } -// else { -// if (m_PowderAssist.isMoldUpRepeat) -// { -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); -// m_PowderAssist.isMoldUpRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸上连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetMoldCanotUpInfo().c_str()); -// } -// if (m_PowderAssist.isMoldUpRepeat) { -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); -// m_PowderAssist.isMoldUpRepeat = false; -// } -// } -// if (kb == GTS_AXIS_ID_MOLD && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { -// if (IsMoldCanMoveUp()) { -// m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); -// g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), mold->GetShowPos()); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetMoldCanotUpInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_UpArrow))) -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); -// } -// -// if (IsMoldCanMoveDown()) { -// ImGui::PushID("MoldMovePointDown"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); -// g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸下移 %.3fmm").c_str(), moldCfgVal.rel / 1000.0f); -// } -// if (kb == GTS_AXIS_ID_MOLD && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); -// g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetMoldCanotDownInfo().c_str()); -// } -// } -// ImGui::SameLine(); -// -// if (IsMoldCanMoveDown()) { -// ImGui::PushID("MoldMoveLimitDown"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// if (!m_PowderAssist.isMoldDownRepeat) { -// m_PowderAssist.isMoldDownRepeat = true; -// m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); -// g_log->TraceInfo(_(u8"升降[%.3f]往下连续移动").c_str(), mold->GetShowPos()); -// } -// } -// else { -// if (m_PowderAssist.isMoldDownRepeat) -// { -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); -// m_PowderAssist.isMoldDownRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸下连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetMoldCanotDownInfo().c_str()); -// } -// if (m_PowderAssist.isMoldDownRepeat) { -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); -// m_PowderAssist.isMoldDownRepeat = false; -// } -// } -// if (kb == GTS_AXIS_ID_MOLD && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) -// { -// if (IsMoldCanMoveDown()) { -// m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); -// g_log->TraceInfo(_(u8"升降[%.3f]往连续下移动").c_str(), mold->GetShowPos()); -// } -// else -// { -// g_Toast->AddToast(new ToastBean(GetMoldCanotDownInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) -// { -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); -// } -// } -// ImGui::PushID("mold_to_zero"); -// if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// mold->SetZeroPos(); -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸位置清零").c_str()); -// } -// ImGui::EndGroup(); -// -// ImGui::EndChild(); -// -// ImGui::End(); -// -//} +void HBD1500::DrawPowderCtrl(bool* winShow) +{ + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(4, 8)); + ImGui::Begin(_(u8"铺粉装置调试").c_str(), winShow, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoNav); + ImGui::PopStyleVar(); + + int dstepflag = 1; + double fstepflag = 1.0; + long lstepflag = 1; + static int kb = GTS_AXIS_ID_ARM; + static bool continue_move = false; + + //CoverCfg* coverCfg = m_CoverCfg; + MainAxisState* mold = m_Axis->m_Mold->GetState(); + MainAxisState* clean = m_Axis->m_Clean->GetState(); + AxisState* load = m_Axis->m_Load->GetState(); + AxisState* arm = m_Axis->m_Arm->GetState(); + AxisState* supply = m_Axis->m_Supply->GetState(); + + AxisConfig* armCfg = m_Axis->m_Arm->GetConfig(); + AxisConfig::CfgValue armCfgVal; + armCfg->GetValue(armCfgVal); + AxisConfig* moldCfg = m_Axis->m_Mold->GetConfig(); + AxisConfig::CfgValue moldCfgVal; + moldCfg->GetValue(moldCfgVal); + AxisConfig* cleanCfg = m_Axis->m_Clean->GetConfig(); + AxisConfig::CfgValue cleanCfgVal; + cleanCfg->GetValue(cleanCfgVal); + AxisConfig* loadCfg = m_Axis->m_Load->GetConfig(); + AxisConfig::CfgValue loadCfgVal; + loadCfg->GetValue(loadCfgVal); + AxisConfig* supplyCfg = m_Axis->m_Supply->GetConfig(); + AxisConfig::CfgValue supplyCfgVal; + supplyCfg->GetValue(supplyCfgVal); + + ParamLimitCfg paramLimitfg; + m_ParamLimitCfg->GetCfg(paramLimitfg); + + ChartletManager* chartletManager = ChartletManager::GetInstance(); + ImVec2 wpos = ImGui::GetWindowPos(); + SignalService::GetInstance().GetSignalState(m_SignalState); + if (m_PowderAssist.isLeftExpand) + { + ImGui::BeginGroup(); + vector tabs; + tabs.push_back(_(u8"成型缸")); + tabs.push_back(_(u8"移载轴")); + tabs.push_back(_(u8"铺粉轴")); + tabs.push_back(_(u8"供粉轴")); + tabs.push_back(_(u8"铺粉")); + tabs.push_back(_(u8"控制")); + float tabwidth = 0; + for (size_t tindex = 0; tindex < tabs.size(); tindex++) { + tabwidth = tabwidth + ImGui::CalcTextSize(tabs[tindex].c_str(), 0).x + 15; + } + ImVec2 showSize = ImVec2(tabwidth, 600); + + ImGui::BeginChild("AxisSettingChild", showSize, false, ImGuiWindowFlags_NoNav); + ImGui::BeginTabBar("AxisSetting"); + if (ImGui::BeginTabItem(_(u8"成型缸").c_str())) { + ImGui::PushItemWidth(100); + if (ImGui::InputFloatEx(_(u8"速度(mm/s)").c_str(), &moldCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_MoldSpeedMin, ¶mLimitfg.m_MoldSpeedMax)) + { + moldCfg->m_Speed->SetValue(moldCfgVal.speed); + g_log->TraceInfo(_(u8"更改成型缸速度:%.3f").c_str(), moldCfgVal.speed); + } + if (ImGui::InputFloatEx(_(u8"加速度(m/s²)").c_str(), &moldCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_MoldAccMin, ¶mLimitfg.m_MoldAccMax)) + { + moldCfg->m_Acc->SetValue(moldCfgVal.acc); + g_log->TraceInfo(_(u8"更改成型缸加速度:%.3f").c_str(), moldCfgVal.acc); + } + if (ImGui::InputFloatEx(_(u8"减速度(m/s2)").c_str(), &moldCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_MoldDecMin, ¶mLimitfg.m_MoldDecMax)) + { + moldCfg->m_Dec->SetValue(moldCfgVal.dec); + g_log->TraceInfo(_(u8"更新成型缸减速度:%.3f").c_str(), moldCfgVal.dec); + } + if (ImGui::InputFloatEx(_(u8"点动行程(μm)").c_str(), &moldCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_MoldPointStepMin, ¶mLimitfg.m_MoldPointStepMax)) { + moldCfg->m_RefDistance->SetValue(moldCfgVal.rel); + g_log->TraceInfo(_(u8"更改成型缸点动行程:%.3f").c_str(), moldCfgVal.rel); + } + ImGui::PopItemWidth(); + + if ((g_Admin > USER_ADMIN)) { + ImGui::Dummy(ImVec2(0, 20)); + if (mold->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 0) + { + if (ImGui::ImageButton(chartletManager->m_MoldMoveSeping->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断打印升降轴移动到缸体分离位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印升降轴移动到缸体分离位").c_str()); + } + else { + ImGui::ImageButton(chartletManager->m_MoldMoveSepDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印升降轴移动到缸体分离位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_MoldMoveSepEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_MoldAbsTestPos->SetValue(0); + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行打印升降轴移动到缸体分离位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印升降轴移动到缸体分离位").c_str()); + } + + ImGui::SameLine(); + if (mold->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 1) + { + if (ImGui::ImageButton(chartletManager->m_MoldMove3RSeping->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断打印升降轴移动到3R脱离位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断打印升降轴移动到3R脱离位").c_str()); + } + else { + ImGui::ImageButton(chartletManager->m_MoldMove3RSepDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印升降轴移动到3R脱离位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_MoldMove3RSepEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_MoldAbsTestPos->SetValue(1); + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行打印升降轴移动到3R脱离位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印升降轴移动到3R脱离位").c_str()); + } + ImGui::SameLine(); + if (mold->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 2) + { + if (ImGui::ImageButton(chartletManager->m_MoldMoveDeoxygening->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断打印升降轴移动到除氧最低点").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断打印升降轴移动到除氧最低点").c_str()); + } + else { + ImGui::ImageButton(chartletManager->m_MoldMoveDeoxygenDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印升降轴移动到除氧最低点").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_MoldMoveDeoxygenEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_MoldAbsTestPos->SetValue(2); + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行打印升降轴移动到除氧最低点").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印升降轴移动到除氧最低点").c_str()); + } + ImGui::SameLine(); + if (mold->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 3) + { + if (ImGui::ImageButton(chartletManager->m_MoldMoveDownesting->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断打印轴移动到底座缸平面位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断打印轴移动到底座缸平面位").c_str()); + } + else { + ImGui::ImageButton(chartletManager->m_MoldMoveDownestDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印轴移动到底座缸平面位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_MoldMoveDownestEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_MoldAbsTestPos->SetValue(3); + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行打印轴移动到底座缸平面位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印轴移动到底座缸平面位").c_str()); + } + ImGui::SameLine(); + if (mold->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 4) + { + if (ImGui::ImageButton(chartletManager->m_MoldMovePlatforming->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断打印轴移动到基板缸平面位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断打印轴移动到基板缸平面位").c_str()); + + } + else { + ImGui::ImageButton(chartletManager->m_MoldMovePlatformDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行打印轴移动到基板缸平面位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_MoldAbsTestPos->SetValue(4); + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行打印轴移动到基板缸平面位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"打印轴移动到基板缸平面位").c_str()); + } + } + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { + ImGui::PushItemWidth(100); + if (ImGui::InputFloatEx(_(u8"速度(mm/s)").c_str(), &loadCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_LoadSpeedMin, ¶mLimitfg.m_LoadSpeedMax)) + { + loadCfg->m_Speed->SetValue(loadCfgVal.speed); + g_log->TraceInfo(_(u8"更新移载轴速度:%.3f").c_str(), loadCfgVal.speed); + } + if (ImGui::InputFloatEx(_(u8"加速度(m/s²)").c_str(), &loadCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_LoadAccMin, ¶mLimitfg.m_LoadAccMax)) + { + loadCfg->m_Acc->SetValue(loadCfgVal.acc); + g_log->TraceInfo(_(u8"更新移载轴加速度:%.3f").c_str(), loadCfgVal.acc); + } + if (ImGui::InputFloatEx(_(u8"减速度(m/s2)").c_str(), &loadCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_LoadDecMin, ¶mLimitfg.m_LoadDecMax)) + { + loadCfg->m_Dec->SetValue(loadCfgVal.dec); + g_log->TraceInfo(_(u8"更新移载轴减速度:%.3f").c_str(), loadCfgVal.dec); + } + if (ImGui::InputFloatEx(_(u8"点动行程(μm)").c_str(), &loadCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue, ¶mLimitfg.m_LoadPointStepMin, ¶mLimitfg.m_LoadPointStepMax)) { + loadCfg->m_RefDistance->SetValue(loadCfgVal.rel); + g_log->TraceInfo(_(u8"更新移载轴点动距离:%.3f").c_str(), loadCfgVal.rel); + } + ImGui::PopItemWidth(); + if (g_Admin > USER_ADMIN) { + ImGui::Dummy(ImVec2(0, 20)); + + + /* + if (load->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 3) + { + if (ImGui::ImageButton(chartletManager->m_LoadHandPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断移载轴移动到轨道吊装位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断移载轴移动到轨道吊装位").c_str()); + + } + else { + ImGui::ImageButton(chartletManager->m_LoadHandPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行移载轴移动到轨道吊装位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_LoadHandPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(3); + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行移载轴移动到轨道吊装位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"移载轴移动到轨道吊装位").c_str()); + } + + ImGui::SameLine(); + + */ + if (load->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 1) + { + if (ImGui::ImageButton(chartletManager->m_LoadCleanPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断移载轴移动到轨道清粉位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断移载轴移动到轨道清粉位").c_str()); + + } + else { + ImGui::ImageButton(chartletManager->m_LoadCleanPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行移载轴移动到轨道清粉位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_LoadCleanPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(1); + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行移载轴移动到轨道清粉位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"移载轴移动到轨道清粉位").c_str()); + } + ImGui::SameLine(); + if (load->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 0) + { + if (ImGui::ImageButton(chartletManager->m_LoadPrintPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断移载轴移动到轨道打印位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断移载轴移动到轨道打印位").c_str()); + + } + else { + ImGui::ImageButton(chartletManager->m_LoadPrintPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行移载轴移动到轨道打印位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_LoadPrintPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(0); + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行移载轴移动到轨道打印位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"移载轴移动到轨道打印位").c_str()); + } + } + + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { + ImGui::PushItemWidth(100); + if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &armCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + armCfg->m_Speed->SetValue(armCfgVal.speed); + g_log->TraceInfo(_(u8"更新铺粉轴速度:%.3f").c_str(), armCfgVal.speed); + } + if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &armCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + armCfg->m_Acc->SetValue(armCfgVal.acc); + g_log->TraceInfo(_(u8"更新铺粉轴加速度:%.3f").c_str(), armCfgVal.acc); + } + if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &armCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + armCfg->m_Dec->SetValue(armCfgVal.dec); + g_log->TraceInfo(_(u8"更新铺粉轴减速度:%.3f").c_str(), armCfgVal.dec); + } + if (ImGui::InputScalar(_(u8"点动行程(μm)").c_str(), ImGuiDataType_Float, &armCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + armCfg->m_RefDistance->SetValue(armCfgVal.rel); + g_log->TraceInfo(_(u8"更新铺粉轴点动距离:%.3f").c_str(), armCfgVal.rel); + } + ImGui::PopItemWidth(); + if (g_Admin > USER_ADMIN) { + ImGui::Dummy(ImVec2(0, 20)); + + if (arm->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 0) + { + if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断铺粉轴移动到接粉位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断铺粉轴移动到接粉位").c_str()); + + } + else { + ImGui::ImageButton(chartletManager->m_ArmAcceptPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行铺粉轴移动到接粉位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_ArmAbsTestPos->SetValue(0); + m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行铺粉轴移动到接粉位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"铺粉轴移动到接粉位").c_str()); + } + ImGui::SameLine(); + if (arm->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 1) + { + if (ImGui::ImageButton(chartletManager->m_ArmFrontDropPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(_(u8"中断铺粉轴移动到前下粉位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"中断铺粉轴移动到前下粉位").c_str()); + + } + else { + ImGui::ImageButton(chartletManager->m_ArmFrontDropPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"不能执行铺粉轴移动到前下粉位").c_str()); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_ArmFrontDropPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_ArmAbsTestPos->SetValue(1); + m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(_(u8"执行铺粉轴移动到前下粉位").c_str()); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(_(u8"铺粉轴移动到前下粉位").c_str()); + } + } + + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { + ImGui::PushItemWidth(100); + if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &supplyCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + supplyCfg->m_Speed->SetValue(supplyCfgVal.speed); + g_log->TraceInfo(_(u8"更新下粉轴速度:%.3f").c_str(), supplyCfgVal.speed); + } + if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &supplyCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + supplyCfg->m_Acc->SetValue(supplyCfgVal.acc); + g_log->TraceInfo(_(u8"更新下粉轴加速度:%.3f").c_str(), supplyCfgVal.acc); + } + if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &supplyCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + supplyCfg->m_Dec->SetValue(supplyCfgVal.dec); + g_log->TraceInfo(_(u8"更新下粉轴减速度:%.3f").c_str(), supplyCfgVal.dec); + } + if (ImGui::InputScalar(_(u8"粉格").c_str(), ImGuiDataType_Float, &supplyCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + supplyCfg->m_RefDistance->SetValue(supplyCfgVal.rel); + g_log->TraceInfo(_(u8"更新下粉轴相对移动距离:%.3f").c_str(), supplyCfgVal.rel); + } + ImGui::PopItemWidth(); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"铺粉").c_str())) { + AxisData ad; + vector ss = { _(u8"双向铺粉"),_(u8"单向铺粉"),_(u8"不铺粉") ,_(u8"双向铺粉2") ,_(u8"单向铺粉2"),_(u8"单向铺粉3") }; + m_SysParamWrapper->GetAxisData(ad); + ImGui::PushItemWidth(120); + if (ImGui::SemicolonCombo(_(u8"铺粉类型").c_str(), &ad.CoverType, ss)) { + m_SysParamWrapper->m_CoverType->SetValue(ad.CoverType); + g_log->TraceInfo(_(u8"更新铺粉方式:%d").c_str(), ad.CoverType); + } + + if (ImGui::InputFloat(_(u8"打印铺粉速度(mm/s)").c_str(), &ad.CoverSpeed,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_CoverSpeed->SetValue(ad.CoverSpeed); + g_log->TraceInfo(_(u8"更新铺粉速度:%.3f").c_str(), ad.CoverSpeed); + } + if (ImGui::InputFloat(_(u8"打印单向铺粉返回变速(mm/s)").c_str(), &ad.CoverReturnSpeed,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_CoverReturnSpeed->SetValue(ad.CoverReturnSpeed); + g_log->TraceInfo(_(u8"更新打印单向返回速度:%.3f").c_str(), ad.CoverReturnSpeed); + } + if (ImGui::InputFloat(_(u8"打印单向铺粉距离(mm)").c_str(), &ad.CoverDistance,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_CoverDistance->SetValue(ad.CoverDistance); + g_log->TraceInfo(_(u8"更新打印单向铺粉距离:%.3f").c_str(), ad.CoverDistance); + } + if (ImGui::InputFloat(_(u8"打印铺粉层厚(μm)").c_str(), &ad.LayerThick,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_LayerThick->SetValue(ad.LayerThick); + g_log->TraceInfo(_(u8"更新打印铺粉层厚:%.3f").c_str(), ad.LayerThick); + } + if (ImGui::InputFloat(_(u8"打印间隙补偿(μm)").c_str(), &ad.FixGap,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_FixGap->SetValue(ad.FixGap); + g_log->TraceInfo(_(u8"更新打印间隙补偿:%.3f").c_str(), ad.FixGap); + } + if (ImGui::InputScalar(_(u8"打印铺粉格数").c_str(), ImGuiDataType_S16, &ad.SupplyCount, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_SupplyCount->SetValue(ad.SupplyCount); + g_log->TraceInfo(_(u8"更新打印铺粉格数:%d").c_str(), ad.SupplyCount); + } + if (ImGui::InputScalar(_(u8"打印下粉时间(ms)").c_str(), ImGuiDataType_S16, &ad.SupplyTime, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_SupplyTime->SetValue(ad.SupplyTime); + g_log->TraceInfo(_(u8"更新打印下粉时间:%d").c_str(), ad.SupplyTime); + } + if (ImGui::InputFloat(_(u8"铺粉调试层厚(μm)").c_str(), &ad.DebugLayerThick,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugLayerThick->SetValue(ad.DebugLayerThick); + g_log->TraceInfo(_(u8"更新铺粉调试层厚:%.3f").c_str(), ad.DebugLayerThick); + } + if (ImGui::InputFloat(_(u8"铺粉调试间隙(μm)").c_str(), &ad.DebugFixGap,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugFixGap->SetValue(ad.DebugFixGap); + g_log->TraceInfo(_(u8"更新铺粉调试间隙补偿:%.3f").c_str(), ad.DebugFixGap); + } + if (ImGui::InputScalar(_(u8"铺粉调试下粉时间(ms)").c_str(), ImGuiDataType_S16, &ad.DebugSupplyTime, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugSupplyTime->SetValue(ad.DebugSupplyTime); + g_log->TraceInfo(_(u8"更新铺粉调试下粉时间:%d").c_str(), ad.DebugSupplyTime); + } + if (ImGui::InputScalar(_(u8"铺粉调试格数").c_str(), ImGuiDataType_S16, &ad.DebugSupplyCount, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugSupplyCount->SetValue(ad.DebugSupplyCount); + g_log->TraceInfo(_(u8"更新铺粉调试格数:%d").c_str(), ad.DebugSupplyCount); + } + if (ImGui::InputFloat(_(u8"铺粉调试铺粉距离(mm)").c_str(), &ad.DebugCoverDistance,0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugCoverDistance->SetValue(ad.DebugCoverDistance); + g_log->TraceInfo(_(u8"更新铺粉调试距离:%.3f").c_str(), ad.DebugCoverDistance); + } + ImGui::PopItemWidth(); + + ImGui::Dummy(ImVec2(0, 20)); + if (m_SignalStateWrapper->m_IsCovering->GetValue()) { + ImGui::PushID("CoverTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str(), ImVec2(-1, 0))) { + m_SignalStateWrapper->m_CoverTriger->SetValue(false); + g_log->TraceInfo(_(u8"停止铺粉调试").c_str()); + } + ImGui::PopID(); + } + else { + // if (m_Purifier->IsCoverWindSet()) + // { + // m_Purifier->ResetSlowWind(); + // } + if (ImGui::Button(_(u8"铺粉调试").c_str(), ImVec2(-1, 0))) { + if (m_SignalStateWrapper->m_CoverEnable->GetValue()) { + // if (m_ExtCfg->m_AutoCoverSlowWind && m_Purifier->IsWindActive()) { + // m_Purifier->SetCoverWind(true); + // } + m_SignalStateWrapper->m_IsCoverDebug->SetValue(true); + Sleep(50); + m_SignalStateWrapper->m_ManualCoverTest->SetValue(true); + Sleep(50); + g_log->TraceInfo(_(u8"执行铺粉调试").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"铺粉调试条件不成立").c_str(), 3000)); + } + } + } + ImGui::EndTabItem(); + } + if (g_Admin > USER_ADMIN) { + if (ImGui::BeginTabItem(_(u8"控制").c_str())) { + /*if (ImGui::Button(_(u8"基板缸平面位置确定").c_str(), ImVec2(-1, 0))) { + m_AxisRecordWrapper->m_PrintJackupPlatformPlanePosRecord->SetValue(true); + Sleep(100); + m_AxisRecordWrapper->m_PrintJackupPlatformPlanePosRecord->SetValue(false); + m_RunCfg->m_HadSetBasePlatformPoint = true; + }*/ + /* if (ImGui::Button(_(u8"基板底座缸平面位置确定").c_str(), ImVec2(-1, 0))) { + m_AxisRecordWrapper->m_PrintJackupPlatformBottomPosRecord->SetValue(true); + m_AxisRecordWrapper->m_PrintJackupPlatformBottomPosRecord->SetValue(false); + } + */ + + if (m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue()) { + ImGui::PushID("CylinderReachPrintTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str())) { + m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue()); + if (ImGui::Button(_(u8"移动缸体到打印位").c_str())) { + if (m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(true); + g_log->TraceInfo(_(u8"执行移动缸体到打印位").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"移动缸体到打印位条件不成立").c_str(), 3000)); + } + m_RunCfg->m_HadSetBasePlatformPoint = false; + } + ImGui::PopItemFlag(); + } + + if (m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue()) { + ImGui::PushID("CylinderReachCleanTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str())) { + m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(false); + + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue()); + if (ImGui::Button(_(u8"移动缸体到清粉位").c_str())) { + if (m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(true); + g_log->TraceInfo(_(u8"执行移动缸体到清粉位").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"移动缸体到清粉位条件不成立").c_str(), 3000)); + } + + } + ImGui::PopItemFlag(); + } + + + if (m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue()) { + ImGui::PushID("CylinderPrintLoadTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str())) { + m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue()); + if (ImGui::Button(_(u8"缸体打印位装载").c_str())) { + if (m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(true); + g_log->TraceInfo(_(u8"执行缸体打印位装载").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"缸体打印位装载条件不成立").c_str(), 3000)); + } + m_RunCfg->m_HadSetBasePlatformPoint = false; + } + ImGui::PopItemFlag(); + } + + if (m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue()) { + ImGui::PushID("CylinderConnectCleanBoxTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str())) { + m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue()); + if (ImGui::Button(_(u8"缸体连接清粉箱").c_str())) { + if (m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(true); + g_log->TraceInfo(_(u8"执行缸体连接清粉箱").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"缸体连接清粉箱条件不成立").c_str(), 3000)); + } + } + ImGui::PopItemFlag(); + } + + if (m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue()) { + ImGui::PushID("CylinderPrintUnloadTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str())) { + m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue()); + if (ImGui::Button(_(u8"缸体打印位卸载").c_str())) { + if (m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(true); + g_log->TraceInfo(_(u8"执行缸体打印位卸载").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"缸体打印位卸载条件不成立").c_str(), 3000)); + } + m_RunCfg->m_HadSetBasePlatformPoint = false; + } + ImGui::PopItemFlag(); + } + + if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue()) { + ImGui::PushID("CylinderDisconnectCleanBoxTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str())) { + m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue()); + if (ImGui::Button(_(u8"缸体脱离清粉箱").c_str())) { + if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(true); + g_log->TraceInfo(_(u8"执行缸体脱离清粉箱").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"缸体脱离清粉箱条件不成立").c_str(), 3000)); + } + } + ImGui::PopItemFlag(); + } + + + if (m_SignalStateWrapper->m_MoldConnectCylinderRun->GetValue()) { + ImGui::PushID("MoldConnectCylinderTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str())) { + m_SignalStateWrapper->m_MoldConnectCylinderTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_MoldConnectCylinderEnable->GetValue()); + if (ImGui::Button(_(u8"打印升降轴连接缸体").c_str())) { + if (m_SignalStateWrapper->m_MoldConnectCylinderEnable->GetValue()) { + m_SignalStateWrapper->m_MoldConnectCylinderTriger->SetValue(true); + g_log->TraceInfo(_(u8"执行打印升降轴连接缸体").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"打印升降轴连接缸体条件不成立").c_str(), 3000)); + } + m_RunCfg->m_HadSetBasePlatformPoint = false; + } + ImGui::PopItemFlag(); + } + + if (m_SignalStateWrapper->m_MoldDisconnectCylinderRun->GetValue()) { + ImGui::PushID("MoldDisconnectCylinderTrigerStop"); + if (ImGui::Button(_(u8"停止").c_str())) { + m_SignalStateWrapper->m_MoldDisconnectCylinderTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_MoldDisconnectCylinderEnable->GetValue()); + if (ImGui::Button(_(u8"打印升降轴脱离缸体").c_str())) { + if (m_SignalStateWrapper->m_MoldDisconnectCylinderEnable->GetValue()) { + m_SignalStateWrapper->m_MoldDisconnectCylinderTriger->SetValue(true); + m_SignalStateWrapper->m_MoldDeoxygenFinished->SetValue(false); + g_log->TraceInfo(_(u8"执行打印升降轴脱离缸体").c_str()); + } + else { + g_Toast->AddToast(new ToastBean(_(u8"打印升降轴脱离缸体条件不成立").c_str(), 3000)); + } + m_RunCfg->m_HadSetBasePlatformPoint = false; + } + ImGui::PopItemFlag(); + } + + + ImGui::EndTabItem(); + } + } + ImGui::EndTabBar(); + ImGui::EndChild(); + + + if (ImGui::Button(_(u8"运动急停").c_str(), ImVec2(tabwidth, 0))) { + //m_Axis->StopAll(); + DataHandle::Instance()->SetPushMsg(AXISSTOPALL); + g_log->TraceInfo(_(u8"运动急停").c_str()); + } + + ImGui::EndGroup(); + ImGui::SameLine(); + } + + ImGui::BeginChild("AxisCtrl", ImVec2(840, 670)); + if (m_PowderAssist.isLeftExpand) { + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::HNARROW]->GetTex(), ImVec2(38, 50), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_PowderAssist.isLeftExpand = !m_PowderAssist.isLeftExpand; + } + } + else { + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::HEXPAND]->GetTex(), ImVec2(38, 50), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_PowderAssist.isLeftExpand = !m_PowderAssist.isLeftExpand; + } + } + + ImGui::SameLine(); + ImGui::BeginGroup(); + if (ImGui::ToggleButton(_(u8"连续运动").c_str(), continue_move)) + continue_move = !continue_move; + ImGui::SameLine(); + ImGui::Text(_(u8"连续运动").c_str()); + + ImGui::Dummy(ImVec2(0, 250)); + /* + */ + + MACHINEPARAM mp; + GetMachineParam(mp); + if (ImGui::ImageButton(chartletManager->m_LoadOut->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + //LoadOut(); + DataHandle::Instance()->SetPushMsg(LOADOUT); + ImGui::OpenPopup(_(u8"移载载出").c_str()); + g_log->TraceInfo(_(u8"执行移出").c_str()); + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"载出").c_str()); + } + ImGui::SameLine(); + if (ImGui::ImageButton(chartletManager->m_LoadIn->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + //LoadIn(); + DataHandle::Instance()->SetPushMsg(LOADIN); + ImGui::OpenPopup(_(u8"移载载入").c_str()); + g_log->TraceInfo(_(u8"执行移入").c_str()); + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"载入").c_str()); + } + + if (ImGui::BeginPopupModal(_(u8"移载载入").c_str(), NULL, ImGuiWindowFlags_AlwaysAutoResize)) { + if (GetLoadInProcStep() == In_Start) { + ImGui::Text(_(u8"移载开始载入").c_str()); + } + if (GetLoadInProcStep() == In_CylinderDisconnectCleanBox) { + ImGui::Text(_(u8"缸体与清粉箱分离中").c_str()); + } + if (GetLoadInProcStep() == In_CylinderReachPrint) { + ImGui::Text(_(u8"缸体到打印位运行中").c_str()); + } + if (GetLoadInProcStep() == In_CylinderPrintLoad) { + ImGui::Text(_(u8"缸体打印位装载运行中").c_str()); + } + if (GetLoadInProcStep() == In_MoldConnectCylinder) { + ImGui::Text(_(u8"打印升降轴连接缸体运行中").c_str()); + } + + if (mp.m_LoadInResut == In_Intercept) { + ImGui::TextColored(Toast::COLOR_ORANGE, mp.m_LoadInfo.c_str()); + if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + else if (mp.m_LoadInResut == In_Success) { + ImGui::TextColored(Toast::COLOR_GREEN, mp.m_LoadInfo.c_str()); + if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + else if (mp.m_LoadInResut > In_Success) { + ImGui::TextColored(Toast::COLOR_RED, mp.m_LoadInfo.c_str()); + if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + + if (IsLoadIn()) { + if (ImGui::Button(_(u8"中断载入").c_str(), ImVec2(-1, 0))) + { + DataHandle::Instance()->SetPushMsg(INTERCEPTLOAD); + //InterceptLoad(); + } + } + ImGui::EndPopup(); + } + + if (ImGui::BeginPopupModal(_(u8"移载载出").c_str(), NULL, ImGuiWindowFlags_AlwaysAutoResize)) { + if (GetLoadOutProcSetp() == Out_Start) + { + ImGui::Text(_(u8"移载开始载出").c_str()); + } + if (GetLoadOutProcSetp() == Out_MoldDisconnectCylinder) + { + ImGui::Text(_(u8"打印升降轴脱离缸体运行中").c_str()); + } + if (GetLoadOutProcSetp() == Out_CylinderPrintUnload) + { + ImGui::Text(_(u8"缸体打印位卸载运行中").c_str()); + } + if (GetLoadOutProcSetp() == Out_CylinderReachClean) + { + ImGui::Text(_(u8"缸体到清粉位运行中").c_str()); + } + if (GetLoadOutProcSetp() == Out_CylinderConnectCleanBox) + { + ImGui::Text(_(u8"缸体与清粉箱连接中").c_str()); + } + if (GetLoadOutProcSetp() == Out_CylinderReachHand) + { + ImGui::Text(_(u8"缸体与吊装位运行中").c_str()); + } + + if (GetLoadOutProcSetp() == Out_CylinderDisconnectCleanBox) + { + ImGui::Text(_(u8"缸体与清粉箱分离中").c_str()); + } + + + if (mp.m_WaitConnectBoxCommit) { + if (ImGui::Button(_(u8"执行缸体与清粉箱连接").c_str())) + { + SetWaitConnectBoxCommit(false); + } + } + + + if (mp.m_LoadOutResut == Out_Intercept) { + ImGui::TextColored(Toast::COLOR_ORANGE, mp.m_LoadInfo.c_str()); + if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + else if (mp.m_LoadOutResut == Out_Success) { + ImGui::TextColored(Toast::COLOR_GREEN, mp.m_LoadInfo.c_str()); + if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + else if (mp.m_LoadOutResut > Out_Success) { + ImGui::TextColored(Toast::COLOR_RED, mp.m_LoadInfo.c_str()); + if (ImGui::Button(_(u8"确定").c_str(), ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + + if (IsLoadOut()) { + if (ImGui::Button(_(u8"中断载出").c_str(), ImVec2(-1, 0))) + { + DataHandle::Instance()->SetPushMsg(INTERCEPTLOAD); + //InterceptLoad(); + } + } + + ImGui::EndPopup(); + } + + + ImGui::Dummy(ImVec2(0, 80)); + ImGui::RadioButton(_(u8"移载轴").c_str(), &kb, GTS_AXIS_ID_LOAD); + if (IsLoadAxisCanMoveLeft()) + { + ImGui::PushID("LoadMovePointLeft"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); + g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移载轴左移 %.3fmm").c_str(), loadCfgVal.rel / 1000.0f); + } + if (kb == GTS_AXIS_ID_LOAD && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { + m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); + g_log->TraceInfo(_(u8"移载[%.3f]往左移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetLoadAxisCanotMoveLeftInfo().c_str()); + } + } + + ImGui::SameLine(); + if (IsLoadAxisCanMoveRight()) + { + ImGui::PushID("LoadMovePointRight"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); + g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移载轴右移 %.3fmm").c_str(), loadCfgVal.rel); + } + if (kb == GTS_AXIS_ID_LOAD && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) { + m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); + g_log->TraceInfo(_(u8"移载[%.3f]往右移动%.3f").c_str(), load->GetShowPos(), loadCfgVal.rel); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetLoadAxisCanotMoveRightInfo().c_str()); + } + } + + if (IsLoadAxisCanMoveLeft()) { + ImGui::PushID("LoadMoveLimitLeft"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + if (!m_PowderAssist.isLoadLeftRepeat) { + m_PowderAssist.isLoadLeftRepeat = true; + m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); + g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), load->GetShowPos()); + } + } + else { + if (m_PowderAssist.isLoadLeftRepeat) + { + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); + m_PowderAssist.isLoadLeftRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移载轴左连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetLoadAxisCanotMoveLeftInfo().c_str()); + } + if (m_PowderAssist.isLoadLeftRepeat) { + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); + m_PowderAssist.isLoadLeftRepeat = false; + } + } + + if (kb == GTS_AXIS_ID_LOAD && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { + if (IsLoadAxisCanMoveLeft()) { + m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); + g_log->TraceInfo(_(u8"移载[%.3f]往左连续移动").c_str(), load->GetShowPos()); + } + else { + g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveLeftInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_LeftArrow))) + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); + } + + ImGui::SameLine(); + if (IsLoadAxisCanMoveRight()) { + ImGui::PushID("LoadMoveLimitRight"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + if (!m_PowderAssist.isLoadRightRepeat) { + m_PowderAssist.isLoadRightRepeat = true; + m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); + g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), load->GetShowPos()); + } + + } + else { + if (m_PowderAssist.isLoadRightRepeat) + { + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); + m_PowderAssist.isLoadRightRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移载轴右连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetLoadAxisCanotMoveRightInfo().c_str()); + } + if (m_PowderAssist.isLoadRightRepeat) { + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); + m_PowderAssist.isLoadRightRepeat = false; + } + } + + if (kb == GTS_AXIS_ID_LOAD && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) + { + if (IsLoadAxisCanMoveRight()) { + m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); + g_log->TraceInfo(_(u8"移载[%.3f]往右连续移动").c_str(), load->GetShowPos()); + } + else { + g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveRightInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_RightArrow))) + { + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); + } + } + ImGui::PushID("load_to_zero"); + if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + load->SetZeroPos(); + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移栽轴位置清零").c_str()); + } + + ImGui::EndGroup(); + + + ImGui::SameLine(); + ImGui::BeginGroup(); + + //ImGui::Dummy(ImVec2(500,1)); + ImGui::BeginChild("SupplyCtrl", ImVec2(500, 160)); + ImGui::BeginGroup(); + ImGui::Text(_(u8"移栽轴:%.3f").c_str(), load->GetShowPos() / 1000.0f); + ImGui::Text(_(u8"成型缸:%.3f").c_str(), mold->GetShowPos() / 1000.0f); + ImGui::Text(_(u8"铺粉臂:%.3f").c_str(), arm->GetShowPos() / 1000.0f); + ImGui::Text(_(u8"清粉位:%.3f").c_str(), clean->GetShowPos() / 1000.0f); + ImGui::EndGroup(); + ImGui::SameLine(350); + ImGui::BeginGroup(); + ImGui::RadioButton(_(u8"供粉轴").c_str(), &kb, GTS_AXIS_ID_SUPPLY); + + + ImGui::PushID("SupplyMovePointFront"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_Axis->m_Supply->MovPoint(AxisConfig::ActiveDirect::FRONT); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"下粉轴前转%.2f格").c_str(), supplyCfgVal.rel); + } + if (kb == GTS_AXIS_ID_SUPPLY && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + m_Axis->m_Supply->MovPoint(AxisConfig::ActiveDirect::FRONT); + } + } + ImGui::SameLine(); + + ImGui::PushID("SupplyMoveLimitFront"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + if (!m_PowderAssist.isSupplyNegativeRepeat) { + m_PowderAssist.isSupplyNegativeRepeat = true; + m_Axis->m_Supply->MovLimitStart(AxisConfig::ActiveDirect::FRONT); + //OutputDebugString("left\n"); + } + } + else { + if (m_PowderAssist.isSupplyNegativeRepeat) + { + m_Axis->m_Supply->MovLimitStop(AxisConfig::ActiveDirect::FRONT); + m_PowderAssist.isSupplyNegativeRepeat = false; + //OutputDebugString("stop\n"); + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"供粉轴左连续").c_str()); + } + if (kb == GTS_AXIS_ID_SUPPLY && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + m_Axis->m_Supply->MovLimitStart(AxisConfig::ActiveDirect::FRONT); + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) + m_Axis->m_Supply->MovLimitStop(AxisConfig::ActiveDirect::FRONT); + } + + ImGui::EndGroup(); + ImGui::EndChild(); + + MotionDrawAssist assit; + AxisStateValue loadvalue; + load->GetValue(loadvalue); + + AxisStateValue moldValue; + mold->GetValue(moldValue); + AxisStateValue armValue; + arm->GetValue(armValue); + + + AxisData axisData; + m_SysParamWrapper->GetAxisData(axisData); + float loadposdif = axisData.LoadAxisTrackCleanPos - axisData.LoadAxisTrackPrintPos; + if (loadposdif != 0.0f)assit.loadRPos = (loadvalue.Pos - axisData.LoadAxisTrackPrintPos) / loadposdif; + else assit.loadRPos = 0.0f; + + assit.loadRPos = assit.loadRPos > 1.0f ? 1.0f : assit.loadRPos; + assit.loadRPos = assit.loadRPos < 0.0f ? 0.0f : assit.loadRPos; + + /*assit.loadRPos = load->m_RPos>1.0f ? 1.0f : load->m_RPos; + int cylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); + if (cylinderState == CylinderInCleanUnConnectBox || + cylinderState == CylinderInCleanConnectedBox || + cylinderState == CylinderInHandHasCylinder || + cylinderState == CylinderInHandNoCylinder) { + assit.loadRPos = 1.0f; + }*/ + + assit.moldRpos = moldValue.RPos>1.0f ? 1.0f : moldValue.RPos; + assit.armRPos = armValue.RPos; + assit.isCleanPressure = m_IOCfgWrapper->m_CleannerPressOn->IsActive(); + assit.isPrintPressure = m_IOCfgWrapper->m_PrintPressOn->IsActive(); + assit.isPrintMoldSupprt = m_IOCfgWrapper->m_PrintSupportCylinderOn->IsActive(); + assit.isPrintJackup = m_IOCfgWrapper->m_PrintJackUpOn->IsActive(); + assit.isInPrintPos = (m_SignalState.m_CylinderState == CylinderInPrintLoaded || m_SignalState.m_CylinderState == CylinderInPrintUnLoaded); + assit.isCleanClose = true; + //if (m_IOCfgWrapper->m_Clean3RCylinderContact)assit.isCleanConnect = m_IOCfgWrapper->m_Clean3RCylinderContact->IsActive(); + ImGui::Powder(assit); + ImGui::EndGroup(); + + ImGui::SameLine(); + ImGui::BeginGroup(); + ImGui::Dummy(ImVec2(0, 170)); + ImGui::RadioButton(_(u8"铺粉臂").c_str(), &kb, GTS_AXIS_ID_ARM); + + if (IsArmCanMoveBack()) { + ImGui::PushID("ArmMovPointBack"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::BACK); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴后移 %.3fmm").c_str(), armCfgVal.rel / 1000.0f); + } + if (kb == GTS_AXIS_ID_ARM && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { + m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::BACK); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); + } + } + + ImGui::SameLine(); + if (IsArmCanMoveBack()) { + ImGui::PushID("ArmMoveLimitBack"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + if (!m_PowderAssist.isArmBackRepeat) { + m_PowderAssist.isArmBackRepeat = true; + m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::BACK); + } + } + else { + if (m_PowderAssist.isArmBackRepeat) + { + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); + m_PowderAssist.isArmBackRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴后连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); + } + if (m_PowderAssist.isArmBackRepeat) { + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); + m_PowderAssist.isArmBackRepeat = false; + } + } + if (kb == GTS_AXIS_ID_ARM && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) + { + if (IsArmCanMoveBack()) { + m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::BACK); + } + else { + g_Toast->AddToast(new ToastBean(GetArmCanotMoveBackInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_UpArrow))) + { + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); + } + } + + + if (IsArmCanMoveFront()) { + ImGui::PushID("ArmMovPointFront"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::FRONT); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴前移 %.3fmm").c_str(), armCfgVal.rel / 1000.0f); + } + if (kb == GTS_AXIS_ID_ARM && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::FRONT); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetArmCanotMoveFrontInfo().c_str()); + } + } + + ImGui::SameLine(); + if (IsArmCanMoveFront()) { + ImGui::PushID("ArmMoveLimitFront"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + if (!m_PowderAssist.isArmFrontRepeat) { + m_PowderAssist.isArmFrontRepeat = true; + m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::FRONT); + } + } + else { + if (m_PowderAssist.isArmFrontRepeat) + { + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); + m_PowderAssist.isArmFrontRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴前连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); + } + if (m_PowderAssist.isArmFrontRepeat) { + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); + m_PowderAssist.isArmFrontRepeat = false; + } + } + if (kb == GTS_AXIS_ID_ARM && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + if (IsArmCanMoveFront()) { + m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::FRONT); + } + else { + g_Toast->AddToast(new ToastBean(GetArmCanotMoveBackInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); + } + + ImGui::PushID("arm_to_zero"); + if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + arm->SetZeroPos(); + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴位置清零").c_str()); + } + + if (m_AxisRecordWrapper->m_PCArmOverLimitAlarm->GetValue()) + { + ImGui::SameLine(); + ImGui::PushID("arm_alarm_remove"); + if (ImGui::ImageButton(chartletManager->m_AlarmRemove->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_AxisRecordWrapper->m_PCArmOverLimitAlarmRemove->SetValue(true); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴越限解除").c_str()); + } + } + + + ImGui::Dummy(ImVec2(0, 35)); + ImGui::RadioButton(_(u8"成型缸").c_str(), &kb, GTS_AXIS_ID_MOLD); + if (IsMoldCanMoveUp()) { + ImGui::PushID("MoldMovePointUp"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); + g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸上移 %.3fmm").c_str(), moldCfgVal.rel / 1000.0f); + } + if (kb == GTS_AXIS_ID_MOLD && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { + m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); + g_log->TraceInfo(_(u8"升降[%.3f]往上移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetMoldCanotUpInfo().c_str()); + } + } + + ImGui::SameLine(); + if (IsMoldCanMoveUp()) { + ImGui::PushID("MoldMoveLimitUp"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + if (!m_PowderAssist.isMoldUpRepeat) { + m_PowderAssist.isMoldUpRepeat = true; + m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); + g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), mold->GetShowPos()); + } + } + else { + if (m_PowderAssist.isMoldUpRepeat) + { + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); + m_PowderAssist.isMoldUpRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸上连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetMoldCanotUpInfo().c_str()); + } + if (m_PowderAssist.isMoldUpRepeat) { + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); + m_PowderAssist.isMoldUpRepeat = false; + } + } + if (kb == GTS_AXIS_ID_MOLD && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { + if (IsMoldCanMoveUp()) { + m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); + g_log->TraceInfo(_(u8"升降[%.3f]往上连续移动").c_str(), mold->GetShowPos()); + } + else { + g_Toast->AddToast(new ToastBean(GetMoldCanotUpInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_UpArrow))) + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); + } + + if (IsMoldCanMoveDown()) { + ImGui::PushID("MoldMovePointDown"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); + g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸下移 %.3fmm").c_str(), moldCfgVal.rel / 1000.0f); + } + if (kb == GTS_AXIS_ID_MOLD && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); + g_log->TraceInfo(_(u8"升降[%.3f]往下移动%.3f").c_str(), mold->GetShowPos(), moldCfgVal.rel); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetMoldCanotDownInfo().c_str()); + } + } + ImGui::SameLine(); + + if (IsMoldCanMoveDown()) { + ImGui::PushID("MoldMoveLimitDown"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + if (!m_PowderAssist.isMoldDownRepeat) { + m_PowderAssist.isMoldDownRepeat = true; + m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); + g_log->TraceInfo(_(u8"升降[%.3f]往下连续移动").c_str(), mold->GetShowPos()); + } + } + else { + if (m_PowderAssist.isMoldDownRepeat) + { + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); + m_PowderAssist.isMoldDownRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸下连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetMoldCanotDownInfo().c_str()); + } + if (m_PowderAssist.isMoldDownRepeat) { + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); + m_PowderAssist.isMoldDownRepeat = false; + } + } + if (kb == GTS_AXIS_ID_MOLD && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) + { + if (IsMoldCanMoveDown()) { + m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); + g_log->TraceInfo(_(u8"升降[%.3f]往连续下移动").c_str(), mold->GetShowPos()); + } + else + { + g_Toast->AddToast(new ToastBean(GetMoldCanotDownInfo(), 5000, Toast::COLOR_ORANGE)); + } + + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) + { + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); + } + } + ImGui::PushID("mold_to_zero"); + if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + mold->SetZeroPos(); + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸位置清零").c_str()); + } + ImGui::EndGroup(); + + ImGui::EndChild(); + + ImGui::End(); + +} void HBD1500::DrawAnalogExt() { @@ -4397,161 +4413,161 @@ void HBD1500::DrawAnalogExt() ImGui::EndGroup(); } -//void HBD1500::DrawServoState(bool* winShow) -//{ -// ImGui::Begin(_(u8"伺服状态").c_str(), winShow, ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoResize| ImGuiWindowFlags_AlwaysAutoResize); -// ImGui::BeginTabBar("servo_state"); -// if (ImGui::BeginTabItem(_(u8"打印轴").c_str())) { -// AxisStateValue mold; -// m_Axis->m_Mold->GetState()->GetValue(mold); -// ImGui::BeginGroup();` -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), mold.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), mold.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), mold.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对上运动: %s").c_str(), mold.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对下运动: %s").c_str(), mold.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"上JOG: %s").c_str(), mold.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"下JOG: %s").c_str(), mold.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), mold.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), mold.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), mold.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), mold.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), mold.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), mold.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), mold.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), mold.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), mold.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), mold.ServoBreakOn ? "YES" : "NO"); -// ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), mold.BindSlaveOn ? "YES" : "NO"); -// ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), mold.BindSlaveFinish ? "YES" : "NO"); -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), mold.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), mold.Torque); -// ImGui::EndGroup(); -// -// ImGui::SameLine(); -// ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); -// ImGui::SameLine(); -// -// ImGui::BeginGroup(); -// g_SystemInfo->LockInfo(); -// float linearLayerValue = g_SystemInfo->m_EnvState.m_LinearLayerPos; -// float moldTheoryDis = g_SystemInfo->m_EnvState.m_MoldTheoryDistance; -// float linearActDis = g_SystemInfo->m_EnvState.m_LinearActDistance; -// float linearPulseValue = g_SystemInfo->m_EnvState.m_LinearActPulse; -// g_SystemInfo->UnlockInfo(); -// ImGui::Text(_(u8"光栅每层实际值: %.3f").c_str(), linearLayerValue); -// ImGui::Text(_(u8"升降理论行程: %.3f").c_str(), moldTheoryDis); -// ImGui::Text(_(u8"光栅实际行程: %.3f").c_str(), linearActDis); -// ImGui::Text(_(u8"光栅实际脉冲数: %.3f").c_str(), linearPulseValue); -// -// ImGui::EndGroup(); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"清粉轴").c_str())) { -// AxisStateValue clean; -// m_Axis->m_Clean->GetState()->GetValue(clean); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), clean.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), clean.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), clean.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对上运动: %s").c_str(), clean.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对下运动: %s").c_str(), clean.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"上JOG: %s").c_str(), clean.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"下JOG: %s").c_str(), clean.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), clean.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), clean.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), clean.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), clean.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), clean.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), clean.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), clean.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), clean.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), clean.ExceptionCode); //轴伺服异常字_R -// -// ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), clean.ServoBreakOn ? "YES" : "NO"); -// ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), clean.BindSlaveOn ? "YES" : "NO"); -// ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), clean.BindSlaveFinish ? "YES" : "NO"); -// -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), clean.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), clean.Torque); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { -// AxisStateValue arm; -// m_Axis->m_Arm->GetState()->GetValue(arm); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), arm.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), arm.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), arm.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对前运动: %s").c_str(), arm.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对后运动: %s").c_str(), arm.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"前JOG: %s").c_str(), arm.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"后JOG: %s").c_str(), arm.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), arm.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), arm.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), arm.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), arm.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), arm.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), arm.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), arm.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), arm.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), arm.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), arm.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), arm.Torque); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { -// AxisStateValue load; -// m_Axis->m_Load->GetState()->GetValue(load); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), load.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), load.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), load.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对右运动: %s").c_str(), load.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对左运动: %s").c_str(), load.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"右JOG: %s").c_str(), load.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"左JOG: %s").c_str(), load.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), load.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), load.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), load.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), load.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), load.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), load.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), load.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), load.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), load.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), load.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), load.Torque); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { -// AxisStateValue supply; -// m_Axis->m_Supply->GetState()->GetValue(supply); -// //ImGui::Text(_(u8"伺服使能:%s").c_str(), supply.ServoOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服成立原点: %s").c_str(), supply.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服复位: %s").c_str(), supply.ServoReset ? "YES" : "NO"); -// ImGui::Text(_(u8"相对右运动: %s").c_str(), supply.MoveP ? "YES" : "NO"); -// ImGui::Text(_(u8"相对左运动: %s").c_str(), supply.MoveN ? "YES" : "NO"); -// ImGui::Text(_(u8"右JOG: %s").c_str(), supply.MovePContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"左JOG: %s").c_str(), supply.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(_(u8"绝对值运动: %s").c_str(), supply.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(_(u8"急停: %s").c_str(), supply.MotionStop ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), supply.ServoRDY ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), supply.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), supply.ResetDone ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服BUSY: %s").c_str(), supply.ServoBusy ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常: %s").c_str(), supply.ServoException ? "YES" : "NO"); -// ImGui::Text(_(u8"可运行状态: %s").c_str(), supply.Runable ? "YES" : "NO"); -// ImGui::Text(_(u8"伺服异常字: %d").c_str(), supply.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(_(u8"轴位置: %.3f").c_str(), supply.Pos); -// ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), supply.Torque); -// ImGui::EndTabItem(); -// } -// -// ImGui::EndTabBar(); -// ImGui::End(); -//} +void HBD1500::DrawServoState(bool* winShow) +{ + ImGui::Begin(_(u8"伺服状态").c_str(), winShow, ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoResize| ImGuiWindowFlags_AlwaysAutoResize); + ImGui::BeginTabBar("servo_state"); + if (ImGui::BeginTabItem(_(u8"打印轴").c_str())) { + AxisStateValue mold; + m_Axis->m_Mold->GetState()->GetValue(mold); + ImGui::BeginGroup(); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), mold.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), mold.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), mold.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对上运动: %s").c_str(), mold.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对下运动: %s").c_str(), mold.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"上JOG: %s").c_str(), mold.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"下JOG: %s").c_str(), mold.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), mold.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), mold.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), mold.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), mold.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), mold.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), mold.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), mold.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), mold.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), mold.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), mold.ServoBreakOn ? "YES" : "NO"); + ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), mold.BindSlaveOn ? "YES" : "NO"); + ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), mold.BindSlaveFinish ? "YES" : "NO"); + ImGui::Text(_(u8"轴位置: %.3f").c_str(), mold.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), mold.Torque); + ImGui::EndGroup(); + + ImGui::SameLine(); + ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); + ImGui::SameLine(); + + ImGui::BeginGroup(); + g_SystemInfo->LockInfo(); + float linearLayerValue = g_SystemInfo->m_EnvState.m_LinearLayerPos; + float moldTheoryDis = g_SystemInfo->m_EnvState.m_MoldTheoryDistance; + float linearActDis = g_SystemInfo->m_EnvState.m_LinearActDistance; + float linearPulseValue = g_SystemInfo->m_EnvState.m_LinearActPulse; + g_SystemInfo->UnlockInfo(); + ImGui::Text(_(u8"光栅每层实际值: %.3f").c_str(), linearLayerValue); + ImGui::Text(_(u8"升降理论行程: %.3f").c_str(), moldTheoryDis); + ImGui::Text(_(u8"光栅实际行程: %.3f").c_str(), linearActDis); + ImGui::Text(_(u8"光栅实际脉冲数: %.3f").c_str(), linearPulseValue); + + ImGui::EndGroup(); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"清粉轴").c_str())) { + AxisStateValue clean; + m_Axis->m_Clean->GetState()->GetValue(clean); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), clean.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), clean.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), clean.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对上运动: %s").c_str(), clean.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对下运动: %s").c_str(), clean.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"上JOG: %s").c_str(), clean.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"下JOG: %s").c_str(), clean.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), clean.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), clean.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), clean.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), clean.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), clean.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), clean.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), clean.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), clean.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), clean.ExceptionCode); //轴伺服异常字_R + + ImGui::Text(_(u8"主轴伺服刹车: %s").c_str(), clean.ServoBreakOn ? "YES" : "NO"); + ImGui::Text(_(u8"主轴伺服绑定从轴: %s").c_str(), clean.BindSlaveOn ? "YES" : "NO"); + ImGui::Text(_(u8"主从轴已经绑定: %s").c_str(), clean.BindSlaveFinish ? "YES" : "NO"); + + ImGui::Text(_(u8"轴位置: %.3f").c_str(), clean.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), clean.Torque); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { + AxisStateValue arm; + m_Axis->m_Arm->GetState()->GetValue(arm); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), arm.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), arm.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), arm.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对前运动: %s").c_str(), arm.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对后运动: %s").c_str(), arm.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"前JOG: %s").c_str(), arm.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"后JOG: %s").c_str(), arm.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), arm.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), arm.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), arm.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), arm.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), arm.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), arm.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), arm.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), arm.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), arm.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"轴位置: %.3f").c_str(), arm.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), arm.Torque); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { + AxisStateValue load; + m_Axis->m_Load->GetState()->GetValue(load); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), load.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), load.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), load.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对右运动: %s").c_str(), load.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对左运动: %s").c_str(), load.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"右JOG: %s").c_str(), load.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"左JOG: %s").c_str(), load.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), load.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), load.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), load.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), load.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), load.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), load.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), load.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), load.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), load.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"轴位置: %.3f").c_str(), load.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), load.Torque); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { + AxisStateValue supply; + m_Axis->m_Supply->GetState()->GetValue(supply); + //ImGui::Text(_(u8"伺服使能:%s").c_str(), supply.ServoOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服成立原点: %s").c_str(), supply.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(_(u8"伺服复位: %s").c_str(), supply.ServoReset ? "YES" : "NO"); + ImGui::Text(_(u8"相对右运动: %s").c_str(), supply.MoveP ? "YES" : "NO"); + ImGui::Text(_(u8"相对左运动: %s").c_str(), supply.MoveN ? "YES" : "NO"); + ImGui::Text(_(u8"右JOG: %s").c_str(), supply.MovePContinue ? "YES" : "NO"); + ImGui::Text(_(u8"左JOG: %s").c_str(), supply.MoveNContinue ? "YES" : "NO"); + ImGui::Text(_(u8"绝对值运动: %s").c_str(), supply.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(_(u8"急停: %s").c_str(), supply.MotionStop ? "YES" : "NO"); + ImGui::Text(_(u8"伺服RDY状态: %s").c_str(), supply.ServoRDY ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行HOME_Done: %s").c_str(), supply.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(_(u8"指令运行RESET_Done: %s").c_str(), supply.ResetDone ? "YES" : "NO"); + ImGui::Text(_(u8"伺服BUSY: %s").c_str(), supply.ServoBusy ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常: %s").c_str(), supply.ServoException ? "YES" : "NO"); + ImGui::Text(_(u8"可运行状态: %s").c_str(), supply.Runable ? "YES" : "NO"); + ImGui::Text(_(u8"伺服异常字: %d").c_str(), supply.ExceptionCode); //轴伺服异常字_R + ImGui::Text(_(u8"轴位置: %.3f").c_str(), supply.Pos); + ImGui::Text(_(u8"轴扭矩: %.3f").c_str(), supply.Torque); + ImGui::EndTabItem(); + } + + ImGui::EndTabBar(); + ImGui::End(); +} void HBD1500::InitSignal(SignalStateWrapper* ssw, void* cc) { @@ -6964,187 +6980,187 @@ void HBD1500::InitSysParam(SysParamWrapper* spw, void* cc) // // //} -// -//bool HBD1500::CheckPrintMoldReady() -//{ -// if (m_SignalStateWrapper->m_CylinderState->GetValue() != CylinderInPrintLoaded) -// { -// return false; -// } -// else return true; -//} -// -//bool HBD1500::IsLoadAxisCanMoveLeft() -//{ -// if (!m_SignalState.m_PrintJackupInSplitePos)return false; -// if (!m_SignalState.m_LoadTorqueInsideLimit)return false; -// if (!m_SignalState.m_LoadPosInsideLeftSoftLimit)return false; -// if (!m_SignalState.m_PrintPressingInReleasePos)return false; -// if (!m_SignalState.m_PrintJackupInDropPos)return false; -// if (!m_SignalState.m_PrintSupportInAvoidPos)return false; -// if (!m_SignalState.m_CleanPressingInReleasePos)return false; -// if (!m_SignalState.m_CylinderFixInReleasePos)return false; -// if (!m_SignalState.m_CleanBoxReleasePos)return false; -// if (!m_SignalState.m_LoadLeftNotInsideLimit)return false; -// if (!m_SignalState.m_LoadServoNoAlarm)return false; -// if(!m_SignalState.m_CleanAxisInCylinderSeparatePos)return false; -// if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -// -//string HBD1500::GetLoadAxisCanotMoveLeftInfo() { -// if (!m_SignalState.m_PrintJackupInSplitePos)return _(u8"打印顶升轴不在缸体分离位").c_str(); -// if (!m_SignalState.m_LoadTorqueInsideLimit)return _(u8"移载扭力越限").c_str(); -// if (!m_SignalState.m_LoadPosInsideLeftSoftLimit)return _(u8"移载轴越软左限").c_str(); -// if (!m_SignalState.m_PrintPressingInReleasePos)return _(u8"打印位压紧气缸不在松开位").c_str(); -// if (!m_SignalState.m_PrintJackupInDropPos)return _(u8"打印位顶升气缸不在下降位").c_str(); -// if (!m_SignalState.m_PrintSupportInAvoidPos)return _(u8"打印位支撑气缸不在避让位").c_str(); -// if (!m_SignalState.m_CylinderFixInReleasePos)return _(u8"缸体固定气缸不在松开位").c_str(); -// if (!m_SignalState.m_CleanBoxReleasePos)return _(u8"清粉箱不在松开位").c_str(); -// if (!m_SignalState.m_LoadLeftNotInsideLimit)return _(u8"移载轴已到左限位").c_str(); -// if (!m_SignalState.m_LoadServoNoAlarm)return _(u8"移载轴伺服异常").c_str(); -// if (!m_SignalState.m_CleanAxisInCylinderSeparatePos)return _(u8"清粉升降轴不在缸体分离位").c_str(); -// if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); -// return _(u8"未知原因").c_str(); -//} -// -//bool HBD1500::IsLoadAxisCanMoveRight() -//{ -// if (!m_SignalState.m_PrintJackupInSplitePos)return false; -// if (!m_SignalState.m_LoadTorqueInsideLimit)return false; -// if (!m_SignalState.m_LoadPosInsideRightSoftLimit)return false; -// if (!m_SignalState.m_PrintPressingInReleasePos)return false; -// if (!m_SignalState.m_PrintJackupInDropPos)return false; -// if (!m_SignalState.m_PrintSupportInAvoidPos)return false; -// if (!m_SignalState.m_CleanPressingInReleasePos)return false; -// if (!m_SignalState.m_CylinderFixInReleasePos)return false; -// if (!m_SignalState.m_CleanBoxReleasePos)return false; -// if (!m_SignalState.m_LoadRightNotInsideLimit)return false; -// if (!m_SignalState.m_LoadServoNoAlarm)return false; -// if (!m_SignalState.m_CleanAxisInCylinderSeparatePos)return false; -// if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -// -//string HBD1500::GetLoadAxisCanotMoveRightInfo() { -// if (!m_SignalState.m_PrintJackupInSplitePos)return _(u8"打印顶升轴不在缸体分离位").c_str(); -// if (!m_SignalState.m_LoadTorqueInsideLimit)return _(u8"移载扭力越限").c_str(); -// if (!m_SignalState.m_LoadPosInsideRightSoftLimit)return _(u8"移载轴越软右限").c_str(); -// if (!m_SignalState.m_PrintPressingInReleasePos)return _(u8"打印位压紧气缸不在松开位").c_str(); -// if (!m_SignalState.m_PrintJackupInDropPos)return _(u8"打印位顶升气缸不在下降位").c_str(); -// if (!m_SignalState.m_PrintSupportInAvoidPos)return _(u8"打印位支撑气缸不在避让位").c_str(); -// if (!m_SignalState.m_CleanPressingInReleasePos)return _(u8"清粉位压紧气缸不在松开位").c_str(); -// if (!m_SignalState.m_CylinderFixInReleasePos)return _(u8"缸体固定气缸不在松开位").c_str(); -// if (!m_SignalState.m_CleanBoxReleasePos)return _(u8"清粉箱不在松开位").c_str(); -// if (!m_SignalState.m_LoadRightNotInsideLimit)return _(u8"移载轴已到右限位").c_str(); -// if (!m_SignalState.m_LoadServoNoAlarm)return _(u8"移载轴伺服异常").c_str(); -// if (!m_SignalState.m_CleanAxisInCylinderSeparatePos)return _(u8"清粉升降轴不在缸体分离位").c_str(); -// if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); -// return _(u8"未知原因").c_str(); -//} -// -//bool HBD1500::IsArmCanMoveBack() -//{ -// if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return false; -// if (!m_SignalState.m_ArmTorqueInsideLimit)return false; -// if (!m_SignalState.m_ArmPosInsideSoftBackLimit)return false; -// if (!m_SignalState.m_ArmPosInsideBackLimit)return false; -// if (!m_SignalState.m_ArmServoNoAlarm)return false; -// if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -// -//string HBD1500::GetArmCanotMoveBackInfo() -//{ -// if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return _(u8"打印升降轴高于基板缸平面").c_str(); -// if (!m_SignalState.m_ArmTorqueInsideLimit)return _(u8"铺粉轴扭力越限").c_str(); -// if (!m_SignalState.m_ArmPosInsideSoftBackLimit)return _(u8"铺粉轴位置超过软后限").c_str(); -// if (!m_SignalState.m_ArmPosInsideBackLimit)return _(u8"铺粉轴已到后限位").c_str(); -// if (!m_SignalState.m_ArmServoNoAlarm)return _(u8"铺粉轴伺服异常").c_str(); -// if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); -// return _(u8"未知原因").c_str(); -//} -// -//bool HBD1500::IsArmCanMoveFront() -//{ -// if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return false; -// if (!m_SignalState.m_ArmTorqueInsideLimit)return false; -// if (!m_SignalState.m_ArmPosInsideSoftFrontLimit)return false; -// if (!m_SignalState.m_ArmPosInsideFrontLimit)return false; -// if (!m_SignalState.m_ArmServoNoAlarm)return false; -// if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -// -//string HBD1500::GetArmCanotMoveFrontInfo() -//{ -// if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return _(u8"打印升降轴高于基板缸平面").c_str(); -// if (!m_SignalState.m_ArmTorqueInsideLimit)return _(u8"铺粉轴扭力越限").c_str(); -// if (!m_SignalState.m_ArmPosInsideSoftFrontLimit)return _(u8"铺粉轴位置超过软前限").c_str(); -// if (!m_SignalState.m_ArmPosInsideFrontLimit)return _(u8"铺粉轴已到前限位").c_str(); -// if (!m_SignalState.m_ArmServoNoAlarm)return _(u8"铺粉轴伺服异常").c_str(); -// if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); -// return _(u8"未知原因").c_str(); -//} -// -//bool HBD1500::IsMoldCanMoveUp() -//{ -// if (!m_SignalState.m_PrintTorqueUpInsideLimit)return false; -// if (!m_SignalState.m_ArmNotUponBasePlatform)return false; -// if (!m_SignalState.m_PrintMoldPosInsideUpSoftLimit)return false; -// if (!m_SignalState.m_PrintInsideUpLimit)return false; -// if (!m_SignalState.m_PrintMainServoNoAlarm)return false; -//// if (!m_SignalState.m_PrintSlaveServoNoAlarm)return false; -// if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -// -//string HBD1500::GetMoldCanotUpInfo() -//{ -// if (!m_SignalState.m_PrintTorqueUpInsideLimit)return _(u8"升降轴上升扭力越限").c_str(); -// if (!m_SignalState.m_ArmNotUponBasePlatform)return _(u8"铺粉臂在基板范围内").c_str(); -// if (!m_SignalState.m_PrintMoldPosInsideUpSoftLimit)return _(u8"升降轴越软上限").c_str(); -// if (!m_SignalState.m_PrintInsideUpLimit)return _(u8"升降轴越上限").c_str(); -// if (!m_SignalState.m_PrintMainServoNoAlarm)return _(u8"打印主轴伺服异常").c_str(); -//// if (!m_SignalState.m_PrintSlaveServoNoAlarm)return _(u8"打印从轴伺服异常").c_str(); -// if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); -// return _(u8"未知原因").c_str(); -//} -// -//bool HBD1500::IsMoldCanMoveDown() -//{ -// if (!m_SignalState.m_PrintTorqueDownInsideLimit)return false; -// if (!m_SignalState.m_ArmNotUponBasePlatform)return false; -// if (!m_SignalState.m_PrintAxisPosInsideDownSoftLimit)return false; -// if (!m_SignalState.m_PrintInsideDownLimit)return false; -// if (!m_SignalState.m_PrintMainServoNoAlarm)return false; -// //if (!m_SignalState.m_PrintSlaveServoNoAlarm)return false; -// if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -// -//string HBD1500::GetMoldCanotDownInfo() -//{ -// if (!m_SignalState.m_PrintTorqueDownInsideLimit)return _(u8"升降轴下降扭力越限").c_str(); -// if (!m_SignalState.m_ArmNotUponBasePlatform)return _(u8"铺粉臂在基板范围内").c_str(); -// if (!m_SignalState.m_PrintAxisPosInsideDownSoftLimit)return _(u8"升降轴越软下限").c_str(); -// if (!m_SignalState.m_PrintInsideDownLimit)return _(u8"升降轴越下限").c_str(); -// if (!m_SignalState.m_PrintMainServoNoAlarm)return _(u8"打印主轴伺服异常").c_str(); -// //if (!m_SignalState.m_PrintSlaveServoNoAlarm)return _(u8"打印从轴伺服异常").c_str(); -// if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); -// return _(u8"未知原因").c_str(); -//} -// -//bool HBD1500::CheckPrintHigh(float jobhigh) -//{ -// float ah = m_MachineCtrl->GetAllowPrintHigh(); -// if (jobhigh > ah) -// { -// char buffer[512]; -// sprintf_s(buffer, sizeof(buffer), _(u8"需要打印的高度:%.3f 超过了 允许的打印高度:%.3f").c_str(), jobhigh, ah); -// ToastBean* bean = new ToastBean(string(buffer), 5000, Toast::COLOR_RED); -// g_Toast->AddToast(bean); -// return false; -// } -// else return true; -//} \ No newline at end of file + +bool HBD1500::CheckPrintMoldReady() +{ + if (m_SignalStateWrapper->m_CylinderState->GetValue() != CylinderInPrintLoaded) + { + return false; + } + else return true; +} + +bool HBD1500::IsLoadAxisCanMoveLeft() +{ + if (!m_SignalState.m_PrintJackupInSplitePos)return false; + if (!m_SignalState.m_LoadTorqueInsideLimit)return false; + if (!m_SignalState.m_LoadPosInsideLeftSoftLimit)return false; + if (!m_SignalState.m_PrintPressingInReleasePos)return false; + if (!m_SignalState.m_PrintJackupInDropPos)return false; + if (!m_SignalState.m_PrintSupportInAvoidPos)return false; + if (!m_SignalState.m_CleanPressingInReleasePos)return false; + if (!m_SignalState.m_CylinderFixInReleasePos)return false; + if (!m_SignalState.m_CleanBoxReleasePos)return false; + if (!m_SignalState.m_LoadLeftNotInsideLimit)return false; + if (!m_SignalState.m_LoadServoNoAlarm)return false; + if(!m_SignalState.m_CleanAxisInCylinderSeparatePos)return false; + if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} + +string HBD1500::GetLoadAxisCanotMoveLeftInfo() { + if (!m_SignalState.m_PrintJackupInSplitePos)return _(u8"打印顶升轴不在缸体分离位").c_str(); + if (!m_SignalState.m_LoadTorqueInsideLimit)return _(u8"移载扭力越限").c_str(); + if (!m_SignalState.m_LoadPosInsideLeftSoftLimit)return _(u8"移载轴越软左限").c_str(); + if (!m_SignalState.m_PrintPressingInReleasePos)return _(u8"打印位压紧气缸不在松开位").c_str(); + if (!m_SignalState.m_PrintJackupInDropPos)return _(u8"打印位顶升气缸不在下降位").c_str(); + if (!m_SignalState.m_PrintSupportInAvoidPos)return _(u8"打印位支撑气缸不在避让位").c_str(); + if (!m_SignalState.m_CylinderFixInReleasePos)return _(u8"缸体固定气缸不在松开位").c_str(); + if (!m_SignalState.m_CleanBoxReleasePos)return _(u8"清粉箱不在松开位").c_str(); + if (!m_SignalState.m_LoadLeftNotInsideLimit)return _(u8"移载轴已到左限位").c_str(); + if (!m_SignalState.m_LoadServoNoAlarm)return _(u8"移载轴伺服异常").c_str(); + if (!m_SignalState.m_CleanAxisInCylinderSeparatePos)return _(u8"清粉升降轴不在缸体分离位").c_str(); + if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); + return _(u8"未知原因").c_str(); +} + +bool HBD1500::IsLoadAxisCanMoveRight() +{ + if (!m_SignalState.m_PrintJackupInSplitePos)return false; + if (!m_SignalState.m_LoadTorqueInsideLimit)return false; + if (!m_SignalState.m_LoadPosInsideRightSoftLimit)return false; + if (!m_SignalState.m_PrintPressingInReleasePos)return false; + if (!m_SignalState.m_PrintJackupInDropPos)return false; + if (!m_SignalState.m_PrintSupportInAvoidPos)return false; + if (!m_SignalState.m_CleanPressingInReleasePos)return false; + if (!m_SignalState.m_CylinderFixInReleasePos)return false; + if (!m_SignalState.m_CleanBoxReleasePos)return false; + if (!m_SignalState.m_LoadRightNotInsideLimit)return false; + if (!m_SignalState.m_LoadServoNoAlarm)return false; + if (!m_SignalState.m_CleanAxisInCylinderSeparatePos)return false; + if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} + +string HBD1500::GetLoadAxisCanotMoveRightInfo() { + if (!m_SignalState.m_PrintJackupInSplitePos)return _(u8"打印顶升轴不在缸体分离位").c_str(); + if (!m_SignalState.m_LoadTorqueInsideLimit)return _(u8"移载扭力越限").c_str(); + if (!m_SignalState.m_LoadPosInsideRightSoftLimit)return _(u8"移载轴越软右限").c_str(); + if (!m_SignalState.m_PrintPressingInReleasePos)return _(u8"打印位压紧气缸不在松开位").c_str(); + if (!m_SignalState.m_PrintJackupInDropPos)return _(u8"打印位顶升气缸不在下降位").c_str(); + if (!m_SignalState.m_PrintSupportInAvoidPos)return _(u8"打印位支撑气缸不在避让位").c_str(); + if (!m_SignalState.m_CleanPressingInReleasePos)return _(u8"清粉位压紧气缸不在松开位").c_str(); + if (!m_SignalState.m_CylinderFixInReleasePos)return _(u8"缸体固定气缸不在松开位").c_str(); + if (!m_SignalState.m_CleanBoxReleasePos)return _(u8"清粉箱不在松开位").c_str(); + if (!m_SignalState.m_LoadRightNotInsideLimit)return _(u8"移载轴已到右限位").c_str(); + if (!m_SignalState.m_LoadServoNoAlarm)return _(u8"移载轴伺服异常").c_str(); + if (!m_SignalState.m_CleanAxisInCylinderSeparatePos)return _(u8"清粉升降轴不在缸体分离位").c_str(); + if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); + return _(u8"未知原因").c_str(); +} + +bool HBD1500::IsArmCanMoveBack() +{ + if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return false; + if (!m_SignalState.m_ArmTorqueInsideLimit)return false; + if (!m_SignalState.m_ArmPosInsideSoftBackLimit)return false; + if (!m_SignalState.m_ArmPosInsideBackLimit)return false; + if (!m_SignalState.m_ArmServoNoAlarm)return false; + if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} + +string HBD1500::GetArmCanotMoveBackInfo() +{ + if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return _(u8"打印升降轴高于基板缸平面").c_str(); + if (!m_SignalState.m_ArmTorqueInsideLimit)return _(u8"铺粉轴扭力越限").c_str(); + if (!m_SignalState.m_ArmPosInsideSoftBackLimit)return _(u8"铺粉轴位置超过软后限").c_str(); + if (!m_SignalState.m_ArmPosInsideBackLimit)return _(u8"铺粉轴已到后限位").c_str(); + if (!m_SignalState.m_ArmServoNoAlarm)return _(u8"铺粉轴伺服异常").c_str(); + if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); + return _(u8"未知原因").c_str(); +} + +bool HBD1500::IsArmCanMoveFront() +{ + if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return false; + if (!m_SignalState.m_ArmTorqueInsideLimit)return false; + if (!m_SignalState.m_ArmPosInsideSoftFrontLimit)return false; + if (!m_SignalState.m_ArmPosInsideFrontLimit)return false; + if (!m_SignalState.m_ArmServoNoAlarm)return false; + if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} + +string HBD1500::GetArmCanotMoveFrontInfo() +{ + if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return _(u8"打印升降轴高于基板缸平面").c_str(); + if (!m_SignalState.m_ArmTorqueInsideLimit)return _(u8"铺粉轴扭力越限").c_str(); + if (!m_SignalState.m_ArmPosInsideSoftFrontLimit)return _(u8"铺粉轴位置超过软前限").c_str(); + if (!m_SignalState.m_ArmPosInsideFrontLimit)return _(u8"铺粉轴已到前限位").c_str(); + if (!m_SignalState.m_ArmServoNoAlarm)return _(u8"铺粉轴伺服异常").c_str(); + if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); + return _(u8"未知原因").c_str(); +} + +bool HBD1500::IsMoldCanMoveUp() +{ + if (!m_SignalState.m_PrintTorqueUpInsideLimit)return false; + if (!m_SignalState.m_ArmNotUponBasePlatform)return false; + if (!m_SignalState.m_PrintMoldPosInsideUpSoftLimit)return false; + if (!m_SignalState.m_PrintInsideUpLimit)return false; + if (!m_SignalState.m_PrintMainServoNoAlarm)return false; +// if (!m_SignalState.m_PrintSlaveServoNoAlarm)return false; + if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} + +string HBD1500::GetMoldCanotUpInfo() +{ + if (!m_SignalState.m_PrintTorqueUpInsideLimit)return _(u8"升降轴上升扭力越限").c_str(); + if (!m_SignalState.m_ArmNotUponBasePlatform)return _(u8"铺粉臂在基板范围内").c_str(); + if (!m_SignalState.m_PrintMoldPosInsideUpSoftLimit)return _(u8"升降轴越软上限").c_str(); + if (!m_SignalState.m_PrintInsideUpLimit)return _(u8"升降轴越上限").c_str(); + if (!m_SignalState.m_PrintMainServoNoAlarm)return _(u8"打印主轴伺服异常").c_str(); +// if (!m_SignalState.m_PrintSlaveServoNoAlarm)return _(u8"打印从轴伺服异常").c_str(); + if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); + return _(u8"未知原因").c_str(); +} + +bool HBD1500::IsMoldCanMoveDown() +{ + if (!m_SignalState.m_PrintTorqueDownInsideLimit)return false; + if (!m_SignalState.m_ArmNotUponBasePlatform)return false; + if (!m_SignalState.m_PrintAxisPosInsideDownSoftLimit)return false; + if (!m_SignalState.m_PrintInsideDownLimit)return false; + if (!m_SignalState.m_PrintMainServoNoAlarm)return false; + //if (!m_SignalState.m_PrintSlaveServoNoAlarm)return false; + if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} + +string HBD1500::GetMoldCanotDownInfo() +{ + if (!m_SignalState.m_PrintTorqueDownInsideLimit)return _(u8"升降轴下降扭力越限").c_str(); + if (!m_SignalState.m_ArmNotUponBasePlatform)return _(u8"铺粉臂在基板范围内").c_str(); + if (!m_SignalState.m_PrintAxisPosInsideDownSoftLimit)return _(u8"升降轴越软下限").c_str(); + if (!m_SignalState.m_PrintInsideDownLimit)return _(u8"升降轴越下限").c_str(); + if (!m_SignalState.m_PrintMainServoNoAlarm)return _(u8"打印主轴伺服异常").c_str(); + //if (!m_SignalState.m_PrintSlaveServoNoAlarm)return _(u8"打印从轴伺服异常").c_str(); + if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return _(u8"舱门打开时运动受限").c_str(); + return _(u8"未知原因").c_str(); +} + +bool HBD1500::CheckPrintHigh(float jobhigh) +{ +/* float ah = m_MachineCtrl->GetAllowPrintHigh(); + if (jobhigh > ah) + { + char buffer[512]; + sprintf_s(buffer, sizeof(buffer), _(u8"需要打印的高度:%.3f 超过了 允许的打印高度:%.3f").c_str(), jobhigh, ah); + ToastBean* bean = new ToastBean(string(buffer), 5000, Toast::COLOR_RED); + g_Toast->AddToast(bean); + return false; + } + else*/ return true; +} \ No newline at end of file diff --git a/PrintC/Machine/HBD1500.h b/PrintC/Machine/HBD1500.h index d0984b9..684a95d 100644 --- a/PrintC/Machine/HBD1500.h +++ b/PrintC/Machine/HBD1500.h @@ -88,16 +88,14 @@ public: void InitSysParam(SysParamWrapper* spw, void* cc); //void InitPLCCommand(vector& vecs); //void GetAlarmState(SignalState& signalState); - //bool CheckPrintMoldReady(); - //bool CheckPrintHigh(float jobhigh); + bool CheckPrintMoldReady(); + bool CheckPrintHigh(float jobhigh); virtual void CheckIO(); private: /*static*/ void CheckIO_V0(/*vector&ins, IOCfgWrapper* iocfgWrapper, string str, int type*/); //static void ProcReadPLC(void* pobject, Command* pcommand); //static void ProcReadPLCData(void* pobject, Command* pcommand); - void LoadInRun() {} - void LoadOutRun() {} bool IsLoadAxisCanMoveLeft(); string GetLoadAxisCanotMoveLeftInfo(); diff --git a/PrintC/Machine/HBDE1000.cpp b/PrintC/Machine/HBDE1000.cpp index 529904c..8a85bfe 100644 --- a/PrintC/Machine/HBDE1000.cpp +++ b/PrintC/Machine/HBDE1000.cpp @@ -8,6 +8,7 @@ #include "../Toast.h" #include "../SystemInfo.h" #include "../Logger.h" +#include "../DataManage/DataHandle.h" const int HBDE1000::IO_V0 = 0; HBDE1000::HBDE1000(MachineTypeCfg::MachineTypeId type) :Machine(type) @@ -3837,1375 +3838,1388 @@ void HBDE1000::DrawSignal(bool* isshow) // ImGui::EndChild(); //} -void HBDE1000::DrawPowderCtrl(bool* winShow) -{} -//void HBDE1000::DrawPowderCtrl(bool* winShow) -//{ -// ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(4, 8)); -// ImGui::Begin(_(u8"铺粉装置调试").c_str(), winShow, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoNav); -// ImGui::PopStyleVar(); -// -// int dstepflag = 1; -// double fstepflag = 1.0; -// long lstepflag = 1; -// static int kb = GTS_AXIS_ID_ARM; -// static bool continue_move = false; -// -// //CoverCfg* coverCfg = m_CoverCfg; -// MainAxisState* mold = m_Axis->m_Mold->GetState(); -// AxisState* load = m_Axis->m_Load->GetState(); -// AxisState* arm = m_Axis->m_Arm->GetState(); -// AxisState* supply = m_Axis->m_Supply->GetState(); -// -// AxisConfig* armCfg = m_Axis->m_Arm->GetConfig(); -// AxisConfig::CfgValue armCfgVal; -// armCfg->GetValue(armCfgVal); -// AxisConfig* moldCfg = m_Axis->m_Mold->GetConfig(); -// AxisConfig::CfgValue moldCfgVal; -// moldCfg->GetValue(moldCfgVal); -// //AxisConfig* cleanCfg = m_Axis->m_Clean->GetConfig(); -// //AxisConfig::CfgValue cleanCfgVal; -// //cleanCfg->GetValue(cleanCfgVal); -// AxisConfig* loadCfg = m_Axis->m_Load->GetConfig(); -// AxisConfig::CfgValue loadCfgVal; -// loadCfg->GetValue(loadCfgVal); -// AxisConfig* supplyCfg = m_Axis->m_Supply->GetConfig(); -// AxisConfig::CfgValue supplyCfgVal; -// supplyCfg->GetValue(supplyCfgVal); -// -// ChartletManager* chartletManager = ChartletManager::GetInstance(); -// ImVec2 wpos = ImGui::GetWindowPos(); -// SignalService::GetInstance().GetSignalState(m_SignalState); -// if (m_PowderAssist.isLeftExpand) -// { -// ImGui::BeginGroup(); -// ImGui::BeginChild("AxisSettingChild", ImVec2(420, 520), false, ImGuiWindowFlags_NoNav); -// ImGui::BeginTabBar("AxisSetting"); -// if (ImGui::BeginTabItem(_(u8"成型缸").c_str())) { -// ImGui::PushItemWidth(100); -// if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &moldCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// moldCfg->m_Speed->SetValue(moldCfgVal.speed); -// g_log->TraceInfo(_(u8"更改成型缸速度:%.3f").c_str(), moldCfgVal.speed); -// } -// if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &moldCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// moldCfg->m_Acc->SetValue(moldCfgVal.acc); -// g_log->TraceInfo(_(u8"更改成型缸加速度:%.3f").c_str(), moldCfgVal.acc); -// } -// if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &moldCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// moldCfg->m_Dec->SetValue(moldCfgVal.dec); -// g_log->TraceInfo(u8"更新成型缸减速度:%.3f", moldCfgVal.dec); -// } -// if (ImGui::InputScalar(_(u8"点动行程(μm)").c_str(), ImGuiDataType_Float, &moldCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// moldCfg->m_RefDistance->SetValue(moldCfgVal.rel); -// g_log->TraceInfo(_(u8"更改成型缸点动行程:%.3f").c_str(), moldCfgVal.rel); -// } -// ImGui::PopItemWidth(); -// -// if ((g_Admin > USER_ADMIN)) { -// ImGui::Dummy(ImVec2(0, 20)); -// if (mold->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 0) -// { -// if (ImGui::ImageButton(chartletManager->m_MoldMoveDownesting->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(u8"中断打印升降轴移动到安全位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"打印升降轴移动到安全位"); -// } -// else { -// ImGui::ImageButton(chartletManager->m_MoldMoveDownestDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行打印升降轴移动到安全位"); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_MoldMoveDownestEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_MoldAbsTestPos->SetValue(0); -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(u8"执行打印升降轴移动到安全位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"打印升降轴移动到安全位"); -// } -// -// ImGui::SameLine(); -// -// if (mold->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 3) -// { -// if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformBottoming->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(u8"中断打印轴移动到底座缸平面位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断打印轴移动到底座缸平面位"); -// } -// else { -// ImGui::ImageButton(chartletManager->m_MoldMovePlatformBottomDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行打印轴移动到底座缸平面位"); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformBottomEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_MoldAbsTestPos->SetValue(3); -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(u8"执行打印轴移动到底座缸平面位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"打印轴移动到底座缸平面位"); -// } -// ImGui::SameLine(); -// if (mold->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 4) -// { -// if (ImGui::ImageButton(chartletManager->m_MoldMovePlatforming->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(u8"中断打印轴移动到基板缸平面位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断打印轴移动到基板缸平面位"); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_MoldMovePlatformDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行打印轴移动到基板缸平面位"); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_MoldAbsTestPos->SetValue(4); -// m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(u8"执行打印轴移动到基板缸平面位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"打印轴移动到基板缸平面位"); -// } -// } -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { -// ImGui::PushItemWidth(100); -// if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &loadCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// loadCfg->m_Speed->SetValue(loadCfgVal.speed); -// g_log->TraceInfo(u8"更新移载轴速度:%.3f", loadCfgVal.speed); -// } -// if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &loadCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// loadCfg->m_Acc->SetValue(loadCfgVal.acc); -// g_log->TraceInfo(u8"更新移载轴加速度:%.3f", loadCfgVal.acc); -// } -// if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &loadCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// loadCfg->m_Dec->SetValue(loadCfgVal.dec); -// g_log->TraceInfo(u8"更新移载轴减速度:%.3f", loadCfgVal.dec); -// } -// if (ImGui::InputScalar(_(u8"点动行程(μm)").c_str(), ImGuiDataType_Float, &loadCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// loadCfg->m_RefDistance->SetValue(loadCfgVal.rel); -// g_log->TraceInfo(u8"更新移载轴点动距离:%.3f", loadCfgVal.rel); -// } -// ImGui::PopItemWidth(); -// if (g_Admin > USER_ADMIN) { -// ImGui::Dummy(ImVec2(0, 20)); -// -// if (load->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 3) -// { -// if (ImGui::ImageButton(chartletManager->m_LoadHandPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(u8"中断移载轴移动到轨道吊装位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断移载轴移动到轨道吊装位"); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_LoadHandPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行移载轴移动到轨道吊装位"); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_LoadHandPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(3); -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(u8"执行移载轴移动到轨道吊装位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"移载轴移动到轨道吊装位"); -// } -// -// ImGui::SameLine(); -// if (load->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 1) -// { -// if (ImGui::ImageButton(chartletManager->m_LoadCleanPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(u8"中断移载轴移动到轨道清粉位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断移载轴移动到轨道清粉位"); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_LoadCleanPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行移载轴移动到轨道清粉位"); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_LoadCleanPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(1); -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(u8"执行移载轴移动到轨道清粉位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"移载轴移动到轨道清粉位"); -// } -// ImGui::SameLine(); -// if (load->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 0) -// { -// if (ImGui::ImageButton(chartletManager->m_LoadPrintPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(u8"中断移载轴移动到轨道打印位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断移载轴移动到轨道打印位"); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_LoadPrintPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行移载轴移动到轨道打印位"); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_LoadPrintPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(0); -// m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(u8"执行移载轴移动到轨道打印位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"移栽轴移动到轨道打印位"); -// } -// } -// -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { -// ImGui::PushItemWidth(100); -// if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &armCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// armCfg->m_Speed->SetValue(armCfgVal.speed); -// g_log->TraceInfo(u8"更新铺粉轴速度:%.3f", armCfgVal.speed); -// } -// if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &armCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// armCfg->m_Acc->SetValue(armCfgVal.acc); -// g_log->TraceInfo(u8"更新铺粉轴加速度:%.3f", armCfgVal.acc); -// } -// if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &armCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// armCfg->m_Dec->SetValue(armCfgVal.dec); -// g_log->TraceInfo(u8"更新铺粉轴减速度:%.3f", armCfgVal.dec); -// } -// if (ImGui::InputScalar(_(u8"点动行程(μm)").c_str(), ImGuiDataType_Float, &armCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// armCfg->m_RefDistance->SetValue(armCfgVal.rel); -// g_log->TraceInfo(u8"更新铺粉轴点动距离:%.3f", armCfgVal.rel); -// } -// ImGui::PopItemWidth(); -// if (g_Admin > USER_ADMIN) { -// ImGui::Dummy(ImVec2(0, 20)); -// -// if (arm->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 0) -// { -// if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(u8"中断铺粉轴移动到接粉后位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断铺粉轴移动到接粉后位"); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_ArmAcceptPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行铺粉轴移动到接粉后位"); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_ArmAbsTestPos->SetValue(2); -// m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(u8"执行铺粉轴移动到接粉后位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"铺粉轴移动到接粉后位"); -// } -// ImGui::SameLine(); -// -// if (arm->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 0) -// { -// if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(u8"中断铺粉轴移动到接粉位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断铺粉轴移动到接粉位"); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_ArmAcceptPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行铺粉轴移动到接粉位"); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_ArmAbsTestPos->SetValue(0); -// m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(u8"执行铺粉轴移动到接粉位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"铺粉轴移动到接粉位"); -// } -// -// if (arm->m_MoveAbsPos) -// { -// if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 1) -// { -// if (ImGui::ImageButton(chartletManager->m_ArmFrontDropPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(false); -// g_log->TraceInfo(u8"中断铺粉轴移动到前下粉位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断铺粉轴移动到前下粉位"); -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_ArmFrontDropPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行铺粉轴移动到前下粉位"); -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_ArmFrontDropPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_SysParamWrapper->m_ArmAbsTestPos->SetValue(1); -// m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(true); -// g_log->TraceInfo(u8"执行铺粉轴移动到前下粉位"); -// } -// if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"铺粉轴移动到前下粉位"); -// } -// } -// -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { -// ImGui::PushItemWidth(100); -// if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &supplyCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// supplyCfg->m_Speed->SetValue(supplyCfgVal.speed); -// g_log->TraceInfo(u8"更新下粉轴速度:%.3f", supplyCfgVal.speed); -// } -// if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &supplyCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// supplyCfg->m_Acc->SetValue(supplyCfgVal.acc); -// g_log->TraceInfo(u8"更新下粉轴加速度:%.3f", supplyCfgVal.acc); -// } -// if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &supplyCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) -// { -// supplyCfg->m_Dec->SetValue(supplyCfgVal.dec); -// g_log->TraceInfo(u8"更新下粉轴减速度:%.3f", supplyCfgVal.dec); -// } -// if (ImGui::InputScalar(u8"粉格", ImGuiDataType_Float, &supplyCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// supplyCfg->m_RefDistance->SetValue(supplyCfgVal.rel); -// g_log->TraceInfo(u8"更新下粉轴相对移动距离:%.3f", supplyCfgVal.rel); -// } -// ImGui::PopItemWidth(); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(u8"铺粉")) { -// AxisData ad; -// vector ss = { _(u8"双向铺粉"),_(u8"单向铺粉"),_(u8"不铺粉") ,_(u8"双向铺粉2") ,_(u8"单向铺粉2"),_(u8"单向铺粉3") }; -// m_SysParamWrapper->GetAxisData(ad); -// ImGui::PushItemWidth(120); -// if (ImGui::SemicolonCombo(_(u8"铺粉类型").c_str(), &ad.CoverType, ss)) { -// m_SysParamWrapper->m_CoverType->SetValue(ad.CoverType); -// g_log->TraceInfo(u8"更新铺粉方式:%d", ad.CoverType); -// } -// -// if (ImGui::InputFloat(_(u8"打印铺粉速度(mm/s)").c_str(), &ad.CoverSpeed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_CoverSpeed->SetValue(ad.CoverSpeed); -// g_log->TraceInfo(u8"更新铺粉速度:%.3f", ad.CoverSpeed); -// } -// if (ImGui::InputFloat(_(u8"打印单向铺粉返回变速(mm/s)").c_str(), &ad.CoverReturnSpeed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_CoverReturnSpeed->SetValue(ad.CoverReturnSpeed); -// g_log->TraceInfo(u8"更新打印单向返回速度:%.3f", ad.CoverReturnSpeed); -// } -// if (ImGui::InputFloat(_(u8"打印单向铺粉距离(mm)").c_str(), &ad.CoverDistance, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_CoverDistance->SetValue(ad.CoverDistance); -// g_log->TraceInfo(u8"更新打印单向铺粉距离:%.3f", ad.CoverDistance); -// } -// if (ImGui::InputFloat(_(u8"打印铺粉层厚(μm)").c_str(), &ad.LayerThick, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_LayerThick->SetValue(ad.LayerThick); -// g_log->TraceInfo(u8"更新打印铺粉层厚:%.3f", ad.LayerThick); -// } -// if (ImGui::InputFloat(_(u8"打印间隙补偿(μm)").c_str(), &ad.FixGap, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_FixGap->SetValue(ad.FixGap); -// g_log->TraceInfo(u8"更新打印间隙补偿:%.3f", ad.FixGap); -// } -// if (ImGui::InputScalar(_(u8"打印铺粉格数").c_str(), ImGuiDataType_S16, &ad.SupplyCount, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_SupplyCount->SetValue(ad.SupplyCount); -// g_log->TraceInfo(u8"更新打印铺粉格数:%d", ad.SupplyCount); -// } -// if (ImGui::InputScalar(_(u8"打印下粉时间(ms)").c_str(), ImGuiDataType_S16, &ad.SupplyTime, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_SupplyTime->SetValue(ad.SupplyTime); -// g_log->TraceInfo(u8"更新打印下粉时间:%d", ad.SupplyTime); -// } -// if (ImGui::InputFloat(_(u8"铺粉调试层厚(μm)").c_str(), &ad.DebugLayerThick, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugLayerThick->SetValue(ad.DebugLayerThick); -// g_log->TraceInfo(u8"更新铺粉调试层厚:%.3f", ad.DebugLayerThick); -// } -// if (ImGui::InputFloat(_(u8"铺粉调试间隙(μm)").c_str(), &ad.DebugFixGap, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugFixGap->SetValue(ad.DebugFixGap); -// g_log->TraceInfo(u8"更新铺粉调试间隙补偿:%.3f", ad.DebugFixGap); -// } -// if (ImGui::InputScalar(_(u8"铺粉调试下粉时间(ms)").c_str(), ImGuiDataType_S16, &ad.DebugSupplyTime, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugSupplyTime->SetValue(ad.DebugSupplyTime); -// g_log->TraceInfo(u8"更新铺粉调试下粉时间:%d", ad.DebugSupplyTime); -// } -// if (ImGui::InputScalar(_(u8"铺粉调试格数").c_str(), ImGuiDataType_S16, &ad.DebugSupplyCount, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugSupplyCount->SetValue(ad.DebugSupplyCount); -// g_log->TraceInfo(u8"更新铺粉调试格数:%d", ad.DebugSupplyCount); -// } -// if (ImGui::InputFloat(_(u8"铺粉调试铺粉距离(mm)").c_str(), &ad.DebugCoverDistance, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { -// m_SysParamWrapper->m_DebugCoverDistance->SetValue(ad.DebugCoverDistance); -// g_log->TraceInfo(u8"更新铺粉调试距离:%.3f", ad.DebugCoverDistance); -// } -// ImGui::PopItemWidth(); -// -// ImGui::Dummy(ImVec2(0, 20)); -// if (m_SignalStateWrapper->m_IsCovering->GetValue()) { -// ImGui::PushID("CoverTrigerStop"); -// if (ImGui::Button(u8"停止", ImVec2(-1, 0))) { -// m_SignalStateWrapper->m_CoverTriger->SetValue(false); -// g_log->TraceInfo(u8"停止铺粉调试"); -// } -// ImGui::PopID(); -// } -// else { -// // if (m_Purifier->IsCoverWindSet()) -// // { -// // m_Purifier->ResetSlowWind(); -// // } -// if (ImGui::Button(u8"铺粉调试", ImVec2(-1, 0))) { -// if (m_SignalStateWrapper->m_CoverEnable->GetValue()) { -// // if (m_ExtCfg->m_AutoCoverSlowWind && m_Purifier->IsWindActive()) { -// // m_Purifier->SetCoverWind(true); -// // } -// m_SignalStateWrapper->m_IsCoverDebug->SetValue(true); -// Sleep(50); -// m_SignalStateWrapper->m_ManualCoverTest->SetValue(true); -// Sleep(50); -// g_log->TraceInfo(u8"执行铺粉调试"); -// } -// else { -// g_Toast->AddToast(new ToastBean(u8"铺粉调试条件不成立", 3000)); -// } -// } -// } -// ImGui::EndTabItem(); -// } -// if (g_Admin > USER_ADMIN) { -// if (ImGui::BeginTabItem(u8"控制")) { -// if (m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue()) { -// ImGui::PushID("CylinderReachPrintTrigerStop"); -// if (ImGui::Button(u8"停止", ImVec2(177, 0))) { -// m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue()); -// if (ImGui::Button(u8"移动缸体到打印位", ImVec2(177, 0))) { -// if (m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(true); -// g_log->TraceInfo(u8"执行移动缸体到打印位"); -// } -// else { -// g_Toast->AddToast(new ToastBean(u8"移动缸体到打印位条件不成立", 3000)); -// } -// m_RunCfg->m_HadSetBasePlatformPoint = false; -// } -// ImGui::PopItemFlag(); -// } -// ImGui::SameLine(); -// if (m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue()) { -// ImGui::PushID("CylinderReachCleanTrigerStop"); -// if (ImGui::Button(u8"停止", ImVec2(177, 0))) { -// m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue()); -// if (ImGui::Button(u8"移动缸体到清粉位", ImVec2(177, 0))) { -// if (m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(true); -// g_log->TraceInfo(u8"执行移动缸体到清粉位"); -// } -// else { -// g_Toast->AddToast(new ToastBean(u8"移动缸体到清粉位条件不成立", 3000)); -// } -// -// } -// ImGui::PopItemFlag(); -// } -// -// -// if (m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue()) { -// ImGui::PushID("CylinderPrintLoadTrigerStop"); -// if (ImGui::Button(u8"停止", ImVec2(177, 0))) { -// m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue()); -// if (ImGui::Button(u8"缸体打印位装载", ImVec2(177, 0))) { -// if (m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(true); -// g_log->TraceInfo(u8"执行缸体打印位装载"); -// } -// else { -// g_Toast->AddToast(new ToastBean(u8"缸体打印位装载条件不成立", 3000)); -// } -// m_RunCfg->m_HadSetBasePlatformPoint = false; -// } -// ImGui::PopItemFlag(); -// } -// ImGui::SameLine(); -// if (m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue()) { -// ImGui::PushID("CylinderConnectCleanBoxTrigerStop"); -// if (ImGui::Button(u8"停止", ImVec2(177, 0))) { -// m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue()); -// if (ImGui::Button(u8"缸体连接清粉箱", ImVec2(177, 0))) { -// if (m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(true); -// g_log->TraceInfo(u8"执行缸体连接清粉箱"); -// } -// else { -// g_Toast->AddToast(new ToastBean(u8"缸体连接清粉箱条件不成立", 3000)); -// } -// } -// ImGui::PopItemFlag(); -// } -// -// if (m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue()) { -// ImGui::PushID("CylinderPrintUnloadTrigerStop"); -// if (ImGui::Button(u8"停止", ImVec2(177, 0))) { -// m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue()); -// if (ImGui::Button(u8"缸体打印位卸载", ImVec2(177, 0))) { -// if (m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(true); -// g_log->TraceInfo(u8"执行缸体打印位卸载"); -// } -// else { -// g_Toast->AddToast(new ToastBean(u8"缸体打印位卸载条件不成立", 3000)); -// } -// m_RunCfg->m_HadSetBasePlatformPoint = false; -// } -// ImGui::PopItemFlag(); -// } -// ImGui::SameLine(); -// if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue()) { -// ImGui::PushID("CylinderDisconnectCleanBoxTrigerStop"); -// if (ImGui::Button(u8"停止", ImVec2(177, 0))) { -// m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(false); -// } -// ImGui::PopID(); -// } -// else { -// ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue()); -// if (ImGui::Button(u8"缸体脱离清粉箱", ImVec2(177, 0))) { -// if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue()) { -// m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(true); -// g_log->TraceInfo(u8"执行缸体脱离清粉箱"); -// } -// else { -// g_Toast->AddToast(new ToastBean(u8"缸体脱离清粉箱条件不成立", 3000)); -// } -// } -// ImGui::PopItemFlag(); -// } -// -// ImGui::EndTabItem(); -// } -// } -// ImGui::EndTabBar(); -// ImGui::EndChild(); -// -// -// if (ImGui::Button(_(u8"运动急停").c_str(), ImVec2(260, 0))) { -// m_Axis->StopAll(); -// g_log->TraceInfo(u8"运动急停"); -// } -// -// ImGui::EndGroup(); -// ImGui::SameLine(); -// } -// -// ImGui::BeginChild("AxisCtrl", ImVec2(820, 670)); -// if (m_PowderAssist.isLeftExpand) { -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::HNARROW]->GetTex(), ImVec2(38, 50), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_PowderAssist.isLeftExpand = !m_PowderAssist.isLeftExpand; -// } -// } -// else { -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::HEXPAND]->GetTex(), ImVec2(38, 50), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_PowderAssist.isLeftExpand = !m_PowderAssist.isLeftExpand; -// } -// } -// -// ImGui::SameLine(); -// ImGui::BeginGroup(); -// if (ImGui::ToggleButton(_(u8"连续运动").c_str(), continue_move)) -// continue_move = !continue_move; -// ImGui::SameLine(); -// ImGui::Text(_(u8"连续运动").c_str()); -// -// ImGui::Dummy(ImVec2(0, 250)); -// -// if (ImGui::ImageButton(chartletManager->m_LoadOut->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// LoadOut(); -// ImGui::OpenPopup(u8"移载载出"); -// g_log->TraceInfo(u8"执行移出"); -// } -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(u8"载出"); -// } -// ImGui::SameLine(); -// if (ImGui::ImageButton(chartletManager->m_LoadIn->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// LoadIn(); -// ImGui::OpenPopup(u8"移载载入"); -// g_log->TraceInfo(u8"执行移入"); -// } -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(u8"载入"); -// -// } -// -// if (ImGui::BeginPopupModal(u8"移载载入", NULL, ImGuiWindowFlags_AlwaysAutoResize)) { -// if (GetLoadInProcStep() == In_Start) { -// ImGui::Text(u8"移载开始载入"); -// } -// if (GetLoadInProcStep() == In_CylinderDisconnectCleanBox) { -// ImGui::Text(u8"缸体与清粉箱分离中"); -// } -// if (GetLoadInProcStep() == In_CylinderReachPrint) { -// ImGui::Text(u8"缸体到打印位运行中"); -// } -// if (GetLoadInProcStep() == In_CylinderPrintLoad) { -// ImGui::Text(u8"缸体打印位装载运行中"); -// } -// -// if (GetLoadInResult() == In_Intercept) { -// ImGui::TextColored(Toast::COLOR_ORANGE, GetLoadInfo().c_str()); -// if (ImGui::Button(u8"确定", ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// else if (GetLoadInResult() == In_Success) { -// ImGui::TextColored(Toast::COLOR_GREEN, GetLoadInfo().c_str()); -// if (ImGui::Button(u8"确定", ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// else if (GetLoadInResult() > In_Success) { -// ImGui::TextColored(Toast::COLOR_RED, GetLoadInfo().c_str()); -// if (ImGui::Button(u8"确定", ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// -// if (IsLoadIn()) { -// if (ImGui::Button(u8"中断载入", ImVec2(-1, 0))) -// { -// InterceptLoad(); -// } -// } -// ImGui::EndPopup(); -// } -// -// -// if (ImGui::BeginPopupModal(u8"移载载出", NULL, ImGuiWindowFlags_AlwaysAutoResize)) { -// if (GetLoadOutProcSetp() == Out_Start) -// { -// ImGui::Text(u8"移载开始载出"); -// } -// if (GetLoadOutProcSetp() == Out_CylinderPrintUnload) -// { -// ImGui::Text(u8"缸体打印位卸载运行中"); -// } -// if (GetLoadOutProcSetp() == Out_CylinderReachClean) -// { -// ImGui::Text(u8"缸体到清粉位运行中"); -// } -// if (GetLoadOutProcSetp() == Out_CylinderConnectCleanBox) -// { -// ImGui::Text(u8"缸体与清粉箱连接中"); -// } -// if (GetLoadOutProcSetp() == Out_CylinderReachHand) -// { -// ImGui::Text(u8"缸体与吊装位运行中"); -// } -// -// if (GetLoadOutProcSetp() == Out_CylinderDisconnectCleanBox) -// { -// ImGui::Text(u8"缸体与清粉箱分离中"); -// } -// -// -// if (m_NeedWaitSelectOutPos) { -// vector combtemp = { _(u8"清粉位"),_(u8"吊装位") }; -// ImGui::SemicolonCombo(u8"选择载出位置", &m_SelectOutPos, combtemp); -// if (ImGui::Button(u8"下一步")) -// { -// m_WaitSelectOutPosCommit = true; -// } -// } -// -// if (IsWaitConnectBoxCommit()) { -// if (ImGui::Button(u8"执行缸体与清粉箱连接")) -// { -// SetWaitConnectBoxCommit(false); -// } -// } -// -// if (GetLoadOutResult() == Out_Intercept) { -// ImGui::TextColored(Toast::COLOR_ORANGE, GetLoadInfo().c_str()); -// if (ImGui::Button(u8"确定", ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// else if (GetLoadOutResult() == Out_Success) { -// ImGui::TextColored(Toast::COLOR_GREEN, GetLoadInfo().c_str()); -// if (ImGui::Button(u8"确定", ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// else if (GetLoadOutResult() > Out_Success) { -// ImGui::TextColored(Toast::COLOR_RED, GetLoadInfo().c_str()); -// if (ImGui::Button(u8"确定", ImVec2(-1, 0))) -// { -// ImGui::CloseCurrentPopup(); -// } -// } -// -// if (IsLoadOut()) { -// if (ImGui::Button(u8"中断载出", ImVec2(-1, 0))) -// { -// InterceptLoad(); -// } -// } -// ImGui::EndPopup(); -// } -// -// ImGui::Dummy(ImVec2(0, 80)); -// ImGui::RadioButton(_(u8"移载轴").c_str(), &kb, GTS_AXIS_ID_LOAD); -// if (IsLoadAxisCanMoveLeft()) -// { -// ImGui::PushID("LoadMovePointLeft"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); -// g_log->TraceInfo(u8"移载[%.3f]往左移动%.3f", load->GetShowPos(), loadCfgVal.rel); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移载轴左移 %.3fmm").c_str(), loadCfgVal.rel / 1000.0f); -// } -// if (kb == GTS_AXIS_ID_LOAD && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { -// m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); -// g_log->TraceInfo(u8"移载[%.3f]往左移动%.3f", load->GetShowPos(), loadCfgVal.rel); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetLoadAxisCanotMoveLeftInfo().c_str()); -// } -// } -// -// ImGui::SameLine(); -// -// if (IsLoadAxisCanMoveRight()) -// { -// ImGui::PushID("LoadMovePointRight"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); -// g_log->TraceInfo(u8"移载[%.3f]往右移动%.3f", load->GetShowPos(), loadCfgVal.rel); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移载轴右移 %.3fmm").c_str(), loadCfgVal.rel); -// } -// if (kb == GTS_AXIS_ID_LOAD && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) { -// m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); -// g_log->TraceInfo(u8"移载[%.3f]往右移动%.3f", load->GetShowPos(), loadCfgVal.rel); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetLoadAxisCanotMoveRightInfo().c_str()); -// } -// } -// -// if (IsLoadAxisCanMoveLeft()) { -// ImGui::PushID("LoadMoveLimitLeft"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// if (!m_PowderAssist.isLoadLeftRepeat) { -// m_PowderAssist.isLoadLeftRepeat = true; -// m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); -// g_log->TraceInfo(u8"移载[%.3f]往左连续移动", load->GetShowPos()); -// } -// } -// else { -// if (m_PowderAssist.isLoadLeftRepeat) -// { -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); -// m_PowderAssist.isLoadLeftRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移载轴左连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetLoadAxisCanotMoveLeftInfo().c_str()); -// } -// if (m_PowderAssist.isLoadLeftRepeat) { -// m_PowderAssist.isLoadLeftRepeat = false; -// } -// } -// -// if (kb == GTS_AXIS_ID_LOAD && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { -// if (IsLoadAxisCanMoveLeft()) { -// m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); -// g_log->TraceInfo(u8"移载[%.3f]往左连续移动", load->GetShowPos()); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveLeftInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_LeftArrow))) -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); -// } -// -// ImGui::SameLine(); -// if (IsLoadAxisCanMoveRight()) { -// ImGui::PushID("LoadMoveLimitRight"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// if (!m_PowderAssist.isLoadRightRepeat) { -// m_PowderAssist.isLoadRightRepeat = true; -// m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); -// g_log->TraceInfo(u8"移载[%.3f]往右连续移动", load->GetShowPos()); -// } -// -// } -// else { -// if (m_PowderAssist.isLoadRightRepeat) -// { -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); -// m_PowderAssist.isLoadRightRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移载轴右连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetLoadAxisCanotMoveRightInfo().c_str()); -// } -// if (m_PowderAssist.isLoadRightRepeat) { -// m_PowderAssist.isLoadRightRepeat = false; -// } -// } -// if (kb == GTS_AXIS_ID_LOAD && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) -// { -// if (IsLoadAxisCanMoveRight()) { -// m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); -// g_log->TraceInfo(u8"移载[%.3f]往右连续移动", load->GetShowPos()); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveRightInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_RightArrow))) -// { -// m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); -// } -// } -// ImGui::PushID("load_to_zero"); -// if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// load->SetZeroPos(); -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"移栽轴位置清零").c_str()); -// } -// -// ImGui::EndGroup(); -// -// ImGui::SameLine(); -// ImGui::BeginGroup(); -// -// //ImGui::Dummy(ImVec2(500,1)); -// ImGui::BeginChild("SupplyCtrl", ImVec2(500, 160)); -// ImGui::BeginGroup(); -// ImGui::Text(u8"移栽轴:%.3f", load->GetShowPos() / 1000.0f); -// ImGui::Text(u8"成型缸:%.3f", mold->GetShowPos() / 1000.0f); -// ImGui::Text(u8"铺粉臂:%.3f", arm->GetShowPos() / 1000.0f); -// ImGui::EndGroup(); -// ImGui::SameLine(350); -// ImGui::BeginGroup(); -// ImGui::RadioButton(_(u8"供粉轴").c_str(), &kb, GTS_AXIS_ID_SUPPLY); -// -// -// ImGui::PushID("SupplyMovePointFront"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_Axis->m_Supply->MovPoint(AxisConfig::ActiveDirect::FRONT); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(u8"下粉轴前转%.2f格", supplyCfgVal.rel); -// } -// if (kb == GTS_AXIS_ID_SUPPLY && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// m_Axis->m_Supply->MovPoint(AxisConfig::ActiveDirect::FRONT); -// } -// } -// ImGui::SameLine(); -// ImGui::PushID("SupplyMoveLimitFront"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// if (!m_PowderAssist.isSupplyNegativeRepeat) { -// m_PowderAssist.isSupplyNegativeRepeat = true; -// m_Axis->m_Supply->MovLimitStart(AxisConfig::ActiveDirect::FRONT); -// //OutputDebugString("left\n"); -// } -// } -// else { -// if (m_PowderAssist.isSupplyNegativeRepeat) -// { -// m_Axis->m_Supply->MovLimitStop(AxisConfig::ActiveDirect::FRONT); -// m_PowderAssist.isSupplyNegativeRepeat = false; -// //OutputDebugString("stop\n"); -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"供粉轴左连续").c_str()); -// } -// if (kb == GTS_AXIS_ID_SUPPLY && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// m_Axis->m_Supply->MovLimitStart(AxisConfig::ActiveDirect::FRONT); -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) -// m_Axis->m_Supply->MovLimitStop(AxisConfig::ActiveDirect::FRONT); -// } -// -// -// ImGui::EndGroup(); -// ImGui::EndChild(); -// -// MotionDrawAssist assit; -// assit.loadRPos = load->m_RPos > 1.0f ? 1.0f : load->m_RPos; -// int cylinderState = m_SignalState.m_CylinderState; -// if (cylinderState == CylinderInCleanUnConnectBox || -// cylinderState == CylinderInCleanConnectedBox || -// cylinderState == CylinderInHand) { -// assit.loadRPos = 1.0f; -// } -// -// assit.moldRpos = mold->m_RPos > 1.0f ? 1.0f : mold->m_RPos; -// assit.armRPos = arm->m_RPos; -// assit.isCleanPressure = true; -// assit.isPrintPressure = true; -// assit.isPrintMoldSupprt = false; -// assit.isPrintJackup = false; -// assit.isInPrintPos = (m_SignalState.m_CylinderState == CylinderInPrintLoaded || m_SignalState.m_CylinderState == CylinderInPrintUnLoaded); -// assit.isCleanClose = true; -// if (m_IOCfgWrapper->m_Clean3RCylinderContact)assit.isCleanConnect = m_IOCfgWrapper->m_Clean3RCylinderContact->IsActive(); -// ImGui::Powder1500V1(assit); -// ImGui::EndGroup(); -// -// ImGui::SameLine(); -// ImGui::BeginGroup(); -// ImGui::Dummy(ImVec2(0, 170)); -// ImGui::RadioButton(_(u8"铺粉臂").c_str(), &kb, GTS_AXIS_ID_ARM); -// if (IsArmCanMoveBack()) { -// ImGui::PushID("ArmMovPointBack"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::BACK); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴后移 %.3fmm").c_str(), armCfgVal.rel / 1000.0f); -// } -// if (kb == GTS_AXIS_ID_ARM && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { -// m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::BACK); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); -// } -// } -// -// ImGui::SameLine(); -// if (IsArmCanMoveBack()) { -// ImGui::PushID("ArmMoveLimitBack"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// if (!m_PowderAssist.isArmBackRepeat) { -// m_PowderAssist.isArmBackRepeat = true; -// m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::BACK); -// } -// } -// else { -// if (m_PowderAssist.isArmBackRepeat) -// { -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); -// m_PowderAssist.isArmBackRepeat = false; -// } -// } -// ImGui::PopID(); -// -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴后连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); -// } -// if (m_PowderAssist.isArmBackRepeat) { -// m_PowderAssist.isArmBackRepeat = false; -// } -// } -// if (kb == GTS_AXIS_ID_ARM && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) -// { -// if (IsArmCanMoveBack()) { -// m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::BACK); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetArmCanotMoveBackInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_UpArrow))) -// { -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); -// } -// } -// -// if (IsArmCanMoveFront()) { -// ImGui::PushID("ArmMovPointFront"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::FRONT); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴前移 %.3fmm").c_str(), armCfgVal.rel / 1000.0f); -// } -// -// if (kb == GTS_AXIS_ID_ARM && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::FRONT); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetArmCanotMoveFrontInfo().c_str()); -// } -// } -// -// ImGui::SameLine(); -// -// if (IsArmCanMoveFront()) { -// ImGui::PushID("ArmMoveLimitFront"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// if (!m_PowderAssist.isArmFrontRepeat) { -// m_PowderAssist.isArmFrontRepeat = true; -// m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::FRONT); -// } -// } -// else { -// if (m_PowderAssist.isArmFrontRepeat) -// { -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); -// m_PowderAssist.isArmFrontRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴前连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); -// } -// if (m_PowderAssist.isArmFrontRepeat) { -// m_PowderAssist.isArmFrontRepeat = false; -// } -// } -// if (kb == GTS_AXIS_ID_ARM && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// if (IsArmCanMoveFront()) { -// m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::FRONT); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetArmCanotMoveBackInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) -// m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); -// } -// -// ImGui::PushID("arm_to_zero"); -// if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// arm->SetZeroPos(); -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"铺粉轴位置清零").c_str()); -// } -// if (m_AxisRecordWrapper->m_PCArmOverLimitAlarm->GetValue()) -// { -// ImGui::SameLine(); -// ImGui::PushID("arm_alarm_remove"); -// if (ImGui::ImageButton(chartletManager->m_AlarmRemove->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_AxisRecordWrapper->m_PCArmOverLimitAlarmRemove->SetValue(true); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(u8"铺粉轴越限解除"); -// } -// } -// ImGui::Dummy(ImVec2(0, 35)); -// ImGui::RadioButton(_(u8"成型缸").c_str(), &kb, GTS_AXIS_ID_MOLD); -// if (IsMoldCanMoveUp()) { -// ImGui::PushID("MoldMovePointUp"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); -// g_log->TraceInfo(u8"升降[%.3f]往上移动%.3f", mold->GetShowPos(), moldCfgVal.rel); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸上移 %.3fmm").c_str(), moldCfgVal.rel / 1000.0f); -// } -// if (kb == GTS_AXIS_ID_MOLD && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { -// m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); -// g_log->TraceInfo(u8"升降[%.3f]往上移动%.3f", mold->GetShowPos(), moldCfgVal.rel); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetMoldCanotUpInfo().c_str()); -// } -// } -// -// ImGui::SameLine(); -// if (IsMoldCanMoveUp()) { -// ImGui::PushID("MoldMoveLimitUp"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { -// if (!m_PowderAssist.isMoldUpRepeat) { -// m_PowderAssist.isMoldUpRepeat = true; -// m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); -// g_log->TraceInfo(u8"升降[%.3f]往上连续移动", mold->GetShowPos()); -// } -// } -// else { -// if (m_PowderAssist.isMoldUpRepeat) -// { -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); -// m_PowderAssist.isMoldUpRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸上连续").c_str()); -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetMoldCanotUpInfo().c_str()); -// } -// if (m_PowderAssist.isMoldUpRepeat) { -// m_PowderAssist.isMoldUpRepeat = false; -// } -// } -// if (kb == GTS_AXIS_ID_MOLD && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { -// if (IsMoldCanMoveUp()) { -// m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); -// g_log->TraceInfo(u8"升降[%.3f]往上连续移动", mold->GetShowPos()); -// } -// else { -// g_Toast->AddToast(new ToastBean(GetMoldCanotUpInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_UpArrow))) -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); -// } -// -// if (IsMoldCanMoveDown()) { -// ImGui::PushID("MoldMovePointDown"); -// if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); -// g_log->TraceInfo(u8"升降[%.3f]往下移动%.3f", mold->GetShowPos(), moldCfgVal.rel); -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸下移 %.3fmm").c_str(), moldCfgVal.rel / 1000.0f); -// } -// if (kb == GTS_AXIS_ID_MOLD && !continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { -// m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); -// g_log->TraceInfo(u8"升降[%.3f]往下移动%.3f", mold->GetShowPos(), moldCfgVal.rel); -// } -// } -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetMoldCanotDownInfo().c_str()); -// } -// } -// -// ImGui::SameLine(); -// -// if (IsMoldCanMoveDown()) { -// ImGui::PushID("MoldMoveLimitDown"); -// if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// { -// if (!m_PowderAssist.isMoldDownRepeat) { -// m_PowderAssist.isMoldDownRepeat = true; -// m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); -// g_log->TraceInfo(u8"升降[%.3f]往下连续移动", mold->GetShowPos()); -// } -// } -// else { -// if (m_PowderAssist.isMoldDownRepeat) -// { -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); -// m_PowderAssist.isMoldDownRepeat = false; -// } -// } -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸下连续").c_str()); -// } -// -// } -// else { -// ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(GetMoldCanotDownInfo().c_str()); -// } -// if (m_PowderAssist.isMoldDownRepeat) { -// m_PowderAssist.isMoldDownRepeat = false; -// } -// } -// if (kb == GTS_AXIS_ID_MOLD && continue_move) { -// if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) -// { -// if (IsMoldCanMoveDown()) { -// m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); -// g_log->TraceInfo(u8"升降[%.3f]往连续下移动", mold->GetShowPos()); -// } -// else -// { -// g_Toast->AddToast(new ToastBean(GetMoldCanotDownInfo(), 5000, Toast::COLOR_ORANGE)); -// } -// -// } -// if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) -// { -// m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); -// } -// } -// ImGui::PushID("mold_to_zero"); -// if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) -// mold->SetZeroPos(); -// ImGui::PopID(); -// if (ImGui::IsItemHovered()) { -// ImGui::SetTooltip(_(u8"成型缸位置清零").c_str()); -// } -// ImGui::EndGroup(); -// -// ImGui::EndChild(); -// -// ImGui::End(); -// -//} +void HBDE1000::DrawPowderCtrl(bool* winShow) +{ + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(4, 8)); + ImGui::Begin(_(u8"铺粉装置调试").c_str(), winShow, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoNav); + ImGui::PopStyleVar(); + + int dstepflag = 1; + double fstepflag = 1.0; + long lstepflag = 1; + static int kb = GTS_AXIS_ID_ARM; + static bool continue_move = false; + + //CoverCfg* coverCfg = m_CoverCfg; + MainAxisState* mold = m_Axis->m_Mold->GetState(); + AxisState* load = m_Axis->m_Load->GetState(); + AxisState* arm = m_Axis->m_Arm->GetState(); + AxisState* supply = m_Axis->m_Supply->GetState(); + + AxisConfig* armCfg = m_Axis->m_Arm->GetConfig(); + AxisConfig::CfgValue armCfgVal; + armCfg->GetValue(armCfgVal); + AxisConfig* moldCfg = m_Axis->m_Mold->GetConfig(); + AxisConfig::CfgValue moldCfgVal; + moldCfg->GetValue(moldCfgVal); + //AxisConfig* cleanCfg = m_Axis->m_Clean->GetConfig(); + //AxisConfig::CfgValue cleanCfgVal; + //cleanCfg->GetValue(cleanCfgVal); + AxisConfig* loadCfg = m_Axis->m_Load->GetConfig(); + AxisConfig::CfgValue loadCfgVal; + loadCfg->GetValue(loadCfgVal); + AxisConfig* supplyCfg = m_Axis->m_Supply->GetConfig(); + AxisConfig::CfgValue supplyCfgVal; + supplyCfg->GetValue(supplyCfgVal); + + ChartletManager* chartletManager = ChartletManager::GetInstance(); + ImVec2 wpos = ImGui::GetWindowPos(); + SignalService::GetInstance().GetSignalState(m_SignalState); + if (m_PowderAssist.isLeftExpand) + { + ImGui::BeginGroup(); + ImGui::BeginChild("AxisSettingChild", ImVec2(420, 520), false, ImGuiWindowFlags_NoNav); + ImGui::BeginTabBar("AxisSetting"); + if (ImGui::BeginTabItem(_(u8"成型缸").c_str())) { + ImGui::PushItemWidth(100); + if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &moldCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + moldCfg->m_Speed->SetValue(moldCfgVal.speed); + g_log->TraceInfo(_(u8"更改成型缸速度:%.3f").c_str(), moldCfgVal.speed); + } + if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &moldCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + moldCfg->m_Acc->SetValue(moldCfgVal.acc); + g_log->TraceInfo(_(u8"更改成型缸加速度:%.3f").c_str(), moldCfgVal.acc); + } + if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &moldCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + moldCfg->m_Dec->SetValue(moldCfgVal.dec); + g_log->TraceInfo(u8"更新成型缸减速度:%.3f", moldCfgVal.dec); + } + if (ImGui::InputScalar(_(u8"点动行程(μm)").c_str(), ImGuiDataType_Float, &moldCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + moldCfg->m_RefDistance->SetValue(moldCfgVal.rel); + g_log->TraceInfo(_(u8"更改成型缸点动行程:%.3f").c_str(), moldCfgVal.rel); + } + ImGui::PopItemWidth(); + + if ((g_Admin > USER_ADMIN)) { + ImGui::Dummy(ImVec2(0, 20)); + if (mold->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 0) + { + if (ImGui::ImageButton(chartletManager->m_MoldMoveDownesting->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(u8"中断打印升降轴移动到安全位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"打印升降轴移动到安全位"); + } + else { + ImGui::ImageButton(chartletManager->m_MoldMoveDownestDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行打印升降轴移动到安全位"); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_MoldMoveDownestEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_MoldAbsTestPos->SetValue(0); + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(u8"执行打印升降轴移动到安全位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"打印升降轴移动到安全位"); + } + + ImGui::SameLine(); + + if (mold->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 3) + { + if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformBottoming->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(u8"中断打印轴移动到底座缸平面位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断打印轴移动到底座缸平面位"); + } + else { + ImGui::ImageButton(chartletManager->m_MoldMovePlatformBottomDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行打印轴移动到底座缸平面位"); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformBottomEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_MoldAbsTestPos->SetValue(3); + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(u8"执行打印轴移动到底座缸平面位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"打印轴移动到底座缸平面位"); + } + ImGui::SameLine(); + if (mold->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_MoldAbsTestPos->GetValue() == 4) + { + if (ImGui::ImageButton(chartletManager->m_MoldMovePlatforming->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(u8"中断打印轴移动到基板缸平面位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断打印轴移动到基板缸平面位"); + + } + else { + ImGui::ImageButton(chartletManager->m_MoldMovePlatformDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行打印轴移动到基板缸平面位"); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_MoldMovePlatformEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_MoldAbsTestPos->SetValue(4); + m_Axis->m_Mold->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(u8"执行打印轴移动到基板缸平面位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"打印轴移动到基板缸平面位"); + } + } + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"移载轴").c_str())) { + ImGui::PushItemWidth(100); + if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &loadCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + loadCfg->m_Speed->SetValue(loadCfgVal.speed); + g_log->TraceInfo(u8"更新移载轴速度:%.3f", loadCfgVal.speed); + } + if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &loadCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + loadCfg->m_Acc->SetValue(loadCfgVal.acc); + g_log->TraceInfo(u8"更新移载轴加速度:%.3f", loadCfgVal.acc); + } + if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &loadCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + loadCfg->m_Dec->SetValue(loadCfgVal.dec); + g_log->TraceInfo(u8"更新移载轴减速度:%.3f", loadCfgVal.dec); + } + if (ImGui::InputScalar(_(u8"点动行程(μm)").c_str(), ImGuiDataType_Float, &loadCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + loadCfg->m_RefDistance->SetValue(loadCfgVal.rel); + g_log->TraceInfo(u8"更新移载轴点动距离:%.3f", loadCfgVal.rel); + } + ImGui::PopItemWidth(); + if (g_Admin > USER_ADMIN) { + ImGui::Dummy(ImVec2(0, 20)); + + if (load->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 3) + { + if (ImGui::ImageButton(chartletManager->m_LoadHandPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(u8"中断移载轴移动到轨道吊装位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断移载轴移动到轨道吊装位"); + + } + else { + ImGui::ImageButton(chartletManager->m_LoadHandPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行移载轴移动到轨道吊装位"); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_LoadHandPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(3); + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(u8"执行移载轴移动到轨道吊装位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"移载轴移动到轨道吊装位"); + } + + ImGui::SameLine(); + if (load->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 1) + { + if (ImGui::ImageButton(chartletManager->m_LoadCleanPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(u8"中断移载轴移动到轨道清粉位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断移载轴移动到轨道清粉位"); + + } + else { + ImGui::ImageButton(chartletManager->m_LoadCleanPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行移载轴移动到轨道清粉位"); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_LoadCleanPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(1); + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(u8"执行移载轴移动到轨道清粉位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"移载轴移动到轨道清粉位"); + } + ImGui::SameLine(); + if (load->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_LoadAxisAbsTestPos->GetValue() == 0) + { + if (ImGui::ImageButton(chartletManager->m_LoadPrintPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(u8"中断移载轴移动到轨道打印位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断移载轴移动到轨道打印位"); + + } + else { + ImGui::ImageButton(chartletManager->m_LoadPrintPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行移载轴移动到轨道打印位"); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_LoadPrintPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_LoadAxisAbsTestPos->SetValue(0); + m_Axis->m_Load->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(u8"执行移载轴移动到轨道打印位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"移栽轴移动到轨道打印位"); + } + } + + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"铺粉轴").c_str())) { + ImGui::PushItemWidth(100); + if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &armCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + armCfg->m_Speed->SetValue(armCfgVal.speed); + g_log->TraceInfo(u8"更新铺粉轴速度:%.3f", armCfgVal.speed); + } + if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &armCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + armCfg->m_Acc->SetValue(armCfgVal.acc); + g_log->TraceInfo(u8"更新铺粉轴加速度:%.3f", armCfgVal.acc); + } + if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &armCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + armCfg->m_Dec->SetValue(armCfgVal.dec); + g_log->TraceInfo(u8"更新铺粉轴减速度:%.3f", armCfgVal.dec); + } + if (ImGui::InputScalar(_(u8"点动行程(μm)").c_str(), ImGuiDataType_Float, &armCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + armCfg->m_RefDistance->SetValue(armCfgVal.rel); + g_log->TraceInfo(u8"更新铺粉轴点动距离:%.3f", armCfgVal.rel); + } + ImGui::PopItemWidth(); + if (g_Admin > USER_ADMIN) { + ImGui::Dummy(ImVec2(0, 20)); + + if (arm->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 0) + { + if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(u8"中断铺粉轴移动到接粉后位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断铺粉轴移动到接粉后位"); + + } + else { + ImGui::ImageButton(chartletManager->m_ArmAcceptPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行铺粉轴移动到接粉后位"); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_ArmAbsTestPos->SetValue(2); + m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(u8"执行铺粉轴移动到接粉后位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"铺粉轴移动到接粉后位"); + } + ImGui::SameLine(); + + if (arm->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 0) + { + if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(u8"中断铺粉轴移动到接粉位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断铺粉轴移动到接粉位"); + + } + else { + ImGui::ImageButton(chartletManager->m_ArmAcceptPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行铺粉轴移动到接粉位"); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_ArmAcceptPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_ArmAbsTestPos->SetValue(0); + m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(u8"执行铺粉轴移动到接粉位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"铺粉轴移动到接粉位"); + } + + if (arm->m_MoveAbsPos) + { + if (m_SysParamWrapper->m_ArmAbsTestPos->GetValue() == 1) + { + if (ImGui::ImageButton(chartletManager->m_ArmFrontDropPosing->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(false); + g_log->TraceInfo(u8"中断铺粉轴移动到前下粉位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"中断铺粉轴移动到前下粉位"); + + } + else { + ImGui::ImageButton(chartletManager->m_ArmFrontDropPosDisable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"不能执行铺粉轴移动到前下粉位"); + } + } + else { + if (ImGui::ImageButton(chartletManager->m_ArmFrontDropPosEnable->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_SysParamWrapper->m_ArmAbsTestPos->SetValue(1); + m_Axis->m_Arm->GetCtrl()->m_MoveAbsPos->SetValue(true); + g_log->TraceInfo(u8"执行铺粉轴移动到前下粉位"); + } + if (ImGui::IsItemHovered())ImGui::SetTooltip(u8"铺粉轴移动到前下粉位"); + } + } + + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(_(u8"供粉轴").c_str())) { + ImGui::PushItemWidth(100); + if (ImGui::InputScalar(_(u8"速度(mm/s)").c_str(), ImGuiDataType_Float, &supplyCfgVal.speed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + supplyCfg->m_Speed->SetValue(supplyCfgVal.speed); + g_log->TraceInfo(u8"更新下粉轴速度:%.3f", supplyCfgVal.speed); + } + if (ImGui::InputScalar(_(u8"加速度(m/s²)").c_str(), ImGuiDataType_Float, &supplyCfgVal.acc, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + supplyCfg->m_Acc->SetValue(supplyCfgVal.acc); + g_log->TraceInfo(u8"更新下粉轴加速度:%.3f", supplyCfgVal.acc); + } + if (ImGui::InputScalar(_(u8"减速度(m/s2)").c_str(), ImGuiDataType_Float, &supplyCfgVal.dec, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) + { + supplyCfg->m_Dec->SetValue(supplyCfgVal.dec); + g_log->TraceInfo(u8"更新下粉轴减速度:%.3f", supplyCfgVal.dec); + } + if (ImGui::InputScalar(u8"粉格", ImGuiDataType_Float, &supplyCfgVal.rel, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + supplyCfg->m_RefDistance->SetValue(supplyCfgVal.rel); + g_log->TraceInfo(u8"更新下粉轴相对移动距离:%.3f", supplyCfgVal.rel); + } + ImGui::PopItemWidth(); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(u8"铺粉")) { + AxisData ad; + vector ss = { _(u8"双向铺粉"),_(u8"单向铺粉"),_(u8"不铺粉") ,_(u8"双向铺粉2") ,_(u8"单向铺粉2"),_(u8"单向铺粉3") }; + m_SysParamWrapper->GetAxisData(ad); + ImGui::PushItemWidth(120); + if (ImGui::SemicolonCombo(_(u8"铺粉类型").c_str(), &ad.CoverType, ss)) { + m_SysParamWrapper->m_CoverType->SetValue(ad.CoverType); + g_log->TraceInfo(u8"更新铺粉方式:%d", ad.CoverType); + } + + if (ImGui::InputFloat(_(u8"打印铺粉速度(mm/s)").c_str(), &ad.CoverSpeed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_CoverSpeed->SetValue(ad.CoverSpeed); + g_log->TraceInfo(u8"更新铺粉速度:%.3f", ad.CoverSpeed); + } + if (ImGui::InputFloat(_(u8"打印单向铺粉返回变速(mm/s)").c_str(), &ad.CoverReturnSpeed, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_CoverReturnSpeed->SetValue(ad.CoverReturnSpeed); + g_log->TraceInfo(u8"更新打印单向返回速度:%.3f", ad.CoverReturnSpeed); + } + if (ImGui::InputFloat(_(u8"打印单向铺粉距离(mm)").c_str(), &ad.CoverDistance, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_CoverDistance->SetValue(ad.CoverDistance); + g_log->TraceInfo(u8"更新打印单向铺粉距离:%.3f", ad.CoverDistance); + } + if (ImGui::InputFloat(_(u8"打印铺粉层厚(μm)").c_str(), &ad.LayerThick, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_LayerThick->SetValue(ad.LayerThick); + g_log->TraceInfo(u8"更新打印铺粉层厚:%.3f", ad.LayerThick); + } + if (ImGui::InputFloat(_(u8"打印间隙补偿(μm)").c_str(), &ad.FixGap, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_FixGap->SetValue(ad.FixGap); + g_log->TraceInfo(u8"更新打印间隙补偿:%.3f", ad.FixGap); + } + if (ImGui::InputScalar(_(u8"打印铺粉格数").c_str(), ImGuiDataType_S16, &ad.SupplyCount, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_SupplyCount->SetValue(ad.SupplyCount); + g_log->TraceInfo(u8"更新打印铺粉格数:%d", ad.SupplyCount); + } + if (ImGui::InputScalar(_(u8"打印下粉时间(ms)").c_str(), ImGuiDataType_S16, &ad.SupplyTime, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_SupplyTime->SetValue(ad.SupplyTime); + g_log->TraceInfo(u8"更新打印下粉时间:%d", ad.SupplyTime); + } + if (ImGui::InputFloat(_(u8"铺粉调试层厚(μm)").c_str(), &ad.DebugLayerThick, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugLayerThick->SetValue(ad.DebugLayerThick); + g_log->TraceInfo(u8"更新铺粉调试层厚:%.3f", ad.DebugLayerThick); + } + if (ImGui::InputFloat(_(u8"铺粉调试间隙(μm)").c_str(), &ad.DebugFixGap, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugFixGap->SetValue(ad.DebugFixGap); + g_log->TraceInfo(u8"更新铺粉调试间隙补偿:%.3f", ad.DebugFixGap); + } + if (ImGui::InputScalar(_(u8"铺粉调试下粉时间(ms)").c_str(), ImGuiDataType_S16, &ad.DebugSupplyTime, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugSupplyTime->SetValue(ad.DebugSupplyTime); + g_log->TraceInfo(u8"更新铺粉调试下粉时间:%d", ad.DebugSupplyTime); + } + if (ImGui::InputScalar(_(u8"铺粉调试格数").c_str(), ImGuiDataType_S16, &ad.DebugSupplyCount, 0, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugSupplyCount->SetValue(ad.DebugSupplyCount); + g_log->TraceInfo(u8"更新铺粉调试格数:%d", ad.DebugSupplyCount); + } + if (ImGui::InputFloat(_(u8"铺粉调试铺粉距离(mm)").c_str(), &ad.DebugCoverDistance, 0, 0, "%.3f", ImGuiInputTextFlags_EnterReturnsTrue)) { + m_SysParamWrapper->m_DebugCoverDistance->SetValue(ad.DebugCoverDistance); + g_log->TraceInfo(u8"更新铺粉调试距离:%.3f", ad.DebugCoverDistance); + } + ImGui::PopItemWidth(); + + ImGui::Dummy(ImVec2(0, 20)); + if (m_SignalStateWrapper->m_IsCovering->GetValue()) { + ImGui::PushID("CoverTrigerStop"); + if (ImGui::Button(u8"停止", ImVec2(-1, 0))) { + m_SignalStateWrapper->m_CoverTriger->SetValue(false); + g_log->TraceInfo(u8"停止铺粉调试"); + } + ImGui::PopID(); + } + else { + // if (m_Purifier->IsCoverWindSet()) + // { + // m_Purifier->ResetSlowWind(); + // } + if (ImGui::Button(u8"铺粉调试", ImVec2(-1, 0))) { + if (m_SignalStateWrapper->m_CoverEnable->GetValue()) { + // if (m_ExtCfg->m_AutoCoverSlowWind && m_Purifier->IsWindActive()) { + // m_Purifier->SetCoverWind(true); + // } + m_SignalStateWrapper->m_IsCoverDebug->SetValue(true); + Sleep(50); + m_SignalStateWrapper->m_ManualCoverTest->SetValue(true); + Sleep(50); + g_log->TraceInfo(u8"执行铺粉调试"); + } + else { + g_Toast->AddToast(new ToastBean(u8"铺粉调试条件不成立", 3000)); + } + } + } + ImGui::EndTabItem(); + } + if (g_Admin > USER_ADMIN) { + if (ImGui::BeginTabItem(u8"控制")) { + if (m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue()) { + ImGui::PushID("CylinderReachPrintTrigerStop"); + if (ImGui::Button(u8"停止", ImVec2(177, 0))) { + m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue()); + if (ImGui::Button(u8"移动缸体到打印位", ImVec2(177, 0))) { + if (m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(true); + g_log->TraceInfo(u8"执行移动缸体到打印位"); + } + else { + g_Toast->AddToast(new ToastBean(u8"移动缸体到打印位条件不成立", 3000)); + } + m_RunCfg->m_HadSetBasePlatformPoint = false; + } + ImGui::PopItemFlag(); + } + ImGui::SameLine(); + if (m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue()) { + ImGui::PushID("CylinderReachCleanTrigerStop"); + if (ImGui::Button(u8"停止", ImVec2(177, 0))) { + m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue()); + if (ImGui::Button(u8"移动缸体到清粉位", ImVec2(177, 0))) { + if (m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(true); + g_log->TraceInfo(u8"执行移动缸体到清粉位"); + } + else { + g_Toast->AddToast(new ToastBean(u8"移动缸体到清粉位条件不成立", 3000)); + } + + } + ImGui::PopItemFlag(); + } + + + if (m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue()) { + ImGui::PushID("CylinderPrintLoadTrigerStop"); + if (ImGui::Button(u8"停止", ImVec2(177, 0))) { + m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue()); + if (ImGui::Button(u8"缸体打印位装载", ImVec2(177, 0))) { + if (m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(true); + g_log->TraceInfo(u8"执行缸体打印位装载"); + } + else { + g_Toast->AddToast(new ToastBean(u8"缸体打印位装载条件不成立", 3000)); + } + m_RunCfg->m_HadSetBasePlatformPoint = false; + } + ImGui::PopItemFlag(); + } + ImGui::SameLine(); + if (m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue()) { + ImGui::PushID("CylinderConnectCleanBoxTrigerStop"); + if (ImGui::Button(u8"停止", ImVec2(177, 0))) { + m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue()); + if (ImGui::Button(u8"缸体连接清粉箱", ImVec2(177, 0))) { + if (m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(true); + g_log->TraceInfo(u8"执行缸体连接清粉箱"); + } + else { + g_Toast->AddToast(new ToastBean(u8"缸体连接清粉箱条件不成立", 3000)); + } + } + ImGui::PopItemFlag(); + } + + if (m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue()) { + ImGui::PushID("CylinderPrintUnloadTrigerStop"); + if (ImGui::Button(u8"停止", ImVec2(177, 0))) { + m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue()); + if (ImGui::Button(u8"缸体打印位卸载", ImVec2(177, 0))) { + if (m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(true); + g_log->TraceInfo(u8"执行缸体打印位卸载"); + } + else { + g_Toast->AddToast(new ToastBean(u8"缸体打印位卸载条件不成立", 3000)); + } + m_RunCfg->m_HadSetBasePlatformPoint = false; + } + ImGui::PopItemFlag(); + } + ImGui::SameLine(); + if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue()) { + ImGui::PushID("CylinderDisconnectCleanBoxTrigerStop"); + if (ImGui::Button(u8"停止", ImVec2(177, 0))) { + m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(false); + } + ImGui::PopID(); + } + else { + ImGui::PushItemFlag(ImGuiItemFlags_Disabled, !m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue()); + if (ImGui::Button(u8"缸体脱离清粉箱", ImVec2(177, 0))) { + if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue()) { + m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(true); + g_log->TraceInfo(u8"执行缸体脱离清粉箱"); + } + else { + g_Toast->AddToast(new ToastBean(u8"缸体脱离清粉箱条件不成立", 3000)); + } + } + ImGui::PopItemFlag(); + } + + ImGui::EndTabItem(); + } + } + ImGui::EndTabBar(); + ImGui::EndChild(); + + + if (ImGui::Button(_(u8"运动急停").c_str(), ImVec2(260, 0))) { + //m_Axis->StopAll(); + DataHandle::Instance()->SetPushMsg(AXISSTOPALL); + g_log->TraceInfo(u8"运动急停"); + } + + ImGui::EndGroup(); + ImGui::SameLine(); + } + + ImGui::BeginChild("AxisCtrl", ImVec2(820, 670)); + if (m_PowderAssist.isLeftExpand) { + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::HNARROW]->GetTex(), ImVec2(38, 50), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_PowderAssist.isLeftExpand = !m_PowderAssist.isLeftExpand; + } + } + else { + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::HEXPAND]->GetTex(), ImVec2(38, 50), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_PowderAssist.isLeftExpand = !m_PowderAssist.isLeftExpand; + } + } + + ImGui::SameLine(); + ImGui::BeginGroup(); + if (ImGui::ToggleButton(_(u8"连续运动").c_str(), continue_move)) + continue_move = !continue_move; + ImGui::SameLine(); + ImGui::Text(_(u8"连续运动").c_str()); + + ImGui::Dummy(ImVec2(0, 250)); + + MACHINEPARAM mp; + GetMachineParam(mp); + if (ImGui::ImageButton(chartletManager->m_LoadOut->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + //LoadOut(); + DataHandle::Instance()->SetPushMsg(LOADOUT); + ImGui::OpenPopup(u8"移载载出"); + g_log->TraceInfo(u8"执行移出"); + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(u8"载出"); + } + ImGui::SameLine(); + if (ImGui::ImageButton(chartletManager->m_LoadIn->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + //LoadIn(); + DataHandle::Instance()->SetPushMsg(LOADIN); + ImGui::OpenPopup(u8"移载载入"); + g_log->TraceInfo(u8"执行移入"); + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(u8"载入"); + + } + + if (ImGui::BeginPopupModal(u8"移载载入", NULL, ImGuiWindowFlags_AlwaysAutoResize)) { + if (GetLoadInProcStep() == In_Start) { + ImGui::Text(u8"移载开始载入"); + } + if (GetLoadInProcStep() == In_CylinderDisconnectCleanBox) { + ImGui::Text(u8"缸体与清粉箱分离中"); + } + if (GetLoadInProcStep() == In_CylinderReachPrint) { + ImGui::Text(u8"缸体到打印位运行中"); + } + if (GetLoadInProcStep() == In_CylinderPrintLoad) { + ImGui::Text(u8"缸体打印位装载运行中"); + } + + if (mp.m_LoadInResut == In_Intercept) { + ImGui::TextColored(Toast::COLOR_ORANGE, mp.m_LoadInfo.c_str()); + if (ImGui::Button(u8"确定", ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + else if (mp.m_LoadInResut == In_Success) { + ImGui::TextColored(Toast::COLOR_GREEN, mp.m_LoadInfo.c_str()); + if (ImGui::Button(u8"确定", ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + else if (mp.m_LoadInResut > In_Success) { + ImGui::TextColored(Toast::COLOR_RED, mp.m_LoadInfo.c_str()); + if (ImGui::Button(u8"确定", ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + + if (IsLoadIn()) { + if (ImGui::Button(u8"中断载入", ImVec2(-1, 0))) + { + //InterceptLoad(); + DataHandle::Instance()->SetPushMsg(INTERCEPTLOAD); + } + } + ImGui::EndPopup(); + } + + + if (ImGui::BeginPopupModal(u8"移载载出", NULL, ImGuiWindowFlags_AlwaysAutoResize)) { + if (GetLoadOutProcSetp() == Out_Start) + { + ImGui::Text(u8"移载开始载出"); + } + if (GetLoadOutProcSetp() == Out_CylinderPrintUnload) + { + ImGui::Text(u8"缸体打印位卸载运行中"); + } + if (GetLoadOutProcSetp() == Out_CylinderReachClean) + { + ImGui::Text(u8"缸体到清粉位运行中"); + } + if (GetLoadOutProcSetp() == Out_CylinderConnectCleanBox) + { + ImGui::Text(u8"缸体与清粉箱连接中"); + } + if (GetLoadOutProcSetp() == Out_CylinderReachHand) + { + ImGui::Text(u8"缸体与吊装位运行中"); + } + + if (GetLoadOutProcSetp() == Out_CylinderDisconnectCleanBox) + { + ImGui::Text(u8"缸体与清粉箱分离中"); + } + + + if (m_NeedWaitSelectOutPos) { + vector combtemp = { _(u8"清粉位"),_(u8"吊装位") }; + ImGui::SemicolonCombo(u8"选择载出位置", &m_SelectOutPos, combtemp); + if (ImGui::Button(u8"下一步")) + { + m_WaitSelectOutPosCommit = true; + } + } + + + if (mp.m_WaitConnectBoxCommit) { + if (ImGui::Button(u8"执行缸体与清粉箱连接")) + { + SetWaitConnectBoxCommit(false); + } + } + + if (mp.m_LoadOutResut == Out_Intercept) { + ImGui::TextColored(Toast::COLOR_ORANGE,mp.m_LoadInfo.c_str()); + if (ImGui::Button(u8"确定", ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + else if (mp.m_LoadOutResut == Out_Success) { + ImGui::TextColored(Toast::COLOR_GREEN, mp.m_LoadInfo.c_str()); + if (ImGui::Button(u8"确定", ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + else if (mp.m_LoadOutResut > Out_Success) { + ImGui::TextColored(Toast::COLOR_RED, mp.m_LoadInfo.c_str()); + if (ImGui::Button(u8"确定", ImVec2(-1, 0))) + { + ImGui::CloseCurrentPopup(); + } + } + + if (IsLoadOut()) { + if (ImGui::Button(u8"中断载出", ImVec2(-1, 0))) + { + //InterceptLoad(); + DataHandle::Instance()->SetPushMsg(INTERCEPTLOAD); + } + } + ImGui::EndPopup(); + } + + ImGui::Dummy(ImVec2(0, 80)); + ImGui::RadioButton(_(u8"移载轴").c_str(), &kb, GTS_AXIS_ID_LOAD); + if (IsLoadAxisCanMoveLeft()) + { + ImGui::PushID("LoadMovePointLeft"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); + g_log->TraceInfo(u8"移载[%.3f]往左移动%.3f", load->GetShowPos(), loadCfgVal.rel); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移载轴左移 %.3fmm").c_str(), loadCfgVal.rel / 1000.0f); + } + if (kb == GTS_AXIS_ID_LOAD && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { + m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::LEFT); + g_log->TraceInfo(u8"移载[%.3f]往左移动%.3f", load->GetShowPos(), loadCfgVal.rel); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetLoadAxisCanotMoveLeftInfo().c_str()); + } + } + + ImGui::SameLine(); + + if (IsLoadAxisCanMoveRight()) + { + ImGui::PushID("LoadMovePointRight"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); + g_log->TraceInfo(u8"移载[%.3f]往右移动%.3f", load->GetShowPos(), loadCfgVal.rel); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移载轴右移 %.3fmm").c_str(), loadCfgVal.rel); + } + if (kb == GTS_AXIS_ID_LOAD && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) { + m_Axis->m_Load->MovPoint(AxisConfig::ActiveDirect::RIGHT); + g_log->TraceInfo(u8"移载[%.3f]往右移动%.3f", load->GetShowPos(), loadCfgVal.rel); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetLoadAxisCanotMoveRightInfo().c_str()); + } + } + + if (IsLoadAxisCanMoveLeft()) { + ImGui::PushID("LoadMoveLimitLeft"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + if (!m_PowderAssist.isLoadLeftRepeat) { + m_PowderAssist.isLoadLeftRepeat = true; + m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); + g_log->TraceInfo(u8"移载[%.3f]往左连续移动", load->GetShowPos()); + } + } + else { + if (m_PowderAssist.isLoadLeftRepeat) + { + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); + m_PowderAssist.isLoadLeftRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移载轴左连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::LEFT_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetLoadAxisCanotMoveLeftInfo().c_str()); + } + if (m_PowderAssist.isLoadLeftRepeat) { + m_PowderAssist.isLoadLeftRepeat = false; + } + } + + if (kb == GTS_AXIS_ID_LOAD && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow), false)) { + if (IsLoadAxisCanMoveLeft()) { + m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::LEFT); + g_log->TraceInfo(u8"移载[%.3f]往左连续移动", load->GetShowPos()); + } + else { + g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveLeftInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_LeftArrow))) + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::LEFT); + } + + ImGui::SameLine(); + if (IsLoadAxisCanMoveRight()) { + ImGui::PushID("LoadMoveLimitRight"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + if (!m_PowderAssist.isLoadRightRepeat) { + m_PowderAssist.isLoadRightRepeat = true; + m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); + g_log->TraceInfo(u8"移载[%.3f]往右连续移动", load->GetShowPos()); + } + + } + else { + if (m_PowderAssist.isLoadRightRepeat) + { + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); + m_PowderAssist.isLoadRightRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移载轴右连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::RIGHT_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetLoadAxisCanotMoveRightInfo().c_str()); + } + if (m_PowderAssist.isLoadRightRepeat) { + m_PowderAssist.isLoadRightRepeat = false; + } + } + if (kb == GTS_AXIS_ID_LOAD && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow), false)) + { + if (IsLoadAxisCanMoveRight()) { + m_Axis->m_Load->MovLimitStart(AxisConfig::ActiveDirect::RIGHT); + g_log->TraceInfo(u8"移载[%.3f]往右连续移动", load->GetShowPos()); + } + else { + g_Toast->AddToast(new ToastBean(GetLoadAxisCanotMoveRightInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_RightArrow))) + { + m_Axis->m_Load->MovLimitStop(AxisConfig::ActiveDirect::RIGHT); + } + } + ImGui::PushID("load_to_zero"); + if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + load->SetZeroPos(); + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"移栽轴位置清零").c_str()); + } + + ImGui::EndGroup(); + + ImGui::SameLine(); + ImGui::BeginGroup(); + + //ImGui::Dummy(ImVec2(500,1)); + ImGui::BeginChild("SupplyCtrl", ImVec2(500, 160)); + ImGui::BeginGroup(); + ImGui::Text(u8"移栽轴:%.3f", load->GetShowPos() / 1000.0f); + ImGui::Text(u8"成型缸:%.3f", mold->GetShowPos() / 1000.0f); + ImGui::Text(u8"铺粉臂:%.3f", arm->GetShowPos() / 1000.0f); + ImGui::EndGroup(); + ImGui::SameLine(350); + ImGui::BeginGroup(); + ImGui::RadioButton(_(u8"供粉轴").c_str(), &kb, GTS_AXIS_ID_SUPPLY); + + + ImGui::PushID("SupplyMovePointFront"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_Axis->m_Supply->MovPoint(AxisConfig::ActiveDirect::FRONT); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(u8"下粉轴前转%.2f格", supplyCfgVal.rel); + } + if (kb == GTS_AXIS_ID_SUPPLY && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + m_Axis->m_Supply->MovPoint(AxisConfig::ActiveDirect::FRONT); + } + } + ImGui::SameLine(); + ImGui::PushID("SupplyMoveLimitFront"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + if (!m_PowderAssist.isSupplyNegativeRepeat) { + m_PowderAssist.isSupplyNegativeRepeat = true; + m_Axis->m_Supply->MovLimitStart(AxisConfig::ActiveDirect::FRONT); + //OutputDebugString("left\n"); + } + } + else { + if (m_PowderAssist.isSupplyNegativeRepeat) + { + m_Axis->m_Supply->MovLimitStop(AxisConfig::ActiveDirect::FRONT); + m_PowderAssist.isSupplyNegativeRepeat = false; + //OutputDebugString("stop\n"); + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"供粉轴左连续").c_str()); + } + if (kb == GTS_AXIS_ID_SUPPLY && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + m_Axis->m_Supply->MovLimitStart(AxisConfig::ActiveDirect::FRONT); + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) + m_Axis->m_Supply->MovLimitStop(AxisConfig::ActiveDirect::FRONT); + } + + + ImGui::EndGroup(); + ImGui::EndChild(); + + MotionDrawAssist assit; + AxisStateValue moldValue; + mold->GetValue(moldValue); + AxisStateValue armValue; + arm->GetValue(armValue); + AxisStateValue loadValue; + load->GetValue(loadValue); + + assit.loadRPos = loadValue.RPos > 1.0f ? 1.0f : loadValue.RPos; + int cylinderState = m_SignalState.m_CylinderState; + if (cylinderState == CylinderInCleanUnConnectBox || + cylinderState == CylinderInCleanConnectedBox || + cylinderState == CylinderInHand) { + assit.loadRPos = 1.0f; + } + + assit.moldRpos = moldValue.RPos > 1.0f ? 1.0f : moldValue.RPos; + assit.armRPos = armValue.RPos; + assit.isCleanPressure = true; + assit.isPrintPressure = true; + assit.isPrintMoldSupprt = false; + assit.isPrintJackup = false; + assit.isInPrintPos = (m_SignalState.m_CylinderState == CylinderInPrintLoaded || m_SignalState.m_CylinderState == CylinderInPrintUnLoaded); + assit.isCleanClose = true; + if (m_IOCfgWrapper->m_Clean3RCylinderContact)assit.isCleanConnect = m_IOCfgWrapper->m_Clean3RCylinderContact->IsActive(); + ImGui::Powder1500V1(assit); + ImGui::EndGroup(); + + ImGui::SameLine(); + ImGui::BeginGroup(); + ImGui::Dummy(ImVec2(0, 170)); + ImGui::RadioButton(_(u8"铺粉臂").c_str(), &kb, GTS_AXIS_ID_ARM); + if (IsArmCanMoveBack()) { + ImGui::PushID("ArmMovPointBack"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::BACK); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴后移 %.3fmm").c_str(), armCfgVal.rel / 1000.0f); + } + if (kb == GTS_AXIS_ID_ARM && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { + m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::BACK); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); + } + } + + ImGui::SameLine(); + if (IsArmCanMoveBack()) { + ImGui::PushID("ArmMoveLimitBack"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + if (!m_PowderAssist.isArmBackRepeat) { + m_PowderAssist.isArmBackRepeat = true; + m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::BACK); + } + } + else { + if (m_PowderAssist.isArmBackRepeat) + { + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); + m_PowderAssist.isArmBackRepeat = false; + } + } + ImGui::PopID(); + + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴后连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); + } + if (m_PowderAssist.isArmBackRepeat) { + m_PowderAssist.isArmBackRepeat = false; + } + } + if (kb == GTS_AXIS_ID_ARM && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) + { + if (IsArmCanMoveBack()) { + m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::BACK); + } + else { + g_Toast->AddToast(new ToastBean(GetArmCanotMoveBackInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_UpArrow))) + { + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::BACK); + } + } + + if (IsArmCanMoveFront()) { + ImGui::PushID("ArmMovPointFront"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::FRONT); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴前移 %.3fmm").c_str(), armCfgVal.rel / 1000.0f); + } + + if (kb == GTS_AXIS_ID_ARM && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + m_Axis->m_Arm->MovPoint(AxisConfig::ActiveDirect::FRONT); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetArmCanotMoveFrontInfo().c_str()); + } + } + + ImGui::SameLine(); + + if (IsArmCanMoveFront()) { + ImGui::PushID("ArmMoveLimitFront"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + if (!m_PowderAssist.isArmFrontRepeat) { + m_PowderAssist.isArmFrontRepeat = true; + m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::FRONT); + } + } + else { + if (m_PowderAssist.isArmFrontRepeat) + { + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); + m_PowderAssist.isArmFrontRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴前连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetArmCanotMoveBackInfo().c_str()); + } + if (m_PowderAssist.isArmFrontRepeat) { + m_PowderAssist.isArmFrontRepeat = false; + } + } + if (kb == GTS_AXIS_ID_ARM && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + if (IsArmCanMoveFront()) { + m_Axis->m_Arm->MovLimitStart(AxisConfig::ActiveDirect::FRONT); + } + else { + g_Toast->AddToast(new ToastBean(GetArmCanotMoveBackInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) + m_Axis->m_Arm->MovLimitStop(AxisConfig::ActiveDirect::FRONT); + } + + ImGui::PushID("arm_to_zero"); + if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + arm->SetZeroPos(); + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"铺粉轴位置清零").c_str()); + } + if (m_AxisRecordWrapper->m_PCArmOverLimitAlarm->GetValue()) + { + ImGui::SameLine(); + ImGui::PushID("arm_alarm_remove"); + if (ImGui::ImageButton(chartletManager->m_AlarmRemove->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_AxisRecordWrapper->m_PCArmOverLimitAlarmRemove->SetValue(true); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(u8"铺粉轴越限解除"); + } + } + ImGui::Dummy(ImVec2(0, 35)); + ImGui::RadioButton(_(u8"成型缸").c_str(), &kb, GTS_AXIS_ID_MOLD); + if (IsMoldCanMoveUp()) { + ImGui::PushID("MoldMovePointUp"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); + g_log->TraceInfo(u8"升降[%.3f]往上移动%.3f", mold->GetShowPos(), moldCfgVal.rel); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸上移 %.3fmm").c_str(), moldCfgVal.rel / 1000.0f); + } + if (kb == GTS_AXIS_ID_MOLD && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { + m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::UP); + g_log->TraceInfo(u8"升降[%.3f]往上移动%.3f", mold->GetShowPos(), moldCfgVal.rel); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetMoldCanotUpInfo().c_str()); + } + } + + ImGui::SameLine(); + if (IsMoldCanMoveUp()) { + ImGui::PushID("MoldMoveLimitUp"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) { + if (!m_PowderAssist.isMoldUpRepeat) { + m_PowderAssist.isMoldUpRepeat = true; + m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); + g_log->TraceInfo(u8"升降[%.3f]往上连续移动", mold->GetShowPos()); + } + } + else { + if (m_PowderAssist.isMoldUpRepeat) + { + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); + m_PowderAssist.isMoldUpRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸上连续").c_str()); + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::UP_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetMoldCanotUpInfo().c_str()); + } + if (m_PowderAssist.isMoldUpRepeat) { + m_PowderAssist.isMoldUpRepeat = false; + } + } + if (kb == GTS_AXIS_ID_MOLD && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow), false)) { + if (IsMoldCanMoveUp()) { + m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::UP); + g_log->TraceInfo(u8"升降[%.3f]往上连续移动", mold->GetShowPos()); + } + else { + g_Toast->AddToast(new ToastBean(GetMoldCanotUpInfo(), 5000, Toast::COLOR_ORANGE)); + } + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_UpArrow))) + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::UP); + } + + if (IsMoldCanMoveDown()) { + ImGui::PushID("MoldMovePointDown"); + if (ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); + g_log->TraceInfo(u8"升降[%.3f]往下移动%.3f", mold->GetShowPos(), moldCfgVal.rel); + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸下移 %.3fmm").c_str(), moldCfgVal.rel / 1000.0f); + } + if (kb == GTS_AXIS_ID_MOLD && !continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) { + m_Axis->m_Mold->MovPoint(AxisConfig::ActiveDirect::DOWN); + g_log->TraceInfo(u8"升降[%.3f]往下移动%.3f", mold->GetShowPos(), moldCfgVal.rel); + } + } + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetMoldCanotDownInfo().c_str()); + } + } + + ImGui::SameLine(); + + if (IsMoldCanMoveDown()) { + ImGui::PushID("MoldMoveLimitDown"); + if (ImGui::ImageButtonEx(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_GREEN_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + { + if (!m_PowderAssist.isMoldDownRepeat) { + m_PowderAssist.isMoldDownRepeat = true; + m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); + g_log->TraceInfo(u8"升降[%.3f]往下连续移动", mold->GetShowPos()); + } + } + else { + if (m_PowderAssist.isMoldDownRepeat) + { + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); + m_PowderAssist.isMoldDownRepeat = false; + } + } + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸下连续").c_str()); + } + + } + else { + ImGui::ImageButton(chartletManager->m_TextureMap[ChartletManager::DOWN_ARROW_RED_BAR]->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(GetMoldCanotDownInfo().c_str()); + } + if (m_PowderAssist.isMoldDownRepeat) { + m_PowderAssist.isMoldDownRepeat = false; + } + } + if (kb == GTS_AXIS_ID_MOLD && continue_move) { + if (ImGui::IsWindowFocused() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow), false)) + { + if (IsMoldCanMoveDown()) { + m_Axis->m_Mold->MovLimitStart(AxisConfig::ActiveDirect::DOWN); + g_log->TraceInfo(u8"升降[%.3f]往连续下移动", mold->GetShowPos()); + } + else + { + g_Toast->AddToast(new ToastBean(GetMoldCanotDownInfo(), 5000, Toast::COLOR_ORANGE)); + } + + } + if (ImGui::IsWindowFocused() && ImGui::IsKeyReleased(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) + { + m_Axis->m_Mold->MovLimitStop(AxisConfig::ActiveDirect::DOWN); + } + } + ImGui::PushID("mold_to_zero"); + if (ImGui::ImageButton(chartletManager->m_ToZero->GetTex(), ImVec2(60, 60), ImVec2(0, 0), ImVec2(1, 1), 0)) + mold->SetZeroPos(); + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip(_(u8"成型缸位置清零").c_str()); + } + ImGui::EndGroup(); + + ImGui::EndChild(); + + ImGui::End(); + +} void HBDE1000::DrawAnalogExt() { @@ -5503,321 +5517,322 @@ void HBDE1000::DrawAnalogExt() //{ // //} -//bool HBDE1000::IsLoadAxisCanMoveLeft() -//{ -// if (!m_SignalState.m_PrintJackupInSafePos)return false; -// if (!m_SignalState.m_LoadTorqueInsideLimit)return false; -// if (!m_SignalState.m_LoadPosInsideLeftSoftLimit)return false; -// if (!m_SignalState.m_CylinderSealNoInflationStatue)return false; -// if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return false; -// if (!m_SignalState.m_LoadLeftNotInsideLimit)return false; -// if (!m_SignalState.m_LoadServoNoAlarm)return false; -// if (!m_SignalState.m_HighPressureLackAlarm)return false; -// if (!m_SignalState.m_SystemStopAlarm)return false; -// if (!m_SignalState.m_CleanLiftStopAlarm)return false; -// if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -//string HBDE1000::GetLoadAxisCanotMoveLeftInfo() -//{ -// if (!m_SignalState.m_PrintJackupInSafePos)return u8"打印顶升轴不在安全位"; -// if (!m_SignalState.m_LoadTorqueInsideLimit)return u8"移载扭力越限"; -// if (!m_SignalState.m_LoadPosInsideLeftSoftLimit)return u8"移载轴越软左限"; -// if (!m_SignalState.m_CylinderSealNoInflationStatue)return u8"密封圈充气状态"; -// if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return u8"上下维护门不在关闭状态"; -// if (!m_SignalState.m_LoadLeftNotInsideLimit)return u8"移载轴已到左限位"; -// if (!m_SignalState.m_LoadServoNoAlarm)return u8"移载轴伺服异常"; -// if (!m_SignalState.m_HighPressureLackAlarm)return u8"高压气不足报警"; -// if (!m_SignalState.m_SystemStopAlarm)return u8"系统急停异常"; -// if (!m_SignalState.m_CleanLiftStopAlarm)return u8"清粉急停异常"; -// if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return u8"舱门打开时运动受限"; -// return u8"未知原因"; -//} -//bool HBDE1000::IsLoadAxisCanMoveRight() -//{ -// if (!m_SignalState.m_PrintJackupInSafePos)return false; -// if (!m_SignalState.m_LoadTorqueInsideLimit)return false; -// if (!m_SignalState.m_LoadPosInsideRightSoftLimit)return false; -// if (!m_SignalState.m_CylinderSealNoInflationStatue)return false; -// if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return false; -// if (!m_SignalState.m_LoadRightNotInsideLimit)return false; -// if (!m_SignalState.m_LoadServoNoAlarm)return false; -// if (!m_SignalState.m_HighPressureLackAlarm)return false; -// if (!m_SignalState.m_SystemStopAlarm)return false; -// if (!m_SignalState.m_CleanLiftStopAlarm)return false; -// if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -//string HBDE1000::GetLoadAxisCanotMoveRightInfo() -//{ -// if (!m_SignalState.m_PrintJackupInSafePos)return u8"打印顶升轴不在安全位"; -// if (!m_SignalState.m_LoadTorqueInsideLimit)return u8"移载扭力越限"; -// if (!m_SignalState.m_LoadPosInsideRightSoftLimit)return u8"移载轴越软右限"; -// if (!m_SignalState.m_CylinderSealNoInflationStatue)return u8"密封圈充气状态"; -// if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return u8"上下维护门不在关闭状态"; -// if (!m_SignalState.m_LoadRightNotInsideLimit)return u8"移载轴已到右限位"; -// if (!m_SignalState.m_LoadServoNoAlarm)return u8"移载轴伺服异常"; -// if (!m_SignalState.m_HighPressureLackAlarm)return u8"高压气不足报警"; -// if (!m_SignalState.m_SystemStopAlarm)return u8"系统急停异常"; -// if (!m_SignalState.m_CleanLiftStopAlarm)return u8"清粉急停异常"; -// if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return u8"舱门打开时运动受限"; -// return u8"未知原因"; -//} -//bool HBDE1000::IsArmCanMoveBack() -//{ -// if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return false; -// if (!m_SignalState.m_ArmTorqueInsideLimit)return false; -// if (!m_SignalState.m_ArmPosInsideSoftBackLimit)return false; -// if (!m_SignalState.m_ArmPosInsideBackLimit)return false; -// if (!m_SignalState.m_ArmServoNoAlarm)return false; -// if (!m_SignalState.m_HighPressureLackAlarm)return false; -// if (!m_SignalState.m_SystemStopAlarm)return false; -// if (!m_SignalState.m_CleanLiftStopAlarm)return false; -// if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -//string HBDE1000::GetArmCanotMoveBackInfo() -//{ -// if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return u8"打印升降轴高于基板缸平面"; -// if (!m_SignalState.m_ArmTorqueInsideLimit)return u8"铺粉轴扭力越限"; -// if (!m_SignalState.m_ArmPosInsideSoftBackLimit)return u8"铺粉轴位置超过软后限"; -// if (!m_SignalState.m_ArmPosInsideBackLimit)return u8"铺粉轴已到后限位"; -// if (!m_SignalState.m_ArmServoNoAlarm)return u8"铺粉轴伺服异常"; -// if (!m_SignalState.m_HighPressureLackAlarm)return u8"高压气不足报警"; -// if (!m_SignalState.m_SystemStopAlarm)return u8"系统急停异常"; -// if (!m_SignalState.m_CleanLiftStopAlarm)return u8"清粉急停异常"; -// if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return u8"舱门打开时运动受限"; -// return u8"未知原因"; -//} -//bool HBDE1000::IsArmCanMoveFront() -//{ -// if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return false; -// if (!m_SignalState.m_ArmTorqueInsideLimit)return false; -// if (!m_SignalState.m_ArmPosInsideSoftFrontLimit)return false; -// if (!m_SignalState.m_ArmPosInsideFrontLimit)return false; -// if (!m_SignalState.m_ArmServoNoAlarm)return false; -// if (!m_SignalState.m_HighPressureLackAlarm)return false; -// if (!m_SignalState.m_SystemStopAlarm)return false; -// if (!m_SignalState.m_CleanLiftStopAlarm)return false; -// if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -//string HBDE1000::GetArmCanotMoveFrontInfo() -//{ -// if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return u8"打印升降轴高于基板缸平面"; -// if (!m_SignalState.m_ArmTorqueInsideLimit)return u8"铺粉轴扭力越限"; -// if (!m_SignalState.m_ArmPosInsideSoftFrontLimit)return u8"铺粉轴位置超过软前限"; -// if (!m_SignalState.m_ArmPosInsideFrontLimit)return u8"铺粉轴已到前限位"; -// if (!m_SignalState.m_ArmServoNoAlarm)return u8"铺粉轴伺服异常"; -// if (!m_SignalState.m_HighPressureLackAlarm)return u8"高压气不足报警"; -// if (!m_SignalState.m_SystemStopAlarm)return u8"系统急停异常"; -// if (!m_SignalState.m_CleanLiftStopAlarm)return u8"清粉急停异常"; -// if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return u8"舱门打开时运动受限"; -// return u8"未知原因"; -//} -//bool HBDE1000::IsMoldCanMoveUp() -//{ -// if (!m_SignalState.m_PrintTorqueUpInsideLimit)return false; -// if (!m_SignalState.m_ArmNotUponBasePlatform)return false; -// if (!m_SignalState.m_PrintMoldPosInsideUpSoftLimit)return false; -// if (!m_SignalState.m_PrintInsideUpLimit)return false; -// if (!m_SignalState.m_PrintMainServoNoAlarm)return false; -// if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos)return false; -// if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return false; -// if (!m_SignalState.m_HighPressureLackAlarm)return false; -// if (!m_SignalState.m_SystemStopAlarm)return false; -// if (!m_SignalState.m_CleanLiftStopAlarm)return false; -// -// if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -//bool HBDE1000::IsMoldCanMoveDown() -//{ -// if (!m_SignalState.m_PrintTorqueDownInsideLimit)return false; -// if (!m_SignalState.m_ArmNotUponBasePlatform)return false; -// if (!m_SignalState.m_PrintAxisPosInsideDownSoftLimit)return false; -// if (!m_SignalState.m_PrintInsideDownLimit)return false; -// if (!m_SignalState.m_PrintMainServoNoAlarm)return false; -// if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos)return false; -// if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return false; -// if (!m_SignalState.m_HighPressureLackAlarm)return false; -// if (!m_SignalState.m_SystemStopAlarm)return false; -// if (!m_SignalState.m_CleanLiftStopAlarm)return false; -// if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; -// return true; -//} -//string HBDE1000::GetMoldCanotUpInfo() -//{ -// if (!m_SignalState.m_PrintTorqueUpInsideLimit)return u8"升降轴上升扭力越限"; -// if (!m_SignalState.m_ArmNotUponBasePlatform)return u8"铺粉臂在基板范围内"; -// if (!m_SignalState.m_PrintMoldPosInsideUpSoftLimit)return u8"升降轴越软上限"; -// if (!m_SignalState.m_PrintInsideUpLimit)return u8"升降轴越上限"; -// if (!m_SignalState.m_PrintMainServoNoAlarm)return u8"打印主轴伺服异常"; -// if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos) -// { -// return u8"缸体不在打印位、清粉位、吊装位"; -// } -// if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return u8"上下维护门不在关闭状态"; -// if (!m_SignalState.m_HighPressureLackAlarm)return u8"高压气不足报警"; -// if (!m_SignalState.m_SystemStopAlarm)return u8"系统急停异常"; -// if (!m_SignalState.m_CleanLiftStopAlarm)return u8"清粉急停异常"; -// if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return u8"舱门打开时运动受限"; -// return u8"未知原因"; -//} -//string HBDE1000::GetMoldCanotDownInfo() -//{ -// if (!m_SignalState.m_PrintTorqueDownInsideLimit)return u8"升降轴下降扭力越限"; -// if (!m_SignalState.m_ArmNotUponBasePlatform)return u8"铺粉臂在基板范围内"; -// if (!m_SignalState.m_PrintAxisPosInsideDownSoftLimit)return u8"升降轴越软下限"; -// if (!m_SignalState.m_PrintInsideDownLimit)return u8"升降轴越下限"; -// if (!m_SignalState.m_PrintMainServoNoAlarm)return u8"打印主轴伺服异常"; -// if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos) -// { -// return u8"缸体不在打印位、清粉位、吊装位"; -// } -// if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return u8"上下维护门不在关闭状态"; -// if (!m_SignalState.m_HighPressureLackAlarm)return u8"高压气不足报警"; -// if (!m_SignalState.m_SystemStopAlarm)return u8"系统急停异常"; -// if (!m_SignalState.m_CleanLiftStopAlarm)return u8"清粉急停异常"; -// if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return u8"舱门打开时运动受限"; -// return u8"未知原因"; -//} -// -//void HBDE1000::DrawServoState(bool* winShow) -//{ -// ImGui::SetNextWindowSize(ImVec2(452, 603)); -// ImGui::Begin(u8"伺服状态", winShow, ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoResize); -// ImGui::BeginTabBar("servo_state"); -// if (ImGui::BeginTabItem(u8"打印轴")) { -// AxisStateValue mold; -// m_Axis->m_Mold->GetState()->GetValue(mold); -// ImGui::BeginGroup(); -// ImGui::Text(u8"伺服使能:%s", mold.ServoOn ? "YES" : "NO"); -// ImGui::Text(u8"伺服成立原点: %s", mold.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(u8"伺服复位: %s", mold.ServoReset ? "YES" : "NO"); -// ImGui::Text(u8"相对上运动: %s", mold.MoveP ? "YES" : "NO"); -// ImGui::Text(u8"相对下运动: %s", mold.MoveN ? "YES" : "NO"); -// ImGui::Text(u8"上JOG: %s", mold.MovePContinue ? "YES" : "NO"); -// ImGui::Text(u8"下JOG: %s", mold.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(u8"绝对值运动: %s", mold.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(u8"急停: %s", mold.MotionStop ? "YES" : "NO"); -// ImGui::Text(u8"伺服RDY状态: %s", mold.ServoRDY ? "YES" : "NO"); -// ImGui::Text(u8"指令运行HOME_Done: %s", mold.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(u8"指令运行RESET_Done: %s", mold.ResetDone ? "YES" : "NO"); -// ImGui::Text(u8"伺服BUSY: %s", mold.ServoBusy ? "YES" : "NO"); -// ImGui::Text(u8"伺服异常: %s", mold.ServoException ? "YES" : "NO"); -// ImGui::Text(u8"可运行状态: %s", mold.Runable ? "YES" : "NO"); -// ImGui::Text(u8"伺服异常字: %d", mold.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(u8"主轴伺服刹车: %s", mold.ServoBreakOn ? "YES" : "NO"); -// ImGui::Text(u8"轴位置: %.3f", mold.Pos); -// ImGui::Text(u8"轴扭矩: %.3f", mold.Torque); -// ImGui::EndGroup(); -// -// ImGui::SameLine(); -// ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); -// ImGui::SameLine(); -// -// ImGui::BeginGroup(); -// g_SystemInfo->LockInfo(); -// float linearLayerValue = g_SystemInfo->m_EnvState.m_LinearLayerPos; -// float moldTheoryDis = g_SystemInfo->m_EnvState.m_MoldTheoryDistance; -// float linearActDis = g_SystemInfo->m_EnvState.m_LinearActDistance; -// float linearPulseValue = g_SystemInfo->m_EnvState.m_LinearActPulse; -// g_SystemInfo->UnlockInfo(); -// ImGui::Text(u8"光栅每层实际值: %.3f", linearLayerValue); -// ImGui::Text(u8"升降理论行程: %.3f", moldTheoryDis); -// ImGui::Text(u8"光栅实际行程: %.3f", linearActDis); -// ImGui::Text(u8"光栅实际脉冲数: %.3f", linearPulseValue); -// -// ImGui::EndGroup(); -// ImGui::EndTabItem(); -// } -// -// -// if (ImGui::BeginTabItem(u8"铺粉轴")) { -// AxisStateValue arm; -// m_Axis->m_Arm->GetState()->GetValue(arm); -// ImGui::Text(u8"伺服使能:%s", arm.ServoOn ? "YES" : "NO"); -// ImGui::Text(u8"伺服成立原点: %s", arm.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(u8"伺服复位: %s", arm.ServoReset ? "YES" : "NO"); -// ImGui::Text(u8"相对前运动: %s", arm.MoveP ? "YES" : "NO"); -// ImGui::Text(u8"相对后运动: %s", arm.MoveN ? "YES" : "NO"); -// ImGui::Text(u8"前JOG: %s", arm.MovePContinue ? "YES" : "NO"); -// ImGui::Text(u8"后JOG: %s", arm.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(u8"绝对值运动: %s", arm.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(u8"急停: %s", arm.MotionStop ? "YES" : "NO"); -// ImGui::Text(u8"伺服RDY状态: %s", arm.ServoRDY ? "YES" : "NO"); -// ImGui::Text(u8"指令运行HOME_Done: %s", arm.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(u8"指令运行RESET_Done: %s", arm.ResetDone ? "YES" : "NO"); -// ImGui::Text(u8"伺服BUSY: %s", arm.ServoBusy ? "YES" : "NO"); -// ImGui::Text(u8"伺服异常: %s", arm.ServoException ? "YES" : "NO"); -// ImGui::Text(u8"可运行状态: %s", arm.Runable ? "YES" : "NO"); -// ImGui::Text(u8"伺服异常字: %d", arm.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(u8"轴位置: %.3f", arm.Pos); -// ImGui::Text(u8"轴扭矩: %.3f", arm.Torque); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(u8"移载轴")) { -// AxisStateValue load; -// m_Axis->m_Load->GetState()->GetValue(load); -// ImGui::Text(u8"伺服使能:%s", load.ServoOn ? "YES" : "NO"); -// ImGui::Text(u8"伺服成立原点: %s", load.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(u8"伺服复位: %s", load.ServoReset ? "YES" : "NO"); -// ImGui::Text(u8"相对右运动: %s", load.MoveP ? "YES" : "NO"); -// ImGui::Text(u8"相对左运动: %s", load.MoveN ? "YES" : "NO"); -// ImGui::Text(u8"右JOG: %s", load.MovePContinue ? "YES" : "NO"); -// ImGui::Text(u8"左JOG: %s", load.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(u8"绝对值运动: %s", load.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(u8"急停: %s", load.MotionStop ? "YES" : "NO"); -// ImGui::Text(u8"伺服RDY状态: %s", load.ServoRDY ? "YES" : "NO"); -// ImGui::Text(u8"指令运行HOME_Done: %s", load.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(u8"指令运行RESET_Done: %s", load.ResetDone ? "YES" : "NO"); -// ImGui::Text(u8"伺服BUSY: %s", load.ServoBusy ? "YES" : "NO"); -// ImGui::Text(u8"伺服异常: %s", load.ServoException ? "YES" : "NO"); -// ImGui::Text(u8"可运行状态: %s", load.Runable ? "YES" : "NO"); -// ImGui::Text(u8"伺服异常字: %d", load.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(u8"轴位置: %.3f", load.Pos); -// ImGui::Text(u8"轴扭矩: %.3f", load.Torque); -// ImGui::EndTabItem(); -// } -// -// if (ImGui::BeginTabItem(u8"供粉轴")) { -// AxisStateValue supply; -// m_Axis->m_Supply->GetState()->GetValue(supply); -// ImGui::Text(u8"伺服使能:%s", supply.ServoOn ? "YES" : "NO"); -// ImGui::Text(u8"伺服成立原点: %s", supply.ServoHomeIndexOn ? "YES" : "NO"); -// ImGui::Text(u8"伺服复位: %s", supply.ServoReset ? "YES" : "NO"); -// ImGui::Text(u8"相对右运动: %s", supply.MoveP ? "YES" : "NO"); -// ImGui::Text(u8"相对左运动: %s", supply.MoveN ? "YES" : "NO"); -// ImGui::Text(u8"右JOG: %s", supply.MovePContinue ? "YES" : "NO"); -// ImGui::Text(u8"左JOG: %s", supply.MoveNContinue ? "YES" : "NO"); -// ImGui::Text(u8"绝对值运动: %s", supply.MoveAbsPos ? "YES" : "NO"); -// ImGui::Text(u8"急停: %s", supply.MotionStop ? "YES" : "NO"); -// ImGui::Text(u8"伺服RDY状态: %s", supply.ServoRDY ? "YES" : "NO"); -// ImGui::Text(u8"指令运行HOME_Done: %s", supply.ServoHomeDone ? "YES" : "NO"); -// ImGui::Text(u8"指令运行RESET_Done: %s", supply.ResetDone ? "YES" : "NO"); -// ImGui::Text(u8"伺服BUSY: %s", supply.ServoBusy ? "YES" : "NO"); -// ImGui::Text(u8"伺服异常: %s", supply.ServoException ? "YES" : "NO"); -// ImGui::Text(u8"可运行状态: %s", supply.Runable ? "YES" : "NO"); -// ImGui::Text(u8"伺服异常字: %d", supply.ExceptionCode); //轴伺服异常字_R -// ImGui::Text(u8"轴位置: %.3f", supply.Pos); -// ImGui::Text(u8"轴扭矩: %.3f", supply.Torque); -// ImGui::EndTabItem(); -// } -// -// ImGui::EndTabBar(); -// ImGui::End(); -//} -// -//bool HBDE1000::CheckPrintMoldReady() -//{ -// if (m_SignalStateWrapper->m_CylinderState->GetValue() != CylinderInPrintLoaded) -// { -// return false; -// } -// else return true; -//} -// + +bool HBDE1000::IsLoadAxisCanMoveLeft() +{ + if (!m_SignalState.m_PrintJackupInSafePos)return false; + if (!m_SignalState.m_LoadTorqueInsideLimit)return false; + if (!m_SignalState.m_LoadPosInsideLeftSoftLimit)return false; + if (!m_SignalState.m_CylinderSealNoInflationStatue)return false; + if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return false; + if (!m_SignalState.m_LoadLeftNotInsideLimit)return false; + if (!m_SignalState.m_LoadServoNoAlarm)return false; + if (!m_SignalState.m_HighPressureLackAlarm)return false; + if (!m_SignalState.m_SystemStopAlarm)return false; + if (!m_SignalState.m_CleanLiftStopAlarm)return false; + if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} +string HBDE1000::GetLoadAxisCanotMoveLeftInfo() +{ + if (!m_SignalState.m_PrintJackupInSafePos)return u8"打印顶升轴不在安全位"; + if (!m_SignalState.m_LoadTorqueInsideLimit)return u8"移载扭力越限"; + if (!m_SignalState.m_LoadPosInsideLeftSoftLimit)return u8"移载轴越软左限"; + if (!m_SignalState.m_CylinderSealNoInflationStatue)return u8"密封圈充气状态"; + if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return u8"上下维护门不在关闭状态"; + if (!m_SignalState.m_LoadLeftNotInsideLimit)return u8"移载轴已到左限位"; + if (!m_SignalState.m_LoadServoNoAlarm)return u8"移载轴伺服异常"; + if (!m_SignalState.m_HighPressureLackAlarm)return u8"高压气不足报警"; + if (!m_SignalState.m_SystemStopAlarm)return u8"系统急停异常"; + if (!m_SignalState.m_CleanLiftStopAlarm)return u8"清粉急停异常"; + if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return u8"舱门打开时运动受限"; + return u8"未知原因"; +} +bool HBDE1000::IsLoadAxisCanMoveRight() +{ + if (!m_SignalState.m_PrintJackupInSafePos)return false; + if (!m_SignalState.m_LoadTorqueInsideLimit)return false; + if (!m_SignalState.m_LoadPosInsideRightSoftLimit)return false; + if (!m_SignalState.m_CylinderSealNoInflationStatue)return false; + if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return false; + if (!m_SignalState.m_LoadRightNotInsideLimit)return false; + if (!m_SignalState.m_LoadServoNoAlarm)return false; + if (!m_SignalState.m_HighPressureLackAlarm)return false; + if (!m_SignalState.m_SystemStopAlarm)return false; + if (!m_SignalState.m_CleanLiftStopAlarm)return false; + if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} +string HBDE1000::GetLoadAxisCanotMoveRightInfo() +{ + if (!m_SignalState.m_PrintJackupInSafePos)return u8"打印顶升轴不在安全位"; + if (!m_SignalState.m_LoadTorqueInsideLimit)return u8"移载扭力越限"; + if (!m_SignalState.m_LoadPosInsideRightSoftLimit)return u8"移载轴越软右限"; + if (!m_SignalState.m_CylinderSealNoInflationStatue)return u8"密封圈充气状态"; + if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return u8"上下维护门不在关闭状态"; + if (!m_SignalState.m_LoadRightNotInsideLimit)return u8"移载轴已到右限位"; + if (!m_SignalState.m_LoadServoNoAlarm)return u8"移载轴伺服异常"; + if (!m_SignalState.m_HighPressureLackAlarm)return u8"高压气不足报警"; + if (!m_SignalState.m_SystemStopAlarm)return u8"系统急停异常"; + if (!m_SignalState.m_CleanLiftStopAlarm)return u8"清粉急停异常"; + if (m_Axis->m_Load->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return u8"舱门打开时运动受限"; + return u8"未知原因"; +} +bool HBDE1000::IsArmCanMoveBack() +{ + if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return false; + if (!m_SignalState.m_ArmTorqueInsideLimit)return false; + if (!m_SignalState.m_ArmPosInsideSoftBackLimit)return false; + if (!m_SignalState.m_ArmPosInsideBackLimit)return false; + if (!m_SignalState.m_ArmServoNoAlarm)return false; + if (!m_SignalState.m_HighPressureLackAlarm)return false; + if (!m_SignalState.m_SystemStopAlarm)return false; + if (!m_SignalState.m_CleanLiftStopAlarm)return false; + if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} +string HBDE1000::GetArmCanotMoveBackInfo() +{ + if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return u8"打印升降轴高于基板缸平面"; + if (!m_SignalState.m_ArmTorqueInsideLimit)return u8"铺粉轴扭力越限"; + if (!m_SignalState.m_ArmPosInsideSoftBackLimit)return u8"铺粉轴位置超过软后限"; + if (!m_SignalState.m_ArmPosInsideBackLimit)return u8"铺粉轴已到后限位"; + if (!m_SignalState.m_ArmServoNoAlarm)return u8"铺粉轴伺服异常"; + if (!m_SignalState.m_HighPressureLackAlarm)return u8"高压气不足报警"; + if (!m_SignalState.m_SystemStopAlarm)return u8"系统急停异常"; + if (!m_SignalState.m_CleanLiftStopAlarm)return u8"清粉急停异常"; + if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return u8"舱门打开时运动受限"; + return u8"未知原因"; +} +bool HBDE1000::IsArmCanMoveFront() +{ + if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return false; + if (!m_SignalState.m_ArmTorqueInsideLimit)return false; + if (!m_SignalState.m_ArmPosInsideSoftFrontLimit)return false; + if (!m_SignalState.m_ArmPosInsideFrontLimit)return false; + if (!m_SignalState.m_ArmServoNoAlarm)return false; + if (!m_SignalState.m_HighPressureLackAlarm)return false; + if (!m_SignalState.m_SystemStopAlarm)return false; + if (!m_SignalState.m_CleanLiftStopAlarm)return false; + if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} +string HBDE1000::GetArmCanotMoveFrontInfo() +{ + if (!m_SignalState.m_PrintUpDownPosBelowPlatform)return u8"打印升降轴高于基板缸平面"; + if (!m_SignalState.m_ArmTorqueInsideLimit)return u8"铺粉轴扭力越限"; + if (!m_SignalState.m_ArmPosInsideSoftFrontLimit)return u8"铺粉轴位置超过软前限"; + if (!m_SignalState.m_ArmPosInsideFrontLimit)return u8"铺粉轴已到前限位"; + if (!m_SignalState.m_ArmServoNoAlarm)return u8"铺粉轴伺服异常"; + if (!m_SignalState.m_HighPressureLackAlarm)return u8"高压气不足报警"; + if (!m_SignalState.m_SystemStopAlarm)return u8"系统急停异常"; + if (!m_SignalState.m_CleanLiftStopAlarm)return u8"清粉急停异常"; + if (m_Axis->m_Arm->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return u8"舱门打开时运动受限"; + return u8"未知原因"; +} +bool HBDE1000::IsMoldCanMoveUp() +{ + if (!m_SignalState.m_PrintTorqueUpInsideLimit)return false; + if (!m_SignalState.m_ArmNotUponBasePlatform)return false; + if (!m_SignalState.m_PrintMoldPosInsideUpSoftLimit)return false; + if (!m_SignalState.m_PrintInsideUpLimit)return false; + if (!m_SignalState.m_PrintMainServoNoAlarm)return false; + if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos)return false; + if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return false; + if (!m_SignalState.m_HighPressureLackAlarm)return false; + if (!m_SignalState.m_SystemStopAlarm)return false; + if (!m_SignalState.m_CleanLiftStopAlarm)return false; + + if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} +bool HBDE1000::IsMoldCanMoveDown() +{ + if (!m_SignalState.m_PrintTorqueDownInsideLimit)return false; + if (!m_SignalState.m_ArmNotUponBasePlatform)return false; + if (!m_SignalState.m_PrintAxisPosInsideDownSoftLimit)return false; + if (!m_SignalState.m_PrintInsideDownLimit)return false; + if (!m_SignalState.m_PrintMainServoNoAlarm)return false; + if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos)return false; + if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return false; + if (!m_SignalState.m_HighPressureLackAlarm)return false; + if (!m_SignalState.m_SystemStopAlarm)return false; + if (!m_SignalState.m_CleanLiftStopAlarm)return false; + if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return false; + return true; +} +string HBDE1000::GetMoldCanotUpInfo() +{ + if (!m_SignalState.m_PrintTorqueUpInsideLimit)return u8"升降轴上升扭力越限"; + if (!m_SignalState.m_ArmNotUponBasePlatform)return u8"铺粉臂在基板范围内"; + if (!m_SignalState.m_PrintMoldPosInsideUpSoftLimit)return u8"升降轴越软上限"; + if (!m_SignalState.m_PrintInsideUpLimit)return u8"升降轴越上限"; + if (!m_SignalState.m_PrintMainServoNoAlarm)return u8"打印主轴伺服异常"; + if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos) + { + return u8"缸体不在打印位、清粉位、吊装位"; + } + if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return u8"上下维护门不在关闭状态"; + if (!m_SignalState.m_HighPressureLackAlarm)return u8"高压气不足报警"; + if (!m_SignalState.m_SystemStopAlarm)return u8"系统急停异常"; + if (!m_SignalState.m_CleanLiftStopAlarm)return u8"清粉急停异常"; + if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return u8"舱门打开时运动受限"; + return u8"未知原因"; +} +string HBDE1000::GetMoldCanotDownInfo() +{ + if (!m_SignalState.m_PrintTorqueDownInsideLimit)return u8"升降轴下降扭力越限"; + if (!m_SignalState.m_ArmNotUponBasePlatform)return u8"铺粉臂在基板范围内"; + if (!m_SignalState.m_PrintAxisPosInsideDownSoftLimit)return u8"升降轴越软下限"; + if (!m_SignalState.m_PrintInsideDownLimit)return u8"升降轴越下限"; + if (!m_SignalState.m_PrintMainServoNoAlarm)return u8"打印主轴伺服异常"; + if (!m_SignalState.m_PrintMoldInPrintPos && !m_SignalState.m_PrintMoldInCleanPos && !m_SignalState.m_PrintMoldInHandPos) + { + return u8"缸体不在打印位、清粉位、吊装位"; + } + if (!m_SignalState.m_LoadUpDownServiceDoorCloseStatue)return u8"上下维护门不在关闭状态"; + if (!m_SignalState.m_HighPressureLackAlarm)return u8"高压气不足报警"; + if (!m_SignalState.m_SystemStopAlarm)return u8"系统急停异常"; + if (!m_SignalState.m_CleanLiftStopAlarm)return u8"清粉急停异常"; + if (m_Axis->m_Mold->GetState()->m_AxisCfg->m_SafeLimit && !g_SystemInfo->m_EnvState.m_IsPrintCabinDoorClose)return u8"舱门打开时运动受限"; + return u8"未知原因"; +} + +void HBDE1000::DrawServoState(bool* winShow) +{ + ImGui::SetNextWindowSize(ImVec2(452, 603)); + ImGui::Begin(u8"伺服状态", winShow, ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoResize); + ImGui::BeginTabBar("servo_state"); + if (ImGui::BeginTabItem(u8"打印轴")) { + AxisStateValue mold; + m_Axis->m_Mold->GetState()->GetValue(mold); + ImGui::BeginGroup(); + ImGui::Text(u8"伺服使能:%s", mold.ServoOn ? "YES" : "NO"); + ImGui::Text(u8"伺服成立原点: %s", mold.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(u8"伺服复位: %s", mold.ServoReset ? "YES" : "NO"); + ImGui::Text(u8"相对上运动: %s", mold.MoveP ? "YES" : "NO"); + ImGui::Text(u8"相对下运动: %s", mold.MoveN ? "YES" : "NO"); + ImGui::Text(u8"上JOG: %s", mold.MovePContinue ? "YES" : "NO"); + ImGui::Text(u8"下JOG: %s", mold.MoveNContinue ? "YES" : "NO"); + ImGui::Text(u8"绝对值运动: %s", mold.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(u8"急停: %s", mold.MotionStop ? "YES" : "NO"); + ImGui::Text(u8"伺服RDY状态: %s", mold.ServoRDY ? "YES" : "NO"); + ImGui::Text(u8"指令运行HOME_Done: %s", mold.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(u8"指令运行RESET_Done: %s", mold.ResetDone ? "YES" : "NO"); + ImGui::Text(u8"伺服BUSY: %s", mold.ServoBusy ? "YES" : "NO"); + ImGui::Text(u8"伺服异常: %s", mold.ServoException ? "YES" : "NO"); + ImGui::Text(u8"可运行状态: %s", mold.Runable ? "YES" : "NO"); + ImGui::Text(u8"伺服异常字: %d", mold.ExceptionCode); //轴伺服异常字_R + ImGui::Text(u8"主轴伺服刹车: %s", mold.ServoBreakOn ? "YES" : "NO"); + ImGui::Text(u8"轴位置: %.3f", mold.Pos); + ImGui::Text(u8"轴扭矩: %.3f", mold.Torque); + ImGui::EndGroup(); + + ImGui::SameLine(); + ImGui::SeparatorEx(ImGuiSeparatorFlags_Vertical); + ImGui::SameLine(); + + ImGui::BeginGroup(); + g_SystemInfo->LockInfo(); + float linearLayerValue = g_SystemInfo->m_EnvState.m_LinearLayerPos; + float moldTheoryDis = g_SystemInfo->m_EnvState.m_MoldTheoryDistance; + float linearActDis = g_SystemInfo->m_EnvState.m_LinearActDistance; + float linearPulseValue = g_SystemInfo->m_EnvState.m_LinearActPulse; + g_SystemInfo->UnlockInfo(); + ImGui::Text(u8"光栅每层实际值: %.3f", linearLayerValue); + ImGui::Text(u8"升降理论行程: %.3f", moldTheoryDis); + ImGui::Text(u8"光栅实际行程: %.3f", linearActDis); + ImGui::Text(u8"光栅实际脉冲数: %.3f", linearPulseValue); + + ImGui::EndGroup(); + ImGui::EndTabItem(); + } + + + if (ImGui::BeginTabItem(u8"铺粉轴")) { + AxisStateValue arm; + m_Axis->m_Arm->GetState()->GetValue(arm); + ImGui::Text(u8"伺服使能:%s", arm.ServoOn ? "YES" : "NO"); + ImGui::Text(u8"伺服成立原点: %s", arm.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(u8"伺服复位: %s", arm.ServoReset ? "YES" : "NO"); + ImGui::Text(u8"相对前运动: %s", arm.MoveP ? "YES" : "NO"); + ImGui::Text(u8"相对后运动: %s", arm.MoveN ? "YES" : "NO"); + ImGui::Text(u8"前JOG: %s", arm.MovePContinue ? "YES" : "NO"); + ImGui::Text(u8"后JOG: %s", arm.MoveNContinue ? "YES" : "NO"); + ImGui::Text(u8"绝对值运动: %s", arm.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(u8"急停: %s", arm.MotionStop ? "YES" : "NO"); + ImGui::Text(u8"伺服RDY状态: %s", arm.ServoRDY ? "YES" : "NO"); + ImGui::Text(u8"指令运行HOME_Done: %s", arm.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(u8"指令运行RESET_Done: %s", arm.ResetDone ? "YES" : "NO"); + ImGui::Text(u8"伺服BUSY: %s", arm.ServoBusy ? "YES" : "NO"); + ImGui::Text(u8"伺服异常: %s", arm.ServoException ? "YES" : "NO"); + ImGui::Text(u8"可运行状态: %s", arm.Runable ? "YES" : "NO"); + ImGui::Text(u8"伺服异常字: %d", arm.ExceptionCode); //轴伺服异常字_R + ImGui::Text(u8"轴位置: %.3f", arm.Pos); + ImGui::Text(u8"轴扭矩: %.3f", arm.Torque); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(u8"移载轴")) { + AxisStateValue load; + m_Axis->m_Load->GetState()->GetValue(load); + ImGui::Text(u8"伺服使能:%s", load.ServoOn ? "YES" : "NO"); + ImGui::Text(u8"伺服成立原点: %s", load.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(u8"伺服复位: %s", load.ServoReset ? "YES" : "NO"); + ImGui::Text(u8"相对右运动: %s", load.MoveP ? "YES" : "NO"); + ImGui::Text(u8"相对左运动: %s", load.MoveN ? "YES" : "NO"); + ImGui::Text(u8"右JOG: %s", load.MovePContinue ? "YES" : "NO"); + ImGui::Text(u8"左JOG: %s", load.MoveNContinue ? "YES" : "NO"); + ImGui::Text(u8"绝对值运动: %s", load.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(u8"急停: %s", load.MotionStop ? "YES" : "NO"); + ImGui::Text(u8"伺服RDY状态: %s", load.ServoRDY ? "YES" : "NO"); + ImGui::Text(u8"指令运行HOME_Done: %s", load.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(u8"指令运行RESET_Done: %s", load.ResetDone ? "YES" : "NO"); + ImGui::Text(u8"伺服BUSY: %s", load.ServoBusy ? "YES" : "NO"); + ImGui::Text(u8"伺服异常: %s", load.ServoException ? "YES" : "NO"); + ImGui::Text(u8"可运行状态: %s", load.Runable ? "YES" : "NO"); + ImGui::Text(u8"伺服异常字: %d", load.ExceptionCode); //轴伺服异常字_R + ImGui::Text(u8"轴位置: %.3f", load.Pos); + ImGui::Text(u8"轴扭矩: %.3f", load.Torque); + ImGui::EndTabItem(); + } + + if (ImGui::BeginTabItem(u8"供粉轴")) { + AxisStateValue supply; + m_Axis->m_Supply->GetState()->GetValue(supply); + ImGui::Text(u8"伺服使能:%s", supply.ServoOn ? "YES" : "NO"); + ImGui::Text(u8"伺服成立原点: %s", supply.ServoHomeIndexOn ? "YES" : "NO"); + ImGui::Text(u8"伺服复位: %s", supply.ServoReset ? "YES" : "NO"); + ImGui::Text(u8"相对右运动: %s", supply.MoveP ? "YES" : "NO"); + ImGui::Text(u8"相对左运动: %s", supply.MoveN ? "YES" : "NO"); + ImGui::Text(u8"右JOG: %s", supply.MovePContinue ? "YES" : "NO"); + ImGui::Text(u8"左JOG: %s", supply.MoveNContinue ? "YES" : "NO"); + ImGui::Text(u8"绝对值运动: %s", supply.MoveAbsPos ? "YES" : "NO"); + ImGui::Text(u8"急停: %s", supply.MotionStop ? "YES" : "NO"); + ImGui::Text(u8"伺服RDY状态: %s", supply.ServoRDY ? "YES" : "NO"); + ImGui::Text(u8"指令运行HOME_Done: %s", supply.ServoHomeDone ? "YES" : "NO"); + ImGui::Text(u8"指令运行RESET_Done: %s", supply.ResetDone ? "YES" : "NO"); + ImGui::Text(u8"伺服BUSY: %s", supply.ServoBusy ? "YES" : "NO"); + ImGui::Text(u8"伺服异常: %s", supply.ServoException ? "YES" : "NO"); + ImGui::Text(u8"可运行状态: %s", supply.Runable ? "YES" : "NO"); + ImGui::Text(u8"伺服异常字: %d", supply.ExceptionCode); //轴伺服异常字_R + ImGui::Text(u8"轴位置: %.3f", supply.Pos); + ImGui::Text(u8"轴扭矩: %.3f", supply.Torque); + ImGui::EndTabItem(); + } + + ImGui::EndTabBar(); + ImGui::End(); +} + +bool HBDE1000::CheckPrintMoldReady() +{ + if (m_SignalStateWrapper->m_CylinderState->GetValue() != CylinderInPrintLoaded) + { + return false; + } + else return true; +} + diff --git a/PrintC/Machine/HBDE1000.h b/PrintC/Machine/HBDE1000.h index 1f81296..99ff0ab 100644 --- a/PrintC/Machine/HBDE1000.h +++ b/PrintC/Machine/HBDE1000.h @@ -73,7 +73,7 @@ public: void InitSysParam(SysParamWrapper* spw, void* cc); //void InitPLCCommand(vector& vecs); //void GetAlarmState(SignalState& signalState); - //bool CheckPrintMoldReady(); + bool CheckPrintMoldReady(); virtual void CheckIO(); private: /*static*/ void CheckIO_V0(/*vector&ins, IOCfgWrapper* iocfgWrapper, string str, int mtype*/); diff --git a/PrintC/Machine/Machine.h b/PrintC/Machine/Machine.h index 5249723..8c3e4f0 100644 --- a/PrintC/Machine/Machine.h +++ b/PrintC/Machine/Machine.h @@ -52,13 +52,13 @@ public: void Update(const ReadData& rd); protected: - int GetLoadInResult() { - int rel = 0; - EnterCriticalSection(&m_LoadCS); - rel = m_LoadInResut; - LeaveCriticalSection(&m_LoadCS); - return rel; - } + //int GetLoadInResult() { + // int rel = 0; + // EnterCriticalSection(&m_LoadCS); + // rel = m_LoadInResut; + // LeaveCriticalSection(&m_LoadCS); + // return rel; + //} //int GetLoadOutResult() { // int rel = 0; // EnterCriticalSection(&m_LoadCS); diff --git a/PrintC/PLC/SysParam.h b/PrintC/PLC/SysParam.h index 4429517..0020a3e 100644 --- a/PrintC/PLC/SysParam.h +++ b/PrintC/PLC/SysParam.h @@ -785,7 +785,7 @@ class AxisRecordWrapper { public: AxisRecordWrapper() {} ~AxisRecordWrapper() {} - void Init(void* cc); + void Init(void* cc = nullptr); public: SysParamBool* m_PrintMoldSafePosRecord; //打印升降轴安全位记录 SysParamBool* m_MoldCylinderSeparatePosRecord; //打印升降与缸体分离位记录_RW diff --git a/PrintC/UI/Controller.cpp b/PrintC/UI/Controller.cpp index 7e1e082..4e33385 100644 --- a/PrintC/UI/Controller.cpp +++ b/PrintC/UI/Controller.cpp @@ -36,8 +36,10 @@ bool Controller::Init() { SysParam::SInit(); m_StateCtrlWrapper = new StateCtrlWrapper(); + m_StateCtrlWrapper->Init(); m_SysParamWrapper = new SysParamWrapper(); m_AxisRecordWrapper = new AxisRecordWrapper(); + m_AxisRecordWrapper->Init(); m_SignalStateWrapper = new SignalStateWrapper(); ConfigManager::Instance()->Init(); m_Machine = ConfigManager::Instance()->GetMachine(); diff --git a/PrintC/UI/UIWin.cpp b/PrintC/UI/UIWin.cpp index 5e7888f..aa1e921 100644 --- a/PrintC/UI/UIWin.cpp +++ b/PrintC/UI/UIWin.cpp @@ -680,8 +680,9 @@ void UIWin::DrawMain() { ImGui::Begin("HBDSystem1000", NULL, ImGuiWindowFlags_MenuBar); // Menu Begin - bool enableFlag = false; + bool enableFlag = true; bool exitStopLaserFlag = false; + if (/*m_Controller->m_ScannerCtrl->IsStandBy() ||*/ g_Admin == ADMIN || g_Admin == USER_ADMIN) { enableFlag = true; } diff --git a/PrintC/config/bean/IOCfg.cpp b/PrintC/config/bean/IOCfg.cpp index cf708d8..cb04320 100644 --- a/PrintC/config/bean/IOCfg.cpp +++ b/PrintC/config/bean/IOCfg.cpp @@ -950,7 +950,7 @@ void IO_1000_V0::Update(unsigned char* arr) doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; - m_SafeDoorState = doorState.to_ulong(); + m_SafeDoorState = (char)doorState.to_ulong(); } void IO_1000_V1::Init(map& ioCfgMap) @@ -1311,7 +1311,7 @@ void IO_1000_V1::Update(unsigned char* arr) doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; - m_SafeDoorState = doorState.to_ulong(); + m_SafeDoorState = (char)doorState.to_ulong(); } void IO_1000_V2::Init(map& ioCfgMap) @@ -1705,7 +1705,7 @@ void IO_1000_V2::Update(unsigned char* arr) { doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; - m_SafeDoorState = doorState.to_ulong(); + m_SafeDoorState = (char)doorState.to_ulong(); } void IO_1000_V3::Init(map& ioCfgMap) @@ -2095,7 +2095,7 @@ void IO_1000_V3::Update(unsigned char* arr) { doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; - m_SafeDoorState = doorState.to_ulong(); + m_SafeDoorState = (char)doorState.to_ulong(); } void IO_1000_V4::Init(map& ioCfgMap) @@ -2497,7 +2497,7 @@ void IO_1000_V4::Update(unsigned char* arr) { doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; - m_SafeDoorState = doorState.to_ulong(); + m_SafeDoorState = (char)doorState.to_ulong(); } void IO_1500_V0::Init(map& ioCfgMap) @@ -2882,7 +2882,7 @@ void IO_1500_V0::Update(unsigned char* arr) doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; - m_SafeDoorState = doorState.to_ulong(); + m_SafeDoorState = (char)doorState.to_ulong(); } void IO_1500_V1::Init(map& ioCfgMap) @@ -3232,7 +3232,7 @@ void IO_1500_V1::Update(unsigned char* arr) doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; - m_SafeDoorState = doorState.to_ulong(); + m_SafeDoorState = (char)doorState.to_ulong(); } void IO_1200_V0::Init(map& ioCfgMap) @@ -3584,7 +3584,7 @@ void IO_1200_V0::Update(unsigned char* arr) doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; - m_SafeDoorState = doorState.to_ulong(); + m_SafeDoorState = (char)doorState.to_ulong(); } void IO_E1000_V0::Init(map& ioCfgMap) @@ -3899,5 +3899,5 @@ void IO_E1000_V0::Update(unsigned char* arr) bitset<8> doorState; doorState.reset(); doorState[2] = m_PrintDoorLock->m_IsActive; - m_SafeDoorState = doorState.to_ulong(); + m_SafeDoorState = (char)doorState.to_ulong(); } \ No newline at end of file diff --git a/PrintC/imgui.ini b/PrintC/imgui.ini index 670f3a2..b1867a0 100644 --- a/PrintC/imgui.ini +++ b/PrintC/imgui.ini @@ -34,6 +34,11 @@ Pos=636,381 Size=264,102 Collapsed=0 +[Window][铺粉装置调试] +Pos=128,19 +Size=1236,722 +Collapsed=0 + [Docking][Data] DockSpace ID=0x0204CCDD Window=0xDEDC5B90 Pos=0,40 Size=1536,779 Split=X DockNode ID=0x00000001 Parent=0x0204CCDD SizeRef=1178,779 CentralNode=1 diff --git a/PrintC/output/Release/log/2024.hbd b/PrintC/output/Release/log/2024.hbd index 46679f0..bd7c5ff 100644 Binary files a/PrintC/output/Release/log/2024.hbd and b/PrintC/output/Release/log/2024.hbd differ