// 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); }