SmartAudio/package/allwinner/softap/demo/softap_longtime_test.c

180 lines
4.7 KiB
C
Executable File

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <aw_softap_intf.h>
#ifndef DEFAULT_SOFTAP_LONGTIME_TEST_TIMES
#define DEFAULT_SOFTAP_LONGTIME_TEST_TIMES 10
#endif
int main(int argc, char **argv)
{
int i = 0;
tSOFTAP_KEY_MGMT key_mgmt = SOFTAP_WPA2_PSK;
int ret = 0;
int test_times = 0;
char *psk = NULL;
char *broadcast_hidden = NULL;
int wait_times = 0;
/*No argruments or only the one who is for help*/
if((argc == 1) || (argc == 2 && (!strcmp(argv[1],"-help") || !strcmp(argv[1], "-h"))))
{
printf("******************************\n");
printf("softap_longtime_test -h/-help: for usage details\n");
printf("Usage:\n");
printf("softap_longtime_test \"ssid\" \"psk/open\" \"broadcast/hidden\" \"test_times\"\n");
printf("******************************\n");
return 0;
}
if(argc >= 5)
test_times = atoi(argv[4]);
else
{
printf("No test times input, use default set: %d", DEFAULT_SOFTAP_LONGTIME_TEST_TIMES);
test_times = DEFAULT_SOFTAP_LONGTIME_TEST_TIMES;
}
printf("***************************\n");
printf("Start softap longtime test!\n");
printf("***************************\n");
for(i=0; i<test_times; i++)
{
ret = aw_softap_init();
if(0 != ret)
{
printf("init softap failed!\n");
return -1;
}
printf("===========================\n");
printf("Start to up softap!\n");
printf("Test time: %d!\n", i+1);
printf("===========================\n");
ret = aw_softap_reload_firmware("AP");
if(0 != ret)
{
printf("reload firmware failed!\n");
return -1;
}
/*To keep consistent with the older version demo,
this demo do no set <interface> <channel>, but
application of the user's can set them correctly by
themselves*/
if((argc >= 3) && (argv[2][0] != '\0') && strcmp(argv[2], "open"))
{
psk = (char *)argv[2];
key_mgmt = SOFTAP_WPA2_PSK;
printf("wpa2-psk!\n");
}
else
{
key_mgmt = SOFTAP_NONE;
printf("none key_mgmt!\n");
}
if(argc >= 4)
broadcast_hidden = (char *)argv[3];
else
broadcast_hidden = (char *)"broadcast";
ret = aw_softap_config(argv[1], psk, key_mgmt, "wlan0", "6", broadcast_hidden);
if(0 != ret)
{
printf("config softap failed!\n");
return -1;
}
ret = aw_softap_save_config();
if(0 != ret)
{
printf("save config failed!\n");
return -1;
}
ret = aw_softap_enable();
if(0 != ret)
{
printf("enable softap failed!\n");
return -1;
}
ret = aw_softap_router_config("192.168.5.1", "255.255.255.0");
if(0 != ret)
{
printf("config IP and maskcode failed!\n");
return -1;
}
// system("udhcpd /etc/wifi/udhcpd.conf");
// usleep(500000);
ret = aw_softap_start_udhcp_dns_server();
if(0 != ret)
{
printf("start udhcp and dns server failed!\n");
return -1;
}
ret = aw_softap_enable_data_forward("eth0");
if(0 != ret)
{
printf("enable data forward failed!\n");
return -1;
}
printf("===========================\n");
if(aw_is_softap_started() == 1)
printf("UP SOFTAP successed!\n");
else
printf("UP SOFTAP failed!\n");
printf("===========================\n");
usleep(10000000);
ret = aw_softap_reload_firmware("STA");
if(0 != ret)
{
printf("reload firmware for station failed!\n");
return -1;
}
ret = aw_softap_disable();
if(0 != ret)
{
printf("disable softap failed!\n");
return -1;
}
wait_times = 0;
while(aw_is_softap_started() == 1 && wait_times <= 10)
{
usleep(2000000);
wait_times++;
}
ret = aw_softap_deinit();
if(0 != ret)
{
printf("deinit failed!\n");
return -1;
}
printf("===========================\n");
if(aw_is_softap_started() == 0)
printf("SHUTDOWN SOFTAP successed!\n");
else
printf("SHUTDOWN SOFTAP failed!\n");
printf("===========================\n");
usleep(4000000);
}//end of for(;;)
printf("***************************\n");
printf("Softap longtime test successed!\n");
printf("***************************\n");
return 0;
}