Added cloud reconnecting 67/194167/2
authorKrzysztof Wieclaw <k.wieclaw@samsung.com>
Thu, 29 Nov 2018 19:05:48 +0000 (20:05 +0100)
committerMichal Skorupinski <m.skorupinsk@samsung.com>
Fri, 30 Nov 2018 11:20:18 +0000 (12:20 +0100)
Change-Id: Ifd930d5d7a5da7bf0889a903358163b9df3ffccc
Signed-off-by: Krzysztof Wieclaw <k.wieclaw@samsung.com>
src/cloud/car_info.c
src/cloud/cloud_communication.c
src/net-util.c

index 508e086..450e137 100644 (file)
@@ -149,7 +149,7 @@ int car_info_set_car_ip(car_info_t *car_info, const char *car_ip)
 const char *car_info_get_ap_mac(car_info_t *car_info)
 {
     retv_if(!car_info, NULL);
-    return car_info->ap_mac ? car_info->ap_mac : "NULL";
+    return car_info->ap_mac;
 }
 
 int car_info_set_car_ap_mac(car_info_t *car_info, const char *ap_mac)
index 5a183ff..b35fc38 100644 (file)
@@ -38,6 +38,7 @@
 typedef struct communication_data_ {
     gboolean is_initialized;
     gboolean is_running;
+    gboolean is_connected;
     car_info_t *car_info;
     guint source_id;
 } communication_data_t;
@@ -59,24 +60,15 @@ int cloud_communication_init()
     retvm_if(_communication.is_initialized, -1, "Cloud communication is already initialized");
     _communication.car_info = car_info_create();
 
-    if (set_car_id() != 0) {
-        return -1;
-    }
-    if (set_car_ip() != 0) {
-        return -1;
-    }
-    if (set_car_name() != 0) {
-        return -1;
-    }
-    if (set_ap_mac() != 0) {
-        return -1;
-    }
-    if (set_ap_ssid() != 0) {
-        return -1;
-    }
+    set_car_id();
+    set_car_ip();
+    set_car_name();
+    set_ap_mac();
+    set_ap_ssid();
 
     net_util_set_wifi_connection_changed_cb(wifi_changed_cb, NULL);
 
+    _communication.is_connected = car_info_get_ap_mac(_communication.car_info) && car_info_get_ap_ssid(_communication.car_info);
     _communication.is_initialized = true;
     return 0;
 }
@@ -93,7 +85,7 @@ void cloud_communication_start(int interval)
 void cloud_communication_stop()
 {
     retm_if(!_communication.is_initialized, "Cloud communication is not initialized");
-    retm_if(_communication.is_running, "Cloud communication is already stopped");
+    retm_if(!_communication.is_running, "Cloud communication is already stopped");
 
     g_source_remove(_communication.source_id);
     _communication.is_running = FALSE;
@@ -107,9 +99,9 @@ void cloud_communication_fini()
     car_info_destroy(_communication.car_info);
 }
 
-
 void cloud_communication_post_lap(const long laptime, const char *driver_name)
 {
+       retm_if(!_communication.is_connected, "Car is not connected to network");
        lap_info_t *lap = lap_info_create();
 
        lap_info_set_car_id(lap, car_info_get_car_id(_communication.car_info));
@@ -143,6 +135,7 @@ static void post_response_cb(request_result_e result, void *user_data)
 static gboolean post_timer_cb(gpointer data)
 {
     retv_if(!data, FALSE);
+       retvm_if(!_communication.is_connected, TRUE, "Car is not connected to network");
     car_info_t *car = (car_info_t *)data;
     cloud_request_api_racing_post(car, post_response_cb, NULL);
     return TRUE;
@@ -219,4 +212,6 @@ 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);
+    _communication.is_connected = ap_mac && ap_ssid;
 }
+
index 1e13c97..e7e1183 100644 (file)
@@ -191,7 +191,6 @@ static int _set_ap_ssid()
     wifi_manager_ap_h ap_h = NULL;
     int ssid_len;
     int ret = WIFI_MANAGER_ERROR_NONE;
-
     free(net_util.ap_ssid);
     net_util.ap_ssid = NULL;
 
@@ -224,7 +223,7 @@ static int _set_ip_addr()
     int ret = 0;
 
     free(net_util.ip_addr);
-    net_util.ap_ssid = NULL;
+    net_util.ip_addr = NULL;
 
     if (net_util.net_state == CONNECTION_TYPE_DISCONNECTED) {
         return -1;
@@ -245,8 +244,7 @@ static void _connection_changed_cb(connection_type_e type, void *user_data)
     _set_ap_mac();
     _set_ap_ssid();
     _set_ip_addr();
-
-    if (type == CONNECTION_TYPE_WIFI && net_util.cb) {
+    if ((type == CONNECTION_TYPE_WIFI || type == CONNECTION_TYPE_DISCONNECTED) && net_util.cb) {
         net_util.cb(net_util.ap_mac, net_util.ap_ssid, net_util.ip_addr, net_util.cb_user_data);
     }
-}
\ No newline at end of file
+}