瀏覽代碼

add: 添加airkiss回调

Wendal Chen 2 年之前
父節點
當前提交
1ce3b28249
共有 2 個文件被更改,包括 20 次插入13 次删除
  1. 2 2
      app/network/luat_wlan_air101.c
  2. 18 11
      src/app/oneshotconfig/wm_oneshot_airkiss.c

+ 2 - 2
app/network/luat_wlan_air101.c

@@ -232,7 +232,7 @@ int luat_wlan_scan_get_result(luat_wlan_scan_result_t *results, size_t ap_limit)
     return ap_limit;
 }
 
-static void oneshot_result_callback(enum tls_wifi_oneshot_result_type type) {
+void luat_sc_callback(enum tls_wifi_oneshot_result_type type) {
     if (type == WM_WIFI_ONESHOT_TYPE_SSIDPWD) {
         LLOGD("oneshot Got!!");
         rtos_msg_t msg = {.handler = l_wlan_cb, .arg1=ONESHOT_RESULT};
@@ -242,7 +242,7 @@ static void oneshot_result_callback(enum tls_wifi_oneshot_result_type type) {
 
 int luat_wlan_smartconfig_start(int tp) {
     (void)tp;
-    tls_wifi_oneshot_result_cb_register(oneshot_result_callback);
+    tls_wifi_oneshot_result_cb_register(luat_sc_callback);
     return tls_wifi_set_oneshot_flag(1);
 }
 

+ 18 - 11
src/app/oneshotconfig/wm_oneshot_airkiss.c

@@ -11,9 +11,9 @@
 
 #if TLS_CONFIG_AIRKISS_MODE_ONESHOT
 
-#define AIRKISS_BSSID_CONNECT_ENABLE      1/* 该功能需要使用带log的库 */
+#define AIRKISS_BSSID_CONNECT_ENABLE      1/* 锟矫癸拷锟斤拷锟斤拷要使锟矫达拷log锟侥匡拷 */
 
-/* 局域网发现 */
+/* 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 */
 #define TLS_CONFIG_AIRKISS_LAN            0
 
 /* airkiss debug switcher */
@@ -24,10 +24,10 @@
 #define ONESHOT_AIRKISS_AES_KEY           "winnermicro_wifi"
 #endif
 
-/* udp广播包数目 */
+/* udp锟姐播锟斤拷锟斤拷目 */
 #define ONESHOT_AIRKISS_REPLY_CNT_MAX     50
 
-/* udp广播端口 */
+/* udp锟姐播锟剿匡拷 */
 #define ONESHOT_AIRKISS_REMOTE_PORT      10000
 
 #define ONESHOT_AIRKISS_SSID_LEN_MAX      32
@@ -72,7 +72,7 @@ void oneshot_airkiss_send_reply(void)
     {
         return ;
     }
-    /* 13.加网成功之后,向10000端口广播发送udp报文,通告一键配置已经配置成功 */
+    /* 13.锟斤拷锟斤拷锟缴癸拷之锟斤拷锟斤拷10000锟剿口广播锟斤拷锟斤拷udp锟斤拷锟侥o拷通锟斤拷一锟斤拷锟斤拷锟斤拷锟窖撅拷锟斤拷锟矫成癸拷 */
     socket_num = socket(AF_INET, SOCK_DGRAM, 0);
     AIRKISS_PRINT("create skt %d: send udp broadcast to airkiss.\r\n", socket_num);
 
@@ -87,7 +87,7 @@ void oneshot_airkiss_send_reply(void)
         {
             break;
         }
-        /* 发送结果为包含get_result所得random值的一个字节udp数据包 */
+        /* 锟斤拷锟酵斤拷锟轿�拷锟斤拷锟絞et_result锟斤拷锟斤拷random值锟斤拷一锟斤拷锟街斤拷udp锟斤拷锟捷帮拷 */
         sendto(socket_num, &random4reply, sizeof(random4reply), 0, (struct sockaddr*) &addr, sizeof(struct sockaddr_in));
         tls_os_time_delay(50);
     }
@@ -99,6 +99,9 @@ void oneshot_airkiss_send_reply(void)
 
 //-------------------------------------------------------------------------
 
+extern u8 gucssidData[];
+extern u8 gucpwdData[];
+void luat_sc_callback(enum tls_wifi_oneshot_result_type type);
 static void oneshot_airkiss_finish_new(u8 *ssid, u8 ssid_len, u8 *pwd, u8 pwd_len,  u8 *bssid, u8 randomnum)
 {
     int ret =  - 1;
@@ -115,7 +118,11 @@ static void oneshot_airkiss_finish_new(u8 *ssid, u8 ssid_len, u8 *pwd, u8 pwd_le
     {
         AIRKISS_PRINT("failed to connect net, airkiss join net failed.\r\n");
     }
-
+    else {
+        memcpy(gucssidData, ssid, ssid_len);
+        memcpy(gucpwdData, pwd, pwd_len);
+        luat_sc_callback(WM_WIFI_ONESHOT_TYPE_SSIDPWD);
+    }
     return ;
 }
 
@@ -286,7 +293,7 @@ void tls_airkiss_recv_new(u8 *pdata, u8 *data, u16 data_len)
     switch (airkiss_step_mark)
     {
         case 0:
-            /*同*/
+            /*同锟斤拷*/
             //if (isfromds == 0)
             {
                 if (frm_len <= 85)
@@ -380,7 +387,7 @@ void tls_airkiss_recv_new(u8 *pdata, u8 *data, u16 data_len)
             break;
 
         case 1:
-            /*获取总数据长度和SSID CRC值*/
+            /*锟斤拷取锟斤拷锟斤拷锟捷筹拷锟饺猴拷SSID CRC值*/
             if ((frm_len >= (stairkissdata->airkiss_base_len)) && (frm_len <= (0x3F + stairkissdata->airkiss_base_len)))
             {
                 if (ieee80211_has_retry(hdr->frame_control) && (stairkissdata->seqnum[isfromds] == hdr->seq_ctrl))
@@ -475,7 +482,7 @@ void tls_airkiss_recv_new(u8 *pdata, u8 *data, u16 data_len)
             }
             break;
         case 2:
-            // if (airkiss_step_mark == 2)	    /*获取PWD长度,PWD CRC*/
+            // if (airkiss_step_mark == 2)	    /*锟斤拷取PWD锟斤拷锟斤拷,PWD CRC*/
             {
                 if ((frm_len >= (0x40 + stairkissdata->airkiss_base_len)) && (frm_len <= (0x7F + stairkissdata->airkiss_base_len)))
                 {
@@ -599,7 +606,7 @@ void tls_airkiss_recv_new(u8 *pdata, u8 *data, u16 data_len)
                                 index = stairkissdata->akdata[isfromds][1];
                                 if ((index >= stairkissdata->airkiss_total_index) || (stairkissdata->airkiss_all_data_bit[isfromds]&(1UL << index)))
                                 {
-                                    stairkissdata->akdatacnt[isfromds] = 0; /*对于已接收或者序号超过总序号的,重新来收*/
+                                    stairkissdata->akdatacnt[isfromds] = 0; /*锟斤拷锟斤拷锟窖斤拷锟秸伙拷锟斤拷锟斤拷懦锟斤拷锟斤拷锟斤拷锟脚的o拷锟斤拷锟斤拷锟斤拷锟斤拷*/
                                     break;
                                 }
                             }