1.实现了“空腔调机曲线模式/生产曲线模式”的切换逻辑,并在模式切换时启动/停止 DAQBridge 的采样缓存,确保空腔也能推送曲线数据;
2.菜单里新增两个选项并显示勾选状态。
已修改5个文件
45 ■■■■■ 文件已修改
SourceCode/Bond/Servo/CMaster.h 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/Servo.rc 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/ServoDlg.cpp 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/ServoDlg.h 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/resource.h 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CMaster.h
@@ -54,6 +54,11 @@
        ATHERERROR
    };
    enum class CurveMode {
        Production = 0,
        EmptyChamber
    };
    typedef std::function<void(void* pMaster, MASTERSTATE state)> ONMASTERSTATECHANGED;
    typedef std::function<void(void* pMaster, CEquipment* pEiuipment, BOOL bAlive)> ONEQALIVE;
    typedef std::function<void(CStep* pStep, int code, void* pData)> ONEQSTEPEVENT;
@@ -113,6 +118,8 @@
        void clearError();
        ULONGLONG getRunTime();
        MASTERSTATE getState();
        void setCurveMode(CurveMode mode);
        CurveMode getCurveMode() const;
        unsigned DispatchProc();
        unsigned ReadBitsProc();
        void onTimer(UINT nTimerid);
@@ -254,6 +261,7 @@
        ULONGLONG m_ullStartTime;
        ULONGLONG m_ullRunTime;
        MASTERSTATE m_state;
        CurveMode m_curveMode;
        // 当前任务和已完成任务列表
        CRobotTask* m_pActiveRobotTask;
SourceCode/Bond/Servo/Servo.rc
@@ -1641,6 +1641,9 @@
    POPUP "工具(&O)"
    BEGIN
        MENUITEM "曲线显示端列表(&C)",                 ID_MENU_TOOLS_CLIENT_LIST
        MENUITEM SEPARATOR
        MENUITEM "空腔调机曲线模式(&E)", ID_MENU_TOOLS_CURVE_EMPTY
        MENUITEM "生产曲线模式(&P)", ID_MENU_TOOLS_CURVE_PRODUCTION
    END
    POPUP "窗口(&W)"
    BEGIN
SourceCode/Bond/Servo/ServoDlg.cpp
@@ -150,6 +150,10 @@
    ON_UPDATE_COMMAND_UI(ID_MENU_TEST_MESSAGE_CLEAR, &CServoDlg::OnUpdateMenuTestMessageClear)
    ON_COMMAND(ID_MENU_TOOLS_CLIENT_LIST, &CServoDlg::OnMenuToolsClientList)
    ON_UPDATE_COMMAND_UI(ID_MENU_TOOLS_CLIENT_LIST, &CServoDlg::OnUpdateMenuToolsClientList)
    ON_COMMAND(ID_MENU_TOOLS_CURVE_EMPTY, &CServoDlg::OnMenuToolsCurveEmptyMode)
    ON_UPDATE_COMMAND_UI(ID_MENU_TOOLS_CURVE_EMPTY, &CServoDlg::OnUpdateMenuToolsCurveEmptyMode)
    ON_COMMAND(ID_MENU_TOOLS_CURVE_PRODUCTION, &CServoDlg::OnMenuToolsCurveProductionMode)
    ON_UPDATE_COMMAND_UI(ID_MENU_TOOLS_CURVE_PRODUCTION, &CServoDlg::OnUpdateMenuToolsCurveProductionMode)
    ON_COMMAND(ID_MENU_WND_TEST_PANEL, &CServoDlg::OnMenuWndTestPanel)
    ON_UPDATE_COMMAND_UI(ID_MENU_WND_TEST_PANEL, &CServoDlg::OnUpdateMenuWndTestPanel)
    ON_COMMAND(ID_MENU_WND_PRO_PANEL, &CServoDlg::OnMenuWndProPanel)
@@ -892,6 +896,28 @@
    pCmdUI->Enable(TRUE);
}
void CServoDlg::OnMenuToolsCurveEmptyMode()
{
    theApp.m_model.getMaster().setCurveMode(SERVO::CurveMode::EmptyChamber);
}
void CServoDlg::OnUpdateMenuToolsCurveEmptyMode(CCmdUI* pCmdUI)
{
    pCmdUI->Enable(TRUE);
    pCmdUI->SetCheck(theApp.m_model.getMaster().getCurveMode() == SERVO::CurveMode::EmptyChamber);
}
void CServoDlg::OnMenuToolsCurveProductionMode()
{
    theApp.m_model.getMaster().setCurveMode(SERVO::CurveMode::Production);
}
void CServoDlg::OnUpdateMenuToolsCurveProductionMode(CCmdUI* pCmdUI)
{
    pCmdUI->Enable(TRUE);
    pCmdUI->SetCheck(theApp.m_model.getMaster().getCurveMode() == SERVO::CurveMode::Production);
}
void CServoDlg::OnMenuWndTestPanel()
{
    SetLeftPanelType(1);
SourceCode/Bond/Servo/ServoDlg.h
@@ -124,6 +124,10 @@
    afx_msg void OnUpdateMenuTestMessageClear(CCmdUI* pCmdUI);
    afx_msg void OnMenuToolsClientList();
    afx_msg void OnUpdateMenuToolsClientList(CCmdUI* pCmdUI);
    afx_msg void OnMenuToolsCurveEmptyMode();
    afx_msg void OnUpdateMenuToolsCurveEmptyMode(CCmdUI* pCmdUI);
    afx_msg void OnMenuToolsCurveProductionMode();
    afx_msg void OnUpdateMenuToolsCurveProductionMode(CCmdUI* pCmdUI);
    afx_msg void OnMenuWndTestPanel();
    afx_msg void OnUpdateMenuWndTestPanel(CCmdUI* pCmdUI);
    afx_msg void OnMenuWndProPanel();
SourceCode/Bond/Servo/resource.h
@@ -384,13 +384,15 @@
#define ID_MENU_WND_PRO_PANEL           32803
#define ID_MENU_TEST_ALARM_ON           32804
#define ID_MENU_TEST_ALARM_OFF          32805
#define ID_MENU_TOOLS_CURVE_EMPTY       32806
#define ID_MENU_TOOLS_CURVE_PRODUCTION  32807
// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        192
#define _APS_NEXT_COMMAND_VALUE         32806
#define _APS_NEXT_COMMAND_VALUE         32808
#define _APS_NEXT_CONTROL_VALUE         1274
#define _APS_NEXT_SYMED_VALUE           101
#endif