#ifndef _BLV_485_DEV_PB20_RELAY_FUN_H_
#define _BLV_485_DEV_PB20_RELAY_FUN_H_

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

#define PB20_Relay_OPEN     0x01
#define PB20_Relay_CLOSE    0x02

#define PB20_Relay_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 SendSn;
	uint8_t CtrlCnt;
	
	uint16_t LoopValidNum;
	
	uint8_t RelayState[PB20_Relay_BUFF_SIZE]; 			  //发送数组，用来存储所有回路的状态
	uint8_t RelayState_Last[PB20_Relay_BUFF_SIZE];          //发送数组，用来存储所有回路的上一个状态
	
	uint8_t PB20DevType;
	uint8_t PB20DevAddr;
	uint8_t PB20DevPort;
	
	
	uint32_t PB20Addr;
	
}__attribute__ ((__packed__))RS485_PB20_Relay_INFO;


void BLV_RS485_PB20_Relay_Data_Init(uint8_t devaddr);
void BLV_RS485_PB20_Relay_For_Logic_Init(LOGICFILE_DEVICE_INFO *dev_info,uint8_t *data,uint16_t data_len);

#endif

