SGDK
A free and open development kit for the Sega Mega Drive
|
MegaWiFi API implementation. More...
Go to the source code of this file.
Classes | |
struct | mw_ap_data |
Access Point data. More... | |
Macros | |
#define | MW_API_VERSION_MAJOR 1 |
API version implemented, major number. | |
#define | MW_API_VERSION_MINOR 5 |
API version implemented, minor number. | |
#define | MW_COMMAND_TOUT_MS 1000 |
Timeout for standard commands in milliseconds. | |
#define | MW_CONNECT_TOUT_MS 10000 |
Timeout for TCP connections. | |
#define | MW_HTTP_OPEN_TOUT_MS 10000 |
Timeout for HTTP open command in milliseconds. | |
#define | MW_SCAN_TOUT_MS 10000 |
Timeout for the AP scan command in milliseconds. | |
#define | MW_ASSOC_TOUT_MS 20000 |
Timeout for the AP associate command in milliseconds. | |
#define | MW_ASSOC_WAIT_SLEEP_MS 5000 |
Time to sleep before waiting for assoc in milliseconds. | |
#define | MW_UPGRADE_TOUT_MS 180000 |
Timeout for upgrade command in milliseconds. | |
#define | MW_PING_TOUT_MS 30000 |
Timeout for ping command in milliseconds. | |
#define | MW_STAT_POLL_MS 250 |
Milliseconds between status polls while in wm_ap_assoc_wait() | |
#define | MW_BUFLEN 1460 |
Length of the wflash buffer. | |
#define | MW__RESET UART_MCR__OUT1 |
Reset out. | |
#define | MW__PRG UART_MCR__OUT2 |
Program out. | |
#define | MW__PD UART_MCR__DTR |
Power Down out. | |
#define | MW__DAT UART_MSR__DSR |
Data request in. | |
#define | MW_SSID_MAXLEN 32 |
Maximum SSID length (including '\0'). | |
#define | MW_PASS_MAXLEN 64 |
Maximum password length (including '\0'). | |
#define | MW_NTP_POOL_MAXLEN 80 |
Maximum length of an NTP pool URI (including '\0'). | |
#define | MW_NUM_CFG_SLOTS 3 |
Number of AP configurations stored to nvflash. | |
#define | MW_NUM_DNS_SERVERS 2 |
Number of DSN servers supported per AP configuration. | |
#define | MW_FSM_QUEUE_LEN 8 |
Length of the FSM queue. | |
#define | MW_MAX_SOCK 3 |
Maximum number of simultaneous TCP connections. | |
#define | MW_CTRL_CH 0 |
Control channel used for LSD protocol. | |
#define | MW_HTTP_CH LSD_MAX_CH - 1 |
Channel used for HTTP requests and cert sets. | |
#define | MW_CMD_MIN_BUFLEN 168 |
#define | mw_tcp_disconnect(ch) |
Closes a TCP socket. This is an alias of mw_close(). | |
#define | mw_udp_unset(ch) |
Frees a UDP socket. This is an alias of mw_close(). | |
#define | mw_module_reset() |
Puts the WiFi module in reset state. | |
#define | mw_module_start() |
Releases the module from reset state. | |
Enumerations | |
enum | mw_err { MW_ERR_NONE = 0 , MW_ERR , MW_ERR_NOT_READY , MW_ERR_BUFFER_TOO_SHORT , MW_ERR_PARAM , MW_ERR_SEND , MW_ERR_RECV } |
Error codes for MegaWiFi API functions. More... | |
enum | mw_http_method { MW_HTTP_METHOD_GET = 0 , MW_HTTP_METHOD_POST , MW_HTTP_METHOD_PUT , MW_HTTP_METHOD_PATCH , MW_HTTP_METHOD_DELETE , MW_HTTP_METHOD_HEAD , MW_HTTP_METHOD_NOTIFY , MW_HTTP_METHOD_SUBSCRIBE , MW_HTTP_METHOD_UNSUBSCRIBE , MW_HTTP_METHOD_OPTIONS , MW_HTTP_METHOD_MAX } |
Supported HTTP methods. More... | |
enum | mw_if_type { MW_IF_STATION = 0 , MW_IF_SOFTAP , MW_IF_MAX } |
Interface type for the mw_bssid_get() function. More... | |
Functions | |
int16_t | mw_init (uint16_t *cmd_buf, uint16_t buf_len) |
Module initialization. Must be called once before using any other function. It also initializes de UART. | |
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. | |
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. | |
enum mw_err | mw_version_get (uint8_t version[3], char **variant) |
Obtain module version numbers and string. | |
uint8_t * | mw_bssid_get (enum mw_if_type interface_type) |
Gets the module BSSID (the MAC address) for the specified interface. | |
enum mw_err | mw_default_cfg_set (void) |
Set default module configuration (AKA factory settings). | |
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). | |
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). | |
enum mw_err | mw_ip_cfg_set (uint8_t slot, const struct mw_ip_cfg *ip) |
Set IPv4 configuration. | |
enum mw_err | mw_ip_cfg_get (uint8_t slot, struct mw_ip_cfg **ip) |
Get IPv4 configuration. | |
enum mw_err | mw_wifi_adv_cfg_set (const struct mw_wifi_adv_cfg *wifi) |
Set advanced WiFi configuration. | |
struct mw_wifi_adv_cfg * | mw_wifi_adv_cfg_get (void) |
Get advanced WiFi configuration. | |
enum mw_err | mw_cfg_save (void) |
Saves changed configuration parameters to non-volatile memory. | |
enum mw_err | mw_ip_current (struct mw_ip_cfg **ip) |
Get current IP configuration, of the joined AP. | |
int16_t | mw_ap_scan (enum mw_phy_type phy_type, char **ap_data, uint8_t *aps) |
Scan for access points. | |
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. | |
enum mw_err | mw_ap_assoc (uint8_t slot) |
Tries associating to an AP. If successful, also configures IPv4. | |
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. | |
enum mw_err | mw_def_ap_cfg (uint8_t slot) |
Sets default AP/IP configuration. | |
enum mw_err | mw_ap_disassoc (void) |
Dissasociates from a previously associated AP. | |
int16_t | mw_def_ap_cfg_get (void) |
Gets default AP/IP configuration slot. | |
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. | |
enum mw_err | mw_close (uint8_t ch) |
Closes and disconnects a socket from specified channel. | |
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. | |
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. | |
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(). | |
enum mw_err | mw_recv_sync (uint8_t *ch, char *buf, int16_t *buf_len, int16_t tout_frames) |
Receive data, syncrhonous interface. | |
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. | |
union mw_msg_sys_stat * | mw_sys_stat_get (void) |
Get system status. | |
enum mw_sock_stat | mw_sock_stat_get (uint8_t ch) |
Get socket status. | |
enum mw_err | mw_sntp_cfg_set (const char *tz_str, const char *server[3]) |
Configure SNTP parameters and timezone. | |
enum mw_err | mw_sntp_cfg_get (char **tz_str, char *server[3]) |
Get SNTP parameters and timezone configuration. | |
char * | mw_date_time_get (uint32_t dt_bin[2]) |
Get date and time. | |
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. | |
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. | |
enum mw_err | mw_flash_write (uint32_t addr, uint8_t *data, uint16_t data_len) |
Write data to specified flash address. | |
uint8_t * | mw_flash_read (uint32_t addr, uint16_t data_len) |
Read data from specified flash address. | |
enum mw_err | mw_gamertag_set (uint8_t slot, const struct mw_gamertag *gamertag) |
Set gamertag information for one slot. | |
struct mw_gamertag * | mw_gamertag_get (uint8_t slot) |
Get gamertag information for one slot. | |
enum mw_err | mw_log (const char *msg) |
Write a message to the WiFi module log trace. | |
enum mw_err | mw_factory_settings (void) |
Set factory default configuration. | |
void | mw_power_off (void) |
Powers off the WiFi module. | |
void | mw_sleep (int16_t frames) |
Sleep the specified amount of frames. | |
enum mw_err | mw_http_url_set (const char *url) |
Set URL for HTTP requests. | |
enum mw_err | mw_http_method_set (enum mw_http_method method) |
Set method for HTTP requests. | |
enum mw_err | mw_http_header_add (const char *key, const char *value) |
Add an HTTP header. | |
enum mw_err | mw_http_header_del (const char *key) |
Delete a previously added HTTP header. | |
enum mw_err | mw_http_open (uint32_t content_len) |
Open HTTP connection. | |
int16_t | mw_http_finish (uint32_t *content_len, int16_t tout_frames) |
Finish an opened HTTP request. | |
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. | |
int16_t | mw_http_cleanup (void) |
Clean-up an HTTP request, freeing associated resources. | |
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. | |
uint8_t * | mw_hrng_get (uint16_t rnd_len) |
Get random numbers. | |
enum mw_err | mw_ga_endpoint_set (const char *endpoint, const char *priv_key) |
Set endpoint for Game API. | |
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. | |
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. | |
enum mw_err | mw_fw_list_upgrades (uint8_t page, uint8_t size, uint8_t offset, char **listUpgrades, uint8_t *len, uint8_t *total) |
List available upgrades WiFi module firmware. | |
enum mw_err | mw_fw_upgrade (const char *name) |
Over-The-Air upgrade WiFi module firmware. | |
struct mw_ping_response * | mw_ping (const char *domain, u8 retries) |
Run ICMP requesto to domain. | |
MegaWiFi API implementation.