示例#1
0
ResolveData synchronous_resolve(
	const char *_node, 
	const char *_service, 
	int _flags,
	int _family,
	int _type,
	int _proto
){
	if(!_node && !_service){
		return ResolveData();
	}
	if(_family < 0) _family = AF_UNSPEC;
	if(_type < 0) _type = 0;
	if(_proto < 0) _proto = 0;
	addrinfo h;
	h.ai_flags = _flags;
	h.ai_family = _family;
	h.ai_socktype = _type;
	h.ai_protocol = _proto;
	h.ai_addrlen = 0;
	h.ai_addr = NULL;
	h.ai_canonname = NULL;
	h.ai_next = NULL;
	addrinfo *paddr = NULL;
	getaddrinfo(_node, _service, &h, &paddr);
	return ResolveData(paddr);
}
示例#2
0
ResolveData synchronous_resolve(const char *_node, const char *_service){
	if(!_node && !_service){
		return ResolveData();
	}
	addrinfo *paddr = NULL;
	getaddrinfo(_node, _service, NULL, &paddr);
	return ResolveData(paddr);
}
示例#3
0
//获取原始数据,这里去调用SCIP lib的库函数,填充DataFrame实体
bool CSCIPRadarComm::GetRawData(DataFrame * pData)
{
	int data_max;
	long *data;
	int ret;
	int n;
	
	data_max = urg_dataMax(&urg);
	data = new long[data_max];
	if (data == NULL) {
		//perror("malloc");
		return false;
	}
	memset(data,0,sizeof(long)*data_max);	
	
	ret = urg_requestData(&urg, URG_GD, URG_FIRST, URG_LAST);	
	if (ret < 0) {
		delete data;
		return false;
	}
	
	n = urg_receiveData(&urg, data, data_max);//n 表示返回的距离个数,最大1081
	if (n < 0) {
		delete data;
		return false;
	}
				
	if( ResolveData(data,n,pData))	//解析原始数据,存入自己定义的原始数据
	{
		delete data;
		return true;
	}
	else
	{
		delete data;
		return false;
	}
	
}