This commit is contained in:
coco
2026-07-03 16:05:30 +08:00
commit df489d5640
1101 changed files with 779140 additions and 0 deletions
@@ -0,0 +1,637 @@
// 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);
}