MegaWiFi 1.5
MegaWiFi API documentation
|
MegaWiFi API implementation. More...
Go to the source code of this file.
Data Structures | |
struct | mw_ap_data |
Access Point data. More... | |
Macros | |
#define | MW_API_VERSION_MAJOR 1 |
API version implemented, major number. More... | |
#define | MW_API_VERSION_MINOR 5 |
API version implemented, minor number. More... | |
#define | MW_COMMAND_TOUT_MS 1000 |
Timeout for standard commands in milliseconds. More... | |
#define | MW_CONNECT_TOUT_MS 10000 |
Timeout for TCP connections. More... | |
#define | MW_HTTP_OPEN_TOUT_MS 10000 |
Timeout for HTTP open command in milliseconds. More... | |
#define | MW_SCAN_TOUT_MS 10000 |
Timeout for the AP scan command in milliseconds. More... | |
#define | MW_ASSOC_TOUT_MS 20000 |
Timeout for the AP associate command in milliseconds. More... | |
#define | MW_ASSOC_WAIT_SLEEP_MS 5000 |
Time to sleep before waiting for assoc in milliseconds. More... | |
#define | MW_UPGRADE_TOUT_MS 180000 |
Timeout for upgrade command in milliseconds. More... | |
#define | MW_STAT_POLL_MS 250 |
Milliseconds between status polls while in wm_ap_assoc_wait() More... | |
#define | MW__RESET UART_MCR__OUT1 |
Reset out. More... | |
#define | MW__PRG UART_MCR__OUT2 |
Program out. More... | |
#define | MW__PD UART_MCR__DTR |
Power Down out. More... | |
#define | MW__DAT UART_MSR__DSR |
Data request in. More... | |
#define | MW_SSID_MAXLEN 32 |
Maximum SSID length (including '\0'). More... | |
#define | MW_PASS_MAXLEN 64 |
Maximum password length (including '\0'). More... | |
#define | MW_NTP_POOL_MAXLEN 80 |
Maximum length of an NTP pool URI (including '\0'). More... | |
#define | MW_NUM_CFG_SLOTS 3 |
Number of AP configurations stored to nvflash. More... | |
#define | MW_NUM_DNS_SERVERS 2 |
Number of DSN servers supported per AP configuration. More... | |
#define | MW_FSM_QUEUE_LEN 8 |
Length of the FSM queue. More... | |
#define | MW_MAX_SOCK 3 |
Maximum number of simultaneous TCP connections. More... | |
#define | MW_CTRL_CH 0 |
Control channel used for LSD protocol. More... | |
#define | MW_HTTP_CH LSD_MAX_CH - 1 |
Channel used for HTTP requests and cert sets. More... | |
#define | MW_CMD_MIN_BUFLEN 168 |
#define | mw_tcp_disconnect(ch) mw_close(ch) |
Closes a TCP socket. This is an alias of mw_close(). More... | |
#define | mw_udp_unset(ch) mw_close(ch) |
Frees a UDP socket. This is an alias of mw_close(). More... | |
#define | mw_module_reset() do{uart_set_bits(MCR, MW__RESET);}while(0) |
Puts the WiFi module in reset state. More... | |
#define | mw_module_start() do{uart_clr_bits(MCR, MW__RESET);}while(0) |
Releases the module from reset state. More... | |
Enumerations | |
enum | mw_err |
Error codes for MegaWiFi API functions. More... | |
enum | mw_http_method |
Supported HTTP methods. More... | |
enum | mw_if_type |
Interface type for the mw_bssid_get() function. More... | |
Functions | |
int16_t | mw_init (char *cmd_buf, uint16_t buf_len) |
Module initialization. Must be called once before using any other function. It also initializes de UART. More... | |
static void | mw_process (void) |
Processes sends/receives pending data. More... | |
void | mw_cmd_data_cb_set (lsd_recv_cb cmd_recv_cb) |
Sets the callback function to be run when network data is received while waiting for a command reply. More... | |
enum mw_err | mw_detect (uint8_t *major, uint8_t *minor, char **variant) |
Performs the startup sequence for the WiFi module, and tries detecting it by requesting the version data. More... | |
enum mw_err | mw_version_get (uint8_t version[3], char **variant) |
Obtain module version numbers and string. More... | |
uint8_t * | mw_bssid_get (enum mw_if_type interface_type) |
Gets the module BSSID (the MAC address) for the specified interface. More... | |
enum mw_err | mw_default_cfg_set (void) |
Set default module configuration (AKA factory settings). More... | |
enum mw_err | mw_ap_cfg_set (uint8_t slot, const char *ssid, const char *pass, enum mw_phy_type phy_type) |
Set access point configuration (SSID and password). More... | |
enum mw_err | mw_ap_cfg_get (uint8_t slot, char **ssid, char **pass, enum mw_phy_type *phy_type) |
Gets access point configuration (SSID and password). More... | |
enum mw_err | mw_ip_cfg_set (uint8_t slot, const struct mw_ip_cfg *ip) |
Set IPv4 configuration. More... | |
enum mw_err | mw_ip_cfg_get (uint8_t slot, struct mw_ip_cfg **ip) |
Get IPv4 configuration. More... | |
enum mw_err | mw_wifi_adv_cfg_set (const struct mw_wifi_adv_cfg *wifi) |
Set advanced WiFi configuration. More... | |
struct mw_wifi_adv_cfg * | mw_wifi_adv_cfg_get (void) |
Get advanced WiFi configuration. More... | |
enum mw_err | mw_cfg_save (void) |
Saves changed configuration parameters to non-volatile memory. More... | |
enum mw_err | mw_ip_current (struct mw_ip_cfg **ip) |
Get current IP configuration, of the joined AP. More... | |
int16_t | mw_ap_scan (enum mw_phy_type phy_type, char **ap_data, uint8_t *aps) |
Scan for access points. More... | |
int16_t | mw_ap_fill_next (const char *ap_data, uint16_t pos, struct mw_ap_data *apd, uint16_t data_len) |
Parses received AP data and fills information of the AP at "pos". Useful to extract AP information from the data obtained by calling mw_ap_scan() function. More... | |
enum mw_err | mw_ap_assoc (uint8_t slot) |
Tries associating to an AP. If successful, also configures IPv4. More... | |
enum mw_err | mw_ap_assoc_wait (int16_t tout_frames) |
Polls the module status until it reports device is associated to AP or timeout occurs. More... | |
enum mw_err | mw_def_ap_cfg (uint8_t slot) |
Sets default AP/IP configuration. More... | |
enum mw_err | mw_ap_disassoc (void) |
Dissasociates from a previously associated AP. More... | |
int16_t | mw_def_ap_cfg_get (void) |
Gets default AP/IP configuration slot. More... | |
enum mw_err | mw_tcp_connect (uint8_t ch, const char *dst_addr, const char *dst_port, const char *src_port) |
Tries establishing a TCP connection with specified server. More... | |
enum mw_err | mw_close (uint8_t ch) |
Closes and disconnects a socket from specified channel. More... | |
enum mw_err | mw_udp_set (uint8_t ch, const char *dst_addr, const char *dst_port, const char *src_port) |
Configures a UDP socket to send/receive data. More... | |
enum mw_err | mw_tcp_bind (uint8_t ch, uint16_t port) |
Binds a socket to a port, and listens to connections on the port. If a connection request is received, it will be automatically accepted. More... | |
enum mw_err | mw_sock_conn_wait (uint8_t ch, int16_t tout_frames) |
Polls a socket until it is ready to transfer data. Typical use of this function is after a successful mw_tcp_bind(). More... | |
static enum lsd_status | mw_recv (char *buf, int16_t len, void *ctx, lsd_recv_cb recv_cb) |
Receive data, asyncrhonous interface. More... | |
static enum lsd_status | mw_udp_reuse_recv (struct mw_reuse_payload *data, int16_t len, void *ctx, lsd_recv_cb recv_cb) |
Receive data using an UDP socket in reuse mode. More... | |
static enum lsd_status | mw_udp_reuse_send (uint8_t ch, const struct mw_reuse_payload *data, int16_t len, void *ctx, lsd_send_cb send_cb) |
Send data using a UDP socket in reuse mode. More... | |
static enum lsd_status | mw_send (uint8_t ch, const char *data, int16_t len, void *ctx, lsd_send_cb send_cb) |
Sends data through a socket, using a previously allocated channel. Asynchronous interface. More... | |
enum mw_err | mw_recv_sync (uint8_t *ch, char *buf, int16_t *buf_len, int16_t tout_frames) |
Receive data, syncrhonous interface. More... | |
enum mw_err | mw_send_sync (uint8_t ch, const char *data, uint16_t len, int16_t tout_frames) |
Sends data through a socket, using a previously allocated channel. Synchronous interface. More... | |
union mw_msg_sys_stat * | mw_sys_stat_get (void) |
Get system status. More... | |
enum mw_sock_stat | mw_sock_stat_get (uint8_t ch) |
Get socket status. More... | |
enum mw_err | mw_sntp_cfg_set (const char *tz_str, const char *server[3]) |
Configure SNTP parameters and timezone. More... | |
enum mw_err | mw_sntp_cfg_get (char **tz_str, char *server[3]) |
Get SNTP parameters and timezone configuration. More... | |
char * | mw_date_time_get (uint32_t dt_bin[2]) |
Get date and time. More... | |
enum mw_err | mw_flash_id_get (uint8_t *man_id, uint16_t *dev_id) |
Get the identifiers of the flash chip in the WiFi module. More... | |
enum mw_err | mw_flash_sector_erase (uint16_t sect) |
Erase a 4 KiB Flash sector. Every byte of an erased sector will be read as 0xFF. More... | |
enum mw_err | mw_flash_write (uint32_t addr, uint8_t *data, uint16_t data_len) |
Write data to specified flash address. More... | |
uint8_t * | mw_flash_read (uint32_t addr, uint16_t data_len) |
Read data from specified flash address. More... | |
enum mw_err | mw_gamertag_set (uint8_t slot, const struct mw_gamertag *gamertag) |
Set gamertag information for one slot. More... | |
struct mw_gamertag * | mw_gamertag_get (uint8_t slot) |
Get gamertag information for one slot. More... | |
enum mw_err | mw_log (const char *msg) |
Write a message to the WiFi module log trace. More... | |
enum mw_err | mw_factory_settings (void) |
Set factory default configuration. More... | |
void | mw_power_off (void) |
Powers off the WiFi module. More... | |
void | mw_sleep (int16_t frames) |
Sleep the specified amount of frames. More... | |
enum mw_err | mw_http_url_set (const char *url) |
Set URL for HTTP requests. More... | |
enum mw_err | mw_http_method_set (enum mw_http_method method) |
Set method for HTTP requests. More... | |
enum mw_err | mw_http_header_add (const char *key, const char *value) |
Add an HTTP header. More... | |
enum mw_err | mw_http_header_del (const char *key) |
Delete a previously added HTTP header. More... | |
enum mw_err | mw_http_open (uint32_t content_len) |
Open HTTP connection. More... | |
int16_t | mw_http_finish (uint32_t *content_len, int16_t tout_frames) |
Finish an opened HTTP request. More... | |
uint32_t | mw_http_cert_query (void) |
Query the X.509 hash of the installed PEM certificate. More... | |
enum mw_err | mw_http_cert_set (uint32_t cert_hash, const char *cert, uint16_t cert_len) |
Set the PEM certificate to use on HTTPS requests. More... | |
int16_t | mw_http_cleanup (void) |
Clean-up an HTTP request, freeing associated resources. More... | |
char * | mw_def_server_get (void) |
Get the default server used for MegaWiFi connections. More... | |
enum mw_err | mw_def_server_set (const char *server_url) |
Set the default server used for MegaWiFi connections. More... | |
uint8_t * | mw_hrng_get (uint16_t rnd_len) |
Get random numbers. More... | |
enum mw_err | mw_ga_endpoint_set (const char *endpoint, const char *priv_key) |
Set endpoint for Game API. More... | |
enum mw_err | mw_ga_key_value_add (const char **key, const char **value, uint16_t num_pairs) |
Add parameters to the Game API request in key/value format. More... | |
int16_t | mw_ga_request (enum mw_http_method method, const char **path, uint8_t num_paths, const char **key, const char **value, uint8_t num_kv_pairs, uint32_t *content_len, int16_t tout_frames) |
Perform a GameAPI request, with the previously set endpoint and key/value pairs. More... | |
enum mw_err | mw_fw_upgrade (const char *name) |
Over-The-Air upgrade WiFi module firmware. More... | |
static enum lsd_status | mw_cmd_send (mw_cmd *cmd, void *ctx, lsd_send_cb send_cb) |
Send a command to the WiFi module. More... | |
static enum lsd_status | mw_cmd_recv (mw_cmd *rep, void *ctx, lsd_recv_cb recv_cb) |
Try obtaining a reply to a command. More... | |
MegaWiFi API implementation.
Definition in file megawifi.h.