void model_device_to_connection_set_control_roles(e_device axis_x, e_device axis_y, e_device bezel, e_device buttons);
+const e_device model_device_to_connection_axis_x_get_function();
+const e_device model_device_to_connection_axis_y_get_function();
+const e_device model_device_to_connection_bezel_get_function();
+const e_device model_device_to_connection_buttons_get_function();
+
#endif /* MODEL_DEVICE_TO_CONNECTION_H_ */
view_manager_set_view(VIEW_RESET);
}
+void _map_device_to_view(e_device device, float value)
+{
+ switch (device) {
+ case STERING_MODE_DIRETION:
+ s_info.controller_data.direction = value;
+ break;
+ case STERING_MODE_THROTTLE:
+ s_info.controller_data.throttle = value;
+ break;
+ case STERING_MODE_CAM_AZIMUTH:
+ s_info.controller_data.cam_azimuth = value;
+ break;
+ case STERING_MODE_CAM_ELEVATION:
+ s_info.controller_data.cam_elevation = value;
+ break;
+ default:
+ break;
+ }
+}
+
static void _sensors_cb(s_model_sensors_cb_data *model_data)
{
- s_info.controller_data.direction = model_data->axis_x;
- s_info.controller_data.throttle = model_data->axis_y;
+ e_device device = model_device_to_connection_axis_x_get_function();
+ _map_device_to_view(device, model_data->axis_x);
+
+ device = model_device_to_connection_axis_y_get_function();
+ _map_device_to_view(device, model_data->axis_y);
+
s_info.base_controller.view_update_cb(&s_info.controller_data);
}
static void _hw_cb(s_model_hw_cb_data *model_data)
{
- s_info.controller_data.throttle = model_data->bezel_position;
+ e_device device = model_device_to_connection_bezel_get_function();
+ _map_device_to_view(device, model_data->bezel_position);
+
s_info.base_controller.view_update_cb(&s_info.controller_data);
}
s_info.buttons = buttons;
}
+const e_device model_device_to_connection_axis_x_get_function()
+{
+ return s_info.axis_x;
+}
+
+const e_device model_device_to_connection_axis_y_get_function()
+{
+ return s_info.axis_y;
+}
+
+const e_device model_device_to_connection_bezel_get_function()
+{
+ return s_info.bezel;
+}
+
+const e_device model_device_to_connection_buttons_get_function()
+{
+ return s_info.buttons;
+}
+
+
+
+
angle = math_helper_range_map(controller_data->cam_elevation, 0, 1, 0, 90);
view_base_set_angle(s_info.camera_elevation_indicator, 90 - angle, 180.0, 180.0);
+ angle = math_helper_range_map(controller_data->cam_azimuth, -1, 1, -90.0f, 90.0f);
+ view_base_set_angle(s_info.camera_azimuth_indicator, angle, 180.0, 180.0);
+
if (controller_data->throttle < 0) {
evas_object_color_set(s_info.velocity, 0, 255, 255, 255);
} else {