aboutsummaryrefslogtreecommitdiff
path: root/firmwares/wifishield/wifiHD/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmwares/wifishield/wifiHD/src/main.c')
-rw-r--r--firmwares/wifishield/wifiHD/src/main.c43
1 files changed, 21 insertions, 22 deletions
diff --git a/firmwares/wifishield/wifiHD/src/main.c b/firmwares/wifishield/wifiHD/src/main.c
index e94e724..fffb34e 100644
--- a/firmwares/wifishield/wifiHD/src/main.c
+++ b/firmwares/wifishield/wifiHD/src/main.c
@@ -78,11 +78,6 @@ void fw_download_cb(void* ctx, uint8_t** buf, uint32_t* len)
#endif
#endif
-struct ctx_server {
- struct net_cfg net_cfg;
- uint8_t wl_init_complete;
-};
-
bool ifStatus = false;
bool scanNetCompleted = false;
@@ -114,7 +109,7 @@ wl_cm_conn_cb(struct wl_network_t* net, void* ctx)
INFO_INIT("Connection cb...\n");
printk("link up, connected to \"%s\"\n", ssid2str(&net->ssid));
- if ( hs->net_cfg.dhcp_enabled ) {
+ if ( hs->net_cfg.dhcp_enabled == DYNAMIC_IP_CONFIG ) {
INFO_INIT("Start DHCP...\n");
printk("requesting dhcp ... ");
int8_t result = dhcp_start(hs->net_cfg.netif);
@@ -122,7 +117,7 @@ wl_cm_conn_cb(struct wl_network_t* net, void* ctx)
hs->net_cfg.dhcp_running = 1;
}
else {
- netif_set_up(hs->net_cfg.netif);
+ netif_set_up(hs->net_cfg.netif);
}
INFO_INIT("Start DNS...\n");
@@ -270,7 +265,7 @@ poll(struct ctx_server* hs)
#endif
}
-void initShell()
+void initShell(void* ctx)
{
/* initialize shell */
INFO_INIT("Shell init...\n");
@@ -278,11 +273,10 @@ void initShell()
console_add_cmd("scan", cmd_scan, NULL);
console_add_cmd("connect", cmd_connect, NULL);
console_add_cmd("setkey", cmd_setkey, NULL);
- console_add_cmd("status", cmd_status, NULL);
+ console_add_cmd("status", cmd_status, ctx);
console_add_cmd("debug", cmd_debug, NULL);
console_add_cmd("dumpBuf", cmd_dumpBuf, NULL);
- console_add_cmd("ipconfig", cmd_set_ip, NULL);
-
+ console_add_cmd("ipconfig", cmd_set_ip, ctx);
#ifdef ADD_CMDS
console_add_cmd("powersave", cmd_power, NULL);
console_add_cmd("psconf", cmd_psconf, NULL);
@@ -319,12 +313,16 @@ wl_init_complete_cb(void* ctx)
struct ip_addr ipaddr, netmask, gw;
wl_err_t wl_status;
- IP4_ADDR(&gw, 0,0,0,0);
- IP4_ADDR(&ipaddr, 0,0,0,0);
- IP4_ADDR(&netmask, 0,0,0,0);
-
- /* default is dhcp enabled */
- hs->net_cfg.dhcp_enabled = 1;
+ if (hs->net_cfg.dhcp_enabled == INIT_IP_CONFIG)
+ {
+ IP4_ADDR(&gw, 0,0,0,0);
+ IP4_ADDR(&ipaddr, 0,0,0,0);
+ IP4_ADDR(&netmask, 0,0,0,0);
+
+ /* default is dhcp enabled */
+ hs->net_cfg.dhcp_enabled = DYNAMIC_IP_CONFIG;
+ }
+
start_ip_stack(&hs->net_cfg,
ipaddr,
netmask,
@@ -339,7 +337,7 @@ wl_init_complete_cb(void* ctx)
wl_scan();
- if (initSpi()){
+ if (initSpi(hs)){
WARN("Spi not initialized\n");
}else
{
@@ -362,6 +360,8 @@ void startup_init(void)
DEB_PIN_UP(2);
}
+const char timestamp[] = __TIMESTAMP__;
+
/**
*
*/
@@ -381,8 +381,6 @@ main(void)
tc_init();
- initShell();
-
delay_init(FOSC0);
#ifdef _TEST_SPI_
@@ -396,7 +394,7 @@ main(void)
}
#else
- printk("Arduino Wifi Startup... [%s]\n", __TIMESTAMP__);
+ printk("Arduino Wifi Startup... [%s]\n", timestamp);
size_t size_ctx_server = sizeof(struct ctx_server);
hs = calloc(1, size_ctx_server);
@@ -405,10 +403,11 @@ main(void)
size_t size_netif = sizeof(struct netif);
hs->net_cfg.netif = calloc(1, size_netif);
ASSERT(hs->net_cfg.netif, "out of memory");
+ hs->net_cfg.dhcp_enabled = INIT_IP_CONFIG;
INFO_INIT("hs:%p size:0x%x netif:%p size:0x%x\n", hs, size_ctx_server,
hs->net_cfg.netif, size_netif);
-
+ initShell(hs);
timer_init(NULL, NULL);
lwip_init();