emcp/document/gui_1.h

206 lines
4.9 KiB
C
Raw Normal View History

2026-06-12 10:37:57 +08:00
#ifndef __GUI_H
#define __GUI_H
#include "time.h"
#define LINE_TOTAL_NUM 4 //<2F>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
#define ANALOG_CH_NUM 12 //ģ<><C4A3><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><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><C2BC><EFBFBD>־
typedef struct
{
uint32_t timestamp; //<2F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䣬ʱ<E4A3AC><CAB1><EFBFBD><EFBFBD>
uin16_t ms; //<2F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD>ʱ<EFBFBD><CAB1>
uint8_t line_num; //<2F><>·<EFBFBD>ţ<EFBFBD>0 = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 = 1·<31><C2B7>2 =2·<32><C2B7> 3 = 3·<33><C2B7> 4 = 4·
uint8_t type; //<2F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ͣ<EFBFBD>1 = pt <20><><EFBFBD>ߣ<EFBFBD> 2 = CT<43><54><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>α<EFBFBD><CEB1><EFBFBD>
}event_t;
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// typedef struct
// { uint32_t stamp; //ʱ<><CAB1>
// int16_t ch[8]; //4·<34><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><49><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>
float d_in[8]; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
b_code_t b_code; //B<><42><EFBFBD><EFBFBD>ʱ
uint16_t a_in; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint16_t evt_f; //<2F>¼<EFBFBD><C2BC><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ּĴ<D6BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
}gui_in_04reg_t;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
event_t event;
}gui_in_03reg_t;//<2F><><EFBFBD><EFBFBD><EFBFBD>ּĴ<D6BC><C4B4><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
uint16_t a_in; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}gui_in_02reg_t;//<2F><><EFBFBD><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/***********************************************************************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> С<><D0A1>****************************************************************************/
//<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>ֵ
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>
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
{
uint32_t timestamp; //ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
com_param_t com_param[4]; //<2F><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: С<>˴<EFBFBD><CBB4>ڣ<EFBFBD>FPGA<47><41><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·ģ<C2B7><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
analog_ch_param_t a_out_param[12]; //12·ģ<C2B7><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ai_alarm_param_t ai_alarm_param[12];//12·ģ<C2B7><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}gui_out_03reg_t;//<2F><><EFBFBD><EFBFBD>ּĴ<D6BC><C4B4><EFBFBD><EFBFBD>еIJ<D0B5><C4B2><EFBFBD>
typedef struct
{
uint16_t a_in; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}gui_out_01reg_t;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȧ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>
#endif