Bläddra i källkod

update jerry_wlan.c 回退代码到上一版本

Signed-off-by: yangfasheng <yangfasheng@rt-thread.com>
yangfasheng 6 år sedan
förälder
incheckning
bd559609c2
3 ändrade filer med 69 tillägg och 65 borttagningar
  1. 9 3
      rtthread-port/jerry_mqtt.c
  2. 2 1
      rtthread-port/jerry_util.c
  3. 58 61
      rtthread-port/jerry_wlan.c

+ 9 - 3
rtthread-port/jerry_mqtt.c

@@ -6,6 +6,8 @@
 #define PIPE_BUFSZ    512
 static bool hasClient = false;
 
+extern int MQTT_CMD(MQTTClient *c, const char *cmd);
+
 void mqtt_event_callback(const void *args, uint32_t size)
 {
     mqtt_cbinfo_t *cb_info = (mqtt_cbinfo_t*)args;
@@ -34,6 +36,7 @@ void mqtt_free_callback(const void *args, uint32_t size)
 {
 
 }
+
 void mqtt_func_callback(const void *args, uint32_t size)
 {
     mqtt_cbinfo_t *cb_info = (mqtt_cbinfo_t *)args;
@@ -148,7 +151,7 @@ void mqtt_client_free_callback(void *native_p)
 
     if(mqtt_info->client->isconnected == 1)
     {
-        MQTT_CMD(mqtt_info->client,"DISCONNECT");
+        MQTT_CMD(mqtt_info->client, "DISCONNECT");
     }
 
     if(mqtt_info->sem)
@@ -234,6 +237,7 @@ DECLARE_HANDLER(connect)
 
     return jerry_create_undefined();
 }
+
 DECLARE_HANDLER(publish)
 {
     mqtt_info_t *mqtt_info = RT_NULL;
@@ -359,6 +363,7 @@ DECLARE_HANDLER(publish)
 _exit:
     return jerry_create_undefined();
 }
+
 DECLARE_HANDLER(subscribe)
 {
     mqtt_info_t *mqtt_info = RT_NULL;
@@ -555,6 +560,7 @@ DECLARE_HANDLER(unsubscribe)
 _exit:
     return jerry_create_undefined();
 }
+
 DECLARE_HANDLER(end)
 {
     mqtt_info_t *mqtt_info = RT_NULL;
@@ -592,7 +598,7 @@ DECLARE_HANDLER(end)
         break;
     }
 
-    if(mqtt_info->client->isconnected == 1)
+    // if(mqtt_info->client->isconnected == 1)
     {
         MQTT_CMD(mqtt_info->client,"DISCONNECT");
 
@@ -613,6 +619,7 @@ DECLARE_HANDLER(end)
 _exit:
     return jerry_create_undefined();
 }
+
 DECLARE_HANDLER(reconnect)
 {
     mqtt_info_t *mqtt_info = RT_NULL;
@@ -630,7 +637,6 @@ DECLARE_HANDLER(reconnect)
     return jerry_create_undefined();
 }
 
-
 static jerry_value_t mqtt_create_client(int arg_cnt,const jerry_value_t* args)
 {
     jerry_value_t js_client = jerry_create_object();

+ 2 - 1
rtthread-port/jerry_util.c

@@ -238,6 +238,7 @@ int js_read_file(const char* filename, char **script)
     {
         rt_free(*script);
         *script = RT_NULL;
+        printf("open %s failed!\n", filename);
         return 0;
     }
 
@@ -246,7 +247,7 @@ int js_read_file(const char* filename, char **script)
         length = 0;
         rt_free(*script);
         *script = RT_NULL;
-        printf("read failed!\n");
+        printf("read %s failed!\n", filename);
     }
     fclose(fp);
 

+ 58 - 61
rtthread-port/jerry_wlan.c

@@ -3,8 +3,6 @@
 
 #ifdef RT_USING_WIFI
 
-static int connect_wifi(struct wifi_info *info, char *ssid, char *password, char *bssid);
-
 static void get_wifi_info(void **info, jerry_value_t js_target)
 {
     jerry_value_t js_info = js_get_property(js_target, "info");
@@ -23,36 +21,6 @@ static void js_event_callback_func_wifi(const void *args, uint32_t size)
     {
         js_emit_event(cb_info->js_target, cb_info->event_name, &cb_info->js_return, 1);
         jerry_release_value(cb_info->js_return);
-
-        if (rt_strcmp((const char *)cb_info->event_name, (const char *)"ScanEvent") == 0)
-        {
-            struct wifi_info *info = RT_NULL;
-
-            get_wifi_info((void**)&info, cb_info->js_target);
-            if (info->ssid)
-            {
-                if (connect_wifi(info, info->ssid, info->password, info->bssid) == -2)
-                {
-                    struct event_callback_info _cb_info;
-
-                    _cb_info.event_name = strdup("ConnectEvent");
-                    _cb_info.js_target = cb_info->js_target;
-                    _cb_info.js_return = jerry_create_null();
-
-                    if (!js_send_callback(info->event_callback, &_cb_info, sizeof(struct event_callback_info)))
-                    {
-                        jerry_release_value(_cb_info.js_return);
-                    }
-                }
-
-                free(info->ssid);
-                free(info->password);
-                free(info->bssid);
-                info->ssid = NULL;
-                info->password = NULL;
-                info->bssid = NULL;
-            }
-        }
     }
     else
     {
@@ -140,45 +108,74 @@ static void scanEvent_handler(int event, struct rt_wlan_buff *buff, void *parame
             info->wifi_list.info = (struct rt_wlan_info*)malloc(sizeof(struct rt_wlan_info) * info->wifi_list.num);
             if (info->wifi_list.info)
             {
-                char buffer[32];
-                jerry_value_t js_ssid, js_strength, js_bssid, js_secure, js_ret;
-
-                js_return = jerry_create_array(info->wifi_list.num);
                 memcpy(info->wifi_list.info, temp_result->info, sizeof(struct rt_wlan_info) * info->wifi_list.num);
 
-                for (int i = 0; i < info->wifi_list.num; i++)
+                if (info->ssid)
+                {
+                    if (connect_wifi(info, info->ssid, info->password, info->bssid) == -2)
+                    {
+                        struct event_callback_info cb_info;
+
+                        cb_info.event_name = strdup("ConnectEvent");
+                        cb_info.js_target = js_wifi;
+                        cb_info.js_return = jerry_create_null();
+
+                        if (!js_send_callback(info->event_callback, &cb_info, sizeof(struct event_callback_info)))
+                        {
+                            jerry_release_value(js_return);
+                        }
+                    }
+
+                    free(info->ssid);
+                    free(info->password);
+                    free(info->bssid);
+                    info->ssid = NULL;
+                    info->password = NULL;
+                    info->bssid = NULL;
+
+                    return;
+                }
+                else
                 {
-                    struct rt_wlan_info *wifi_info = &(info->wifi_list.info[i]);
-                    jerry_value_t js_wifi_info = jerry_create_object();
+                    char buffer[32];
+                    jerry_value_t js_ssid, js_strength, js_bssid, js_secure, js_ret;
 
-                    js_ssid = jerry_create_string(((const jerry_char_t*)wifi_info->ssid.val));
-                    js_set_property(js_wifi_info, "ssid", js_ssid);
-                    jerry_release_value(js_ssid);
+                    js_return = jerry_create_array(info->wifi_list.num);
 
-                    js_strength = jerry_create_number(wifi_info->rssi);
-                    js_set_property(js_wifi_info, "strength", js_strength);
-                    jerry_release_value(js_strength);
+                    for (int i = 0; i < info->wifi_list.num; i++)
+                    {
+                        struct rt_wlan_info *wifi_info = &(info->wifi_list.info[i]);
+                        jerry_value_t js_wifi_info = jerry_create_object();
 
-                    rt_sprintf(buffer, "%02x:%02x:%02x:%02x:%02x:%02x",
-                               wifi_info->bssid[0],
-                               wifi_info->bssid[1],
-                               wifi_info->bssid[2],
-                               wifi_info->bssid[3],
-                               wifi_info->bssid[4],
-                               wifi_info->bssid[5]);
+                        js_ssid = jerry_create_string(((const jerry_char_t*)wifi_info->ssid.val));
+                        js_set_property(js_wifi_info, "ssid", js_ssid);
+                        jerry_release_value(js_ssid);
 
-                    js_bssid = jerry_create_string(((const jerry_char_t*)buffer));
-                    js_set_property(js_wifi_info, "bssid", js_bssid);
-                    jerry_release_value(js_bssid);
+                        js_strength = jerry_create_number(wifi_info->rssi);
+                        js_set_property(js_wifi_info, "strength", js_strength);
+                        jerry_release_value(js_strength);
 
-                    js_secure = jerry_create_boolean(wifi_info->security);
-                    js_set_property(js_wifi_info, "secure", js_secure);
-                    jerry_release_value(js_secure);
+                        rt_sprintf(buffer, "%02x:%02x:%02x:%02x:%02x:%02x",
+                                   wifi_info->bssid[0],
+                                   wifi_info->bssid[1],
+                                   wifi_info->bssid[2],
+                                   wifi_info->bssid[3],
+                                   wifi_info->bssid[4],
+                                   wifi_info->bssid[5]);
 
-                    js_ret = jerry_set_property_by_index(js_return, i, js_wifi_info);
-                    jerry_release_value(js_ret);
+                        js_bssid = jerry_create_string(((const jerry_char_t*)buffer));
+                        js_set_property(js_wifi_info, "bssid", js_bssid);
+                        jerry_release_value(js_bssid);
 
-                    jerry_release_value(js_wifi_info);
+                        js_secure = jerry_create_boolean(wifi_info->security);
+                        js_set_property(js_wifi_info, "secure", js_secure);
+                        jerry_release_value(js_secure);
+
+                        js_ret = jerry_set_property_by_index(js_return, i, js_wifi_info);
+                        jerry_release_value(js_ret);
+
+                        jerry_release_value(js_wifi_info);
+                    }
                 }
             }
         }