1.IO页面,上一页、下一页按钮根据页号禁用或启用;
2.PLC页,修复在连接前打开闪退的问题。同进根据连接状态启用或禁用按钮组;
已添加1个文件
已修改7个文件
53 ■■■■ 文件已修改
Document/PLC参考图.rar 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BondEq/BondEq.rc 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BondEq/BondEqDlg.cpp 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BondEq/CComponentPLCDlg.cpp 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BondEq/CComponentPLCDlg.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BondEq/CPLC.cpp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/BondEq/View/IOMonitoringDlg.cpp 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/x64/Debug/Config/BondEq.db 补丁 | 查看 | 原始文档 | blame | 历史
Document/PLC²Î¿¼Í¼.rar
Binary files differ
SourceCode/Bond/BondEq/BondEq.rc
Binary files differ
SourceCode/Bond/BondEq/BondEqDlg.cpp
@@ -760,8 +760,9 @@
CComponentPLCDlg* CBondEqDlg::CreateComponentPLCDlg(CComponent* pComponent)
{
    CComponentPLCDlg* pDlg = new CComponentPLCDlg(m_pMainContainer);
    pDlg->Create(IDD_COMPONENT_PLC, m_pMainContainer);
    pDlg->SetContext(pComponent);
    pDlg->Create(IDD_COMPONENT_PLC, m_pMainContainer);
    CString strIcon0, strIcon1, strIcon2, strIcon3;
    strIcon0.Format(_T("%s\\Res\\small_close0.ico"), (LPTSTR)(LPCTSTR)theApp.m_strAppDir);
SourceCode/Bond/BondEq/CComponentPLCDlg.cpp
@@ -38,6 +38,7 @@
    ON_WM_SIZE()
    ON_BN_CLICKED(IDC_BUTTON_PLC_AXIS_SETTINGS, &CComponentPLCDlg::OnBnClickedButtonAxisSetting)
    ON_BN_CLICKED(IDC_BUTTON_PLC_IO, &CComponentPLCDlg::OnBnClickedButtonIO)
    ON_WM_TIMER()
END_MESSAGE_MAP()
@@ -53,8 +54,19 @@
            // onNext
            pAny->addRef();
            int code = pAny->getCode();
            if (RX_CODE_ALARM_EVENT == code) {
            if (RX_CODE_PLC1_CONNECTTD == code) {
                CComponent* pComponent;
                if (pAny->getPtrValue("ptr", (void*&)pComponent)
                    && pComponent == m_pContext) {
                    EnableGroup1(TRUE);
                }
            }
            else if (RX_CODE_PLC1_DISCONNECTTD == code) {
                CComponent* pComponent;
                if (pAny->getPtrValue("ptr", (void*&)pComponent)
                    && pComponent == m_pContext) {
                    EnableGroup1(FALSE);
                }
            }
            pAny->release();
            }, [&]() -> void {
@@ -72,12 +84,24 @@
BOOL CComponentPLCDlg::OnInitDialog()
{
    CComponentDlg::OnInitDialog();
    SetTimer(1, 200, NULL);
    return TRUE;  // return TRUE unless you set the focus to a control
                  // å¼‚常: OCX å±žæ€§é¡µåº”返回 FALSE
}
void CComponentPLCDlg::OnTimer(UINT_PTR nIDEvent)
{
    // TODO: åœ¨æ­¤æ·»åŠ æ¶ˆæ¯å¤„ç†ç¨‹åºä»£ç å’Œ/或调用默认值
    if (1 == nIDEvent) {
        KillTimer(1);
        InitRxWindows();
        CPLC* pPLC = (CPLC*)m_pContext;
        EnableGroup1(pPLC->isConnected());
    }
    CComponentDlg::OnTimer(nIDEvent);
}
HBRUSH CComponentPLCDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
@@ -129,7 +153,7 @@
void CComponentPLCDlg::OnBnClickedButtonAxisSetting()
{
    CAxisSettingsDlg axisDlg;
    axisDlg.SetPLC(theApp.m_model.getBonder().getPLC("PLC(1)"));
    axisDlg.SetPLC((CPLC*)m_pContext);
    axisDlg.SetRecipeName(_T("Default"));
    axisDlg.DoModal();
}
@@ -142,3 +166,9 @@
    dlg.DoModal();
}
void CComponentPLCDlg::EnableGroup1(BOOL bEnable)
{
    GetDlgItem(IDC_BUTTON_PLC_AXIS_SETTINGS)->EnableWindow(bEnable);
    GetDlgItem(IDC_BUTTON_PLC_IO)->EnableWindow(bEnable);
}
SourceCode/Bond/BondEq/CComponentPLCDlg.h
@@ -15,6 +15,7 @@
private:
    void InitRxWindows();
    void EnableGroup1(BOOL bEnable);
private:
    IObserver* m_pObserver;
@@ -36,4 +37,5 @@
    afx_msg void OnSize(UINT nType, int cx, int cy);
    afx_msg void OnBnClickedButtonAxisSetting();
    afx_msg void OnBnClickedButtonIO();
    afx_msg void OnTimer(UINT_PTR nIDEvent);
};
SourceCode/Bond/BondEq/CPLC.cpp
@@ -242,7 +242,7 @@
bool CPLC::isConnected()
{
    return m_pChannel->isConnected();
    return m_pChannel != nullptr && m_pChannel->isConnected();
}
int CPLC::readWord(MC::SOFT_COMPONENT softComponent, unsigned int addr,
SourceCode/Bond/BondEq/View/IOMonitoringDlg.cpp
@@ -502,6 +502,8 @@
    CreateDynamicControls();
    DisplayCurrentPage();
    GetDlgItem(IDC_BUTTON_PREV_PAGE)->EnableWindow(m_nCurrentPage > 1);
    GetDlgItem(IDC_BUTTON_NEXT_PAGE)->EnableWindow(m_nCurrentPage < m_nTotalPages);
    SetTimer(TIMER_READ_PLC_DATA, 500, nullptr);
@@ -535,6 +537,9 @@
    else {
        AfxMessageBox(_T("已经是第一页!"));
    }
    GetDlgItem(IDC_BUTTON_PREV_PAGE)->EnableWindow(m_nCurrentPage > 1);
    GetDlgItem(IDC_BUTTON_NEXT_PAGE)->EnableWindow(m_nCurrentPage < m_nTotalPages);
}
void CIOMonitoringDlg::OnBnClickedButtonNextPage()
@@ -547,6 +552,9 @@
    else {
        AfxMessageBox(_T("已经是最后一页!"));
    }
    GetDlgItem(IDC_BUTTON_PREV_PAGE)->EnableWindow(m_nCurrentPage > 1);
    GetDlgItem(IDC_BUTTON_NEXT_PAGE)->EnableWindow(m_nCurrentPage < m_nTotalPages);
}
void CIOMonitoringDlg::OnTimer(UINT_PTR nIDEvent)
SourceCode/Bond/x64/Debug/Config/BondEq.db
Binary files differ