Files
geomative/GeomativeStudio/cpp/Views/OnLineSynDevDlg.cpp
T
coco df489d5640 a
2026-07-03 16:05:30 +08:00

638 lines
24 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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);
}