| 2025-06-23 | mrDarker | ![]() |
| 2025-06-23 | mrDarker | ![]() |
| 2025-06-23 | LAPTOP-SNT8I5JK\Boounion | ![]() |
| 2025-06-21 | LAPTOP-SNT8I5JK\Boounion | ![]() |
| 2025-06-21 | LAPTOP-SNT8I5JK\Boounion | ![]() |
| SourceCode/Bond/Servo/CEFEM.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CEFEM.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CLoadPort.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/CMaster.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/PageAlarm.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/Servo.rc | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/Servo/ServoDlg.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/x64/Debug/Res/PortConfig_Gray_32.ico | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| SourceCode/Bond/x64/Debug/Res/PortConfig_High_32.ico | 补丁 | 查看 | 原始文档 | blame | 历史 |
SourceCode/Bond/Servo/CEFEM.cpp
@@ -871,4 +871,17 @@ { return 10000; } void CEFEM::printDebugString001() { for (int i = 0; i < 8; i++) { LOGI("<CEquipment-%s>%d, Signal:%s, %s, %s, %s", m_strName.c_str(), i, m_bLinkSignal[i][SIGNAL_UPSTREAM_INLINE] ? "ON" : "OFF", m_bLinkSignal[i][SIGNAL_UPSTREAM_TROUBLE] ? "ON" : "OFF", m_bLinkSignal[i][SIGNAL_INTERLOCK] ? "ON" : "OFF", m_bLinkSignal[i][SIGNAL_SEND_ABLE] ? "ON" : "OFF" ); } } } SourceCode/Bond/Servo/CEFEM.h
@@ -42,6 +42,7 @@ int robotCmd(ROBOT_CMD_PARAM& robotCmdParam, ONWRITED onWritedBlock = nullptr); int robotCmds(ROBOT_CMD_PARAM* robotCmdParam, unsigned int count, ONWRITED onWritedBlock = nullptr); RMDATA& getRobotMonitoringData(); void printDebugString001(); // 快捷封装 int robotSendHome(int seq, ONWRITED onWritedBlock = nullptr); SourceCode/Bond/Servo/CLoadPort.cpp
@@ -1144,16 +1144,14 @@ { char szBuffer[64]; for (const auto& slot : config.vecSlot) { if (!slot.isEnabled) continue; int nSlotIndex = slot.nSlotID - 1; if (nSlotIndex < 0 || nSlotIndex >= SLOT_MAX) { continue; } m_slot[nSlotIndex].enable(); if (!m_slot[nSlotIndex].isEnable()) continue; if (!slot.isEnabled) { m_slot[nSlotIndex].setContext(nullptr); continue; } CJobDataS js; js.setCassetteSequenceNo(getNextCassetteSequenceNo()); SourceCode/Bond/Servo/CMaster.cpp
@@ -540,8 +540,10 @@ // Measurement -> LoadPort LOGI("Arm1 %s, Arm2 %s.", rmd.armState[0] ? _T("不可用") : _T("可用"), rmd.armState[1] ? _T("不可用") : _T("可用")); if (rmd.armState[0] || rmd.armState[1]) { LOGI("Arm1 %s, Arm2 %s.", rmd.armState[0] ? _T("不可用") : _T("可用"), rmd.armState[1] ? _T("不可用") : _T("可用")); } CLoadPort* pEqLoadPort[] = { pLoadPort1, pLoadPort2, pLoadPort3, pLoadPort4 }; CEquipment* pEqTar[] = { pVacuumBake, pFliper }; if (primaryType == MaterialsType::G2) { SourceCode/Bond/Servo/PageAlarm.cpp
@@ -82,12 +82,52 @@ void CPageAlarm::Resize() { CWnd* pItem; CRect rcClient; GetClientRect(&rcClient); pItem = GetDlgItem(IDC_LIST_ALARM); pItem->MoveWindow(12, 58, rcClient.Width() - 24, rcClient.Height() - 64); // ===== 常量定义 ===== const int nLeft = 12; const int nRight = 12; const int nTop = 58; const int nButtonHeight = 28; const int nButtonMarginBottom = 12; const int nSpacing = 8; const int nButtonWidth = 80; const int nLabelWidth = 100; // ===== 分页控件布局 ===== int yBottom = rcClient.bottom - nButtonMarginBottom - nButtonHeight; int xRight = rcClient.Width() - nRight; CWnd* pBtnNext = GetDlgItem(IDC_BUTTON_NEXT_PAGE); CWnd* pBtnPrev = GetDlgItem(IDC_BUTTON_PREV_PAGE); CWnd* pLabelPage = GetDlgItem(IDC_LABEL_PAGE_NUMBER); if (pBtnNext && pBtnPrev && pLabelPage) { // 获取分页文本宽度估算 //CString strLabel; //GetDlgItemText(IDC_LABEL_PAGE_NUMBER, strLabel); //if (strLabel.IsEmpty()) { // strLabel = _T("第 1 / 1 页"); //} //int nCharWidth = 8; //int nLabelWidth = strLabel.GetLength() * nCharWidth + 20; // 设置按钮和标签位置 pBtnNext->MoveWindow(xRight - nButtonWidth, yBottom, nButtonWidth, nButtonHeight); xRight -= nButtonWidth + nSpacing; pLabelPage->MoveWindow(xRight - nLabelWidth, yBottom, nLabelWidth, nButtonHeight); xRight -= nLabelWidth + nSpacing; pBtnPrev->MoveWindow(xRight - nButtonWidth, yBottom, nButtonWidth, nButtonHeight); } // ===== 表格区域布局 ===== if (nullptr != m_listCtrl.m_hWnd) { int listHeight = yBottom - nTop - nSpacing; m_listCtrl.MoveWindow(nLeft, nTop, rcClient.Width() - nLeft - nRight, listHeight); } } void CPageAlarm::LoadAlarms() @@ -114,12 +154,15 @@ { // 更新分页信息 CString strPage; strPage.Format(_T("第 %d 页"), m_nCurPage); strPage.Format(_T("第 %d / %d 页"), m_nCurPage, m_nTotalPages); SetDlgItemText(IDC_LABEL_PAGE_NUMBER, strPage); // 启用/禁用翻页按钮 GetDlgItem(IDC_BUTTON_PREV_PAGE)->EnableWindow(m_nCurPage > 1); GetDlgItem(IDC_BUTTON_NEXT_PAGE)->EnableWindow(m_nCurPage < m_nTotalPages); // 调整控件大小 // Resize(); } void CPageAlarm::FillDataToListCtrl(CListCtrl* pListCtrl, const std::vector<AlarmData>& vecData) SourceCode/Bond/Servo/Servo.rcBinary files differ
SourceCode/Bond/Servo/ServoDlg.cpp
@@ -897,6 +897,10 @@ dlg.SetEFEM(pEFEM); dlg.DoModal(); } else if (id == IDC_BUTTON_SETTINGS) { SERVO::CEFEM* pEFEM = (SERVO::CEFEM*)theApp.m_model.m_master.getEquipment(EQ_ID_EFEM); pEFEM->printDebugString001(); } else if (id == IDC_BUTTON_OPERATOR) { int menuId = (int)wParam; SystemLogManager& logManager = SystemLogManager::getInstance(); SourceCode/Bond/x64/Debug/Res/PortConfig_Gray_32.ico
SourceCode/Bond/x64/Debug/Res/PortConfig_High_32.ico