⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 center.h

📁 嵌入式的小程序
💻 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 + -