[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit
Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/app/zte_comm/wlan/softap_test.c b/ap/app/zte_comm/wlan/softap_test.c
new file mode 100755
index 0000000..fd53f25
--- /dev/null
+++ b/ap/app/zte_comm/wlan/softap_test.c
@@ -0,0 +1,231 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <getopt.h>
+#include <time.h>
+#include <wifi_msg.h>
+#include "softap_api.h"
+#include <wifi_util.h>
+
+
+#include "wifi_util.h"
+/*
+static char * g_short_string = "u:b:s:d:h";
+
+static struct option g_long_options[] = {
+ {"upgrade", required_argument, NULL, 'u'},
+ {"boot", required_argument, NULL, 'b'},
+ {"status", required_argument, NULL, 's'},
+ {"debug", required_argument, NULL, 'd'},
+ {"help", no_argument, NULL, 'h'},
+};
+
+static option_handle_t g_option_handle[] = {
+ {'u', excute_command_upgrade},
+ {'b', excute_command_boot},
+ {'s', excute_command_status},
+ {'d', excute_command_debug},
+ {'h', excute_command_help}
+};
+
+*/
+
+int msg_queue_id = 0;
+
+
+void usage (void)
+{
+ printf ("cmd list: "
+ " open open wifi\n"
+ " close close wifi\n"
+ " results display the scan results\n"
+ " mmi display scan list to simulate watch mmi\n"
+ " help dispaly this message\n"
+ " scan send scan cmd\n"
+ " conn connect the ap specified by the index of scan list ,and need input the password\n"
+ " forget disconnect and forget the ap\n"
+ " dump dump the content of the global variable in wlan_manager\n"
+ " cmd you can send a wpa_supplicant cmd directly\n");
+}
+
+wlan_mac_info_list g_mac_list;
+
+static void process_msg(MSG_BUF *pMsg)
+{
+ switch (pMsg->usMsgCmd) {
+ case MSG_CMD_WIFI_SET_ON_RSP:
+ {
+ printf("MSG_CMD_WIFI_SET_ON_RSP\n");
+ break;
+ }
+ case MSG_CMD_WIFI_SET_OFF_RSP:
+ {
+ printf("MSG_CMD_WIFI_SET_OFF_RSP\n");
+ break;
+ }
+
+ case MSG_CMD_WIFI_SET_SECURITY_RSP:
+ {
+ printf("MSG_CMD_WIFI_SET_SECURITY_RSP\n");
+
+ break;
+ }
+
+ case MSG_CMD_WIFI_GET_USER_LIST_RSP:
+ {
+ wlan_mac_info_list *list = (wlan_mac_info_list*)pMsg->aucDataBuf;
+ printf("MSG_CMD_WIFI_GET_USER_LIST_RSP\n");
+ printf("hostname=%s,mac=%s",list->mac_info[0].hostname,list->mac_info[0].mac );
+ memcpy(&g_mac_list, &pMsg->aucDataBuf, sizeof(wlan_mac_info_list));
+ break;
+ }
+
+ case MSG_CMD_WIFI_GET_STATE_RSP:
+ {
+ printf("MSG_CMD_WIFI_GET_STATE_RSP\n");
+ break;
+ }
+ case MSG_CMD_WIFI_GET_INFO_RSP:
+ {
+ printf("MSG_CMD_WIFI_GET_INFO_RSP\n");
+ break;
+ }
+ default:
+ break;
+ }
+
+}
+
+void dump_spot_list()
+{
+ int i = 0;
+ printf("%-8s%-32s%-20s\n","id","hostname","mac");
+ for(i = 0; i< g_mac_list.access_count; i++){
+ wlan_mac_info *info = &g_mac_list.mac_info[i];
+ printf("%-8d%-32s%-20s\n",i, info->hostname, info->mac);
+ }
+}
+
+int mmi_display_loop = 0;
+
+
+
+static void *mmi_loop (void *param)
+{
+ MSG_BUF wlanMsg ={0};
+ char name[32] = {0};
+ int ret = -1;
+
+ strcpy (name, (char*) param);
+ prctl (PR_SET_NAME, name, 0, 0, 0);
+
+ while (1) {
+ if(0 == mmi_display_loop)break;
+ dump_spot_list();
+ sleep(1);
+ printf("\033[2J");//clear screen
+ printf("\033[0;0H");//locate cursor to head
+ }
+
+ return NULL;
+}
+void mmi_display()
+{
+ mmi_display_loop = 1;
+
+ wf_create_thread ("mmi_loop", mmi_loop);
+
+ while(1){
+ char cmd;
+ scanf("%c", &cmd);
+ if(cmd == 'q'){
+ mmi_display_loop = 0;
+ break;
+ }
+ }
+
+ return;
+}
+
+static void *station_loop (void *param)
+{
+ MSG_BUF wlanMsg ={0};
+ char name[32] = {0};
+ int ret = -1;
+
+ strcpy (name, (char*) param);
+ prctl (PR_SET_NAME, name, 0, 0, 0);
+
+ while (1) {
+ memset (&wlanMsg, 0, sizeof (MSG_BUF));
+ ret = msgrcv (msg_queue_id, &wlanMsg, sizeof (MSG_BUF) - sizeof (LONG), 0, 0);
+ if (ret == -1) {
+ continue;
+ }
+ process_msg (&wlanMsg);
+
+ }
+
+ return NULL;
+}
+
+
+int main (int argc, char *argv[])
+{
+ int c=0;
+ int iRet = -1;
+ char cmd[128]={0};
+
+ msg_queue_id = wf_create_msg_qid (MODULE_ID_WLAN_SERVER);
+ wf_create_thread ("ap-mmi", station_loop);
+ printf("rda_ap_mmi v1.0\n"
+ "please use results, conn, disc three cmd to control it\n\n");
+
+ for (;;) {
+
+ printf(">>");
+ scanf("%s", cmd);
+
+ if(!strcmp(cmd, "open")){
+ wf_msg_to_self(MSG_CMD_WIFI_SET_ON_REQ, 0, NULL);
+ }
+ else if(!strcmp(cmd, "close")){
+ wf_msg_to_self(MSG_CMD_WIFI_SET_OFF_REQ, 0, NULL);
+ }
+ else if(!strcmp(cmd, "auth")){
+ wlan_basic_info wbi={0};
+ printf("ssid=");
+ scanf("%s", wbi.ssid);
+ printf("authmode=");
+ scanf("%s", wbi.authmode);
+ printf("pwd=");
+ scanf("%s", wbi.pwd);
+
+ wf_msg_to_self(MSG_CMD_WIFI_SET_SECURITY_REQ, sizeof(wlan_basic_info), &wbi);
+ }
+ else if(!strcmp(cmd, "list")){
+ wf_msg_to_self(MSG_CMD_WIFI_GET_USER_LIST_REQ, 0, NULL);
+ }
+
+ else if(!strcmp(cmd, "mmi")){
+ mmi_display();
+ }
+ else if(!strcmp(cmd, "help")){
+ usage();
+ }
+ else if(!strcmp(cmd, "exit") || !strcmp(cmd, "q")){
+ exit(0);
+ }
+
+ printf("done\n");
+ }
+
+
+ return 0;
+}