#ifndef PRIMARYCOMM_H_ #define PRIMARYCOMM_H_ extern struct Address { unsigned char Aux; unsigned char Fan; unsigned char Relay; unsigned char IoExtend; unsigned char Broadcast; }Addr; extern struct Command { unsigned char query_FW_Ver; //0x01 unsigned char query_HW_Ver; //0x02 unsigned char query_Gpio_In; //0x0a unsigned char config_Gpio_Output; //0x86 unsigned char config_Rtc_Data; //0x87 unsigned char update_Start; //0xe0 unsigned char update_Abort; //0xe1 unsigned char update_Transfer; //0xe2 unsigned char update_Finish; //0xe3 }Cmd; typedef struct Verion { char Version_FW[16]; char Version_HW[16]; }Ver; typedef struct GPIO_IN { unsigned char AC_Connector; unsigned char AC_MainBreaker; unsigned char SPD; unsigned char Door_Open; unsigned char GFD[2]; unsigned char AC_Drop; unsigned char Emergency_IO; unsigned char Emergency_Btn; unsigned char Button[2]; unsigned char Key[4]; }Gpio_in; typedef struct GPIO_OUT { unsigned char Button_LED[2]; unsigned char System_LED[4]; unsigned char AC_Connector; unsigned char AC_Breaker; }Gpio_out; typedef struct RTC { unsigned char RtcData[14]; }Rtc; extern unsigned char Query_FW_Ver(unsigned char fd, unsigned char targetAddr, Ver *Ret_Buf); extern unsigned char Query_HW_Ver(unsigned char fd, unsigned char targetAddr, Ver *Ret_Buf); extern unsigned char Query_Gpio_Input(unsigned char fd, unsigned char targetAddr, Gpio_in *Ret_Buf); extern unsigned char Config_Gpio_Output(unsigned char fd, unsigned char targetAddr, Gpio_out *Set_Buf); extern unsigned char Config_Rtc_Data(unsigned char fd, unsigned char targetAddr, Rtc *Set_Buf); // 13 bytes // year : 4, month : 2, day : 2, hour : 2, min : 2, sec : 2 //extern unsigned char Config_RTC(); extern unsigned char Update_Start(unsigned char fd, unsigned char targetAddr, unsigned int crc32); extern unsigned char Update_Abord(unsigned char fd, unsigned char targetAddr); extern unsigned char Update_Transfer(unsigned char fd, unsigned char targetAddr, unsigned int startAddr, unsigned char *data, unsigned short int length); extern unsigned char Update_Finish(unsigned char fd, unsigned char targetAddr); #endif /* PRIMARYCOMM_H_ */