Files
dali_cpp/include/dali_define.hpp
2026-03-26 12:04:08 +08:00

157 lines
6.9 KiB
C++

#pragma once
// Standard control commands (IEC 62386 command set)
#define DALI_CMD_OFF 0x00
#define DALI_CMD_RECALL_MAX 0x05
#define DALI_CMD_RECALL_MAX_LEVEL DALI_CMD_RECALL_MAX
#define DALI_CMD_RECALL_MIN 0x06
#define DALI_CMD_RECALL_MIN_LEVEL DALI_CMD_RECALL_MIN
#define DALI_CMD_RESET 0x20
#define DALI_CMD_STORE_ACTUAL_LEVEL_IN_THE_DTR 0x21
#define DALI_CMD_STORE_THE_DTR_AS_MAX_LEVEL 0x2A
#define DALI_CMD_STORE_THE_DTR_AS_MIN_LEVEL 0x2B
#define DALI_CMD_STORE_THE_DTR_AS_SYS_FAIL_LEVEL 0x2C
#define DALI_CMD_STORE_THE_DTR_AS_PWR_ON_LEVEL 0x2D
#define DALI_CMD_STORE_THE_DTR_AS_FADE_TIME 0x2E
#define DALI_CMD_STORE_THE_DTR_AS_FADE_RATE 0x2F
#define DALI_CMD_STORE_DTR_AS_SHORT_ADDRESS 0x80
#define DALI_CMD_STOP_FADE 0xFF
// Indexed command ranges
#define DALI_CMD_GO_TO_SCENE(scene) (0x10 + (scene))
#define DALI_CMD_SET_SCENE(scene) (0x40 + (scene))
#define DALI_CMD_REMOVE_SCENE(scene) (0x50 + (scene))
#define DALI_CMD_ADD_TO_GROUP(group) (0x60 + (group))
#define DALI_CMD_REMOVE_FROM_GROUP(group) (0x70 + (group))
#define DALI_CMD_QUERY_SCENE_LEVEL(scene) (0xB0 + (scene))
// Command range boundaries used by decoders
#define DALI_CMD_GO_TO_SCENE_MIN DALI_CMD_GO_TO_SCENE(0)
#define DALI_CMD_GO_TO_SCENE_MAX DALI_CMD_GO_TO_SCENE(15)
#define DALI_CMD_SET_SCENE_MIN DALI_CMD_SET_SCENE(0)
#define DALI_CMD_SET_SCENE_MAX DALI_CMD_SET_SCENE(15)
#define DALI_CMD_ADD_TO_GROUP_MIN DALI_CMD_ADD_TO_GROUP(0)
#define DALI_CMD_ADD_TO_GROUP_MAX DALI_CMD_ADD_TO_GROUP(15)
#define DALI_CMD_REMOVE_FROM_GROUP_MIN DALI_CMD_REMOVE_FROM_GROUP(0)
#define DALI_CMD_REMOVE_FROM_GROUP_MAX DALI_CMD_REMOVE_FROM_GROUP(15)
#define DALI_CMD_QUERY_SCENE_LEVEL_MIN DALI_CMD_QUERY_SCENE_LEVEL(0)
#define DALI_CMD_QUERY_SCENE_LEVEL_MAX DALI_CMD_QUERY_SCENE_LEVEL(15)
#define DALI_CMD_SPECIAL_RANGE_MIN DALI_CMD_QUERY_STATUS
#define DALI_CMD_SPECIAL_RANGE_MAX DALI_CMD_DT8_QUERY_ASSIGNED_COLOR
// Query commands
#define DALI_CMD_QUERY_STATUS 0x90
#define DALI_CMD_QUERY_BALLAST 0x91
#define DALI_CMD_QUERY_LAMP_FAILURE 0x92
#define DALI_CMD_QUERY_LAMP_POWER_ON 0x93
#define DALI_CMD_QUERY_LIMIT_ERROR 0x94
#define DALI_CMD_QUERY_RESET_STATE 0x95
#define DALI_CMD_QUERY_MISSING_SHORT_ADDRESS 0x96
#define DALI_CMD_QUERY_VERSION_NUMBER 0x97
#define DALI_CMD_QUERY_CONTENT_DTR 0x98
#define DALI_CMD_QUERY_DEVICE_TYPE 0x99
#define DALI_CMD_QUERY_PHYSICAL_MINIMUM_LEVEL 0x9A
#define DALI_CMD_QUERY_POWER_FAILURE 0x9B
#define DALI_CMD_QUERY_CONTENT_DTR1 0x9C
#define DALI_CMD_QUERY_CONTENT_DTR2 0x9D
#define DALI_CMD_QUERY_OPERATING_MODE 0x9E
#define DALI_CMD_QUERY_LIGHT_SOURCE_TYPE 0x9F
#define DALI_CMD_QUERY_ACTUAL_LEVEL 0xA0
#define DALI_CMD_QUERY_MAX_LEVEL 0xA1
#define DALI_CMD_QUERY_MIN_LEVEL 0xA2
#define DALI_CMD_QUERY_POWER_ON_LEVEL 0xA3
#define DALI_CMD_QUERY_SYSTEM_FAILURE_LEVEL 0xA4
#define DALI_CMD_QUERY_FADE_TIME_FADE_RATE 0xA5
#define DALI_CMD_QUERY_MANUFACTURER_SPECIFIC_MODE 0xA6
#define DALI_CMD_QUERY_NEXT_DEVICE_TYPE 0xA7
#define DALI_CMD_QUERY_EXTENDED_FADE_TIME 0xA8
#define DALI_CMD_QUERY_CONTROL_GEAR_FAILURE 0xAA
#define DALI_CMD_QUERY_GROUPS_0_7 0xC0
#define DALI_CMD_QUERY_GROUP_8_15 0xC1
#define DALI_CMD_QUERY_RANDOM_ADDRESS_H 0xC2
#define DALI_CMD_QUERY_RANDOM_ADDRESS_M 0xC3
#define DALI_CMD_QUERY_RANDOM_ADDRESS_L 0xC4
#define DALI_CMD_READ_MEMORY_LOCATION 0xC5
// Special/programming commands
#define DALI_CMD_SPECIAL_TERMINATE 0xA1
#define DALI_CMD_SPECIAL_SET_DTR0 0xA3
#define DALI_CMD_SPECIAL_INITIALIZE 0xA5
#define DALI_CMD_SPECIAL_RANDOMIZE 0xA7
#define DALI_CMD_SPECIAL_COMPARE 0xA9
#define DALI_CMD_SPECIAL_WITHDRAW 0xAB
#define DALI_CMD_SPECIAL_CANCEL 0xAD
#define DALI_CMD_SPECIAL_SEARCHADDRH 0xB1
#define DALI_CMD_SPECIAL_SEARCHADDRM 0xB3
#define DALI_CMD_SPECIAL_SEARCHADDRL 0xB5
#define DALI_CMD_SPECIAL_PROGRAM_SHORT_ADDRESS 0xB7
#define DALI_CMD_SPECIAL_VERIFY_SHORT_ADDRESS 0xB9
#define DALI_CMD_SPECIAL_QUERY_SHORT_ADDRESS 0xBB
#define DALI_CMD_SPECIAL_PHYSICAL_SELECTION 0xBD
#define DALI_CMD_SPECIAL_DT_SELECT 0xC1
#define DALI_CMD_SPECIAL_SET_DTR_1 0xC3
#define DALI_CMD_SPECIAL_SET_DTR_2 0xC5
// DT8 commands and queries
#define DALI_CMD_DT8_STORE_DTR_AS_COLORX 0xE0
#define DALI_CMD_DT8_STORE_DTR_AS_COLORY 0xE1
#define DALI_CMD_DT8_ACTIVATE 0xE2
#define DALI_CMD_DT8_STEP_UP_X_COORDINATE 0xE3
#define DALI_CMD_DT8_STEP_DOWN_X_COORDINATE 0xE4
#define DALI_CMD_DT8_STEP_UP_Y_COORDINATE 0xE5
#define DALI_CMD_DT8_STEP_DOWN_Y_COORDINATE 0xE6
#define DALI_CMD_DT8_SET_COLOR_TEMPERATURE 0xE7
#define DALI_CMD_DT8_STEP_UP_COLOR_TEMPERATURE 0xE8
#define DALI_CMD_DT8_STEP_DOWN_COLOR_TEMPERATURE 0xE9
#define DALI_CMD_DT8_SET_TEMPORARY_PRIMARY_DIM_LEVEL 0xEA
#define DALI_CMD_DT8_SET_TEMPORARY_RGB_DIM_LEVELS 0xEB
#define DALI_CMD_DT8_SET_TEMPORARY_WAF_DIM_LEVELS 0xEC
#define DALI_CMD_DT8_SET_TEMPORARY_RGBWAF_CONTROL 0xED
#define DALI_CMD_DT8_COPY_REPORT_TO_TEMPORARY 0xEE
#define DALI_CMD_DT8_STORE_PRIMARY_N_TY 0xF0
#define DALI_CMD_DT8_STORE_PRIMARY_N_XY 0xF1
#define DALI_CMD_DT8_STORE_COLOR_TEMPERATURE_LIMIT 0xF2
#define DALI_CMD_DT8_SET_GEAR_FEATURES 0xF3
#define DALI_CMD_DT8_ASSIGN_COLOR_TO_LINKED_CHANNEL 0xF5
#define DALI_CMD_DT8_START_AUTO_CALIBRATION 0xF6
#define DALI_CMD_DT8_QUERY_GEAR_FEATURES_STATUS 0xF7
#define DALI_CMD_QUERY_COLOR_STATUS 0xF8
#define DALI_CMD_QUERY_COLOR_TYPE 0xF9
#define DALI_CMD_QUERY_COLOR_VALUE 0xFA
#define DALI_CMD_DT8_QUERY_RGBWAF_CONTROL 0xFB
#define DALI_CMD_DT8_QUERY_ASSIGNED_COLOR 0xFC
#define DALI_CMD_DT8_QUERY_EXTENDED_VERSION 0xFF
// DT1 commands and queries
#define DALI_CMD_DT1_REST 0xE0
#define DALI_CMD_DT1_INHIBIT 0xE1
#define DALI_CMD_DT1_RE_LIGHT_RESET_INHIBIT 0xE2
#define DALI_CMD_DT1_START_FUNCTION_TEST 0xE3
#define DALI_CMD_DT1_START_DURATION_TEST 0xE4
#define DALI_CMD_DT1_STOP_TEST 0xE5
#define DALI_CMD_DT1_RESET_FUNCTION_TEST_DONE_FLAG 0xE6
#define DALI_CMD_DT1_RESET_DURATION_TEST_DONE_FLAG 0xE7
#define DALI_CMD_DT1_RESET_LAMP_TIME 0xE8
#define DALI_CMD_DT1_STORE_DTR_AS_EMERGENCY_LEVEL 0xE9
#define DALI_CMD_DT1_STORE_DTR_AS_DELAY_TIME_HIGH 0xEA
#define DALI_CMD_DT1_STORE_DTR_AS_DELAY_TIME_LOW 0xEB
#define DALI_CMD_DT1_STORE_DTR_AS_PROLONG_TIME 0xEC
#define DALI_CMD_DT1_STORE_DTR_AS_RATED_DURATION 0xED
#define DALI_CMD_DT1_STORE_DTR_AS_EMERGENCY_MIN_LEVEL 0xEE
#define DALI_CMD_DT1_STORE_DTR_AS_EMERGENCY_MAX_LEVEL 0xEF
#define DALI_CMD_DT1_START_IDENTIFICATION 0xF0
#define DALI_CMD_DT1_QUERY_EMERGENCY_LEVEL 0xF1
#define DALI_CMD_DT1_QUERY_EMERGENCY_MIN_LEVEL 0xF2
#define DALI_CMD_DT1_QUERY_EMERGENCY_MAX_LEVEL 0xF3
#define DALI_CMD_DT1_QUERY_PROLONG_TIME 0xF4
#define DALI_CMD_DT1_QUERY_FUNCTION_TEST_INTERVAL 0xF5
#define DALI_CMD_DT1_QUERY_DURATION_TEST_INTERVAL 0xF6
#define DALI_CMD_DT1_QUERY_DURATION_TEST_RESULT 0xF7
#define DALI_CMD_DT1_QUERY_LAMP_EMERGENCY_TIME 0xF8
#define DALI_CMD_DT1_QUERY_RATED_DURATION 0xF9
#define DALI_CMD_DT1_QUERY_EMERGENCY_MODE 0xFA
#define DALI_CMD_DT1_QUERY_FEATURE 0xFB
#define DALI_CMD_DT1_QUERY_FAILURE_STATUS 0xFC
#define DALI_CMD_DT1_QUERY_STATUS 0xFD
#define DALI_CMD_DT1_PERFORM_DTR_SELECTED_FUNCTION 0xFE
#define DALI_CMD_DT1_QUERY_EXTENDED_VERSION 0xFF