- if (state == RECEIVER_STATE_CONNECTED) {
- if (!ad->idle_h)
- ad->idle_h = g_idle_add(__message_dispatcher, ad);
- } else {
- if (ad->idle_h) {
- g_source_remove(ad->idle_h);
- ad->idle_h = 0;
- }
- __driving_motors(0, 0);
+static void __command_received_cb(command_s command) {
+ switch(command.type) {
+ case COMMAND_TYPE_DRIVE:
+ __driving_motors(command.data.steering.direction, command.data.steering.speed);
+ break;
+ case COMMAND_TYPE_CAMERA:
+ __camera(command.data.camera_position.camera_azimuth, command.data.camera_position.camera_elevation);
+ break;
+ case COMMAND_TYPE_DRIVE_AND_CAMERA:
+ __driving_motors(command.data.steering_and_camera.direction, command.data.steering_and_camera.speed);
+ __camera(command.data.steering_and_camera.camera_azimuth, command.data.steering_and_camera.camera_elevation);
+ break;
+ case COMMAND_TYPE_NONE:
+ break;
+ default:
+ _E("Unknown command type");
+ break;