📄 protocol.h
字号:
#ifndef _PROTOCOL_H
#define _PROTOCOL_H
typedef char STATION_NAME[16];
typedef char DEVICE_NAME[16];
typedef char DEVICE_TYPE[16];
typedef char DESIGNER[16];
typedef struct
{
STATION_NAME station_name;
DEVICE_NAME device_name;
DEVICE_TYPE device_type;
DESIGNER designer;
BYTE device_type_id;
BYTE revision;
BYTE sub_revision;
BYTE revision_year;
BYTE revision_month;
BYTE revision_day;
BYTE device_address;
BYTE analog_count;
BYTE energy_count;
BYTE di_count;
BYTE enable_count;
BYTE do_count;
BYTE setting_sect_count;
BYTE used_setting_sec_count;
BYTE current_sect;
BYTE item_in_sect;
BYTE time_mod;
BYTE mmi_revision;
BYTE mmi_sub_revision;
BYTE alarm_count;
BYTE act_count;
}DEVICE_INFO;
typedef char NAME[13];
typedef char UNIT[5];
typedef struct
{
NAME analog_name;
float primary_ratio;
float secondary_ratio;
UNIT primary_unit;
UNIT secondary_unit;
WORD nZeroDeviation;
}ANALOG_INFO;
typedef struct
{
NAME energy_name;
float primary_ratio;
float secondary_ratio;
UNIT primary_unit;
UNIT secondary_unit;
}ENERGY_INFO;
typedef char ON_OFF_NAME[5];
typedef struct
{
NAME digital_name;
ON_OFF_NAME on_name;
ON_OFF_NAME off_name;
}DIGITAL_INFO;
typedef union
{
char bValue;
WORD nValue;
float fValue;
}PK_Value;
typedef struct
{
NAME setting_name;
UNIT setting_unit;
BYTE data_type;
PK_Value upper;
PK_Value lowwer;
}SETTING_INFO;
typedef struct
{
BYTE year;
BYTE month;
BYTE day;
BYTE hour;
BYTE minute;
BYTE second;
WORD ms;
}TIME;
typedef struct
{
TIME TimeBuf;
TIME AnalogTime;
TIME MeterTime;
TIME FrequencyTime;
TIME DiChangeTime;
TIME DiReguTime;
TIME DoChangeTime;
TIME DoReguTime;
TIME EnableChangeTime;
TIME EnableReguTime;
TIME AckDoEnableTime;
TIME AckDoCmdTime;
TIME AckEnaEnabelTime;
TIME AckEnaSetTime;
TIME AlarmTime;
TIME RecordTime;
}TIMEMAIN;
typedef struct
{
BYTE mmi_revision;
BYTE mmi_sub_revision;
BYTE revision_year;
BYTE revision_month;
BYTE revision_day;
}MMI_REV;
typedef struct
{
WORD digital_cntr;
TIME digital_start_time;
TIME digital_end_time;
BYTE act_cntr;
TIME act_start_time;
TIME act_end_time;
BYTE operation_cntr;
TIME operation_start_time;
TIME operation_end_time;
BYTE alarm_cntr;
TIME alarm_start_time;
TIME alarm_end_time;
}SOE_INDEX;
typedef struct
{
BYTE soe_type;
BYTE soe_id;
BYTE soe_value;
TIME soe_time;
}SOE;
//define address
#define LOCAL_ADDRESS 0x08
#define REMOTE_ADDRESS 0xff
//define text ID
#define REQ_DEVICE_INFO 0//
#define ACK_DEVICE_INFO 1//
#define REQ_ANALOG_INFO 2//
#define ACK_ANALOG_INFO 3//
#define REQ_METER_INFO 4//
#define ACK_METER_INFO 5//
#define REQ_DI_INFO 6//
#define ACK_DI_INFO 7//
#define REQ_DO_INFO 8//
#define ACK_DO_INFO 9//
#define REQ_ENABLE_INFO 10//
#define ACK_ENABLE_INFO 11//
#define REQ_SETTING_INFO 12//
#define ACK_SETTING_INFO 13//
#define REQ_ALARM_INFO 14//
#define ACK_ALARM_INFO 15//
#define REQ_RECORD_INFO 16//
#define ACK_RECORD_INFO 17//
#define SEND_ANALOG 18//
#define SEND_METER 19//
#define SEND_FREQUENCY 20//
#define SEND_DI_CHANGE 21//?
#define SEND_DI_REGU 22//?
#define SEND_DO_CHANGE 23//?
#define SEND_DO_REGU 24//?
#define SEND_ENABLE_CHANGE 25//?
#define SEND_ENABLE_REGU 26//?
#define SEND_ALARM 27//
#define REQ_INFO_CHANGE 28//?
#define ACK_INFO_CHANGE 29//?
#define REQ_ALL_INFO 30//?
#define DO_ENABLE 32//
#define ACK_DO_ENABLE 33//
#define DO_CMD 34//
#define ACK_DO_CMD 35//
#define ENABLE_ENABLE 36//
#define ACK_ENABLE_ENABLE 37//
#define EN_SETTING 38//
#define ACK_ENABLE_SETTING 39//
#define RESET 40//
#define ACK_RESET 41//
#define SOE_INDEX_CALLING 64
#define SOE_INDEX_SENDING 65
#define SOE_CALLING 66
#define SOE_SENDING 67
#define REC_DATA_CALLING 68
#define REC_DATA_FRAME_CALLING 69
#define REC_DATA_SENDING 70
#define DEL_SOE_CALLING 71
#define ACK_DEL_SOE 72
#define SEND_RECORD_CHANGE 73//
#define SETTING_SWITCH 96//
#define ACK_SETTING_SWITCH 97//
#define CHG_SETTING_DATA 98//
#define ACK_SET_DATA_CHG 99//
#define CHG_SETTING_CMD 100//
#define ACK_SET_CMD_CHG 101//
#define CALLING_SETTING 102//
#define SEND_SETTING 103//
#define ADD_SETTING_SEC 104//
#define ACK_ADD_SETTING_SEC 105//
#define DEL_SETTING_SEC 106//保留(未写)
#define ACK_DEL_SETTING_SEC 107//保留(未写)
#define ADDR_SETTING 128//
#define ACK_ADDR_SETTING 129//
#define TIME_SETTING 130//
#define DI_SETTING 131//
#define METER_INIT 132//
#define METER_PARA_SET 133//
#define ACK_METER_PARA_SET 134//
#define ANALOG_PRIMARY_PARA_SET 135//
#define ACK_ANALOG_PRIMARY_PARA_SET 136//
#define SET_DEVICE_BAUDRATE 137
#define ACK_SET_DEVICE_BAUDRATE 138
#define SET_TIME_STYLE 139//
#define CHG_PASSWORD 140//
#define ACK_CHG_PASSWORD 141//
#define SIGN_IN 142//
#define ACK_SIGN_IN 143//
#define SIGN_OUT 144//
#define ACK_SIGN_OUT 145//
#define SET_DEVICE_NAME 146
#define SET_ANALOG_DUMMY 160
#define SET_ENERGY_DUMMY 161
#define SET_ENABLE_DUMMY 162
#define SET_DO_DUMMY 163
#define ANALOG_SECONDARY_PARA_SET 192//
#define ACK_ANALOG_SECONDARY_PARA_SET 193//
#define MMI_INFO 194//
#define KEY_M_FUN 224
#define ACK_KEY_M 225
#define KEY_P_FUN 226
#define ACK_KEY_P 227
//Just for test
#define ROUTINE_MODE 0
#define CHANGE_MODE 1
#define ANALOG_MODE 0
#define ENERGY_MODE 1
//define program version
#define PROG_PRIM_VERSION 1
#define PROG_SCND_VERSION 0
//define program version
#define PROT_PRIM_VERSION 1
#define PROT_SCND_VERSION 0
//define size
#define MAX_ANALOG_ITEM 64
#define MAX_ENERGY_ITEM 8
#define MAX_DI_ITEM 64
#define MAX_ENABLE_ITEM 64
#define MAX_DO_ITEM 32
#define MAX_SETTING_ITEM 256
#define MAX_SETTING_SECT 16
#define RMT_MSG_BUF_DEEPTH 10
#define MAX_ALARM_ITEM 32
#define MAX_RECORD_ITEM 32
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -