📄 center.h
字号:
#include <stdio.h>
#include "types.h"
#include "arithmetic.h"
/*宏定义*/
//指令功能类别(指令功能码)定义
#define IT_NOHANDLE 0 //转发类
#define IT_MONTHREADSET 1 //月冻结设置
#define IT_TIMERREADSET 2 //指定时间抄表设置
#define IT_MONITORSET 3 //自动监视设置
#define IT_MYSTATUS 4 //读集中器状态
#define IT_BREAKREAD 5 //读电表停电细节
#define IT_DAYCLOCKDATA 6 //读指定日期整点数据
#define IT_CLOCKDATA 7 //读整点数据
#define IT_MONTHDATA 8 //读月冻结数据
#define IT_REGIONCHG 9 //台区码变动上报
#define IT_FEWTIMESET 10 //设置电表时钟(特殊处理,不在指令功能类别表中)
#define IT_ALLTIMESET 11 //广播校时(特殊处理)
#define IT_ADDORDELID 12 //增删电表ID(特殊处理)
#define IT_CONFIRMID 13 //确认电表ID(特殊处理)
#define IT_BREAKTELL 14 //断电上报
#define IT_TROUBLETELL 15 //故障上报
#define IT_FEESET 16 //复费率设置
//指令优先级定义
#define IP_SETTIME 0 //设置时钟
#define IP_REAL 1 //实时指令
#define IP_TIMER 2 //定时指令
#define MAXINSITEM 250 //指令参数最大值
#define MAXINSNAME 30 //指令码表最大行数
#define MAXAMNUM 1024 //集中器下最大电表数
#define MAXCOMSEND 2048 //集中器串口发送缓冲区最大指令数
#define MAXTCPSEND 100 //集中器TCP发送缓冲区最大指令数
#define MAXCOMINSLEN 100 //一条串行指令最大字节数
#define MAXTCPINSLEN 1024 //一条TCP指令最大字节数
//指令来源定义
#define IS_STASEND 0 //主站下发
#define IS_AMRET 1 //电表返回
#define IS_AMREP 2 //电表上报
#define IS_STARET 3 //主站返回
//指令发送方向定义
#define TO_STA 0 //发送到主站
#define TO_AM 1 //发送到电表
//响应标志
#define NOTRESP 0 //不响应
#define NEEDRESP 1 //需要响应
//函数返回
#define RET_NORMAL 0 //正常
#define RET_ERR -1 //错误
//发送或接收指令标志
#define REC_STACOMM 0 //接收主站指令
#define REC_AMCOMM 1 //接收电表指令
#define SEND_STACOMM 2 //发送主站指令
#define SEND_AMCOMM 3 //发送电表指令
//指令参数结构
struct str_InsPara {
BYTE InsItem[3];
UINT16 DataLen;
} InsPara[MAXINSITEM];
//指令功能分类表数据结构(指令码表数据结构)
struct {
BYTE control_id; //指令控制码
BYTE ins_item[3]; //指令标识码
UINT16 ins_name; //指令功能码
UINT16 priority; //指令优先级
UINT16 response; //指令响应标志
} InsName[MAXINSNAME];
//电表运行状态数据结构
struct str_RunStatus {
BYTE AmID[6];
BYTE Status[2];
BYTE SendFlag;
} RunStatus[MAXAMNUM];
//电网运行状态数据结构
struct str_NetStatus {
BYTE AmID[6];
BYTE Status[2];
BYTE SendFlag;
} NetStatus[MAXAMNUM];
//电表台区码表
struct str_RegNo {
BYTE AmID[6];
BYTE OldReg[5];
BYTE NewReg[5];
BYTE SendFlag;
} RegNo[MAXAMNUM];
UINT16 InsNameLines; //指令功能码表行数
UINT16 AmNum; //集中器下实际所挂表数
UINT16 NetLines; //电网运行状态表中行数
UINT16 RegLines; //台区码表行数
UINT16 ItemNum; //指令标识数
FILE *fp_reg, *fp_status, *fp_net;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -