|
@@ -15,11 +15,12 @@ IMPLEMENT_DYNAMIC(CDlgService, CDialogEx)
|
|
|
CDlgService::CDlgService(CWnd* pParent /*=nullptr*/)
|
|
|
: CDialogEx(IDD_DLG_SERVICE, pParent)
|
|
|
{
|
|
|
-
|
|
|
+ m_bEnd = FALSE;
|
|
|
}
|
|
|
|
|
|
CDlgService::~CDlgService()
|
|
|
{
|
|
|
+ m_bEnd = TRUE;
|
|
|
}
|
|
|
|
|
|
void CDlgService::DoDataExchange(CDataExchange* pDX)
|
|
@@ -47,6 +48,7 @@ BEGIN_MESSAGE_MAP(CDlgService, CDialogEx)
|
|
|
ON_BN_CLICKED(BTN_MI_INIT, &CDlgService::OnBnClickedMiInit)
|
|
|
ON_BN_CLICKED(BTN_SCBC_INIT, &CDlgService::OnBnClickedScbcInit)
|
|
|
ON_WM_SIZE()
|
|
|
+ ON_NOTIFY(NM_DBLCLK, IDC_LIST_TASK, &CDlgService::OnNMDblclkListTask)
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
@@ -68,7 +70,7 @@ BOOL CDlgService::OnInitDialog()
|
|
|
SetTimer(1, 10000, NULL);
|
|
|
#else
|
|
|
std::thread t([](CDlgService *p) {
|
|
|
- while (true)
|
|
|
+ while (!p->m_bEnd)
|
|
|
{
|
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(2500));
|
|
|
{
|
|
@@ -96,16 +98,18 @@ BOOL CDlgService::OnInitDialog()
|
|
|
p->m_listDevices.SetItemText(nIndex, 2, "掉线");
|
|
|
else if (it->nStatus == 3)
|
|
|
p->m_listDevices.SetItemText(nIndex, 2, "未认证");
|
|
|
-
|
|
|
-// if (it->nUsageState == 0)
|
|
|
-// p->m_listDevices.SetItemText(nIndex, 4, "空闲");
|
|
|
-// else if (it->nUsageState == 1)
|
|
|
-// p->m_listDevices.SetItemText(nIndex, 4, "繁忙");
|
|
|
nIndex++;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- std::this_thread::sleep_for(std::chrono::milliseconds(1000));
|
|
|
+ }
|
|
|
+ OutputDebugString("退出刷新设备线程\n");
|
|
|
+ },this);
|
|
|
+ t.detach();
|
|
|
+
|
|
|
+ std::thread t2([](CDlgService* p) {
|
|
|
+ while (!p->m_bEnd)
|
|
|
+ {
|
|
|
+ std::this_thread::sleep_for(std::chrono::milliseconds(1500));
|
|
|
{
|
|
|
CSATClient::GetInstance()->TCPQueryTasks(FALSE);
|
|
|
int nIndex = 0;
|
|
@@ -113,21 +117,24 @@ BOOL CDlgService::OnInitDialog()
|
|
|
TCHAR szValue[MAX_PATH] = { 0 };
|
|
|
for (int i = 0; i < SATData::task_resp.nSize; i++) {
|
|
|
// 任务编号;
|
|
|
+ p->m_ctrlTaskId.SetWindowText(_T(""));
|
|
|
p->m_ctrlTaskId.SetWindowText(SATData::task_resp.ssTasks[i].szTaskNo);
|
|
|
// 任务状态;
|
|
|
+ p->m_lbTaskStatus.SetWindowText(_T(""));
|
|
|
p->m_lbTaskStatus.SetWindowText(SATData::task_resp.ssTasks[i].szStatus);
|
|
|
// 脚本数量;
|
|
|
if (SATData::task_resp.ssTasks[i].nCaseSize) {
|
|
|
// 遍历出所有用例;
|
|
|
- TCHAR szIndex[8] = {0};
|
|
|
- for ( int k = 0; k < SATData::task_resp.ssTasks[i].nCaseSize; k++ )
|
|
|
+ TCHAR szIndex[8] = { 0 };
|
|
|
+ for (int k = 0; k < SATData::task_resp.ssTasks[i].nCaseSize; k++)
|
|
|
{
|
|
|
_itoa_s(k, szIndex, 10);
|
|
|
SATPROTO::CaseInfo& caseInfo = SATData::task_resp.ssTasks[i].ssCases[k];
|
|
|
p->m_listTask.InsertItem(nIndex, szIndex);
|
|
|
p->m_listTask.SetItemText(nIndex, 1, caseInfo.szCaseName);
|
|
|
- p->m_listTask.SetItemText(nIndex, 2, caseInfo.szStatus);
|
|
|
- p->m_listTask.SetItemText(nIndex, 3, caseInfo.szCaseLogPath);
|
|
|
+ p->m_listTask.SetItemText(nIndex, 2, caseInfo.szExecStatus);
|
|
|
+ p->m_listTask.SetItemText(nIndex, 3, caseInfo.szResultStatus);
|
|
|
+ p->m_listTask.SetItemText(nIndex, 4, caseInfo.szCaseLogPath);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -135,8 +142,10 @@ BOOL CDlgService::OnInitDialog()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- },this);
|
|
|
- t.detach();
|
|
|
+
|
|
|
+ OutputDebugString("退出刷新任务线程\n");
|
|
|
+ }, this);
|
|
|
+ t2.detach();
|
|
|
#endif
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
|
// 异常: OCX 属性页应返回 FALSE
|
|
@@ -155,22 +164,6 @@ void CDlgService::OnPaint()
|
|
|
dc.FillRect(&rc, &brush);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-HBRUSH CDlgService::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
|
|
-{
|
|
|
- HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
|
|
|
-
|
|
|
- // TODO: 在此更改 DC 的任何特性
|
|
|
- if (nCtlColor == CTLCOLOR_STATIC)
|
|
|
- {
|
|
|
- pDC->SetBkMode(TRANSPARENT);//设置背景透明
|
|
|
- //pDC->SetTextColor(RGB(255, 255, 0));//设置字体为黄色
|
|
|
- return (HBRUSH)::GetStockObject(NULL_BRUSH);
|
|
|
- }
|
|
|
- // TODO: 如果默认的不是所需画笔,则返回另一个画笔
|
|
|
- return hbr;
|
|
|
-}
|
|
|
-
|
|
|
void CDlgService::InitCtrl()
|
|
|
{
|
|
|
int nIndex = 0;
|
|
@@ -188,10 +181,12 @@ void CDlgService::InitCtrl()
|
|
|
m_listTask.SetColumnWidth(0, 25);
|
|
|
m_listTask.InsertColumn(1, "脚本名称");
|
|
|
m_listTask.SetColumnWidth(1, 130);
|
|
|
- m_listTask.InsertColumn(2, "状态");
|
|
|
+ m_listTask.InsertColumn(2, "执行状态");
|
|
|
m_listTask.SetColumnWidth(2, 60);
|
|
|
- m_listTask.InsertColumn(3, "日志");
|
|
|
- m_listTask.SetColumnWidth(3, 55);
|
|
|
+ m_listTask.InsertColumn(3, "结果状态");
|
|
|
+ m_listTask.SetColumnWidth(3, 60);
|
|
|
+ m_listTask.InsertColumn(4, "日志");
|
|
|
+ m_listTask.SetColumnWidth(4, 55);
|
|
|
m_listTask.SetExtendedStyle(m_listTask.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
|
|
|
|
|
|
COLORREF color = RGB(0x87, 0xCE, 0xFA);
|
|
@@ -218,7 +213,6 @@ void CDlgService::InitCtrl()
|
|
|
// 设置鼠标形状;
|
|
|
m_btnAddAndroid.SetMouseCursorHand();
|
|
|
|
|
|
-
|
|
|
//color = RGB(0x87, 0xCE, 0xFA);
|
|
|
m_btnMIInit.m_bTransparent = FALSE;
|
|
|
m_btnMIInit.m_bDontUseWinXPTheme = TRUE;
|
|
@@ -451,3 +445,22 @@ void CDlgService::OnSize(UINT nType, int cx, int cy)
|
|
|
AdjustLayout();
|
|
|
// TODO: 在此处添加消息处理程序代码
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+void CDlgService::OnNMDblclkListTask(NMHDR* pNMHDR, LRESULT* pResult)
|
|
|
+{
|
|
|
+ LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
|
|
|
+ // TODO: 在此添加控件通知处理程序代码
|
|
|
+ *pResult = 0;
|
|
|
+
|
|
|
+ NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
|
|
|
+ if (pNMListView->iItem != -1)
|
|
|
+ {
|
|
|
+ CString strLogPath = m_listTask.GetItemText(pNMListView->iItem, 4);
|
|
|
+ // 路径不存在,退出;
|
|
|
+ if (!PathFileExists(strLogPath))
|
|
|
+ return;
|
|
|
+
|
|
|
+ ShellExecute(NULL, _T("open"), strLogPath.GetString(), NULL, NULL, SW_SHOW);
|
|
|
+ }
|
|
|
+}
|