#ifndef _BLV_485_DEV_PB20_LED_FUN_H_
#define _BLV_485_DEV_PB20_LED_FUN_H_

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

#define PB20_LED_LIGHT_OPEN                0x01       //开
#define PB20_LED_LIGHT_CLOSE               0x02       //关

#define PB20_LED_Ctrl_UpperLimit           0x05       //向上调光至上限
#define PB20_LED_Ctrl_LowerLimit           0x06       //向下调光至下限
#define PB20_LED_Cycle_Ctrl                0x07       //循环调光
#define PB20_LED_Cycle_Stop                0x08       //停止调光

#define PB20_LED_DimTime_Set               0x09       //调光渐变时间设置


#define PB20_LED_Dim_Up                    0x1C       //向上调光 - 百分比控制
#define PB20_LED_Dim_Down                  0x1D       //向下调光 - 百分比控制

#define PB20_LED_Dim_Up_Limit              0x1A       //唯有亮的灯 向上调光 至上限  -  百分比控制
#define PB20_LED_Dim_Down_Limit            0x1B       //唯有亮的灯 向下调光 至下限  -  百分比控制

#define PB20_LED_Cycle_Dim_Up              0x1E       //向上循环
#define PB20_LED_Cycle_Dim_Down            0x1F       //向下循环
 
#define PB20_LED_Cycle_Dim_Up_Limit        0x20       //唯有亮的灯 向上循环 至上限
#define PB20_LED_Cycle_Dim_Down_Limit      0x21       //唯有亮的灯 向下循环 至下限



#define PB20_LED_BUFF_SIZE         0x04

typedef struct
{
	BLV_COMM_RECORD_G comm_record;				  //通讯记录
	uint8_t DevSendCnt:4;     					  //设备发送计数   计数达到重发次数都没有回复，判为离线  占4位
	uint8_t DevOffline:2;       				  //设备离线标志 1，设备离线   0，设备在线             占2位
	uint8_t DevOfflineLast:2;                     //设备离线标志 1，设备离线   0，设备在线         占2位
//	uint8_t DevSendSN;                            //设备发送SN号
	
	
	uint16_t LoopValidNum;
	
	uint8_t LightBuf[PB20_LED_BUFF_SIZE]; 			  //发送数组，用来存储所有回路的状态
	uint8_t LightBuf_Last[PB20_LED_BUFF_SIZE];          //发送数组，用来存储所有回路的上一个状态
	
	uint8_t CtrlMode[PB20_LED_BUFF_SIZE];
	uint8_t CtrlMode_Last[PB20_LED_BUFF_SIZE];
	
	uint8_t CtrlTime[PB20_LED_BUFF_SIZE];
	uint8_t LED_DimTime;     //亮度控制渐变时间
	
	uint8_t PB20DevType;
	uint8_t PB20DevAddr;
	uint8_t PB20DevPort;
	
	uint8_t Light_Flag;
	uint8_t Cycle_Flag;
	
	uint32_t PB20Addr;

}__attribute__ ((__packed__))RS485_PB20_LED_INFO;


void BLV_RS485_PB20_LED_Data_Init(uint8_t devaddr);
void BLV_RS485_PB20_LED_For_Logic_Init(LOGICFILE_DEVICE_INFO *dev_info,uint8_t *data,uint16_t data_len);

#endif

