180 lines
4.7 KiB
C
180 lines
4.7 KiB
C
|
#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;
|
||
|
}
|