a
This commit is contained in:
@@ -0,0 +1,244 @@
|
||||
// DialListMeasuGR.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "geomative.h"
|
||||
#include "DialListRealTimeMeasuGR.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CDialListRealTimeMeasuGR dialog
|
||||
|
||||
extern CGeoMativeApp theApp;
|
||||
extern int g_iUILanguage;
|
||||
extern CString GetGrCodeText(int iCode);
|
||||
CDialListRealTimeMeasuGR::CDialListRealTimeMeasuGR(CWnd* pParent /*=NULL*/)
|
||||
: CNetRequestDialog(CDialListRealTimeMeasuGR::IDD, pParent)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CDialListRealTimeMeasuGR)
|
||||
// NOTE: the ClassWizard will add member initialization here
|
||||
//}}AFX_DATA_INIT
|
||||
m_iSptType = -1;
|
||||
}
|
||||
|
||||
|
||||
void CDialListRealTimeMeasuGR::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CNetRequestDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CDialListRealTimeMeasuGR)
|
||||
DDX_Control(pDX, IDC_LIST_GR, m_listData);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CDialListRealTimeMeasuGR, CNetRequestDialog)
|
||||
//{{AFX_MSG_MAP(CDialListRealTimeMeasuGR)
|
||||
ON_WM_SHOWWINDOW()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CDialListRealTimeMeasuGR message handlers
|
||||
|
||||
BOOL CDialListRealTimeMeasuGR::OnInitDialog()
|
||||
{
|
||||
CNetRequestDialog::OnInitDialog();
|
||||
|
||||
// TODO: Add extra initialization here
|
||||
CString strColTitle;
|
||||
|
||||
int iColIndex = 0;
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
int iWidth = rect.right - rect.left;
|
||||
int iColCount = 5;
|
||||
m_listData.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP
|
||||
| LVS_EX_ONECLICKACTIVATE | LVS_EX_GRIDLINES);
|
||||
|
||||
m_listData.InsertColumn(iColIndex++, _T("ID"), LVCFMT_LEFT, iWidth/iColCount);
|
||||
|
||||
// strColTitle.Empty();
|
||||
// strColTitle.LoadString(IDS_MEASU_GR_P1+g_UIOffset);
|
||||
|
||||
m_listData.InsertColumn(iColIndex++, _T("P1(Ω)"), LVCFMT_CENTER, iWidth / iColCount+20);
|
||||
|
||||
// strColTitle.Empty();
|
||||
// strColTitle.LoadString(IDS_MEASU_GR_STATUS+g_UIOffset);
|
||||
m_listData.InsertColumn(iColIndex++, _T("Status"), LVCFMT_CENTER, iWidth / iColCount+40);
|
||||
|
||||
// strColTitle.Empty();
|
||||
// strColTitle.LoadString(IDS_MEASU_GR_P2+g_UIOffset);
|
||||
m_listData.InsertColumn(iColIndex++, _T("P2(Ω)"), LVCFMT_CENTER, iWidth / iColCount+20);
|
||||
|
||||
// strColTitle.Empty();
|
||||
// strColTitle.LoadString(IDS_MEASU_GR_STATUS+g_UIOffset);
|
||||
m_listData.InsertColumn(iColIndex++, _T("Status"), LVCFMT_CENTER, iWidth / iColCount+40);
|
||||
InitiShowGR();
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
void CDialListRealTimeMeasuGR::InitiShowGR()
|
||||
{
|
||||
if (0 == m_iSptType)
|
||||
{
|
||||
m_listData.InsertItem(0, _T("AB"));
|
||||
if (0 == theApp.m_ucIsMultiChannel )
|
||||
m_listData.InsertItem(1, _T("MN"));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void CDialListRealTimeMeasuGR::OnShowWindow(BOOL bShow, UINT nStatus)
|
||||
{
|
||||
CNetRequestDialog::OnShowWindow(bShow, nStatus);
|
||||
|
||||
// TODO: Add your message handler code here
|
||||
|
||||
if (TRUE == bShow)
|
||||
{
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
|
||||
//rect.left += 5;
|
||||
//rect.top += 5;
|
||||
//rect.right -= 5;
|
||||
//rect.bottom -= 5;
|
||||
m_listData.MoveWindow(&rect);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void CDialListRealTimeMeasuGR::GetGRRequest(STRemTaskArg stTaskArg)
|
||||
{
|
||||
//清空列表
|
||||
m_listData.DeleteAllItems();
|
||||
|
||||
m_stTaskArg = stTaskArg;
|
||||
|
||||
char chStr[210] = { 0 };
|
||||
memcpy(chStr, &stTaskArg.ucTaskID, MAX_NAME_LEN* sizeof(BYTE));
|
||||
UINT32 uiStartElec = htonl(stTaskArg.uiStartElec); //转网络字节序给云端
|
||||
UINT32 uiEndElec = htonl(stTaskArg.uiEndElec);
|
||||
memcpy(&chStr[MAX_NAME_LEN* sizeof(BYTE)], &uiStartElec, sizeof(UINT32));
|
||||
memcpy(&chStr[MAX_NAME_LEN* sizeof(BYTE) + sizeof(UINT32)], &uiEndElec, sizeof(UINT32));
|
||||
int iSendLen = MAX_NAME_LEN * sizeof(BYTE) + 2 * sizeof(UINT32);
|
||||
|
||||
PostNetRequest(EN_REQ_DOWNLOAD_RG_INFO, this->m_hWnd, chStr, iSendLen, MAX_RECV_ELOC_SIZE);
|
||||
}
|
||||
|
||||
void CDialListRealTimeMeasuGR::PreNetResponse(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
LPRESPONSEPACKET pResponsePacket = (LPRESPONSEPACKET)lParam;
|
||||
if (pResponsePacket == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
switch (pResponsePacket->clsPacketBase.ucCmd)
|
||||
{
|
||||
case EN_REQ_DOWNLOAD_RG_INFO:
|
||||
{
|
||||
if ((pResponsePacket->wDataLen < 0))
|
||||
{
|
||||
if (LANG_ZHCN == g_iUILanguage)
|
||||
{
|
||||
AfxMessageBox(_T("查看接地电阻数据失败"));
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBoxEx(NULL, _T("Failed to check ground resistance data"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
INT32* pTotalElec = (INT32*)(&pResponsePacket->pData[MAX_NAME_LEN]);
|
||||
INT32 iTotalElec = ntohl(*pTotalElec);
|
||||
char chMsgSyn[MAX_RECV_ELOC_SIZE] = { 0 };
|
||||
memcpy(chMsgSyn, pResponsePacket->pData, pResponsePacket->wDataLen);
|
||||
INT32 iElecID = 0;
|
||||
CString strEcode;
|
||||
CString strOMVal;
|
||||
CString strStatus;
|
||||
CString strOMVal1;
|
||||
CString strStatus1;
|
||||
STMeasuSigGRResult* pGrInfo = NULL;
|
||||
int iOMVal = -1, iOMVal1 = -1;
|
||||
COLORREF color = RGB(0, 0, 0);
|
||||
for (int iIndex = 0; iIndex < iTotalElec; iIndex++)
|
||||
{
|
||||
strOMVal.Empty();
|
||||
strStatus.Empty();
|
||||
strOMVal1.Empty();
|
||||
strStatus1.Empty();
|
||||
pGrInfo = (STMeasuSigGRResult*)(&pResponsePacket->pData[MAX_NAME_LEN + sizeof(INT32) + iIndex*sizeof(STMeasuSigGRResult)]);
|
||||
//pGrInfo = (STMeasuSigGRResult*)(pResponsePacket->pData[1] + iIndex);
|
||||
if (0 == m_stTaskArg.stMeasuArg.ucSptType)
|
||||
iElecID = (INT32)pGrInfo->ucElecID;
|
||||
else
|
||||
iElecID = (INT32)pGrInfo->ucElecID;
|
||||
strEcode.Format(_T("%d"), ntohl(iElecID));
|
||||
iOMVal = (int)(ntohl(pGrInfo->iP1));
|
||||
iOMVal1 = (int)(ntohl(pGrInfo->iP2));
|
||||
if (-1 != iOMVal)
|
||||
{
|
||||
strOMVal.Format(_T("%d"), iOMVal);
|
||||
strStatus = GetGrCodeText(pGrInfo->ucP1Status);
|
||||
}
|
||||
if (-1 != iOMVal1)
|
||||
{
|
||||
strOMVal1.Format(_T("%d"), iOMVal1);
|
||||
strStatus1 = GetGrCodeText(pGrInfo->ucP2Status);
|
||||
}
|
||||
|
||||
m_listData.InsertItem(iIndex, strEcode);
|
||||
m_listData.SetItemText(iIndex, 0, strEcode);
|
||||
m_listData.SetItemText(iIndex, 1, strOMVal);
|
||||
if (!strOMVal.IsEmpty())
|
||||
{
|
||||
switch (pGrInfo->ucP1Status)
|
||||
{
|
||||
case 1://短路
|
||||
case 2://开路
|
||||
m_listData.SetItemTextColor(2, iIndex, RGB(255, 0, 0));
|
||||
break;
|
||||
case 3://过大
|
||||
m_listData.SetItemTextColor(2, iIndex, RGB(0, 0, 255));
|
||||
break;
|
||||
default:
|
||||
m_listData.UpdateItemTextColor(2, iIndex, color);
|
||||
break;
|
||||
}
|
||||
}
|
||||
m_listData.SetItemText(iIndex, 2, strStatus);
|
||||
m_listData.SetItemText(iIndex, 3, strOMVal1);
|
||||
if (!strOMVal1.IsEmpty())
|
||||
{
|
||||
switch (pGrInfo->ucP2Status)
|
||||
{
|
||||
case 1://短路
|
||||
case 2://开路
|
||||
m_listData.SetItemTextColor(4, iIndex, RGB(255, 0, 0));
|
||||
break;
|
||||
case 3://过大
|
||||
m_listData.SetItemTextColor(4, iIndex, RGB(0, 0, 255));
|
||||
break;
|
||||
default:
|
||||
m_listData.UpdateItemTextColor(4, iIndex, color);
|
||||
break;
|
||||
}
|
||||
}
|
||||
m_listData.SetItemText(iIndex, 4, strStatus1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user