//字符串最多支持100个识别服务器 int ns__GetServerStatus(struct soap *soap, char *MsgXml, char **ResponseXml) { *ResponseXml = (char*)soap_malloc( soap,20480 ); char strText[20480]=""; list<DEVICE_LIST> DeviceList; DeviceList.clear(); list<DEVICE_LIST>::iterator beglist; int i; struct NAME_VALUE_S Rmapdata[3]; Rmapdata[0].ins("Code","0"); Rmapdata[1].ins("Message","成功-无识别服务器"); Rmapdata[2].ins("Total","0"); if(false == OracleIO.DEVICE_ReadList(DeviceList)) { ErrorStringXML("-98","内部异常数据库出错",strText,20480); goto ALL_EXIT; } if(DeviceList.size()<1) { if(false==CreateXmlLite_UTF8_NoSub("Return",Rmapdata,3,strText,20480) ) { strcpy(strText,"<Return><Code>-99</Code><Message>内部异常创建报文失败</Message></Return>"); } goto ALL_EXIT; } Rmapdata[0].ins("Code","0"); Rmapdata[1].ins("Message","成功-有识别服务器"); sprintf(strText,"%d",DeviceList.size()); Rmapdata[2].ins("Total",strText); //二维类 struct NAME_VALUE_S** Rsubdata; Rsubdata=(struct NAME_VALUE_S **)malloc(DeviceList.size()*sizeof(struct NAME_VALUE_S *)); for(i=DeviceList.size()-1,beglist=DeviceList.begin();i>=0 && beglist!=DeviceList.end();i--,beglist++) { Rsubdata[i]= new struct NAME_VALUE_S[6]; sprintf(strText,"%d",beglist->detect.id); Rsubdata[i][0].ins("DetectID",strText); Rsubdata[i][1].ins("ServerIP",beglist->detect.ip); sprintf(strText,"%d",beglist->detect.channel); Rsubdata[i][2].ins("Channel",strText); sprintf(strText,"%d",beglist->detect.isoccupy); Rsubdata[i][3].ins("IsOccupy",strText ); sprintf(strText,"%d",beglist->detect.isenable); Rsubdata[i][4].ins("IsNormal",strText); sprintf(strText,"%d",beglist->camera.camid); Rsubdata[i][5].ins("CameraID",strText); } if(false==CreateXmlLite_UTF8_Sub("Return",Rmapdata,3, "DetectServerNo",DeviceList.size(),Rsubdata,6, strText,20480) ) { strcpy(strText,"<Return><Code>-99</Code><Message>内部异常创建报文失败</Message></Return>"); } //释放 for(i=0;i<DeviceList.size();i++) delete[] Rsubdata[i]; free(Rsubdata); ALL_EXIT: CHAR2UTF8(strText,*ResponseXml,20480); return SOAP_OK; }
void CDLGdetectServer::OnBnClickedButtonFlush() { // TODO: Add your control notification handler code here #if OPEN_CS_MODE list<DEVICE_LIST> DeviceList; m_list.DeleteAllItems(); OracleIO.DEVICE_ReadList(DeviceList); int nItem; char str[128]; if(DeviceList.size()<=0) return ; list<DEVICE_LIST>::iterator beglist; for(beglist=DeviceList.begin();beglist!=DeviceList.end();beglist++) { sprintf(str,"%d",beglist->detect.id); nItem = m_list.InsertItem(0,str); m_list.SetItemText(nItem,1,beglist->detect.ip); sprintf(str,"%d",beglist->detect.channel); m_list.SetItemText(nItem,2,str); if(beglist->detect.isenable) m_list.SetItemText(nItem,3,"正常"); else m_list.SetItemText(nItem,3,"故障--"); if(beglist->detect.isoccupy) m_list.SetItemText(nItem,4,"占用"); else m_list.SetItemText(nItem,4,"未占用"); sprintf(str,"%d",beglist->camera.camid); m_list.SetItemText(nItem,5,str); m_list.SetItemText(nItem,6,beglist->camera.name); m_list.SetItemText(nItem,7,beglist->camera.ip); m_list.SetItemText(nItem,8,beglist->camera.rtspurl); if(beglist->camera.isplay) m_list.SetItemText(nItem,9,"识别"); else m_list.SetItemText(nItem,9,"未识别"); sprintf(str,"%d",beglist->mission.missionid); m_list.SetItemText(nItem,10,str); sprintf(str,"%d",beglist->mission.userid); m_list.SetItemText(nItem,11,str); m_list.SetItemText(nItem,12,beglist->mission.username); m_list.SetItemText(nItem,13,beglist->mission.time); if(beglist->mission.isplay) m_list.SetItemText(nItem,14,"开启识别"); else m_list.SetItemText(nItem,14,"关闭识别"); } #endif }