This commit is contained in:
pvvx 2017-04-23 18:12:51 +03:00
parent d156fdcd7f
commit f8449c5ae3
14 changed files with 2429 additions and 2422 deletions

View file

@ -69,8 +69,8 @@ extern struct netif xnetif[NET_IF_NUM];
/****************************************************** /******************************************************
* Variables Definitions * Variables Definitions
******************************************************/ ******************************************************/
static internal_scan_handler_t scan_result_handler_ptr = { 0, 0, 0, RTW_FALSE, static internal_scan_handler_t scan_result_handler_ptr = {
0, 0, 0, 0, 0 }; 0, 0, 0, RTW_FALSE, 0, 0, 0, 0, 0 };
static internal_join_result_t* join_user_data; static internal_join_result_t* join_user_data;
rtw_mode_t wifi_mode = RTW_MODE_NONE; rtw_mode_t wifi_mode = RTW_MODE_NONE;
//extern rtw_mode_t wifi_mode; //extern rtw_mode_t wifi_mode;
@ -1479,8 +1479,7 @@ int wifi_scan_networks_with_ssid(
return ret; return ret;
} }
int wifi_scan_networks(rtw_scan_result_handler_t results_handler, int wifi_scan_networks(rtw_scan_result_handler_t results_handler, void* user_data) {
void* user_data) {
unsigned int max_ap_size = 64; unsigned int max_ap_size = 64;
#if SCAN_USE_SEMAPHORE #if SCAN_USE_SEMAPHORE

View file

@ -172,13 +172,12 @@ int wifi_disconnect(void);
* RTW_FALSE : If it's not * RTW_FALSE : If it's not
*/ */
int wifi_is_connected_to_ap(void); int wifi_is_connected_to_ap(void);
/*check if wifi has connected to AP before dhcp /*check if wifi has connected to AP before dhcp
* *
* @return RTW_SUCCESS:if conneced * @return RTW_SUCCESS:if conneced
RTW_ERROR :if not connect RTW_ERROR :if not connect
*/ */
int wifi_is_up(rtw_interface_t interface); int wifi_is_up(rtw_interface_t interface);
/** Determines if a particular interface is ready to transceive ethernet packets /** Determines if a particular interface is ready to transceive ethernet packets
@ -412,7 +411,6 @@ int wifi_set_tdma_param(unsigned char slot_period, unsigned char rfon_period_len
* RTW_ERROR otherwise * RTW_ERROR otherwise
*/ */
int wifi_set_lps_dtim(unsigned char dtim); int wifi_set_lps_dtim(unsigned char dtim);
/** /**
* Get LPS DTIM * Get LPS DTIM
* *

View file

@ -524,16 +524,16 @@ int wifi_run(rtw_mode_t mode) {
}; };
if (mode != RTW_MODE_NONE) { if (mode != RTW_MODE_NONE) {
if(wifi_set_country(wifi_cfg.country_code) != RTW_SUCCESS) { if(wifi_set_country(wifi_cfg.country_code) != RTW_SUCCESS) {
error_printf("Error set tx country_code (%d)!", wifi_cfg.country_code); error_printf("WiFi: Error set tx country_code (%d)!", wifi_cfg.country_code);
}; };
// extern uint8_t rtw_power_percentage_idx; // extern uint8_t rtw_power_percentage_idx;
if(rtw_power_percentage_idx != wifi_cfg.tx_pwr) { if(rtw_power_percentage_idx != wifi_cfg.tx_pwr) {
if(rltk_set_tx_power_percentage(wifi_cfg.tx_pwr) != RTW_SUCCESS) { if(rltk_set_tx_power_percentage(wifi_cfg.tx_pwr) != RTW_SUCCESS) {
error_printf("Error set tx power (%d)!", wifi_cfg.tx_pwr); error_printf("WiFi: Error set tx power (%d)!", wifi_cfg.tx_pwr);
}; };
} }
if(wifi_set_network_mode(wifi_cfg.bgn) != RTW_SUCCESS) { if(wifi_set_network_mode(wifi_cfg.bgn) != RTW_SUCCESS) {
error_printf("Error set network mode (%d)!", wifi_cfg.bgn); error_printf("WiFi: Error set network mode (%d)!", wifi_cfg.bgn);
} }
debug_printf("mode == wifi_mode? (%d == %d?)\n", mode, wifi_mode); debug_printf("mode == wifi_mode? (%d == %d?)\n", mode, wifi_mode);
switch(wifi_mode) { switch(wifi_mode) {
@ -556,7 +556,7 @@ int wifi_run(rtw_mode_t mode) {
break; break;
#endif #endif
default: default:
error_printf("Error WiFi mode(%d)\n", wifi_mode); error_printf("WiFi: Error mode(%d)\n", wifi_mode);
} }
#if CONFIG_INTERACTIVE_MODE #if CONFIG_INTERACTIVE_MODE
/* Initial uart rx swmaphore*/ /* Initial uart rx swmaphore*/
@ -564,6 +564,11 @@ int wifi_run(rtw_mode_t mode) {
xSemaphoreTake(uart_rx_interrupt_sema, 1/portTICK_RATE_MS); xSemaphoreTake(uart_rx_interrupt_sema, 1/portTICK_RATE_MS);
start_interactive_mode(); start_interactive_mode();
#endif #endif
if(wifi_cfg.sleep) {
if(wext_enable_powersave(WLAN0_NAME, 1, 1) != RTW_SUCCESS) {
error_printf("WiFi: Error set powersave mode!");
};
}
ret = 1; ret = 1;
} else { } else {
ret = 1; ret = 1;
@ -594,32 +599,65 @@ void wifi_init(void) {
wifi_run(wifi_cfg.mode); wifi_run(wifi_cfg.mode);
} }
uint32 tab_rtw_security[] = { unsigned char *tab_txt_rtw_secyrity[] = {
"OPEN", //0 Open security
"WEP", //1 WEP Security with open authentication
"WEP SHARED", //2 WEP Security with shared authentication
"WPA TKIP", //3 WPA Security with TKIP
"WPA AES", //4 WPA Security with AES
"WPA2 AES", //5 WPA2 Security with TKIP
"WPA2 TKIP", //6 WPA2 Security with AES
"WPA2 Mixed", //7 WPA2 Security with AES & TKIP
"WPA/WPA2 AES", //8 WPA/WPA2 Security
"Unknown" //9
};
unsigned int tab_code_rtw_secyrity[] = {
RTW_SECURITY_OPEN, //0 Open security RTW_SECURITY_OPEN, //0 Open security
RTW_SECURITY_WEP_PSK, //1 WEP Security with open authentication RTW_SECURITY_WEP_PSK, //1 WEP Security with open authentication
RTW_SECURITY_WEP_SHARED, //2 WEP Security with shared authentication RTW_SECURITY_WEP_SHARED, //2 WEP Security with shared authentication
RTW_SECURITY_WPA_TKIP_PSK, //3 WPA Security with TKIP RTW_SECURITY_WPA_TKIP_PSK, //3 WPA Security with TKIP
RTW_SECURITY_WPA_AES_PSK, //4 WPA Security with AES RTW_SECURITY_WPA_AES_PSK, //4 WPA Security with AES
RTW_SECURITY_WPA2_AES_PSK, //5 WPA2 Security with AES RTW_SECURITY_WPA2_TKIP_PSK, //5 WPA2 Security with TKIP
RTW_SECURITY_WPA2_TKIP_PSK, //6 WPA2 Security with TKIP RTW_SECURITY_WPA2_AES_PSK, //6 WPA2 Security with AES
RTW_SECURITY_WPA2_MIXED_PSK, //7 WPA2 Security with AES & TKIP RTW_SECURITY_WPA2_MIXED_PSK, //7 WPA2 Security with AES & TKIP
RTW_SECURITY_WPA_WPA2_MIXED //8 WPA/WPA2 Security RTW_SECURITY_WPA_WPA2_MIXED, //8 WPA/WPA2 Security
RTW_SECURITY_UNKNOWN //9
};
unsigned char *tab_txt_rtw_eccryption[] = {
"Unknown",
"OPEN",
"WEP40",
"WPA_TKIP",
"WPA_AES",
"WPA2_TKIP",
"WPA2_AES",
"WPA2_MIXED",
"???",
"WEP104",
"Udef" // 0xff
}; };
rtw_security_t translate_val_to_rtw_security(uint8 security_type) rtw_security_t idx_to_rtw_security(unsigned char idx)
{ {
if(security_type > 8) security_type = 5; if(idx > 8) idx = 5;
return (rtw_security_t)tab_rtw_security[security_type]; return (rtw_security_t)tab_code_rtw_secyrity[idx];
} }
uint8 translate_rtw_security_to_val(rtw_security_t security_type) unsigned char rtw_security_to_idx(rtw_security_t rtw_sec_type)
{ {
uint8 i = 0; unsigned char i = 0;
while(i < 9 && tab_rtw_security[i] != security_type) i++; for(; rtw_sec_type != tab_code_rtw_secyrity[i] && tab_code_rtw_secyrity[i] != RTW_SECURITY_UNKNOWN; i++);
i++;
return i; return i;
} }
unsigned char * rtw_security_to_str(rtw_security_t rtw_sec_type)
{
return tab_txt_rtw_secyrity[rtw_security_to_idx(rtw_sec_type)];
}
void show_wifi_ap_ip(void) { void show_wifi_ap_ip(void) {
printf("SoftAP ip: " IPSTR "\n", IP2STR(&xnetif[WLAN_AP_NETIF_NUM].ip_addr)); printf("SoftAP ip: " IPSTR "\n", IP2STR(&xnetif[WLAN_AP_NETIF_NUM].ip_addr));

View file

@ -122,8 +122,10 @@ uint32 write_wifi_cfg(uint32 flg);
int wifi_run(rtw_mode_t mode); int wifi_run(rtw_mode_t mode);
void wifi_init(void); void wifi_init(void);
rtw_security_t translate_val_to_rtw_security(uint8 security_type); extern unsigned char *tab_txt_rtw_eccryption[];
uint8 translate_rtw_security_to_val(rtw_security_t security_type); rtw_security_t idx_to_rtw_security(unsigned char idx);
unsigned char rtw_security_to_idx(rtw_security_t rtw_sec_type);
unsigned char * rtw_security_to_str(rtw_security_t rtw_sec_type);
void _LwIP_Init(void); void _LwIP_Init(void);

View file

@ -86,7 +86,7 @@ typedef struct rtw_network_info {
int key_id; int key_id;
}rtw_network_info_t; }rtw_network_info_t;
#if defined(__IAR_SYSTEMS_ICC__) || defined(__GNUC__) #if defined(__IAR_SYSTEMS_ICC__)
#pragma pack(1) #pragma pack(1)
#endif #endif
@ -103,7 +103,7 @@ typedef struct rtw_scan_result {
unsigned int channel; /**< Radio channel that the AP beacon was received on */ unsigned int channel; /**< Radio channel that the AP beacon was received on */
rtw_802_11_band_t band; /**< Radio band */ rtw_802_11_band_t band; /**< Radio band */
} rtw_scan_result_t; } rtw_scan_result_t;
#if defined(__IAR_SYSTEMS_ICC__) || defined(__GNUC__) #if defined(__IAR_SYSTEMS_ICC__)
#pragma pack() #pragma pack()
#endif #endif
@ -117,7 +117,7 @@ typedef struct rtw_scan_handler_result {
} rtw_scan_handler_result_t; } rtw_scan_handler_result_t;
#if defined(__IAR_SYSTEMS_ICC__) || defined(__GNUC__) #if defined(__IAR_SYSTEMS_ICC__)
#pragma pack(1) #pragma pack(1)
#endif #endif
@ -132,7 +132,7 @@ typedef struct rtw_wifi_setting {
unsigned char password[65]; unsigned char password[65];
unsigned char key_idx; unsigned char key_idx;
}rtw_wifi_setting_t; }rtw_wifi_setting_t;
#if defined(__IAR_SYSTEMS_ICC__) || defined(__GNUC__) #if defined(__IAR_SYSTEMS_ICC__)
#pragma pack() #pragma pack()
#endif #endif

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -194,7 +194,7 @@
=3 errors + warning + info, =3 errors + warning + info,
=4 errors + warning + info + debug, =4 errors + warning + info + debug,
=5 full */ =5 full */
#define CONFIG_DEBUG_LOG 4 #define CONFIG_DEBUG_LOG 2
#if CONFIG_DEBUG_LOG > 0 #if CONFIG_DEBUG_LOG > 0
//#define CONFIG_DEBUG_ERR_MSG 1 //#define CONFIG_DEBUG_ERR_MSG 1
#define CONFIG_DEBUG_LOG_ADC_HAL 1 #define CONFIG_DEBUG_LOG_ADC_HAL 1

View file

@ -52,7 +52,7 @@ LOCAL void fATPN(int argc, char *argv[]){
} }
if(argc > 3) { if(argc > 3) {
if(pswlen > 7) { if(pswlen > 7) {
wifi_st_cfg.security_type = translate_val_to_rtw_security(atoi(argv[3])); wifi_st_cfg.security_type = idx_to_rtw_security(atoi(argv[3]));
} }
else { else {
printf("password len < 8!\n"); printf("password len < 8!\n");
@ -213,31 +213,7 @@ LOCAL void fATSF(int argc, char *argv[])
} }
/* -------- WiFi Scan ------------------------------- */ /* -------- WiFi Scan ------------------------------- */
unsigned char *tab_txt_rtw_secyrity[] = {
"OPEN ",
"WEP ",
"WPA TKIP",
"WPA AES",
"WPA2 AES",
"WPA2 TKIP",
"WPA2 Mixed",
"WPA/WPA2 AES",
"Unknown"
};
int *tab_code_rtw_secyrity[] = {
RTW_SECURITY_OPEN,
RTW_SECURITY_WEP_PSK,
RTW_SECURITY_WPA_TKIP_PSK,
RTW_SECURITY_WPA_AES_PSK,
RTW_SECURITY_WPA2_AES_PSK,
RTW_SECURITY_WPA2_TKIP_PSK,
RTW_SECURITY_WPA2_MIXED_PSK,
RTW_SECURITY_WPA_WPA2_MIXED,
RTW_SECURITY_UNKNOWN
};
volatile uint8_t scan_end; volatile uint8_t scan_end;
/* -------- WiFi Scan ------------------------------- */ /* -------- WiFi Scan ------------------------------- */
LOCAL rtw_result_t _scan_result_handler( rtw_scan_handler_result_t* malloced_scan_result ) LOCAL rtw_result_t _scan_result_handler( rtw_scan_handler_result_t* malloced_scan_result )
{ {
@ -254,9 +230,11 @@ LOCAL rtw_result_t _scan_result_handler( rtw_scan_handler_result_t* malloced_sca
printf("\t%d\t", record->signal_strength); printf("\t%d\t", record->signal_strength);
printf("%d\t", record->channel); printf("%d\t", record->channel);
printf("%d\t", record->wps_type); printf("%d\t", record->wps_type);
int i = 0; {
for(; record->security != tab_code_rtw_secyrity[i] && tab_code_rtw_secyrity[i] != RTW_SECURITY_UNKNOWN; i++); uint8 * s = rtw_security_to_str(record->security);
printf("%s \t", tab_txt_rtw_secyrity[i]); printf("%s\t", s);
if(strlen(s) < 8) printf("\t");
}
printf("%s\n", record->SSID.val); printf("%s\n", record->SSID.val);
} else { } else {
scan_end = 0; scan_end = 0;