emcp/document/gui_2.h

224 lines
5.3 KiB
C
Raw Normal View History

2026-06-12 10:37:57 +08:00
#ifndef __GUI_H
#define __GUI_H
2026-06-26 17:48:42 +08:00
#include <rtthread.h>
2026-06-12 10:37:57 +08:00
#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>
2026-06-26 17:48:42 +08:00
#define GUI_SIZE sizeof(gui_in_04reg_t)
2026-06-12 10:37:57 +08:00
/***********************************************************************С<><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;
2026-06-26 17:48:42 +08:00
// float rev1[10];//10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2026-06-12 10:37:57 +08:00
}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>
2026-06-26 17:48:42 +08:00
uint16_t ms; //<2F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD>ʱ<EFBFBD><CAB1>
uint8_t line_num; //<2F><><34><CEBB><EFBFBD><EFBFBD>·<EFBFBD><C2B7> (0 = װ<>ã<EFBFBD>1 = <20><>·1<C2B7><31>2 =<3D><>·2<C2B7><32> 3 = <20><>·3<C2B7><33> 4 = <20><>·4<C2B7><34>5= AIԽ<49><D4BD>)
//<2F><><34><CEBB><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>(1 = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2 = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4 = <20><><EFBFBD><EFBFBD>)
uint8_t code; /*<2A>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EBA3BA><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>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 = <EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>2 = <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 = ai<EFBFBD><EFBFBD>4 = ao
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>
*/
int16_t value; //<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A1A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AIԽ<49><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>̵ļ<CCB5><C4BC><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>״̬<D7B4><CCAC>0<EFBFBD>֡<EFBFBD><D6A1><EFBFBD>0<EFBFBD>ϣ<EFBFBD>
2026-06-12 10:37:57 +08:00
}event_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>
2026-06-26 17:48:42 +08:00
float a_in[8]; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2026-06-12 10:37:57 +08:00
b_code_t b_code; //B<><42><EFBFBD><EFBFBD>ʱ
2026-06-26 17:48:42 +08:00
uint16_t d_in; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint16_t d_out; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
uint16_t evt_f; //<2F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><30><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
2026-06-12 10:37:57 +08:00
}gui_in_04reg_t;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2026-06-26 17:48:42 +08:00
union gui_t
{
uint8_t buf[GUI_SIZE];
gui_in_04reg_t sub;
};
2026-06-12 10:37:57 +08:00
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;
2026-06-26 17:48:42 +08:00
//<2F><><EFBFBD><EFBFBD>
typedef struct
{
uint8_t id[4];
uint8_t mask[4];
uint8_t gateway[4];
uint8_t protocol; //Э<><D0AD>
uint8_t rev;//<2F><><EFBFBD><EFBFBD>
}net_t;
2026-06-12 10:37:57 +08:00
//ģ<><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>]
2026-06-26 17:48:42 +08:00
2026-06-12 10:37:57 +08:00
}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>
2026-06-26 17:48:42 +08:00
uint16_t ct; //ct<63><74><EFBFBD><EFBFBD>
uint16_t pt; //pt<70><74><EFBFBD><EFBFBD>
2026-06-12 10:37:57 +08:00
}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>
2026-06-26 17:48:42 +08:00
2026-06-12 10:37:57 +08:00
typedef struct
{
2026-06-26 17:48:42 +08:00
uint16_t d_out; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2026-06-12 10:37:57 +08:00
2026-06-26 17:48:42 +08:00
}gui_out_15reg_t;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȧ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>
2026-06-12 10:37:57 +08:00
2026-06-26 17:48:42 +08:00
typedef struct
{
gui_out_03reg_t reg_03;
gui_out_15reg_t reg_15;
}param_set_t;
2026-06-12 10:37:57 +08:00
#endif