38 #ifndef LIGHT_LC_MC_H__ 39 #define LIGHT_LC_MC_H__ 43 #include "light_lc_common.h" 44 #include "mesh_config.h" 46 #include "model_config_file.h" 48 #if (SCENE_SETUP_SERVER_INSTANCES_MAX > 0) || (DOXYGEN) 49 #include "scene_common.h" 65 #if (SCENE_SETUP_SERVER_INSTANCES_MAX > 0) || (DOXYGEN) 66 #define LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES \ 67 (LIGHT_LC_SETUP_SERVER_INSTANCES_MAX + (SCENE_REGISTER_ARRAY_SIZE * LIGHT_LC_SETUP_SERVER_INSTANCES_MAX)) 69 #define LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES \ 70 (LIGHT_LC_SETUP_SERVER_INSTANCES_MAX) 73 #define LIGHT_LC_MODE_EID_START (MESH_APP_MODEL_LIGHT_LC_SERVER_ID_START) 74 #define LIGHT_LC_OCC_MODE_EID_START (LIGHT_LC_MODE_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 75 #define LIGHT_LC_LIGHT_ONOFF_EID_START (LIGHT_LC_OCC_MODE_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 76 #define LIGHT_LC_PR_LUXLEVEL_ON_EID_START (LIGHT_LC_LIGHT_ONOFF_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 77 #define LIGHT_LC_PR_LUXLEVEL_PROLONG_EID_START (LIGHT_LC_PR_LUXLEVEL_ON_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 78 #define LIGHT_LC_PR_LUXLEVEL_STANDBY_EID_START (LIGHT_LC_PR_LUXLEVEL_PROLONG_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 79 #define LIGHT_LC_PR_LIGHTNESS_ON_EID_START (LIGHT_LC_PR_LUXLEVEL_STANDBY_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 80 #define LIGHT_LC_PR_LIGHTNESS_PROLONG_EID_START (LIGHT_LC_PR_LIGHTNESS_ON_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 81 #define LIGHT_LC_PR_LIGHTNESS_STANDBY_EID_START (LIGHT_LC_PR_LIGHTNESS_PROLONG_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 82 #define LIGHT_LC_PR_REGULATOR_ACCURACY_EID_START (LIGHT_LC_PR_LIGHTNESS_STANDBY_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 83 #define LIGHT_LC_PR_REGULATOR_KID_EID_START (LIGHT_LC_PR_REGULATOR_ACCURACY_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 84 #define LIGHT_LC_PR_REGULATOR_KIU_EID_START (LIGHT_LC_PR_REGULATOR_KID_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 85 #define LIGHT_LC_PR_REGULATOR_KPD_EID_START (LIGHT_LC_PR_REGULATOR_KIU_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 86 #define LIGHT_LC_PR_REGULATOR_KPU_EID_START (LIGHT_LC_PR_REGULATOR_KPD_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 87 #define LIGHT_LC_PR_TIME_FADE_EID_START (LIGHT_LC_PR_REGULATOR_KPU_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 88 #define LIGHT_LC_PR_TIME_FADE_ON_EID_START (LIGHT_LC_PR_TIME_FADE_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 89 #define LIGHT_LC_PR_TIME_FADE_STANDBY_AUTO_EID_START (LIGHT_LC_PR_TIME_FADE_ON_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 90 #define LIGHT_LC_PR_TIME_FADE_STANDBY_MANUAL_EID_START (LIGHT_LC_PR_TIME_FADE_STANDBY_AUTO_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 91 #define LIGHT_LC_PR_TIME_OCCUPANCY_DELAY_EID_START (LIGHT_LC_PR_TIME_FADE_STANDBY_MANUAL_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 92 #define LIGHT_LC_PR_TIME_PROLONG_EID_START (LIGHT_LC_PR_TIME_OCCUPANCY_DELAY_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 93 #define LIGHT_LC_PR_TIME_RUN_ON_EID_START (LIGHT_LC_PR_TIME_PROLONG_EID_START + LIGHT_LC_SETUP_SERVER_STORED_WITH_SCENE_STATES) 96 #define LIGHT_LC_MODE_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_MODE_EID_START) 99 #define LIGHT_LC_OCC_MODE_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_OCC_MODE_EID_START) 102 #define LIGHT_LC_LIGHT_ONOFF_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_LIGHT_ONOFF_EID_START) 105 #define LIGHT_LC_PR_LUXLEVEL_ON_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_LUXLEVEL_ON_EID_START) 108 #define LIGHT_LC_PR_LUXLEVEL_PROLONG_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_LUXLEVEL_PROLONG_EID_START) 111 #define LIGHT_LC_PR_LUXLEVEL_STANDBY_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_LUXLEVEL_STANDBY_EID_START) 114 #define LIGHT_LC_PR_LIGHTNESS_ON_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_LIGHTNESS_ON_EID_START) 117 #define LIGHT_LC_PR_LIGHTNESS_PROLONG_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_LIGHTNESS_PROLONG_EID_START) 120 #define LIGHT_LC_PR_LIGHTNESS_STANDBY_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_LIGHTNESS_STANDBY_EID_START) 123 #define LIGHT_LC_PR_REGULATOR_ACCURACY_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_REGULATOR_ACCURACY_EID_START) 126 #define LIGHT_LC_PR_REGULATOR_KID_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_REGULATOR_KID_EID_START) 129 #define LIGHT_LC_PR_REGULATOR_KIU_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_REGULATOR_KIU_EID_START) 132 #define LIGHT_LC_PR_REGULATOR_KPD_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_REGULATOR_KPD_EID_START) 135 #define LIGHT_LC_PR_REGULATOR_KPU_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_REGULATOR_KPU_EID_START) 138 #define LIGHT_LC_PR_TIME_FADE_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_TIME_FADE_EID_START) 141 #define LIGHT_LC_PR_TIME_FADE_ON_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_TIME_FADE_ON_EID_START) 144 #define LIGHT_LC_PR_TIME_FADE_STANDBY_AUTO_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_TIME_FADE_STANDBY_AUTO_EID_START) 147 #define LIGHT_LC_PR_TIME_FADE_STANDBY_MANUAL_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_TIME_FADE_STANDBY_MANUAL_EID_START) 150 #define LIGHT_LC_PR_TIME_OCCUPANCY_DELAY_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_TIME_OCCUPANCY_DELAY_EID_START) 153 #define LIGHT_LC_PR_TIME_PROLONG_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_TIME_PROLONG_EID_START) 156 #define LIGHT_LC_PR_TIME_RUN_ON_EID MESH_CONFIG_ENTRY_ID(MESH_OPT_MODEL_FILE_ID, LIGHT_LC_PR_TIME_RUN_ON_EID_START) 183 #if (SCENE_SETUP_SERVER_INSTANCES_MAX > 0) || (DOXYGEN) void light_lc_mc_init(void)
Initialize the Light LC Setup Server persistent memory.
light_lc_state_t
Enum for to determine which state data variable is being set/gotten.
uint32_t light_lc_mc_open(uint8_t *p_handle)
Create an instance of the Light LC Setup Server model states and return the corresponding handle...
uint32_t light_lc_mc_scene_state_recall(uint8_t index, uint8_t scene_index, light_lc_state_t lc_state, void *p_value)
Recalls internal LC state variables for a specific scene index.
uint32_t light_lc_mc_state_set(uint8_t index, light_lc_state_t lc_state, const void *p_value)
Set internal LC state variables.
uint32_t light_lc_mc_state_get(uint8_t index, light_lc_state_t lc_state, void *p_value)
Get internal LC state variables.
void light_lc_mc_clear(void)
Clear all stored data and reset state contexts to default values.
uint32_t light_lc_mc_scene_state_store(uint8_t index, uint8_t scene_index, light_lc_state_t lc_state, const void *p_value)
Stores internal LC state variables for a specific scene index.