// Subscribe to the joystick device int playerc_joystick_subscribe(playerc_joystick_t *device, int access) { return playerc_device_subscribe(&device->info, access); }
// Subscribe to the gripper device int playerc_gripper_subscribe (playerc_gripper_t *device, int access) { return playerc_device_subscribe (&device->info, access); }
// Subscribe to the audio device int playerc_audio_subscribe(playerc_audio_t *device, int access) { return playerc_device_subscribe(&device->info, access); }
// Subscribe to the localize device int playerc_localize_subscribe(playerc_localize_t *device, int access) { return playerc_device_subscribe(&device->info, access); }
// Subscribe to the health device int playerc_health_subscribe(playerc_health_t *device, int access) { return playerc_device_subscribe(&device->info, access); }
// Subscribe to the pointcloud3d device int playerc_pointcloud3d_subscribe (playerc_pointcloud3d_t *device, int access) { return playerc_device_subscribe (&device->info, access); }
// Disconnect from the server, with potential retry int playerc_client_disconnect_retry(playerc_client_t *client) { int retval; int i; int j; struct timespec sleeptime; sleeptime.tv_sec = (long) client->retry_time; sleeptime.tv_nsec = 0; /* Disconnect */ if((retval = playerc_client_disconnect(client)) != 0) PLAYERC_WARN("playerc_client_disconnect() failed"); for(j=0; (client->retry_limit < 0) || (j<client->retry_limit); j++) { PLAYERC_WARN1("Reconnecting, attempt %d", j); /* Reconnect */ if((retval = playerc_client_connect(client)) != 0) PLAYERC_WARN("playerc_client_connect() failed"); else { /* Clean out buffers */ client->read_xdrdata_len = 0; /* TODO: re-establish replacement rules, delivery modes, etc. */ /* Re-subscribe to devices */ for(i=0;i<client->device_count;i++) { if(client->device[i]->subscribed) { // TODO: what should access be here? if((retval = playerc_device_subscribe(client->device[i], PLAYERC_OPEN_MODE)) != 0) { PLAYERC_WARN2("playerc_device_subscribe() failed for %d:%d", client->device[i]->addr.interf, client->device[i]->addr.index); // TODO: Subscription failed for one device; should we give up? if(playerc_client_disconnect(client) != 0) PLAYERC_WARN("playerc_client_disconnect() failed"); break; } } } // Did we get all of them? if(i == client->device_count) break; } nanosleep(&sleeptime,NULL); } if((client->retry_limit < 0) || (j < client->retry_limit)) { PLAYERC_WARN("successfully reconnected"); return(0); } else { PLAYERC_WARN("failed to reconnect"); return(-1); } }
// Subscribe to the position1d device int playerc_position1d_subscribe(playerc_position1d_t *device, int access) { return playerc_device_subscribe(&device->info, access); }
// Subscribe to the lightsensor device int playerc_lightsensor_subscribe(playerc_lightsensor_t *device, int access) { return playerc_device_subscribe(&device->info, access); }
// Subscribe to the wifi device int playerc_wifi_subscribe(playerc_wifi_t *self, int access) { return playerc_device_subscribe(&self->info, access); }
// Subscribe to the actarray device int playerc_actarray_subscribe(playerc_actarray_t *device, int access) { return playerc_device_subscribe(&device->info, access); }
// Subscribe to the blobfinder device int playerc_blobfinder_subscribe(playerc_blobfinder_t *device, int access) { return playerc_device_subscribe(&device->info, access); }
// Subscribe to the speech_recognition device int playerc_speechrecognition_subscribe(playerc_speechrecognition_t *device, int access) { return playerc_device_subscribe(&device->info, access); }
// Subscribe to the blinkenlight device int playerc_blinkenlight_subscribe(playerc_blinkenlight_t *device, int access) { return playerc_device_subscribe(&device->info, access); }
// Subscribe to the micron sonar device int playerc_micronsonar_subscribe(playerc_micronsonar_t *device, int access) { return playerc_device_subscribe(&device->info, access); }