Application Core#

The Application Core component is designed to offer utilities commonly used in Wi-SUN applications with the following features:

The following code snippet shows how the connection can be performed in an application thread:

#include "sl_wisun_app_core.h"
#include "sl_wisun_app_core_util.h"

/*App task function*/
void app_task(void *args)
{
  (void) args;

  // Connect to the wisun network.
  sl_wisun_app_core_util_connect_and_wait();

  while (1) {

    // Put your application code here.
    osDelay(1);
  }
}

Modules#

Configurations

Type definitions

#

void

Initialize Wi-SUN project information.

void

Print Wi-SUN project information.

const app_project_info_t *

Get Wi-SUN Project info.

void

Wait for the connection.

void

Connect and wait for connection.

bool

The network is connected.

void

Thread dispatch function.

Functions#

void
sl_wisun_app_core_get_current_addresses(sl_wisun_app_core_current_addr_t *const dest_addresses)

Get the current addresses.

bool

Return the state of the regional regulation.

sl_status_t
sl_wisun_app_core_get_regulation_thresholds(sl_wisun_app_core_reg_thresholds_t *thresholds_out)

Get the warning and alert levels for approaching/exceeded the TX budget.

sl_status_t
sl_wisun_app_core_get_remaining_tx_budget(uint32_t *const budget_out)

Get the remaining budget from the transmission quota.

sl_status_t
sl_wisun_app_core_get_state(uint32_t *const state)

Get application core state.

void
sl_wisun_app_core_get_time_stat(sl_wisun_app_core_time_stat_t *const tstat)

Get time statistic.

void

Initialize Wi-SUN application core.

void

Connect to the Wi-SUN network.

void

Set the regional regulation to active or passive.

void
sl_wisun_app_core_set_regulation_thresholds(const int8_t warning_level, const int8_t alert_level)

Set up warning and alert thresholds for the regional regulation.

sl_status_t
sl_wisun_app_core_wait_state(const uint32_t state, const uint32_t timeout)

Waiting for application core state flags.

undefined Documentation#

sl_wisun_app_core_util_project_info_init#

void sl_wisun_app_core_util_project_info_init (const char * app_name)

Initialize Wi-SUN project information.

Parameters
[in]app_name

Application name

Init internal instance


Definition at line 92 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core_util.h

sl_wisun_app_core_util_project_info_print#

void sl_wisun_app_core_util_project_info_print (const bool json_format)

Print Wi-SUN project information.

Parameters
[in]json_format

Json format required indicator

Print project info in pretty or json format.


Definition at line 99 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core_util.h

sl_wisun_app_core_util_project_info_get#

const app_project_info_t * sl_wisun_app_core_util_project_info_get (void )

Get Wi-SUN Project info.

Parameters
N/A

Get a constant instance of internal Wi-SUN project info Returns

  • app_project_info_t * Project info


Definition at line 106 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core_util.h

sl_wisun_app_core_util_wait_for_connection#

void sl_wisun_app_core_util_wait_for_connection (void )

Wait for the connection.

Parameters
N/A

This function doesn't call the sl_wisun_app_core_network_connect() function. The function provides a delay loop with optional heart beat printing till the connection state has not been changed.


Definition at line 114 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core_util.h

sl_wisun_app_core_util_connect_and_wait#

void sl_wisun_app_core_util_connect_and_wait (void )

Connect and wait for connection.

Parameters
N/A

The function calls sl_wisun_app_core_network_connect() function and sl_wisun_app_core_util_wait_for_connection() function. It can be useful at the beginning of application thread.


Definition at line 122 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core_util.h

sl_wisun_app_core_util_network_is_connected#

bool sl_wisun_app_core_util_network_is_connected (void )

The network is connected.

Parameters
N/A

Wrapper function of join state getter Returns

  • true Connected

  • false Not connected


Definition at line 130 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core_util.h

sl_wisun_app_core_util_dispatch_thread#

void sl_wisun_app_core_util_dispatch_thread (void )

Thread dispatch function.

Parameters
N/A

For low power LFN mode, the delay value is 'SL_WISUN_APP_CORE_THREAD_LP_DISPATCH_MS', for FFN mode, the delay is 1ms


Definition at line 137 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core_util.h

Function Documentation#

sl_wisun_app_core_get_current_addresses#

void sl_wisun_app_core_get_current_addresses (sl_wisun_app_core_current_addr_t *const dest_addresses)

Get the current addresses.

Parameters
[out]dest_addresses

Destination

Copy cached addresses into destination.


Definition at line 190 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h

sl_wisun_app_core_get_device_type#

sl_wisun_device_type_t sl_wisun_app_core_get_device_type (void )

Get Wi-SUN device type.

Parameters
N/A

Getter to get device type. Device type can be SL_WISUN_LFN or SL_WISUN_ROUTER (FFN) Returns

  • l_wisun_device_type_t Device type.


Definition at line 256 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h

sl_wisun_app_core_get_join_state#

sl_wisun_join_state_t sl_wisun_app_core_get_join_state (void )

Get Wi-SUN join state.

Parameters
N/A

Thread-safe getter to get connection state. Join state is stored in appropriate event callback. Returns

  • sl_wisun_join_state_t Join state value.


Definition at line 240 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h

sl_wisun_app_core_get_lfn_params#

const sl_wisun_lfn_params_t * sl_wisun_app_core_get_lfn_params (void )

Get LFN parameters.

Parameters
N/A

Returns


Definition at line 271 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h

sl_wisun_app_core_get_lfn_profile#

sl_wisun_lfn_profile_t sl_wisun_app_core_get_lfn_profile (void )

Get Wi-SUN LFN profile.

Parameters
N/A

Getter to get LFN profile. Device type can be SL_WISUN_LFN_PROFILE_TEST, SL_WISUN_LFN_PROFILE_BALANCED or SL_WISUN_LFN_PROFILE_ECO Returns

  • sl_wisun_lfn_profile_t LFN profile.


Definition at line 265 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h

sl_wisun_app_core_get_regulation_active#

bool sl_wisun_app_core_get_regulation_active (void )

Return the state of the regional regulation.

Parameters
N/A

This function tells the caller if a regulation is currently active. Returns

  • Boolean indicating if a regional regulation is currently active.


Definition at line 205 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h

sl_wisun_app_core_get_regulation_thresholds#

sl_status_t sl_wisun_app_core_get_regulation_thresholds (sl_wisun_app_core_reg_thresholds_t * thresholds_out)

Get the warning and alert levels for approaching/exceeded the TX budget.

Parameters
[out]thresholds_out

pointer to the struct to hold the thresholds

Values representing percentages of the allowed transmission quota in ms are returned for the warning and alert levels, respectively. Returns

  • sl_status_t SL_STATUS_OK on success, otherwise SL_STATUS_FAIL


Definition at line 232 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h

sl_wisun_app_core_get_remaining_tx_budget#

sl_status_t sl_wisun_app_core_get_remaining_tx_budget (uint32_t *const budget_out)

Get the remaining budget from the transmission quota.

Parameters
[out]budget_out

pointer to return the remaining budget to.

Returns the state of the regional regulation and the remaining budget in ms if applicable, or zero budget if exceeded or not regulated. Returns

  • sl_status_t SL_STATUS_OK on success, otherwise SL_STATUS_FAIL


Definition at line 214 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h

sl_wisun_app_core_get_state#

sl_status_t sl_wisun_app_core_get_state (uint32_t *const state)

Get application core state.

Parameters
[out]state

is the indicator of the error

The function retrieves the application core state value (32 bits) Returns

  • sl_status_t SL_STATUS_OK on success, otherwise SL_STATUS_FAIL


Definition at line 160 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h

sl_wisun_app_core_get_time_stat#

void sl_wisun_app_core_get_time_stat (sl_wisun_app_core_time_stat_t *const tstat)

Get time statistic.

Parameters
[out]tstat

Time statistic structure

Create a copy of time statistic storage with up-to-date values


Definition at line 247 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h

sl_wisun_app_core_init#

void sl_wisun_app_core_init (void )

Initialize Wi-SUN application core.

Parameters
N/A

Initializing mutex, socket handler and set Wi-SUN settings.


Definition at line 152 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h

sl_wisun_app_core_network_connect#

void sl_wisun_app_core_network_connect (void )

Connect to the Wi-SUN network.

Parameters
N/A

Network initialization and connection. The function initializes the network with parameters (Network name, TX Power, Network size, etc.) by the stored settings in NVM if the settings component is added to the project, otherwise with the default settings.


Definition at line 183 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h

sl_wisun_app_core_set_regulation_active#

void sl_wisun_app_core_set_regulation_active (bool enabled)

Set the regional regulation to active or passive.

Parameters
[in]enabled

(true = active, false = not active)

After a stack API call for regional regulation, this function can be used to store the status of the regulation (active or not).


Definition at line 198 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h

sl_wisun_app_core_set_regulation_thresholds#

void sl_wisun_app_core_set_regulation_thresholds (const int8_t warning_level, const int8_t alert_level)

Set up warning and alert thresholds for the regional regulation.

Parameters
[in]warning_level

new percentage for the warning threshold

[in]alert_level

new percentage for the alert threshold

Sets up the percentages of warnings and alerts where the regulation indicate that the transmission quota is approached/exceeded.


Definition at line 223 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h

sl_wisun_app_core_wait_state#

sl_status_t sl_wisun_app_core_wait_state (const uint32_t state, const uint32_t timeout)

Waiting for application core state flags.

Parameters
[in]state

state variable which includes the expected flags

[in]timeout

timeout for waiting

The function waits for application core states described in the state variable. Multiple state flags can be set. The function waits for all flags. Flags are not cleared in this function. Returns

  • sl_status_t SL_STATUS_OK on success, otherwise SL_STATUS_FAIL


Definition at line 172 of file /mnt/raid/workspaces/ws.obQFDUprC/overlay/gsdk/app/wisun/component/app_core/sl_wisun_app_core.h