Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.c969
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>&copy; Copyright (c) 2019 STMicroelectronics.
+ * <h2><center>&copy; 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 */