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); }
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); }
//获取原始数据,这里去调用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; } }