Wirepas SDK
dualmcu_app/app.c
/* Copyright 2017 Wirepas Ltd. All Rights Reserved.
*
* See file LICENSE.txt for full license details.
*
*/
/*
* \file app.c
* \brief This file is a template to Dual MCU API app for all paltforms
*/
#include <stdlib.h>
#include <api.h>
#include "app_setup.h"
#ifdef DUALMCU_APP_KEY_MGMT
#include "wms_settings.h"
#include "provisioning.h"
#endif
#ifndef DUALMCU_APP_KEY_MGMT
#endif
#include "dualmcu_lib.h"
#ifdef DUALMCU_APP_KEY_MGMT
static bool prov_end_cb(provisioning_res_e result)
{
return (PROV_RES_SUCCESS == result) ? true : false;
}
static const app_lib_joining_received_beacon_t *
prov_beacon_joining_cb(
const app_lib_joining_received_beacon_t * const beacons)
{
const app_lib_joining_received_beacon_t * selected_beacon = beacons;
const app_lib_joining_received_beacon_t * current_beacon = beacons;
while ((current_beacon = current_beacon->next) != NULL)
{
if (current_beacon->rssi > selected_beacon->rssi)
{
selected_beacon = current_beacon;
}
}
return selected_beacon;
}
#endif
void App_init(const app_global_functions_t * functions)
{
(void) functions;
#ifdef DUALMCU_APP_KEY_MGMT
if (lib_settings->getNodeRole(&role) == APP_RES_OK)
{
{
lib_settings->keyManagementConfiguration(
.flags = {
.apply_flags = 1,
.app_key_management_supported = 1,
.app_key_management_configured = 1
}
}
);
}
else
{
.end_cb = prov_end_cb,
.beacon_joining_cb = prov_beacon_joining_cb
});
}
}
#else
#endif
Dualmcu_lib_init(UART_BAUDRATE, UART_FLOWCONTROL);
}
local_provisioning.h
PROV_RES_SUCCESS
@ PROV_RES_SUCCESS
Definition: provisioning.h:50
provisioning_res_e
provisioning_res_e
Provisioning result.
Definition: provisioning.h:48
dualmcu_lib.h
app_setup.h
wms_settings.h
provisioning_conf_t
This structure contains all provisioning related parameters.
Definition: provisioning.h:263
APP_RES_OK
@ APP_RES_OK
Definition: wms_app.h:204
App_Setup
app_setup_res_e App_Setup(void)
Setup configuration from application persistent memory.
app_global_functions_t
List of global functions, passed to App_entrypoint()
Definition: wms_app.h:157
Local_provisioning_init
Local_provisioning_res_e Local_provisioning_init(local_provisioning_psk_t *psk, local_provisioning_proxy_enabled_cb on_proxy_enabled_cb)
Initialize the Local provisioning library.
APP_LIB_SETTINGS_ROLE_SINK_LL
@ APP_LIB_SETTINGS_ROLE_SINK_LL
Definition: wms_settings.h:71
Dualmcu_lib_init
dualmcu_lib_res_e Dualmcu_lib_init(uint32_t baudrate, bool flow_ctrl)
Initialize Dualmcu_lib.
app_lib_settings_key_management_configuration_t
Structure to hold key management configuration information for the settings API.
Definition: wms_settings.h:137
APP_LIB_SETTINGS_ROLE_SINK_LE
@ APP_LIB_SETTINGS_ROLE_SINK_LE
Definition: wms_settings.h:69
app_lib_settings_role_t
uint8_t app_lib_settings_role_t
Node role type.
Definition: wms_settings.h:182
Provisioning_init_from_storage
provisioning_ret_e Provisioning_init_from_storage(provisioning_conf_t *conf)
Initialize the provisioning process with provisioning settings from the secure storage.
provisioning.h
api.h