emcp/document/gui.h

208 lines
4.8 KiB
C
Raw Normal View History

2026-05-18 09:12:14 +08:00
#ifndef __GUI_H
#define __GUI_H
#include "time.h"
#define LINE_TOTAL_NUM 4 //<2F><>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
#define ANALOG_CH_NUM 12 //AI<41><49>AOģ<4F><C4A3><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
/*************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*************************************************С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> <20><><EFBFBD><EFBFBD>****************************************************************************/
//ʵʱ<CAB5><CAB1>
typedef struct
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ
float Ua; //A<><41><EFBFBD><EFBFBD>ѹ
float Ub; //B<><42><EFBFBD><EFBFBD>ѹ
float Uc; //C<><43><EFBFBD><EFBFBD>ѹ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float Ia; //A<><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float Ib; //B<><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float Ic; //C<><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD>
float Pa;
float Pb;
float Pc;
float Pt; //<2F><><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD>
//<2F>޹<EFBFBD><DEB9><EFBFBD><EFBFBD><EFBFBD>
float Qa;
float Qb;
float Qc;
float Qt; //<2F><><EFBFBD>޹<EFBFBD><DEB9><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD>
float Sa;
float Sb;
float Sc;
float St; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float PFa;
float PFb;
float PFc;
float PFt; //<2F>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>ߵ<EFBFBD>ѹ
float Uab;
float Ubc;
float Uca;
//Ƶ<><C6B5>
float frq;
}measure_unit_t;
//B<><42><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef union
{
uint8_t b_code[6];
struct
{
uint8_t ascii_s_unit : 4;
uint8_t ascii_s_ten : 4;
uint8_t ascii_min_unit : 4;
uint8_t ascii_min_ten : 4;
uint8_t ascii_hour_unit : 4;
uint8_t ascii_hour_ten : 4;
uint8_t ascii_m_day_unit: 4;
uint8_t ascii_m_day_ten : 4;
uint8_t ascii_month_unit: 4; //4bit
uint8_t ascii_month_ten : 4; //4bit
uint8_t ascii_year_unit : 4; //4bit
uint8_t ascii_year_ten : 4; //4bit
}time;
}b_code_t;
//<2F><><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD>
typedef struct
{
uint16_t in; //ÿһλ<D2BB><CEBB>Ӧһ<D3A6><D2BB>ͨ<EFBFBD><CDA8>״̬ <20><> 1 = <20>ϣ<EFBFBD> 0 = <20><>
uint16_t out; //ÿһλ<D2BB><CEBB>Ӧһ<D3A6><D2BB>ͨ<EFBFBD><CDA8>״̬ <20><> 1 = <20>ϣ<EFBFBD> 0 = <20><>
}d_io_t;
//ģ<><C4A3><EFBFBD><EFBFBD>:AI AO
typedef struct
{
float in[ANALOG_CH_NUM]; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float out[ANALOG_CH_NUM]; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}a_io_t;
//<2F>¼<EFBFBD>
typedef struct
{
struct tm t; //<2F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
uint32_t ms; //<2F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD>ʱ<EFBFBD><CAB1>
uint8_t evt; //<2F><><EFBFBD>ͣ<EFBFBD>0 = <20><><EFBFBD>¼<EFBFBD><C2BC><EFBFBD> 1 = <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
}event_t;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{ uint32_t stamp; //ʱ<><CAB1>
int16_t ch[8]; //4<><34><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>8<EFBFBD><38>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>ua<75><61>ub<75><62>uc, ia<69><61>ib<69><62>ic<69><63>Ƶ<EFBFBD><C6B5>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//AI<41>ɼ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ <20><>8<EFBFBD><38>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}ch_data_t;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
uint8_t line_index; //<2F><>·<EFBFBD><C2B7> <20><> 0 ~ 3 = 4·<34><C2B7>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>4 = AI<41>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>
ch_data_t dot[64]; //64<36><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ܲ<EFBFBD>
}waveform_data_t;
//С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> <20><><EFBFBD><EFBFBD>
typedef struct
{
measure_unit_t measure_unit[LINE_TOTAL_NUM];//<2F>ܹ<EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
a_io_t d_io; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD>
d_io_t a_io; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD>
b_code_t b_code; //B<><42><EFBFBD><EFBFBD>ʱ
event_t event[2]; //<2F>¼<EFBFBD><C2BC><EFBFBD>־:event[0] = pt <20><><EFBFBD>ߣ<EFBFBD> event[1] = CT<43><54><EFBFBD><EFBFBD>
waveform_data_t waveform; //ʵʱһ<CAB1>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD>
}gui_in_t;
/********<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>******************************************************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> С<><D0A1>****************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>޸ģ<DEB8><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>һ<EFBFBD><D2BB>
//<2F><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
uint32_t baud_tate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 9600 115200<30><30>Ĭ<EFBFBD>ϣ<EFBFBD>
uint8_t parity; //У<><D0A3>λ <20><> 0 = <20><>У<EFBFBD>飬 1 = <20><>У<EFBFBD>飬 2 = żУ<C5BC><D0A3>
uint8_t data; //<2F><><EFBFBD><EFBFBD>λ <20><> 0 = 8λ
uint8_t stop; //ֹͣλ <20><> 0 = 1λ<31><CEBB> 1 = 2λ
uint8_t protocol; //ͨѶЭ<D1B6><D0AD> <20><>0 = <20><>Э<EFBFBD>飬1 = modbus
}com_param_t;
//ģ<><C4A3>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
typedef struct
{
uint8_t sig_type;//<2F>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD> <20><> 0 = 4~20ma<6D>źţ<C5BA> 1 = 1~5V<35>ź<EFBFBD>
uint8_t line_sub;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>· <20><> 1 = <20><>·1<C2B7><31> 2 = <20><>·2<C2B7><32> 3 =<3D><>·3<C2B7><33> 4 = <20><>·4<C2B7><34> 0 = װ<><D7B0>
uint8_t att; //<2F><><EFBFBD><EFBFBD> : 0 = UA, 1 = UB, 2 = UC, 3 = UAB, 4 = UBC, 5 = UCA, 6 = P, 7 = Q, 8 = F
uint8_t u_limit; //<2F><><EFBFBD><EFBFBD>ֵ :
uint8_t d_limit; //<2F><><EFBFBD><EFBFBD>ֵ :
}analog_ch_param_t;
//<2F><>·<EFBFBD><C2B7>ֵ-><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
// uint8_t index; //<2F><>·<EFBFBD>ţ<EFBFBD> 1 = <20><>·1, 2 = <20><>·2<C2B7><32> 3 = <20><>·3, 4 = <20><>·4
uint8_t limit; //<2F><>ֵ<EFBFBD><D6B5>
uint8_t delay; //<2F><>ʱ<EFBFBD><CAB1> [1 ~ 10<31><30>]
uint8_t out_num; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڵ㣺 [1 = <20><><EFBFBD><EFBFBD>1<EFBFBD><31> 2 = <20><><EFBFBD><EFBFBD>2<EFBFBD><32>...]
uint8_t select; //Ͷ<>ˣ<EFBFBD> [0 = <20><>Ͷ<EFBFBD><CDB6> 1 = Ͷ<><CDB6>]
}line_param_t;
typedef struct
{
line_param_t type[7]; //7<><37><EFBFBD><EFBFBD><EFBFBD>𣺵<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>ʣ<EFBFBD>Ƶ<EFBFBD>ʣ<EFBFBD>PT<50><54><EFBFBD>ߣ<EFBFBD>CT<43><54><EFBFBD><EFBFBD>
}line_type_t;
//AI <20><><EFBFBD><EFBFBD>-> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
uint8_t u_limit; //<2F><><EFBFBD><EFBFBD>ֵ :
uint8_t d_limit; //<2F><><EFBFBD><EFBFBD>ֵ :
uint8_t delay; //<2F><>ʱ<EFBFBD><CAB1> [1 ~ 10<31><30>]
uint8_t out_num; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڵ㣺 [1 = <20><><EFBFBD><EFBFBD>1<EFBFBD><31> 2 = <20><><EFBFBD><EFBFBD>2<EFBFBD><32>...]
uint8_t select; //Ͷ<>ˣ<EFBFBD> [0 = <20><>Ͷ<EFBFBD><CDB6> 1 = Ͷ<><CDB6>]
}ai_alarm_param_t;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> С<><D0A1>
//<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
struct tm t; //ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
d_io_t a_io; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD>
com_param_t com_param[4]; //<2F><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
line_type_t line_param[4]; //<2F><>·<EFBFBD><C2B7>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>: 4·<34><C2B7>ֵһ<D6B5><D2BB><EFBFBD>·<EFBFBD>
analog_ch_param_t a_in_param[12]; //12·AIģ<49><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
analog_ch_param_t a_out_param[12]; //12·AOģ<4F><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ai_alarm_param_t ai_alarm_param[12];//12·AIģ<49><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}gui_out_t;
#endif