#include <ctype.h>
#include <board.h>
#include "wl_api.h"
#include "wl_cm.h"
#include "lwip/netif.h"
#include "http_server_gui.h"
#include "gui.h"
#include "et024006dhu.h"
#include "clocks.h"
#include "wl_util.h"
#include "util.h"
#include <string.h>
Go to the source code of this file.
Defines | |
#define | GUI_MAX_NETWORKS 16 |
#define | gui_printk(line, args...) |
#define | MAX_KEY_LEN 64 |
Functions | |
static uint8_t | ascii_to_key (char *outp, const char *inp) |
static void | gui_connect_cb (void) |
void | gui_link_down_cb (void) |
void | gui_link_up_cb (void) |
static void | gui_scan_cb (void) |
void | gui_start (void) |
void | gui_status_down_cb (void) |
void | gui_status_up_cb (void) |
Variables | |
char | ascii_key [MAX_KEY_LEN] |
static int | gui_network_cnt = 0 |
static struct wl_network_t | gui_network_list [GUI_MAX_NETWORKS] |
char | gui_print_buf [80] |
#define GUI_MAX_NETWORKS 16 |
#define gui_printk | ( | line, | |||
args... | ) |
Value:
do { \ extern char gui_print_buf[80]; \ sniprintf(gui_print_buf, sizeof(gui_print_buf), args); \ gui_set_title(gui_print_buf, line); \ } while(0)
Definition at line 57 of file http_server_gui.c.
Referenced by gui_connect_cb(), gui_link_down_cb(), gui_link_up_cb(), gui_scan_cb(), gui_start(), and gui_status_up_cb().
#define MAX_KEY_LEN 64 |
Definition at line 51 of file http_server_gui.c.
static uint8_t ascii_to_key | ( | char * | outp, | |
const char * | inp | |||
) | [static] |
Definition at line 63 of file http_server_gui.c.
References MAX_KEY_LEN, and printk().
00063 { 00064 char buf[3]; 00065 int len; 00066 buf[2] = '\0'; 00067 len = strlen(inp); 00068 if (len % 2) { 00069 printk("Invalid length\n"); 00070 } 00071 len = 0; 00072 while (*inp) { 00073 if (! isxdigit(*inp) || ! isxdigit(*(inp+1)) || len > MAX_KEY_LEN) { 00074 return 0; 00075 } 00076 buf[0] = *inp++; 00077 buf[1] = *inp++; 00078 *outp++ = strtol(buf, NULL, 16); 00079 len++; 00080 } 00081 return len; 00082 }
static void gui_connect_cb | ( | void | ) | [static] |
Definition at line 131 of file http_server_gui.c.
References ascii_key, ascii_to_key(), equal_bssid(), FALSE, gui_getstring(), gui_getstring_onoff(), gui_network_cnt, gui_network_list, gui_printk, gui_scroll_idx(), printk(), and wl_cm_set_network().
Referenced by gui_start().
00132 { 00133 int index; 00134 struct wl_network_t* selected_net; 00135 struct wl_network_t* current_net = wl_get_current_network(); 00136 char key[20]; 00137 00138 index = gui_scroll_idx() - 1; 00139 if (index < 0 || index > gui_network_cnt) 00140 return; 00141 selected_net = &gui_network_list[index]; 00142 if (equal_bssid(&selected_net->bssid, ¤t_net->bssid)) 00143 return; 00144 00145 if (selected_net->enc_type != ENC_TYPE_NONE) /* this net needs key. */ 00146 { 00147 int len; 00148 00149 /* if key available in flash, get it, and start with that. */ 00150 if (!gui_getstring(ascii_key, sizeof ascii_key)) 00151 return; 00152 if (selected_net->enc_type == ENC_TYPE_WEP) 00153 { 00154 struct wl_mac_addr_t bssid; 00155 00156 memset(&bssid.octet, 0xff, sizeof bssid.octet); 00157 len = ascii_to_key(key, ascii_key); 00158 if (wl_add_wep_key(0, len, key, &bssid) != WL_SUCCESS) 00159 { 00160 printk("%s : Failed to add wep key\n", __func__); 00161 gui_printk(1, "Failed to add key"); 00162 } 00163 wl_set_auth_mode(AUTH_MODE_SHARED_KEY); 00164 wl_set_default_wep_key(0); 00165 } 00166 else 00167 { 00168 /* WPA */ 00169 if (wl_set_passphrase(selected_net, 00170 ascii_key, 00171 strlen(ascii_key), 00172 ENC_TYPE_AUTO, 00173 AUTH_MODE_AUTO) 00174 != WL_SUCCESS) { 00175 printk("%s : Failed to add passphrase\n", __func__); 00176 gui_printk(1, "Failed to add passphrase"); 00177 } 00178 } 00179 printk("key accepted\n"); 00180 gui_getstring_onoff(FALSE); 00181 00182 } 00183 gui_printk(0, "Connecting ... "); 00184 gui_printk(1, " "); 00185 wl_cm_set_network(&selected_net->ssid, NULL); 00186 }
void gui_link_down_cb | ( | void | ) |
Definition at line 251 of file http_server_gui.c.
References gui_printk.
00252 { 00253 gui_printk(0, "Connecting ... "); 00254 gui_printk(1, " "); 00255 }
void gui_link_up_cb | ( | void | ) |
Definition at line 236 of file http_server_gui.c.
References gui_printk, and str.
00237 { 00238 char str[WL_SSID_MAX_LENGTH + 1]; 00239 struct wl_network_t *net = wl_get_current_network(); 00240 00241 memset(str, 0, sizeof(str)); 00242 strncpy(str, net->ssid.ssid, net->ssid.len); 00243 gui_printk(0, "Connected to \"%s\"", str); 00244 gui_printk(1, "Requesting dhcp ... "); 00245 }
static void gui_scan_cb | ( | void | ) | [static] |
Definition at line 88 of file http_server_gui.c.
References enc_type2str(), gui_add_scroll_box_item(), gui_clear_scroll_box(), gui_inc_scroll_cursor(), GUI_MAX_NETWORKS, gui_network_cnt, gui_network_list, gui_printk, gui_set_bg_color(), and printk().
Referenced by gui_start().
00089 { 00090 struct wl_network_t* wl_network_list; 00091 uint8_t wl_network_cnt, i; 00092 00093 gui_clear_scroll_box(); 00094 gui_set_bg_color(WHITE); 00095 gui_add_scroll_box_item("Scan Contents:", sizeof "Scan Contents:"); 00096 00097 wl_get_network_list(&wl_network_list, &wl_network_cnt); 00098 if (wl_network_cnt == 0) 00099 gui_printk(1, "No networks found"); 00100 else 00101 gui_printk(1, " "); 00102 00103 gui_network_cnt = wl_network_cnt > GUI_MAX_NETWORKS ? GUI_MAX_NETWORKS : 00104 wl_network_cnt; 00105 00106 memcpy(gui_network_list, wl_network_list, 00107 sizeof(struct wl_network_t) * gui_network_cnt); 00108 00109 for (i = 0; i < gui_network_cnt; i++) { 00110 struct wl_network_t* net = &gui_network_list[i]; 00111 char print_buf[80]; 00112 char ssid[WL_SSID_MAX_LENGTH + 1]; 00113 00114 memset(ssid, 0, sizeof(ssid)); 00115 strncpy(ssid, net->ssid.ssid, net->ssid.len); 00116 siprintf(print_buf, "%s (%ld) %s", ssid, 00117 net->rssi, enc_type2str(net->enc_type)); 00118 printk("%s\n", print_buf); 00119 gui_add_scroll_box_item(print_buf, strlen(print_buf)); 00120 } 00121 00122 gui_inc_scroll_cursor(); /* inc cursor idx to make it >0 */ 00123 }
void gui_start | ( | void | ) |
Definition at line 262 of file http_server_gui.c.
References FCPU_HZ, FPBA_HZ, gui_add_scroll_box_item(), gui_clear_scroll_box(), gui_connect_cb(), gui_dec_scroll_cursor(), gui_draw(), gui_inc_scroll_cursor(), gui_init(), gui_printk, gui_scan_cb(), gui_set_bg_color(), and gui_set_button().
00263 { 00264 pm_freq_param_t pm_freq_param = { 00265 .cpu_f = FCPU_HZ, 00266 .pba_f = FPBA_HZ, 00267 .osc0_f = FOSC0, 00268 .osc0_startup = OSC0_STARTUP 00269 }; 00270 gui_init(&pm_freq_param); 00271 gui_draw(1); 00272 gui_printk(0, "Disconnected"); 00273 gui_set_button(0, "Scan", sizeof "Scan", gui_scan_cb); 00274 gui_set_button(1, "Connect", sizeof "Connect", gui_connect_cb); 00275 gui_set_button(2, "Up", sizeof "Up", gui_dec_scroll_cursor); 00276 gui_set_button(3, "Down", sizeof "Down", gui_inc_scroll_cursor); 00277 gui_clear_scroll_box(); 00278 gui_set_bg_color(WHITE); 00279 gui_add_scroll_box_item("Scan Contents:", sizeof "Scan Contents:"); 00280 }
void gui_status_down_cb | ( | void | ) |
void gui_status_up_cb | ( | void | ) |
Definition at line 202 of file http_server_gui.c.
References gui_add_infobox_item(), gui_clear_infobox(), gui_infobox_onoff(), gui_printk, gui_save_buttons(), gui_set_button(), ip2str(), str, and TRUE.
00203 { 00204 char str[WL_SSID_MAX_LENGTH + 1]; 00205 struct wl_network_t *net = wl_get_current_network(); 00206 00207 memset(str, 0, sizeof(str)); 00208 strncpy(str, net->ssid.ssid, net->ssid.len); 00209 gui_printk(0, "Connected to \"%s\"", str); 00210 gui_printk(1, "My ip address is %s", ip2str(netif_default->ip_addr)); 00211 #if BOARD == EVK1100 00212 gui_save_buttons(); 00213 gui_clear_infobox(0); 00214 00215 gui_add_infobox_item(str, 0); 00216 00217 gui_add_infobox_item(ip2str(netif_default->ip_addr), 1); 00218 gui_infobox_onoff(TRUE); 00219 gui_set_button(0, "Back", sizeof "Back", go_back_cb); 00220 #endif 00221 }
char ascii_key[MAX_KEY_LEN] |
int gui_network_cnt = 0 [static] |
struct wl_network_t gui_network_list[GUI_MAX_NETWORKS] [static] |
char gui_print_buf[80] |
Definition at line 54 of file http_server_gui.c.