57 memset(LUT, 0,
sizeof(LUT));
64 memset(LUT, 0,
sizeof(LUT));
83 eo_common_ipv4addr_to_decimal(ipv4, NULL, NULL, NULL, &index);
87 if(index>=maxEthBoards)
92 if(NULL == LUT[index].resource)
97 return(LUT[index].numberofinterfaces);
110 eo_common_ipv4addr_to_decimal(ipv4, NULL, NULL, NULL, &index);
113 if(index>=maxEthBoards)
119 if(NULL != LUT[index].resource)
124 LUT[index].resource = res;
125 LUT[index].ipv4 = ipv4;
126 LUT[index].boardnumber = index;
128 LUT[index].numberofinterfaces = 0;
131 LUT[index].interfaces[i] = NULL;
142 if((NULL == res) || (NULL == interface))
157 eo_common_ipv4addr_to_decimal(ipv4, NULL, NULL, NULL, &index);
159 if(index>=maxEthBoards)
164 if(res != LUT[index].resource)
169 if(NULL != LUT[index].interfaces[type])
175 LUT[index].interfaces[type] = interface;
176 LUT[index].numberofinterfaces ++;
193 eo_common_ipv4addr_to_decimal(ipv4, NULL, NULL, NULL, &index);
195 if(index>=maxEthBoards)
200 if(res != LUT[index].resource)
205 LUT[index].resource = NULL;
207 LUT[index].boardnumber = 0;
208 LUT[index].name =
"";
209 LUT[index].numberofinterfaces = 0;
212 LUT[index].interfaces[i] = NULL;
231 eo_common_ipv4addr_to_decimal(ipv4, NULL, NULL, NULL, &index);
233 if(index>=maxEthBoards)
238 if(res != LUT[index].resource)
243 if(NULL != LUT[index].interfaces[type])
245 LUT[index].interfaces[type] = NULL;
246 LUT[index].numberofinterfaces --;
258 eo_common_ipv4addr_to_decimal(ipv4, NULL, NULL, NULL, &index);
260 if(index<maxEthBoards)
262 ret = LUT[index].resource;
268 bool eth::EthBoards::get_LUTindex(eOipv4addr_t ipv4, uint8_t &index)
271 eo_common_ipv4addr_to_decimal(ipv4, NULL, NULL, NULL, &index);
274 if(index>=maxEthBoards)
279 if(NULL == LUT[index].resource)
291 if(!get_LUTindex(ipv4, index))
301 dev = LUT[index].interfaces[type];
313 eo_common_ipv4addr_to_decimal(ipv4, NULL, NULL, NULL, &index);
315 if(index>=maxEthBoards)
320 if(NULL == LUT[index].resource)
326 eOprotEndpoint_t ep = eoprot_ID2endpoint(id32);
329 case eoprot_endpoint_management:
334 case eoprot_endpoint_motioncontrol:
339 case eoprot_endpoint_skin:
344 case eoprot_endpoint_analogsensors:
346 eOprotEntity_t en = eoprot_ID2entity(id32);
347 if(eoprot_entity_as_strain == en)
349 else if(eoprot_entity_as_mais == en)
351 else if(eoprot_entity_as_inertial3 == en)
353 else if(eoprot_entity_as_temperature == en)
355 else if(eoprot_entity_as_psc == en)
357 else if(eoprot_entity_as_pos == en)
359 else if(eoprot_entity_as_ft == en)
361 else if(eoprot_entity_as_battery == en)
375 dev = LUT[index].interfaces[type];
386 const string & ret =
"none";
389 eo_common_ipv4addr_to_decimal(ipv4, NULL, NULL, NULL, &index);
391 if(index<maxEthBoards)
393 return LUT[index].name;
412 for(
int i=0; i<maxEthBoards; i++)
virtual const Properties & getProperties()=0
size_t number_of_interfaces(eth::AbstractEthResource *res)
const string & name(eOipv4addr_t ipv4)
eth::IethResource * get_interface(eOipv4addr_t ipv4, eOprotID32_t id32)
bool execute(void(*action)(eth::AbstractEthResource *res, void *p), void *par)
bool add(eth::AbstractEthResource *res)
bool rem(eth::AbstractEthResource *res)
size_t number_of_resources(void)
eth::AbstractEthResource * get_resource(eOipv4addr_t ipv4)
virtual iethresType_t type()=0
@ iethres_analoginertial3