diff options
Diffstat (limited to 'Middlewares/ST/STM32_WPAN/ble/mesh/Src/mesh_cfg.c')
-rw-r--r-- | Middlewares/ST/STM32_WPAN/ble/mesh/Src/mesh_cfg.c | 969 |
1 files changed, 745 insertions, 224 deletions
diff --git a/Middlewares/ST/STM32_WPAN/ble/mesh/Src/mesh_cfg.c b/Middlewares/ST/STM32_WPAN/ble/mesh/Src/mesh_cfg.c index ab7ed4d54..7cda5612b 100644 --- a/Middlewares/ST/STM32_WPAN/ble/mesh/Src/mesh_cfg.c +++ b/Middlewares/ST/STM32_WPAN/ble/mesh/Src/mesh_cfg.c @@ -6,7 +6,7 @@ ****************************************************************************** * @attention * - * <h2><center>© Copyright (c) 2019 STMicroelectronics. + * <h2><center>© Copyright (c) 2020 STMicroelectronics. * All rights reserved.</center></h2> * * This software component is licensed by ST under Ultimate Liberty license @@ -20,6 +20,7 @@ /* Includes ------------------------------------------------------------------*/ #include "mesh_cfg.h" #include "mesh_cfg_usr.h" +#include "sensor_cfg_usr.h" #include "types.h" #include "ble_mesh.h" #include "compiler.h" @@ -30,6 +31,7 @@ #include "vendor.h" #include "config_client.h" #include "light_lc.h" +#include "common.h" #include "appli_mesh.h" #include <string.h> #include "time_scene.h" @@ -40,16 +42,21 @@ #if ((!ENABLE_USART) || (!ENABLE_SERIAL_INTERFACE)) #error "Serial Interface also needed for Serial Control Application." #else + #include "serial_if.c" + #if ENABLE_SERIAL_CONTROL - #include "serial_ctrl.c" + #include "serial_ctrl.c" /* This enables Appli_Process to call */ #endif + #if ENABLE_UT #include "serial_ut.c" #endif + #if ENABLE_APPLI_TEST #include "appli_test.c" #endif + #if ENABLE_SERIAL_PRVN #include "serial_prvn.c" #endif @@ -94,6 +101,180 @@ MOBLE_RESULT MoblePBADVStartProvisioning(void* param); MOBLE_RESULT MoblePBADVStopProvisioning(void* param); #endif +MOBLE_RESULT AppliCheck_EnabledModelsList(void); + +#if 0 +#ifndef ENABLE_SENSOR_MODEL_SERVER +MOBLE_RESULT Appli_Sensor_Init(void); +MOBLE_RESULT Sensor_ExtractPropertyI(const MOBLEUINT8* data, + MOBLEUINT16* pPropertyId); +MOBLE_RESULT Sensor_ExtractSettingPropertyId(const MOBLEUINT8* data, + MOBLEUINT16* pSettingPropertyId); +MOBLE_RESULT Sensor_ExtractSensorOffset(MOBLEUINT8 elementIdx, + MOBLEUINT8* pSensorOffsetBuff, + MOBLEUINT8* pSensorCount, + MOBLEUINT32 length, + const MOBLEUINT8* pData, + MOBLEUINT16* pidNotFound); +MOBLE_RESULT Sensor_FillDescriptor(MOBLEUINT8 sensorOffset, + void* pParams, + MOBLEUINT8* pData, + MOBLEUINT8* pLengthInc); +MOBLE_RESULT Sensor_MarshalPid(MOBLEUINT8 sensorOffset, + void* pParams, + MOBLEUINT8* pData, + MOBLEUINT8* pLengthInc, + MOBLEUINT8 pidMatch, + MOBLEUINT16 pidNotFound); +MOBLE_RESULT Sensor_CadenceStatus(MOBLEUINT8 pidMatch, + void* pParams, + MOBLEUINT16 pidNotFound, + MOBLE_ADDRESS dstAddr, + MOBLEUINT8 elementIdx, + MOBLEUINT8 statusSend); +MOBLE_RESULT Sensor_SettingsStatus(MOBLEUINT8* offsetBuff, + MOBLEUINT8 sensorCount, + MOBLE_ADDRESS dstAddr, + MOBLEUINT16 pidNotFound); +MOBLE_RESULT Sensor_SettingStatus(MOBLEUINT8 pidMatch, + MOBLEUINT8 readViolation, + void* pParams,void* pSettingsParam, + MOBLEUINT16 pidNotFound, + MOBLEUINT16 rcvdSettingId, + MOBLE_ADDRESS dstAddr, + MOBLEUINT8 elementIdx, + MOBLEUINT8 statusSend); +MOBLE_RESULT Sensor_DescriptorStatus(MOBLEUINT8* offsetBuff, + MOBLEUINT8 sensorCount, + MOBLE_ADDRESS dstAddr, + MOBLEUINT16 pidNotFound); +MOBLE_RESULT Sensor_Status(MOBLEUINT8* offsetBuff, + MOBLEUINT8 sensorCount, + MOBLE_ADDRESS dstAddr, + MOBLEUINT16 pidNotFound, + MOBLEUINT8 statusSend); +MOBLE_RESULT Sensor_ColumnStatus(MOBLEUINT8* offsetBuff, + MOBLEUINT8 sensorCount, + MOBLE_ADDRESS dstAddr, + MOBLEUINT32 rawValueX, + MOBLEUINT8 rcvdRawXLength, + MOBLEUINT16 pidNotFound, + MOBLEUINT8 elementIndex, + MOBLEUINT8 statusSend); +MOBLE_RESULT Sensor_SeriesStatus(MOBLEUINT8* offsetBuff, + MOBLEUINT8 sensorCount, + MOBLE_ADDRESS dstAddr, + MOBLEUINT32 rcvdX1, + MOBLEUINT32 rcvdX2, + MOBLEUINT8 isX1X2Present, + MOBLEUINT8 rcvdRawXLength, + MOBLEUINT16 pidNotFound, + MOBLEUINT8 elementIndex, + MOBLEUINT8 statusSend); +MOBLE_RESULT Sensor_DescriptorGet(const MOBLEUINT8* pDescriptorParam, + MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr, + MOBLE_ADDRESS dstPeer, + MOBLEUINT8 elementIndex); +MOBLE_RESULT Sensor_CadenceGet(const MOBLEUINT8* pCadenceParam, + MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr, + MOBLE_ADDRESS dstPeer, + MOBLEUINT8 elementIndex); +MOBLE_RESULT Sensor_CadenceSet(const MOBLEUINT8* pCadenceParam, + MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr, + MOBLE_ADDRESS dstPeer, + MOBLEUINT8 elementIndex); +MOBLE_RESULT Sensor_CadenceSetUnack(const MOBLEUINT8* pCadenceParam, + MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr, + MOBLE_ADDRESS dstPeer, + MOBLEUINT8 elementIndex); +MOBLE_RESULT Sensor_SettingsGet(const MOBLEUINT8* pSettingsParam, + MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr, + MOBLE_ADDRESS dstPeer, + MOBLEUINT8 elementIndex); +MOBLE_RESULT Sensor_SettingGet(const MOBLEUINT8* pRcvdParam, + MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr, + MOBLE_ADDRESS dstPeer, + MOBLEUINT8 elementIndex); +MOBLE_RESULT Sensor_SettingSet(const MOBLEUINT8* pRcvdParam, + MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr, + MOBLE_ADDRESS dstPeer, + MOBLEUINT8 elementIndex); +MOBLE_RESULT Sensor_SettingSetUnack(const MOBLEUINT8* pRcvdParam, + MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr, + MOBLE_ADDRESS dstPeer, + MOBLEUINT8 elementIndex); +MOBLE_RESULT Sensor_Get(const MOBLEUINT8* pGetParam, + MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr, + MOBLE_ADDRESS dstPeer, + MOBLEUINT8 elementIndex); +MOBLE_RESULT Sensor_ColumnGet(const MOBLEUINT8* pColumnParam, + MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr, + MOBLE_ADDRESS dstPeer, + MOBLEUINT8 elementIndex); +MOBLE_RESULT Sensor_SeriesGet(const MOBLEUINT8* pSeriesParam, + MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr, + MOBLE_ADDRESS dstPeer, + MOBLEUINT8 elementIndex); +MOBLE_RESULT SensorModelServer_GetOpcodeTableCb(const MODEL_OpcodeTableParam_t **data, + MOBLEUINT16 *length); + +MOBLE_RESULT SensorModelServer_GetStatusRequestCb(MOBLEUINT16 peer_addr, + MOBLEUINT16 dst_peer, + MOBLEUINT16 opcode, + MOBLEUINT8 *pResponsedata, + MOBLEUINT32 *plength, + MOBLEUINT8 const *pRxData, + MOBLEUINT32 dataLength, + MOBLEBOOL response); +MOBLE_RESULT SensorModelServer_ProcessMessageCb(MOBLE_ADDRESS peer_addr, + MOBLE_ADDRESS dst_peer, + MOBLEUINT16 opcode, + MOBLEUINT16 modelID, + MOBLEUINT8 const *pRxData, + MOBLEUINT32 dataLength, + MOBLEBOOL response); + +MOBLEUINT32 Sensor_SleepDurationMs_Get(void); +MOBLE_RESULT Sensor_UpdatePublishParameters(MOBLEUINT8 sensorOffset); +MOBLE_RESULT Sensor_CheckStatusTrigger(MOBLEUINT8 sensorOffset); +MOBLE_RESULT Sensor_Send(MOBLEUINT8 sensorOffset, + MOBLEUINT8 elementIdx, + MOBLEUINT16 propertyId); +MOBLE_RESULT Sensor_ValueGet(MOBLEUINT8 sensorOffset, + MOBLEUINT8 elementIdx, + MOBLEUINT16 propertyId, + void* value); +MOBLE_RESULT Sensor_ValueSet(MOBLEUINT8 sensorOffset, + MOBLEUINT8 elementIdx, + MOBLEUINT16 propertyId, + const void* value); +MOBLE_RESULT SensorServer_Init(void* sensorBuff, + const sensor_server_cb_t* sensor_cb, + MOBLEUINT16 sizeBuff, + const void* initParams); +MOBLE_RESULT Sensor_PublicationParams_Get(MOBLEUINT8 sensorOffset, + MOBLEUINT8 elementIdx, + MOBLEUINT16 propertyId); +MOBLE_RESULT Sensor_CadenceParams_Get(MOBLEUINT8 elementIdx, + MOBLEUINT16 propertyId); +#endif +#endif +//__weak void Appli_Sensor_SerialCmd(char *rcvdStringBuff, +// uint16_t rcvdStringSize); +//__weak void Appli_Light_LC_SerialCmd(char *rcvdStringBuff, +// uint16_t rcvdStringSize); +MOBLE_RESULT Appli_Light_LCs_Init(void); /* Private define ------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ @@ -105,7 +286,6 @@ MOBLEUINT8 dyn_buffer_m[DYNAMIC_MEMORY_SIZE + \ SAR_BUFFER_SIZE + \ NEIGHBOR_TABLE_DYNAMIC_MEMORY_SIZE] = {0}; - #define MODELDATA_SIZE (MAX_APPLICATION_PACKET_SIZE+16) #define MODELS_BUFFER_SIZE (MODELDATA_SIZE) @@ -159,9 +339,8 @@ __attribute__((aligned(4)))const DynBufferParam_t DynBufferParam = (MOBLEUINT16) MODELS_BUFFER_SIZE }; -const MOBLEUINT8 Device_Name[] = {DEVICE_NAME_SIZE+1, 0x09, DEVICE_NAME}; +const MOBLEUINT8 Device_Name[] = {DEVICE_NAME_SIZE+1, AD_TYPE_NAME, DEVICE_NAME}; const device_name_params_t DeviceNameParams = DEVICE_NAME_PARAMS; - const tr_params_t TrParams = TRANSMIT_RECEIVE_PARAMS; const lpn_params_t LpnParams = LOW_POWER_NODE_PARAMS; const fn_params_t FnParams = FRIEND_NODE_PARAMS; @@ -173,46 +352,92 @@ __attribute__((aligned(4))) MOBLEUINT16 Appli_SIG_Models[APPLICATION_NUMBER_OF_E MOBLEUINT32 Appli_Vendor_Models[APPLICATION_NUMBER_OF_ELEMENTS][APPLICATION_VENDOR_MODELS_MAX_COUNT]; -/* Private functions ---------------------------------------------------------*/ +/** +* Memory allocation for sensor server model +*/ +MOBLEUINT8 BufferSensorServer[TOTAL_SENSOR_SERVER_BUFF_SIZE]; + +/** +* Memory allocation for light lc server model +*/ +MOBLEUINT8 BufferLcServer[SIZE_OF_LC_SERVER_T]; /** -* @brief ApplicationInitVendorModel: This function initialize the list of the -* Vendor Models. -* retval Count of the SIG Model Servers enabled in the Application +* @brief AppliCheck_EnabledModelsList: This function checks whether the Enabled +* Models in the defined range or exceeding the limit +* retval MOBLE_RESULT */ -MOBLE_RESULT ApplicationInitVendorModelList(void) -{ - for(uint8_t index = 0; index < APPLICATION_NUMBER_OF_ELEMENTS; index++) +MOBLE_RESULT AppliCheck_EnabledModelsList(void) +{ + MOBLE_RESULT result = MOBLE_RESULT_FAIL; +/* Initialization of the SIG Models list */ + result = ApplicationInitSigModelList(); { - if(index == 0) + if(result == MOBLE_RESULT_FALSE) { - Appli_Vendor_Models[index][0] = VENDORMODEL_STMICRO_ID1; - Appli_Vendor_Models[index][1] = NO_MODEL_AVLBL; + TRACE_I(TF_INIT,"The number of Models enabled in Application exceed the Library limit"); + result = MOBLE_RESULT_FAIL; + return result; } - else + + else if(result == MOBLE_RESULT_FAIL) + { + TRACE_I(TF_INIT,"The number of Models enabled exceed the limit of %d !\r\n", + USER_SIG_MODELS_MAX_COUNT); + return result; + } + + } + + /* Initialization of the VENDOR Models list, if any */ + result = ApplicationInitVendorModelList(); + { + + if(result == MOBLE_RESULT_FALSE) { - Appli_Vendor_Models[index][0] = NO_MODEL_AVLBL; + TRACE_I(TF_INIT,"The number of Models enabled in Application exceed the Library limit"); + result = MOBLE_RESULT_FAIL; + return result; + } + + else if(result == MOBLE_RESULT_FAIL) + { + TRACE_I(TF_INIT,"The number of Vendor Models enabled exceed the limit of %d !\r\n", + USER_VENDOR_MODELS_MAX_COUNT); + return result; } + } - return (MOBLE_RESULT_SUCCESS); + + return result; } + /** * @brief ApplicationInitSigModelList: This function initialize the list of the * SIG Models. -* retval Count of the SIG Model Servers enabled in the Application +* retval MOBLE_RESULT */ MOBLE_RESULT ApplicationInitSigModelList(void) { - uint8_t modelCount = 0; + /*If Models enabled by user are exceeding the library capability*/ + if(APPLICATION_SIG_MODELS_MAX_COUNT > BLEMesh_GetTotalModelsCount() - + APPLICATION_VENDOR_MODELS_MAX_COUNT) + { + TRACE_I(TF_INIT,"APPLICATION_SIG_MODELS_MAX_COUNT %d > BLEMesh_GetTotalModelsCount() %d - APPLICATION_VENDOR_MODELS_MAX_COUNT %d", + APPLICATION_SIG_MODELS_MAX_COUNT, + BLEMesh_GetTotalModelsCount(), + APPLICATION_VENDOR_MODELS_MAX_COUNT); + return(MOBLE_RESULT_FALSE); + } for(uint8_t index = 0; index < APPLICATION_NUMBER_OF_ELEMENTS; index++) { uint8_t modelIndex = 0; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + #ifdef ENABLE_CONFIG_MODEL_CLIENT - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -220,85 +445,97 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_CONFIG_MODEL_CLIENT & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = SIG_MODEL_ID_CONFIG_CLIENT; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_SERVER_ONOFF - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_GENERIC_MODEL_SERVER_ONOFF & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_SERVER_ONOFF_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = GENERIC_ONOFF_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_SERVER_LEVEL - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_GENERIC_MODEL_SERVER_LEVEL & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_SERVER_LEVEL_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = GENERIC_LEVEL_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_SERVER_DEFAULT_TRANSITION_TIME - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_GENERIC_MODEL_SERVER_DEFAULT_TRANSITION_TIME & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_SERVER_DEFAULT_TRANSITION_TIME_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = GENERIC_DEFAULT_TRANSITION_TIME_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_SERVER_POWER_ONOFF - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_GENERIC_MODEL_SERVER_POWER_ONOFF & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_SERVER_POWER_ONOFF_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = GENERIC_SERVER_POWER_ONOFF_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_SERVER_POWER_ONOFF_SETUP - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_GENERIC_MODEL_SERVER_POWER_ONOFF_SETUP & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_SERVER_POWER_ONOFF_SETUP_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = GENERIC_POWER_ONOFF_SETUP_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_SERVER_POWER_LEVEL - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -306,13 +543,15 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_GENERIC_MODEL_SERVER_POWER_LEVEL & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_SERVER_POWER_LEVEL_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_SERVER_POWER_LEVEL_SETUP - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -320,13 +559,15 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_GENERIC_MODEL_SERVER_POWER_LEVEL_SETUP & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_SERVER_POWER_LEVEL_SETUP_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_SERVER_BATTERY - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -334,13 +575,15 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_GENERIC_MODEL_SERVER_BATTERY & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_SERVER_BATTERY_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_SERVER_LOCATION - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -348,13 +591,15 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_GENERIC_MODEL_SERVER_LOCATION & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_SERVER_LOCATION_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_SERVER_LOCATION_SETUP - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -362,13 +607,15 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_GENERIC_MODEL_SERVER_LOCATION_SETUP & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_SERVER_LOCATION_SETUP_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_SERVER_ADMIN_PROPERTY - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -376,13 +623,15 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_GENERIC_MODEL_SERVER_ADMIN_PROPERTY & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_SERVER_ADMIN_PROPERTY_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_SERVER_MANUFACTURER_PROPERTY - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -390,13 +639,15 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_GENERIC_MODEL_SERVER_MANUFACTURER_PROPERTY & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_SERVER_MANUFACTURER_PROPERTY_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_SERVER_USER_PROPERTY - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -404,13 +655,15 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_GENERIC_MODEL_SERVER_USER_PROPERTY & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_SERVER_USER_PROPERTY_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_SERVER_CLIENT_PROPERTY - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -418,8 +671,10 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_GENERIC_MODEL_SERVER_CLIENT_PROPERTY & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_SERVER_CLIENT_PROPERTY_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif @@ -428,128 +683,146 @@ MOBLE_RESULT ApplicationInitSigModelList(void) /**************************************************************************/ #ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_SERVER_LIGHTNESS_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_LIGHTNESS_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS_SETUP - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS_SETUP & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_SERVER_LIGHTNESS_SETUP_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_LIGHTNESS_SETUP_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_LIGHT_MODEL_SERVER_CTL - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_SERVER_CTL & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_SERVER_CTL_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_CTL_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_LIGHT_MODEL_SERVER_CTL_SETUP - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_SERVER_CTL_SETUP & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_SERVER_CTL_SETUP_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_CTL_SETUP_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_LIGHT_MODEL_SERVER_CTL_TEMPERATURE - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_SERVER_CTL_TEMPERATURE & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_SERVER_CTL_TEMPERATURE_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_CTL_TEMPERATURE_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_LIGHT_MODEL_SERVER_HSL - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_SERVER_HSL & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_SERVER_HSL_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_HSL_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_LIGHT_MODEL_SERVER_HSL_SETUP - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_SERVER_HSL_SETUP & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_SERVER_HSL_SETUP_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_HSL_SETUP_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_LIGHT_MODEL_SERVER_HSL_HUE - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_SERVER_HSL_HUE & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_SERVER_HSL_HUE_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_HSL_HUE_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_LIGHT_MODEL_SERVER_HSL_SATURATION - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_SERVER_HSL_SATURATION & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_SERVER_HSL_SATURATION_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_HSL_SATURATION_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif @@ -557,7 +830,7 @@ MOBLE_RESULT ApplicationInitSigModelList(void) /** Following Section places Light XYL MODEL Enabled SERVER IDs *********/ /**************************************************************************/ #ifdef ENABLE_LIGHT_MODEL_SERVER_XYL - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -565,13 +838,15 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_LIGHT_MODEL_SERVER_XYL & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_SERVER_XYL_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_LIGHT_MODEL_SERVER_XYL_SETUP - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -579,8 +854,10 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_LIGHT_MODEL_SERVER_XYL_SETUP & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_SERVER_XYL_SETUP_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif @@ -588,30 +865,34 @@ MOBLE_RESULT ApplicationInitSigModelList(void) /** Following Section places Light LC MODEL Enabled SERVER IDs *********/ /**************************************************************************/ #ifdef ENABLE_LIGHT_MODEL_SERVER_LC - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_SERVER_LC & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_SERVER_LC_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_LC_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_LIGHT_MODEL_SERVER_LC_SETUP - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_SERVER_LC_SETUP & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_SERVER_LC_SETUP_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_LC_SETUP_SERVER_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif @@ -619,7 +900,7 @@ MOBLE_RESULT ApplicationInitSigModelList(void) /** Following Section places SENSOR MODEL Enabled SERVER IDs *********/ /**************************************************************************/ #ifdef ENABLE_SENSOR_MODEL_SERVER - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -627,13 +908,15 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_SENSOR_MODEL_SERVER & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = SENSOR_SERVER_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_SENSOR_MODEL_SERVER_SETUP - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -641,8 +924,10 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_SENSOR_MODEL_SERVER_SETUP & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = SENSOR_SETUP_SERVER_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif @@ -651,7 +936,7 @@ MOBLE_RESULT ApplicationInitSigModelList(void) /**************************************************************************/ #ifdef ENABLE_TIME_MODEL_SERVER - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -659,13 +944,15 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_TIME_MODEL_SERVER & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = TIME_MODEL_SERVER_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_TIME_MODEL_SERVER_SETUP - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -673,13 +960,15 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_TIME_MODEL_SERVER_SETUP & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = TIME_MODEL_SERVER_SETUP_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_SCENE_MODEL_SERVER - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -687,13 +976,15 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_SCENE_MODEL_SERVER & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = SCENE_MODEL_SERVER_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_SCENE_MODEL_SERVER_SETUP - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -701,8 +992,10 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_SCENE_MODEL_SERVER_SETUP & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = SCENE_MODEL_SERVER_SETUP_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif @@ -710,63 +1003,71 @@ MOBLE_RESULT ApplicationInitSigModelList(void) /** Following Section places Generic MODEL Enabled Client IDs **********/ /**************************************************************************/ #ifdef ENABLE_GENERIC_MODEL_CLIENT_ONOFF - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_GENERIC_MODEL_CLIENT_ONOFF & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_CLIENT_ONOFF_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = GENERIC_ONOFF_CLIENT_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_CLIENT_LEVEL - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_GENERIC_MODEL_CLIENT_LEVEL & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_CLIENT_LEVEL_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = GENERIC_LEVEL_CLIENT_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_CLIENT_DEFAULT_TRANSITION_TIME - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_GENERIC_MODEL_CLIENT_DEFAULT_TRANSITION_TIME & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_CLIENT_DEFAULT_TRANSITION_TIME_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = GENERIC_DEFAULT_TRANSITION_TIME_CLIENT_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_GENERIC_MODEL_CLIENT_POWER_ONOFF - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_GENERIC_MODEL_CLIENT_POWER_ONOFF & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = GENERIC_MODEL_CLIENT_POWER_ONOFF_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = GENERIC_POWER_ONOFF_CLIENT_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_SENSOR_MODEL_CLIENT - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } @@ -774,64 +1075,74 @@ MOBLE_RESULT ApplicationInitSigModelList(void) if(((ENABLE_SENSOR_MODEL_CLIENT & (1 << index)) == (1 << index))) { Appli_SIG_Models[index][modelIndex++] = SENSOR_CLIENT_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_LIGHT_MODEL_CLIENT_LIGHTNESS - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_CLIENT_LIGHTNESS & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_CLIENT_LIGHTNESS_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_LIGHTNESS_CLIENT_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_LIGHT_MODEL_CLIENT_CTL - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_CLIENT_CTL & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_CLIENT_CTL_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_CTL_CLIENT_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_LIGHT_MODEL_CLIENT_HSL - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_CLIENT_HSL & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_CLIENT_HSL_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_HSL_CLIENT_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif #ifdef ENABLE_LIGHT_MODEL_CLIENT_LC - if(modelCount >= APPLICATION_SIG_MODELS_MAX_COUNT) + if(modelIndex >= APPLICATION_SIG_MODELS_MAX_COUNT) { return(MOBLE_RESULT_FAIL); } if(((ENABLE_LIGHT_MODEL_CLIENT_LC & (1 << index)) == (1 << index))) { - Appli_SIG_Models[index][modelIndex++] = LIGHT_MODEL_CLIENT_LC_MODEL_ID; - Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; - modelCount++; + Appli_SIG_Models[index][modelIndex++] = LIGHT_LC_CLIENT_MODEL_ID; + if(modelIndex < APPLICATION_SIG_MODELS_MAX_COUNT) + { + Appli_SIG_Models[index][modelIndex] = NO_MODEL_AVLBL; + } } #endif } @@ -839,44 +1150,72 @@ MOBLE_RESULT ApplicationInitSigModelList(void) } /** -* @brief ApplicationGetSigModelList: This function provides the list of the -* SIG Models to the calling function -* @param pModels_sig_ID: Pointer of the array to be filled with SIG Models list -* @param elementIndex: Index of the element for Model List -* retval Count of the SIG Model Servers enabled in the Application +* @brief ApplicationInitVendorModelList: This function initialize the list of the +* VENDOR Models. +* retval MOBLE_RESULT */ -MOBLEUINT8 ApplicationGetSigModelList(MOBLEUINT16* pModels_sig_ID, MOBLEUINT8 elementIndex) +MOBLE_RESULT ApplicationInitVendorModelList(void) { - uint8_t count=0; - /* Since the SIG Models are 2 bytes, copy 2*size for memcpy */ - for(uint8_t index=0; index <= elementIndex; index++) +#ifdef ENABLE_VENDOR_MODEL_SERVER + + /*If Models enabled by user are exceeding the library capability*/ + if( APPLICATION_VENDOR_MODELS_MAX_COUNT > BLEMesh_GetTotalModelsCount() - + APPLICATION_SIG_MODELS_MAX_COUNT) { - if(index == elementIndex) + TRACE_I(TF_INIT,"The number of Models enabled in Application exceeding the limit of Library"); + return(MOBLE_RESULT_FALSE); + } + for(uint8_t index = 0; index < APPLICATION_NUMBER_OF_ELEMENTS; index++) + { + uint8_t modelIndex = 0; + Appli_Vendor_Models[index][modelIndex] = NO_MODEL_AVLBL; + + if((ENABLE_VENDOR_MODEL_SERVER & (1 << index)) == (1 << index)) { - for(uint8_t modelCount=0; modelCount < APPLICATION_SIG_MODELS_MAX_COUNT; modelCount++) + Appli_Vendor_Models[index][modelIndex++] = VENDORMODEL_STMICRO_ID1; + if(modelIndex < APPLICATION_VENDOR_MODELS_MAX_COUNT) { - if(Appli_SIG_Models[index][modelCount] == NO_MODEL_AVLBL) - { - memcpy(pModels_sig_ID, Appli_SIG_Models+index, count*2); - break; - } - - else - { - count++; - } + Appli_Vendor_Models[index][modelIndex] = NO_MODEL_AVLBL; } - - break; } - else + if(modelIndex >= APPLICATION_VENDOR_MODELS_MAX_COUNT) { - /*do nothing*/ + return(MOBLE_RESULT_FAIL); } } +#else + for(uint8_t index = 0; index < APPLICATION_NUMBER_OF_ELEMENTS; index++) + { + Appli_Vendor_Models[index][0] = NO_MODEL_AVLBL; + } +#endif + return (MOBLE_RESULT_SUCCESS); +} - return count; +/* Private functions ---------------------------------------------------------*/ + +/** +* @brief ApplicationGetSigModelList: This function provides the list of the +* SIG Models to the calling function +* @param pModels_sig_ID: Pointer of the array to be filled with SIG Models list +* @param elementIndex: Index of the element for Model List +* retval Count of the SIG Model Servers enabled in the Application +*/ +MOBLEUINT8 ApplicationGetSigModelList(MOBLEUINT16* pModels_sig_ID, MOBLEUINT8 elementIndex) +{ + uint8_t modelCount = 0; + + while((modelCount < APPLICATION_SIG_MODELS_MAX_COUNT) && + (Appli_SIG_Models[elementIndex][modelCount] != NO_MODEL_AVLBL)) + { + modelCount++; + } + memcpy(pModels_sig_ID, + Appli_SIG_Models + elementIndex, + modelCount * 2); + + return modelCount; } @@ -932,10 +1271,9 @@ MOBLEUINT8 ApplicationGetCLIENTSigModelList(MOBLEUINT16* pModels_sig_ID, MOBLEUI */ MOBLEUINT8 ApplicationSetNodeSigModelList(void) { - if (MOBLE_SUCCEEDED(BLEMeshSetSelfModelList(NumberOfElements))) - return 1; //APPLI_SIG_MODELS_COUNT; TBD - else - return 0; + /* Since the SIG Models are 2 bytes, copy 2*size for memcpy */ + BLEMeshSetSelfModelList(NumberOfElements); + return 1; } @@ -946,10 +1284,13 @@ MOBLEUINT8 ApplicationSetNodeSigModelList(void) * @param elementIndex: Index of the element for Model List * retval Count of the Vendor Model Servers enabled in the Application */ + MOBLEUINT8 ApplicationGetVendorModelList(MOBLEUINT32* pModels_vendor_ID, MOBLEUINT8 elementIndex) { +#if 0 uint8_t count=0; + /* Since the SIG Models are 2 bytes, copy 2*size for memcpy */ for(uint8_t index=0; index <= elementIndex; index++) { @@ -977,8 +1318,18 @@ MOBLEUINT8 ApplicationGetVendorModelList(MOBLEUINT32* pModels_vendor_ID, MOBLEUI /*do nothing*/ } } +#else + uint8_t modelCount = 0; - return count; + /* Since the SIG Models are 2 bytes, copy 2*size for memcpy */ + while((modelCount < APPLICATION_VENDOR_MODELS_MAX_COUNT) && + (Appli_Vendor_Models[elementIndex][modelCount] != NO_MODEL_AVLBL)) + { + modelCount++; + } + memcpy(pModels_vendor_ID, Appli_Vendor_Models+elementIndex, modelCount*4); +#endif + return modelCount; } @@ -1072,7 +1423,6 @@ MOBLEBOOL ApplicationChkVendorModelActive(MOBLEUINT32 modelID, MOBLEUINT8 elemen * retval void* Pointer to the used buffer */ #ifdef STATIC_MEMORY_ALLOCATION_IN_APPLI - void* GetMemoryDataBuffer(MOBLEUINT8 buffer_type, MOBLEUINT32 u32length) { void* ptr = NULL; @@ -1150,8 +1500,6 @@ void* GetMemoryDataBuffer(MOBLEUINT8 buffer_type, MOBLEUINT32 u32length) return ptr; } - - #endif #if (FRIEND_FEATURE == 0) @@ -1295,25 +1643,198 @@ void BLEMesh_UpdateNeighbors(void* param) } #endif /* #if (NEIGHBOR_TABLE_SUPPORTED == 0) */ +//__weak void Appli_Light_LC_SerialCmd(char *rcvdStringBuff, uint16_t rcvdStringSize) {} + +#if 0 +#ifndef ENABLE_SENSOR_MODEL_SERVER /* Flash optimization corresponding to sensor server */ +MOBLE_RESULT Appli_Sensor_Init(void){return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_ExtractPropertyI(const MOBLEUINT8* data, MOBLEUINT16* pPropertyId) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_ExtractSettingPropertyId(const MOBLEUINT8* data, MOBLEUINT16* pSettingPropertyId) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_ExtractSensorOffset(MOBLEUINT8 elementIdx,MOBLEUINT8* pSensorOffsetBuff, + MOBLEUINT8* pSensorCount, MOBLEUINT32 length, + const MOBLEUINT8* pData, MOBLEUINT16* pidNotFound) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_FillDescriptor(MOBLEUINT8 sensorOffset, void* pParams, MOBLEUINT8* pData, MOBLEUINT8* pLengthInc) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_MarshalPid(MOBLEUINT8 sensorOffset, void* pParams, MOBLEUINT8* pData, MOBLEUINT8* pLengthInc, + MOBLEUINT8 pidMatch, MOBLEUINT16 pidNotFound) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_CadenceStatus(MOBLEUINT8 pidMatch,void* pParams,MOBLEUINT16 pidNotFound, + MOBLE_ADDRESS dstAddr,MOBLEUINT8 elementIdx,MOBLEUINT8 statusSend) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_SettingsStatus(MOBLEUINT8* offsetBuff,MOBLEUINT8 sensorCount, + MOBLE_ADDRESS dstAddr,MOBLEUINT16 pidNotFound) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_SettingStatus(MOBLEUINT8 pidMatch, MOBLEUINT8 readViolation, + void* pParams,void* pSettingsParam,MOBLEUINT16 pidNotFound, + MOBLEUINT16 rcvdSettingId,MOBLE_ADDRESS dstAddr, + MOBLEUINT8 elementIdx,MOBLEUINT8 statusSend) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_DescriptorStatus(MOBLEUINT8* offsetBuff, MOBLEUINT8 sensorCount, + MOBLE_ADDRESS dstAddr, MOBLEUINT16 pidNotFound) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_Status(MOBLEUINT8* offsetBuff, MOBLEUINT8 sensorCount,MOBLE_ADDRESS dstAddr, + MOBLEUINT16 pidNotFound,MOBLEUINT8 statusSend) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_ColumnStatus(MOBLEUINT8* offsetBuff, MOBLEUINT8 sensorCount, + MOBLE_ADDRESS dstAddr,MOBLEUINT32 rawValueX, + MOBLEUINT8 rcvdRawXLength,MOBLEUINT16 pidNotFound, + MOBLEUINT8 elementIndex,MOBLEUINT8 statusSend) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_SeriesStatus(MOBLEUINT8* offsetBuff, MOBLEUINT8 sensorCount, + MOBLE_ADDRESS dstAddr,MOBLEUINT32 rcvdX1, + MOBLEUINT32 rcvdX2,MOBLEUINT8 isX1X2Present, + MOBLEUINT8 rcvdRawXLength,MOBLEUINT16 pidNotFound, + MOBLEUINT8 elementIndex,MOBLEUINT8 statusSend) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_DescriptorGet(const MOBLEUINT8* pDescriptorParam, MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr,MOBLE_ADDRESS dstPeer,MOBLEUINT8 elementIndex) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_CadenceGet(const MOBLEUINT8* pCadenceParam,MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr,MOBLE_ADDRESS dstPeer,MOBLEUINT8 elementIndex) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_CadenceSet(const MOBLEUINT8* pCadenceParam,MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr,MOBLE_ADDRESS dstPeer,MOBLEUINT8 elementIndex) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_CadenceSetUnack(const MOBLEUINT8* pCadenceParam, MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr, MOBLE_ADDRESS dstPeer,MOBLEUINT8 elementIndex) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_SettingsGet(const MOBLEUINT8* pSettingsParam, MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr, MOBLE_ADDRESS dstPeer,MOBLEUINT8 elementIndex) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_SettingGet(const MOBLEUINT8* pRcvdParam, MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr,MOBLE_ADDRESS dstPeer,MOBLEUINT8 elementIndex) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_SettingSet(const MOBLEUINT8* pRcvdParam,MOBLEUINT32 length,MOBLE_ADDRESS peerAddr, + MOBLE_ADDRESS dstPeer,MOBLEUINT8 elementIndex) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_SettingSetUnack(const MOBLEUINT8* pRcvdParam,MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr,MOBLE_ADDRESS dstPeer, + MOBLEUINT8 elementIndex) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_Get(const MOBLEUINT8* pGetParam, MOBLEUINT32 length,MOBLE_ADDRESS peerAddr, + MOBLE_ADDRESS dstPeer,MOBLEUINT8 elementIndex) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_ColumnGet(const MOBLEUINT8* pColumnParam,MOBLEUINT32 length,MOBLE_ADDRESS peerAddr, + MOBLE_ADDRESS dstPeer,MOBLEUINT8 elementIndex) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_SeriesGet(const MOBLEUINT8* pSeriesParam, MOBLEUINT32 length, + MOBLE_ADDRESS peerAddr, MOBLE_ADDRESS dstPeer, + MOBLEUINT8 elementIndex) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT SensorModelServer_GetOpcodeTableCb(const MODEL_OpcodeTableParam_t **data, + MOBLEUINT16 *length) +{return MOBLE_RESULT_NOTIMPL;} + +MOBLE_RESULT SensorModelServer_GetStatusRequestCb(MODEL_MessageHeader_t *pmsgParams, + MOBLEUINT16 opcode, MOBLEUINT8 *pResponsedata, + MOBLEUINT32 *plength, MOBLEUINT8 const *pRxData, + MOBLEUINT32 dataLength,MOBLEBOOL response) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT SensorModelServer_ProcessMessageCb(MODEL_MessageHeader_t *pmsgParams, + MOBLEUINT16 opcode,MOBLEUINT8 const *data, + MOBLEUINT32 length,MOBLEBOOL response) +{return MOBLE_RESULT_NOTIMPL;} +MOBLEUINT32 Sensor_SleepDurationMs_Get(void) +{return 0;} +MOBLE_RESULT Sensor_UpdatePublishParameters(MOBLEUINT8 sensorOffset) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_CheckStatusTrigger(MOBLEUINT8 sensorOffset) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_Send(MOBLEUINT8 sensorOffset,MOBLEUINT8 elementIdx,MOBLEUINT16 propertyId) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_UpdateCadence(MOBLEUINT8 sensorOffset, MOBLEUINT8 elementIdx, + MOBLEUINT16 propertyId) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Sensor_UpdatePublishState(MOBLEUINT8 sensorOffset, MOBLEUINT8 state) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT SensorServer_Init(void* sensorBuff, const sensor_server_cb_t* sensor_cb, + MOBLEUINT16 sizeBuff,const void* initParams) +{return MOBLE_RESULT_NOTIMPL;} +void Sensor_Process(void){} +MOBLE_RESULT Sensor_ModelPublishSet(model_publicationparams_t* pPublishParams) +{return MOBLE_RESULT_NOTIMPL;} +#endif +#endif + +//__weak void Appli_Sensor_SerialCmd(char *rcvdStringBuff, uint16_t rcvdStringSize){} + +#ifndef ENABLE_LIGHT_MODEL_SERVER_LC +MOBLE_RESULT LightLcServer_GetOpcodeTableCb(const MODEL_OpcodeTableParam_t **data, + MOBLEUINT16 *length) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT LightLcServer_GetStatusRequestCb(MODEL_MessageHeader_t *pmsgParam, + MOBLEUINT16 opcode, + MOBLEUINT8 *pResponsedata, + MOBLEUINT32 *plength, + MOBLEUINT8 const *pRxData, + MOBLEUINT32 dataLength, + MOBLEBOOL response) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT LightLcServer_ProcessMessageCb(MODEL_MessageHeader_t *pmsgParam, + MOBLEUINT16 opcode, + MOBLEUINT8 const *pRxData, + MOBLEUINT32 dataLength, + MOBLEBOOL response) +{return MOBLE_RESULT_NOTIMPL;} +void Light_LC_NvmParams_Get(MOBLEUINT8 elementIndex, + MOBLEUINT8* lightLcNvmParamsBuff, + MOBLEUINT8* lcNvmParamsSize) +{} +void Light_LC_OnPowerUp(MOBLEUINT8 elementIndex, + MOBLEUINT8 const *pModelValue_Load, + MOBLEUINT8 genericOnPowerUp, + MOBLEUINT16 lightDefault, + MOBLEUINT16 lightLast, + MOBLEUINT16 lightActualLKV) +{} +MOBLE_RESULT Light_LC_SetTransitionTimeZero(MOBLEUINT8 elementIndex) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Light_LC_SensorPropertyUpdate(MOBLEUINT8 lcsElementIndex, + MOBLEUINT16 sensorPropertyId, + MOBLEUINT32 value) +{return MOBLE_RESULT_NOTIMPL;} +void Light_LC_LigtnessLinearUnsolicitedChange(MOBLEUINT8 elementIndex) +{} +MOBLEUINT32 Light_LC_SleepDurationMs_Get(void) +{return 0;} +MOBLE_RESULT Light_LC_Send(MOBLEUINT8 elementIndex) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Light_LC_LcOnOffUpdate(MOBLEUINT8 elementIndex, + MOBLEUINT8 onOff, + MOBLEUINT8 optionalParams, + MOBLEUINT32 delayMsOnOffMsg, + MOBLEUINT32 stepResMsOnOffMsg, + MOBLEUINT32 trTimeMsOnOffMsg) +{return MOBLE_RESULT_NOTIMPL;} +void Light_LC_Process(void) +{} +MOBLE_RESULT Light_LCs_Init(void* lcsBuff, + MOBLEUINT8 lcsElementIndex, + const light_lc_cb_t* lcs_cb, + MOBLEUINT16 sizeBuff) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT ExtractLcServerElementIndex(MOBLEUINT8* pLcsElementIndex, + MOBLEUINT8 noOfElements, + MOBLEUINT8 lcServer, + MOBLEUINT8 lcSetupServer, + MOBLEUINT8 genericOnOffServer, + MOBLEUINT8 genericPowerOnOffServer, + MOBLEUINT8 lightLightnessServer) +{return MOBLE_RESULT_NOTIMPL;} +MOBLE_RESULT Appli_Light_LCs_Init(void) +{return MOBLE_RESULT_NOTIMPL;} +#endif /* #ifndef ENABLE_LIGHT_MODEL_SERVER_LC */ + /* Empty functions to reduce code size in case of PB-ADV functionality not in use */ #if (PB_ADV_SUPPORTED == 0) -MOBLE_RESULT MoblePBADVInit(void* param) -{ - return MOBLE_RESULT_SUCCESS; -} -MOBLE_RESULT MoblePBADVProcessData(void* param) -{ - return MOBLE_RESULT_SUCCESS; -} -MOBLE_RESULT MoblePBADVStartProvisioning(void* param) -{ - return MOBLE_RESULT_SUCCESS; -} -MOBLE_RESULT MoblePBADVStopProvisioning(void* param) -{ - return MOBLE_RESULT_SUCCESS; -} +MOBLE_RESULT MoblePBADVInit(void* param){return MOBLE_RESULT_SUCCESS;} +MOBLE_RESULT MoblePBADVProcessData(void* param){return MOBLE_RESULT_SUCCESS;} +MOBLE_RESULT MoblePBADVStartProvisioning(void* param){return MOBLE_RESULT_SUCCESS;} +MOBLE_RESULT MoblePBADVStopProvisioning(void* param){return MOBLE_RESULT_SUCCESS;} #endif /* PLEASE REFER TO THE .h file for different settings */ |