cc3200: Move server methods from WLAN to the network module.

This commit is contained in:
danicampora 2015-03-19 17:06:20 +01:00
parent 92496abe0f
commit f8ee88bbe0
7 changed files with 57 additions and 62 deletions

View File

@ -33,6 +33,7 @@
#include MICROPY_HAL_H #include MICROPY_HAL_H
#include "modnetwork.h" #include "modnetwork.h"
#include "mpexception.h" #include "mpexception.h"
#include "serverstask.h"
/// \module network - network configuration /// \module network - network configuration
/// ///
@ -68,10 +69,44 @@ STATIC mp_obj_t network_route(void) {
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_0(network_route_obj, network_route); STATIC MP_DEFINE_CONST_FUN_OBJ_0(network_route_obj, network_route);
#if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP)
STATIC mp_obj_t network_server_start(void) {
servers_start();
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_0(network_server_start_obj, network_server_start);
STATIC mp_obj_t network_server_stop(void) {
servers_stop();
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_0(network_server_stop_obj, network_server_stop);
STATIC mp_obj_t network_server_enabled(void) {
return MP_BOOL(servers_are_enabled());
}
STATIC MP_DEFINE_CONST_FUN_OBJ_0(network_server_enabled_obj, network_server_enabled);
STATIC mp_obj_t network_server_login(mp_obj_t user, mp_obj_t pass) {
const char *_user = mp_obj_str_get_str(user);
const char *_pass = mp_obj_str_get_str(pass);
servers_set_login ((char *)_user, (char *)_pass);
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(network_server_login_obj, network_server_login);
#endif
STATIC const mp_map_elem_t mp_module_network_globals_table[] = { STATIC const mp_map_elem_t mp_module_network_globals_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_network) }, { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_network) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_WLAN), (mp_obj_t)&mod_network_nic_type_wlan }, { MP_OBJ_NEW_QSTR(MP_QSTR_WLAN), (mp_obj_t)&mod_network_nic_type_wlan },
{ MP_OBJ_NEW_QSTR(MP_QSTR_route), (mp_obj_t)&network_route_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_route), (mp_obj_t)&network_route_obj },
#if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP)
{ MP_OBJ_NEW_QSTR(MP_QSTR_start_server), (mp_obj_t)&network_server_start_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_stop_server), (mp_obj_t)&network_server_stop_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_server_enabled), (mp_obj_t)&network_server_enabled_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_server_login), (mp_obj_t)&network_server_login_obj },
#endif
}; };
STATIC MP_DEFINE_CONST_DICT(mp_module_network_globals, mp_module_network_globals_table); STATIC MP_DEFINE_CONST_DICT(mp_module_network_globals, mp_module_network_globals_table);

View File

@ -416,7 +416,7 @@ modwlan_Status_t wlan_sl_enable (SlWlanMode_t mode, const char *ssid, uint8_t ss
#if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP) #if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP)
// Stop all other processes using the wlan engine // Stop all other processes using the wlan engine
if ((wlan_obj.servers_enabled = servers_are_enabled())) { if ((wlan_obj.servers_enabled = servers_are_enabled())) {
wlan_stop_servers(); servers_stop();
} }
#endif #endif
@ -514,7 +514,7 @@ modwlan_Status_t wlan_sl_enable (SlWlanMode_t mode, const char *ssid, uint8_t ss
#if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP) #if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP)
// Start the servers again // Start the servers again
if (wlan_obj.servers_enabled) { if (wlan_obj.servers_enabled) {
servers_enable(); servers_start();
} }
#endif #endif
return MODWLAN_OK; return MODWLAN_OK;
@ -534,7 +534,7 @@ void wlan_stop (uint32_t timeout) {
#if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP) #if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP)
// Stop all other processes using the wlan engine // Stop all other processes using the wlan engine
if ((wlan_obj.servers_enabled = servers_are_enabled())) { if ((wlan_obj.servers_enabled = servers_are_enabled())) {
wlan_stop_servers(); servers_stop();
} }
#endif #endif
sl_LockObjLock (&wlan_LockObj, SL_OS_WAIT_FOREVER); sl_LockObjLock (&wlan_LockObj, SL_OS_WAIT_FOREVER);
@ -555,15 +555,6 @@ void wlan_get_ip (uint32_t *ip) {
} }
} }
void wlan_stop_servers (void) {
#if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP)
servers_disable();
do {
HAL_Delay (5);
} while (servers_are_enabled());
#endif
}
//***************************************************************************** //*****************************************************************************
// DEFINE STATIC FUNCTIONS // DEFINE STATIC FUNCTIONS
//***************************************************************************** //*****************************************************************************
@ -963,33 +954,6 @@ STATIC mp_obj_t wlan_callback (mp_uint_t n_args, const mp_obj_t *pos_args, mp_ma
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(wlan_callback_obj, 1, wlan_callback); STATIC MP_DEFINE_CONST_FUN_OBJ_KW(wlan_callback_obj, 1, wlan_callback);
#if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP)
STATIC mp_obj_t wlan_serversstart(mp_obj_t self_in) {
servers_enable();
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(wlan_serversstart_obj, wlan_serversstart);
STATIC mp_obj_t wlan_serversstop(mp_obj_t self_in) {
wlan_stop_servers();
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(wlan_serversstop_obj, wlan_serversstop);
STATIC mp_obj_t wlan_serversenabled(mp_obj_t self_in) {
return MP_BOOL(servers_are_enabled());
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(wlan_serversenabled_obj, wlan_serversenabled);
STATIC mp_obj_t wlan_serversuserpass(mp_obj_t self_in, mp_obj_t user, mp_obj_t pass) {
const char *_user = mp_obj_str_get_str(user);
const char *_pass = mp_obj_str_get_str(pass);
servers_set_user_pass((char *)_user, (char *)_pass);
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_3(wlan_serversuserpass_obj, wlan_serversuserpass);
#endif
STATIC const mp_map_elem_t wlan_locals_dict_table[] = { STATIC const mp_map_elem_t wlan_locals_dict_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_connect), (mp_obj_t)&wlan_connect_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_connect), (mp_obj_t)&wlan_connect_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_scan), (mp_obj_t)&wlan_scan_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_scan), (mp_obj_t)&wlan_scan_obj },
@ -998,12 +962,6 @@ STATIC const mp_map_elem_t wlan_locals_dict_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_ifconfig), (mp_obj_t)&wlan_ifconfig_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_ifconfig), (mp_obj_t)&wlan_ifconfig_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_urn), (mp_obj_t)&wlan_urn_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_urn), (mp_obj_t)&wlan_urn_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_callback), (mp_obj_t)&wlan_callback_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_callback), (mp_obj_t)&wlan_callback_obj },
#if (MICROPY_PORT_HAS_TELNET || MICROPY_PORT_HAS_FTP)
{ MP_OBJ_NEW_QSTR(MP_QSTR_start_servers), (mp_obj_t)&wlan_serversstart_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_stop_servers), (mp_obj_t)&wlan_serversstop_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_servers_enabled), (mp_obj_t)&wlan_serversenabled_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_servers_userpass), (mp_obj_t)&wlan_serversuserpass_obj },
#endif
// class constants // class constants
{ MP_OBJ_NEW_QSTR(MP_QSTR_OPEN), MP_OBJ_NEW_SMALL_INT(SL_SEC_TYPE_OPEN) }, { MP_OBJ_NEW_QSTR(MP_QSTR_OPEN), MP_OBJ_NEW_SMALL_INT(SL_SEC_TYPE_OPEN) },

View File

@ -60,6 +60,5 @@ extern void wlan_first_start (void);
extern void wlan_stop (uint32_t timeout); extern void wlan_stop (uint32_t timeout);
extern void wlan_get_mac (uint8_t *macAddress); extern void wlan_get_mac (uint8_t *macAddress);
extern void wlan_get_ip (uint32_t *ip); extern void wlan_get_ip (uint32_t *ip);
extern void wlan_stop_servers (void);
#endif /* MODWLAN_H_ */ #endif /* MODWLAN_H_ */

View File

@ -162,7 +162,7 @@ soft_reset:
mptask_init_sflash_filesystem(); mptask_init_sflash_filesystem();
// enable telnet and ftp servers // enable telnet and ftp servers
servers_enable(); servers_start();
// append the SFLASH paths to the system path // append the SFLASH paths to the system path
mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__slash_SFLASH)); mp_obj_list_append(mp_sys_path, MP_OBJ_NEW_QSTR(MP_QSTR__slash_SFLASH));

View File

@ -199,6 +199,10 @@ Q(IPPROTO_RAW)
// for network class // for network class
Q(network) Q(network)
Q(route) Q(route)
Q(start_server)
Q(stop_server)
Q(server_enabled)
Q(server_login)
// for WLAN class // for WLAN class
Q(WLAN) Q(WLAN)
@ -213,10 +217,6 @@ Q(disconnect)
Q(channel) Q(channel)
Q(ifconfig) Q(ifconfig)
Q(urn) Q(urn)
Q(start_servers)
Q(stop_servers)
Q(servers_enabled)
Q(servers_userpass)
Q(STA) Q(STA)
Q(AP) Q(AP)
Q(P2P) Q(P2P)

View File

@ -125,28 +125,31 @@ void TASK_Servers (void *pvParameters) {
} }
} }
void servers_enable (void) { void servers_start (void) {
servers_data.do_disable = false; servers_data.do_disable = false;
servers_data.do_enable = true; servers_data.do_enable = true;
} }
void servers_disable (void) { void servers_stop (void) {
servers_data.do_enable = false; servers_data.do_enable = false;
servers_data.do_disable = true; servers_data.do_disable = true;
do {
HAL_Delay (SERVERS_CYCLE_TIME_MS);
} while (servers_are_enabled());
} }
bool servers_are_enabled (void) { bool servers_are_enabled (void) {
return servers_data.enabled; return servers_data.enabled;
} }
void servers_close_socket (_i16 *sd) { void servers_close_socket (int16_t *sd) {
if (*sd > 0) { if (*sd > 0) {
sl_Close(*sd); sl_Close(*sd);
*sd = -1; *sd = -1;
} }
} }
void servers_set_user_pass (char *user, char *pass) { void servers_set_login (char *user, char *pass) {
memcpy(servers_user, user, SERVERS_USER_LEN_MAX); memcpy(servers_user, user, SERVERS_USER_LEN_MAX);
memcpy(servers_pass, pass, SERVERS_PASS_LEN_MAX); memcpy(servers_pass, pass, SERVERS_PASS_LEN_MAX);
} }

View File

@ -60,10 +60,10 @@ extern char *servers_pass;
DECLARE PUBLIC FUNCTIONS DECLARE PUBLIC FUNCTIONS
******************************************************************************/ ******************************************************************************/
extern void TASK_Servers (void *pvParameters); extern void TASK_Servers (void *pvParameters);
extern void servers_enable (void); extern void servers_start (void);
extern void servers_disable (void); extern void servers_stop (void);
extern bool servers_are_enabled (void); extern bool servers_are_enabled (void);
extern void servers_close_socket (_i16 *sd); extern void servers_close_socket (int16_t *sd);
extern void servers_set_user_pass (char *user, char *pass); extern void servers_set_login (char *user, char *pass);
#endif /* SERVERSTASK_H_ */ #endif /* SERVERSTASK_H_ */