Initial commit: my SECS2 project

This commit is contained in:
2026-06-12 14:19:01 +08:00
commit 2c3e2c4dc2
1138 changed files with 603966 additions and 0 deletions

189
usr/protocol/proto_PM100.h Normal file
View File

@@ -0,0 +1,189 @@
#ifndef _PROTO_PM100_H_
#define _PROTO_PM100_H_
#include "main.h"
#include "algo_queue.h"
/*<2A><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>ʽ STX TEXT ETX SUM CR*/
#define PROTO_PM100_FRAME_STRUCT_STX (0x02)
#define PROTO_PM100_FRAME_STRUCT_ETX (0x03)
#define PROTO_PM100_FRAME_STRUCT_CR (0x0D)
/*<2A>豸*/
#define PROTO_PM100_DEV_MP 0 /*<2A><><EFBFBD><EFBFBD>*/
#define PROTO_PM100_DEV_BP 1 /*<2A><><EFBFBD>ӱ<EFBFBD>*/
#define PROTO_PM100_MODE_NORMAL 0 /*NORMAL <20><><EFBFBD><EFBFBD>*/
#define PROTO_PM100_MODE_POWER_SAVING 1 /*POWER-SAVING <20><><EFBFBD><EFBFBD>*/
#define PROTO_PM100_MODE_RUN 0 /*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
#define PROTO_PM100_MODE_ALARM 1 /*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
#define PROTO_PM100_MODE_PE 2
#define PROTO_PM100_MODE_IDIE 3 /*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD>/ֹͣ*/
#define PROTO_PM100_MODE_OFFLINE 4 /*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
#define PROTO_PM100_MODE_ONLINE 5 /*<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
#define PROTO_PM100_MODE_RUNING 0 /*<2A><><EFBFBD><EFBFBD>*/
#define PROTO_PM100_MODE_STOP 1 /*ֹͣ*/
#define PROTO_PM100_DEV_CHAR_MP ('M') /*<2A><><EFBFBD><EFBFBD>*/
#define PROTO_PM100_DEV_CHAR_BP ('B') /*<2A><><EFBFBD>ӱ<EFBFBD>*/
#define PROTO_PM100_MODE_CHAR_NORMAL ('N') /*NORMAL <20><><EFBFBD><EFBFBD>*/
#define PROTO_PM100_MODE_CHAR_POWER_SAVING ('S') /*POWER-SAVING <20><><EFBFBD><EFBFBD>*/
#define PROTO_PM100_MODE_CHAR_RUNING ('R') /*<2A><><EFBFBD><EFBFBD>*/
#define PROTO_PM100_MODE_CHAR_STOP ('S') /*ֹͣ*/
/*ָ<><D6B8>*/
/*<2A>ַ<EFBFBD><D6B7><EFBFBD>*/
#define PROTO_PM100_CMD_STR_START ("S20") /*<2A><><EFBFBD><EFBFBD>*/
#define PROTO_PM100_CMD_STR_STOP ("S21") /*ֹͣ*/
#define PROTO_PM100_CMD_STR_RESET ("S22") /*<2A><>λ*/
#define PROTO_PM100_CMD_STR_SET_MODE ("S23") /*<2A><><EFBFBD>ñ<EFBFBD>ģʽ<C4A3><CABD>NORMAL/POWER-SAVING <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>*/
#define PROTO_PM100_CMD_STR_SET_SPEED ("S24") /*<2A><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ģʽ<C4A3><CABD>NORMAL/POWER-SAVING <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>*/
#define PROTO_PM100_CMD_STR_GET_DATA ("M20") /*<2A><>ȡ<EFBFBD>û<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>*/
#define PROTO_PM100_CMD_STR_GET_STATE_ALARM ("M21") /*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬<D7B4><EFBFBD><EBB1A8>*/
#define PROTO_PM100_CMD_STR_SET_OK ("OK") /*<2A><><EFBFBD>óɹ<C3B3>*/
#define PROTO_PM100_CMD_STR_SET_NG ("NG") /*<2A><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>*/
#define PROTO_PM100_CMD_STR_SET_END ("END") /*<2A><><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>*/
/*CMD*/
#define PROTO_PM100_CMD_START 0 /*<2A><><EFBFBD><EFBFBD>*/
#define PROTO_PM100_CMD_STOP 2 /*ֹͣ*/
#define PROTO_PM100_CMD_RESET 3 /*<2A><>λ*/
#define PROTO_PM100_CMD_SET_MODE 4 /*<2A><><EFBFBD>ñ<EFBFBD>ģʽ<C4A3><CABD>NORMAL/POWER-SAVING <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>*/
#define PROTO_PM100_CMD_SET_SPEED 5 /*<2A><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ģʽ<C4A3><CABD>NORMAL/POWER-SAVING <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>*/
#define PROTO_PM100_CMD_GET_DATA 6 /*<2A><>ȡ<EFBFBD>û<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>*/
#define PROTO_PM100_CMD_GET_STATE_ALARM 7 /*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬<D7B4><EFBFBD><EBB1A8>*/
#define BP_ON ("BPON") /*bp<62><70><EFBFBD><EFBFBD>*/
#define MP_ON ("MPON") /*mp<6D><70><EFBFBD><EFBFBD>*/
#define ALL_RESET ("ALLRESET") /*<2A><><EFBFBD><EFBFBD>*/
#define BP_STOP ("BPSTOP") /*bpֹͣ*/
#define MP_STOP ("MPSTOP") /*mpֹͣ*/
#define NORMAL ("N") /*<2A><><EFBFBD><EFBFBD>ģʽ*/
#define POWER_SAVE ("S") /*<2A><><EFBFBD><EFBFBD>ģʽ*/
#define MP_NORMAL_SPEED ("MN") /*mp<6D><70><EFBFBD><EFBFBD>ģʽת<CABD><D7AA>*/
#define MP_SAVE_SPEED ("MS") /*mp<6D><70><EFBFBD><EFBFBD>ģʽת<CABD><D7AA>*/
#define BP_NORMAL_SPEED ("BN") /*bp<62><70><EFBFBD><EFBFBD>ģʽת<CABD><D7AA>*/
#define BP_SAVE_SPEED ("BS") /*bp<62><70><EFBFBD><EFBFBD>ģʽת<CABD><D7AA>*/
#define PROTO_PM100_GET_DATA_CODE (0x007FD9FF)/*<2A><>ȡ<EFBFBD><C8A1>Щʵ<D0A9><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
#define PROTO_PM100_ERROR_CODE_TIMEOUT (0x0001)/*ͨѶ<CDA8><D1B6>ʱ*/
/*PM100ģ<30><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
typedef struct
{
float Total_running_time; /*H*/
float BP_power ; /*KW*/
float MP_power ; /*KW*/
float BP_motor_speed ; /*K/min*/
float MP_motor_speed ; /*K/min*/
float BP_current ; /*A*/
float MP_current ; /*A*/
float BP_casing_temp ; /*<2A><>*/
float MP_casing_temp ; /*<2A><>*/
float Reserved_1[2] ; /* */
float Cooling_water_flow; /*L/min*/
float Pump_N2_flow ; /*Pam3/s*/
float Reserved ; /* */
float Back_pressure_1 ; /*KPa*/
float Heater1 ; /*<2A><>*/
float Heater2 ; /*<2A><>*/
float Heater3 ; /*<2A><>*/
float Heater4 ; /*<2A><>*/
float Vacuum_pressure ; /*KPa*/
float Cooler_1 ; /*<2A><>*/
float Cooler_2 ; /*<2A><>*/
float Cooler_3 ; /*<2A><>*/
float Reserved_2[9] ; /*H*/
}proto_PM100_AnalogData_t;
typedef struct
{
u8 Sys_State;
u8 Dev;
u8 Mode;
u16 Speed;
u32 Analog_Code; /*<2A><>ȡ<EFBFBD><C8A1>Щģ<D0A9><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
}proto_PM100_Set_Data_t;
typedef struct
{
u8 Run_Status;
u8 MP_Status;
u8 BP_Status;
u32 Warming_Code; /*<2A>豸״̬<D7B4><CCAC>*/
u32 Alarm_Code; /*<2A><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>*/
char alarm_start_str[32][15]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼʱ<CABC><CAB1><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> YYYYMMDDHHMMSS
char warning_start_str[32][15]; // <20><><EFBFBD>ʼʱ<CABC><CAB1><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
u32 alarm_start_sec[32]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼2000-01-01<30><31>
u32 warning_start_sec[32]; // <20><><EFBFBD>ʼ<E6BFAA><CABC><EFBFBD><EFBFBD>
}proto_Opera_Status_t;
typedef struct
{
queue Sys_StateQueue; /*״̬<D7B4><CCAC><EFBFBD><EFBFBD>*/
u8 Sys_State; /*Э<><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬*/
u8 SendTime; /*ָ<><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>*/
proto_PM100_AnalogData_t AnalogData;
u16 time_out_count; /*<2A><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>*/
u32 error_code; /*<2A>豸״̬*/
struct
{
u8 FirstFlag;
u8 EndFlag;
u16 CountTime;
}AnalogData_Control; /*<2A><>ȡģ<C8A1><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>صĿ<D8B5><C4BF>Ʋ<EFBFBD><C6B2><EFBFBD>*/
struct
{
u64 Code_Last; /*<2A><>һ<EFBFBD>εı<CEB5><C4B1><EFBFBD>ֵ*/
u16 StartTime; /*<2A><>ʱ*/
void (*Reset)(void); /*<2A><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>*/
}Alarm_Control; /*<2A><><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
proto_PM100_Set_Data_t Set_Data; /*<2A><><EFBFBD>õIJ<C3B5><C4B2><EFBFBD>*/
proto_Opera_Status_t Opera_Status;
struct
{
proto_Opera_Status_t Opera_Status_Last; /*<2A><>һ<EFBFBD>ε<EFBFBD><CEB5>豸״̬*/
u16 StartTime; /*<2A><>ʱ*/
void (*Reset)(void); /*<2A><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>*/
}Dev_Status_Control; /*<2A>豸״̬<D7B4><CCAC><EFBFBD><EFBFBD>*/
struct
{
void (*Start)(u8); /*<2A><><EFBFBD><EFBFBD>*/
void (*Stop)(u8); /*ֹͣ*/
void (*Reset)(void); /*<2A><>λ*/
void (*Set_Mode)(u8); /*<2A><><EFBFBD>ñ<EFBFBD>ģʽ<C4A3><CABD>NORMAL/POWER-SAVING <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>*/
void (*Set_Speed)(u8,u8,u16); /*<2A><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ģʽ<C4A3><CABD>NORMAL/POWER-SAVING <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>*/
}Control;
void (*Init)(void);
void (*Rx_Task)(u8 *,u16,void *);
void (*Tx_Task)(void);
}proto_PM100_t;
extern proto_PM100_t PM100;
extern char *proto_PM100_Str_WarmingCode[32];
extern char *proto_PM100_Str_AlarmCode[32];
#endif