Update to emergency stop
[apps/native/gear-racing-controller.git] / src / controller / controller_racing.c
index 502fdab..8f039ca 100644 (file)
@@ -15,8 +15,9 @@
 */
 
 #include "gear-racing-controller.h"
-#include "model/model_cloud_connection.h"
+#include "model/model_car_connection.h"
 #include "model/model_sensors.h"
+#include "model/model_hw.h"
 #include "controller/controller_racing.h"
 #include "view_manager/view_manager.h"
 
@@ -30,28 +31,44 @@ static s_racing_controller s_info = { { 0, } };
 void controller_racing_destroy(void)
 {
        model_sensors_unsubscirbe_event();
-       model_cloud_connection_unsubscirbe_event();
+       model_car_connection_unsubscirbe_event();
+       model_hw_unsubscirbe_event();
 }
 
-static void _model_connected_cb(s_model_cloud_connection_cb_data *model_data)
+static void _model_connected_cb(s_model_car_connection_cb_data *model_data)
 {
-       view_manager_set_view(VIEW_EMERGENCY_STOP);
+       view_manager_set_view(VIEW_RESET);
 }
 
 static void _sensors_cb(s_model_sensors_cb_data *model_data)
 {
        s_info.controller_data.direction = model_data->direction;
-       s_info.controller_data.velocity = model_data->velocity;
+       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->throttle;
        s_info.base_controller.view_update_cb(&s_info.controller_data);
 }
 
+void controller_racing_set_stop(bool stop)
+{
+       model_car_connection_set_stop(stop);
+       model_hw_deactivate_rotatry(stop);
+
+}
+
 void controller_racing_init(t_view_update_cb view_update_cb)
 {
        s_info.base_controller.view_update_cb = view_update_cb;
 
-       model_cloud_connection_subscribe_event(_model_connected_cb);
+       model_car_connection_subscribe_event(_model_connected_cb);
        model_sensors_subscribe_event(_sensors_cb);
+       model_hw_subscribe_event(_hw_cb);
+
+       model_sensors_set_initial_values();
+       model_car_connection_ready_to_drive(true);
 }
 
 void controller_racing_back(void)
@@ -61,6 +78,7 @@ void controller_racing_back(void)
 
 void controller_racing_next()
 {
-       model_cloud_connection_connect();
+       model_car_connection_ready_to_drive(false);
+       model_car_connection_model_state_change();
 }