Config for different led colors displaying the car states
[apps/native/gear-racing-car.git] / src / cloud / cloud_communication.c
index 59703f3..5a183ff 100644 (file)
 #include <stdlib.h>
 #include "cloud/car_info.h"
 #include "cloud/cloud_request.h"
+#include "cloud/cloud_lap_request.h"
+#include "cloud/lap_info.h"
 #include "log.h"
 #include "config.h"
-#include "connection_manager.h"
 #include "net-util.h"
+#include "resource/resource_led.h"
+
+#define CONFIG_LED_STATE_KEY_READY "ready"
+#define CONFIG_DEFAULT_LED_3BIT_READY 1, 0, 1
+#define CONFIG_DEFAULT_LED_24BIT_READY 215, 15, 96
+
+#define CONFIG_LED_STATE_KEY_FAIL "fail"
+#define CONFIG_DEFAULT_LED_3BIT_FAIL 1, 0, 0
+#define CONFIG_DEFAULT_LED_24BIT_FAIL 255, 0, 0
 
 typedef struct communication_data_ {
     gboolean is_initialized;
@@ -97,13 +107,36 @@ void cloud_communication_fini()
     car_info_destroy(_communication.car_info);
 }
 
+
+void cloud_communication_post_lap(const long laptime, const char *driver_name)
+{
+       lap_info_t *lap = lap_info_create();
+
+       lap_info_set_car_id(lap, car_info_get_car_id(_communication.car_info));
+       lap_info_set_user_name(lap, driver_name);
+       lap_info_set_lap_time(lap,  laptime);
+
+       _D("POST lap");
+       cloud_lap_request_api_racing_post(lap, (cloud_request_lap_post_finish_cb)post_response_cb, NULL);
+
+       lap_info_destroy(lap);
+}
+
 static void post_response_cb(request_result_e result, void *user_data)
 {
     if (result == SUCCESS) {
         _I("POST SUCCESS");
+        resource_led_set_rgb_colors(CONFIG_LED_STATE_KEY_READY,
+                       CONFIG_DEFAULT_LED_3BIT_READY,
+                               CONFIG_DEFAULT_LED_24BIT_READY,
+                               LED_COLOR_GREEN);
     }
     else {
         _I("POST FAILURE");
+        resource_led_set_rgb_colors(CONFIG_LED_STATE_KEY_FAIL,
+                       CONFIG_DEFAULT_LED_3BIT_FAIL,
+                               CONFIG_DEFAULT_LED_24BIT_FAIL,
+                               LED_COLOR_RED);
     }
 }
 
@@ -186,4 +219,4 @@ static void wifi_changed_cb(const char *ap_mac, const char *ap_ssid, char *ip_ad
     car_info_set_car_ap_mac(_communication.car_info, ap_mac);
     car_info_set_ap_ssid(_communication.car_info, ap_ssid);
     car_info_set_car_ip(_communication.car_info, ip_addr);
-}
\ No newline at end of file
+}