MegaWiFi 1.5
MegaWiFi API documentation
|
MegaWiFi API implementation. More...
Modules | |
mw_ctrl_pins | |
Pins used to control WiFi module. | |
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_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.
API to communicate with the wifi module and the Internet. API calls are documented and most of them are self explanatory. Mostly the only weird thing about the API is UDP reuse mode. If you enable reuse mode (setting the dst_addr and/or dst_port to NULL in the mw_udp_set() call), received data will prepend the IP and port of the peer (using mw_reuse_payload data structure), and data to be sent also requires the IP and port to be prepended to the payload.
#define MW_API_VERSION_MAJOR 1 |
API version implemented, major number.
Definition at line 36 of file megawifi.h.
#define MW_API_VERSION_MINOR 5 |
API version implemented, minor number.
Definition at line 39 of file megawifi.h.
#define MW_ASSOC_TOUT_MS 20000 |
Timeout for the AP associate command in milliseconds.
Definition at line 50 of file megawifi.h.
#define MW_ASSOC_WAIT_SLEEP_MS 5000 |
Time to sleep before waiting for assoc in milliseconds.
Definition at line 52 of file megawifi.h.
#define MW_CMD_MIN_BUFLEN 168 |
Minimum command buffer length to be able to send all available commands with minimum data payload. This length might not guarantee that commands like mw_sntp_cfg_set() can be sent if payload length is big enough).
Definition at line 115 of file megawifi.h.
#define MW_COMMAND_TOUT_MS 1000 |
Timeout for standard commands in milliseconds.
Definition at line 42 of file megawifi.h.
#define MW_CONNECT_TOUT_MS 10000 |
Timeout for TCP connections.
Definition at line 44 of file megawifi.h.
#define MW_CTRL_CH 0 |
Control channel used for LSD protocol.
Definition at line 108 of file megawifi.h.
#define MW_FSM_QUEUE_LEN 8 |
Length of the FSM queue.
Definition at line 104 of file megawifi.h.
#define MW_HTTP_CH LSD_MAX_CH - 1 |
Channel used for HTTP requests and cert sets.
Definition at line 110 of file megawifi.h.
#define MW_HTTP_OPEN_TOUT_MS 10000 |
Timeout for HTTP open command in milliseconds.
Definition at line 46 of file megawifi.h.
#define MW_MAX_SOCK 3 |
Maximum number of simultaneous TCP connections.
Definition at line 106 of file megawifi.h.
#define mw_module_reset | ( | ) | do{uart_set_bits(MCR, MW__RESET);}while(0) |
Puts the WiFi module in reset state.
Definition at line 664 of file megawifi.h.
#define mw_module_start | ( | ) | do{uart_clr_bits(MCR, MW__RESET);}while(0) |
Releases the module from reset state.
Definition at line 669 of file megawifi.h.
#define MW_NTP_POOL_MAXLEN 80 |
Maximum length of an NTP pool URI (including '\0').
Definition at line 98 of file megawifi.h.
#define MW_NUM_CFG_SLOTS 3 |
Number of AP configurations stored to nvflash.
Definition at line 100 of file megawifi.h.
#define MW_NUM_DNS_SERVERS 2 |
Number of DSN servers supported per AP configuration.
Definition at line 102 of file megawifi.h.
#define MW_PASS_MAXLEN 64 |
Maximum password length (including '\0').
Definition at line 96 of file megawifi.h.
#define MW_SCAN_TOUT_MS 10000 |
Timeout for the AP scan command in milliseconds.
Definition at line 48 of file megawifi.h.
#define MW_SSID_MAXLEN 32 |
Maximum SSID length (including '\0').
Definition at line 94 of file megawifi.h.
#define MW_STAT_POLL_MS 250 |
Milliseconds between status polls while in wm_ap_assoc_wait()
Definition at line 56 of file megawifi.h.
#define mw_tcp_disconnect | ( | ch | ) | mw_close(ch) |
Closes a TCP socket. This is an alias of mw_close().
Definition at line 412 of file megawifi.h.
#define mw_udp_unset | ( | ch | ) | mw_close(ch) |
Frees a UDP socket. This is an alias of mw_close().
Definition at line 430 of file megawifi.h.
#define MW_UPGRADE_TOUT_MS 180000 |
Timeout for upgrade command in milliseconds.
Definition at line 54 of file megawifi.h.
enum mw_err |
Error codes for MegaWiFi API functions.
Definition at line 59 of file megawifi.h.
enum mw_http_method |
Supported HTTP methods.
Definition at line 70 of file megawifi.h.
enum mw_if_type |
Interface type for the mw_bssid_get() function.
Enumerator | |
---|---|
MW_IF_STATION | Station interface. |
MW_IF_SOFTAP | Access Point interface. |
MW_IF_MAX | Number of supported interface types. |
Definition at line 127 of file megawifi.h.
enum mw_err mw_ap_assoc | ( | uint8_t | slot | ) |
Tries associating to an AP. If successful, also configures IPv4.
[in] | slot | Configuration slot to use. |
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.
[in] | tout_frames | Maximun number of frames to wait for association. Set to TSK_PEND_FOREVER for an infinite wait. |
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).
[in] | slot | Configuration slot to use. |
[out] | ssid | String with the AP SSID got. |
[out] | pass | String with the AP SSID got. |
[out] | phy_type | Bitmask with the PHY type configuration. |
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).
[in] | slot | Configuration slot to use. |
[in] | ssid | String with the AP SSID to set. |
[in] | pass | String with the AP SSID to set. |
[in] | phy_type | Bitmask with the PHY type configuration. |
enum mw_err mw_ap_disassoc | ( | void | ) |
Dissasociates from a previously associated AP.
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.
[in] | ap_data | Access point data obtained from mw_ap_scan(). |
[in] | pos | Position at which to extract data. |
[out] | apd | Pointer to the extracted data from an AP. |
[in] | data_len | Lenght of apData. |
int16_t mw_ap_scan | ( | enum mw_phy_type | phy_type, |
char ** | ap_data, | ||
uint8_t * | aps | ||
) |
Scan for access points.
[in] | phy_type | Bitmask with the PHY type configuration. |
[out] | ap_data | Data of the found access points. Each entry has the format specified on the mw_ap_data structure. |
[out] | aps | Number of found access points. |
uint8_t * mw_bssid_get | ( | enum mw_if_type | interface_type | ) |
Gets the module BSSID (the MAC address) for the specified interface.
[in] | interface_type | Type of the interface to obtain BSSID from. |
enum mw_err mw_cfg_save | ( | void | ) |
Saves changed configuration parameters to non-volatile memory.
enum mw_err mw_close | ( | uint8_t | ch | ) |
Closes and disconnects a socket from specified channel.
This function can be used to free the channel associated to both TCP and UDP sockets.
[in] | ch | Channel associated to the socket to disconnect. |
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.
[in] | cmd_recv_cb | Callback to be run when data is received while waiting for a command reply. |
|
inlinestatic |
Try obtaining a reply to a command.
[in] | rep | Buffer to hold the command reply. |
[in] | ctx | Context for the reception callback. |
[in] | recv_cb | Callback for data reception completion. |
Definition at line 968 of file megawifi.h.
|
inlinestatic |
Send a command to the WiFi module.
[in] | cmd | Pointer to the filled mw_cmd command structure. |
[in] | ctx | Context for callback function. |
[in] | send_cb | Callback for the send operation completion. |
Definition at line 951 of file megawifi.h.
char * mw_date_time_get | ( | uint32_t | dt_bin[2] | ) |
Get date and time.
[out] | dt_bin | Date and time in seconds since Epoch. If set to NULL, this info is not filled (but return value will still be properly set). |
enum mw_err mw_def_ap_cfg | ( | uint8_t | slot | ) |
Sets default AP/IP configuration.
[in] | slot | Configuration slot to use. |
int16_t mw_def_ap_cfg_get | ( | void | ) |
Gets default AP/IP configuration slot.
char * mw_def_server_get | ( | void | ) |
Get the default server used for MegaWiFi connections.
enum mw_err mw_def_server_set | ( | const char * | server_url | ) |
Set the default server used for MegaWiFi connections.
[in] | server_url | The server URL to set. |
enum mw_err mw_default_cfg_set | ( | void | ) |
Set default module configuration (AKA factory settings).
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.
[out] | major | Major version number. |
[out] | minor | Minor version number. |
[out] | variant | String with firmware variant ("std" for standard). |
enum mw_err mw_factory_settings | ( | void | ) |
Set factory default configuration.
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.
[out] | man_id | ID of the flash chip manufacturer. |
[out] | dev_id | Device IDs of the flash chip. |
uint8_t * mw_flash_read | ( | uint32_t | addr, |
uint16_t | data_len | ||
) |
Read data from specified flash address.
[in] | addr | Address from which data will be read. |
[in] | data_len | Number of bytes to read from addr. |
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.
[in] | sect | Sector number to erase. |
enum mw_err mw_flash_write | ( | uint32_t | addr, |
uint8_t * | data, | ||
uint16_t | data_len | ||
) |
Write data to specified flash address.
[in] | addr | Address to which data will be written. |
[in] | data | Data to be written to flash chip. |
[in] | data_len | Length in bytes of data field. |
enum mw_err mw_fw_upgrade | ( | const char * | name | ) |
Over-The-Air upgrade WiFi module firmware.
[in] | name | Name of the firmware blob to upgrade. E.g. "mw_rtos_std_v1.4.1" |
enum mw_err mw_ga_endpoint_set | ( | const char * | endpoint, |
const char * | priv_key | ||
) |
Set endpoint for Game API.
Example endpoint for GameJolt: "https://api.gamejolt.com/api/game/v1_2/".
[in] | endpoint | Endpoint for the Game API to set. |
[in] | priv_key | Private key used for request signatures. |
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.
Example key:value pair for GameJolt: "game_id":"123456".
[in] | key | Array with the keys to add. |
[in] | value | Array with the values to add |
[in] | num_pairs | Number of key/value pairs to add. |
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.
The request can also have URL encoded parameters. that are added to the previously set key/value pairs.
Example request for GameJolt:
[in] | method | HTTP method to use. Most likely MW_HTTP_METHOD_GET. |
[in] | path | Additional paths to add to the request. |
[in] | num_paths | Number of additional paths to add. |
[in] | key | Additional paths to add to the request. |
[in] | value | Additional paths to add to the request. |
[in] | num_kv_pairs | Number of key/value pairs. |
[out] | content_len | Content length of the API response. |
[in] | tout_frames | Number of frames to wait before canceling the request due to a timeout error. |
struct mw_gamertag * mw_gamertag_get | ( | uint8_t | slot | ) |
Get gamertag information for one slot.
[in] | slot | Slot to get gamertag from. |
enum mw_err mw_gamertag_set | ( | uint8_t | slot, |
const struct mw_gamertag * | gamertag | ||
) |
Set gamertag information for one slot.
[in] | slot | Slot to use (from 0 to 2). |
[in] | gamertag | Gamertag information to set on specified slot. |
uint8_t * mw_hrng_get | ( | uint16_t | rnd_len | ) |
Get random numbers.
[in] | rnd_len | Number of bytes of resulting random array. |
uint32_t mw_http_cert_query | ( | void | ) |
Query the X.509 hash of the installed PEM certificate.
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.
The certificate is stored on the non volatile memory of the module, and when present will be used in HTTPS requestes. This function can also be used to delete a previously saved certificate using a NULL input value.
[in] | cert_hash | X.509 hash of the certificate to set, ignored if cert_len set to 0. |
[in] | cert | PEM certificate in plain text. Ignored if cert_len set to 0. previously stored certificate. |
[in] | cert_len | Certificate length in bytes. Set to 0 to delete a previously stored certificate. |
int16_t mw_http_cleanup | ( | void | ) |
Clean-up an HTTP request, freeing associated resources.
int16_t mw_http_finish | ( | uint32_t * | content_len, |
int16_t | tout_frames | ||
) |
Finish an opened HTTP request.
After a successful call to mw_http_open(), and sending the content (if any), call this function to receive the HTTP response headers, and obtain the length of the body to receive with a further call to mw_recv() or mw_recv_sync(), using MW_HTTP_CH.
[out] | content_len | Length of the response content to receive after a successfull call to this function. |
[in] | tout_frames | Maximun number of frames to wait for reply. |
enum mw_err mw_http_header_add | ( | const char * | key, |
const char * | value | ||
) |
Add an HTTP header.
[in] | key | Header key. |
[in] | value | Value to set for the key. |
enum mw_err mw_http_header_del | ( | const char * | key | ) |
Delete a previously added HTTP header.
[in] | key | Key of the header to delete. |
enum mw_err mw_http_method_set | ( | enum mw_http_method | method | ) |
Set method for HTTP requests.
[in] | method | Method to set. |
enum mw_err mw_http_open | ( | uint32_t | content_len | ) |
Open HTTP connection.
This functions opens the HTTP connection, sends the HTTP headers, and prepares the module to send the specified content_len if (if any) with a successive mw_send() or mw_send_sync(), using MW_HTTP_CH channel.
[in] | content_len | Length of the content to write in HTTP request, after a successfull call to this function. |
enum mw_err mw_http_url_set | ( | const char * | url | ) |
Set URL for HTTP requests.
[in] | url | URL to set. |
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.
[in] | cmd_buf | Pointer to the buffer used to send and receive commands. |
[in] | buf_len | Length of cmdBuf in bytes. |
Get IPv4 configuration.
[in] | slot | Configuration slot to use. |
[out] | ip | Double pointer to mw_ip_cfg structure, with IP conf. |
Set IPv4 configuration.
[in] | slot | Configuration slot to use. |
[in] | ip | Pointer to the mw_ip_cfg structure, with IP configuration. |
Get current IP configuration, of the joined AP.
[out] | ip | Double pointer to mw_ip_cfg structure, with IP conf. |
enum mw_err mw_log | ( | const char * | msg | ) |
Write a message to the WiFi module log trace.
[in] | msg | Message to write to the log trace. |
void mw_power_off | ( | void | ) |
Powers off the WiFi module.
The module will be put in deep sleep mode. To wake it up, the RESET pin must be toggled.
|
inlinestatic |
Processes sends/receives pending data.
Call this function as much as possible to process incoming/outgoing data.
Definition at line 152 of file megawifi.h.
|
inlinestatic |
Receive data, asyncrhonous interface.
[in] | buf | Reception buffer. |
[in] | len | Length of the receive buffer. |
[in] | ctx | Context pointer to pass to the reception callbak. |
[in] | recv_cb | Callback to run when reception is complete or errors. |
Definition at line 466 of file megawifi.h.
enum mw_err mw_recv_sync | ( | uint8_t * | ch, |
char * | buf, | ||
int16_t * | buf_len, | ||
int16_t | tout_frames | ||
) |
Receive data, syncrhonous interface.
[out] | ch | Channel on which data was received. |
[out] | buf | Reception buffer. |
[in,out] | buf_len | On input, length of the buffer. On output, received data length in bytes. |
[in] | tout_frames | Reception timeout in frames. Set to TSK_PEND_FOREVER for infinite wait (dangerous!). |
|
inlinestatic |
Sends data through a socket, using a previously allocated channel. Asynchronous interface.
[in] | ch | Channel used to send the data. |
[in] | data | Buffer to send. |
[in] | len | Length of the data to send. |
[in] | ctx | Context for the send callback function. |
[in] | send_cb | Callback to run when send completes or errors. |
Definition at line 526 of file megawifi.h.
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.
[in] | ch | Channel used to send the data. |
[in] | data | Buffer to send. |
[in] | len | Length of the data to send. |
[in] | tout_frames | Timeout for send operation in frames. Set to 0 for infinite wait (dangerous!). |
void mw_sleep | ( | int16_t | frames | ) |
Sleep the specified amount of frames.
[in] | frames | Number of frames to sleep. |
enum mw_err mw_sntp_cfg_get | ( | char ** | tz_str, |
char * | server[3] | ||
) |
Get SNTP parameters and timezone configuration.
[out] | tz_str | Timezone string (e.g. "CET"). See tzset(3) for details. |
[out] | server | Array of three NTP server pointers. If less than 3 servers are configured, unused ones will be NULL. |
enum mw_err mw_sntp_cfg_set | ( | const char * | tz_str, |
const char * | server[3] | ||
) |
Configure SNTP parameters and timezone.
[in] | tz_str | Timezone string (e.g. "CET"). See tzset(3) for details. |
[in] | server | Array of up to three NTP servers. If less than three servers are desired, unused entries must be empty. |
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().
[in] | ch | Channel associated to the socket to monitor. |
[in] | tout_frames | Maximum number of frames to wait for connection. Set to 0 for an infinite wait. |
enum mw_sock_stat mw_sock_stat_get | ( | uint8_t | ch | ) |
Get socket status.
[in] | ch | Channel associated to the socket asked for status. |
union mw_msg_sys_stat * mw_sys_stat_get | ( | void | ) |
Get system status.
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.
[in] | ch | Channel associated to the socket bound t port. |
[in] | port | Port number to which the socket will be bound. |
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.
[in] | ch | Channel used for the connection. |
[in] | dst_addr | Address (IP or DNS entry) of the server. |
[in] | dst_port | Port in which server is listening. |
[in] | src_port | Port from which try establishing connection. Set to 0 or empty string for automatic port allocation. |
|
inlinestatic |
Receive data using an UDP socket in reuse mode.
[in] | data | Receive buffer including the remote address and the data payload. |
[in] | len | Length of the receive buffer. |
[in] | ctx | Context pointer to pass to the reception callbak. |
[in] | recv_cb | Callback to run when reception is complete or errors. |
Definition at line 483 of file megawifi.h.
|
inlinestatic |
Send data using a UDP socket in reuse mode.
[in] | ch | Channel to use for the send operation. |
[in] | data | Send buffer including the remote address and the data payload. |
[in] | len | Length of the receive buffer. |
[in] | ctx | Context pointer to pass to the reception callbak. |
[in] | send_cb | Callback to run when sending completes or errors. |
Definition at line 501 of file megawifi.h.
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.
[in] | ch | Channel used for the connection. |
[in] | dst_addr | Address (IP or DNS entry) to send data to. |
[in] | dst_port | Port to send data to. |
[in] | src_port | Local port to listen message on. |
enum mw_err mw_version_get | ( | uint8_t | version[3], |
char ** | variant | ||
) |
Obtain module version numbers and string.
[out] | version | Version numbers (major, minor, micro) in order. |
[out] | variant | String with firmware variant ("std" for standard). |
struct mw_wifi_adv_cfg * mw_wifi_adv_cfg_get | ( | void | ) |
Get advanced WiFi configuration.
enum mw_err mw_wifi_adv_cfg_set | ( | const struct mw_wifi_adv_cfg * | wifi | ) |
Set advanced WiFi configuration.