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 'Projects/P-NUCLEO-WB55.USBDongle/Applications/BLE/BLE_MeshLightingLPN/STM32_WPAN/app/appli_generic.c')
-rw-r--r--Projects/P-NUCLEO-WB55.USBDongle/Applications/BLE/BLE_MeshLightingLPN/STM32_WPAN/app/appli_generic.c349
1 files changed, 210 insertions, 139 deletions
diff --git a/Projects/P-NUCLEO-WB55.USBDongle/Applications/BLE/BLE_MeshLightingLPN/STM32_WPAN/app/appli_generic.c b/Projects/P-NUCLEO-WB55.USBDongle/Applications/BLE/BLE_MeshLightingLPN/STM32_WPAN/app/appli_generic.c
index 0ecaea465..c5d21b225 100644
--- a/Projects/P-NUCLEO-WB55.USBDongle/Applications/BLE/BLE_MeshLightingLPN/STM32_WPAN/app/appli_generic.c
+++ b/Projects/P-NUCLEO-WB55.USBDongle/Applications/BLE/BLE_MeshLightingLPN/STM32_WPAN/app/appli_generic.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
@@ -50,16 +50,21 @@ extern MOBLEUINT16 IntensityValue;
extern MOBLEUINT8 IntensityFlag;
extern MOBLEUINT8 PowerOnOff_flag;
extern Appli_LightPwmValue_t Appli_LightPwmValue;
-Appli_Generic_OnOffSet AppliOnOffSet;
-Appli_Generic_LevelSet AppliLevelSet;
-Appli_Generic_PowerOnOffSet AppliPowerOnSet;
-Appli_Generic_DefaultTransitionSet AppliDefaultTransitionSet;
+
+Appli_Generic_OnOffSet AppliOnOffSet[APPLICATION_NUMBER_OF_ELEMENTS];
+Appli_Generic_LevelSet AppliLevelSet[APPLICATION_NUMBER_OF_ELEMENTS];
+Appli_Generic_PowerOnOffSet AppliPowerOnSet[APPLICATION_NUMBER_OF_ELEMENTS];
+Appli_Generic_DefaultTransitionSet AppliDefaultTransitionSet[APPLICATION_NUMBER_OF_ELEMENTS];
/* Private function prototypes -----------------------------------------------*/
-MOBLE_RESULT Appli_Generic_Move_Set(Generic_LevelStatus_t* pdeltaMoveParam,
- MOBLEUINT8 OptionalValid);
-MOBLE_RESULT Appli_Generic_Delta_Set(Generic_LevelStatus_t* pdeltalevelParam,
- MOBLEUINT8 OptionalValid);
+MOBLE_RESULT Appli_Generic_LevelDelta_Set(Generic_LevelStatus_t* pdeltalevelParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Generic_LevelMove_Set(Generic_LevelStatus_t* pdeltaMoveParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
/* Private functions ---------------------------------------------------------*/
/******************************************************************************/
@@ -71,43 +76,57 @@ MOBLE_RESULT Appli_Generic_Delta_Set(Generic_LevelStatus_t* pdeltalevelParam,
* when Generic OnOff message is received
* @param pGeneric_OnOffParam: Pointer to the parameters received for message
* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
MOBLE_RESULT Appli_Generic_OnOff_Set(Generic_OnOffStatus_t* pGeneric_OnOffParam,
- MOBLEUINT8 OptionalValid)
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
{
- AppliOnOffSet.Present_OnOff = pGeneric_OnOffParam->Present_OnOff_State;
- AppliOnOffSet.Present_OnOffValue = pGeneric_OnOffParam->Present_OnOff_Value;
-
+ /*User need to modify the parameters as per the number of elements per node*/
+ AppliOnOffSet[elementIndex].Present_OnOff = pGeneric_OnOffParam->Present_OnOff_State;
+ AppliOnOffSet[elementIndex].Present_OnOffValue = pGeneric_OnOffParam->Present_OnOff_Value;
- /* This condition is applicable when user want to on off the light with some default
- * transition value, or optionalValid =IN_TRANSITION , transition is in progress.
- */
+ /* This condition is applicable when user want to on off the light with some
+ default transition value, or optionalValid =IN_TRANSITION ,
+ transition is in progress.
+ */
if((OptionalValid == DEFAULT_TRANSITION) || (OptionalValid == IN_TRANSITION))
{
- Appli_LightPwmValue.IntensityValue = AppliOnOffSet.Present_OnOffValue;
+ Appli_LightPwmValue.IntensityValue = AppliOnOffSet[elementIndex].Present_OnOffValue;
Light_UpdateLedValue(LOAD_STATE ,Appli_LightPwmValue);
- if(AppliOnOffSet.Present_OnOff == APPLI_LED_ON)
+
+ #if 0 /* EME */
+ if(AppliOnOffSet[elementIndex].Present_OnOff == APPLI_LED_ON)
{
- AppliOnOffSet.TargetValue = PWM_TIME_PERIOD;
+ AppliOnOffSet[elementIndex].TargetValue = PWM_TIME_PERIOD;
}
else
{
- AppliOnOffSet.TargetValue = APPLI_LED_OFF;
+ AppliOnOffSet[elementIndex].TargetValue = APPLI_LED_OFF;
}
+ #else
+ AppliOnOffSet[elementIndex].TargetValue = pGeneric_OnOffParam->Target_OnOff;
+ #endif /* EME */
- if(AppliOnOffSet.Present_OnOffValue > 16000)
- {
- BSP_LED_On(LED_BLUE);
- }
- else
+ if(AppliOnOffSet[elementIndex].Present_OnOffValue == AppliOnOffSet[elementIndex].TargetValue)
{
- BSP_LED_Off(LED_BLUE);
+ if(AppliOnOffSet[elementIndex].Present_OnOffValue > 0)
+ {
+ BSP_LED_On(LED_BLUE);
+ }
+ else
+ {
+ BSP_LED_Off(LED_BLUE);
+ }
}
}
else
{
- if((AppliOnOffSet.Present_OnOff == APPLI_LED_ON) && (OptionalValid == NO_TRANSITION))
+ if((AppliOnOffSet[elementIndex].Present_OnOff == APPLI_LED_ON) && (OptionalValid == NO_TRANSITION))
{
Appli_LightPwmValue.IntensityValue = PWM_TIME_PERIOD;
Light_UpdateLedValue(LOAD_STATE , Appli_LightPwmValue);
@@ -120,18 +139,15 @@ MOBLE_RESULT Appli_Generic_OnOff_Set(Generic_OnOffStatus_t* pGeneric_OnOffParam,
BSP_LED_Off(LED_BLUE);
}
}
+
+ TRACE_M(TF_GENERIC,"Generic_OnOff_Set callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8202%02hx!\n\r",AppliOnOffSet[elementIndex].Present_OnOff);
- TRACE_M(TF_SERIAL_CTRL,"#8202%02hx!\n\r",AppliOnOffSet.Present_OnOff);
+ NvmStatePowerFlag_Set(GENERIC_ON_OFF_NVM_FLAG, elementIndex);
- /* set the flag value for NVM store */
- RestoreFlag = GENERIC_ON_OFF_NVM_FLAG;
-
- AppliNvm_SaveMessageParam();
-
return MOBLE_RESULT_SUCCESS;
}
-
/******************************************************************************/
#endif /* #ifdef ENABLE_GENERIC_MODEL_SERVER_ONOFF */
/******************************************************************************/
@@ -142,15 +158,20 @@ MOBLE_RESULT Appli_Generic_OnOff_Set(Generic_OnOffStatus_t* pGeneric_OnOffParam,
* when Generic OnOff message is received
* @param pOnOff_status: Pointer to the parameters received for message
* @param plength: length of the data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
-MOBLE_RESULT Appli_Generic_OnOff_Status(MOBLEUINT8 const *pOnOff_status, MOBLEUINT32 plength)
+MOBLE_RESULT Appli_Generic_OnOff_Status(MOBLEUINT8 const *pOnOff_status, MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
{
MOBLEUINT8 i;
- TRACE_M(TF_GENERIC,"Appli_Generic_OnOff_Status callback received \r\n");
+ TRACE_M(TF_GENERIC,"Generic_OnOff_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8204!\r\n");
- TRACE_M(TF_SERIAL_CTRL,"#8204! \n\r");
for(i = 0; i < plength; i++)
{
if(i == 0)
@@ -164,6 +185,7 @@ MOBLE_RESULT Appli_Generic_OnOff_Status(MOBLEUINT8 const *pOnOff_status, MOBLEUI
return MOBLE_RESULT_SUCCESS;
}
+
/******************************************************************************/
#ifdef ENABLE_GENERIC_MODEL_SERVER_LEVEL
/******************************************************************************/
@@ -173,21 +195,26 @@ MOBLE_RESULT Appli_Generic_OnOff_Status(MOBLEUINT8 const *pOnOff_status, MOBLEUI
* when Generic Level message is received
* @param plevelParam: Pointer to the parameters message
* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
MOBLE_RESULT Appli_Generic_Level_Set(Generic_LevelStatus_t* plevelParam,
- MOBLEUINT8 OptionalValid)
+ MOBLEUINT8 OptionalValid,MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
{
MOBLEUINT16 duty;
static MOBLEUINT16 previousIntensity = 0;
- AppliLevelSet.Present_Level16= plevelParam->Present_Level16;
- if(AppliLevelSet.Present_Level16 <= 0)
+ AppliLevelSet[elementIndex].Present_Level16= plevelParam->Present_Level16;
+ if(AppliLevelSet[elementIndex].Present_Level16 <= 0)
{
- AppliLevelSet.Present_Level16 = 0;
+ AppliLevelSet[elementIndex].Present_Level16 = 0;
}
- IntensityValue = AppliLevelSet.Present_Level16;
+ IntensityValue = AppliLevelSet[elementIndex].Present_Level16;
if(((IntensityValue > previousIntensity) && (IntensityValue <PWM_TIME_PERIOD)) ||
IntensityValue == INTENSITY_LEVEL_ZERO)
@@ -200,49 +227,42 @@ MOBLE_RESULT Appli_Generic_Level_Set(Generic_LevelStatus_t* plevelParam,
}
previousIntensity = IntensityValue;
- if(AppliLevelSet.Present_Level16 < 0x00)
+ if(AppliLevelSet[elementIndex].Present_Level16 < 0x00)
{
- AppliLevelSet.Present_Level16 = 0;
+ AppliLevelSet[elementIndex].Present_Level16 = 0;
}
- duty = PwmValueMapping(AppliLevelSet.Present_Level16 , 0x7FFF ,0x0000);
+ duty = PwmValueMapping(AppliLevelSet[elementIndex].Present_Level16 , 0x7FFF ,0x0000);
Appli_LightPwmValue.IntensityValue = duty;
Light_UpdateLedValue(LOAD_STATE , Appli_LightPwmValue);
- TRACE_M(TF_SERIAL_CTRL,"#8206%04hx!\n\r",AppliLevelSet.Present_Level16);
-
- /* set the flag value for NVM store */
- RestoreFlag = GENERIC_LEVEL_NVM_FLAG;
-
- AppliNvm_SaveMessageParam();
-
- /* For demo, if Level is more than 100, switch ON the LED */
- if(AppliLevelSet.Present_Level16 >= 50)
- {
- BSP_LED_On(LED_BLUE);
- }
- else
- {
- BSP_LED_Off(LED_BLUE);
- }
+ TRACE_M(TF_GENERIC,"Generic_Level_Set callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8206!\r\n");
+ NvmStatePowerFlag_Set(GENERIC_LEVEL_NVM_FLAG, elementIndex);
+
return MOBLE_RESULT_SUCCESS;
}
+
/**
* @brief Appli_Generic_Delta_Set: This function is callback for Application
* when Generic Level Delta message is received
* @param pdeltalevelParam: Pointer to the parameters message
* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
-MOBLE_RESULT Appli_Generic_Delta_Set(Generic_LevelStatus_t* pdeltalevelParam,
- MOBLEUINT8 OptionalValid)
+MOBLE_RESULT Appli_Generic_LevelDelta_Set(Generic_LevelStatus_t* pdeltalevelParam,
+ MOBLEUINT8 OptionalValid,MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
{
-
- AppliLevelSet.Present_Level16 = pdeltalevelParam->Present_Level16;
+ AppliLevelSet[elementIndex].Present_Level16 = pdeltalevelParam->Present_Level16;
/* For demo, if Level is more than 50, switch ON the LED */
- if (AppliLevelSet.Present_Level16 >= 50)
+ if (AppliLevelSet[elementIndex].Present_Level16 >= 50)
{
Appli_LightPwmValue.IntensityValue = PWM_TIME_PERIOD;
Light_UpdateLedValue(LOAD_STATE , Appli_LightPwmValue);
@@ -253,32 +273,43 @@ MOBLE_RESULT Appli_Generic_Delta_Set(Generic_LevelStatus_t* pdeltalevelParam,
Light_UpdateLedValue(RESET_STATE , Appli_LightPwmValue);
BSP_LED_Off(LED_BLUE);
}
- TRACE_M(TF_SERIAL_CTRL,"#8206!\n\r");
+
+ TRACE_M(TF_GENERIC,"Generic_LevelDelta_Set callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8209!\r\n");
+
return MOBLE_RESULT_SUCCESS;
}
/**
-* @brief Appli_Generic_Move_Set: This function is callback for Application
+* @brief Appli_Generic_LevelMove_Set: This function is callback for Application
* when Generic Level Move message is received
* @param pdeltaMoveParam: Pointer to the parameters message
* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
-MOBLE_RESULT Appli_Generic_Move_Set(Generic_LevelStatus_t* pdeltaMoveParam,
- MOBLEUINT8 OptionalValid)
+MOBLE_RESULT Appli_Generic_LevelMove_Set(Generic_LevelStatus_t* pdeltaMoveParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
{
- AppliLevelSet.Last_delta_level = pdeltaMoveParam->Last_delta_level;
- AppliLevelSet.Last_Level_TID = pdeltaMoveParam->Last_Level_TID;
- AppliLevelSet.Last_Present_Level16 = pdeltaMoveParam->Last_Present_Level16;
- AppliLevelSet.Present_Level16 = pdeltaMoveParam->Present_Level16;
- AppliLevelSet.RemainingTime = pdeltaMoveParam->RemainingTime;
- AppliLevelSet.Target_Level16 = pdeltaMoveParam->Target_Level16;
+// if(OptionalValid == 1)
+// {
+ AppliLevelSet[elementIndex].Last_delta_level = pdeltaMoveParam->Last_delta_level;
+ AppliLevelSet[elementIndex].Last_Level_TID = pdeltaMoveParam->Last_Level_TID;
+ AppliLevelSet[elementIndex].Last_Present_Level16 = pdeltaMoveParam->Last_Present_Level16;
+ AppliLevelSet[elementIndex].Present_Level16 = pdeltaMoveParam->Present_Level16;
+ AppliLevelSet[elementIndex].RemainingTime = pdeltaMoveParam->RemainingTime;
+ AppliLevelSet[elementIndex].Target_Level16 = pdeltaMoveParam->Target_Level16;
+// }
- TRACE_M(TF_SERIAL_CTRL,"#8206!\n\r");
-
- return MOBLE_RESULT_SUCCESS;
+ TRACE_M(TF_GENERIC,"Generic_LevelMove_Set callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#820B! \r\n");
+ return MOBLE_RESULT_SUCCESS;
}
@@ -291,39 +322,45 @@ MOBLE_RESULT Appli_Generic_Move_Set(Generic_LevelStatus_t* pdeltaMoveParam,
* when Generic Level Move message is received
* @param plevel_status: Pointer to the parameters message
* @param plength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
MOBLE_RESULT Appli_Generic_Level_Status(MOBLEUINT8 const *plevel_status,
- MOBLEUINT32 plength)
+ MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
{
-#ifdef CFG_DEBUG_TRACE
+#if ( CFG_DEBUG_TRACE != 0 )
MOBLEUINT8 i;
MOBLEUINT8 level = 0;
-#endif
-
- TRACE_M(TF_GENERIC,"Generic_Level_Status callback received \r\n");
+#endif
- TRACE_M(TF_SERIAL_CTRL,"#8208! \n\r");
+ TRACE_M(TF_GENERIC,"Generic_Level_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8208! \r\n");
-#ifdef CFG_DEBUG_TRACE
+#if ( CFG_DEBUG_TRACE != 0 )
for(i = 0; i < plength; i++)
{
if((i == 0) || (i == 2))
level = plevel_status[i];
else if(i == 1)
- TRACE_M(TF_GENERIC,"Present Level value: %d\n\r",
+ TRACE_M(TF_SERIAL_CTRL,"Present Level value: %d\n\r",
(plevel_status[i]<<8)|level);
else if(i == 3)
- TRACE_M(TF_GENERIC,"Target Level value: %d\n\r",
+ TRACE_M(TF_SERIAL_CTRL,"Target Level value: %d\n\r",
(plevel_status[i]<<8)|level);
else if(i == 4)
- TRACE_M(TF_GENERIC,"Remaining Time value: %d\n\r", plevel_status[i]);
+ TRACE_M(TF_SERIAL_CTRL,"Remaining Time value: %d\n\r", plevel_status[i]);
}
-#endif
+#endif
+
return MOBLE_RESULT_SUCCESS;
}
-
+
/******************************************************************************/
#ifdef ENABLE_GENERIC_MODEL_SERVER_POWER_ONOFF
/******************************************************************************/
@@ -333,17 +370,26 @@ MOBLE_RESULT Appli_Generic_Level_Status(MOBLEUINT8 const *plevel_status,
* when Generic Power on off set message is received
* @param pPowerOnOffParam: Pointer to the parameters message
* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
MOBLE_RESULT Appli_Generic_PowerOnOff_Set(Generic_PowerOnOffParam_t* pPowerOnOffParam,
- MOBLEUINT8 OptionalValid)
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
{
- AppliPowerOnSet.PowerOnState = pPowerOnOffParam->PowerOnOffState;
-
- TRACE_M(TF_SERIAL_CTRL,"#8213!\n\r");
+ AppliPowerOnSet[elementIndex].PowerOnState = pPowerOnOffParam->PowerOnOffState;
+
+ TRACE_M(TF_GENERIC,"Generic_PowerOnOff_Set callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8213!\r\n");
- /* set the flag value for NVM store */
- //RestoreFlag = GENERIC_ON_OFF_NVM_FLAG;
+ if(AppliPowerOnSet[elementIndex].PowerOnState == GENERIC_POWER_ON_STATE)
+ {
+ /* set the flag value for NVM store */
+ RestoreFlag = GENERIC_ON_OFF_NVM_FLAG;
+ }
AppliNvm_SaveMessageParam();
@@ -359,17 +405,20 @@ MOBLE_RESULT Appli_Generic_PowerOnOff_Set(Generic_PowerOnOffParam_t* pPowerOnOff
* when Generic Power on off set message is received
* @param powerOnOff_status: Pointer to the parameters message
* @param plength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
-MOBLE_RESULT Appli_Generic_PowerOnOff_Status(MOBLEUINT8 const *powerOnOff_status ,
- MOBLEUINT32 plength)
+MOBLE_RESULT Appli_Generic_PowerOnOff_Status(MOBLEUINT8 const *powerOnOff_status,\
+ MOBLEUINT32 plength, MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
{
MOBLEUINT8 i;
- TRACE_M(TF_GENERIC,"Generic_PowerOnOff_Status callback received \r\n");
+ TRACE_M(TF_GENERIC,"Generic_PowerOnOff_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8212!\r\n");
- TRACE_M(TF_SERIAL_CTRL,"#8212! \n\r");
-
for(i = 0; i < plength; i++)
{
if(i == 0)
@@ -390,37 +439,43 @@ MOBLE_RESULT Appli_Generic_PowerOnOff_Status(MOBLEUINT8 const *powerOnOff_status
* when Generic Power on off set message is received
* @param pDefaultTimeParam: Pointer to the parameters message
* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
MOBLE_RESULT Appli_Generic_DefaultTransitionTime_Set(Generic_DefaultTransitionParam_t* pDefaultTimeParam,
- MOBLEUINT8 OptionalValid)
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
{
- AppliDefaultTransitionSet.DefaultTransitionTime = pDefaultTimeParam->DefaultTransitionTime;
+ AppliDefaultTransitionSet[elementIndex].DefaultTransitionTime = pDefaultTimeParam->DefaultTransitionTime;
+ TRACE_M(TF_GENERIC,"Generic_DefaultTransitionTime_Set callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#820E!\r\n");
return MOBLE_RESULT_SUCCESS;
}
-
/******************************************************************************/
#endif /* ENABLE_GENERIC_MODEL_SERVER_DEFAULT_TRANSITION_TIME */
/******************************************************************************/
-
/**
* @brief Appli_Generic_DefaultTransitionTime_Status: This function is callback for Application
* when Generic Power on off set message is received
* @param pTransition_status: Pointer to the parameters message
* @param plength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
-MOBLE_RESULT Appli_Generic_DefaultTransitionTime_Status(MOBLEUINT8 const *pTransition_status ,
- MOBLEUINT32 plength)
+MOBLE_RESULT Appli_Generic_DefaultTransitionTime_Status(MOBLEUINT8 const *pTransition_status , MOBLEUINT32 plength,MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
{
- TRACE_M(TF_GENERIC,"Generic_DefaultTransitionTime_Status callback received \r\n");
-
- TRACE_M(TF_SERIAL_CTRL,"#8210! \n\r");
+ TRACE_M(TF_GENERIC,"Generic_DefaultTransitionTime_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8210!\r\n");
return MOBLE_RESULT_SUCCESS;
}
@@ -431,83 +486,99 @@ MOBLE_RESULT Appli_Generic_DefaultTransitionTime_Status(MOBLEUINT8 const *pTrans
* @brief Appli_Generic_GetOnOffState: This function is callback for Application
* when Generic on off status message is to be provided
* @param pOnOff_status: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
-MOBLE_RESULT Appli_Generic_GetOnOffStatus(MOBLEUINT8* pOnOff_Status)
+MOBLE_RESULT Appli_Generic_GetOnOffStatus(MOBLEUINT8* pOnOff_Status,MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
{
- *pOnOff_Status = AppliOnOffSet.Present_OnOff;
- TRACE_M(TF_SERIAL_CTRL,"Generic Get OnOff Status: Status %d!\n\r",
- AppliOnOffSet.Present_OnOff);
-
+ *pOnOff_Status = AppliOnOffSet[elementIndex].Present_OnOff;
return MOBLE_RESULT_SUCCESS;
}
+
/**
* @brief Appli_Generic_GetOnOffValue: This function is callback for Application
to get the PWM value for the generic on off
* @param pOnOff_Value: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
-MOBLE_RESULT Appli_Generic_GetOnOffValue(MOBLEUINT8* pOnOff_Value)
+MOBLE_RESULT Appli_Generic_GetOnOffValue(MOBLEUINT8* pOnOff_Value, MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
{
- *pOnOff_Value = AppliOnOffSet.Present_OnOffValue;
- *(pOnOff_Value+1) = AppliOnOffSet.Present_OnOffValue >> 8;
- *(pOnOff_Value+2) = AppliOnOffSet.TargetValue;
- *(pOnOff_Value+3) = AppliOnOffSet.TargetValue >> 8;
- TRACE_M(TF_SERIAL_CTRL,"Generic Get OnOff Value: Value %d!\n\r",
- AppliOnOffSet.Present_OnOffValue);
+ *pOnOff_Value = AppliOnOffSet[elementIndex].Present_OnOffValue;
+ *(pOnOff_Value+1) = AppliOnOffSet[elementIndex].Present_OnOffValue >> 8;
+ *(pOnOff_Value+2) = AppliOnOffSet[elementIndex].TargetValue;
+ *(pOnOff_Value+3) = AppliOnOffSet[elementIndex].TargetValue >> 8;
return MOBLE_RESULT_SUCCESS;
}
+
/**
* @brief Appli_Generic_GetLevelStatus: This function is callback for Application
when Generic Level status message is to be provided
* @param pLevel_status: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
-MOBLE_RESULT Appli_Generic_GetLevelStatus(MOBLEUINT8* pLevel_Status)
+MOBLE_RESULT Appli_Generic_GetLevelStatus(MOBLEUINT8* pLevel_Status, MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
{
- *pLevel_Status = AppliLevelSet.Present_Level16;
- *(pLevel_Status+1) = AppliLevelSet.Present_Level16 >> 8;
- *(pLevel_Status+2) = AppliLevelSet.Target_Level16;
- *(pLevel_Status+3) = AppliLevelSet.Target_Level16 >> 8;
-// TRACE_M(TF_SERIAL_CTRL,"Generic Get Level Status: Value %d!\n\r",
-// *pLevel_Status);
+ *pLevel_Status = AppliLevelSet[elementIndex].Present_Level16;
+ *(pLevel_Status+1) = AppliLevelSet[elementIndex].Present_Level16 >> 8;
+ *(pLevel_Status+2) = AppliLevelSet[elementIndex].Target_Level16;
+ *(pLevel_Status+3) = AppliLevelSet[elementIndex].Target_Level16 >> 8;
return MOBLE_RESULT_SUCCESS;
}
+
/**
* @brief Appli_Generic_GetPowerOnOffStatus: This function is callback for Application
* when Generic Get Power status message is to be provided
* @param pLevel_status: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
-MOBLE_RESULT Appli_Generic_GetPowerOnOffStatus(MOBLEUINT8* pPower_Status)
+MOBLE_RESULT Appli_Generic_GetPowerOnOffStatus(MOBLEUINT8* pPower_Status, MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
{
- *pPower_Status = AppliPowerOnSet.PowerOnState;
- TRACE_M(TF_SERIAL_CTRL,"Generic Get OnOff Status: Status %d!\n\r",
- AppliPowerOnSet.PowerOnState);
+
+ *pPower_Status = AppliPowerOnSet[elementIndex].PowerOnState;
return MOBLE_RESULT_SUCCESS;
}
+
/**
* @brief Appli_Generic_GetDefaultTransitionStatus: This function is callback for
* Application when Generic Level status message is to be provided
* @param pTransition_Status: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
* @retval MOBLE_RESULT
*/
-MOBLE_RESULT Appli_Generic_GetDefaultTransitionStatus(MOBLEUINT8* pTransition_Status)
+MOBLE_RESULT Appli_Generic_GetDefaultTransitionStatus(MOBLEUINT8* pTransition_Status,MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
{
- *pTransition_Status = AppliDefaultTransitionSet.DefaultTransitionTime;
- TRACE_M(TF_SERIAL_CTRL,"Get Default Transition Status: Status %d!\n\r",
- AppliDefaultTransitionSet.DefaultTransitionTime);
+
+ *pTransition_Status = AppliDefaultTransitionSet[elementIndex].DefaultTransitionTime;
return MOBLE_RESULT_SUCCESS;
}
+
/**
* @}
*/
@@ -516,5 +587,5 @@ MOBLE_RESULT Appli_Generic_GetDefaultTransitionStatus(MOBLEUINT8* pTransition_St
* @}
*/
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
+/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/