/** ****************************************************************************** * @file /Project/Source/STRB_Protocol.hpp * @author Electronic Develope Team * @version V1.0.0 * @date 2013-11-27 * @brief This file contains the Project Protocol Control. ****************************************************************************** * @attention * * ****************************************************************************** */ #ifndef __STRB_PROTOCOL_H #define __STRB_PROTOCOL_H //#include "STRB_ProjectInit.h" #include "LightTransmitPlustech_DataType.h" //#include "NString.hpp" //#include "STM32_FlashControl.hpp" #define MAX_DRV_SUB_CHANNEL 8 #define MAX_DRV_CHANNEL 8 /* class TStrobeProtocol : public NString { int GetLength(void); STRB_BasicPacket_type *m_Pkt; public: TStrobeProtocol(unsigned int size) : NString(size) { m_Pkt = (STRB_BasicPacket_type *) data; } // ---------------------------------------------------------- // Make Packet // ---------------------------------------------------------- void SetPacket(STRB_BasicPacket_type *imp) { memcpy(data, imp, imp->len); datalen = imp->len; } void AddHeader(char org, char dest, unsigned char cmd); void AddRawData(void *add_dat, int add_len); void AddData(void *dat, int len); // Finishing Data void AddTail(void); // Finishing Packet // ---------------------------------------------------------- // Complate Packet // ---------------------------------------------------------- bool IsComplate(void); unsigned char GetOrigin(void) { return m_Pkt->o_id; } unsigned char GetDestination(void) { return m_Pkt->d_id; } // unsigned char GetOrigin(void) { return data[PI_OID]; } // unsigned char GetDestination(void) { return data[PI_DID]; } }; */ enum PROTOCOL_STROBE_COMMAND { PSC_MONITOR, // S : Status Monitor PSC_ALARMRESET,// a : Driver No. PSC_GETCONFIG, // C, c PSC_SETCONFIG, // D, d PSC_GETCONTROL, // H, h PSC_SETCONTROL, // I, i // Standard Command PSC_TIMESET, // T PSC_VERSION, // V PSC_FWSIGN, // W PSC_FWCODE, // w PSC_HWRESET, // X PSC_NONE }; enum STRB_MAIN_PROTOCOL_GROUP { SMPG_MAINPROC, // Main's Drv Response SMPG_MAIN2GUI, // GUI Requset. SMPG_PASS2GUI, SMPG_PASS2DRV, SMPG_NONE }; enum STRB_DRIVER_PROTOCOL_GROUP { SDPG_RET2DBG, // Dbg Return. SDPG_RET2LINK, // Link Return. SDPG_BROADCAST, // Broadcast. SDPG_NONE }; //#pragma push //#pragma pack(1) #pragma pack(push, 1) ////////////////////////////////////////////////////////////////////////// // Strobe Control Structure // ////////////////////////////////////////////////////////////////////////// union _trg_cfg { // Trig Control struct { unsigned short onoff:1; // 0: Off 1: On unsigned short mode:1; // 0:Strobe 1:Continuous unsigned short pol:1; // 0:Rising 1: Falling unsigned short trgsel:3; // 0 <= n <= 7 unsigned short dummy:10; }; unsigned short trg; }; // Control Address : (struct TPTS_CS_type *) 0x60000100 struct TPTS_CS_type { // Driver-Base Board Control unsigned short pwm[8]; // 12bit duration x8 (Contol) union _trg_cfg tc[8]; // Trigger Config x8 (Config) unsigned short err_clr; // Error & Clear (Status) unsigned short test; // Test Mode (Config) // unsigned short err; // .0~.7(OVP), .8~.15(OCP) ==> 0:OK, 1:ERR }; ////////////////////////////////////////////////////////////////////////// // Strobe Protocol Data Types // ////////////////////////////////////////////////////////////////////////// struct DATA_SubConfig_type { unsigned char onoff; unsigned char mode; // Strobe / Continuous unsigned char pol; unsigned char trg_sel; unsigned short volt_min; unsigned short volt_max; }; // Memory Store struct DATA_DrvConfig_type { DATA_SubConfig_type sub[MAX_DRV_SUB_CHANNEL]; // unsigned char test; }; struct DATA_Config_type { DATA_DrvConfig_type drv[MAX_DRV_CHANNEL]; }; struct DATA_SubControl_type { unsigned short volt; // Set Voltage(0 ~ 10000) unsigned short time; // Strobe duration time }; struct DATA_DrvControl_type { DATA_SubControl_type sub[MAX_DRV_SUB_CHANNEL]; }; struct DATA_Control_type { DATA_DrvControl_type drv[MAX_DRV_CHANNEL]; }; // Status Structure struct DATA_SubStatus_type { unsigned short volt; unsigned char ovp; unsigned char ocp; }; struct DATA_DrvStatus_type { DATA_SubStatus_type sub[MAX_DRV_SUB_CHANNEL]; unsigned char mode; // Remote:0, Test:1 unsigned char alarm; // Sub Total alarm }; struct DATA_Status_type { struct DATA_DateTime_type datetime; DATA_DrvStatus_type drv[MAX_DRV_CHANNEL]; // System Status unsigned char presents; unsigned char alarm; // Total alarm // unsigned char sys_mode; unsigned char DIN_stat; unsigned char DOUT_stat; unsigned short power_volt; unsigned short bat_volt; }; //#pragma pop #pragma pack(pop) #endif // __STRB_PROTOCOL_HPP