25#define MW_MSG_MAX_BUFLEN 512
26#define MW_MS_TO_FRAMES(ms) (((ms)*60/500 + 1)/2)
31#define MW_CMD_HEADLEN (2 * sizeof(uint16_t))
34#define MW_CMD_MAX_BUFLEN (MW_MSG_MAX_BUFLEN - MW_CMD_HEADLEN)
37#define MW_SSID_MAXLEN 32
39#define MW_PASS_MAXLEN 64
42#define MW_GT_NICKNAME_MAX 32
44#define MW_GT_SECURITY_MAX 32
46#define MW_GT_TAGLINE_MAX 32
48#define MW_GT_AVATAR_WIDTH 32
50#define MW_GT_AVATAR_HEIGHT 48
52#define MW_GT_TG_TOKEN_MAX 64
55#define UNUSED_PARAM(x) (void)x
288#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
328 uint32_t transmitted;
330 uint32_t total_time_ms;
mw_sock_stat
Socket status.
Definition mw-msg.h:277
#define MW_CMD_MAX_BUFLEN
Maximum data length contained inside command buffer.
Definition mw-msg.h:34
enum PACKED mw_command
Supported commands.
Definition mw-msg.h:58
#define MW_GT_AVATAR_HEIGHT
Gamertag avatar graphick height in pixels.
Definition mw-msg.h:50
#define MW_PASS_MAXLEN
Maximum password length (including '\0').
Definition mw-msg.h:39
#define MW_GT_TAGLINE_MAX
Gamertag tagline maximum length.
Definition mw-msg.h:46
#define MW_GT_SECURITY_MAX
Gamertag security maximum length.
Definition mw-msg.h:44
#define MW_GT_AVATAR_WIDTH
Gamertag avatar graphick width in pixels.
Definition mw-msg.h:48
#define MW_SSID_MAXLEN
Maximum SSID length (including '\0').
Definition mw-msg.h:37
#define MW_GT_NICKNAME_MAX
Gamertag nickname maximum length.
Definition mw-msg.h:42
#define MW_GT_TG_TOKEN_MAX
Telegram token maximum length.
Definition mw-msg.h:52
enum PACKED mw_phy_type
WiFi PHY configuration for the connection to the AP.
Definition mw-msg.h:138
mw_state
MwState Possible states of the system state machine.
Definition mw-msg.h:266
enum PACKED mw_security
Supported security protocols.
Definition mw-msg.h:122
@ MW_SOCK_NONE
Unused socket.
Definition mw-msg.h:278
@ MW_SOCK_TCP_EST
TCP socket, connection established.
Definition mw-msg.h:280
@ MW_SOCK_UDP_READY
UDP socket ready for sending/receiving.
Definition mw-msg.h:281
@ MW_SOCK_TCP_LISTEN
Socket bound and listening.
Definition mw-msg.h:279
@ MW_ST_INIT
Initialization state.
Definition mw-msg.h:267
@ MW_ST_AP_JOIN
Trying to join an access point.
Definition mw-msg.h:269
@ MW_ST_IDLE
Idle state, until connected to an AP.
Definition mw-msg.h:268
@ MW_ST_MAX
Limit number for state machine.
Definition mw-msg.h:273
@ MW_ST_READY
Connected to The Internet.
Definition mw-msg.h:271
@ MW_ST_SCAN
Scanning access points.
Definition mw-msg.h:270
@ MW_ST_TRANSPARENT
Transparent communication state.
Definition mw-msg.h:272
MW_CMD_GAME_ENDPOINT_SET
Set game API endpoint.
Definition mw-msg.h:115
MW_CMD_WIFI_ADV_SET
Set advanced WiFi parameters.
Definition mw-msg.h:111
MW_CMD_GAMERTAG_SET
Configures a gamertag.
Definition mw-msg.h:93
MW_SEC_OPEN
Open WiFi network.
Definition mw-msg.h:123
MW_CMD_HTTP_CLEANUP
Clean request data.
Definition mw-msg.h:106
MW_CMD_ECHO
Echo data.
Definition mw-msg.h:61
MW_CMD_SERVER_URL_SET
Set the main server URL.
Definition mw-msg.h:109
MW_SEC_WEP
WEP security.
Definition mw-msg.h:124
MW_CMD_IP_CFG
Configure IPv4.
Definition mw-msg.h:67
MW_CMD_HTTP_METHOD_SET
Set HTTP request method.
Definition mw-msg.h:99
MW_CMD_UPGRADE_LIST
Get firmware upgrade versions.
Definition mw-msg.h:113
MW_SEC_WPA2_WPA3_PSK
WPA2 or WPA3 security.
Definition mw-msg.h:130
MW_CMD_DEF_AP_CFG
Set default AP configuration.
Definition mw-msg.h:69
MW_SEC_OWE
OWE security.
Definition mw-msg.h:132
MW_CMD_GAME_REQUEST
Perform a game API request.
Definition mw-msg.h:117
MW_SEC_WPA3_PSK
WPA3 PSK security.
Definition mw-msg.h:129
MW_CMD_HTTP_OPEN
Open HTTP request.
Definition mw-msg.h:104
MW_CMD_SLEEP
Set the module to sleep mode.
Definition mw-msg.h:97
MW_CMD_OK
OK command reply.
Definition mw-msg.h:59
MW_CMD_UPGRADE_PERFORM
Start firmware upgrade.
Definition mw-msg.h:114
MW_CMD_GAMERTAG_GET
Gets a stored gamertag.
Definition mw-msg.h:94
MW_CMD_LOG
Write a message to log trace.
Definition mw-msg.h:95
MW_CMD_SNTP_CFG
Configure SNTP service.
Definition mw-msg.h:81
MW_CMD_BSSID_GET
Gets the WiFi BSSID.
Definition mw-msg.h:92
MW_CMD_NV_CFG_SAVE
Save non-volatile config.
Definition mw-msg.h:112
MW_SEC_WPA2_ENTERPRISE
WPA2 Enterprise security.
Definition mw-msg.h:128
MW_SEC_WPA2_PSK
WPA2 PSK security.
Definition mw-msg.h:126
MW_CMD_PING
Ping host.
Definition mw-msg.h:80
MW_CMD_HTTP_CERT_QUERY
Query the X.509 hash of cert.
Definition mw-msg.h:100
MW_CMD_UDP_SET
Configure UDP socket.
Definition mw-msg.h:77
MW_PHY_11B
Legacy, do not use unless necessary.
Definition mw-msg.h:139
MW_CMD_SERVER_URL_GET
Get the main server URL.
Definition mw-msg.h:108
MW_CMD_HTTP_URL_SET
Set HTTP URL for request.
Definition mw-msg.h:98
MW_SEC_WPA_PSK
WPA PSK security.
Definition mw-msg.h:125
MW_CMD_AP_CFG
Configure access point.
Definition mw-msg.h:63
MW_CMD_TCP_BIND
Bind TCP socket to port.
Definition mw-msg.h:74
MW_CMD_WIFI_ADV_GET
Get advanced WiFi parameters.
Definition mw-msg.h:110
MW_CMD_HTTP_HDR_ADD
Add HTTP request header.
Definition mw-msg.h:102
MW_CMD_TCP_CON
Connect TCP socket.
Definition mw-msg.h:73
MW_CMD_SNTP_CFG_GET
Get SNTP configuration.
Definition mw-msg.h:82
MW_CMD_GAME_KEYVAL_ADD
Add key/value appended to requests.
Definition mw-msg.h:116
MW_CMD_FLASH_ID
Get WiFi flash chip identifiers.
Definition mw-msg.h:88
MW_CMD_DT_SET
Set date and time.
Definition mw-msg.h:84
MW_CMD_DEF_CFG_SET
Set default configuration.
Definition mw-msg.h:90
MW_CMD_AP_LEAVE
Leave previously joined AP.
Definition mw-msg.h:72
MW_CMD_SOCK_STAT
Get socket status.
Definition mw-msg.h:79
MW_CMD_FLASH_READ
Read from WiFi module flash.
Definition mw-msg.h:86
MW_CMD_HTTP_CERT_SET
Set HTTPS certificate.
Definition mw-msg.h:101
MW_SEC_WPA_WPA2_PSK
WPA or WPA2 security.
Definition mw-msg.h:127
MW_CMD_CLOSE
Disconnect and free TCP/UDP socket.
Definition mw-msg.h:76
MW_CMD_FLASH_WRITE
Write to WiFi module flash.
Definition mw-msg.h:85
MW_PHY_11BG
No 802.11n compatibility.
Definition mw-msg.h:140
MW_CMD_HTTP_FINISH
Finish HTTP request.
Definition mw-msg.h:105
MW_CMD_AP_SCAN
Scan for access points.
Definition mw-msg.h:62
MW_CMD_SYS_STAT
Get system status.
Definition mw-msg.h:89
MW_CMD_IP_CFG_GET
Get IPv4 configuration.
Definition mw-msg.h:68
MW_CMD_FLASH_ERASE
Erase sector from WiFi flash.
Definition mw-msg.h:87
MW_CMD_VERSION
Get firmware version.
Definition mw-msg.h:60
MW_SEC_WAPI_PSK
WAPI PSK security.
Definition mw-msg.h:131
MW_CMD_FACTORY_RESET
Set default configuratioSet default configuration.
Definition mw-msg.h:96
MW_CMD_DEF_AP_CFG_GET
Get default AP configuration.
Definition mw-msg.h:70
MW_CMD_DATETIME
Get date and time.
Definition mw-msg.h:83
MW_CMD_AP_JOIN
Join access point.
Definition mw-msg.h:71
MW_SEC_UNKNOWN
Unknown security.
Definition mw-msg.h:133
MW_CMD_IP_CURRENT
Get current IPv4 configuration.
Definition mw-msg.h:65
MW_CMD_HTTP_HDR_DEL
Delete HTTP request header.
Definition mw-msg.h:103
MW_CMD_HRNG_GET
Gets random numbers.
Definition mw-msg.h:91
MW_CMD_AP_CFG_GET
Get access point configuration.
Definition mw-msg.h:64
Flash chip identifiers.
Definition mw-msg.h:309
uint8_t manufacturer
Manufacturer ID.
Definition mw-msg.h:311
uint16_t device
Device ID.
Definition mw-msg.h:310
Game API request.
Definition mw-msg.h:315
uint8_t num_paths
Number of paths.
Definition mw-msg.h:317
char req[]
Request data.
Definition mw-msg.h:319
uint8_t num_kv_pairs
Number of key/value pairs.
Definition mw-msg.h:318
uint8_t method
Request method.
Definition mw-msg.h:316
Gamertag set message data.
Definition mw-msg.h:259
uint8_t reserved[3]
Reserved, set to 0.
Definition mw-msg.h:261
uint8_t slot
Slot to store gamertag (0 to 2).
Definition mw-msg.h:260
struct mw_gamertag gamertag
Gamertag to set.
Definition mw-msg.h:262
Gamertag data.
Definition mw-msg.h:241
uint8_t avatar_pal[32]
Avatar image palette.
Definition mw-msg.h:255
int id
Unique gamertag id.
Definition mw-msg.h:243
char tg_token[MW_GT_TG_TOKEN_MAX]
Telegram token.
Definition mw-msg.h:251
char security[MW_GT_SECURITY_MAX]
User security string.
Definition mw-msg.h:247
char nickname[MW_GT_NICKNAME_MAX]
User nickname.
Definition mw-msg.h:245
char tagline[MW_GT_TAGLINE_MAX]
User defined text tag.
Definition mw-msg.h:249
uint8_t avatar_tiles[MW_GT_AVATAR_WIDTH *MW_GT_AVATAR_HEIGHT/2]
Avatar image tiles.
Definition mw-msg.h:253
IP configuration parameters.
Definition mw-msg.h:160
union ip_addr gateway
Gateway IP address in binary format.
Definition mw-msg.h:163
union ip_addr dns2
DNS server 2 IP address in binary format.
Definition mw-msg.h:165
union ip_addr mask
Subnet mask in binary IP format.
Definition mw-msg.h:162
union ip_addr addr
Host IP address in binary format.
Definition mw-msg.h:161
union ip_addr dns1
DNS server 1 IP address in binary format.
Definition mw-msg.h:164
AP configuration message.
Definition mw-msg.h:172
enum mw_phy_type phy_type
PHY type bitmask.
Definition mw-msg.h:174
uint8_t cfg_num
Configuration number.
Definition mw-msg.h:173
char ssid[MW_SSID_MAXLEN]
SSID string.
Definition mw-msg.h:175
char pass[MW_PASS_MAXLEN]
Password string.
Definition mw-msg.h:176
Bind message data.
Definition mw-msg.h:217
uint32_t reserved
Reserved, set to 0.
Definition mw-msg.h:218
uint16_t port
Port to bind to.
Definition mw-msg.h:219
uint8_t channel
Channel used for the socket bound to port.
Definition mw-msg.h:220
Date and time message.
Definition mw-msg.h:197
char dt_str[MW_CMD_MAX_BUFLEN - 2 *sizeof(uint32_t)]
Date and time in textual format.
Definition mw-msg.h:200
uint32_t dt_bin[2]
Definition mw-msg.h:198
Flash memory address and data.
Definition mw-msg.h:204
uint8_t data[MW_CMD_MAX_BUFLEN - sizeof(uint32_t)]
Data associated to the address.
Definition mw-msg.h:207
uint32_t addr
Definition mw-msg.h:205
Flash memory block.
Definition mw-msg.h:211
uint16_t len
Length of the block.
Definition mw-msg.h:213
uint32_t addr
Start address.
Definition mw-msg.h:212
TCP/UDP address message.
Definition mw-msg.h:151
uint8_t channel
Definition mw-msg.h:154
char dst_port[6]
TCP destination port string.
Definition mw-msg.h:152
char src_port[6]
TCP source port string.
Definition mw-msg.h:153
char dst_addr[]
Data payload.
Definition mw-msg.h:156
IP configuration message.
Definition mw-msg.h:180
uint8_t cfg_slot
Configuration slot.
Definition mw-msg.h:181
uint8_t reserved[3]
Reserved (set to 0).
Definition mw-msg.h:182
struct mw_ip_cfg ip
IPv4 configuration data.
Definition mw-msg.h:183
SNTP and timezone configuration.
Definition mw-msg.h:187
uint16_t up_delay
Update delay in seconds (min: 15).
Definition mw-msg.h:188
int8_t tz
Timezone (from -11 to 13).
Definition mw-msg.h:189
char servers[MW_CMD_MAX_BUFLEN - 4]
Definition mw-msg.h:193
uint8_t dst
Definition mw-msg.h:190
Payload with remote IP and port.
Definition mw-msg.h:385
uint32_t remote_ip
IP of the remote end.
Definition mw-msg.h:386
uint16_t remote_port
Definition mw-msg.h:387
char payload[MW_CMD_MAX_BUFLEN - 4 - 2]
Data payload.
Definition mw-msg.h:389
Advanced WiFi configuration.
Definition mw-msg.h:224
uint32_t rx_max_single_pkt_len
WiFi RX max single packet size.
Definition mw-msg.h:230
uint8_t reserved[3]
Unused, set to 0.
Definition mw-msg.h:237
uint8_t ampdu_rx_enable
WiFi AMPDU RX feature enable flag.
Definition mw-msg.h:226
uint8_t rx_buf_num
WiFi RX buffer number.
Definition mw-msg.h:233
uint32_t rx_buf_len
WiFi RX buffer size.
Definition mw-msg.h:231
uint8_t left_continuous_rx_buf_num
WiFi Rx left continuous rx buffer number.
Definition mw-msg.h:235
uint32_t rx_ampdu_buf_len
WiFi AMPDU RX buffer length.
Definition mw-msg.h:229
uint8_t amsdu_rx_enable
WiFi AMSDU RX feature enable flag.
Definition mw-msg.h:232
uint8_t qos_enable
WiFi QOS feature enable flag.
Definition mw-msg.h:225
uint8_t rx_pkt_num
WiFi RX packet number.
Definition mw-msg.h:234
uint8_t rx_ba_win
WiFi Block Ack RX window size.
Definition mw-msg.h:227
uint8_t rx_ampdu_buf_num
WiFi AMPDU RX buffer number.
Definition mw-msg.h:228
uint8_t tx_buf_num
WiFi TX buffer number.
Definition mw-msg.h:236
Entry point unit / Interrupt callback / System.
#define PACKED
Macro for packing structures and enumerates.
Definition sys.h:56
IPv4 address.
Definition mw-msg.h:145
uint32_t addr
IP address in 32 bit form.
Definition mw-msg.h:146
Command sent to system FSM.
Definition mw-msg.h:340
struct mw_msg_flash_range fl_range
Flash memory range.
Definition mw-msg.h:361
struct mw_gamertag_set_msg gamertag_set
Gamertag set.
Definition mw-msg.h:367
struct mw_msg_date_time date_time
Date and time message.
Definition mw-msg.h:359
struct mw_msg_sntp_cfg sntp_cfg
SNTP client configuration.
Definition mw-msg.h:358
struct mw_ping_request ping
Ping message.
Definition mw-msg.h:363
uint16_t rnd_len
Length of the random buffer to fill.
Definition mw-msg.h:374
uint16_t fl_sect
Flash sector.
Definition mw-msg.h:372
struct mw_msg_in_addr in_addr
Internet address.
Definition mw-msg.h:355
uint32_t fl_id
Flash IDs.
Definition mw-msg.h:373
uint16_t w_data[MW_CMD_MAX_BUFLEN/sizeof(uint16_t)]
RAW data in uint16_t format.
Definition mw-msg.h:352
struct mw_wifi_adv_cfg wifi_adv_cfg
Advanced WiFi configuration.
Definition mw-msg.h:369
struct mw_gamertag gamertag_get
Gamertag get.
Definition mw-msg.h:368
struct mw_flash_id flash_id
Flash chip identifiers.
Definition mw-msg.h:370
uint8_t ch
Definition mw-msg.h:348
struct mw_msg_flash_data fl_data
Flash memory data.
Definition mw-msg.h:360
struct mw_msg_bind bind
Bind message.
Definition mw-msg.h:362
uint16_t data_len
Data length.
Definition mw-msg.h:344
uint16_t cmd
Command code.
Definition mw-msg.h:343
char packet[MW_CMD_MAX_BUFLEN+2 *sizeof(uint16_t)]
Packet raw data.
Definition mw-msg.h:341
struct mw_msg_ip_cfg ip_cfg
IP configuration.
Definition mw-msg.h:357
uint32_t dw_data[MW_CMD_MAX_BUFLEN/sizeof(uint32_t)]
RAW data in uint32_t format.
Definition mw-msg.h:354
struct mw_ping_response ping_response
Ping message.
Definition mw-msg.h:364
struct mw_ga_request ga_request
Game API request.
Definition mw-msg.h:371
union mw_msg_sys_stat sys_stat
System status.
Definition mw-msg.h:366
uint8_t data[MW_CMD_MAX_BUFLEN]
RAW data in uint8_t format.
Definition mw-msg.h:350
struct mw_upgrade_list_response ug_list_response
Ping message.
Definition mw-msg.h:365
struct mw_msg_ap_cfg ap_cfg
Access Point configuration.
Definition mw-msg.h:356
System status.
Definition mw-msg.h:285
enum mw_state sys_stat
System status.
Definition mw-msg.h:289
uint16_t reserved
Reserved flags.
Definition mw-msg.h:294
uint8_t dt_ok
Date and time synchronized at least once.
Definition mw-msg.h:292
uint8_t online
Module is connected to the Internet.
Definition mw-msg.h:290
uint16_t ch_ev
Channel flags with the pending event.
Definition mw-msg.h:295
uint8_t cfg
Default network configuration.
Definition mw-msg.h:293
uint32_t st_flags
Accesses all the flags at once.
Definition mw-msg.h:286
uint8_t cfg_ok
Configuration OK.
Definition mw-msg.h:291