#ifndef _BLV_NOR_DEV_COLORTEMP_H_
#define _BLV_NOR_DEV_COLORTEMP_H_

#include "stdint.h"
#include "BLV_All_Dev_Init.h"

#define DNOR_ColorTemp_MapType_1		0x01		//双路混光
#define DNOR_ColorTemp_MapType_2		0x02		//三路混光
#define DNOR_ColorTemp_MapType_3		0x03		//四路混光
#define DNOR_ColorTemp_MapType_4		0x04		//五路混光

#define DNOR_ColorTemp_MapLoopNum			0x02		//目前只做两路混光
#define DNOR_ColorTemp_LoopNumMax			0x0F 		//目前回路最多为15个

#define ColorTemp_PB20_OnlySwitch      0x11         //灯光开关状态
#define ColorTemp_PB20_OnlyBright      0x12         //只调节亮度，不控制灯光开关状态
#define ColorTemp_PB20_Dim_Up          0x1C         //向上调光 - 相对调节
#define ColorTemp_PB20_Dim_Down        0x1D         //向下调光 - 相对调节
#define ColorTemp_PB20_Dim_Up_Limit    0x1A         //唯有亮的灯 向上调光  相对调节
#define ColorTemp_PB20_Dim_Down_Limit  0x1B         //唯有亮的灯 向下调光  相对调节
#define ColorTemp_PB20_Dim_Cir         0x22         //相对调节 - 反向
#define ColorTemp_PB20_Dim_OnCir       0x23         //相对调节 - 反向  -  唯有亮的灯

#define CCT_DEVMAP_LIST_MAX             0x0F        //最大支持映射设备数

typedef struct{
	uint8_t type;		//回路映射类型
	
	uint8_t Map_Type[DNOR_ColorTemp_MapLoopNum];
	uint8_t Map_Addr[DNOR_ColorTemp_MapLoopNum];
	uint8_t Map_DevLoop[DNOR_ColorTemp_MapLoopNum];
	uint32_t Map_DevAddr[DNOR_ColorTemp_MapLoopNum];
}__attribute__ ((__packed__))ColorTemp_LoopMap;

typedef struct
{
	uint8_t  MapDevNum;
	uint32_t MapDevAddr[CCT_DEVMAP_LIST_MAX];

}__attribute__ ((__packed__))CCTDevMap_INF;


typedef struct{
	
	ColorTemp_LoopMap Map_Loop_Info[DNOR_ColorTemp_LoopNumMax];		//映射回路信息     192
	
	uint8_t loop_bright[DNOR_ColorTemp_LoopNumMax];                     //48
	uint8_t loop_ColorTemp[DNOR_ColorTemp_LoopNumMax];
	uint8_t last_loop_bright[DNOR_ColorTemp_LoopNumMax];
	uint8_t last_loop_ColorTemp[DNOR_ColorTemp_LoopNumMax];
	
	uint8_t global_light;             //全局亮度
	uint8_t global_light_last;
	
	uint8_t CtrlMode[DNOR_ColorTemp_LoopNumMax];           //递增/递减、亮度、开关状态的当前控制模式--LS_190x，2025-07-08,YYW
	uint8_t CtrlChange[DNOR_ColorTemp_LoopNumMax];           //递增/递减变化量  ，2025-07-08,YYW
    
	uint16_t AG_Flag;                                        //非亮度控制标志位，每个bit代表一个回路，2025-07-08,YYW
    uint16_t Lt_Flag;               //亮度、开关状态改变标志位，2025-07-08,YYW
    
	CCTDevMap_INF MapDev_Inf;     //60
	
}__attribute__ ((__packed__))NOR_ColorTemp_INFO;	


void BLV_Nor_Dev_ColorTemp_Init(LOGICFILE_DEVICE_INFO *dev_info,uint8_t *data,uint16_t data_len);
void Dev_ColorTemp_LoopBound(uint32_t DevAddr,uint8_t *data,uint16_t len);



#endif
