638 lines
24 KiB
C++
638 lines
24 KiB
C++
// OnLineSynDevDlg.cpp : 实现文件
|
||
//
|
||
|
||
#include "stdafx.h"
|
||
#include "GeoMative.h"
|
||
#include "OnLineSynDevDlg.h"
|
||
#include "afxdialogex.h"
|
||
|
||
extern int g_UIOffset;
|
||
extern int g_iUILanguage;
|
||
extern CString g_szMacAddress;
|
||
extern CGeoMativeApp theApp;
|
||
extern float tcp_ntohf(float f);
|
||
extern float tcp_htonf(float f);
|
||
BEGIN_EASYSIZE_MAP(OnLineSynDevDlg)
|
||
//list 框
|
||
//EASYSIZE(IDC_LIST_SYN_DEV_LOCAL, ES_BORDER, ES_BORDER, ES_BORDER, ES_BORDER, ES_HCENTER)
|
||
//EASYSIZE(IDC_LIST_SYN_DEV_SEV, ES_BORDER, ES_BORDER, ES_BORDER, ES_BORDER, ES_HCENTER)
|
||
EASYSIZE(IDC_LIST_SYN_CABLE_LOCAL, ES_BORDER, ES_BORDER, ES_KEEPSIZE, ES_BORDER, 0)
|
||
EASYSIZE(IDC_LIST_SYN_CABLE_SEV, ES_BORDER, ES_BORDER, ES_KEEPSIZE, ES_BORDER, 0)
|
||
////设备同步按键
|
||
//EASYSIZE(IDC_BUTTON1_DEV_DOWN, ES_BORDER, ES_BORDER, ES_BORDER, ES_BORDER, ES_HCENTER)
|
||
//EASYSIZE(IDC_BUTTON2_DEV_UPLAOD, ES_BORDER, ES_BORDER, ES_BORDER, ES_BORDER, ES_HCENTER)
|
||
//EASYSIZE(IDC_BUTTON3_DEV_COM, ES_BORDER, ES_BORDER, ES_BORDER, ES_BORDER, ES_HCENTER)
|
||
////电缆同步按键
|
||
//EASYSIZE(IDC_BUTTON4_CABLE_DOWN, ES_BORDER, ES_BORDER, ES_BORDER, ES_BORDER, ES_HCENTER)
|
||
//EASYSIZE(IDC_BUTTON5_CABLE_COM, ES_BORDER, ES_BORDER, ES_BORDER, ES_BORDER, ES_HCENTER)
|
||
|
||
END_EASYSIZE_MAP
|
||
|
||
// OnLineSynDevDlg 对话框
|
||
|
||
IMPLEMENT_DYNAMIC(OnLineSynDevDlg, CDialog)
|
||
|
||
OnLineSynDevDlg::OnLineSynDevDlg(CWnd* pParent /*=NULL*/)
|
||
: CDialog(OnLineSynDevDlg::IDD, pParent)
|
||
{
|
||
m_szDeSN = _T("");
|
||
memset(&m_stLocalDevParam, 0, sizeof(m_stLocalDevParam));
|
||
memset(&m_stSevDevParam, 0, sizeof(STSynDevParam));
|
||
memset(&m_stSevCableInfo, 0, sizeof(STRemCableCallInfo));
|
||
memset(&m_stLocalCableInfo, 0, sizeof(STRemCableCallInfo));
|
||
m_stLocalDevParam.fTemperature = 39.123;//打桩验证float网络字节序
|
||
}
|
||
|
||
OnLineSynDevDlg::~OnLineSynDevDlg()
|
||
{
|
||
|
||
}
|
||
|
||
void OnLineSynDevDlg::DoDataExchange(CDataExchange* pDX)
|
||
{
|
||
CDialog::DoDataExchange(pDX);
|
||
DDX_Control(pDX, IDC_LIST_SYN_DEV_SEV, m_SevDevList);
|
||
DDX_Control(pDX, IDC_LIST_SYN_DEV_LOCAL, m_LocalDevList);
|
||
DDX_Control(pDX, IDC_LIST_SYN_CABLE_SEV, m_SevCableList);
|
||
DDX_Control(pDX, IDC_LIST_SYN_CABLE_LOCAL, m_LocalCableList);
|
||
DDX_Control(pDX, IDC_STATIC_CABLE_SEV_NUM, m_SevCableNum);
|
||
DDX_Control(pDX, IDC_STATIC_SYN_CABLE_LA_NUM, m_LocalCableNum);
|
||
}
|
||
|
||
|
||
BEGIN_MESSAGE_MAP(OnLineSynDevDlg, CDialog)
|
||
ON_WM_SIZE()
|
||
ON_WM_SIZING()
|
||
ON_BN_CLICKED(IDC_BUTTON1_DEV_DOWN, &OnLineSynDevDlg::OnBnClickedButton1DevDown)
|
||
ON_BN_CLICKED(IDC_BUTTON2_DEV_UPLAOD, &OnLineSynDevDlg::OnBnClickedButton2DevUplaod)
|
||
ON_BN_CLICKED(IDC_BUTTON4_CABLE_DOWN, &OnLineSynDevDlg::OnBnClickedButton4CableDown)
|
||
END_MESSAGE_MAP()
|
||
|
||
|
||
// OnLineSynDevDlg 消息处理程序
|
||
|
||
|
||
void OnLineSynDevDlg::OnSize(UINT nType, int cx, int cy)
|
||
{
|
||
CDialog::OnSize(nType, cx, cy);
|
||
UPDATE_EASYSIZE;
|
||
// TODO: 在此处添加消息处理程序代码
|
||
}
|
||
|
||
|
||
void OnLineSynDevDlg::OnSizing(UINT fwSide, LPRECT pRect)
|
||
{
|
||
CDialog::OnSizing(fwSide, pRect);
|
||
|
||
// TODO: 在此处添加消息处理程序代码
|
||
}
|
||
|
||
|
||
BOOL OnLineSynDevDlg::OnInitDialog()
|
||
{
|
||
CDialog::OnInitDialog();
|
||
InitULByLanguage(g_iUILanguage);
|
||
CString strColTitle = _T("");
|
||
CString strItnName = _T("");
|
||
int iColIndex = (int)VAL_ZERO;
|
||
|
||
// TODO: 在此添加额外的初始化
|
||
|
||
///////////////////////////////////////服务端设备栏显示/////////////////////////////////////
|
||
iColIndex = (int)VAL_ZERO;
|
||
m_SevDevList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP | LVS_EX_ONECLICKACTIVATE | LVS_EX_GRIDLINES);
|
||
|
||
//m_SevDevList.SetBkColor(RGB(172, 199, 235));
|
||
//m_SevDevList.SetTextBkColor(RGB(172, 199, 235));//(126, 206, 183));
|
||
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("参数类型"); } else{ strColTitle += _T("Type"); }
|
||
m_SevDevList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) {strColTitle += _T("参数值");}else{strColTitle += _T("Value");}
|
||
m_SevDevList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 115);
|
||
|
||
/*iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("单位"); }else{ strColTitle += _T("Unit"); }
|
||
m_SevDevList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 115);
|
||
*/
|
||
|
||
//////填写设备参数类型说明
|
||
iColIndex = (int)VAL_ZERO;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("设备SN号 :"); }
|
||
else{ strColTitle += _T("Device SN :"); }
|
||
m_SevDevList.InsertItem(iColIndex, strColTitle); //第一行,第一列
|
||
//m_SevDevList.SetItemText(0, 2, _T(""));//第一行,第二列
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
strColTitle.LoadString(IDS_DB_DEVICE_HWV + g_UIOffset);
|
||
strColTitle += _T(" :");
|
||
m_SevDevList.InsertItem(iColIndex, strColTitle);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
strColTitle.LoadString(IDS_DB_DEVICE_SWV + g_UIOffset);
|
||
strColTitle += _T(" :");
|
||
m_SevDevList.InsertItem(iColIndex, strColTitle);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("温度"); }
|
||
else{ strColTitle += _T("Temperature"); }
|
||
strColTitle += _T(" :");
|
||
m_SevDevList.InsertItem(iColIndex, strColTitle);
|
||
//m_SevDevList.SetItemText(iColIndex, 2, _T("℃"));
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("电池电压"); }
|
||
else{ strColTitle += _T("Bat voltage"); }
|
||
strColTitle += _T(" :");
|
||
m_SevDevList.InsertItem(iColIndex, strColTitle);
|
||
//m_SevDevList.SetItemText(iColIndex, 2, _T("V"));
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("工频"); }
|
||
else{ strColTitle += _T("Ifrequency"); }
|
||
strColTitle += _T(":");
|
||
m_SevDevList.InsertItem(iColIndex, strColTitle);
|
||
//m_SevDevList.SetItemText(iColIndex, 2, _T("Hz"));
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("电缆类型"); }
|
||
else{ strColTitle += _T("Cable Type"); }
|
||
strColTitle += _T(" :");
|
||
m_SevDevList.InsertItem(iColIndex, strColTitle);
|
||
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("接地电阻阈值"); }
|
||
else{ strColTitle += _T("Max RG"); }
|
||
strColTitle += _T(" :");
|
||
m_SevDevList.InsertItem(iColIndex, strColTitle);
|
||
//m_SevDevList.SetItemText(iColIndex, 2, _T("Ω"));
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("低电告警"); }
|
||
else{ strColTitle += _T("LowPowerAlarm"); }
|
||
strColTitle += _T(" :");
|
||
m_SevDevList.InsertItem(iColIndex, strColTitle);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("自动迭代"); }
|
||
else{ strColTitle += _T("Auto Stack"); }
|
||
strColTitle += _T(" :");
|
||
m_SevDevList.InsertItem(iColIndex, strColTitle);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("通道数"); }
|
||
else{ strColTitle += _T("CH amount"); }
|
||
strColTitle += _T(" :");
|
||
m_SevDevList.InsertItem(iColIndex, strColTitle);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("单次下发点数"); }
|
||
else{ strColTitle += _T("Down point number"); }
|
||
strColTitle += _T(" :");
|
||
m_SevDevList.InsertItem(iColIndex, strColTitle);
|
||
|
||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
///////////////////////////////////////本机端设备栏显示/////////////////////////////////////
|
||
iColIndex = (int)VAL_ZERO;
|
||
m_LocalDevList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP | LVS_EX_ONECLICKACTIVATE | LVS_EX_GRIDLINES);
|
||
//m_LocalDevList.SetBkColor(RGB(172, 199, 235));
|
||
//m_LocalDevList.SetTextBkColor(RGB(172, 199, 235));//(126, 206, 183));
|
||
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("参数类型"); }
|
||
else{ strColTitle += _T("Type"); }
|
||
m_LocalDevList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 150);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("参数值"); }
|
||
else{ strColTitle += _T("Value"); }
|
||
m_LocalDevList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 115);
|
||
|
||
/*iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("单位"); }
|
||
else{ strColTitle += _T("Unit"); }
|
||
m_LocalDevList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 115);*/
|
||
|
||
//////填写设备参数类型说明
|
||
iColIndex = (int)VAL_ZERO;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("设备SN号 :"); }
|
||
else{ strColTitle += _T("Device SN :"); }
|
||
m_LocalDevList.InsertItem(iColIndex, strColTitle); //第一行,第一列
|
||
//m_LocalDevList.SetItemText(0, 2, _T(""));//第一行,第二列
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
strColTitle.LoadString(IDS_DB_DEVICE_HWV + g_UIOffset);
|
||
strColTitle += _T(" :");
|
||
m_LocalDevList.InsertItem(iColIndex, strColTitle);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
strColTitle.LoadString(IDS_DB_DEVICE_SWV + g_UIOffset);
|
||
strColTitle += _T(" :");
|
||
m_LocalDevList.InsertItem(iColIndex, strColTitle);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) {strColTitle += _T("温度");}else{strColTitle += _T("Temperature");}
|
||
strColTitle += _T(" :");
|
||
m_LocalDevList.InsertItem(iColIndex, strColTitle);
|
||
//m_LocalDevList.SetItemText(iColIndex, 2, _T("℃"));
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("电池电压"); }else{ strColTitle += _T("Bat voltage"); }
|
||
strColTitle += _T(" :");
|
||
m_LocalDevList.InsertItem(iColIndex, strColTitle);
|
||
//m_LocalDevList.SetItemText(iColIndex, 2, _T("V"));
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("工频"); }else{ strColTitle += _T("Ifrequency"); }
|
||
strColTitle += _T(":");
|
||
m_LocalDevList.InsertItem(iColIndex, strColTitle);
|
||
//m_LocalDevList.SetItemText(iColIndex, 2, _T("Hz"));
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("电缆类型"); }else{ strColTitle += _T("Cable Type"); }
|
||
strColTitle += _T(" :");
|
||
m_LocalDevList.InsertItem(iColIndex, strColTitle);
|
||
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("接地电阻阈值"); }else{ strColTitle += _T("Max RG"); }
|
||
strColTitle += _T(" :");
|
||
m_LocalDevList.InsertItem(iColIndex, strColTitle);
|
||
//m_LocalDevList.SetItemText(iColIndex, 2, _T("Ω"));
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("低电告警"); }else{ strColTitle += _T("LowPowerAlarm"); }
|
||
strColTitle += _T(" :");
|
||
m_LocalDevList.InsertItem(iColIndex, strColTitle);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("自动迭代"); }
|
||
else{ strColTitle += _T("Auto Stack"); }
|
||
strColTitle += _T(" :");
|
||
m_LocalDevList.InsertItem(iColIndex, strColTitle);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("通道数"); }
|
||
else{ strColTitle += _T("CH amount"); }
|
||
strColTitle += _T(" :");
|
||
m_LocalDevList.InsertItem(iColIndex, strColTitle);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("单次下发点数"); }
|
||
else{ strColTitle += _T("Down point number"); }
|
||
strColTitle += _T(" :");
|
||
m_LocalDevList.InsertItem(iColIndex, strColTitle);
|
||
|
||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
///////////////////////////////////////////服务端电缆头信息栏/////////////////////////////////////////////////
|
||
m_SevCableNum.SetWindowTextA(_T("0"));
|
||
|
||
iColIndex = (int)VAL_ZERO;
|
||
m_SevCableList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP | LVS_EX_ONECLICKACTIVATE | LVS_EX_GRIDLINES);
|
||
//m_SevCableList.SetBkColor(RGB(172, 199, 235));
|
||
//m_SevCableList.SetTextBkColor(RGB(172, 199, 235));//(126, 206, 183));
|
||
|
||
strColTitle.Empty();
|
||
strColTitle = _T("ID");
|
||
m_SevCableList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 100);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("方向"); }
|
||
else{ strColTitle += _T("Direction"); }
|
||
m_SevCableList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 115);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("电压(V)"); }
|
||
else{ strColTitle += _T("Voltage(V)"); }
|
||
m_SevCableList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 115);
|
||
|
||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
///////////////////////////////////////////本地端电缆头信息栏/////////////////////////////////////////////////
|
||
m_LocalCableNum.SetWindowTextA(_T("0"));
|
||
|
||
iColIndex = (int)VAL_ZERO;
|
||
m_LocalCableList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP | LVS_EX_ONECLICKACTIVATE | LVS_EX_GRIDLINES);
|
||
//m_LocalCableList.SetBkColor(RGB(172, 199, 235));
|
||
//m_LocalCableList.SetTextBkColor(RGB(172, 199, 235));//(126, 206, 183));
|
||
|
||
strColTitle.Empty();
|
||
strColTitle = _T("ID");
|
||
m_LocalCableList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 100);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("方向"); }
|
||
else{ strColTitle += _T("Direction"); }
|
||
m_LocalCableList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 115);
|
||
|
||
iColIndex++;
|
||
strColTitle.Empty();
|
||
if (LANG_ZHCN == g_iUILanguage) { strColTitle += _T("电压(V)"); }
|
||
else{ strColTitle += _T("Voltage(V)"); }
|
||
m_LocalCableList.InsertColumn(iColIndex, strColTitle, LVCFMT_LEFT, 115);
|
||
|
||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
INIT_EASYSIZE;
|
||
return TRUE; // return TRUE unless you set the focus to a control
|
||
// 异常: OCX 属性页应返回 FALSE
|
||
}
|
||
|
||
void OnLineSynDevDlg::OnInitLocalList()
|
||
{
|
||
theApp.m_pTdManager->InitialDevListByOnLineForSyn(this->m_LocalDevList, this->m_szDeSN, &m_stLocalDevParam);
|
||
theApp.m_pTdManager->InitialCableListByOnLineForSyn(this->m_LocalCableList, this->m_szDeSN,&m_stLocalCableInfo);
|
||
CString strTolNum;
|
||
strTolNum.Format("%u", m_stLocalCableInfo.ucTotalCount);
|
||
m_LocalCableNum.SetWindowTextA(_T(strTolNum));
|
||
}
|
||
void OnLineSynDevDlg::OnSynAndInitSevDevList()
|
||
{
|
||
char chMsgSyn[200] = {0};
|
||
int iLen = 0;
|
||
|
||
theApp.m_NetWorkOper.SetSuspendForThread(true);
|
||
///////////////////////////////////从云端获取历史设备信息/////////////////////////////////////////////////////
|
||
CString szDevSN = m_szDeSN;
|
||
UINT32 uiDevID = htonl(atoi(szDevSN.Mid(2)));
|
||
if (!theApp.m_NetWorkOper.SendCtrlMsgDirect(EN_REQ_DOWNLOAD_DEV_INFO, 0xFFFFFFFF, 1, (char*)(&uiDevID), sizeof(UINT32)))
|
||
{
|
||
theApp.m_NetWorkOper.SetSuspendForThread(false);
|
||
if (LANG_ZHCN == g_iUILanguage)
|
||
AfxMessageBox(_T("用户登录信息发送错误"));
|
||
else
|
||
MessageBoxEx(NULL, _T("User login information send failed"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
||
return;
|
||
}
|
||
|
||
int iIndex = 0;
|
||
if (EN_RECV_SUCCESS == theApp.m_NetWorkOper.RecvMsgDirect(chMsgSyn, &iLen, 200, 5000))
|
||
{
|
||
if (iLen >= sizeof(STSynDevParam))
|
||
{
|
||
STSynDevParam *DevPar = (STSynDevParam*)chMsgSyn;
|
||
CString Hwv; Hwv.Format("V%c.%c",DevPar->ucHWVer[0],DevPar->ucHWVer[1]);
|
||
CString Swv; Swv.Format("V%c.%c.%c_T%u",DevPar->ucSWVer[0],DevPar->ucSWVer[1],DevPar->ucSWVer[2],DevPar->ucSWVer[3]);
|
||
|
||
DevPar->iGrThreshold = ntohl(DevPar->iGrThreshold);
|
||
DevPar->fBatteryVol = (float)tcp_ntohf(DevPar->fBatteryVol);
|
||
CString strSN;
|
||
strSN.Format("SN%u", ntohl(DevPar->uiMachineID));
|
||
m_SevDevList.SetItemText(iIndex, 1, (LPCTSTR)(_bstr_t)strSN); iIndex++;
|
||
m_SevDevList.SetItemText(iIndex, 1, (LPCTSTR)(_bstr_t)Hwv); iIndex++;
|
||
m_SevDevList.SetItemText(iIndex, 1, (LPCTSTR)(_bstr_t)Swv); iIndex++;
|
||
iIndex++;//温度暂不显示
|
||
m_SevDevList.SetItemText(iIndex, 1, (LPCTSTR)(_bstr_t)DevPar->fBatteryVol); iIndex++;
|
||
m_SevDevList.SetItemText(iIndex, 1, (LPCTSTR)(_bstr_t)DevPar->ucPowerFreq); iIndex++;
|
||
m_SevDevList.SetItemText(iIndex, 1, (LPCTSTR)(_bstr_t)DevPar->ucCableType); iIndex++;
|
||
CString striGr; striGr.Format(_T("%u"),DevPar->iGrThreshold);
|
||
m_SevDevList.SetItemText(iIndex, 1, (LPCTSTR)(_bstr_t)striGr); iIndex++;
|
||
m_SevDevList.SetItemText(iIndex, 1, (LPCTSTR)(_bstr_t)DevPar->ucBatteryAlarm); iIndex++;
|
||
m_SevDevList.SetItemText(iIndex, 1, (LPCTSTR)(_bstr_t)DevPar->ucStacking); iIndex++;
|
||
m_SevDevList.SetItemText(iIndex, 1, (LPCTSTR)(_bstr_t)DevPar->ucChannelNum); iIndex++;
|
||
m_SevDevList.SetItemText(iIndex, 1, (LPCTSTR)(_bstr_t)DevPar->ucDownLoadNum); iIndex++;
|
||
memcpy(&m_stSevDevParam, DevPar, sizeof(STSynDevParam));
|
||
}
|
||
}
|
||
theApp.m_NetWorkOper.SetSuspendForThread(false);
|
||
return;
|
||
}
|
||
void OnLineSynDevDlg::OnSynAndInitSevCableList()
|
||
{
|
||
char chMsgSyn[800] = { 0 };
|
||
CString szLabel = _T("");
|
||
int iLen = 0;
|
||
theApp.m_NetWorkOper.SetSuspendForThread(true);
|
||
|
||
m_SevCableList.DeleteAllItems();
|
||
|
||
/////////////////////////////////获取历史电缆头信息///////////////////////////////////////
|
||
CString szDevSN = m_szDeSN;
|
||
UINT32 uiDevID = htonl(atoi(szDevSN.Mid(2)));
|
||
if (!theApp.m_NetWorkOper.SendCtrlMsgDirect(EN_REQ_DOWNLOAD_CABLE_INFO, 0xFFFFFFFF, 1, (char*)(&uiDevID), sizeof(UINT32)))
|
||
{
|
||
theApp.m_NetWorkOper.SetSuspendForThread(false);
|
||
if (LANG_ZHCN == g_iUILanguage)
|
||
AfxMessageBox(_T("用户登录信息发送错误"));
|
||
else
|
||
MessageBoxEx(NULL, _T("User login information send failed"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
||
|
||
return;
|
||
}
|
||
|
||
if (EN_RECV_SUCCESS == theApp.m_NetWorkOper.RecvMsgDirect(chMsgSyn, &iLen, 800, 5000))
|
||
{
|
||
BYTE ucCableNum = (BYTE)(chMsgSyn[0]);
|
||
if ((ucCableNum < 1) || (iLen < (1 + 3 * ucCableNum)))
|
||
{
|
||
theApp.m_NetWorkOper.SetSuspendForThread(false);
|
||
return;
|
||
}
|
||
try
|
||
{
|
||
STRemCableCallInfo *stCable = (STRemCableCallInfo *)chMsgSyn;
|
||
for (int iIndex = 0; iIndex < ucCableNum; iIndex++)
|
||
{
|
||
m_SevCableList.InsertItem(iIndex, szLabel);
|
||
if (0 == iIndex)
|
||
{
|
||
//m_SevCableList.SetItemText(iIndex, 0, (LPCTSTR)(_bstr_t)m_szDeSN);
|
||
//m_SevCableList.SetItemText(iIndex, 1, (LPCTSTR)(_bstr_t)stCableInfo->ucTotalCount);
|
||
CString strTolNum;
|
||
strTolNum.Format("%u", ucCableNum);
|
||
m_SevCableNum.SetWindowTextA(_T(strTolNum));
|
||
m_stSevCableInfo.ucTotalCount = ucCableNum;
|
||
}
|
||
CString str;
|
||
str.Empty(); str.Format("%u", stCable->stCableInfo[iIndex].ucID);
|
||
m_SevCableList.SetItemText(iIndex, 0, (LPCTSTR)(_bstr_t)str);
|
||
str.Empty(); str.Format("%c", stCable->stCableInfo[iIndex].ucDir);
|
||
m_SevCableList.SetItemText(iIndex, 1, (LPCTSTR)(_bstr_t)str);
|
||
str.Empty(); str.Format("%u", stCable->stCableInfo[iIndex].ucPowe);
|
||
m_SevCableList.SetItemText(iIndex, 2, (LPCTSTR)(_bstr_t)str);
|
||
|
||
m_stSevCableInfo.stCableInfo[iIndex].ucID = stCable->stCableInfo[iIndex].ucID;
|
||
m_stSevCableInfo.stCableInfo[iIndex].ucDir = stCable->stCableInfo[iIndex].ucDir;
|
||
m_stSevCableInfo.stCableInfo[iIndex].ucPowe = stCable->stCableInfo[iIndex].ucPowe;
|
||
}
|
||
//memcpy(&m_stSevCableInfo, chMsgSyn, sizeof(STRemCableCallInfo));
|
||
}
|
||
catch (_com_error e)
|
||
{
|
||
// 显示错误信息
|
||
AfxMessageBox(e.Description());
|
||
}
|
||
}
|
||
theApp.m_NetWorkOper.SetSuspendForThread(false);
|
||
return;
|
||
}
|
||
void OnLineSynDevDlg::InitULByLanguage(int iLanguage)
|
||
{
|
||
if (LANG_ZHCN == iLanguage)
|
||
{
|
||
/*GetDlgItem(IDC_STATIC_DEVICE_PRO)->SetWindowText(_T("主机设备中的工程"));
|
||
GetDlgItem(IDC_STATIC_DEVICE_TASK)->SetWindowText(_T("主机设备中的任务"));
|
||
GetDlgItem(IDC_STATIC_UPLOADED)->SetWindowText(_T("需要上传到Geomative Studio的任务列表"));
|
||
GetDlgItem(IDC_TD_SEL)->SetWindowText(_T("增加"));
|
||
GetDlgItem(IDC_TD_DEL)->SetWindowText(_T("删除"));
|
||
GetDlgItem(IDC_TD_UPLOAD)->SetWindowText(_T("上传"));
|
||
GetDlgItem(IDC_TD_REMOVE)->SetWindowText(_T("移除"));
|
||
GetDlgItem(IDC_CREATE)->SetWindowText(_T(" 新工程"));
|
||
GetDlgItem(IDC_DMS_DEL)->SetWindowText(_T(" 删除工程"));*/
|
||
|
||
/*if (LANG_ENUS == g_iUILanguage)
|
||
{
|
||
GetDlgItem(IDC_STATIC_DEV_SN)->SetWindowText("Device SN:");
|
||
GetDlgItem(IDC_STATIC_DEV_HW_VER)->SetWindowText("HW Version:");
|
||
GetDlgItem(IDC_STATIC_DEV_SW_VER)->SetWindowText("SW Version:");
|
||
GetDlgItem(IDC_STATIC_DEV_TEMPERATURE)->SetWindowText("Temperature:");
|
||
|
||
GetDlgItem(IDC_STATIC_DEV_BATTERY_VOL)->SetWindowText("Battery Voltage:");
|
||
GetDlgItem(IDC_STATIC_DEV_POWER_FREQ)->SetWindowText("Power Frequency:");
|
||
GetDlgItem(IDC_STATIC_DEV_CABLE_TYPE)->SetWindowText("Cable:");
|
||
|
||
GetDlgItem(IDC_STATIC_DEV_GR_THRESHOLD)->SetWindowText("GR Threshold:");
|
||
GetDlgItem(IDC_STATIC_DEV_BATTERY_ALARM)->SetWindowText("Battery Alarm:");
|
||
GetDlgItem(IDC_STATIC_DEV_STACKING)->SetWindowText("Stacking:");
|
||
GetDlgItem(IDC_STATIC_DEV_MAX_CHANNEL)->SetWindowText("Max Channel:");
|
||
*/
|
||
}
|
||
}
|
||
|
||
void OnLineSynDevDlg::OnBnClickedButton1DevDown()
|
||
{
|
||
// TODO: 在此添加控件通知处理程序代码
|
||
theApp.m_pDevManager->UpdateDevInfo(m_stSevDevParam, EN_DEV_CLOUND);
|
||
//刷新界面
|
||
theApp.m_pTdManager->InitialDevListByOnLineForSyn(this->m_LocalDevList, this->m_szDeSN, &m_stLocalDevParam);
|
||
}
|
||
|
||
|
||
void OnLineSynDevDlg::OnBnClickedButton2DevUplaod()
|
||
{
|
||
// TODO: 在此添加控件通知处理程序代码
|
||
char chMsgSyn[10] = { 0 };
|
||
CString szLabel = _T("");
|
||
int iLen = 0;
|
||
theApp.m_NetWorkOper.SetSuspendForThread(true);
|
||
|
||
CString szDevSN = m_szDeSN;
|
||
STSynDevParam DevPar = m_stLocalDevParam;
|
||
DevPar.uiMachineID = htonl(atoi(szDevSN.Mid(2)));
|
||
DevPar.iGrThreshold = htonl(DevPar.iGrThreshold);
|
||
DevPar.fBatteryVol = tcp_htonf(DevPar.fBatteryVol);
|
||
if (!theApp.m_NetWorkOper.SendCtrlMsgDirect(EN_UPLOAD_DEV_INF, 0xFFFFFFFF, 1, (char*)(&DevPar), sizeof(DevPar)))
|
||
{
|
||
theApp.m_NetWorkOper.SetSuspendForThread(false);
|
||
if (LANG_ZHCN == g_iUILanguage)
|
||
AfxMessageBox(_T("上传设备信息发送失败"));
|
||
else
|
||
MessageBoxEx(NULL, _T("Upload device information send failed"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
||
return;
|
||
}
|
||
|
||
if (EN_RECV_SUCCESS == theApp.m_NetWorkOper.RecvMsgDirect(chMsgSyn, &iLen, 10, 5000))
|
||
{
|
||
BYTE ucReplayFlg = (BYTE)(chMsgSyn[0]);
|
||
if ((ucReplayFlg != 0) || (iLen < 1))
|
||
{
|
||
theApp.m_NetWorkOper.SetSuspendForThread(false);
|
||
if (LANG_ZHCN == g_iUILanguage)
|
||
AfxMessageBox(_T("上传设备信息接收失败"));
|
||
else
|
||
MessageBoxEx(NULL, _T("Upload device information recv failed"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
||
return;
|
||
}
|
||
}
|
||
theApp.m_NetWorkOper.SetSuspendForThread(false);
|
||
return;
|
||
}
|
||
|
||
|
||
void OnLineSynDevDlg::OnBnClickedButton4CableDown()
|
||
{
|
||
// TODO: 在此添加控件通知处理程序代码
|
||
_CommandPtr pCmdIns = NULL;
|
||
_CommandPtr pCmdUpd = NULL;
|
||
CString szSql = _T("");
|
||
|
||
if (m_stSevCableInfo.ucTotalCount < 1)
|
||
{
|
||
if (LANG_ZHCN == g_iUILanguage)
|
||
AfxMessageBox(_T("下载电缆信息失败,云服务器没有信息"));
|
||
else
|
||
MessageBoxEx(NULL, _T("Download cable information failed, cloud server has not information."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
||
return;
|
||
}
|
||
|
||
_ConnectionPtr pConnection = theApp.m_pConnection;
|
||
pCmdUpd.CreateInstance(_uuidof(Command));
|
||
pCmdIns.CreateInstance(_uuidof(Command));
|
||
pCmdIns->ActiveConnection = pConnection;
|
||
|
||
pConnection->BeginTrans();
|
||
//存入数据库
|
||
try
|
||
{
|
||
szSql.Empty();
|
||
szSql.Format(_T("delete from CableInfo where SN = '%s'"), m_szDeSN);
|
||
pCmdIns->CommandText = szSql.AllocSysString();
|
||
pCmdIns->Execute(NULL, NULL, adCmdText);
|
||
|
||
STRemCableCallInfo *stCableInfo = (STRemCableCallInfo *)&m_stSevCableInfo;
|
||
for (int j = 0; j < stCableInfo->ucTotalCount; j++)
|
||
{
|
||
szSql.Empty();
|
||
szSql.Format(_T("insert into CableInfo(SN,TolNum,N_ID,N_Dir,N_Pow) values('%s','%d','%d','%d','%d')"), m_szDeSN, \
|
||
stCableInfo->ucTotalCount, stCableInfo->stCableInfo[j].ucID, stCableInfo->stCableInfo[j].ucDir, \
|
||
stCableInfo->stCableInfo[j].ucPowe);
|
||
pCmdIns->CommandText = szSql.AllocSysString();
|
||
pCmdIns->Execute(NULL, NULL, adCmdText);
|
||
}
|
||
}
|
||
catch (_com_error e)
|
||
{
|
||
// 显示错误信息
|
||
AfxMessageBox(e.Description());
|
||
}
|
||
pConnection->CommitTrans();
|
||
//刷新list
|
||
theApp.m_pTdManager->InitialCableListByOnLineForSyn(this->m_LocalCableList, this->m_szDeSN, &m_stLocalCableInfo);
|
||
}
|