Fix mbtk from v1265 GSW
Change-Id: I5d8d395616f284bc74c8b9448cfa347164b5a668
diff --git a/mbtk/liblynq_lib/lynq_wifi.c b/mbtk/liblynq_lib/lynq_wifi.c
new file mode 100755
index 0000000..ae1e473
--- /dev/null
+++ b/mbtk/liblynq_lib/lynq_wifi.c
@@ -0,0 +1,378 @@
+#include "sta_cli.h"
+#include "lynq_wifi.h"
+#include "mbtk_log.h"
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "mbtk_utils.h"
+
+
+
+#define STA_BUF_SIZE 2048
+lynq_wifi_event_handle_sta g_event_handle_sta_cb = NULL;
+
+
+int qser_wifi_enable(void)
+{
+ static char sta_cli_buf[STA_BUF_SIZE] = "OPEN";
+ char reply[STA_BUF_SIZE];
+ if(sta_cli_cmd_parse(sta_cli_buf, reply, STA_BUF_SIZE)){
+ if(strlen(reply) > 0)
+ {
+ LOGE("reply data(%s).\n",reply);
+ }else{
+ LOGE("No reply data(%s).\n",sta_cli_buf);
+ }
+ }else{
+ LOGE("Parse cmd fail.\n");
+ }
+
+ return 0;
+}
+
+
+int qser_wifi_disable(void)
+{
+ static char sta_cli_buf[STA_BUF_SIZE] = "CLOSE";
+ char reply[STA_BUF_SIZE];
+ if(sta_cli_cmd_parse(sta_cli_buf, reply, STA_BUF_SIZE)){
+ if(strlen(reply) > 0)
+ {
+ LOGE("reply data(%s).\n",reply);
+ }else{
+ LOGE("No reply data(%s).\n",sta_cli_buf);
+ }
+ }else{
+ LOGE("Parse cmd fail.\n");
+ }
+ return 0;
+}
+
+int qser_wifi_sta_param_set(lynq_wifi_sta_param_t *param_stat)
+{
+
+ sta_cli_ssid_set(param_stat->ssid);
+ sta_cli_psk_set(param_stat->passwd);
+ return 0;
+}
+
+
+int qser_wifi_sta_param_get(lynq_wifi_sta_param_t *param_stat)
+{
+ int len = 0;
+ sta_cli_ssid_get(param_stat->ssid);
+ len = strlen(param_stat->ssid);
+ param_stat->ssid[len - 1] = '\0';
+ sta_cli_psk_get(param_stat->passwd);
+ len = strlen(param_stat->passwd);
+ param_stat->passwd[len - 1] = '\0';
+
+ LOGE("ssid: %s, passwd: %s", param_stat->ssid, param_stat->passwd);
+
+ return 0;
+}
+
+int qser_wifi_sta_start(void)
+{
+ char reply[STA_BUF_SIZE];
+
+ if(sta_cli_cmd_parse("ADD_NETWORK", reply, STA_BUF_SIZE))
+ {
+ if(strlen(reply) > 0)
+ {
+ LOGE("reply data(%s).\n",reply);
+ }else
+ {
+ LOGE("No reply data\n");
+ }
+ }
+ else
+ {
+ LOGE("Parse cmd fail.\n");
+ }
+
+
+ if(sta_cli_cmd_parse("SELECT_NETWORK", reply, STA_BUF_SIZE))
+ {
+ if(strlen(reply) > 0)
+ {
+ LOGE("reply data(%s).\n",reply);
+ }else
+ {
+ LOGE("No reply data\n");
+ }
+ }
+ else
+ {
+ LOGE("Parse cmd fail.\n");
+ }
+
+ if(sta_cli_cmd_parse("ENABLE_NETWORK", reply, STA_BUF_SIZE))
+ {
+ if(strlen(reply) > 0)
+ {
+ LOGE("reply data(%s).\n",reply);
+ }else
+ {
+ LOGE("No reply data\n");
+ }
+ }
+ else
+ {
+ LOGE("Parse cmd fail.\n");
+ }
+
+ mbtk_system("udhcpc -i wlan0");
+
+
+ return 0;
+}
+
+int qser_wifi_sta_stop(void)
+{
+ char reply[STA_BUF_SIZE];
+
+ if(sta_cli_cmd_parse("DISABLE_NETWORK", reply, STA_BUF_SIZE))
+ {
+ if(strlen(reply) > 0)
+ {
+ LOGE("reply data(%s).\n",reply);
+ }else
+ {
+ LOGE("No reply data\n");
+ }
+ }
+ else
+ {
+ LOGE("Parse cmd fail.\n");
+ }
+
+ if(sta_cli_cmd_parse("REMOVE_NETWORK", reply, STA_BUF_SIZE))
+ {
+ if(strlen(reply) > 0)
+ {
+ LOGE("reply data(%s).\n",reply);
+ }else
+ {
+ LOGE("No reply data\n");
+ }
+ }
+ else
+ {
+ LOGE("Parse cmd fail.\n");
+ }
+
+ return 0;
+}
+
+int qser_wifi_sta_get_status(lynq_wifi_sta_status_t *status_stat)
+{
+ char reply[STA_BUF_SIZE];
+ int i = 0, j = 0;
+ int status_flag = 0;
+
+ if(sta_cli_cmd_parse("STATUS", reply, STA_BUF_SIZE))
+ {
+ if(strlen(reply) > 0)
+ {
+ LOGE("reply data(%s).\n",reply);
+ }else
+ {
+ LOGE("No reply data\n");
+ }
+ }
+ else
+ {
+ LOGE("Parse cmd fail.\n");
+ }
+
+
+ for(i = 0; i < strlen(reply); i++)
+ {
+ if(',' == reply[i])
+ {
+ j = 0;
+ status_flag++;
+ continue;
+ }
+
+ if(0 == status_flag)
+ {
+ status_stat->status = 4;
+ j++;
+ }
+ else if(1 == status_flag)
+ {
+ status_stat->ap_bssid[j] = reply[i];
+ j++;
+ }
+ else if(2 == status_flag)
+ {
+ status_stat->ifname[j] = reply[i];
+ j++;
+ }
+ else if(8 == status_flag)
+ {
+ status_stat->has_addr = '1';
+ status_stat->addr[0].addr[j] = reply[i];
+ j++;
+ }
+
+
+
+ }
+ LOGE("state:%d, ap_bssid:%s, ifname:%s, has_addr:%c, addr:%s\n", status_stat->status, status_stat->ap_bssid, status_stat->ifname, status_stat->has_addr,
+ status_stat->addr[0].addr);
+
+ return 0;
+
+}
+
+
+
+int qser_wifi_register_handle(lynq_wifi_event_handle event_handle, lynq_wifi_event_handle_sta event_handle_sta, void *arg)
+{
+
+
+ if(NULL != event_handle_sta)
+ {
+ g_event_handle_sta_cb = event_handle_sta;
+
+ }
+
+ return 0;
+}
+
+
+int qser_wifi_sta_start_scan(void)
+{
+ char reply[STA_BUF_SIZE] = {0};
+ lynq_wifi_sta_scan_list_t scan_list = {0};
+ int i = 0, j = 0;
+ int status_flag = 0;
+
+ if(sta_cli_cmd_parse("SCAN", reply, STA_BUF_SIZE))
+ {
+ if(strlen(reply) > 0)
+ {
+ LOGE("reply data(%s).\n",reply);
+ }else
+ {
+ LOGE("No reply data\n");
+ }
+ }
+ else
+ {
+ LOGE("Parse cmd fail.\n");
+ }
+
+
+
+ scan_list.cnt = 1;
+
+ for(i = 0; i < strlen(reply); i++)
+ {
+ if(',' == reply[i])
+ {
+ j = 0;
+ status_flag++;
+ continue;
+ }
+
+ if(0 == status_flag)
+ {
+ scan_list.info[0].bssid[j] = reply[i];
+ j++;
+ }
+ else if(1 == status_flag)
+ {
+ //scan_list.info[0].bssid = reply[i];
+ j++;
+ }
+ else if(2 == status_flag)
+ {
+ //scan_list.info[0].signal = atoi(reply[i]);
+ j++;
+ }
+ else if(4 == status_flag)
+ {
+ scan_list.info[0].essid[j] = reply[i];
+ j++;
+ }
+
+
+
+ }
+
+
+
+ g_event_handle_sta_cb(&scan_list);
+ return 0;
+}
+
+/*
+ void lynq_wifi_event_handle_demo(lynq_wifi_event_s *event, void *arg)
+ {
+ if(event->id == LYNQ_WIFI_EVENT_AP_STATION)
+ LOGE("[lynq-wifi-demo] %s:event-id = %d- %d\n", __func__, event->id, event->status);
+ else if(event->id == LYNQ_WIFI_EVENT_AP_STA_STATUS)
+ LOGE("[lynq-wifi-demo] %s:event-id = %d,%d,%s,%s\n", __func__, event->id,
+ event->ap_sta_info.connected, event->ap_sta_info.mac,event->ap_sta_info.hostname);
+ if(event->id == LYNQ_WIFI_EVENT_STA_STATUS)
+ LOGE("[lynq-wifi-demo] %s:event-id = %d- %d\n", __func__, event->id, event->status);
+ else
+ return;
+ }
+ */
+
+ void lynq_wifi_event_handle_sta_demo(lynq_wifi_sta_scan_list_t *event)
+ {
+ int i = 0;
+ for (i = 0; i < event->cnt; i++)
+ {
+ LOGE("[lynq-wifi-demo] %s : ap[%d]:%s,%d,%d,%d,%s,%d,%d,%d\n", __func__, i,
+ event->info[i].essid, event->info[i].auth,
+ event->info[i].cipher, event->info[i].channel, event->info[i].bssid,
+ event->info[i].signal_level,event->info[i].frequency,event->info[i].signal);
+ }
+ }
+
+
+
+
+
+/*
+
+int qser_wifi_work_mode_set(lynq_wifi_work_mode_e type)
+{
+
+}
+
+
+int qser_wifi_work_mode_get(lynq_wifi_work_mode_e *type)
+{
+
+}
+
+int qser_wifi_register_handle(lynq_wifi_event_handle event_handle, lynq_wifi_event_handle_staevent_handle_sta, void *arg)
+{
+
+}
+
+
+int qser_wifi_get_sta_pkt_stats(lynq_wifi_pkt_stats_t *pkt_stat)
+{
+
+}
+
+int qser_wifi_sta_start_scan(void)
+{
+
+}
+
+*/
+
+
+