[Feature] add wifi image and wifi api

Change-Id: I7db8d18376f03e16cc3db2334349575b09ba87e6
diff --git a/lib/liblynq-wifi6/include/libwifi6.h b/lib/liblynq-wifi6/include/libwifi6.h
index 83b62d2..76767b3 100755
--- a/lib/liblynq-wifi6/include/libwifi6.h
+++ b/lib/liblynq-wifi6/include/libwifi6.h
@@ -1,3 +1,11 @@
+/**@File libwifi6.h
+*  @Brief :about function test
+*  @details :
+*  @Author : qs.xiong
+*  @Date : 2022-3-14
+*  @Version : V1.0
+*  @copy ritght : Copyright (c) MobileTek
+*/
 #ifndef __LIBWIFI6_H__
 #define __LIBWIFI6_H__
 
@@ -23,10 +31,6 @@
 	LYNQ_WIFI_STA_AUTH_WPA_PSK,
 }lynq_wifi_sta_auth_m;
 
-typedef enum {
-	LYNQ_WIFI_STA_CONNECT = 0,
-	LYNQ_WIFI_STA_DISCONNECT,
-}lynq_wifi_station_status_m;
 
 int lynq_wifi_enable(void);
 int lynq_wifi_disable(void);
diff --git a/lib/liblynq-wifi6/libwifi6.c b/lib/liblynq-wifi6/libwifi6.c
index c4156e5..d959554 100755
--- a/lib/liblynq-wifi6/libwifi6.c
+++ b/lib/liblynq-wifi6/libwifi6.c
@@ -1,39 +1,50 @@
+/**@File lib_wifi6.c
+*  @Brief :about function test
+*  @details :
+*  @Author : qs.xiong
+*  @Date : 2022-3-14
+*  @Version : V1.0
+*  @copy ritght : Copyright (c) MobileTek
+*/
+#include <log/log.h>
 #include <stdio.h>
 #include <sys/types.h>
 #include <string.h>
-
+#include <stdlib.h>
+#include <stdlib.h>
 #include "libwifi6.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
 
 #define MAX_CMD 128
 #define MAX_RET 1024
-char LYNQ_WIFI_OK[3]="OK";
-char WIFI_SSID[32]={0};
-char WIFI_MODE[8]={0};
-char WIFI_KEY_MGMT[36]={0};
-char WIFI_CHANNEL[8]={0};
-char WIFI_BANDWIDTH[8]={0};
-char MAX_STA_NUM[24]={0};
-
-int lynq_wifi_enable(void){
-	char lynq_cmd_ret[MAX_RET]={0};
+char g_lynq_wifi_ok[3]="OK";
+char g_wifi_ssid[32]="";
+char g_wifi_mode[8]="";
+char g_wifi_key_mgmt[36]="";
+char g_wifi_channel[8]="";
+char g_wifi_bandwidth[8]="";
+char g_max_sta_num[24]="";
+int lynq_wifi_enable(void)
+{
 	char *lynq_wifi_enable[]={"insmod /lib/modules/4.19.98/kernel/drivers/net/wireless/bcmdhd/bcmdhd.ko "
-		"firmware_path=/system/etc/firmware/wifi/wg870/w870_rtecdc_mfg.trxs "
-		"nvram_path=/system/etc/firmware/wifi/wg870/cyw955572fcipa_rev2.52.txt"};
-	FILE *fp;
-	if((popen(lynq_wifi_enable[0],"w"))==NULL){
-		perror("popen error!");
+			"firmware_path=/system/etc/firmware/wifi/wg870/w870_rtecdc_mfg.trxs "
+			"nvram_path=/system/etc/firmware/wifi/wg870/cyw955572fcipa_rev2.52.txt"};
+
+	if(system(lynq_wifi_enable[0])==-1){
 		return -1;
 		}
-	int ret=pclose(fp);
-	if(ret==-1){
-		perror("close file faild");
-		return -1;
-		}
+
 	return 0;
 }
 
-int lynq_wifi_disable(void){
+int lynq_wifi_disable(void)
+{
 	FILE *fp;
 	if((popen("rmmod bcmdhd.ko","w"))==NULL){
 		perror("poepn error!");
@@ -50,21 +61,22 @@
 int lynq_wifi_work_mode_set(int mode)
 {	
 	FILE *fp;
+
 	switch(mode){
 		case LYNQ_WIFI_WORK_MODE_STA:
-			if((fp=popen("IFNAME=wlan0 status","r"))==NULL){
+			if((fp=popen("wpa_cli -iwlan0 -p/var/run/wpa_supplicant remove_net all","r"))==NULL){
 				perror("popen error!");
 				return -1;
 			}
 			break;
 		case LYNQ_WIFI_WORK_MODE_AP:
-			if((fp=popen("IFNAME=wlan0 status","r"))==NULL){
+			if((fp=popen("wpa_cli -iwlan0 -p/var/run/wpa_supplicant remove_net all","r"))==NULL){
 				perror("popen error!");
 				return -1;
 			}
 			break;
 		case LYNQ_WIFI_WORK_MODE_AP_STA:
-			if((fp=popen("IFNAME=wlan0 status","r"))==NULL){
+			if((fp=popen("wpa_cli -iwlan0 -p/var/run/wpa_supplicant remove_net all","r"))==NULL){
 				perror("popen error!");
 				return -1;
 			}
@@ -77,29 +89,29 @@
 
 int lynq_wifi_work_mode_get(void)
 {
-	char *lynq_wifi_ssid_cmd[]={"IFNAME=wlan0 status"};
+
+	char *lynq_wifi_ssid_cmd[]={"wpa_cli -iwlan0 -p/var/run/wpa_supplicant status"};
 	char lynq_cmd_ret[MAX_RET]={0}; 
 	char *strcn="mode=";
 	
-	FILE *fp;	
-	printf("%s \n",lynq_wifi_ssid_cmd[0]);	
-	if((fp=popen(lynq_wifi_ssid_cmd[0],"r"))==NULL){		
-		perror("popen error!"); 	
-		printf("***************\n");		
+	FILE *fp;		
+
+	if ((fp=popen(lynq_wifi_ssid_cmd[0],"r"))==NULL){				
 		return -1;	
-		}	
-	while(1){		
-		if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))!=NULL){			
-			printf("cmd_ret is:%s",lynq_cmd_ret);			
-			if((strncmp(lynq_cmd_ret,strcn,5))==0)			
-				{										
-					sscanf(lynq_cmd_ret,"%*[^=]=%s",WIFI_MODE);										
-					}					
-			}		
-		if(feof(fp)){			
-			break;			
-			}			
-		}	
+		}
+
+	while(1){
+        if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))!=NULL){
+			if((strncmp(lynq_cmd_ret,strcn,5))==0)
+				{
+					sscanf(lynq_cmd_ret,"%*[^=]=%s",g_wifi_mode);
+					}
+			}
+		if(feof(fp)){
+			break;
+			}
+		}
+
 	if((pclose(fp))==-1){		
 		perror("close file faild"); 	
 		return -1;	
@@ -115,16 +127,17 @@
 	char lynq_cmd_ret[MAX_CMD]={0};
 	char *lynq_wifi_ssid_cmd[]={"IFNAME=wlan0 set_network 0 ssid "};
 	char lynq_cmd_save[]="IFNAME=wlan0 save_config\n";
+
 	sprintf(lynq_tmp_cmd,"%s%s%s%s%s",lynq_wifi_ssid_cmd[0],"\"",ssid,"\"","\n");
 
 	if((fp=popen("/usr/bin/wpa_cli -iwpa_wlan0_cmd -p/var/run/","w"))==NULL){
 			perror("popen error!");
 			return -1;
 		}
-	for(int i=0;i<1;i++){
-		fwrite(lynq_tmp_cmd,sizeof(lynq_tmp_cmd),1,fp);
-		fwrite(lynq_cmd_save,sizeof(lynq_cmd_save),1,fp);		
-	}
+
+	fwrite(lynq_tmp_cmd,sizeof(lynq_tmp_cmd),1,fp);
+	fwrite(lynq_cmd_save,sizeof(lynq_cmd_save),1,fp);
+
 	int ret=pclose(fp);
 		if(ret==-1){
 			perror("close file faild");
@@ -136,34 +149,33 @@
 
 int lynq_wifi_ap_ssid_get(void)
 {
-	char *lynq_wifi_ssid_cmd[]={"IFNAME=wlan0 status"};
+	FILE *fp;	
+	char *lynq_wifi_ssid_cmd[]={"wpa_cli -iwlan0 -p/var/run/wpa_supplicant status"};
 	char lynq_cmd_ret[MAX_RET]={0}; 
 	char *strcn="ssid=";
 	
-	FILE *fp;	
-	printf("%s \n",lynq_wifi_ssid_cmd[0]);	
 	if((fp=popen(lynq_wifi_ssid_cmd[0],"r"))==NULL){		
 		perror("popen error!"); 			
 		return -1;	
 		}	
 	while(1){		
-		if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))!=NULL){			
-			printf("cmd_ret is:%s",lynq_cmd_ret);			
-			if((strncmp(lynq_cmd_ret,strcn,5))==0)			
-				{										
-					sscanf(lynq_cmd_ret,"%*[^=]=%s",WIFI_SSID);										
-					}					
-			}		
-		if(feof(fp)){			
-			break;			
-			}			
-		}	
-	if((pclose(fp))==-1){		
-		perror("close file faild"); 	
-		return -1;	
-		}	
-	return 0;
+		if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))!=NULL){		
+			if((strncmp(lynq_cmd_ret,strcn,5))==0)
+				{	
+					sscanf(lynq_cmd_ret,"%*[^=]=%s",g_wifi_ssid);
+				}
+			}
+		if(feof(fp)){
+			break;
+			}
+		}
 
+	if((pclose(fp))==-1){
+		perror("close file faild");
+		return -1;
+		}
+
+	return 0;
 }
 
 int lynq_wifi_ap_bandwidth_set(char *bandwidth)
@@ -182,42 +194,39 @@
 			perror("popen error!");
 			return -1;
 		}
-	for(int i=0;i<1;i++){
-		fwrite(lynq_tmp_cmd,sizeof(lynq_tmp_cmd),1,fp);
-		fwrite(lynq_cmd_mode,sizeof(lynq_cmd_mode),1,fp);
-		fwrite(lynq_cmd_save,sizeof(lynq_cmd_save),1,fp);
-		fwrite(lynq_cmd_slect,sizeof(lynq_cmd_slect),1,fp);
-
-		}
 	
+	fwrite(lynq_tmp_cmd,sizeof(lynq_tmp_cmd),1,fp);
+	fwrite(lynq_cmd_mode,sizeof(lynq_cmd_mode),1,fp);
+	fwrite(lynq_cmd_save,sizeof(lynq_cmd_save),1,fp);
+	fwrite(lynq_cmd_slect,sizeof(lynq_cmd_slect),1,fp);
+
 	int ret=pclose(fp);
 	if(ret==-1){
 			perror("close file faild");
 			return -1;
 		}
 
-	return 0;
 
+	return 0;
 }
 
 int lynq_wifi_ap_bandwidth_get(void)
 {
+	FILE *fp;
 	char *lynq_wifi_bandwidth_cmd[]={"wl -i wlan0 status"};
 	char lynq_cmd_ret[MAX_RET]={0}; 
 	char *strcn="        Chanspec:";
 	
-	FILE *fp;	
-	printf("%s \n",lynq_wifi_bandwidth_cmd[0]);	
-	if((fp=popen(lynq_wifi_bandwidth_cmd[0],"r"))==NULL){		
+	if((fp=popen(lynq_wifi_bandwidth_cmd[0],"w"))==NULL){		
 		perror("popen error!");		
 		return -1;	
 		}	
 	while(1){		
 		if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))!=NULL){			
-			printf("cmd_ret is:%s",lynq_cmd_ret);			
+					
 			if((strncmp(lynq_cmd_ret,strcn,17))==0)			
 				{										
-					strncpy(WIFI_BANDWIDTH,lynq_cmd_ret+34,5);												
+					strncpy(g_wifi_bandwidth,lynq_cmd_ret+34,5);												
 				}					
 			}		
 		if(feof(fp)){			
@@ -238,16 +247,17 @@
 
 	char lynq_tmp_cmd[MAX_CMD]={0};
 	char *lynq_channel_cmd[]={"wl down","wl chanspec ","wl up"}; 
+
 	sprintf(lynq_tmp_cmd,"%s%s",lynq_channel_cmd[1],channel);
 	lynq_channel_cmd[1]=lynq_tmp_cmd;
 	memset(lynq_tmp_cmd,0,sizeof(lynq_tmp_cmd));
 	sprintf(lynq_tmp_cmd,"%s%s%s%s%s%s",lynq_channel_cmd[0],"\n",lynq_channel_cmd[1],"\n",lynq_channel_cmd[2],"\n");
-	printf("into lynq_wifi_ap_channel_set function \n");
-	printf("lynq_tmp_cmd is %s\n",lynq_tmp_cmd);
+	
 	if((fp=popen(lynq_tmp_cmd,"w"))==NULL){
 			perror("popen error!");
 			return -1;
 		}			
+
 	int ret=pclose(fp);
 	if(ret==-1){
 		perror("close file faild");
@@ -259,33 +269,30 @@
 
 int lynq_wifi_ap_channel_get(void)
 {
-	char *lynq_wifi_channel_cmd[]={"wl -i wlan0 status"};
-	char lynq_cmd_ret[MAX_RET]={0}; 
-	char *strcn="        Primary channel: ";
-	
-	FILE *fp;	
-	printf("%s \n",lynq_wifi_channel_cmd[0]);	
-	if((fp=popen(lynq_wifi_channel_cmd[0],"r"))==NULL){		
-		perror("popen error!"); 	
-		printf("***************\n");		
-		return -1;	
-		}	
-	while(1){		
-		if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))!=NULL){			
-			printf("cmd_ret is:%s",lynq_cmd_ret);			
-			if((strncmp(lynq_cmd_ret,strcn,24))==0)			
-				{										
-					strncpy(WIFI_CHANNEL,lynq_cmd_ret+24,3);												
-				}					
-			}		
-		if(feof(fp)){			
-			break;			
-			}			
-		}	
-	if((pclose(fp))==-1){		
-		perror("close file faild"); 	
-		return -1;	
-		}	
+		
+	char lynq_cmd_ret[MAX_RET]={0}; 	
+	char *strcn="        Primary channel: ";		
+	FILE *fp;		
+	if((fp=popen("wl -i wlan0 status","r"))==NULL){ 			
+		perror("popen error!");			
+		return -1;
+		}
+	while(1){
+		if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))!=NULL){
+			if((strncmp(lynq_cmd_ret,strcn,24))==0)
+				{
+				strncpy(g_wifi_channel,lynq_cmd_ret+24,3);
+				}
+			}
+		if(feof(fp)){
+			break;
+			}
+		}
+	if((pclose(fp))==-1){
+		perror("close file faild");	
+		return -1;
+		}
+
 	return 0;
 }
 
@@ -325,8 +332,6 @@
 			char lynq_auth_save[]="IFNAME=wlan0 save_config\n";
 			sprintf(lynq_tmp_cmd,"%s%s%s",lynq_auth_cmd[0],lynq_auth,"\n");
 			
-
-			
 			if((fp=popen("/usr/bin/wpa_cli -iwpa_wlan0_cmd -p/var/run/","w"))==NULL){
 				perror("popen error!");
 				return -1;
@@ -355,59 +360,62 @@
 
 int lynq_wifi_ap_auth_get(void)
 {
-	char *lynq_wifi_ssid_cmd[]={"IFNAME=wlan0 status"};
+	char *lynq_wifi_ssid_cmd[]={"wpa_cli -iwlan0 -p/var/run/wpa_supplicant status"};
 	char lynq_cmd_ret[MAX_RET]={0}; 
 	char *strcn="key_mgmt=";
 	
-	FILE *fp;	
-	printf("%s \n",lynq_wifi_ssid_cmd[0]);	
-	if((fp=popen(lynq_wifi_ssid_cmd[0],"r"))==NULL){		
-		perror("popen error!"); 	
-		printf("***************\n");		
+	FILE *fp;
+	if((fp=popen(lynq_wifi_ssid_cmd[0],"r"))==NULL){
+		perror("popen error!");
 		return -1;	
 		}	
 	while(1){		
-		if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))!=NULL){			
-			printf("cmd_ret is:%s",lynq_cmd_ret);			
-			if((strncmp(lynq_cmd_ret,strcn,9))==0)			
-				{										
-					sscanf(lynq_cmd_ret,"%*[^=]=%s",WIFI_KEY_MGMT);													
-				}					
-			}		
-		if(feof(fp)){			
-			break;			
-			}			
-		}	
-	if((pclose(fp))==-1){		
-		perror("close file faild"); 	
-		return -1;	
-		}	
-	return 0;
+		if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))!=NULL){
+			printf("cmd_ret is:%s",lynq_cmd_ret);
+			if((strncmp(lynq_cmd_ret,strcn,9))==0)
+				{
+					sscanf(lynq_cmd_ret,"%*[^=]=%s",g_wifi_key_mgmt);
+				}
+			}
+		if(feof(fp)){
+			break;
+			}
+		}
+	if((pclose(fp))==-1){
+		perror("close file faild");
+		return -1;
+		}
 
+	return 0;
 }
 
 int lynq_wifi_ap_max_sta_set(char *max_sta_num)
 {	
-	
 	FILE * fp;
 	char lynq_cmd_ret[MAX_RET]={0};
 	char lynq_tmp_cmd[MAX_CMD]={0};
 	char *lynq_max_sta_cmd[]={"wl maxassoc "};
 	sprintf(lynq_tmp_cmd,"%s%s%s",lynq_max_sta_cmd[0],max_sta_num,"\n");
 	lynq_max_sta_cmd[0]=lynq_tmp_cmd;
-	if((fp=popen(lynq_max_sta_cmd[0],"w"))==NULL){
+
+	if((fp=popen(lynq_max_sta_cmd[0],"w"))==NULL)
+	{
 		perror("popen error!");
 		return -1;
 	}
-	if((fread(lynq_cmd_ret,sizeof(lynq_cmd_ret),1,fp))<0){
+	if((fread(lynq_cmd_ret,sizeof(lynq_cmd_ret),1,fp))<0)
+	{
 		perror("fread fail!");
 		return -1;
 	}
+
 	int ret=pclose(fp);
-	if(ret==-1){
+	if(ret==-1)
+	{
 		perror("close file faild");
 		return -1;
 	 }
+
 	return 0;
 }
 
@@ -415,45 +423,52 @@
 {
 	FILE *fp;
 	char lynq_cmd_ret[MAX_RET]={0};
-	if((fp=popen("wl maxassoc","r"))==NULL){
+
+	if((fp=popen("wl maxassoc","r"))==NULL)
+		{
 			perror("popen error!");
 			return -1;
 		}
-	if((fread(lynq_cmd_ret,sizeof(lynq_cmd_ret),1,fp))<0){
+	if((fread(lynq_cmd_ret,sizeof(lynq_cmd_ret),1,fp))<0)
+	{
 		perror("fread fail!");
 		return -1;
 	}
-	strcpy(MAX_STA_NUM,lynq_cmd_ret);
+	strcpy(g_max_sta_num,lynq_cmd_ret);
+
 	int ret=pclose(fp);
-	if(ret==-1){
+	if(ret==-1)
+	{
 		perror("close file faild");
 		return -1;
-		}
+	}
+
 	return 0;
 }
 
 int lynq_wifi_ap_start(void)
 {
 	FILE *fp;
-	char lynq_cmd_ret[MAX_CMD]={0};
-	if((fp=popen("IFNAME=wlan0 enable_net 0","r"))==NULL){
+	char LYNQ_CMD_RET[MAX_CMD]={0};
+
+	if((fp=popen("wpa_cli -iwlan0 -p/var/run/wpa_supplicant enable_net 0","r"))==NULL)
+		{
 			perror("popen error!");
 			return -1;
 		}
-	if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))==NULL){
-		perror("fgets fail!");
-		return -1;
-		}
-	if((strncmp(lynq_cmd_ret,LYNQ_WIFI_OK,2))==0){
-		printf("cmd is work\n");
-	}else{
-		printf("cmd isn't work please check your cmd\n");
-		}
 	
+	fgets(LYNQ_CMD_RET,sizeof(LYNQ_CMD_RET),fp);
+	
+	if((strncmp(LYNQ_CMD_RET,g_lynq_wifi_ok,sizeof(g_lynq_wifi_ok)))!=0)
+		{
+			return -1;
+		}	
+
 	int ret=pclose(fp);
-	if(ret==-1){
-		perror("close file faild");
-		return -1;
+	if(ret==-1)
+		{
+			perror("close file faild");
+			return -1;
 		}
 
 	return 0;
@@ -461,34 +476,21 @@
 
 int lynq_wifi_ap_restart(void)
 {
-	FILE *fp;
-	char lynq_tmp_cmd[MAX_CMD]={0};
-	char lynq_cmd_ret[MAX_CMD]={0};
-	char *lynq_wifi_restart_cmd[]={"IFNAME=wlan0 disable_net 0 ","IFNAME=wlan0 enable_net 0"};	
-	lynq_wifi_restart_cmd[0]=lynq_tmp_cmd;
+	int lynq_stop;
+	int lynq_start;
+
+	lynq_stop = lynq_wifi_ap_stop();
+	if ( lynq_stop != 0 )
+	{
+		return -1;
+	}
+		
+	lynq_start = lynq_wifi_ap_start();
+	if ( lynq_start != 0 )
+	{
+		return -1;
+	}
 	
-	for(int i=0;i<2;i++){
-		if((fp=popen(lynq_wifi_restart_cmd[i],"r"))==NULL){
-				perror("popen error!");
-				return -1;
-			}
-		if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))==NULL){
-				perror("fgets fail!");
-				return -1;
-			}
-		if((strncmp(lynq_cmd_ret,LYNQ_WIFI_OK,2))==0){
-				printf("cmd is work\n");
-			}else{
-					printf("cmd isn't work please check your cmd\n");
-					}
-		memset(lynq_cmd_ret,0,sizeof(lynq_cmd_ret));
-	
-		int ret=pclose(fp);
-		if(ret==-1){
-			perror("close file faild");
-			return -1;
-			}
-		}
 	return 0;
 
 }
@@ -496,39 +498,39 @@
 int lynq_wifi_ap_stop(void)
 {
 	FILE *fp;
-	char lynq_cmd_ret[MAX_CMD]={0};
-	if((fp=popen("IFNAME=wlan0 disable_net 0","r"))==NULL){
+	char LYNQ_CMD_RET[MAX_CMD]={0};
+
+	if( (fp=popen("wpa_cli -iwlan0 -p/var/run/wpa_supplicant disable_net 0","r")) == NULL ){
 			perror("popen error!");
 			return -1;
 		}
-	if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))==NULL){
-		perror("fgets fail!");
-		return -1;
-	}
-	if((strncmp(lynq_cmd_ret,LYNQ_WIFI_OK,2))==0){
-		printf("cmd is work\n");
-	}else{
-		printf("cmd isn't work please check your cmd\n");
-		}
+		
+	fgets( LYNQ_CMD_RET,sizeof(LYNQ_CMD_RET),fp );
+		
+	if((strncmp(LYNQ_CMD_RET,g_lynq_wifi_ok,sizeof(g_lynq_wifi_ok)))!=0){
+			return -1;
+		}	
 	
 	int ret=pclose(fp);
 	if(ret==-1){
 		perror("close file faild");
 		return -1;
 		}
-
+	
 	return 0;
 }
+
 int lynq_wifi_ap_hide_ssid(void)
 {
 	FILE *fp;
+	char lynq_disable_cmd[]="IFNAME=wlan0 disable_net 0\n";
+	char lynq_hide_cmd[]="IFNAME=wlan0 SET HIDE_SSID 1\n";
+	char lynq_select_cmd[]="IFNAME=wlan0 select_net 0\n";
+	
 	if((fp=popen("/usr/bin/wpa_cli -iwpa_wlan0_cmd -p/var/run/","w"))==NULL){
 		perror("popen error!");
 		return -1;
 	}
-	char lynq_disable_cmd[]="IFNAME=wlan0 disable_net 0\n";
-	char lynq_hide_cmd[]="IFNAME=wlan0 SET HIDE_SSID 1\n";
-	char lynq_select_cmd[]="IFNAME=wlan0 select_net 0\n";
 
 	fwrite(lynq_disable_cmd,sizeof(lynq_disable_cmd),1,fp);
 	fwrite(lynq_hide_cmd,sizeof(lynq_hide_cmd),1,fp);
@@ -539,7 +541,8 @@
 		perror("close file faild");
 		return -1;
 		}	
-		return 0;
+
+	return 0;
 }
 
 int lynq_wifi_ap_unhide_ssid(void)
@@ -556,8 +559,7 @@
 	fwrite(lynq_disable_cmd,sizeof(lynq_disable_cmd),1,fp);
 	fwrite(lynq_unhide_cmd,sizeof(lynq_unhide_cmd),1,fp);
 	fwrite(lynq_select_cmd,sizeof(lynq_select_cmd),1,fp);
-		
-		
+				
 	int ret=pclose(fp);
 	if(ret==-1){
 		perror("close file faild");
@@ -612,10 +614,9 @@
 				perror("popen error!");
 				return -1;
 			}
-		if((strncmp(lynq_cmd_ret,LYNQ_WIFI_OK,2))==0){
-				printf("cmd is work\n");
+		if((strncmp(lynq_cmd_ret,g_lynq_wifi_ok,2))==0){
 			}else{
-				printf("cmd isn't work please check your cmd\n");
+				return -1;
 				}
 	
 		int ret=pclose(fp);
@@ -624,12 +625,13 @@
 			return -1;
 		}
 	}
+	
 	return 0;
 }
 
 int lynq_wifi_sta_ssid_get(void)
 {
-	char *lynq_wifi_ssid_cmd[]={"IFNAME=wlan0 status"};
+	char *lynq_wifi_ssid_cmd[]={"wpa_cli -iwlan0 -p/var/run/wpa_supplicant status"};
 	char lynq_cmd_ret[MAX_RET]={0}; 
 	char *strcn="ssid=";
 	
@@ -641,14 +643,14 @@
 	while(1){		
 		if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))!=NULL){						
 			if((strncmp(lynq_cmd_ret,strcn,5))==0)			
-				{							
-					sscanf(lynq_cmd_ret,"%*[^=]=%s",WIFI_SSID);										
-					printf("ssid is :%s\n",WIFI_SSID);			
-					}					
+				{
+					sscanf(lynq_cmd_ret,"%*[^=]=%s",g_wifi_ssid);											
+				}					
 			}		
-		if(feof(fp)){			
+		if(feof(fp))
+		{			
 			break;			
-			}			
+		}			
 		}	
 	if((pclose(fp))==-1){		
 		perror("close file faild"); 	
@@ -660,53 +662,55 @@
 
 int lynq_wifi_sta_auth_set(int auth,char *lynq_auth)
 {
-		FILE *fp;
-		switch(auth){
-			case LYNQ_WIFI_STA_AUTH_OPEN:
+	FILE *fp;
+	switch(auth){
+		case LYNQ_WIFI_STA_AUTH_OPEN:
+		{
+			char lynq_cmd_ret[MAX_RET]={0};
+			if((fp=popen("/usr/bin/wpa_cli -iwpa_wlan0_cmd -p/var/run/","w"))==NULL)
 			{
-				char lynq_cmd_ret[MAX_RET]={0};
-				if((fp=popen("/usr/bin/wpa_cli -iwpa_wlan0_cmd -p/var/run/","w"))==NULL){
-					perror("popen error!");
-					return -1;
-				}
-				char lynq_auth_cmd[]="IFNAME=wlan0 set_net 0 key_mgmt NONE\n";
-				char lynq_auth_save[]="IFNAME=wlan0 save_config\n";
+				perror("popen error!");
+				return -1;
+			}
 
-				fwrite(lynq_auth_cmd,sizeof(lynq_auth_cmd),1,fp);
-				fwrite(lynq_auth_save,sizeof(lynq_auth_save),1,fp);
+			char lynq_auth_cmd[]="IFNAME=wlan0 set_net 0 key_mgmt NONE\n";
+			char lynq_auth_save[]="IFNAME=wlan0 save_config\n";
+
+			fwrite(lynq_auth_cmd,sizeof(lynq_auth_cmd),1,fp);
+			fwrite(lynq_auth_save,sizeof(lynq_auth_save),1,fp);
 			
-				int ret=pclose(fp);
-				if(ret==-1){
-					perror("close file faild");
-					return -1;
-					}
+			int ret=pclose(fp);
+			if(ret==-1)
+			{
+				perror("close file faild");
+				return -1;
+			}
 				break;
 			}
-			case LYNQ_WIFI_STA_AUTH_WPA_PSK:
+		case LYNQ_WIFI_STA_AUTH_WPA_PSK:
+		{
+			char lynq_tmp_cmd[MAX_CMD]={0};
+			char lynq_cmd_ret[MAX_CMD]={0};
+			char *lynq_auth_cmd[]={"wlan0 set_net 0 proto "};
+			char lynq_psk_cmd[]="IFNAME=wlan0 set_net 0 key_mgmt WPA-PSK\n";
+			char lynq_pairwise_cmd[]="IFNAME=wlan0 set_net 0 pairwise CCMP\n";
+			char lynq_auth_save[]="IFNAME=wlan0 save_config\n";
+			sprintf(lynq_tmp_cmd,"%s%s%s",lynq_auth_cmd[0],lynq_auth,"\n");
+						
+			if((fp=popen("/usr/bin/wpa_cli -iwpa_wlan0_cmd -p/var/run/","w"))==NULL)
 			{
-				char lynq_tmp_cmd[MAX_CMD]={0};
-				char lynq_cmd_ret[MAX_CMD]={0};
-				char *lynq_auth_cmd[]={"wlan0 set_net 0 proto "};
-			
-				char lynq_psk_cmd[]="IFNAME=wlan0 set_net 0 key_mgmt WPA-PSK\n";
-				char lynq_pairwise_cmd[]="IFNAME=wlan0 set_net 0 pairwise CCMP\n";
-				char lynq_auth_save[]="IFNAME=wlan0 save_config\n";
-				sprintf(lynq_tmp_cmd,"%s%s%s",lynq_auth_cmd[0],lynq_auth,"\n");
-			
+				perror("popen error!");
+				return -1;
+			}
 
-			
-				if((fp=popen("/usr/bin/wpa_cli -iwpa_wlan0_cmd -p/var/run/","w"))==NULL){
-					perror("popen error!");
-					return -1;
-				}
-
-				fwrite(lynq_tmp_cmd,sizeof(lynq_tmp_cmd),1,fp);
-				fwrite(lynq_psk_cmd,sizeof(lynq_psk_cmd),1,fp);
-				fwrite(lynq_pairwise_cmd,sizeof(lynq_pairwise_cmd),1,fp);
-				fwrite(lynq_auth_save,sizeof(lynq_auth_save),1,fp);
+			fwrite(lynq_tmp_cmd,sizeof(lynq_tmp_cmd),1,fp);
+			fwrite(lynq_psk_cmd,sizeof(lynq_psk_cmd),1,fp);
+			fwrite(lynq_pairwise_cmd,sizeof(lynq_pairwise_cmd),1,fp);
+			fwrite(lynq_auth_save,sizeof(lynq_auth_save),1,fp);
 		
 			int ret=pclose(fp);
-			if(ret==-1){
+			if(ret==-1)
+			{
 				perror("close file faild");
 				return -1;
 			}
@@ -717,39 +721,38 @@
 				return -1;
 				}
 	
-	
-		return 0;
-	}
+    return 0;
+}
 
 int lynq_wifi_sta_auth_get(void)
 {
-	char *lynq_wifi_auth_cmd[]={"IFNAME=wlan0 status"};
-	char lynq_cmd_ret[MAX_RET]={0}; 
+	char *lynq_wifi_auth_cmd[]={"wpa_cli -iwlan0 -p/var/run/wpa_supplicant status"};
+	char lynq_cmd_ret[MAX_RET]={0};
 	char *strcn="key_mgmt=";
 	
 	FILE *fp;	
-	printf("%s \n",lynq_wifi_auth_cmd[0]);	
-	if((fp=popen(lynq_wifi_auth_cmd[0],"r"))==NULL){		
-		perror("popen error!"); 	
-		printf("***************\n");		
-		return -1;	
-		}	
-	while(1){		
-		if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))!=NULL){			
-			printf("cmd_ret is:%s",lynq_cmd_ret);			
-			if((strncmp(lynq_cmd_ret,strcn,9))==0)			
-				{										
-					sscanf(lynq_cmd_ret,"%*[^=]=%s",WIFI_KEY_MGMT);													
-				}					
-			}		
-		if(feof(fp)){			
-			break;			
-			}			
-		}	
-	if((pclose(fp))==-1){		
-		perror("close file faild"); 	
-		return -1;	
-		}	
+	if((fp=popen(lynq_wifi_auth_cmd[0],"r"))==NULL){
+		perror("popen error!");
+		return -1;
+		}
+	while(1){
+		if((fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp))!=NULL)
+		{
+			if((strncmp(lynq_cmd_ret,strcn,9))==0)
+				{
+					sscanf(lynq_cmd_ret,"%*[^=]=%s",g_wifi_key_mgmt);
+				}
+			}
+		if(feof(fp)){
+			break;
+			}
+		}
+	if((pclose(fp))==-1)
+	{
+		perror("close file faild");
+		return -1;
+	}
+
 	return 0;
 
 }
@@ -758,14 +761,14 @@
 {
 	FILE *fp;
 	char lynq_cmd_ret[MAX_RET]={0}; 
-	if((fp=popen("IFNAME=wlan0 enable_network 0","r"))==NULL){
+	if((fp=popen("wpa_cli -iwlan0 -p/var/run/wpa_supplicant reconnect","r"))==NULL){
 			perror("popen error!");
 			return -1;
 		}
 	fgets(lynq_cmd_ret,sizeof(lynq_cmd_ret),fp);
 
-	if((strncmp(lynq_cmd_ret,LYNQ_WIFI_OK,sizeof(LYNQ_WIFI_OK)))==0){
-			printf("cmd is work");
+	if((strncmp(lynq_cmd_ret,g_lynq_wifi_ok,sizeof(g_lynq_wifi_ok)))!=0){
+			return -1;
 		}
 
 	int ret=pclose(fp);
@@ -781,28 +784,28 @@
 {
 	FILE *fp;
 	char LYNQ_CMD_RET[MAX_CMD]={0};
-	if((fp=popen("IFNAME=wlan0 disconnect","r"))==NULL){
+	if((fp=popen("wpa_cli -iwlan0 -p/var/run/wpa_supplicant disconnect","r"))==NULL){
 			perror("popen error!");
 			return -1;
 		}
 	fgets(LYNQ_CMD_RET,sizeof(LYNQ_CMD_RET),fp);
 
-	if((strncmp(LYNQ_CMD_RET,LYNQ_WIFI_OK,sizeof(LYNQ_WIFI_OK)))==0){
-			printf("cmd is work");
+	if((strncmp(LYNQ_CMD_RET,g_lynq_wifi_ok,sizeof(g_lynq_wifi_ok)))!=0){
+			return -1;
 		}	
 	int ret=pclose(fp);
 	if(ret==-1){
 		perror("close file faild");
 		return -1;
 		}
+
 	return 0;
 }
 
 
-
 int lynq_wifi_wpa_start(void){
 	FILE *fp;
-	fp=popen("wpa_supplicant -iwlan0 -Dnl80211 -c /data/wifi/wg870/wpa_supplicant.conf -g/var/run/wpa_wlan0_cmd  -dd -t -B","w");
+	fp=popen("wpa_supplicant -iwlan0 -Dnl80211 -c /data/wifi/wg870/wpa_supplicant.conf -g/var/run/wpa_wlan0_cmd  -dd -t -B","r");
 	if(fp==NULL){
 		perror("start wpa_supplicant faild!");
 		return -1;
@@ -819,36 +822,29 @@
 int lynq_wifi_wpacli_start(void){
 	
 	FILE *fp;
-	printf("into wpacli \n");
 	char lynq_cmd_ret[MAX_RET]={0};
-	char rmcmd[128]="IFNAME=wlan0 remove_net all\n";
-	char adcmd[128]="IFNAME=wlan0 add_net\n";
-	char sacmd[128]="IFNAME=wlan0 save_config\n";
+	char rm_cmd[128]="IFNAME=wlan0 remove_net all\n";
+	char add_cmd[128]="IFNAME=wlan0 add_net\n";
+	char save_cmd[128]="IFNAME=wlan0 save_config\n";
 
 	fp=popen("/usr/bin/wpa_cli -iwpa_wlan0_cmd -p/var/run/","w");
 	if(fp==NULL){
 		perror("start wpa_supplicant faild!");
 		return -1;
 		}
-	while(1)
-		{
-			fwrite(rmcmd,sizeof(rmcmd),1,fp);
-	
-			fwrite(adcmd,sizeof(adcmd),1,fp);
-		
-			fwrite(sacmd,sizeof(sacmd),1,fp);
-	
-			break;
-		}
+
+	fwrite(rm_cmd,sizeof(rm_cmd),1,fp);
+	fwrite(add_cmd,sizeof(add_cmd),1,fp);
+	fwrite(save_cmd,sizeof(save_cmd),1,fp);
 	
 	int ret=pclose(fp);
-			if(ret==-1){
-				perror("close file faild");
-				return -1;
-			}
+	if(ret==-1)
+	{
+		perror("close file faild");
+		return -1;
+	}
 
-	return 0;
-
+ 	return 0;
 }