Wi-Fi#

Functions#

int8_t
rsi_wlan_cb_init(rsi_wlan_cb_t *wlan_cb)

Initialize the WLAN control block structure.

int32_t
rsi_driver_wlan_send_cmd(rsi_wlan_cmd_request_t cmd, rsi_pkt_t *pkt)

Fills command info and places it into wlan TX queue.

uint8_t *
rsi_extract_filename(uint8_t *json, uint8_t *buffer)

Extract filename out of the received json update data.

int32_t

Process WLAN receive commands.

uint32_t

Get WLAN status.

void
rsi_wlan_set_status(int32_t status)

Set the WLAN status.

int32_t

Post on a waiting semaphore.

int32_t

Check if any socket command is in waiting state.

int32_t

Check if any WLAN command is in waiting state.

void

Receive raw data packet from module.

void

Handle packet transfer completion.

void

Will clear TX packet, if TX buffer is full.

void

Check if the common buffer is full.

rsi_error_t
rsi_wait_on_wlan_semaphore(rsi_semaphore_handle_t *semaphore, uint32_t timeout_ms)

By wireless library to acquire or wait for wlan semaphore.

void

By wireless library to update the WLAN command state to free state.

void

By wireless library to update the wlan cmd state to progress state.

void

Posts all waiting WLAN semaphores. This API is typically used to reset the semaphore states.

void
sort_index_based_on_rssi(struct wpa_scan_results_arr *scan_results_array)

Sort the scan list based on rssi value.

int
process_scan_results(uint8_t *buf, uint16_t len, int8_t rssi, uint8_t channel, uint16_t freq)

Process received beacons and probe responses.

Function Documentation#

rsi_wlan_cb_init#

int8_t rsi_wlan_cb_init (rsi_wlan_cb_t * wlan_cb)

Initialize the WLAN control block structure.

Parameters
TypeDirectionArgument NameDescription
rsi_wlan_cb_t *[in]wlan_cb

- Pointer to WLAN cb structure

Returns

  • 0 - Success Non Zero Value - Failure


rsi_driver_wlan_send_cmd#

int32_t rsi_driver_wlan_send_cmd (rsi_wlan_cmd_request_t cmd, rsi_pkt_t * pkt)

Fills command info and places it into wlan TX queue.

Parameters
TypeDirectionArgument NameDescription
rsi_wlan_cmd_request_t[in]cmd

- Type of the command to send

rsi_pkt_t *[in]pkt

- Pointer of the packet to send

Returns

  • 0 - Success Non Zero Value - Failure


rsi_extract_filename#

uint8_t * rsi_extract_filename (uint8_t * json, uint8_t * buffer)

Extract filename out of the received json update data.

Parameters
TypeDirectionArgument NameDescription
uint8_t *[in]json

- json object data string

uint8_t *[in]buffer

- contains file name

Returns

  • Returns file name extracted


rsi_driver_process_wlan_recv_cmd#

int32_t rsi_driver_process_wlan_recv_cmd (rsi_pkt_t * pkt)

Process WLAN receive commands.

Parameters
TypeDirectionArgument NameDescription
rsi_pkt_t *[in]pkt

- Pointer to received RX packet

Returns

  • 0 - Success Non-Zero Value - Failure

Note

  • Memory allocation for the pointer is from receive handler, after process it will be freed.


rsi_check_wlan_state#

uint32_t rsi_check_wlan_state (void )

Get WLAN status.

Parameters
TypeDirectionArgument NameDescription
void[in]

Returns

  • Wlan block status 0 - RSI_WLAN_STATE_NONE 1 - RSI_WLAN_STATE_OPERMODE_DONE 2 - RSI_WLAN_STATE_BAND_DONE 3 - RSI_WLAN_STATE_INIT_DONE 4 - RSI_WLAN_STATE_SCAN_DONE 5 - RSI_WLAN_STATE_CONNECTED 6 - RSI_WLAN_STATE_IP_CONFIG_DONE 7 - RSI_WLAN_STATE_IPV6_CONFIG_DONE 8 - RSI_WLAN_STATE_AUTO_CONFIG_GOING_ON 9 - RSI_WLAN_STATE_AUTO_CONFIG_DONE 10- RSI_WLAN_STATE_AUTO_CONFIG_FAILED


rsi_wlan_set_status#

void rsi_wlan_set_status (int32_t status)

Set the WLAN status.

Parameters
TypeDirectionArgument NameDescription
int32_t[in]status

- Status value to be set

Returns

  • void


rsi_post_waiting_semaphore#

int32_t rsi_post_waiting_semaphore (void )

Post on a waiting semaphore.

Parameters
TypeDirectionArgument NameDescription
void[in]

Returns

  • 0 - Success Non-Zero Value - Failure


rsi_wlan_check_waiting_socket_cmd#

int32_t rsi_wlan_check_waiting_socket_cmd (void )

Check if any socket command is in waiting state.

Parameters
TypeDirectionArgument NameDescription
void[in]

Returns

  • 0 - No socket command is in waiting state 1 - socket command is in waiting state


rsi_wlan_check_waiting_wlan_cmd#

int32_t rsi_wlan_check_waiting_wlan_cmd (void )

Check if any WLAN command is in waiting state.

Parameters
TypeDirectionArgument NameDescription
void[in]

Returns

  • 0 - Success Non-Zero Value - Failure


rsi_wlan_process_raw_data#

void rsi_wlan_process_raw_data (rsi_pkt_t * pkt)

Receive raw data packet from module.

Parameters
TypeDirectionArgument NameDescription
rsi_pkt_t *[in]pkt

- pointer to rx pkt

Note

  • Memory allocation for the pointer is from receive handler ,after process it will be freed .

Returns

  • void


rsi_wlan_packet_transfer_done#

void rsi_wlan_packet_transfer_done (rsi_pkt_t * pkt)

Handle packet transfer completion.

Parameters
TypeDirectionArgument NameDescription
rsi_pkt_t *[in]pkt

- pointer to packet

Returns

  • void


rsi_check_wlan_buffer_full#

void rsi_check_wlan_buffer_full (rsi_pkt_t * pkt)

Will clear TX packet, if TX buffer is full.

Parameters
TypeDirectionArgument NameDescription
rsi_pkt_t *[in]pkt

- Buffer pointer

Note

  • BUFFER_FULL_HANDLING macro should be enabled.

Returns

  • void


rsi_check_common_buffer_full#

void rsi_check_common_buffer_full (rsi_pkt_t * pkt)

Check if the common buffer is full.

Parameters
TypeDirectionArgument NameDescription
rsi_pkt_t *[in]pkt

- Buffer pointer

Returns

  • void


rsi_wait_on_wlan_semaphore#

rsi_error_t rsi_wait_on_wlan_semaphore (rsi_semaphore_handle_t * semaphore, uint32_t timeout_ms)

By wireless library to acquire or wait for wlan semaphore.

Parameters
TypeDirectionArgument NameDescription
rsi_semaphore_handle_t *[in]semaphore

- Semaphore handle pointer

uint32_t[in]timeout_ms

- Maximum time to wait to acquire semaphore. If timeout_ms is 0, then wait till semaphore is acquired

Returns

  • 0 - Success Negative Value - failure


rsi_update_wlan_cmd_state_to_free_state#

void rsi_update_wlan_cmd_state_to_free_state (void )

By wireless library to update the WLAN command state to free state.

Parameters
TypeDirectionArgument NameDescription
void[in]

Returns

  • void


rsi_update_wlan_cmd_state_to_progress_state#

void rsi_update_wlan_cmd_state_to_progress_state (void )

By wireless library to update the wlan cmd state to progress state.

Parameters
TypeDirectionArgument NameDescription
void[in]

Returns

  • void


rsi_post_waiting_wlan_semaphore#

int32_t rsi_post_waiting_wlan_semaphore (void )

Posts all waiting WLAN semaphores. This API is typically used to reset the semaphore states.

Parameters
TypeDirectionArgument NameDescription
void[in]

Returns

  • 0 - Success Non-Zero Value - Failure


sort_index_based_on_rssi#

void sort_index_based_on_rssi (struct wpa_scan_results_arr * scan_results_array)

Sort the scan list based on rssi value.

Parameters
TypeDirectionArgument NameDescription
struct wpa_scan_results_arr *[in]scan_results_array

- Pointer to scan results array

Returns

  • void


process_scan_results#

int process_scan_results (uint8_t * buf, uint16_t len, int8_t rssi, uint8_t channel, uint16_t freq)

Process received beacons and probe responses.

Parameters
TypeDirectionArgument NameDescription
uint8_t *[in]buf

- Received frame.

uint16_t[in]len

- length of the buffer.

int8_t[in]rssi

- RSSI value

uint8_t[in]channel

- Channel in which the frame is received

uint16_t[in]freq

- Frequency of the channel

Returns

  • 0 - Success Non-Zero Value - failure