Esempio n. 1
0
//字符串最多支持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;
} 
Esempio n. 2
0
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
}