diff options
Diffstat (limited to 'Projects/P-NUCLEO-WB55.USBDongle/Applications/BLE/BLE_MeshLightingPRFNode/STM32_WPAN/app/appli_mesh.h')
-rw-r--r-- | Projects/P-NUCLEO-WB55.USBDongle/Applications/BLE/BLE_MeshLightingPRFNode/STM32_WPAN/app/appli_mesh.h | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/Projects/P-NUCLEO-WB55.USBDongle/Applications/BLE/BLE_MeshLightingPRFNode/STM32_WPAN/app/appli_mesh.h b/Projects/P-NUCLEO-WB55.USBDongle/Applications/BLE/BLE_MeshLightingPRFNode/STM32_WPAN/app/appli_mesh.h new file mode 100644 index 000000000..ad831f2cd --- /dev/null +++ b/Projects/P-NUCLEO-WB55.USBDongle/Applications/BLE/BLE_MeshLightingPRFNode/STM32_WPAN/app/appli_mesh.h @@ -0,0 +1,126 @@ +/** + ****************************************************************************** + * @file appli_mesh.h + * @author BLE Mesh Team + * @brief Header file for the user application file + ****************************************************************************** + * @attention + * + * <h2><center>© Copyright (c) 2019 STMicroelectronics. + * All rights reserved.</center></h2> + * + * This software component is licensed by ST under Ultimate Liberty license + * SLA0044, the "License"; You may not use this file except in compliance with + * the License. You may obtain a copy of the License at: + * www.st.com/SLA0044 + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __APPLI_MESH_H +#define __APPLI_MESH_H + +/* Includes ------------------------------------------------------------------*/ +#include "types.h" +#include "mesh_cfg_usr.h" +#include "mesh_cfg.h" + +/* Exported macro ------------------------------------------------------------*/ +/* MACROS for Power Level definitions */ +#define POWER_LEVEL_LOW 0 +#define TX_POWER_LEVEL_MINUS_18DBM 0 /* = -18 dBm, */ +#define TX_POWER_LEVEL_MINUS_15DBM 1 /* = -15 dBm, */ +#define TX_POWER_LEVEL_MINUS_12DBM 2 /* = -12 dBm, */ +#define TX_POWER_LEVEL_MINUS_9DBM 3 /* = -9 dBm, */ +#define TX_POWER_LEVEL_MINUS_6DBM 4 /* = -6 dBm, */ +#define TX_POWER_LEVEL_MINUS_2DBM 5 /* = -2 dBm, */ +#define TX_POWER_LEVEL_0DBM 6 /* = 0 dBm, */ +#define TX_POWER_LEVEL_PLUS_5DBM 7 /* = 5 dBm. */ +#define POWER_LEVEL_HIGH 1 +#define TX_POWER_LEVEL_MINUS_14DBM 0 /* = -14 dBm, */ +#define TX_POWER_LEVEL_MINUS_11DBM 1 /* = -11 dBm, */ +#define TX_POWER_LEVEL_MINUS_8DBM 2 /* = -8 dBm, */ +#define TX_POWER_LEVEL_MINUS_5DBM 3 /* = -5 dBm, */ +#define TX_POWER_LEVEL_PLUS_2DBM 5 /* = 2 dBm, */ +#define TX_POWER_LEVEL_PLUS_4DBM 6 /* = 4 dBm, */ +#define TX_POWER_LEVEL_PLUS_8DBM 7 /* = 8 dBm */ + +#ifdef SAVE_MODEL_STATE_POWER_FAILURE_DETECTION +#define POWEROFF_PIN GPIO_PIN_12 +#define POWEROFF_GPIO_PORT GPIOB +#define POWEROFF_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() +#define POWEROFF_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE() +#define POWEROFF_EXTI_LINE GPIO_PIN_12 +#define POWEROFF_EXTI_IRQn EXTI15_10_IRQn +#endif + +typedef enum _prvn_nvm_state +{ + NVM_INIT = 0, + NVM_SAVE_PENDING, +} prvn_nvm_state; + +/* Exported variables ------------------------------------------------------- */ + +extern MOBLEUINT8 bdaddr[]; + +typedef struct +{ + MOBLEUINT16 nodeAddress; + MOBLEUINT8 numOfElements; + MOBLEUINT8 Reserved1; /* For Alignment by 4*/ + MOBLEUINT16 newNodeAddress; + MOBLEUINT8 newNodeElements; + prvn_nvm_state saveToNVM; + MOBLEUINT8 NewProvNodeDevKey[DEVICE_KEY_SIZE]; + MOBLEUINT8 NewProvNodeAppKey[APP_KEY_SIZE]; + MOBLEUINT8 NewProvNodeUUID[UUID_SIZE]; +} NodeUnderProvisionParam_t; + +extern NodeUnderProvisionParam_t NodeUnderProvisionParam; +extern MOBLEUINT16 Appli_SIG_Models[APPLICATION_NUMBER_OF_ELEMENTS][APPLICATION_SIG_MODELS_MAX_COUNT]; +extern MOBLEUINT32 Appli_Vendor_Models[APPLICATION_NUMBER_OF_ELEMENTS][APPLICATION_VENDOR_MODELS_MAX_COUNT]; +/* Exported Functions Prototypes ---------------------------------------------*/ +MOBLE_RESULT Appli_BleStackInitCb(void); +MOBLE_RESULT Appli_BleSetTxPowerCb(void); +MOBLE_RESULT Appli_BleSetUUIDCb(MOBLEUINT8 *uuid_prefix_data); +MOBLE_RESULT Appli_BleSetProductInfoCB(MOBLEUINT8 *company_product_info); +void Appli_BleUnprovisionedIdentifyCb(MOBLEUINT8 data); +void Appli_BleGattConnectionCompleteCb(void); +void Appli_BleGattDisconnectionCompleteCb(void); +MOBLEUINT8 Appli_BleSetNumberOfElementsCb(void); +MOBLE_RESULT Appli_BleAttentionTimerCb(void); +void Appli_BleOutputOOBAuthCb(MOBLEUINT8* output_oob, MOBLEUINT8 size); +MOBLEUINT8* Appli_BleInputOOBAuthCb(MOBLEUINT8 size); +void Appli_BleSerialInputOOBValue(char *rcvdStringBuff, uint16_t rcvdStringSize); +MOBLEUINT8 Appli_BleDisableFilterCb(void); +void BLEMesh_PbAdvLinkCloseCb(void); +void Appli_IntensityControlPublishing(MOBLEUINT8* value); + +int Appli_CheckBdMacAddr(void); +MOBLE_RESULT Appli_LedBlink(void); +MOBLE_RESULT Appli_LedStateCtrlCb(MOBLEUINT16 ctrl); + +void Appli_CheckForUnprovision(void); +void Appli_Unprovision(void); +void Appli_Process(void); +void Appli_LedCtrl(void); +void Appli_Init(MOBLEUINT8 *flag); + +MOBLE_ADDRESS GetAddressToConfigure(void); +MOBLE_ADDRESS GetNewAddressToProvision(void); +void SaveProvisionedNodeAddress(void); +MOBLEUINT8* GetNewProvNodeDevKey(void); +MOBLEUINT8* GetNewProvNodeAppKey(void); +void IntensityPublish(void); +MOBLE_RESULT BLEMesh_ScanDevices(neighbor_params_t *unprovDeviceArray, MOBLEUINT8 *noOfUnprovDevices); +MOBLE_RESULT BLEMesh_ProvisionDevice(neighbor_params_t *unprovDeviceArray, MOBLEUINT16 index); +void Start_SelfConfiguration (void); +void Appli_ProvisionerInit(void); + + +#endif /* __APPLI_MESH_H */ + +/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/ + |