You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2256 lines
70 KiB
C

2 years ago
/************************************************************************************
*
* Copyright (C) 2004-2005 SCADA Control Technology Co., Ltd.
* All rights reserved.
*
* buban103.h
* 103
* 103
2 years ago
*
* 1.0
* aaawen
* 2005/04/22
2 years ago
*
* 1.0
*
*
2 years ago
*
*
2 years ago
* u8 --- BYTE(usigned char)
* ch --- char
* w --- WORD(u_short, usigned short)
* sh --- short
* b --- BOOL(bool)
* i --- int
* l --- long
* u32 --- u_32
* ui --- unsigned int(u_int)
* ul --- unsigned long(u_long)
* f --- float
* db --- double
* c --- class
* s --- struct
* sta --- static
* g ---
* Array ---
* a ---
* m_ ---
* p ---
* str ---
* ---
* ---
2 years ago
**************************************************************************************/
// buban103.h: interface for the buban103 class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(_BUBAN103_H_200504221547__INCLUDED_)
#define _BUBAN103_H_200504221547__INCLUDED_
#ifdef OS_LINUX
#include "baohulib/common.h"
#else
#include "common.h"
#endif
//////////////////////////////////////////////////////////////////////////
// 宏定义 //
2 years ago
// WEN 2001.03.09 //
//////////////////////////////////////////////////////////////////////////
/*!
\brief
2 years ago
*/
#define RII_PROV_ID 0xFF
/*!
\brief
2 years ago
*/
#define INF_AI_START 92
/*!
\brief
2 years ago
*/
#define INF_AI_NUM 57
/*!
\brief
2 years ago
*/
#define INF_DI_START 149
/*!
\brief
2 years ago
*/
#define INF_DI_NUM 89
/*!
\brief
2 years ago
*/
#define INF_PI_START 6
/*!
\brief
2 years ago
*/
#define INF_PI_NUM 26
/*!
\brief
2 years ago
*/
#define INF_YK_START 48
/*!
\brief
2 years ago
*/
#define INF_YK_NUM 28
/*!
\brief
2 years ago
*/
#define INF_YT_START 48
/*!
\brief
2 years ago
*/
#define INF_YT_NUM 28
/*!
\brief
2 years ago
*/
#define GROUPNUM 16
/*!
\brief
2 years ago
*/
#define FILENAME_LEN 256
/*!
\brief
2 years ago
*/
#define DEV_AI_MAXNUM 7
/*!
\brief
2 years ago
*/
#define MAXSTRINGLEN 64
/*!
\brief
2 years ago
*/
#define BUBAN103_TIMER_CMD_NUM 5
// 应用服务数据单元ASDU的常量定义
// 监视方向的类型标识
#define M_TM_TA_3 1 //带时标的报文
#define M_TMR_TA_3 2 //具有相对时间的带时标的报文
#define M_MEI_NA_3 3 //被测值I
#define M_TME_TA_3 4 //具有相对时间的带时标的被测值
#define M_IRC_NA_3 5 //标识
#define M_SYN_TA_3 6 //时间同步
#define M_TGI_NA_3 8 //总查询(总召唤)终止
#define M_MEII_NA_3 9 //被测值II
#define M_GD_NTA_3 10 //通用分类数据
#define M_GI_NTA_3 11 //通用分类标识
#define M_LRD_TA_3 23 //被记录的扰动表
#define M_RTD_TA_3 26 //扰动数据传输准备就绪
#define M_RTC_NA_3 27 //被记录的通道传输准备就绪
#define M_RTT_NA_3 28 //带标志的状态变位传输准备就绪
#define M_TOT_TA_3 29 //传送带标志的状态变位
#define M_TOV_NA_3 30 //传送扰动值
#define M_EOT_TA_3 31 //传送结束
#define M_MEIII_TA_3 32 //带时标的被测值Ⅲ
#define M_MEIV_TA_3 33 //带时标的被测值Ⅳ
#define M_MEV_TA_3 34 //带时标的被测值Ⅴ
#define M_MEVI_TA_3 35 //带时标的被测值Ⅵ
#define M_MEVII_NA_3 50 //被测值Ⅶ
#define M_IT_NA_3 36 //电能脉冲计数值
#define M_IT_TA_3 37 //带时标的电能脉冲计数值
#define M_ST_NA_3 38 //步位置信息
#define M_ST_TA_3 39 //带时标的步位置信息
#define M_SP_NA_3 40 //单点状态信息
#define M_SP_TA_3 41 //带时标的单点状态信息
#define M_DP_NA_3 42 //双点状态信息
#define M_DP_TA_3 43 //带时标的双点状态信息
#define M_SS_NA_3 44 //单点状态和状态变位检出
#define M_SS_TA_3 45 //带时标的单点状态和状态变位检出
#define M_DS_NA_3 46 //双点状态和状态变位检出
#define M_DS_TA_3 47 //带时标的双点状态和状态变位检出
#define M_WL_TA_3 48 //水位
#define M_DC_NA_3 64 //控制断路器命令
#define M_RC_NA_3 65 //升降命令
#define M_SE_NA_3 66 //设定命令
#define M_CC_NA_3 67 //控制命令
#define M_EX_PI_3 205 //电度命令(SIEMENS公司)
// 控制方向的类型标识
#define C_SYN_TA_3 6 //时间同步
#define C_TGI_NA_3 7 //总查询(总召唤)
#define C_GD_NA_3 10 //通用分类数据
#define C_GRC_NA_3 20 //一般命令
#define C_GC_NA_3 21 //通用分类命令
#define C_ODT_NA_3 24 //扰动数据传输的命令
#define C_ADT_NA_3 25 //扰动数据传输的认可
#define C_DC_NA_3 64 //控制断路器命令
#define C_RC_NA_3 65 //升降命令
#define C_SE_NA_3 66 //设定命令
#define C_CC_NA_3 67 //控制命令
#define C_CI_NA_3 88 //电能脉冲计数召唤命令
// 链路规约数据单元LDPU的常量定义
// 监视方向的控制域功能码
#define M_CON_NA_3 0 //确认帧
#define M_BY_NA_3 1 //忙帧(确认帧)
#define M_DATA_NA_3 8 //以数据响应请求帧
#define M_NV_NA_3 9 //无所要求的数据帧回答
#define M_LKR_NA_3_1 11 //链路状态响应帧--链路工作正常
#define M_LKR_NA_3_2 14 //链路状态响应帧--链路服务未工作
#define M_LKR_NA_3_3 15 //链路状态响应帧--链路服务未实现
// 控制方向的控制功能码
#define C_RFB_NA_3 7 //复位帧计数
#define C_RCU_NA_3 0 //复位通讯单元
#define C_PL1_NA_3 10 //召唤一级用户数据
#define C_PL2_NA_3 11 //召唤二级用户数据
#define C_RLK_NA_3 9 //请求链路状态
#define C_SD1_NA_3 3 //传送数据(发送/确认帧)
#define C_SD2_NA_3 4 //传送数据(发送/无回答帧)
// 功能类型
#define FUNC_DISTANCEPROTECT 128 // 距离保护
#define FUNC_OVERCURRENTPROTECT 160 // 过流保护
#define FUNC_TRANSFORMERPROTECT 176 // 变压器差动保护
#define FUNC_LINEPROTECT 192 // 线路差动保护
#define FUNC_GENERALSORT 254 // 通用分类功能
#define FUNC_GLOBAL 255 // 全局功能类型
// 命令类型
#define ORDER_FAULTSELECT 1 // 故障的选择
#define ORDER_REQUESTDATA 2 // 请求扰动数据
#define ORDER_STOPDATA 3 // 终止扰动数据
#define ORDER_REQUESTSTATUSWITHFLAG 16 // 请求带标志的状态变位
#define ORDER_STOPSTATUSWITHFLAG 17 // 终止带标志的状态变位
#define ORDER_REQUESTRECORDTABLE 24 // 请求被记录的扰动表
// 在监视方向的通用分类功能的信息序号
#define M_INF_READGROUPTITLE 240 // 读组标题
#define M_INF_READGROUPALLITEMS 241 // 读一个组的全部条目的值或属性
#define M_INF_READDIROFSINGLEITEM 243 // 读单个条目的目录
#define M_INF_READATTROFISNGLEITEM 244 // 读单个条目的值或属性
#define M_INF_STOPQUERYGENERAL 245 // 对通用分类数据总查询中止
#define M_INF_WRITEITEMWITHACK 249 // 带确认的写条目
#define M_INF_WRITEITEMWITHEXEC 250 // 带执行的写条目
#define M_INF_WRITEITEMWITHSTOP 251 // 带终止的写条目
// 在控制方向的通用分类功能的信息序号
#define C_INF_READGROUPTITLE 240 // 读组标题
#define C_INF_READGROUPALLITEMS 241 // 读一个组的全部条目的值或属性
#define C_INF_READDIROFSINGLEITEM 243 // 读单个条目的目录
#define C_INF_READATTROFISNGLEITEM 244 // 读单个条目的值或属性
#define C_INF_QUERYGENERAL 245 // 对通用分类数据总查询
#define C_INF_WRITEITEM 248 // 写条目
#define C_INF_WRITEITEMWITHACK 249 // 带确认的写条目
#define C_INF_WRITEITEMWITHEXEC 250 // 带执行的写条目
#define C_INF_STOPWRITEITEM 251 // 写条目终止
// 信息组号
#define GROUP_SYSTEM0 0x00 // 系统类(所有保护及自动装置的系统参数及功能、定值区切换)
#define GROUP_SYSTEM1 0x01 // 系统类
#define GROUP_FIXVALUE0 0x02 // 定值类
#define GROUP_FIXVALUE1 0x03 // 定值类
#define GROUP_EVENT0 0x04 // 事件类(动作及状态事件)
#define GROUP_EVENT1 0x05 // 事件类(如告警事件)
#define GROUP_AIVALUE0 0x06 // 遥测类(保护测量值)
#define GROUP_AIVALUE1 0x07 // 遥测类(如电流、电压、功率、频率、水位、温度等)
#define GROUP_DISOE 0x08 // 遥信类(如刀闸、开关、信号、状态等) 遥信SOE
#define GROUP_DIVALUE0 0x09 // 遥信类
#define GROUP_PIVALUE 0x0a // 电量类
#define GROUP_YKSWITCH 0x0b // 遥控开关类(跳/合)
#define GROUP_YKDANGWEI 0x0c // 遥控分头类(升/降)
#define GROUP_YTDAOUT 0x0d // 遥调类(DA输出)
#define GROUP_YKYABAN 0x0e // 遥控压板类(保护功能投/退)
#define GROUP_DEBUGANDOPERATE 0x0f // 调试及操作信息类(用于装置的调试及操作记录)
#define GROUP_DIVALUE1 0x18 // 遥信类(如刀闸、开关、信号、状态等) 遥信状态
// 传送原因
// 监视方向
#define M_CAUSE_AUTOSEND 1 // 自发(突发)
#define M_CAUSE_CYCLE 2 // 循环
#define M_CAUSE_RESET_FCB 3 // 复位帧计数位(FCB)
#define M_CAUSE_RESET_CU 4 // 复位通信单元(CU)
#define M_CAUSE_START 5 // 启动/重新启动
#define M_CAUSE_POWERON 6 // 电源合上
#define M_CAUSE_TEST 7 // 测试模式
#define M_CAUSE_CHECKTIME 8 // 时间同步
#define M_CAUSE_QUERY 9 // 总查询
#define M_CAUSE_STOPQUERY 10 // 总查询停止
#define M_CAUSE_LOCAL 11 // 当地操作
#define M_CAUSE_REMOTE 12 // 远方操作
#define M_CAUSE_ACK 20 // 命令的肯定认可
#define M_CAUSE_NAK 21 // 命令的否定认可
#define M_CAUSE_DSITURBANCEDATA 31 // 扰动数据的传送
#define M_CAUSE_WRITEACK 40 // 通用分类写命令的肯定认可
#define M_CAUSE_WRITENAK 41 // 通用分类写命令的否定认可
#define M_CAUSE_READWITHVALIDDATA 42 // 对通用分类读命令有效数据响应
#define M_CAUSE_READWITHINVALIDDATA 43 // 对通用分类读命令无效数据响应
#define M_CAUSE_WRITECONFIRM 44 // 通用分类写确认
// 控制方向
#define C_CAUSE_CYCLE 2 // 循环
#define C_CAUSE_CHECKTIME 8 // 时间同步
#define C_CAUSE_QUERY 9 // 总查询
#define C_CAUSE_COMMAND 20 // 一般命令
#define C_CAUSE_DSITURBANCEDATA 31 // 扰动数据的传送
#define C_CAUSE_WRITEWITHVALIDDATA 40 // 通用分类写命令
#define C_CAUSE_READWITHVALIDDATA 42 // 通用分类读命令
// 数据ID
#define DATAID_NO 0 // 无数据
#define DATAID_OS8ASCII 1 // 8位ASCII
#define DATAID_BSTRING 2 // 字符串
#define DATAID_UI 3 // 无符号整数
#define DATAID_INT 4 // 整数
#define DATAID_UFLOAT 5 // 无符号浮点数
#define DATAID_FLOAT 6 // 浮点数
#define DATAID_754SHORT 7 // R32.23 IEEE 标准754短实数
#define DATAID_754REAL 8 // R64.53 IEEE 标准754实数
#define DATAID_DOUBLE 9 // 双点信息
#define DATAID_SINGLE 10 // 单点信息
#define DATAID_13BITS 12 // 带品质描述的被测值(13BITS)
#define DATAID_SORTIDNO 15 // 通用分类标识序号
#define DATAID_WITHTIME 18 // 带时标的报文
#define DATAID_WITHTIMESPACE 19 // 带相对时标的报文
#define DATAID_STRUCT 23 // 数据结构
#define DATAID_EXDATA_0X24 0x24 // 北京四方扩展数据类型
// 描述类别
#define KOD_NOSPECIFIED 0 // 无所指定的描述类别
#define KOD_ACTUALVALUE 1 // 实际值
#define KOD_DEFAULTVALUE 2 // 缺省值
#define KOD_RANGE 3 // 量程(最大值、最小值、步长)
#define KOD_BACKUP1 4 // 备用
#define KOD_PRECISION 5 // 精度(n,m)
#define KOD_FACTOR 6 // 因子
#define KOD_REFERENCE 7 // 参比
#define KOD_ENUMERATION 8 // 列表
#define KOD_DIMENSION 9 // 量纲
#define KOD_DESCRIPTION 10 // 描述
#define KOD_BACKUP2 11 // 备用
#define KOD_PASSWORD 12 // 口令条目
#define KOD_READONLY 13 // 只读
#define KOD_WRITEONLY 14 // 只写
#define KOD_BACKUP3 15 // 备用
#define KOD_BACKUP4 16 // 备用
#define KOD_BACKUP5 17 // 备用
#define KOD_BACKUP6 18 // 备用
#define KOD_CORFUNCANDINF 19 // 相应的功能类型和信息序号
#define KOD_COREVENT 20 // 相应的事件
#define KOD_ENUMTEXTARRAY 21 // 列表的文本阵列
#define KOD_ENUMVALUEARRAY 22 // 列表的值阵列
#define KOD_RELATEDENTRIES 23 // 相关联的条目
/////////////////////////////结构定义/////////////////////////////////
2 years ago
/*!
\struct PROV_ALLITEMOFGROUPPARAM
\brief
2 years ago
\par
2 years ago
buban103.h
*/
typedef struct{
/*!
\var PROV_ALLITEMOFGROUPPARAM::m_u8RII
\brief
2 years ago
\note
[0---255]\n
2 years ago
*/
unsigned char m_u8RII;
/*!
\var PROV_ALLITEMOFGROUPPARAM::m_u8Group
\brief
2 years ago
\note
[0---255]\n
2 years ago
*/
unsigned char m_u8Group;
/*!
\var PROV_ALLITEMOFGROUPPARAM::m_u8ItemNo
\brief
2 years ago
\note
[0---255]\n
2 years ago
*/
unsigned char m_u8ItemNo;
/*!
\var PROV_ALLITEMOFGROUPPARAM::m_u8ItemAttr
\brief
2 years ago
\note
(... ...)
2 years ago
\note
[13910]\n
2 years ago
*/
unsigned char m_u8ItemAttr;
/*!
\var PROV_ALLITEMOFGROUPPARAM::m_bFinished
\brief
2 years ago
\note
[TRUE/FALSE]\n
2 years ago
*/
BOOL m_bFinished;
}PROV_ALLITEMOFGROUPPARAM;
/*!
\struct DEVPARAMDEF
\brief
2 years ago
\par
2 years ago
buban103.h
*/
typedef struct{
/*!
\var DEVPARAMDEF::m_szDevName
\brief
2 years ago
\note
[ASCII64]\n
2 years ago
*/
char m_szDevName[66];
/*!
\var DEVPARAMDEF::m_u8DevAddr
\brief
2 years ago
\note
[1-254255广]\n
2 years ago
*/
u_char m_u8DevAddr;
/*!
\var DEVPARAMDEF::m_iCfgGroupNum
\brief
2 years ago
\note
[0--GROUPNUM]\n
2 years ago
*/
i_32 m_iCfgGroupNum;
/*!
\var DEVPARAMDEF::m_saGroupDef[]
\brief
2 years ago
\par
GROUPDEF
2 years ago
\note
\n
2 years ago
*/
GROUPDEF m_saGroupDef[GROUPNUM];
/*!
\var DEVPARAMDEF::m_szType[]
\brief ()
2 years ago
\note
[ASCII64]\n
"LFP984B", "RCS921A", "RCS931A", "LFP965B"\n
2 years ago
*/
char m_szType[64];
/*!
\var DEVPARAMDEF::m_szDatFileName[]
\brief ()
2 years ago
\note
[ASCII256]\n
2 years ago
*/
//char m_szDatFileName[FILENAME_LEN];
/*!
\var DEVPARAMDEF::m_sAiDBOrientation
\brief
2 years ago
\note
2 years ago
*/
DBORIENTATION m_sAiDBOrientation[DEV_AI_MAXNUM];
/*!
\var DEVPARAMDEF::m_sDiDBOrientation
\brief
2 years ago
\note
2 years ago
*/
DBORIENTATION m_sDiDBOrientation;
/*!
\var DEVPARAMDEF::m_sPiDBOrientation
\brief
2 years ago
*/
DBORIENTATION m_sPiDBOrientation;
/*!
\var DEVPARAMDEF::m_sStepDBOrientation
\brief
2 years ago
\note
2 years ago
*/
DBORIENTATION m_sStepDBOrientation;
/*!
\var DEVPARAMDEF::m_sYkDBOrientation
\brief
2 years ago
\note
2 years ago
*/
DBORIENTATION m_sYkDBOrientation;
/*!
\var DEVPARAMDEF::m_sSyncTimeInfo
\brief
2 years ago
*/
DBINFO m_sSyncTimeInfo;
/*!
\var DEVPARAMDEF::m_iProvAddr
\brief
2 years ago
\note
2 years ago
\note
[-1, ]\n
2 years ago
*/
i_32 m_iProvAddr;
/*!
\var DEVPARAMDEF::m_u32FuncCode
\brief
2 years ago
\note
2 years ago
\note
hREADFIX : \n
hREADFIXNO : \n
hREADPAI : \n
hREADPDI : \n
hREADPWAVE : \n
hQUERYFAULT : \n
hQUERYSELFCHECK : \n
hWRITEALLFIX : \n
hWRITESPECIALFIX : \n
hWRITEFIXNO : \n
hRESETPROTECT : \n
hCHECKTIME : \n
hBROADCASTCHECKTIME : 广\n
hCANCEL : \n
2 years ago
*/
u_32 m_u32FuncCode;
/*!
\var DEVPARAMDEF::m_iYkStartPnt
\brief
2 years ago
\note
2 years ago
\note
[-1, ]\n
2 years ago
*/
i_32 m_iYkStartPnt;
/*!
\var DEVPARAMDEF::m_iYtStartPnt
\brief
2 years ago
\note
2 years ago
\note
[-1, ]\n
2 years ago
*/
i_32 m_iYtStartPnt;
BYTE m_u8SCN;
/*!
\var DEVPARAMDEF::m_u8CPUNo
\brief CPU
2 years ago
\note
2 years ago
\note
[1, ... ,255]\n
2 years ago
\note
255CPU,,cpu\n
2 years ago
*/
BYTE m_u8CPUNo;
/*!
\var DEVPARAMDEF::m_u8FixNo
\brief
2 years ago
\note
2 years ago
\note
[1, ... ,255]\n
2 years ago
\note
255
2 years ago
*/
BYTE m_u8FixNo;
/*!
\var DEVPARAMDEF::m_iFaultNo
\brief
2 years ago
\note
2 years ago
*/
i_32 m_iFaultNo;
}DEVPARAMDEF;
/*!
\struct PROVDEVPARAMDEF
\brief
2 years ago
\par
2 years ago
buban103.h
*/
typedef struct
{
/*!
\var DEVPARAMDEF::m_sProvGroupParam
\brief
2 years ago
\note
2 years ago
*/
PROV_ALLITEMOFGROUPPARAM m_sProvGroupParam;
/*!
\var PROVDEVPARAMDEF::m_sProvSoe
\brief SOE
2 years ago
\note
2 years ago
*/
DEVPROVSOE m_sProvSoe;
}PROVDEVPARAMDEF;
typedef struct
{
i_32 m_iCmdTimerCnt; //命令时间计数
i_32 m_iCmdTimerConst; //命令时间常量
2 years ago
} BUBAN103CMDDEF;
// wen 2003.10.27 保存扰动数据故障序号等参数
2 years ago
typedef struct
{
BYTE m_u8FUN; //功能类型(FUN)
BYTE m_u8Res1; //未用
BYTE m_u8Res2; //未用
BYTE m_u8TOV; //扰动值类型(TOV)
WORD m_wFAN; //故障序号(FAN)
WORD m_wNOF; //电网故障序号(NOF)
BYTE m_u8NOC; //通道数目
WORD m_wNOE; //一个通道信息元素的数目
WORD m_wINT; //信息元素间的间隔
WORD m_wHour; //时
WORD m_wMinute; //分
WORD m_wSecond; //秒
WORD m_wMilliseconds; //毫秒
WORD m_wYear; //年
WORD m_wMonth; //月
WORD m_wDay; //日
BOOL m_bRecvRight; //接收是否正确
BYTE m_u8ACC; //通道号
int m_iNum; //缓冲区psValue 数量
int m_iDataNum; //缓冲区psValue 扰动值的数量
short *m_pshValue; //扰动值
2 years ago
} BUBAN103DISTURBANCEDEF;
typedef struct tagDISTURBANCEDIDATA
{
int m_iNo; // 序号
int m_iNum; // 数量
2 years ago
int m_iTap; // 偏移
BYTE m_u8Fun; // 功能类型
BYTE m_u8Inf; // 信息序号
short m_shValue; // 数值
2 years ago
struct tagDISTURBANCEDIDATA *m_psCurUse; // 正在使用的指针
struct tagDISTURBANCEDIDATA *m_psRight; // 右指针
struct tagDISTURBANCEDIDATA *m_psBottom; // 下指针
2 years ago
}DISTURBANCEDIDATA, *pDISTURBANCEDIDATA;
typedef struct tagDISTURBANCEAIDATA
{
int m_iACCNo; // 通道号
int m_iTOV; // 扰动值类型
double m_dbRPV; // 额定一次值
double m_dbRSV; // 额定二次值
double m_dbfRFA; // 参比因子
int m_iNOE; // 采样值数量
int m_iNOC; // 模拟量数量
2 years ago
short *m_pshValue; // 模拟量值
2 years ago
}DISTURBANCEAIDATA, *pDISTURBANCEAIDATA;
/*应用服务数据单元的报文结构定义*/
2 years ago
typedef struct
{
//WORD m_wGIN; //通用分类标识序号
BYTE m_u8Grp; //组号
BYTE m_u8Itm; //条目号
BYTE m_u8KOD; //类型描述
}GEN_DATAGROUP; //通用分类数据组
2 years ago
//监视方向的应用服务数据单元结构
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nDPI; //双点信息
unsigned char nTIME[4]; //四个八位位组二进制时间
unsigned char nSIN; //附加信息
}MASDU1;//带时标的报文nTYP=M_TM_TA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nDPI; //双点信息
unsigned short nRET; //相对时间
unsigned short nFAN; //故障序号
unsigned char nTIME[4]; //四个八位位组二进制时间
unsigned char nSIN; //附加信息
}MASDU2;//带相对时间的时标报文nTYP=M_TMR_TA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned short nMEA1; //B相电流
unsigned short nMEA2; //AB相电压
unsigned short nMEA3; //有功功率
unsigned short nMEA4; //无功功率
}MASDU3;//被测值I报文nTYP=M_MEI_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
u_32 nSCL; //短路位置
unsigned short nRET; //相对时间
unsigned short nFAN; //故障序号
unsigned char nTIME[4]; //四个八位位组二进制时间
}MASDU4;//带相对时间的有时标被测值报文nTYP=M_TME_TA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nCOL; //兼容级别
unsigned char nASC[8]; //ASCII字符
unsigned char nREV; //制造厂内部软件标识符,自由赋值
}MASDU5;//标识报文nTYP=M_IRC_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned short nFAN; //故障序号
unsigned char nTIME[7]; //七个八位位组二进制时间
}MASDU6;//时间同步报文nTYP=M_SYN_TA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nSCN; //扫描序号
}MASDU8;//总查询总召唤终止报文nTYP=M_TGI_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned short nMEA1; //A相电流Il1
unsigned short nMEA2; //B相电流Il2
unsigned short nMEA3; //C相电流Il3
unsigned short nMEA4; //A相电压Ul1e
unsigned short nMEA5; //B相电压Ul2e
unsigned short nMEA6; //C相电压Ul3e
unsigned short nMEA7; //有功功率P
unsigned short nMEA8; //无功功率Q
unsigned short nMEA9; //频率f
}MASDU9;//被测值II报文nTYP=M_MEII_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nRII; //返回标识符
unsigned char nNGD; //通用分类数据集数目
unsigned char* nDATASET;//数据集
//GEN_DATASET nDATASET[]; 数据集
}MASDU10;//通用分类数据报文nTYP=M_GD_N(T)A_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nRII; //返回标识符
unsigned char nGIN; //通用分类标识序号
unsigned short nNDE; //描述元素的数目
unsigned char* nDEL; //描述元素
//GEN_DEL nDEL; //描述元素
}MASDU11;//通用分类标识报文nTYP=M_GI_N(T)A_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号未用其值应为0
unsigned char* nDATASET;//数据集
//DIS_DATASET nDATASET[]; //数据集
}MASDU23;//被记录扰动表报文nTYP=M_LRD_TA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号,未用
unsigned char nRES; //保留值,未用
unsigned char nTOV; //扰动值的类型
unsigned short nFAN; //故障序号
unsigned short nNOF; //电网故障序号
unsigned char nNOC; //通道数目
unsigned short nNOE; //一个通道信息元素的数目
unsigned short nINT; //信息元素间的间隔
unsigned char nTIME[4]; //四个八位位组二进制时间
}MASDU26;//扰动数据传输准备就绪报文nTYP=M_RTD_TA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号,未用
unsigned char nRES; //保留值,未用
unsigned char nTOV; //扰动值类型
unsigned short nFAN; //故障序号
unsigned char nACC; //实际通道号
u_32 nRPV; //一次额定值
u_32 nRSV; //二次额定值
u_32 nRFA; //参比因子
}MASDU27;//被记录的通道传输就序报文nTYP=M_RTC_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号,未用
unsigned char nRES1; //保留值1未用
unsigned char nRES2; //保留值2未用
unsigned char nRES3; //保留值3未用
unsigned short nFAN; //故障序号
}MASDU28;//带标志的状态变位的传输准备就绪报文nTYP=M_RTT_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号,未用
unsigned short nFAN; //故障序号
unsigned char nNOT; //带标志的状态位的数目
unsigned short nTAP; //标志的位置
2 years ago
struct{
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nDPI; //双点信息
} nSTATUS; //状态变位
}MASDU29;//带标志的状态变位传输报文nTYP=M_TOT_TA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号,未用
unsigned char nRES; //保留值,未用
unsigned char nTOV; //扰动值类型
unsigned short nFAN; //故障序号
unsigned char nACC; //实际通道序号
unsigned short nNDV; //每个应用服务数据单元有关扰动值的数目
unsigned short nNFE; //每个应用服务数据单元的第一个信息元素的序号
unsigned short* nSDV; //单个扰动值
}MASDU30;//传输扰动值报文nTYP=M_TOV_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号,未用
unsigned char nTOO; //命令类型
unsigned char nTOV; //扰动值类型
unsigned short nFAN; //故障序号
unsigned char nACC; //实际通道
}MASDU31;//传输结束报文nTYP=M_EOT_TA_3
//控制方向上的应用服务数据单元结构
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nTIME[7]; //七个八位位组二进制时间
}CASDU6;//时间同步报文nTYP=C_SYN_TA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nSCN; //扫描序号
}CASDU7;//总查询总召唤启动报文nTYP=C_IGI_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nRII; //返回信息标识符
unsigned char nNGD; //通用分类数据数目
unsigned char* nDATASET; //通用分类数据集
//GEN_DATASET nDATASET[]; //通用分类数据集
}CASDU10;//通用分类数据报文nTYP=C_GD_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nDCO; //双命令
unsigned char nRII; //返回信息标识符
}CASDU20;//一般命令报文nTYP=C_GRC_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nRII; //返回信息标识符
unsigned char nNOG; //通用分类标识数目
GEN_DATAGROUP* nDATAGROUP; //数据集
}CASDU21;//通用分类命令报文nTYP=C_GC_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号,未用
unsigned char nTOO; //命令类型
unsigned char nTOV; //扰动值的类型
unsigned short nFAN; //故障序号
unsigned char nACC; //实际通道序号
}CASDU24;//扰动数据传输的命令报文nTYP=C_SYN_TA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号,未用
unsigned char nTOO; //命令类型
unsigned char nTOV; //扰动值的类型
unsigned short nFAN; //故障序号
unsigned char nACC; //实际通道号
}CASDU25;//扰动数据传输的认可报文nTYP=C_ADT_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nQCC; //电能脉冲计数量召唤命令的限定词
unsigned char nRII; //返回信息标识符
}CASDU88;//电能脉冲计数量的召唤命令nTYP=C_CI_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nDCC; //控制断路器
unsigned char nRII; //返回信息标识符
}CASDU64;//控制断路器命令nTYP=C_DC_NA_3 / C_EXDC_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nRCC; //升降命令
unsigned char nRII; //返回信息标识符
}CASDU65;//控制断路器命令nTYP=C_RC_NA_3 / C_EXRC_NA_3
2 years ago
typedef struct
{
unsigned char nTYP; //类型标识
unsigned char nVSQ; //可变结构限定词
unsigned char nCOT; //传送原因
unsigned char nADDR; //应用服务数据单元公共地址
unsigned char nFUN; //功能类型
unsigned char nINF; //信息序号
unsigned char nCCC; //控制命令
unsigned char nRII; //返回信息标识符
}CASDU67;//控制断路器命令nTYP=C_DC_NA_3 / C_EXDC_NA_3
/*链路层传输帧格式结构*/
//控制方向
2 years ago
typedef struct
{
unsigned char nSTART1;//启动字符=68H
unsigned char nLEN1;//帧长=控制域+地址域+用户数据区
unsigned char nLEN2;//帧长=控制域+地址域+用户数据区
unsigned char nSTART2;//启动字符=68H
unsigned char nCONTROL;//控制域
unsigned char nADDR;//地址域
}CLPDU_VARR;//控制方向上的链路规约数据单元结构,可变帧长
2 years ago
typedef struct{
unsigned char nSTART;//启动字符=10H
unsigned char nCONTROL;//控制域
unsigned char nADDR;//地址域
unsigned char nCS;//帧效验和
unsigned char nEnd;//结束字符=16H
}CLPDU_FIX;//控制方向上的链路规约数据单元结构,固定帧长
2 years ago
typedef struct
{
/*!
\brief
2 years ago
\note
=TRUE
=FALSE
,
2 years ago
*/
BOOL m_bInitdata;
/*!
\brief
2 years ago
\note
=TRUE ,
=FALSE
2 years ago
*/
BOOL m_bAllQueryOk;
/*!
\brief
2 years ago
*/
u_32 m_u32CallCnt;
/*!
\brief
2 years ago
*/
u_char m_u8RII;
/*!
\brief
2 years ago
*/
BUBAN103DISTURBANCEDEF m_sDisturbanceParam;
/*!
\brief
2 years ago
*/
char m_chArrayTmpFileName[FILENAME_LEN];
/*!
\brief
2 years ago
*/
DEVPARAMDEF m_sDevParam;
}DEVDEF;
typedef struct tagPROVDEVDEF
{
/*!
\brief
2 years ago
*/
//PROVDEVPARAMDEF m_sDevParam;
/*!
\brief (=TRUE)
2 years ago
*/
BOOL m_bProvQuery;
i_32 m_iQueryPntNo;
/*!
\brief
2 years ago
*/
i_32 m_iProvQueryStepWithASDU;
/*!
\brief Asdu5
2 years ago
*/
i_32 m_iProvAsdu5Cause;
/*!
\brief
2 years ago
*/
i_32 m_iRealCommid;
/*!
\brief ()
2 years ago
*/
i_32 m_iProvAddr;
/*!
\brief SOE
2 years ago
\note
()
2 years ago
*/
DEVPROVSOE m_sProvSoe;
/*!
\var PROVDEVDEF::m_sProvGroupParam
\brief
2 years ago
\note
2 years ago
*/
PROV_ALLITEMOFGROUPPARAM m_sProvGroupParam;
i_32 m_iStatusStn;
i_32 m_iStatusPnt;
DBORIENTATION m_sYxInfo;
DBORIENTATION m_sYcInfo;
DBORIENTATION m_sYmInfo;
i_32 m_iAsdu10Num;
SINGLELIST m_sBaoHuData;
}PROVDEVDEF;
#define MAX_PROV_DEVICE_NUM 64 // 转发保护装置最大数量
2 years ago
// wen 2005.10.08 修改控制字结构
2 years ago
typedef struct tagBUBAN103LINKCTRL
{
/*!
\brief
2 years ago
\note
=1 ok
=0 no
*/
BOOL m_bLinkOk;
/*!
\brief
2 years ago
*/
u_32 m_u32LinkOkCnt;
/*!
\brief
2 years ago
*/
u_char m_u8CtlByte;
}BUBAN103LINKCTRL, *pBUBAN103LINKCTRL;
// wen 2003.10.27 增加全局参数定义
2 years ago
typedef struct tagBUBAN103LINKDEF
{
/*!
\var BUBAN103LINKDEF::m_szLinkName
\brief
2 years ago
\note
[ASCII64]\n
2 years ago
*/
char m_szLinkName[66];
/*!
\brief
2 years ago
\note
=FALSEOK
2 years ago
*/
BOOL m_bRstLinkOk;
/*!
\brief
2 years ago
\note
2 years ago
*/
BOOL m_bGotoNext;
/*!
\brief
2 years ago
\note
=1 ok
=0 no
*/
BOOL *m_pbLinkOk;
/*!
\brief
2 years ago
*/
u_32 *m_pu32LinkOkCnt;
/*!
\brief
2 years ago
*/
u_char *m_pu8CtlByte;
// wen 2005.10.08 将以上3个动态分配成员指针修改为结构统一分配
2 years ago
//BUBAN103LINKCTRL *m_pLinkCtrl;
/*!
\brief
2 years ago
*/
u_32 m_u32TimeOutConst;
/*!
\brief
2 years ago
*/
short m_shCurCmdIdx;
/*!
\brief
2 years ago
*/
BUBAN103CMDDEF m_sArrayCmdTime[BUBAN103_TIMER_CMD_NUM];
/*!
2 years ago
*/
i_32 m_iDevNum;
/*!
2 years ago
*/
i_32 m_iDevIdx;
/*!
2 years ago
*/
i_32 m_iQueryNum_CLASS1_Const;
i_32 m_iQueryNum_CLASS1_Count;
/*!
2 years ago
*/
i_32 m_iQueryedAddr_CLASS1;
/*!
\var BUBAN103LINKDEF::m_iProvAddrOffset
\brief
2 years ago
\note
,线
2 years ago
\note
[]\n
2 years ago
*/
i_32 m_iProvAddrOffset;
/*!
\var BUBAN103LINKDEF::m_iInputPort
\brief
2 years ago
\note
2 years ago
\note
[]\n
2 years ago
\note
0
2 years ago
*/
i_32 m_iInputPort;
/*!
\var BUBAN103LINKDEF::m_chArrayTempletFileName[]
\brief
2 years ago
\note
[ASCII256]\n
2 years ago
*/
char m_chArrayTempletFileName[FILENAME_LEN];
// wen 2004.01.15 增加链路地址以适用于ASDU与链路地址不同的情况
2 years ago
/*!
\var BUBAN103LINKDEF::m_uchLinkAddr
\brief
2 years ago
\note
103
2 years ago
\note
[]\n
2 years ago
*/
BYTE m_uchLinkAddr;
/*!
\var BUBAN103LINKDEF::m_iMaskNoMatchString
\brief
2 years ago
\note
[0---255]\n
2 years ago
*/
i_32 m_iMaskNoMatchString;
// wen 2004.07.26 增加保护装置的状态处理
2 years ago
/*!
\var BUBAN103LINKDEF::m_iInputStationOfDevStatus
\brief
2 years ago
\note
[ >= 0 ]\n
2 years ago
*/
i_32 m_iInputStationOfDevStatus;
/*!
\var BUBAN103LINKDEF::m_iInputStartPntOfDevStatus
\brief
2 years ago
\note
[ >= 0 ]\n
2 years ago
*/
i_32 m_iInputStartPntOfDevStatus;
/*!
\var BUBAN103LINKDEF::m_iJudgeAsduNo
\brief asdu
2 years ago
\note
[0---255]\n
2 years ago
*/
i_32 m_iJudgeAsduNo;
/*!
\var BUBAN103LINKDEF::m_iDisTransDataProcess
\brief
2 years ago
\note
[0---255]\n
2 years ago
*/
i_32 m_iDisTransDataProcess;
/*!
\var BUBAN103LINKDEF::m_psDev
\brief
\note =m_iDevNum
2 years ago
*/
DEVDEF *m_psDev;
// 以下为转发时用参数
2 years ago
/*!
\var BUBAN103LINKDEF::m_psProvDev
\brief
\note =m_iDevNum
2 years ago
*/
PROVDEVDEF *m_psProvDev;
/*!
\var BUBAN103LINKDEF::m_sBaoHuCmdParam
\brief
\note
2 years ago
*/
BAOHUPROVPARAM m_sBaoHuCmdParam;
} BUBAN103LINKDEF, *pBUBAN103LINKDEF;
typedef struct tagBUBAN103PORTPARAM
{
/*!
\var BUBAN103PORTDEF::m_iLinkNum
\brief
2 years ago
*/
i_32 m_iLinkNum;
/*!
\var BUBAN103PORTDEF::m_achRecvBuf
\brief
2 years ago
\note
300 bytes\n
2 years ago
*/
char m_achRecvBuf[300];
/*!
\var BUBAN103PORTDEF::m_iRecvLen
\brief
2 years ago
*/
int m_iRecvLen;
/*!
\var BUBAN103PORTDEF::m_iLinkIdx
\brief
2 years ago
*/
int m_iLinkIdx;
/*!
\var BUBAN103PORTDEF::m_iPortOk
\brief ok
2 years ago
*/
int m_iPortOk;
/*!
\var BUBAN103PORTDEF::m_bSendChangeDi
\brief
2 years ago
*/
BOOL m_bSendChangeDi;
/*!
\var BUBAN103PORTDEF::m_psLink
\brief
\note =m_iLinkNum
2 years ago
*/
BUBAN103LINKDEF *m_psLink;
/*!
\brief
2 years ago
*/
SIO_PARAM_BAOHU_DEF *m_psBaoHu;
}BUBAN103PORTPARAM, *pBUBAN103PORTPARAM;
typedef struct tagVALUEDEF
{
union VALUE
{
/*!
\var VALUE::m_uValue
\brief
2 years ago
*/
u_32 m_uValue;
/*!
\var VALUE::m_iValue
\brief
2 years ago
*/
i_32 m_iValue;
/*!
\var VALUE::m_fValue
\brief
2 years ago
*/
double m_fValue;
/*!
\var VALUE::m_dwValue
\brief
2 years ago
*/
DWORD m_dwValue;
}m_unValue;
/*!
\var VALUEDEF::m_szValue
\brief
2 years ago
*/
char m_szValue[MAXSTRINGLEN];
/*!
\var VALUEDEF::m_iDataType
\brief
\note \
=0, \
=1, \
=2, \
=3, \
=4, \
=5, \
=6,
2 years ago
*/
i_32 m_iDataType;
/*!
\var VALUEDEF::m_iDataNum
\brief
\note
2 years ago
*/
i_32 m_iDataNum;
}VALUEDEF, *pVALUEDEF;
/////////////////////////以下为通用函数接口///////////////////////////
2 years ago
/*!
\brief
\param commid --
2 years ago
\note
0 -- MaxSerialPortNum + MaxNetPortNum -1\n
2 years ago
*/
void Buban103ReadConfig(int commid); // 初始化处理
2 years ago
/*!
\brief
\param commid --
2 years ago
\note
0 -- MaxSerialPortNum + MaxNetPortNum -1\n
\param buf --
\param len --
2 years ago
*/
void Buban103RecvData(int commid, u_char *buf, int len);// 规约读数据处理
2 years ago
/*!
\brief
\param commid --
2 years ago
\note
0 -- MaxSerialPortNum + MaxNetPortNum -1\n
2 years ago
*/
void Buban103Timer(int commid); // 定时器处理
2 years ago
/*!
\brief
\param commid --
2 years ago
\note
0 -- MaxSerialPortNum + MaxNetPortNum -1\n
\param buf --
\param len --
2 years ago
*/
void Buban103YkYtProcess(int commid, u_char *buf, int len); // 遥控遥调处理
2 years ago
/*!
\brief
\param commid --
2 years ago
\note
0 -- MaxSerialPortNum + MaxNetPortNum -1\n
2 years ago
*/
void Buban103SendSystemTime(int commid); // 系统对时
2 years ago
/*!
\brief 退
\param commid --
2 years ago
\note
0 -- MaxSerialPortNum + MaxNetPortNum -1\n
2 years ago
*/
void Buban103Exit(int commid); // 规约退出
2 years ago
/*!
\brief
\param commid --
\param rtumsg --
2 years ago
\note
0 -- MaxSerialPortNum + MaxNetPortNum -1\n
2 years ago
*/
void Buban103BaoHuCmdProcess(int commid, RTUMSG *rtumsg, BOOL bUpData);
/*!
\brief
\param commid --
\param iProvAddr --
\param ppBaoHuDB --
\retval --
2 years ago
*/
int Buban103GetBaohuDataBase(int commid, int iProvAddr, GROUPDEF **ppBaoHuDB);
/////////////////////////通用函数接口结束///////////////////////////////
2 years ago
/////////////////////////以下为通用函数支持接口/////////////////////////
2 years ago
void Buban103ProvMakeYkYtCommand(int commid, u_char *buf, int len);
/////////////////////////通用函数支持接口结束///////////////////////////
2 years ago
///////////////////////////以下为配置函数接口///////////////////////////
2 years ago
BOOL InitBuban103InfoFromTempletFile(int commid,\
char *ptrTemplate,\
BUBAN103LINKDEF *psLink);
BOOL InitBuban103InfoFromTempletFileEx(int commid,\
char *ptrTemplate,\
BUBAN103LINKDEF *psLink,\
BOOL bMaster);
BOOL GetParamItem(char *pSour, char **ppDest);
BOOL GetParamItemEx(char *pSour, char **ppDest, const char *pSplit);
BOOL GetLinkParamFromTemplateFile(int commid, HDSFILE hFile,\
BUBAN103LINKDEF *psLink);
BOOL GetDevParamFromTemplateFile(int commid, HDSFILE hFile,\
BUBAN103LINKDEF *psLink);
BOOL GetProvDevParamFromTemplateFile(int commid, HDSFILE hFile,\
BUBAN103LINKDEF *psLink);
BOOL GetInfoData(char *pInfo, int iPntNo, DBORIENTATION *psDB);
BOOL GetSyncTimeInfoData(char *pInfo, DBINFO *psSyncInfo);
BOOL GetGroupInfoData(char *pInfo, int iPntNo, DEVPARAMDEF *psDevParam);
void SetProtectDevStatus(BUBAN103LINKDEF *psLinkParam, int iDevNo, BOOL bStatus);
void InitDevParam(DEVPARAMDEF *psDevParam);
BOOL InitBuban103InfoFromDat(int commid, BUBAN103LINKDEF *psLink);
void InitGroupParam(GROUPDEF *psGroupParam, char *szDatFileName);
void InitBuban103CmdBuf(int commid, BUBAN103PORTPARAM *psPortParam);
void InitBuban103LinkCmdBuf(BUBAN103LINKDEF *psLinkParam);
void InitBuban103DevCmdBuf(BUBAN103LINKDEF *psLinkParam, int iDevNo);
void ReCalcDevPntStart(int commid, BUBAN103PORTPARAM *psPortParam);
/////////////////////////////配置函数接口结束///////////////////////////
2 years ago
/////////////////////以下为POLLING规约常规函数接口//////////////////////
2 years ago
void Buban103FindNextCmd(int commid);
BOOL Buban103FindNextCmdEx(int commid);
void Buban103CalcNextDev(int commid, BOOL bFlag);
void Buban103SendCmdFormPollCmdBuf(int commid);
//////////////////////POLLING规约常规函数接口结束///////////////////////
2 years ago
/////////////////////////buban103公共函数接口///////////////////////////
2 years ago
BOOL IsDevLinkOk(BUBAN103LINKDEF *psLinkParam, int iDevNo);
void ClearLinkCnt(BUBAN103LINKDEF *psLinkParam, int iDevNo);
void SetDevLinkOk(BUBAN103LINKDEF *psLinkParam, int iDevNo, BOOL bFlagOk);
BYTE GetLinkAddr(BUBAN103LINKDEF *psLinkParam, int iDevNo);
BYTE *GetLinkCtrl(BUBAN103LINKDEF *psLinkParam, int iDevNo);
BOOL IsLinkTimeOut(BUBAN103LINKDEF *psLinkParam, int iDevNo);
BYTE CalBuban103Lpc(BYTE *msg, u_32 len);
BOOL Buban103Check(char *pData, int iDataLen);
BOOL FindProtectDev(BUBAN103PORTPARAM *psPortParam, DEVADDRPARAM *psAddrParam, BOOL bJudgeLinkOnly);
BOOL FindProtectDevFromProvAddr(BUBAN103PORTPARAM *psPortParam, DEVADDRPARAM *psAddrParam, int iProvAddr);
BOOL FindProtectDevFromPntNo(BUBAN103PORTPARAM *psPortParam, DEVADDRPARAM *psAddrParam, DBINFO *psDBInfo, int iPntNo, int itype);
BOOL FindProtectDevFromYkYtPnt(BUBAN103PORTPARAM *psPortParam, DEVADDRPARAM *psAddrParam, int iYkYtPnt);
int FindYkPointFromDev(DBORIENTATION *psYkYtDBUnit, BYTE u8Fun, BYTE u8Inf);
BOOL GetSpecialPtr(int commid, DEVADDRPARAM *psDevAddrParam,\
BUBAN103PORTPARAM **ppsPortParam,\
BUBAN103LINKDEF **ppsLinkParam, DEVDEF **ppsDevParam);
BOOL GetSpecialProvPtr(int commid, DEVADDRPARAM *psDevAddrParam,\
BUBAN103PORTPARAM **ppsPortParam,\
BUBAN103LINKDEF **ppsLinkParam, PROVDEVDEF **ppsProvDevParam);
BOOL GetPortParamPtr(int commid, BUBAN103PORTPARAM **ppsPortParam);
BOOL GetOneValueOfASDU10(BYTE *pu8SourData, VALUEDEF *psValue, BYTE u8DataType, BYTE u8DataLen);
int FindAiGroupIdx(DBORIENTATION *pAiDB, int iMaxNum, BYTE u8Asdu, BYTE u8Fun, BYTE u8Inf);
/////////////////////////buban103公共函数接口结束///////////////////////
2 years ago
//===========================以下为指令生成函数=======================
//生成 Buban103 命令?
2 years ago
void MakeBuban103LinkCommand(u_32 commid, BYTE bLinkAddr, u_char link_cmd_idx, u_char* msg, u_32 len, u_32 cmdtype);
//生成时间同步命令
2 years ago
void MakeTimeSyn_CAsdu6(u_32 commid, CMDPARAM *psCmdParam);
//生成总查询启动命令
2 years ago
void MakeAllQuery_CAsdu7(u_32 commid, CMDPARAM *psCmdParam);
//生成通用分类数据命令
2 years ago
void MakeGenIdentData_CAsdu10(u_32 commid, CMDPARAM *psCmdParam, u_char *dataset, u_char ngd);
void MakeGenIdentData_CAsdu10Ex(u_32 commid, CMDPARAM *psCmdParam, u_char *dataset, u_char ngd, u_32 cmdtype);
//生成一般命令
2 years ago
void MakeGenCommand_CAsdu20(u_32 commid, CMDPARAM *psCmdParam, bool cmd);
//生成通用分类命令
2 years ago
void MakeGenIdentCommand_CAsdu21(u_32 commid, CMDPARAM *psCmdParam, GEN_DATAGROUP* datagroup, u_char nog);
//生成扰动数据传输命令
2 years ago
void MakeDisTrans_CAsdu24(u_32 commid, CMDPARAM *psCmdParam, u_char too, u_char tov, u_short fan, u_char acc);
//生成扰动数据传输的认可命令
2 years ago
void MakeDisTrans_CAsdu25(u_32 commid, CMDPARAM *psCmdParam, u_char too, u_char tov, u_short fan, u_char acc);
//生成脉冲电度的查询命令
2 years ago
void MakeQCC_CAsdu88(u_32 commid, CMDPARAM *psCmdParam);
//Buban103 生成一类数据问询指令
2 years ago
void MakeBuban103_PL1_NA_3_Cmd(int commid, DEVADDRPARAM *psAddrParam);
/*!
\brief 103
\param commid --
\param iBuIdx -- ()
\param CmdIdx --
2 years ago
\sa
\ref 0
\ref 1
\ref 2
2 years ago
\retval
2 years ago
\note
\n
2 years ago
*/
void MakeBuban103PollingCmd(int commid, BUBAN103LINKDEF *psLinkParam, i_32 CmdIdx);
//===========================指令生成函数结束=========================
2 years ago
///////////////////////以下为规约处理函数接口///////////////////////////
2 years ago
void Buban103ProcessData(int commid, BUBAN103PORTPARAM *psPortParam, BOOL bProcess);
void Buban103shortprocess(RTUMSG *rtumsg);
void Buban103longprocess(RTUMSG *rtumsg);
// wen 2003.10.27 增加函数
// 其他报文数据处理开始
// 带时标的报文
2 years ago
void Buban103TMprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 带时标的报文
2 years ago
void Buban103TMprocessOfSoe(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 带时标的报文
2 years ago
//void Buban103TMprocessOfPEvent(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 带相对时间的时标报文
2 years ago
void Buban103TMRprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 带相对时间的时标报文
2 years ago
void Buban103TMRprocessOfSoe(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 带相对时间的时标报文
2 years ago
//void Buban103TMRprocessOfPEvent(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 被测值I报文
2 years ago
void Buban103MEIprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 带相对时间的有时标的被测值报文
2 years ago
void Buban103TMEprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 标识报文
2 years ago
void Buban103IRCprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 被测值II报文
2 years ago
void Buban103MEIINAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 被测值III报文
2 years ago
void Buban103MEIIITAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 被测值IV报文
2 years ago
void Buban103MEIVTAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 被测值V报文
2 years ago
void Buban103MEVTAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 被测值VI报文
2 years ago
void Buban103MEVITAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 被测值VII报文
2 years ago
void Buban103MEVIINAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 步位置信息报文
2 years ago
void Buban103STNAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 单点信息状态帧
2 years ago
void Buban103SPNAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 带时标单点信息状态帧
2 years ago
void Buban103SPTAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 带时标单点信息状态帧
2 years ago
void Buban103SPTAprocessOfSoe(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 带时标单点信息状态帧
2 years ago
//void Buban103SPTAprocessOfPEvent(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 双点信息状态帧
2 years ago
void Buban103DPNAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 带时标双点信息状态帧
2 years ago
void Buban103DPTAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 带时标双点信息状态帧
2 years ago
void Buban103DPTAprocessOfSoe(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 带时标双点信息状态帧
2 years ago
//void Buban103DPTAprocessOfPEvent(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 单点状态和状态变化信息状态帧
2 years ago
void Buban103SSNAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 带时标单点状态和状态变化信息状态帧
2 years ago
void Buban103SSTAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 双点状态和状态变化信息状态帧
2 years ago
void Buban103DSNAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 带时标双点状态和状态变化信息状态帧
2 years ago
void Buban103DSTAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 水位
2 years ago
void Buban103WLTAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 电能脉冲计数值
2 years ago
void Buban103ITNAprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 通用分类数据报文
2 years ago
void Buban103GDprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 遥控命令应答
2 years ago
void Buban103YkAck(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 遥调命令应答
2 years ago
void Buban103YtAck(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param rtumsg --
\param psDevAddrParam --
2 years ago
\note
0 -- MAX_POLL_ADDRESS_NUM-1\n
\param iGroupIdx --
2 years ago
\note
0 -- GROUPNUM-1\n
2 years ago
*/
void Buban103GDprocessWithAI(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam, i_32 iGroupIdx);
/*!
\brief
\param rtumsg --
\param iBuIdx -- ()
2 years ago
\note
0 -- MAX_POLL_ADDRESS_NUM-1\n
\param iGroupIdx --
2 years ago
\note
0 -- GROUPNUM-1\n
2 years ago
*/
void Buban103GDprocessWithDI(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam, i_32 iGroupIdx);
/*!
\brief
\param rtumsg --
\param iBuIdx -- ()
2 years ago
\note
0 -- MAX_POLL_ADDRESS_NUM-1\n
\param iGroupIdx --
2 years ago
\note
0 -- GROUPNUM-1\n
2 years ago
*/
void Buban103GDprocessWithPI(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam, i_32 iGroupIdx);
/*!
\brief
\param rtumsg --
\param iBuIdx -- ()
2 years ago
\note
0 -- MAX_POLL_ADDRESS_NUM-1\n
\param iGroupIdx --
2 years ago
\note
0 -- GROUPNUM-1\n
2 years ago
*/
void Buban103GDprocessWithPAI(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam, i_32 iGroupIdx);
/*!
\brief
\param rtumsg --
\param iBuIdx -- ()
2 years ago
\note
0 -- MAX_POLL_ADDRESS_NUM-1\n
\param iGroupIdx --
2 years ago
\note
0 -- GROUPNUM-1\n
2 years ago
*/
void Buban103GDprocessWithPDI(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam, i_32 iGroupIdx);
/*!
\brief
\param rtumsg --
\param iBuIdx -- ()
2 years ago
\note
0 -- MAX_POLL_ADDRESS_NUM-1\n
\param iGroupIdx --
2 years ago
\note
0 -- GROUPNUM-1\n
2 years ago
*/
void Buban103GDprocessWithPFIX(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam, i_32 iGroupIdx);
//void Buban103GDprocessWithPFIXNew(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam, i_32 iGroupIdx);
//void Buban103GDprocessWithPFIXNewEx(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam, i_32 iGroupIdx);
/*!
\brief
\param rtumsg --
\param iBuIdx -- ()
2 years ago
\note
0 -- MAX_POLL_ADDRESS_NUM-1\n
\param iGroupIdx --
2 years ago
\note
0 -- GROUPNUM-1\n
2 years ago
*/
void Buban103GDprocessWithPEVENT(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam, i_32 iGroupIdx);
// 通用分类标识报文
2 years ago
void Buban103GIprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 对时程序
2 years ago
void Buban103SynTime(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 电度数据处理(SIEMENS 公司保护专用)
2 years ago
void Buban103EXPIprocess(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
// 其他报文数据处理结束
2 years ago
// 扰动数据处理开始
// 扰动数据表处理
2 years ago
void Buban103LRDprocess(RTUMSG *rtumsg);
// 扰动数据传输准备就绪
2 years ago
void Buban103RTDprocess(RTUMSG *rtumsg);
// 带标志的状态变位传输准备就绪
2 years ago
void Buban103RTTprocess(RTUMSG *rtumsg);
// 带标志的状态变位传输
2 years ago
void Buban103TOTprocess(RTUMSG *rtumsg);
// 被记录的通道传输准备就绪
2 years ago
void Buban103RTCprocess(RTUMSG *rtumsg);
// 传送扰动值
2 years ago
void Buban103TOVprocess(RTUMSG *rtumsg);
// 带标志的状态变位、通道、扰动数据传输结束
2 years ago
void Buban103EOTprocess(RTUMSG *rtumsg);
// 扰动数据处理结束
2 years ago
// 写通道扰动数据到文件中
2 years ago
BOOL Buban103WriteACCDatatoFile(RTUMSG *rtumsg);
// 读录波数据文件头
2 years ago
void Buban103GetFileHead(char *ptrDataHead, size_t *piNOF, size_t *piNOC, size_t *piNOE, size_t *piINT);
// 读录波数据记录时间
2 years ago
//void Buban103GetTime(char *ptrDataHead, SYSTEMTIME *ptrtm);
// 读录波数据模拟量头
2 years ago
void Buban103ProcessAiHead(char *ptrDataHead, DISTURBANCEAIDATA *pAiData);
// 转换临时文件为可用文件
2 years ago
void Buban103tmpFileChangetodatFile(char *sztmpFileName);
// 生成CFG文件
2 years ago
//void Buban103MakeCFGFile(int iStationNo, pDISTURBANCEDIDATA ptrDi, pDISTURBANCEAIDATA ptrAi, FILE *fp, char *szInfFile, SYSTEMTIME *tm);
// 生成DAT文件
2 years ago
void Buban103MakeDATFile(pDISTURBANCEDIDATA ptrDi, pDISTURBANCEAIDATA ptrAi, FILE *fp);
// 转发函数处理
2 years ago
/*!
\brief SOE
\param commid --
\param selidx --
\param iBuIdx -- ()
\param pSoeMsg -- SOE
\retval SOE()
2 years ago
\note
\n
2 years ago
*/
BOOL ProvInsertSoe(u_32 commid, DEVADDRPARAM *psDevAddrParam, SOE_DEF *pSoeMsg);
/*!
\brief SOE
\param commid --
\param selidx --
\param iBuIdx -- ()
\param pSoeMsg -- SOE
\retval SOE
2 years ago
\note
\n
2 years ago
*/
BOOL ProvGetAndDelSoe(u_32 commid, DEVADDRPARAM *psDevAddrParam, SOE_DEF *pSoeMsg);
/*!
\brief XSOE
\param commid --
\param psDevAddrParam --
\param iNo -- isoe
2 years ago
\note
iNo=01
\param pSoeMsg -- SOE
\retval SOE
2 years ago
\note
\n
2 years ago
*/
BOOL ProvGetNoXSoe(u_32 commid, DEVADDRPARAM *psDevAddrParam, int iNo, SOE_DEF *pSoeMsg);
/*!
\brief
\param commid --
\param iBuIdx -- ()
\param bCheckDiChange --
\retval
2 years ago
\note
\n
2 years ago
*/
BOOL ProvHaveClassOne(u_32 commid, DEVADDRPARAM *psDevAddrParam, BOOL bCheckDiChange);
/*!
\brief
\param commid --
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvInit(u_32 commid);
/*!
\brief
\param commid --
\param addr --
\param cmdidx --
\param bACD --
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvMakeLinkCommand(u_32 commid, u_char addr, u_char cmdidx, BOOL bACD);
/*!
\brief
\param commid --
\param addr --
\param cmdidx --
\param bACD --
\param bClearRecvBuf --
\param cmdtype--
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvMakeLinkCommandEx(u_32 commid, u_char addr, u_char cmdidx, BOOL bACD, BOOL bClearRecvBuf, u_32 cmdtype);
/*!
\brief
\param commid --
\param addr --
\param cmdidx --
\param bACD --
\param bCause --
\param cmdtype--
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvMakeVarCommand(u_32 commid, u_char linkaddr, u_char addr, u_char cmdidx, BOOL bACD, BYTE bCause, u_32 cmdtype);
/*!
\brief
\param portidx --
\param rtumsg --
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvRtuProtocolDataProcess(int commid, RTUMSG *rtumsg);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvSendCmdToPort(u_32 commid, RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param commid --
\param rtumsg --
\retval
2 years ago
\note
\n
2 years ago
*/
void Provshortprocess(u_32 commid, RTUMSG *rtumsg);
/*!
\brief
\param commid --
\param addr --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvPL1process(u_32 commid, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param commid --
\param addr --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvPL2process(u_32 commid, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param commid --
\param rtumsg --
\retval
2 years ago
\note
\n
2 years ago
*/
void Provlongprocess(u_32 commid, RTUMSG *rtumsg);
/*!
\brief
\param commid --
\param rtumsg --
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvSYNprocess(u_32 commid, RTUMSG *rtumsg);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvTGIprocess(u_32 commid, RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvGDprocess(u_32 commid, RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvGRCprocess(u_32 commid, RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvGCprocess(u_32 commid, RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvODTprocess(u_32 commid, RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvADTprocess(u_32 commid, RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvDCprocess(u_32 commid, RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvRCprocess(u_32 commid, RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvSEprocess(u_32 commid, RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvCCprocess(u_32 commid, RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
void ProvCIprocess(u_32 commid, RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
BOOL ProvMakeTitleOfGroups(u_32 commid, RTUMSG *rtumsg, PROVDEVDEF *pProvDevParam, GROUPDEF *pBaoHuDB, int iNum);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\param bContinue-
\retval
2 years ago
\note
\n
2 years ago
*/
BOOL ProvMakeAttrOfAllItemInGroup(u_32 commid, RTUMSG *rtumsg,\
PROVDEVDEF *pProvDevParam,\
GROUPDEF *pBaoHuDB, int iNum);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
BOOL ProvMakeDirOfItem(u_32 commid, RTUMSG *rtumsg, PROVDEVDEF *pProvDevParam, GROUPDEF *pBaoHuDB, int iNum);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
BOOL ProvMakeAttrOfItem(u_32 commid, RTUMSG *rtumsg, PROVDEVDEF *pProvDevParam, GROUPDEF *pBaoHuDB, int iNum);
/*!
\brief
\param commid --
\param rtumsg --
\param iBuIdx -- ()
\retval
2 years ago
\note
\n
2 years ago
*/
BOOL ProvSendChangedDi(u_32 commid, DEVADDRPARAM *psDevAddrParam);
/*!
\brief
\param pbDestBuf --
\param uMaxBufLen --
\param bDataFormat --
\param uDataType --
\param uDataLen --
\param pbSourData --
\retval
2 years ago
\note
\n
2 years ago
*/
i_32 PackOneValueIntoPackage(BYTE *pbDestBuf, u_32 uMaxBufLen, BYTE bDataFormat,
u_32 uDataType, u_32 uDataLen, BYTE *pbSourData);
// 部颁103和斯凯达内部规约间的格式转换
2 years ago
void Buban103ScadaCmdchange(int commid, RTUMSG *rtumsg);
void Buban103ScadaDatachange(int commid, RTUMSG *rtumsg);
void Buban103ScadaProtocolExchange(int commid, RTUMSG *rtumsg);
void Buban103GDprocessWithPAIToScada(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam, i_32 iGroupIdx);
void Buban103GDprocessWithPDIToScada(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam, i_32 iGroupIdx);
void Buban103GDprocessWithPFIXToScada(RTUMSG *rtumsg, DEVADDRPARAM *psDevAddrParam, i_32 iGroupIdx);
// 调试信息显示
2 years ago
void Buban103DispConfig(int commid, BUBAN103PORTPARAM *psPortParam);
void Buban103DispMalloc(int commid, int iSize);
/////////////////////////规约处理函数接口结束///////////////////////////
2 years ago
#endif // !defined(_BUBAN103_H_200504221547__INCLUDED_)