160 lines
5.9 KiB
C++
160 lines
5.9 KiB
C++
#if !defined(AFX_DIALTASKMANAGER_H__99FCE339_720B_4418_B1D4_62CB2C1AE99E__INCLUDED_)
|
|
#define AFX_DIALTASKMANAGER_H__99FCE339_720B_4418_B1D4_62CB2C1AE99E__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
// CDialTaskManager.h : header file
|
|
//
|
|
//#include "Dial1DTaskTree.h"
|
|
#include "Dial2DTaskTree.h"
|
|
#include "Dial3DTaskTree.h"
|
|
#include "TaskDataOper.h"
|
|
#include "TdManager.h"
|
|
#include "DialRealTimeMeasureData.h"
|
|
#include "DialNew1DTask.h"
|
|
#include "DialNew2DTask.h"
|
|
#include "DialNew3DTask.h"
|
|
#include "cpp\socket\NetRequestDialog.h"
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CDialTaskManager dialog
|
|
|
|
class CDialTaskManager : public CNetRequestDialog
|
|
{
|
|
// Construction
|
|
public:
|
|
CDialTaskManager(CWnd* pParent = NULL); // standard constructor
|
|
~CDialTaskManager();
|
|
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(CDialTaskManager)
|
|
enum { IDD = IDD_DIALOG_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(CDialTaskManager)
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
protected:
|
|
|
|
// Generated message map functions
|
|
//{{AFX_MSG(CDialTaskManager)
|
|
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg LRESULT OnClickTaskTree(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<STTaskListItem> vtSynTaskID);
|
|
BOOL OnSynCouldTaskInfoResponse(WPARAM wParam, LPARAM lParam);
|
|
//正在测试中,实时窗口数据显示
|
|
afx_msg LRESULT OnRecvRealTimeDataResponse(WPARAM wParam, LPARAM lParam);
|
|
UINT DeleteTask();
|
|
|
|
void InitTaskTree();
|
|
void SelectShowTaskTree(int iSelType);
|
|
protected:
|
|
//CDial1DTaskTree m_Dial1DTaskTree;
|
|
CDial2DTaskTree m_Dial2DTaskTree;
|
|
CDial3DTaskTree m_Dial3DTaskTree;
|
|
ITaskTree* m_iTaskTree;
|
|
int m_iSelTaskType;//任务的维度
|
|
int m_iTestType; //任务的测量类型
|
|
CTaskDataOper m_taskOper;
|
|
CString m_strTitle;
|
|
CDialRealTimeMeasureData m_dialRealTimeMeasuData;//实时刷新数据窗口
|
|
//用于标志是不是最后一个取消测试的任务
|
|
BOOL m_bLastCancelTask;
|
|
//用于删除数据库Task
|
|
std::vector<CString> m_vtNeedDelLocalTaskID;
|
|
//用于删除云端的Task
|
|
std::vector<CString> m_vtNeedDelClounTaskID;
|
|
//用于保存删除失败的Task
|
|
std::vector<CString> m_vtFailedDelTaskID; //保存删除失败 未知错误
|
|
std::vector<CString> m_vtDelNoCancelTest;//保存删除失败 循环任务未取消测试的taskID
|
|
//std::vector<CString> m_vtDelTaskRunning;//保存删除失败 此任务正在测试的taskID
|
|
//用于删除树形控件上的Task
|
|
//std::vector<HTREEITEM> m_vtNeedDelTreeItem;
|
|
std::vector<CString> m_CurDelTaskID;
|
|
HTREEITEM m_CurDelTreeItem;
|
|
|
|
//用于保存需要任务信息同步的taskID
|
|
std::vector<STTaskListItem> m_vtNeedSynTaskID;//目前只同步一个,如果需要同步多个,另加判断
|
|
//用于保存从云端获取到的任务参数
|
|
//std::vector<STRemTaskArg> m_vtSaveSynTaskArg;
|
|
//未测试状态任务获取的任务点数据
|
|
//std::vector<STTaskDetailBasicData> 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_)
|