LAPTOP-SNT8I5JK\Boounion
2024-12-09 3bf6df412c3b681e8901d6dcddd803a9c3235484
1.代码合并、消除警告;
已修改6个文件
145 ■■■■ 文件已修改
SourceCode/Bond/BondEq/AccordionWnd.cpp 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BondEq/AccordionWnd.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BondEq/CBonder.cpp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BondEq/CPanel.cpp 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BondEq/View/AxisSettingsDlg.cpp 111 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BondEq/View/AxisSettingsDlg.h 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BondEq/AccordionWnd.cpp
@@ -166,7 +166,7 @@
    for (size_t i = 0; i < m_vectorItems.size(); i++) {
        ACCORDIONITEM *pItem = m_vectorItems.at(i);
        if (pItem->pWnd != NULL) {
            GetItemRect(rcClient, i, &rcItemClient);
            GetItemRect(rcClient, (UINT)i, &rcItemClient);
            rcItemClient.top += ITEM_HEIGHT;
            if (pItem->nExpandHeight == -1) {
                rcItemClient.bottom = rcClient.bottom;
@@ -672,8 +672,8 @@
    RECT rcItem, rcItemHeader;
    for (size_t i = 0; i < m_vectorItems.size(); i++) {
        ACCORDIONITEM *pItem = m_vectorItems[i];
        GetItemRect(rcClient, i, &rcItem);
        GetItemHeaderRect(rcClient, i, &rcItemHeader);
        GetItemRect(rcClient, (UINT)i, &rcItem);
        GetItemHeaderRect(rcClient, (UINT)i, &rcItemHeader);
        // 热点项的背景色和边框
SourceCode/Bond/BondEq/AccordionWnd.h
@@ -119,7 +119,7 @@
private:
    std::vector<ACCORDIONITEM *> m_vectorItems;
    int m_nTimerId;
    UINT_PTR m_nTimerId;
private:
    int HitTest(POINT pt, int &nHitTest);
SourceCode/Bond/BondEq/CBonder.cpp
@@ -296,7 +296,7 @@
    }
    if (BC_CODE_RUN_RECIPE_RESULT == code) {
        int errorCode = (int)pIntent->getContext();
        int errorCode = (int)(__int64)pIntent->getContext();
        m_pEquipment->repLoadReadyComplete(errorCode);
    }
}
SourceCode/Bond/BondEq/CPanel.cpp
@@ -193,12 +193,12 @@
int CPanel::getBlodLen()
{
    return sizeof(UNITDATA1) * (4 + m_datas.size()) + PARAM_RAWDATA_SIZE;
    return sizeof(UNITDATA1) * (4 + (int)m_datas.size()) + PARAM_RAWDATA_SIZE;
}
int CPanel::getBlod(char* pszBuffer, int nBufferSize)
{
    int size = sizeof(UNITDATA1) * (4 + m_datas.size()) + PARAM_RAWDATA_SIZE;
    int size = sizeof(UNITDATA1) * (4 + (int)m_datas.size()) + PARAM_RAWDATA_SIZE;
    if (nBufferSize < size)
        return -1;
    memcpy(pszBuffer, m_pszParamsRawData, PARAM_RAWDATA_SIZE);
@@ -634,7 +634,7 @@
        addIntParam("A单元_下腔体冷却温度", "", v);
        i += 2;
        addIntParam("A单元_压感压纸气囊压力设定值", "", (double)toFloat(&pszData[i]));
        addDoubleParam("A单元_压感压纸气囊压力设定值", "", (double)toFloat(&pszData[i]));
        i += 4;
        v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8;
@@ -858,7 +858,7 @@
        addIntParam("B单元_下腔体冷却温度", "", v);
        i += 2;
        addIntParam("B单元_压感压纸气囊压力设定值", "", (double)toFloat(&pszData[i]));
        addDoubleParam("B单元_压感压纸气囊压力设定值", "", (double)toFloat(&pszData[i]));
        i += 4;
        v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8;
SourceCode/Bond/BondEq/View/AxisSettingsDlg.cpp
@@ -9,6 +9,10 @@
#include <cctype>
#include <algorithm>
#define COLOR_GREEN_ON    RGB(0, 255, 0)  // 正常状态绿色
#define COLOR_GREEN_OFF   RGB(0, 180, 0)  // 偏绿状态
#define COLOR_RED         RGB(255, 0, 0)  // 错误状态红色
#define TIMER_INIT                    1
#define TIMER_READ_PLC_DATA            2
@@ -42,9 +46,11 @@
    for (int i = 0; i < BTN_MAX; i++) {
        m_pBlBtns[i] = new CBlButton();
    }
    for (int i = 0; i < 6; i++) {
    for (int i = 0; i < LABEL_MAX; i++) {
        m_pBlLabels[i] = new CBLLabel();
    }
    m_nBtnsFlashState6 = 0;
    m_nBtnsFlashState8 = 0;
}
@@ -63,7 +69,7 @@
        delete m_pBlBtns[i];
    }
    for (int i = 0; i < 6; i++) {
    for (int i = 0; i < LABEL_MAX; i++) {
        delete m_pBlLabels[i];
    }
}
@@ -218,9 +224,22 @@
    label.UpdateWindow();            // 立即刷新
}
void CAxisSettingsDlg::SetLabelColorBasedOnState(CBLLabel& label, BOOL bState, COLORREF colorTrue, COLORREF colorFalse) {
    SetLabelColor(label, bState ? colorTrue : colorFalse);
}
void CAxisSettingsDlg::UpdateLabels() {
    SetLabelColorBasedOnState(*m_pBlLabels[LABEL_FLS], m_bFLS, COLOR_GREEN_ON, COLOR_GREEN_OFF);
    SetLabelColorBasedOnState(*m_pBlLabels[LABEL_DOG], m_bDOG, COLOR_GREEN_ON, COLOR_GREEN_OFF);
    SetLabelColorBasedOnState(*m_pBlLabels[LABEL_RLS], m_bRLS, COLOR_GREEN_ON, COLOR_GREEN_OFF);
    SetLabelColorBasedOnState(*m_pBlLabels[LABEL_READY], m_bReady, COLOR_GREEN_ON, COLOR_GREEN_OFF);
    SetLabelColorBasedOnState(*m_pBlLabels[LABEL_BUSY], m_bBusy, COLOR_GREEN_ON, COLOR_GREEN_OFF);
    SetLabelColorBasedOnState(*m_pBlLabels[LABEL_ERR], m_bErr, COLOR_RED, COLOR_GREEN_OFF);
}
void CAxisSettingsDlg::updatePageButtonStates()
{
    for (int i = 0; i < 5; ++i) {
    for (int i = 0; i < AXIS_PAGE_SIZE; ++i) {
        BOOL bSelect = (i + 1 == m_currentPage);
        m_pBlBtns[i]->SetFaceColor(bSelect ?
            BTN_PAGE_FACE_SELECT_COLOR: BTN_PAGE_FACE_NORMAL_COLOR);
@@ -306,7 +325,7 @@
{
    RecipeManager& recipeManager = RecipeManager::getInstance();
    // 每页显示的定位点数量
    const int pageSize = 5;
    const int pageSize = AXIS_PAGE_SIZE;
    // 获取定位点数据
    auto positions = recipeManager.getPositions(nAxisId, pageNumber, pageSize);
@@ -407,7 +426,7 @@
void CAxisSettingsDlg::updateDataFromUI(int nAxisId)
{
    const int pageSize = 5; // 每页显示 5 个定位点
    const int pageSize = AXIS_PAGE_SIZE; // 每页显示 5 个定位点
    RecipeManager& recipeManager = RecipeManager::getInstance();
    auto axisData = recipeManager.getAxis(nAxisId);
@@ -622,7 +641,7 @@
    // 写入定位点数据
    int positionStartAddress = startAddress + 100;
    for (size_t i = 0; i < axisData.positions.size(); ++i) {
    for (int i = 0; i < axisData.positions.size(); ++i) {
        const auto& position = axisData.positions[i];
        unsigned int positionAddress = positionStartAddress + (i * 2);
@@ -709,7 +728,7 @@
{
    // 从 RecipeManager 获取轴数据
    RecipeManager& recipeManager = RecipeManager::getInstance();
    auto axisData = recipeManager.getAxis(nAxisId);
    AxisInfo axisData = recipeManager.getAxis(nAxisId);
    MC::SOFT_COMPONENT component;
    int startAddress, endAddress, readSize;
@@ -719,7 +738,7 @@
    endAddress = startAddress + 300;
    readSize = (endAddress - startAddress + 1) * 2;
    auto funOnReadData = [&, startAddress, readSize](IMcChannel* pChannel, int addr, char* pData, unsigned int nDataSize, int flag) -> void {
    auto funOnReadData = [this, nAxisId, startAddress, readSize](IMcChannel* pChannel, int addr, char* pData, unsigned int nDataSize, int flag) -> void {
        if (nDataSize == readSize && flag == 0 && ::IsWindow(m_hWnd)) {
            m_fCurPos = CToolUnits::toInt32(&pData[20 * 2]) * 0.001;
            m_fManualSpeed = CToolUnits::toInt32(&pData[82 * 2]) * 0.001;
@@ -749,6 +768,20 @@
            m_nBtnsFlashState6 |= ((BYTE)pData[b + 2] << 16 | (BYTE)pData[b + 3] << 24);
            m_nBtnsFlashState8 = ((BYTE)pData[b + 4] | (BYTE)pData[b + 5] << 8);
            m_nBtnsFlashState8 |= ((BYTE)pData[b + 6] << 16 | (BYTE)pData[b + 7] << 24);
            AxisInfo axisInfo = RecipeManager::getInstance().getAxis(nAxisId);
            axisInfo.autoSpeed.currentValue = m_fAutoSpeed;                                                // 自动速度
            axisInfo.manualSpeed.currentValue = m_fManualSpeed;                                            // 手动速度
            axisInfo.jogDistance.currentValue = CToolUnits::toInt32(&pData[81 * 2]) * 0.001;            // 微动量
            axisInfo.accelerationTime.currentValue = CToolUnits::toInt32(&pData[62 * 2]) * 0.001;        // 加速时间
            axisInfo.decelerationTime.currentValue = CToolUnits::toInt32(&pData[64 * 2]) * 0.001;        // 减速时间
            // 读取定位点数据
            for (int i = 0; i < axisInfo.positions.size(); ++i) {
                unsigned int positionAddress = 100 + (i * 2);
                axisInfo.positions[i].range.currentValue = CToolUnits::toInt32(&pData[positionAddress * 2]) * 0.001;
            }
            RecipeManager::getInstance().updateAxis(axisInfo);
            PostMessage(ID_MSG_UPDATA_DATA_TO_UI);
        }
@@ -813,12 +846,12 @@
    }
    // 设置测试状态
    m_pBlLabels[0]->SubclassDlgItem(IDC_STATIC_AXIS_TEST_FLS, this);
    m_pBlLabels[1]->SubclassDlgItem(IDC_STATIC_AXIS_TEST_DOG, this);
    m_pBlLabels[2]->SubclassDlgItem(IDC_STATIC_AXIS_TEST_RLS, this);
    m_pBlLabels[3]->SubclassDlgItem(IDC_STATIC_AXIS_TEST_READY, this);
    m_pBlLabels[4]->SubclassDlgItem(IDC_STATIC_AXIS_TEST_BUSY, this);
    m_pBlLabels[5]->SubclassDlgItem(IDC_STATIC_AXIS_TEST_ERR, this);
    m_pBlLabels[LABEL_FLS]->SubclassDlgItem(IDC_STATIC_AXIS_TEST_FLS, this);
    m_pBlLabels[LABEL_DOG]->SubclassDlgItem(IDC_STATIC_AXIS_TEST_DOG, this);
    m_pBlLabels[LABEL_RLS]->SubclassDlgItem(IDC_STATIC_AXIS_TEST_RLS, this);
    m_pBlLabels[LABEL_READY]->SubclassDlgItem(IDC_STATIC_AXIS_TEST_READY, this);
    m_pBlLabels[LABEL_BUSY]->SubclassDlgItem(IDC_STATIC_AXIS_TEST_BUSY, this);
    m_pBlLabels[LABEL_ERR]->SubclassDlgItem(IDC_STATIC_AXIS_TEST_ERR, this);
    for (auto pLabel : m_pBlLabels) {
        pLabel->SetBkColor(RGB(0, 180, 0));
@@ -880,7 +913,6 @@
        m_pBlBtns[BTN_POINT1 + i]->SetBkgndColor(BS_HOVER, BTN_POINT_BKGND_HOVER);
        m_pBlBtns[BTN_POINT1 + i]->SetBkgndColor(BS_PRESS, BTN_POINT_BKGND_PRESS);
    }
    // 初始化当前页面为第一页
    m_currentPage = 1;
@@ -987,7 +1019,7 @@
                return CDialogEx::PreTranslateMessage(pMsg);
            }
            PositionRange& position = recipeManager.getPositionByIndex(getCurrentSelectedAxisID(), m_currentPage, 5, currentIndex);
            PositionRange& position = recipeManager.getPositionByIndex(getCurrentSelectedAxisID(), m_currentPage, AXIS_PAGE_SIZE, currentIndex);
            if (pMsg->message == WM_LBUTTONDOWN || pMsg->message == WM_LBUTTONDBLCLK) {
                // 处理鼠标点击事件
                // 设置鼠标为箭头光标
@@ -1287,53 +1319,14 @@
    SetDlgItemInt(IDC_EDIT_AXIS_CURR_ERROR_NUMBER, m_nErrCode);
    SetDlgItemInt(IDC_EDIT_AXIS_CURR_ALARM_NUMBER, m_nAlarmCode);
    //OPR 信号
    if (m_bFLS) {
        SetLabelColor(*m_pBlLabels[0], RGB(0, 255, 0));
    }
    else {
        SetLabelColor(*m_pBlLabels[0], RGB(0, 180, 0));
    }
    // 更新Labels状态
    UpdateLabels();
    if (m_bDOG) {
        SetLabelColor(*m_pBlLabels[1], RGB(0, 255, 0));
    }
    else {
        SetLabelColor(*m_pBlLabels[1], RGB(0, 180, 0));
    }
    if (m_bRLS) {
        SetLabelColor(*m_pBlLabels[2], RGB(0, 255, 0));
    }
    else {
        SetLabelColor(*m_pBlLabels[2], RGB(0, 180, 0));
    }
    if (m_bReady) {
        SetLabelColor(*m_pBlLabels[3], RGB(0, 255, 0));
    }
    else {
        SetLabelColor(*m_pBlLabels[3], RGB(0, 180, 0));
    }
    if (m_bBusy) {
        SetLabelColor(*m_pBlLabels[4], RGB(0, 255, 0));
    }
    else {
        SetLabelColor(*m_pBlLabels[4], RGB(0, 180, 0));
    }
    if (m_bErr) {
        SetLabelColor(*m_pBlLabels[5], RGB(255, 0, 0));
    }
    else {
        SetLabelColor(*m_pBlLabels[5], RGB(0, 180, 0));
    }
    // 更新定位点
    //refreshPositionDetails(getCurrentSelectedAxisID(), m_currentPage);
    // OPR按钮是否要闪烁或停止闪烁
    // 06.0和08.0
    TRACE("m_nBtnsFlashState6  %x %x\n", m_nBtnsFlashState6, m_nBtnsFlashState8);
    if (m_nBtnsFlashState6 & 0x01) {
        // 06.0
        if (!m_pBlBtns[BTN_JOG_OPR]->IsFlash()) {
SourceCode/Bond/BondEq/View/AxisSettingsDlg.h
@@ -4,7 +4,19 @@
#include "BLLabel.h"
#include "CPLC.h"
// 每页定位点显示个数
#define AXIS_PAGE_SIZE    5
// LABEL控件
#define LABEL_MAX        6
#define LABEL_FLS        0
#define LABEL_DOG        1
#define LABEL_RLS        2
#define LABEL_READY        3
#define LABEL_BUSY        4
#define LABEL_ERR        5
// BUTTON控件
#define BTN_MAX            15
#define BTN_PAGE1        0
#define BTN_PAGE2        1
@@ -62,6 +74,8 @@
    void AdjustControlFont(CWnd* pWnd, int nWidth, int nHeight);
    void AdjustLabelFont(CBLLabel& label);
    void SetLabelColor(CBLLabel& label, COLORREF color);
    void SetLabelColorBasedOnState(CBLLabel& label, BOOL bState, COLORREF colorTrue, COLORREF colorFalse);
    void UpdateLabels();
    void updatePageButtonStates();
    void HideEditCursor(int nCtrlID);
    int getCurrentSelectedAxisID();
@@ -90,7 +104,7 @@
    // 控件
    CBlButton* m_pBlBtns[BTN_MAX];
    CBLLabel* m_pBlLabels[6];
    CBLLabel* m_pBlLabels[LABEL_MAX];
    CComboBox m_comboAxisNO;
    CStatic m_staticAxisNO, m_staticAxisDescription, m_staticStartAddress;
    CEdit m_editManualSpeed, m_editAutoSpeed, m_editAccelerationTime, m_editDecelerationTime, m_editJogDistance;