#if !defined(AFX_DIAL_OFFLINE_DEVICE_TASKMANAGER_H__99FCE339_720B_4418_B1D4_62CB2C1AE99E__INCLUDED_) #define AFX_DIAL_OFFLINE_DEVICE_TASKMANAGER_H__99FCE339_720B_4418_B1D4_62CB2C1AE99E__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // CDialOfflineDeviceTaskManager.h : header file // #include "DialTaskTree.h" #include "TaskDataOper.h" #include "TdManager.h" #include "DialRealTimeMeasureData.h" #include "DialNew1DTask.h" #include "DialNew2DTask.h" #include "DialNew3DTask.h" #include "cpp\socket\NetRequestDialog.h" ///////////////////////////////////////////////////////////////////////////// // CDialOfflineDeviceTaskManager dialog class CDialOfflineDeviceTaskManager : public CNetRequestDialog { // Construction public: CDialOfflineDeviceTaskManager(CWnd* pParent = NULL); // standard constructor ~CDialOfflineDeviceTaskManager(); virtual BOOL DestroyWindow(); void SetDeviceID(DWORD dwDeviceID) { m_dwDeviceSN = dwDeviceID; } void SetPLCID(DWORD dwPLCID) { m_dwPLCID = dwPLCID; } afx_msg void OnButtonCreateTask(); afx_msg void OnButtonDelTask(); //void OnCmdTaskInfoSyn(); //任务信息同步 void OnCmdTaskCancelTest(); //取消测试 // Dialog Data //{{AFX_DATA(CDialOfflineDeviceTaskManager) enum { IDD = IDD_DIALOG_OFFLINE_DEVICE_TASK_MANAGER }; CListCtrl m_listTaskAttr; CListCtrl m_listTaskData; CTabCtrl m_tabTaskChg; //}}AFX_DATA bool m_bThreadIsRunning; bool m_bThreadIsPause; bool m_bThreadIsExit; void SetPauseThread(bool bFlg) { m_bThreadIsPause = bFlg; }; // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CDialOfflineDeviceTaskManager) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: // Generated message map functions //{{AFX_MSG(CDialOfflineDeviceTaskManager) virtual BOOL OnInitDialog(); afx_msg LRESULT OnClickTaskTree(WPARAM wParam, LPARAM lParam); afx_msg LRESULT OnMsgNewTask(WPARAM wParam, LPARAM lParam); afx_msg LRESULT OnMsgDeleteTask(WPARAM wParam, LPARAM lParam); afx_msg LRESULT OnMsgTaskListTaskDataSyn(WPARAM wParam, LPARAM lParam); afx_msg LRESULT OnMsgTaskRefreshList(WPARAM wParam, LPARAM lParam); //刷新列表 afx_msg LRESULT OnMsgUpdateRealTimeWndBtnStatus(WPARAM wParam, LPARAM lParam);//更新实时窗口按钮状态 afx_msg LRESULT OnMsgSetCurrentSelectTask(WPARAM wParam, LPARAM lParam); afx_msg void OnSelchangeTabTaskChg(NMHDR* pNMHDR, LRESULT* pResult); // afx_msg void OnButtonExpTask(); afx_msg void OnButtonMeasureTask(); afx_msg void OnBtnDataDownload(); afx_msg void OnBtnCreateTimerTask(); afx_msg void OnBtnManageTimerTask(); afx_msg void OnBtnQueryTaskList(); //}}AFX_MSG DECLARE_MESSAGE_MAP() static UINT DealTaskDataSynThread(LPVOID pParam); //非测试中同步50个点线程 static UINT DealTaskTestingSynThread(LPVOID pParam);//测试中同步显示线程 void UpdateRealTimeTaskListData(STRemTaskArg* ptTaskArg, STTaskListItem* pTaskItem);//更新实时窗口测试任务数据 void InitialTaskListAttr(); //void InitialTaskListData(int iTestType); void PreNetResponse(WPARAM wParam, LPARAM lParam); //删除任务响应 BOOL OnDeleteTaskResponse(WPARAM wParam, LPARAM lParam); //同步任务信息 BOOL OnSynCouldTaskInfoRequest(std::vector vtSynTaskID); BOOL OnSynCouldTaskInfoResponse(WPARAM wParam, LPARAM lParam); //正在测试中,实时窗口数据显示 afx_msg LRESULT OnRecvRealTimeDataResponse(WPARAM wParam, LPARAM lParam); UINT DeleteTask(); protected: CDialTaskTree m_dialTaskTree; int m_iSelTaskType;//任务的维度 int m_iTestType; //任务的测量类型 CTaskDataOper m_taskOper; CString m_strTitle; CDialRealTimeMeasureData m_dialRealTimeMeasuData;//实时刷新数据窗口 //用于标志是不是最后一个取消测试的任务 BOOL m_bLastCancelTask; //用于删除数据库Task std::vector m_vtNeedDelLocalTaskID; //用于删除云端的Task std::vector m_vtNeedDelClounTaskID; //用于保存删除失败的Task std::vector m_vtFailedDelTaskID; //保存删除失败 未知错误 std::vector m_vtDelNoCancelTest;//保存删除失败 循环任务未取消测试的taskID //std::vector m_vtDelTaskRunning;//保存删除失败 此任务正在测试的taskID //用于删除树形控件上的Task //std::vector m_vtNeedDelTreeItem; std::vector m_CurDelTaskID; HTREEITEM m_CurDelTreeItem; //用于保存需要任务信息同步的taskID std::vector m_vtNeedSynTaskID;//目前只同步一个,如果需要同步多个,另加判断 //用于保存从云端获取到的任务参数 //std::vector m_vtSaveSynTaskArg; //未测试状态任务获取的任务点数据 //std::vector m_vtTdSynData; //用户保存同步信息的任务信息,查看实时数据50个点,记录上一次任务以防任务变更 STRemTaskArg m_stRealTimeTaskArg; //用于上传任务 STRemTaskArg m_TaskArg; CDialNew1DTask m_dialNew1DTask; CDialNew2DTask m_dialNew2DTask; CDialNew3DTask m_dialNew3DTask; CRITICAL_SECTION m_cs; BOOL m_bCancelTestingTask;// 取消正在测试中的Task //保存正在测试中的任务,用于实时窗口全部测量,如果不等于当前任务则不能,理论上同一时刻只有一个任务正在测试, //CString m_strSaveTestingTaskID; CString m_strDeleteTaskTips;//正在测试中的任务,删除任务失败提示 CString m_strTaskStatusTips; CDateTimeCtrl m_StartTime; CDateTimeCtrl m_EndTime; DWORD m_dwDeviceSN; //DeviceSN/Device ID DWORD m_dwPLCID; //PLC ID }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_DIALTASKMANAGER_H__99FCE339_720B_4418_B1D4_62CB2C1AE99E__INCLUDED_)