1019 lines
31 KiB
C++
1019 lines
31 KiB
C++
// opexeccersptestdlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "geomative.h"
|
|
#include "opexeccersptestdlg.h"
|
|
#include "opexeccersptestframe.h"
|
|
#include "opexeccersptesttdview.h"
|
|
#include "opexeccersprecframe.h"
|
|
#include "opexeccersptestsptlistview.h"
|
|
#include "opexeccersptesttdlistview.h"
|
|
|
|
#include "OpExecCERSPTestTdScrollView.h"
|
|
|
|
#include "MediumQ.h"
|
|
|
|
#include "RspCETd.h"
|
|
#include "TdChannel.h"
|
|
#include "RSPCETdRecord.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
extern int g_iTransMode;
|
|
extern void TransDelay(int iTransMode, int iDS0, int iDS1, HWND hWnd = NULL);
|
|
extern BOOL DoEvent(HWND hWnd);
|
|
extern BOOL GetSubStringInHeadAndTail(const CString& szSource, CString& szSub, const CString& szHead, const CString& szTail);
|
|
extern int StatStringCount(const CString& szSource, const CString& szMember);
|
|
extern void SplitterString(CStringArray &szArray,const CString& szSource, const CString& szSplitter);
|
|
extern int g_UIOffset;
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// COpExecCERSPTestDlg dialog
|
|
|
|
extern HHOOK hHook;
|
|
extern LRESULT __stdcall CBTHookProc(long nCode, WPARAM wParam, LPARAM lParam);
|
|
COpExecCERSPTestDlg::COpExecCERSPTestDlg(CRspCETd* pRspCETd, INT_PTR* pRet, CWnd* pParent /*=NULL*/)
|
|
: CDialog(COpExecCERSPTestDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(COpExecCERSPTestDlg)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
m_pRet = pRet;
|
|
m_pRspCETd = pRspCETd;
|
|
m_szFileName.Empty();
|
|
m_pOpExecCERSPTestFrame = NULL;
|
|
}
|
|
|
|
|
|
void COpExecCERSPTestDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(COpExecCERSPTestDlg)
|
|
DDX_Control(pDX, IDC_DEEP_FACTOR, m_cbDeepFactor);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(COpExecCERSPTestDlg, CDialog)
|
|
//{{AFX_MSG_MAP(COpExecCERSPTestDlg)
|
|
ON_BN_CLICKED(IDC_BT_TEST, OnBtTest)
|
|
ON_WM_SIZE()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
BEGIN_EASYSIZE_MAP(COpExecCERSPTestDlg)
|
|
|
|
EASYSIZE(IDC_BT_TEST, ES_BORDER, ES_BORDER, ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
EASYSIZE(IDC_STATIC_DEPTH, ES_KEEPSIZE, ES_BORDER, ES_BORDER,ES_KEEPSIZE,0)
|
|
EASYSIZE(IDC_STATIC_ONE, ES_KEEPSIZE, ES_BORDER, ES_BORDER,ES_KEEPSIZE,0)
|
|
EASYSIZE(IDC_DEEP_FACTOR, ES_KEEPSIZE, ES_BORDER, ES_BORDER,ES_KEEPSIZE,0)
|
|
EASYSIZE(IDC_STATIC_AB, ES_KEEPSIZE, ES_BORDER, ES_BORDER,ES_KEEPSIZE,0)
|
|
EASYSIZE(IDOK, ES_KEEPSIZE, ES_BORDER, ES_BORDER,ES_KEEPSIZE,0)
|
|
EASYSIZE(IDCANCEL, ES_KEEPSIZE, ES_BORDER, ES_BORDER,ES_KEEPSIZE,0)
|
|
|
|
EASYSIZE(IDC_STATIC_FRAME,ES_BORDER,ES_BORDER,ES_BORDER,ES_BORDER,0)
|
|
|
|
END_EASYSIZE_MAP
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// COpExecCERSPTestDlg message handlers
|
|
|
|
void COpExecCERSPTestDlg::OnOK()
|
|
{
|
|
// TODO: Add extra validation here
|
|
CString szCaption = _T("");
|
|
|
|
Sleep(20);
|
|
|
|
if (TRUE == this->m_pRspCETd->SaveData())
|
|
{
|
|
szCaption.Empty();
|
|
szCaption.LoadString(IDS_OP_SUCCESS+g_UIOffset);
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
if (OFFSET_CHINESE == g_UIOffset)
|
|
AfxMessageBox(szCaption, MB_ICONINFORMATION);
|
|
else
|
|
MessageBoxEx(NULL, szCaption, STRING_MESSAGEBOXEX_TITLE, MB_ICONINFORMATION, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
}
|
|
else
|
|
{
|
|
this->ClearAll();
|
|
szCaption.Empty();
|
|
szCaption.LoadString(IDS_OP_FAIL+g_UIOffset);
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
if (OFFSET_CHINESE == g_UIOffset)
|
|
AfxMessageBox(szCaption, MB_ICONINFORMATION);
|
|
else
|
|
MessageBoxEx(NULL, szCaption, STRING_MESSAGEBOXEX_TITLE, MB_ICONINFORMATION, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
}
|
|
|
|
this->EndModalLoop(RET_OK);
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void COpExecCERSPTestDlg::OnCancel()
|
|
{
|
|
// TODO: Add extra cleanup here
|
|
this->ClearAll();
|
|
this->EndModalLoop(RET_CANCEL);
|
|
CDialog::OnCancel();
|
|
}
|
|
|
|
BOOL COpExecCERSPTestDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
// TODO: Add extra initialization here
|
|
|
|
CTdChannel* pTdChannel = NULL;
|
|
CRect rect;
|
|
|
|
CWnd *pStatic = GetDlgItem(IDC_STATIC_FRAME);
|
|
pStatic->GetWindowRect(&rect);
|
|
// pStatic->DestroyWindow();
|
|
|
|
this->ScreenToClient(&rect);
|
|
|
|
m_pOpExecCERSPTestFrame = (COpExecCERSPTestFrame*)((CRuntimeClass*)RUNTIME_CLASS(COpExecCERSPTestFrame))->CreateObject();
|
|
|
|
m_pOpExecCERSPTestFrame->Create(NULL, NULL, WS_CHILD, rect, this);
|
|
|
|
m_pOpExecCERSPTestFrame->MoveWindow(&rect);
|
|
m_pOpExecCERSPTestFrame->ShowWindow(SW_SHOW);
|
|
|
|
pTdChannel = (CTdChannel*)(this->m_pRspCETd->m_tdChaList.GetAt(m_pRspCETd->m_tdChaList.FindIndex(0))); //目前仅支持单通道
|
|
m_pOpExecCERSPTestFrame->m_pOpExecCERSPTestTdScrollView->m_pTdChannel = pTdChannel;
|
|
|
|
((CButton*)GetDlgItem(IDC_BT_TEST))->SetButtonStyle(BS_DEFPUSHBUTTON | BS_PUSHBUTTON | BS_NOTIFY);
|
|
((CButton*)GetDlgItem(IDC_BT_TEST))->SetFocus();
|
|
|
|
this->m_cbDeepFactor.SetCurSel(0);
|
|
|
|
ReSetAll();
|
|
|
|
INIT_EASYSIZE;
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void COpExecCERSPTestDlg::ClearAll()
|
|
{
|
|
CString szFilePath = _T("");
|
|
CString szFileName = _T("");
|
|
CString szFile = _T("");
|
|
CString szOrder = _T("");
|
|
CString szResBuff = _T("");
|
|
CString szPrompt = _T("");
|
|
|
|
int iResSize = (int)VAL_ZERO;
|
|
int iPollingTime = (int)VAL_ZERO;
|
|
char aResBuff[2048] = {0};
|
|
|
|
szFilePath.Empty();
|
|
szFilePath.GetBufferSetLength(2048);
|
|
::GetCurrentDirectory(2048, szFilePath.GetBuffer(szFilePath.GetLength()));
|
|
szFilePath.ReleaseBuffer();
|
|
|
|
szFileName.Empty();
|
|
szFileName = m_pRspCETd->m_szTdCN + _T(".xml");
|
|
szFile.Empty();
|
|
szFile = szFilePath + _T("\\") + szFileName;
|
|
|
|
DeleteFile(szFile);
|
|
|
|
TransDelay(g_iTransMode, 10, 50, NULL);
|
|
|
|
m_pRspCETd->m_pDevice->m_sComPort.ClearCommReceiveBuff();
|
|
m_pRspCETd->m_pDevice->m_sComPort.ClearCommSendBuff();
|
|
|
|
szOrder.Empty();
|
|
szOrder.Format(_T("meas_delete(\"%s\",\"%s\",\"%s\")\r\n"), m_pRspCETd->m_szPrCN, m_pRspCETd->m_szTzCN, m_pRspCETd->m_szTdCN);
|
|
// MessageBox(szOrder);
|
|
|
|
m_pRspCETd->m_pDevice->m_sComPort.SendDataDirectly(szOrder.GetBuffer(szOrder.GetLength()), szOrder.GetLength());
|
|
szOrder.ReleaseBuffer();
|
|
// TransDelay(g_iTransMode, 100, 200);
|
|
|
|
iResSize = (int)VAL_ZERO;
|
|
memset(aResBuff, 0, sizeof(aResBuff));
|
|
szResBuff.Empty();
|
|
iPollingTime = (int)VAL_ZERO;
|
|
while ((szResBuff.Find(">") == -1) && (iPollingTime < 3))
|
|
{
|
|
Sleep(500);
|
|
while (m_pRspCETd->m_pDevice->m_sComPort.ReceiveDataDirectly(aResBuff, &iResSize) == TRUE)
|
|
{
|
|
szResBuff.Insert(szResBuff.GetLength(), aResBuff);
|
|
|
|
iResSize = (int)VAL_ZERO;
|
|
memset(aResBuff, 0, sizeof(aResBuff));
|
|
}
|
|
iPollingTime++;
|
|
}
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szResBuff);
|
|
|
|
if (szResBuff.Find('>') == -1)
|
|
{
|
|
szPrompt.Empty();
|
|
szPrompt.LoadString(IDS_OP_HOST_ERROR);
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szPrompt, NULL, MB_ICONSTOP);
|
|
}
|
|
|
|
this->m_pRspCETd->ClearTdChaList();
|
|
|
|
}
|
|
|
|
void COpExecCERSPTestDlg::ReSetAll()
|
|
{
|
|
CTdChannel* pTdChannel = NULL;
|
|
CRspCETdRecord* pRspCETdRecord = NULL;
|
|
CRect vRect;
|
|
CRect lRect;
|
|
int iSmWidth = (int)VAL_ZERO;
|
|
int iSmHeight = (int)VAL_ZERO;
|
|
int iTdChannelIndex = (int)VAL_ZERO;
|
|
int iTdRecIndex = (int)VAL_ZERO;
|
|
CListCtrl* pSptList = &(this->m_pOpExecCERSPTestFrame->m_pOpExecCERSPRecFrame->m_pOpExecCERSPTestSptListView->GetListCtrl());
|
|
|
|
// CClientDC dc(this->m_pOpExecCERSPTestFrame->m_pOpExecCERSPTestTdView);
|
|
|
|
// this->m_pOpExecCERSPTestFrame->m_pOpExecCERSPTestTdView->GetClientRect(vRect);
|
|
// dc.FillSolidRect(vRect, RGB(0xFF,0xFF,0xFF));
|
|
|
|
iTdChannelIndex = (int)VAL_ZERO;
|
|
|
|
while (iTdChannelIndex < m_pRspCETd->m_tdChaList.GetCount())
|
|
{
|
|
pTdChannel = NULL;
|
|
pTdChannel = (CTdChannel*)this->m_pRspCETd->m_tdChaList.GetAt(this->m_pRspCETd->m_tdChaList.FindIndex(iTdChannelIndex));
|
|
|
|
|
|
if (NULL != pTdChannel)
|
|
{
|
|
pTdChannel->ClearCESptRecList();
|
|
pTdChannel->LoadCEScriptFromDB();
|
|
|
|
iTdRecIndex = (int)VAL_ZERO;
|
|
while (iTdRecIndex < pTdChannel->m_tdRecArray.GetSize())
|
|
{
|
|
pRspCETdRecord = NULL;
|
|
pRspCETdRecord = (CRspCETdRecord*)pTdChannel->m_tdRecArray.GetAt(iTdRecIndex);
|
|
pRspCETdRecord->ClearAll();
|
|
iTdRecIndex++;
|
|
}
|
|
|
|
// this->m_pOpExecCERSPTestFrame->m_pOpExecCERSPTestTdView->m_lRect = lRect;
|
|
|
|
}
|
|
|
|
this->PutScriptToList(pSptList, pTdChannel->m_tdRecArray);
|
|
|
|
iTdChannelIndex++;
|
|
}
|
|
|
|
this->m_pOpExecCERSPTestFrame->m_pOpExecCERSPTestTdScrollView->Invalidate();
|
|
}
|
|
|
|
void COpExecCERSPTestDlg::OnBtTest()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
POSITION posSCon;
|
|
int iSConIndex = (int)VAL_ZERO;
|
|
|
|
CTdChannel* pTdChannel = NULL;
|
|
CRspCETdRecord* pRspCETdRecord = NULL;
|
|
CListCtrl* pSptList = NULL;
|
|
CListCtrl* pTdList = NULL;
|
|
|
|
pSptList = &(this->m_pOpExecCERSPTestFrame->m_pOpExecCERSPRecFrame->m_pOpExecCERSPTestSptListView->GetListCtrl());
|
|
pTdList = &(this->m_pOpExecCERSPTestFrame->m_pOpExecCERSPRecFrame->m_pOpExecCERSPTestTdListView->GetListCtrl());
|
|
|
|
posSCon = pSptList->GetFirstSelectedItemPosition();
|
|
|
|
if (NULL != posSCon)
|
|
{
|
|
iSConIndex = pSptList->GetNextSelectedItem(posSCon);
|
|
|
|
pRspCETdRecord = (CRspCETdRecord*)(pSptList->GetItemData(iSConIndex));
|
|
|
|
pTdChannel = NULL;
|
|
pTdChannel = (CTdChannel*)this->m_pRspCETd->m_tdChaList.GetAt(this->m_pRspCETd->m_tdChaList.FindIndex(0));
|
|
|
|
if (this->TestingPointCollection(pTdList, pRspCETdRecord, pTdChannel) == TRUE)
|
|
{
|
|
this->GetDlgItem(IDOK)->EnableWindow(TRUE);
|
|
}
|
|
}
|
|
}
|
|
|
|
void COpExecCERSPTestDlg::PutScriptToList(CListCtrl* pTdList, CPtrArray& tdRecArray)
|
|
{
|
|
CRspCETdRecord* pRspCETdRecord = NULL;
|
|
int iTdRecIndex = (int)VAL_ZERO;
|
|
CString szTdCon = _T("");
|
|
|
|
pTdList->DeleteAllItems();
|
|
|
|
while (iTdRecIndex < tdRecArray.GetSize())
|
|
{
|
|
pRspCETdRecord = (CRspCETdRecord*)tdRecArray.GetAt(iTdRecIndex);
|
|
szTdCon.Empty();
|
|
szTdCon.Format(_T("%d"), pRspCETdRecord->m_iTsn);
|
|
pTdList->InsertItem(iTdRecIndex, szTdCon);
|
|
|
|
szTdCon.Empty();
|
|
szTdCon.Format(_T("%.1f"), pRspCETdRecord->m_fA);
|
|
pTdList->SetItemText(iTdRecIndex, 1, szTdCon);
|
|
|
|
szTdCon.Empty();
|
|
szTdCon.Format(_T("%.1f"), pRspCETdRecord->m_fB);
|
|
pTdList->SetItemText(iTdRecIndex, 2, szTdCon);
|
|
|
|
szTdCon.Empty();
|
|
szTdCon.Format(_T("%.1f"), pRspCETdRecord->m_fX);
|
|
pTdList->SetItemText(iTdRecIndex, 3, szTdCon);
|
|
|
|
szTdCon.Empty();
|
|
szTdCon.Format(_T("%.1f"), pRspCETdRecord->m_fY);
|
|
pTdList->SetItemText(iTdRecIndex, 4, szTdCon);
|
|
|
|
szTdCon.Empty();
|
|
szTdCon.Format(_T("%d"), pRspCETdRecord->m_iN);
|
|
pTdList->SetItemText(iTdRecIndex, 5, szTdCon);
|
|
|
|
szTdCon.Empty();
|
|
szTdCon.Format(_T("%f"), pRspCETdRecord->m_fK);
|
|
pTdList->SetItemText(iTdRecIndex, 6, szTdCon);
|
|
|
|
pTdList->SetItemData(iTdRecIndex, (DWORD)pRspCETdRecord);
|
|
|
|
iTdRecIndex++;
|
|
}
|
|
}
|
|
|
|
BOOL COpExecCERSPTestDlg::TestingPointCollection(CListCtrl* pTdList, CRspCETdRecord* pRspCETdRecord, CTdChannel* pTdChannel)
|
|
{
|
|
char aResBuff[2048] = {0};
|
|
int iResSize = (int)VAL_ZERO;
|
|
|
|
LVFINDINFO info;
|
|
CString szTSN = _T("");
|
|
int iListIndex = (int)VAL_ZERO;
|
|
int iCurListIndex = (int)VAL_ZERO;
|
|
int iTdRecIndex = (int)VAL_ZERO;
|
|
|
|
int iRecIndex = (int)VAL_ZERO;
|
|
|
|
int iTime = (int)VAL_ZERO;
|
|
BOOL bIsRetrans = FALSE;
|
|
|
|
CString szOrder = _T("");
|
|
CString szResBuff = _T("");
|
|
CString szResCon = _T("");
|
|
CString szPrompt = _T("");
|
|
|
|
CStringArray szArrayRes;
|
|
// CStringArray szArrayRes2;
|
|
CRspCETdRecord* pNewRspCETdRecord = NULL;
|
|
int iPollingTime = 0;
|
|
int iCountTime = 0;
|
|
|
|
m_pRspCETd->m_fTRPeriod = m_pRspCETd->m_fTRPeriod + 5;
|
|
|
|
info.flags = LVFI_PARTIAL | LVFI_PARAM;
|
|
info.lParam = (long)pRspCETdRecord;
|
|
|
|
iCurListIndex = pTdList->FindItem(&info);
|
|
|
|
szTSN.Empty();
|
|
szTSN.Format(_T("%5d"), pRspCETdRecord->m_iTsn);
|
|
|
|
if ((int)VAL_MINUS_ONE != iCurListIndex)
|
|
{
|
|
|
|
info.flags = LVFI_PARTIAL | LVFI_STRING;
|
|
info.psz = szTSN;
|
|
|
|
while ((int)VAL_MINUS_ONE != iListIndex)
|
|
{
|
|
iCurListIndex = iListIndex;
|
|
iListIndex = pTdList->FindItem(&info, iCurListIndex);
|
|
}
|
|
iListIndex = iCurListIndex;
|
|
|
|
pNewRspCETdRecord = new CRspCETdRecord(pRspCETdRecord->m_dwChID, pRspCETdRecord->m_pConnection);
|
|
pTdChannel->m_tdRecArray.InsertAt(iListIndex + 1, (void*)pNewRspCETdRecord);
|
|
}
|
|
else
|
|
{
|
|
if (0 == pTdList->GetItemCount())
|
|
{
|
|
iListIndex = -1;
|
|
}
|
|
else
|
|
{
|
|
iListIndex = pTdList->GetItemCount() - 1;
|
|
}
|
|
|
|
pNewRspCETdRecord = NULL;
|
|
pNewRspCETdRecord = pRspCETdRecord;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
pNewRspCETdRecord->m_iTsn = pRspCETdRecord->m_iTsn;
|
|
pNewRspCETdRecord->m_fA = pRspCETdRecord->m_fA;
|
|
pNewRspCETdRecord->m_fB = pRspCETdRecord->m_fB;
|
|
pNewRspCETdRecord->m_fX = pRspCETdRecord->m_fX;
|
|
pNewRspCETdRecord->m_fY = pRspCETdRecord->m_fY;
|
|
pNewRspCETdRecord->m_fK = pRspCETdRecord->m_fK;
|
|
pNewRspCETdRecord->m_iN = pRspCETdRecord->m_iN;
|
|
pNewRspCETdRecord->m_fR0 = pRspCETdRecord->m_fR0;
|
|
pNewRspCETdRecord->m_fI = pRspCETdRecord->m_fI;
|
|
pNewRspCETdRecord->m_fV = pRspCETdRecord->m_fV;
|
|
pNewRspCETdRecord->m_colorREF = pRspCETdRecord->m_colorREF;
|
|
pNewRspCETdRecord->m_recPtArea.SetRectEmpty();
|
|
pRspCETdRecord->m_fDepth = ((CMediumQ*)pTdChannel->m_pMedium)->CalculateDepth(pRspCETdRecord->m_fA, 0.5);
|
|
pNewRspCETdRecord->m_fDepth = pRspCETdRecord->m_fDepth;
|
|
|
|
|
|
// pTdChannel->m_tdRecArray.Add((void*)pNewRspCETdRecord);
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
// iListIndex = pTdList->GetItemCount();
|
|
|
|
do
|
|
{
|
|
if (!bIsRetrans)
|
|
{
|
|
m_pRspCETd->m_pDevice->m_sComPort.ClearCommReceiveBuff();
|
|
m_pRspCETd->m_pDevice->m_sComPort.ClearCommSendBuff();
|
|
|
|
m_pRspCETd->m_pDevice->m_sComPort.SendDataDirectly("\r\n", 2);
|
|
// TransDelay(g_iTransMode, 20, 50);
|
|
iResSize = (int)VAL_ZERO;
|
|
memset(aResBuff, 0, sizeof(aResBuff));
|
|
szResBuff.Empty();
|
|
iPollingTime = 0;
|
|
while ((szResBuff.Find(">") == -1) && (iPollingTime < MAX_POLLING_TIME))
|
|
{
|
|
|
|
while (m_pRspCETd->m_pDevice->m_sComPort.ReceiveDataDirectly(aResBuff, &iResSize) == TRUE)
|
|
{
|
|
szResBuff.Insert(szResBuff.GetLength(), aResBuff);
|
|
|
|
iResSize = (int)VAL_ZERO;
|
|
memset(aResBuff, 0, sizeof(aResBuff));
|
|
}
|
|
iPollingTime++;
|
|
}
|
|
|
|
if (szResBuff.Find('>') == -1)
|
|
{
|
|
m_pRspCETd->m_pDevice->m_sComPort.ClearCommReceiveBuff();
|
|
m_pRspCETd->m_pDevice->m_sComPort.ClearCommSendBuff();
|
|
|
|
m_pRspCETd->m_pDevice->m_sComPort.SendDataDirectly("\r\n", 2);
|
|
// TransDelay(g_iTransMode, 20, 50);
|
|
iResSize = (int)VAL_ZERO;
|
|
memset(aResBuff, 0, sizeof(aResBuff));
|
|
m_pRspCETd->m_pDevice->m_sComPort.ReceiveDataDirectly(aResBuff, &iResSize);
|
|
|
|
szResBuff.Empty();
|
|
szResBuff.Format(_T("%s"), aResBuff);
|
|
if (szResBuff.Find('>') == -1)
|
|
{
|
|
szPrompt.Empty();
|
|
szPrompt.LoadString(IDS_OP_HOST_ERROR);
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szPrompt, NULL, MB_ICONSTOP);
|
|
return FALSE;
|
|
}
|
|
}
|
|
}
|
|
/*
|
|
iTime = (int)m_pRspCETd->m_fTRPeriod * pNewRspCETdRecord->m_iN; //发射周期与迭代次数决定延迟时间,真实环境需删除此处
|
|
|
|
if (bIsRetrans) //真实环境需删除此处
|
|
{
|
|
iTime = 0;
|
|
}
|
|
*/
|
|
m_pRspCETd->m_pDevice->m_sComPort.ClearCommSendBuff();
|
|
m_pRspCETd->m_pDevice->m_sComPort.ClearCommReceiveBuff();
|
|
|
|
szOrder.Empty();
|
|
// szOrder.Format(_T("meas_point(%d,%d,%d,%d,%d,%d)\r\n"), (int)pNewRspCETdRecord->m_fC1*10, (int)pNewRspCETdRecord->m_fC2*10, (int)pNewRspCETdRecord->m_fP1*10, (int)pNewRspCETdRecord->m_fP2*10, iTime, (int)!bIsRetrans);
|
|
szOrder.Format(_T("meas_point(%d,%d,%d,%d,0,%d)\r\n"), (int)(pNewRspCETdRecord->m_fA*10.0), (int)(pNewRspCETdRecord->m_fB*10.0), (int)(pNewRspCETdRecord->m_fX*10.0), (int)(pNewRspCETdRecord->m_fY*10.0), !bIsRetrans);
|
|
// MessageBox(szOrder);
|
|
|
|
m_pRspCETd->m_pDevice->m_sComPort.SendDataDirectly(szOrder.GetBuffer(szOrder.GetLength()), szOrder.GetLength());
|
|
szOrder.ReleaseBuffer();
|
|
// TransDelay(g_iTransMode, 100, 200);
|
|
|
|
bIsRetrans = FALSE;
|
|
|
|
iResSize = (int)VAL_ZERO;
|
|
memset(aResBuff, 0, sizeof(aResBuff));
|
|
|
|
szResBuff.Empty();
|
|
iPollingTime = 0;
|
|
iCountTime = (int)m_pRspCETd->m_fTRPeriod * pNewRspCETdRecord->m_iN/COMM_TIMEOUT + MAX_POLLING_TIME; //依据发射周期设定轮询时长
|
|
|
|
while ((szResBuff.Find("]") == -1) && (iPollingTime < iCountTime))
|
|
{
|
|
// DoEvent(this->m_hWnd);
|
|
|
|
Sleep(1);
|
|
while (m_pRspCETd->m_pDevice->m_sComPort.ReceiveDataDirectly(aResBuff, &iResSize) == TRUE)
|
|
{
|
|
szResBuff.Insert(szResBuff.GetLength(), aResBuff);
|
|
|
|
iResSize = (int)VAL_ZERO;
|
|
memset(aResBuff, 0, sizeof(aResBuff));
|
|
}
|
|
// MessageBox(szResBuff);
|
|
iPollingTime++;
|
|
}
|
|
|
|
if ((iCountTime+1) == iPollingTime)
|
|
{
|
|
bIsRetrans = TRUE;
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szResBuff);
|
|
// DoEvent(this->m_hWnd);
|
|
|
|
continue;
|
|
}
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szResBuff);
|
|
|
|
|
|
try
|
|
{
|
|
if (GetSubStringInHeadAndTail(szResBuff, szResCon, _T("["), _T("]")) == TRUE)
|
|
{
|
|
if (StatStringCount(szResCon, _T(";")) == 4)
|
|
{
|
|
szArrayRes.RemoveAll();
|
|
SplitterString(szArrayRes, szResCon, _T(";"));
|
|
|
|
if (szArrayRes.GetSize() == 4)
|
|
{
|
|
|
|
/*szArrayRes.GetAt(0).TrimLeft();
|
|
szArrayRes.GetAt(0).TrimRight();
|
|
szArrayRes.GetAt(1).TrimLeft();
|
|
szArrayRes.GetAt(1).TrimRight();
|
|
szArrayRes.GetAt(2).TrimLeft();
|
|
szArrayRes.GetAt(2).TrimRight();
|
|
szArrayRes.GetAt(3).TrimLeft();
|
|
szArrayRes.GetAt(3).TrimRight();*/
|
|
//by quyx 20180502 为适应vs2013编译器
|
|
CString szCstringRes0 = szArrayRes.GetAt(0);
|
|
szCstringRes0.TrimLeft(); szCstringRes0.TrimRight();
|
|
CString szCstringRes1 = szArrayRes.GetAt(1);
|
|
szCstringRes1.TrimLeft(); szCstringRes1.TrimRight();
|
|
CString szCstringRes2 = szArrayRes.GetAt(2);
|
|
szCstringRes2.TrimLeft(); szCstringRes2.TrimRight();
|
|
CString szCstringRes3 = szArrayRes.GetAt(3);
|
|
szCstringRes3.TrimLeft(); szCstringRes3.TrimRight();
|
|
|
|
pNewRspCETdRecord->m_fI = (float)atof(szCstringRes0);// szArrayRes.GetAt(0));
|
|
pNewRspCETdRecord->m_fV = (float)atof(szCstringRes1);// szArrayRes.GetAt(1));
|
|
pNewRspCETdRecord->m_fR0 = (float)atof(szCstringRes2);// szArrayRes.GetAt(2));
|
|
pNewRspCETdRecord->m_fSP = (float)atof(szCstringRes3);// szArrayRes.GetAt(3));
|
|
|
|
pTdList->InsertItem(iListIndex + 1, szTSN);
|
|
pTdList->SetItemText(iListIndex + 1, 1, szCstringRes0);// szArrayRes.GetAt(0));
|
|
pTdList->SetItemText(iListIndex + 1, 2, szCstringRes1);// szArrayRes.GetAt(1));
|
|
pTdList->SetItemText(iListIndex + 1, 3, szCstringRes2);// szArrayRes.GetAt(2));
|
|
pTdList->SetItemText(iListIndex + 1, 4, szCstringRes3);// szArrayRes.GetAt(3));
|
|
|
|
pTdList->SetHotItem(iListIndex + 1);
|
|
pTdList->EnsureVisible(iListIndex + 1, TRUE);
|
|
pTdList->SetItemData(iListIndex + 1, (DWORD)pNewRspCETdRecord);
|
|
pTdList->SetItemState(iListIndex + 1, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
|
|
pTdList->SetFocus();
|
|
}
|
|
else
|
|
{
|
|
bIsRetrans = TRUE;
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szResBuff);
|
|
|
|
continue; //数据错,重测
|
|
}
|
|
}
|
|
else if (_T("0") == szResCon)
|
|
{
|
|
pNewRspCETdRecord->m_fI = (float)0;
|
|
pNewRspCETdRecord->m_fV = (float)0;
|
|
pNewRspCETdRecord->m_fR0 = (float)0;
|
|
pNewRspCETdRecord->m_fSP = (float)0;
|
|
|
|
pTdList->InsertItem(iListIndex + 1, szTSN);
|
|
pTdList->SetItemText(iListIndex + 1, 1, _T("0"));
|
|
pTdList->SetItemText(iListIndex + 1, 2, _T("0"));
|
|
pTdList->SetItemText(iListIndex + 1, 3, _T("0"));
|
|
pTdList->SetItemText(iListIndex + 1, 4, _T("0"));
|
|
|
|
pTdList->SetHotItem(iListIndex + 1);
|
|
pTdList->EnsureVisible(iListIndex + 1, TRUE);
|
|
pTdList->SetItemData(iListIndex + 1, (DWORD)pNewRspCETdRecord);
|
|
pTdList->SetItemState(iListIndex + 1, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
|
|
pTdList->SetFocus();
|
|
|
|
}
|
|
else
|
|
{
|
|
// TransDelay(g_iTransMode, 3, 20, this->m_hWnd); //数据错,重测
|
|
bIsRetrans = TRUE;
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szResBuff);
|
|
// DoEvent(this->m_hWnd);
|
|
|
|
continue;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
bIsRetrans = TRUE;
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szResBuff);
|
|
DoEvent(this->m_hWnd);
|
|
|
|
continue;
|
|
}
|
|
}
|
|
catch (...)
|
|
{
|
|
bIsRetrans = TRUE;
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szResBuff);
|
|
continue;
|
|
}
|
|
|
|
|
|
DoEvent(this->m_hWnd);
|
|
} while (TRUE == bIsRetrans);
|
|
|
|
|
|
if (pNewRspCETdRecord->m_fR0 > pTdChannel->m_fMaxR0)
|
|
{
|
|
pTdChannel->m_fMaxR0 = pNewRspCETdRecord->m_fR0;
|
|
}
|
|
|
|
if (pNewRspCETdRecord->m_fDepth > pTdChannel->m_fMaxDepth)
|
|
{
|
|
pTdChannel->m_fMaxDepth = pNewRspCETdRecord->m_fDepth;
|
|
}
|
|
|
|
this->m_pOpExecCERSPTestFrame->m_pOpExecCERSPTestTdScrollView->Invalidate();
|
|
|
|
if (19 == pTdChannel->m_pMedium->m_iAR)
|
|
{
|
|
/////////////////////////////////////////////////////////////////
|
|
|
|
iListIndex = (int)VAL_ZERO;
|
|
iCurListIndex = (int)VAL_ZERO;
|
|
pNewRspCETdRecord = NULL;
|
|
|
|
m_pRspCETd->m_fTRPeriod = m_pRspCETd->m_fTRPeriod + 5;
|
|
|
|
info.flags = LVFI_PARTIAL | LVFI_PARAM;
|
|
info.lParam = (long)pRspCETdRecord;
|
|
|
|
iCurListIndex = pTdList->FindItem(&info);
|
|
|
|
szTSN.Empty();
|
|
szTSN.Format(_T("%5d"), pRspCETdRecord->m_iTsn);
|
|
|
|
if ((int)VAL_MINUS_ONE != iCurListIndex)
|
|
{
|
|
|
|
info.flags = LVFI_PARTIAL | LVFI_STRING;
|
|
info.psz = szTSN;
|
|
|
|
while ((int)VAL_MINUS_ONE != iListIndex)
|
|
{
|
|
iCurListIndex = iListIndex;
|
|
iListIndex = pTdList->FindItem(&info, iCurListIndex);
|
|
}
|
|
iListIndex = iCurListIndex;
|
|
|
|
pNewRspCETdRecord = new CRspCETdRecord(pRspCETdRecord->m_dwChID, pRspCETdRecord->m_pConnection);
|
|
pTdChannel->m_tdRecArray.InsertAt(iListIndex + 1, (void*)pNewRspCETdRecord);
|
|
}
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
pNewRspCETdRecord->m_iTsn = pRspCETdRecord->m_iTsn;
|
|
pNewRspCETdRecord->m_fA = pRspCETdRecord->m_fA * (-1);
|
|
pNewRspCETdRecord->m_fB = pRspCETdRecord->m_fB;
|
|
pNewRspCETdRecord->m_fX = pRspCETdRecord->m_fX;
|
|
pNewRspCETdRecord->m_fY = pRspCETdRecord->m_fY;
|
|
pNewRspCETdRecord->m_fK = pRspCETdRecord->m_fK;
|
|
pNewRspCETdRecord->m_iN = pRspCETdRecord->m_iN;
|
|
pNewRspCETdRecord->m_fR0 = pRspCETdRecord->m_fR0;
|
|
pNewRspCETdRecord->m_fI = pRspCETdRecord->m_fI;
|
|
pNewRspCETdRecord->m_fV = pRspCETdRecord->m_fV;
|
|
pNewRspCETdRecord->m_colorREF = pRspCETdRecord->m_colorREF;
|
|
pNewRspCETdRecord->m_recPtArea.SetRectEmpty();
|
|
// pRspCETdRecord->m_fDepth = ((CMediumQ*)pTdChannel->m_pMedium)->CalculateDepth(pRspCETdRecord->m_fA, 0.5);
|
|
pNewRspCETdRecord->m_fDepth = pRspCETdRecord->m_fDepth;
|
|
|
|
|
|
// pTdChannel->m_tdRecArray.Add((void*)pNewRspCETdRecord);
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
// iListIndex = pTdList->GetItemCount();
|
|
|
|
do
|
|
{
|
|
if (!bIsRetrans)
|
|
{
|
|
m_pRspCETd->m_pDevice->m_sComPort.ClearCommReceiveBuff();
|
|
m_pRspCETd->m_pDevice->m_sComPort.ClearCommSendBuff();
|
|
|
|
m_pRspCETd->m_pDevice->m_sComPort.SendDataDirectly("\r\n", 2);
|
|
// TransDelay(g_iTransMode, 20, 50);
|
|
iResSize = (int)VAL_ZERO;
|
|
memset(aResBuff, 0, sizeof(aResBuff));
|
|
szResBuff.Empty();
|
|
iPollingTime = 0;
|
|
while ((szResBuff.Find(">") == -1) && (iPollingTime < MAX_POLLING_TIME))
|
|
{
|
|
|
|
while (m_pRspCETd->m_pDevice->m_sComPort.ReceiveDataDirectly(aResBuff, &iResSize) == TRUE)
|
|
{
|
|
szResBuff.Insert(szResBuff.GetLength(), aResBuff);
|
|
|
|
iResSize = (int)VAL_ZERO;
|
|
memset(aResBuff, 0, sizeof(aResBuff));
|
|
}
|
|
iPollingTime++;
|
|
}
|
|
|
|
if (szResBuff.Find('>') == -1)
|
|
{
|
|
m_pRspCETd->m_pDevice->m_sComPort.ClearCommReceiveBuff();
|
|
m_pRspCETd->m_pDevice->m_sComPort.ClearCommSendBuff();
|
|
|
|
m_pRspCETd->m_pDevice->m_sComPort.SendDataDirectly("\r\n", 2);
|
|
// TransDelay(g_iTransMode, 20, 50);
|
|
iResSize = (int)VAL_ZERO;
|
|
memset(aResBuff, 0, sizeof(aResBuff));
|
|
m_pRspCETd->m_pDevice->m_sComPort.ReceiveDataDirectly(aResBuff, &iResSize);
|
|
|
|
szResBuff.Empty();
|
|
szResBuff.Format(_T("%s"), aResBuff);
|
|
if (szResBuff.Find('>') == -1)
|
|
{
|
|
szPrompt.Empty();
|
|
szPrompt.LoadString(IDS_OP_HOST_ERROR);
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szPrompt, NULL, MB_ICONSTOP);
|
|
return FALSE;
|
|
}
|
|
}
|
|
}
|
|
/*
|
|
iTime = (int)m_pRspCETd->m_fTRPeriod * pNewRspCETdRecord->m_iN; //发射周期与迭代次数决定延迟时间,真实环境需删除此处
|
|
|
|
if (bIsRetrans) //真实环境需删除此处
|
|
{
|
|
iTime = 0;
|
|
}
|
|
*/
|
|
m_pRspCETd->m_pDevice->m_sComPort.ClearCommSendBuff();
|
|
m_pRspCETd->m_pDevice->m_sComPort.ClearCommReceiveBuff();
|
|
|
|
szOrder.Empty();
|
|
// szOrder.Format(_T("meas_point(%d,%d,%d,%d,%d,%d)\r\n"), (int)pNewRspCETdRecord->m_fC1*10, (int)pNewRspCETdRecord->m_fC2*10, (int)pNewRspCETdRecord->m_fP1*10, (int)pNewRspCETdRecord->m_fP2*10, iTime, (int)!bIsRetrans);
|
|
szOrder.Format(_T("meas_point(%d,%d,%d,%d,0,%d)\r\n"), (int)(pNewRspCETdRecord->m_fA*10.0), (int)(pNewRspCETdRecord->m_fB*10.0), (int)(pNewRspCETdRecord->m_fX*10.0), (int)(pNewRspCETdRecord->m_fY*10.0), !bIsRetrans);
|
|
// MessageBox(szOrder);
|
|
|
|
m_pRspCETd->m_pDevice->m_sComPort.SendDataDirectly(szOrder.GetBuffer(szOrder.GetLength()), szOrder.GetLength());
|
|
szOrder.ReleaseBuffer();
|
|
// TransDelay(g_iTransMode, 100, 200);
|
|
|
|
bIsRetrans = FALSE;
|
|
|
|
iResSize = (int)VAL_ZERO;
|
|
memset(aResBuff, 0, sizeof(aResBuff));
|
|
|
|
szResBuff.Empty();
|
|
iPollingTime = 0;
|
|
iCountTime = (int)m_pRspCETd->m_fTRPeriod * pNewRspCETdRecord->m_iN/COMM_TIMEOUT + MAX_POLLING_TIME; //依据发射周期设定轮询时长
|
|
|
|
while ((szResBuff.Find("]") == -1) && (iPollingTime < iCountTime))
|
|
{
|
|
// DoEvent(this->m_hWnd);
|
|
|
|
Sleep(1);
|
|
while (m_pRspCETd->m_pDevice->m_sComPort.ReceiveDataDirectly(aResBuff, &iResSize) == TRUE)
|
|
{
|
|
szResBuff.Insert(szResBuff.GetLength(), aResBuff);
|
|
|
|
iResSize = (int)VAL_ZERO;
|
|
memset(aResBuff, 0, sizeof(aResBuff));
|
|
}
|
|
// MessageBox(szResBuff);
|
|
iPollingTime++;
|
|
}
|
|
|
|
if ((iCountTime+1) == iPollingTime)
|
|
{
|
|
bIsRetrans = TRUE;
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szResBuff);
|
|
// DoEvent(this->m_hWnd);
|
|
|
|
continue;
|
|
}
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szResBuff);
|
|
|
|
|
|
try
|
|
{
|
|
if (GetSubStringInHeadAndTail(szResBuff, szResCon, _T("["), _T("]")) == TRUE)
|
|
{
|
|
if (StatStringCount(szResCon, _T(";")) == 4)
|
|
{
|
|
szArrayRes.RemoveAll();
|
|
SplitterString(szArrayRes, szResCon, _T(";"));
|
|
|
|
if (szArrayRes.GetSize() == 4)
|
|
{
|
|
|
|
/*szArrayRes.GetAt(0).TrimLeft();
|
|
szArrayRes.GetAt(0).TrimRight();
|
|
szArrayRes.GetAt(1).TrimLeft();
|
|
szArrayRes.GetAt(1).TrimRight();
|
|
szArrayRes.GetAt(2).TrimLeft();
|
|
szArrayRes.GetAt(2).TrimRight();
|
|
szArrayRes.GetAt(3).TrimLeft();
|
|
szArrayRes.GetAt(3).TrimRight();*/
|
|
//by quyx 20180502 为适应vs2013编译器
|
|
CString szCstringRes0 = szArrayRes.GetAt(0);
|
|
szCstringRes0.TrimLeft();szCstringRes0.TrimRight();
|
|
CString szCstringRes1 = szArrayRes.GetAt(1);
|
|
szCstringRes1.TrimLeft();szCstringRes1.TrimRight();
|
|
CString szCstringRes2 = szArrayRes.GetAt(2);
|
|
szCstringRes2.TrimLeft();szCstringRes2.TrimRight();
|
|
CString szCstringRes3 = szArrayRes.GetAt(3);
|
|
szCstringRes3.TrimLeft(); szCstringRes3.TrimRight();
|
|
|
|
pNewRspCETdRecord->m_fI = (float)atof(szCstringRes0);// szArrayRes.GetAt(0));
|
|
pNewRspCETdRecord->m_fV = (float)atof(szCstringRes1);//szArrayRes.GetAt(1));
|
|
pNewRspCETdRecord->m_fR0 = (float)atof(szCstringRes2);//szArrayRes.GetAt(2));
|
|
pNewRspCETdRecord->m_fSP = (float)atof(szCstringRes3);//szArrayRes.GetAt(3));
|
|
|
|
pTdList->InsertItem(iListIndex + 1, szTSN);
|
|
pTdList->SetItemText(iListIndex + 1, 1, szCstringRes0);//szArrayRes.GetAt(0));
|
|
pTdList->SetItemText(iListIndex + 1, 2, szCstringRes1);//szArrayRes.GetAt(1));
|
|
pTdList->SetItemText(iListIndex + 1, 3, szCstringRes2);//szArrayRes.GetAt(2));
|
|
pTdList->SetItemText(iListIndex + 1, 4, szCstringRes3);//szArrayRes.GetAt(3));
|
|
|
|
pTdList->SetHotItem(iListIndex + 1);
|
|
pTdList->EnsureVisible(iListIndex + 1, TRUE);
|
|
pTdList->SetItemData(iListIndex + 1, (DWORD)pNewRspCETdRecord);
|
|
pTdList->SetItemState(iListIndex + 1, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
|
|
pTdList->SetFocus();
|
|
}
|
|
else
|
|
{
|
|
bIsRetrans = TRUE;
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szResBuff);
|
|
|
|
continue; //数据错,重测
|
|
}
|
|
}
|
|
else if (_T("0") == szResCon)
|
|
{
|
|
pNewRspCETdRecord->m_fI = (float)0;
|
|
pNewRspCETdRecord->m_fV = (float)0;
|
|
pNewRspCETdRecord->m_fR0 = (float)0;
|
|
pNewRspCETdRecord->m_fSP = (float)0;
|
|
|
|
pTdList->InsertItem(iListIndex + 1, szTSN);
|
|
pTdList->SetItemText(iListIndex + 1, 1, _T("0"));
|
|
pTdList->SetItemText(iListIndex + 1, 2, _T("0"));
|
|
pTdList->SetItemText(iListIndex + 1, 3, _T("0"));
|
|
pTdList->SetItemText(iListIndex + 1, 4, _T("0"));
|
|
|
|
pTdList->SetHotItem(iListIndex + 1);
|
|
pTdList->EnsureVisible(iListIndex + 1, TRUE);
|
|
pTdList->SetItemData(iListIndex + 1, (DWORD)pNewRspCETdRecord);
|
|
pTdList->SetItemState(iListIndex + 1, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
|
|
pTdList->SetFocus();
|
|
|
|
}
|
|
else
|
|
{
|
|
// TransDelay(g_iTransMode, 3, 20, this->m_hWnd); //数据错,重测
|
|
bIsRetrans = TRUE;
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szResBuff);
|
|
// DoEvent(this->m_hWnd);
|
|
|
|
continue;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
bIsRetrans = TRUE;
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szResBuff);
|
|
DoEvent(this->m_hWnd);
|
|
|
|
continue;
|
|
}
|
|
}
|
|
catch (...)
|
|
{
|
|
bIsRetrans = TRUE;
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szResBuff);
|
|
continue;
|
|
}
|
|
|
|
|
|
DoEvent(this->m_hWnd);
|
|
} while (TRUE == bIsRetrans);
|
|
|
|
|
|
if (pNewRspCETdRecord->m_fR0 > pTdChannel->m_fMaxR0)
|
|
{
|
|
pTdChannel->m_fMaxR0 = pNewRspCETdRecord->m_fR0;
|
|
}
|
|
|
|
if (pNewRspCETdRecord->m_fDepth > pTdChannel->m_fMaxDepth)
|
|
{
|
|
pTdChannel->m_fMaxDepth = pNewRspCETdRecord->m_fDepth;
|
|
}
|
|
|
|
this->m_pOpExecCERSPTestFrame->m_pOpExecCERSPTestTdScrollView->Invalidate();
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////
|
|
}
|
|
|
|
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL COpExecCERSPTestDlg::PreTranslateMessage(MSG* pMsg)
|
|
{
|
|
// TODO: Add your specialized code here and/or call the base class
|
|
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE)
|
|
{
|
|
return TRUE;
|
|
}
|
|
return CDialog::PreTranslateMessage(pMsg);
|
|
}
|
|
|
|
void COpExecCERSPTestDlg::OnSize(UINT nType, int cx, int cy)
|
|
{
|
|
CDialog::OnSize(nType, cx, cy);
|
|
|
|
UPDATE_EASYSIZE;
|
|
// TODO: Add your message handler code here
|
|
|
|
//onsize在对话框初始化前会被调用,但此时相关对象并没有被创建起来,故需在要此进行判断
|
|
if (m_pOpExecCERSPTestFrame)
|
|
{
|
|
CRect rect;
|
|
|
|
CWnd *pStatic = GetDlgItem(IDC_STATIC_FRAME);
|
|
pStatic->GetWindowRect(&rect);
|
|
|
|
this->ScreenToClient(&rect);
|
|
|
|
m_pOpExecCERSPTestFrame->MoveWindow(&rect);
|
|
m_pOpExecCERSPTestFrame->ShowWindow(SW_SHOW);
|
|
}
|
|
}
|