asdu

package
v0.0.0-...-517e680 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 6, 2023 License: LGPL-3.0 Imports: 9 Imported by: 0

Documentation

Overview

Package asdu provides the OSI presentation layer.

Index

Constants

View Source
const (
	QCCUnused QCCRequest = iota
	QCCGroup1
	QCCGroup2
	QCCGroup3
	QCCGroup4
	QCCTotal
	// <6..31>: 为标准定义
	// <32..63>: 为特定使用保留
	QCCFrzRead          QCCFreeze = 0x00 // 读(无冻结或复位)
	QCCFrzFreezeNoReset QCCFreeze = 0x40 // 计数量冻结不带复位(被冻结的值为累计量)
	QCCFrzFreezeReset   QCCFreeze = 0x80 // 计数量冻结带复位(被冻结的值为增量信息)
	QCCFrzReset         QCCFreeze = 0xc0 // 计数量复位
)

QCCRequest and QCCFreeze defined

View Source
const (
	ASDUSizeMax = 249
)

ASDUSizeMax asdu max size

View Source
const FBPTestWord uint16 = 0x55aa

FBPTestWord test special value See companion standard 101, subclass 7.2.6.14.

Variables

View Source
var (
	// ParamsNarrow is the smallest configuration.
	ParamsNarrow = &Params{CauseSize: 1, CommonAddrSize: 1, InfoObjAddrSize: 1, InfoObjTimeZone: time.UTC}
	// ParamsWide is the largest configuration.
	ParamsWide = &Params{CauseSize: 2, CommonAddrSize: 2, InfoObjAddrSize: 3, InfoObjTimeZone: time.UTC}
)
View Source
var (
	ErrTypeIdentifier = errors.New("asdu: type identification unknown")
	ErrCauseZero      = errors.New("asdu: cause of transmission 0 is not used")
	ErrCommonAddrZero = errors.New("asdu: common address 0 is not used")

	ErrParam           = errors.New("asdu: system parameter out of range")
	ErrInvalidTimeTag  = errors.New("asdu: invalid time tag")
	ErrOriginAddrFit   = errors.New("asdu: originator address not allowed with cause size 1 system parameter")
	ErrCommonAddrFit   = errors.New("asdu: common address exceeds size system parameter")
	ErrInfoObjAddrFit  = errors.New("asdu: information object address exceeds size system parameter")
	ErrInfoObjIndexFit = errors.New("asdu: information object index not in [1, 127]")
	ErrInroGroupNumFit = errors.New("asdu: interrogation group number exceeds 16")

	ErrLengthOutOfRange = fmt.Errorf("asdu: asdu filed length large than max %d", ASDUSizeMax)
	ErrNotAnyObjInfo    = errors.New("asdu: not any object information")
	ErrTypeIDNotMatch   = errors.New("asdu: type identifier doesn't match call or time tag")

	ErrCmdCause = errors.New("asdu: cause of transmission for command not standard requirement")
)

error defined

Functions

func BitString32

func BitString32(c Connect, isSequence bool, coa CauseOfTransmission, ca CommonAddr, infos ...BitString32Info) error

BitString32 sends a type identification M_BO_NA_1.比特位串 M_ST_NA_1 See companion standard 101, subclass 7.3.1.7 传送原因(coa)用于 监视方向: <2> := 背景扫描 <3> := 突发(自发) <5> := 被请求 <20> := 响应站召唤 <21> := 响应第1组召唤 至 <36> := 响应第16组召唤

func BitString32CP24Time2a

func BitString32CP24Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...BitString32Info) error

BitString32CP24Time2a sends a type identification M_BO_TA_1.带时标CP24Time2a比特位串,只有(SQ = 0)单个信息元素集合 M_ST_TA_1 See companion standard 101, subclass 7.3.1.8 传送原因(coa)用于 监视方向: <3> := 突发(自发) <5> := 被请求

func BitString32CP56Time2a

func BitString32CP56Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...BitString32Info) error

BitString32CP56Time2a sends a type identification M_BO_TB_1.带时标CP56Time2a比特位串,只有(SQ = 0)单个信息元素集合 M_ST_TB_1 See companion standard 101, subclass 7.3.1.25 传送原因(coa)用于 监视方向: <3> := 突发(自发) <5> := 被请求

func BitsString32Cmd

func BitsString32Cmd(c Connect, typeID TypeID, coa CauseOfTransmission, commonAddr CommonAddr,
	cmd BitsString32CommandInfo) error

BitsString32Cmd sends a type C_BO_NA_1 or C_BO_TA_1. 比特串命令,只有单个信息对象(SQ = 0) C_BO_NA_1 See companion standard 101, subclass 7.3.2.7 C_BO_TA_1 See companion standard 101, 传送原因(coa)用于 控制方向: <6> := 激活 <8> := 停止激活 监视方向: <7> := 激活确认 <9> := 停止激活确认 <10> := 激活终止 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func CP16Time2a

func CP16Time2a(msec uint16) []byte

CP16Time2a msec to CP16Time2a 2个八位位组二进制时间 See companion standard 101, subclass 7.2.6.20.

func CP24Time2a

func CP24Time2a(t time.Time, loc *time.Location) []byte

CP24Time2a time to CP56Time2a 3个八位位组二进制时间,建议所有时标采用UTC See companion standard 101, subclass 7.2.6.19.

func CP56Time2a

func CP56Time2a(t time.Time, loc *time.Location) []byte

CP56Time2a time to CP56Time2a

func ClockSynchronizationCmd

func ClockSynchronizationCmd(c Connect, coa CauseOfTransmission, ca CommonAddr, t time.Time) error

ClockSynchronizationCmd send clock sync command C_CS_NA_1,时钟同步命令, 只有单个信息对象(SQ = 0) C_CS_NA_1 See companion standard 101, subclass 7.3.4.4 传送原因(coa)用于 控制方向: <6> := 激活 监视方向: <7> := 激活确认 <10> := 激活终止 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func CounterInterrogationCmd

func CounterInterrogationCmd(c Connect, coa CauseOfTransmission, ca CommonAddr, qcc QualifierCountCall) error

CounterInterrogationCmd send Counter Interrogation command C_CI_NA_1,计数量召唤命令,只有单个信息对象(SQ = 0) C_CI_NA_1 See companion standard 101, subclass 7.3.4.2 传送原因(coa)用于 控制方向: <6> := 激活 监视方向: <7> := 激活确认 <10> := 激活终止 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func DelayAcquireCommand

func DelayAcquireCommand(c Connect, coa CauseOfTransmission, ca CommonAddr, msec uint16) error

DelayAcquireCommand send delay acquire command C_CD_NA_1,延时获得命令, 只有单个信息对象(SQ = 0) C_CD_NA_1 See companion standard 101, subclass 7.3.4.7 传送原因(coa)用于 控制方向: <3> := 突发 <6> := 激活 监视方向: <7> := 激活确认 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func Double

func Double(c Connect, isSequence bool, coa CauseOfTransmission, ca CommonAddr, infos ...DoublePointInfo) error

Double sends a type identification M_DP_NA_1.双点信息 M_DP_NA_1 See companion standard 101,subclass 7.3.1.3 传送原因(coa)用于 监视方向: <2> := 背景扫描 <3> := 突发(自发) <5> := 被请求 <11> := 远方命令引起的返送信息 <12> := 当地命令引起的返送信息 <20> := 响应站召唤 <21> := 响应第1组召唤 至 <36> := 响应第16组召唤

func DoubleCP24Time2a

func DoubleCP24Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...DoublePointInfo) error

DoubleCP24Time2a sends a type identification M_DP_TA_1 .带CP24Time2a双点信息,只有(SQ = 0)单个信息元素集合 M_DP_TA_1 See companion standard 101,subclass 7.3.1.4 传送原因(coa)用于 监视方向: <3> := 突发(自发) <5> := 被请求 <11> := 远方命令引起的返送信息 <12> := 当地命令引起的返送信息

func DoubleCP56Time2a

func DoubleCP56Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...DoublePointInfo) error

DoubleCP56Time2a sends a type identification M_DP_TB_1.带CP56Time2a的双点信息,只有(SQ = 0)单个信息元素集合 M_DP_TB_1 See companion standard 101,subclass 7.3.1.23 传送原因(coa)用于 监视方向: <3> := 突发(自发) <5> := 被请求 <11> := 远方命令引起的返送信息 <12> := 当地命令引起的返送信息

func DoubleCmd

func DoubleCmd(c Connect, typeID TypeID, coa CauseOfTransmission, ca CommonAddr,
	cmd DoubleCommandInfo) error

DoubleCmd sends a type identification C_DC_NA_1 or C_DC_TA_1. 双命令, 只有单个信息对象(SQ = 0) C_DC_NA_1 See companion standard 101, subclass 7.3.2.2 C_DC_TA_1 See companion standard 101, 传送原因(coa)用于 控制方向: <6> := 激活 <8> := 停止激活 监视方向: <7> := 激活确认 <9> := 停止激活确认 <10> := 激活终止 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func EndOfInitialization

func EndOfInitialization(c Connect, coa CauseOfTransmission, ca CommonAddr, ioa InfoObjAddr, coi CauseOfInitial) error

EndOfInitialization send a type identification M_EI_NA_1,初始化结束,只有单个信息对象(SQ = 0) M_EI_NA_1 See companion standard 101,subclass 7.3.3.1 传送原因(coa)用于 监视方向: <4> := 被初始化

func EventOfProtectionEquipmentCP24Time2a

func EventOfProtectionEquipmentCP24Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...EventOfProtectionEquipmentInfo) error

EventOfProtectionEquipmentCP24Time2a sends a type identification M_EP_TA_1. 带时标CP24Time2a继电器保护设备事件 M_EP_TA_1 See companion standard 101, subclass 7.3.1.17 传送原因(coa)用于 监视方向: <3> := 突发(自发)

func EventOfProtectionEquipmentCP56Time2a

func EventOfProtectionEquipmentCP56Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...EventOfProtectionEquipmentInfo) error

EventOfProtectionEquipmentCP56Time2a sends a type identification M_EP_TD_1. 带时标CP24Time2a继电器保护设备事件 M_EP_TD_1 See companion standard 101, subclass 7.3.1.30 传送原因(coa)用于 监视方向: <3> := 突发(自发)

func GetInfoObjSize

func GetInfoObjSize(id TypeID) (int, error)

GetInfoObjSize get the serial octet size of the type identification (TypeID).

func IntegratedTotals

func IntegratedTotals(c Connect, isSequence bool, coa CauseOfTransmission, ca CommonAddr, infos ...BinaryCounterReadingInfo) error

IntegratedTotals sends a type identification M_IT_NA_1. 累计量 M_IT_NA_1 See companion standard 101, subclass 7.3.1.15 传送原因(coa)用于 监视方向: <3> := 突发(自发) <37> := 响应总计数量召唤 <38> := 响应第1组计数量召唤 <39> := 响应第2组计数量召唤 <40> := 响应第3组计数量召唤 <41> := 响应第4组计数量召唤

func IntegratedTotalsCP24Time2a

func IntegratedTotalsCP24Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...BinaryCounterReadingInfo) error

IntegratedTotalsCP24Time2a sends a type identification M_IT_TA_1. 带时标CP24Time2a的累计量,只有(SQ = 0)单个信息元素集合 M_IT_TA_1 See companion standard 101, subclass 7.3.1.16 传送原因(coa)用于 监视方向: <3> := 突发(自发) <37> := 响应总计数量召唤 <38> := 响应第1组计数量召唤 <39> := 响应第2组计数量召唤 <40> := 响应第3组计数量召唤 <41> := 响应第4组计数量召唤

func IntegratedTotalsCP56Time2a

func IntegratedTotalsCP56Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...BinaryCounterReadingInfo) error

IntegratedTotalsCP56Time2a sends a type identification M_IT_TB_1. 带时标CP56Time2a的累计量,只有(SQ = 0)单个信息元素集合 M_IT_TB_1 See companion standard 101, subclass 7.3.1.29 传送原因(coa)用于 监视方向: <3> := 突发(自发) <37> := 响应总计数量召唤 <38> := 响应第1组计数量召唤 <39> := 响应第2组计数量召唤 <40> := 响应第3组计数量召唤 <41> := 响应第4组计数量召唤

func InterrogationCmd

func InterrogationCmd(c Connect, coa CauseOfTransmission, ca CommonAddr, qoi QualifierOfInterrogation) error

InterrogationCmd send a new interrogation command C_IC_NA_1. 总召唤命令, 只有单个信息对象(SQ = 0) C_IC_NA_1 See companion standard 101, subclass 7.3.4.1 传送原因(coa)用于 控制方向: <6> := 激活 <8> := 停止激活 监视方向: <7> := 激活确认 <9> := 停止激活确认 <10> := 激活终止 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func MeasuredValueFloat

func MeasuredValueFloat(c Connect, isSequence bool, coa CauseOfTransmission, ca CommonAddr, infos ...MeasuredValueFloatInfo) error

MeasuredValueFloat sends a type identification M_ME_TF_1.测量值,短浮点数 M_ME_NC_1 See companion standard 101, subclass 7.3.1.13 传送原因(coa)用于 监视方向: <1> := 周期/循环 <2> := 背景扫描 <3> := 突发(自发) <5> := 被请求 <20> := 响应站召唤 <21> := 响应第1组召唤 至 <36> := 响应第16组召唤

func MeasuredValueFloatCP24Time2a

func MeasuredValueFloatCP24Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...MeasuredValueFloatInfo) error

MeasuredValueFloatCP24Time2a sends a type identification M_ME_TC_1.带时标CP24Time2a的测量值,短浮点数,只有(SQ = 0)单个信息元素集合 M_ME_TC_1 See companion standard 101, subclass 7.3.1.14 传送原因(coa)用于 监视方向: <3> := 突发(自发) <5> := 被请求

func MeasuredValueFloatCP56Time2a

func MeasuredValueFloatCP56Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...MeasuredValueFloatInfo) error

MeasuredValueFloatCP56Time2a sends a type identification M_ME_TF_1.带时标CP56Time2a的测量值,短浮点数,只有(SQ = 0)单个信息元素集合 M_ME_TF_1 See companion standard 101, subclass 7.3.1.28 传送原因(coa)用于 监视方向: <3> := 突发(自发) <5> := 被请求

func MeasuredValueNormal

func MeasuredValueNormal(c Connect, isSequence bool, coa CauseOfTransmission, ca CommonAddr, infos ...MeasuredValueNormalInfo) error

MeasuredValueNormal sends a type identification M_ME_NA_1.测量值,规一化值 M_ME_NA_1 See companion standard 101, subclass 7.3.1.9 传送原因(coa)用于 监视方向: <1> := 周期/循环 <2> := 背景扫描 <3> := 突发(自发) <5> := 被请求 <20> := 响应站召唤 <21> := 响应第1组召唤 至 <36> := 响应第16组召唤

func MeasuredValueNormalCP24Time2a

func MeasuredValueNormalCP24Time2a(c Connect, coa CauseOfTransmission,
	ca CommonAddr, infos ...MeasuredValueNormalInfo) error

MeasuredValueNormalCP24Time2a sends a type identification M_ME_TA_1.带时标CP24Time2a的测量值,规一化值,只有(SQ = 0)单个信息元素集合 M_ME_TA_1 See companion standard 101, subclass 7.3.1.10 传送原因(coa)用于 监视方向: <3> := 突发(自发) <5> := 被请求

func MeasuredValueNormalCP56Time2a

func MeasuredValueNormalCP56Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...MeasuredValueNormalInfo) error

MeasuredValueNormalCP56Time2a sends a type identification [ M_ME_TD_1] 带时标CP57Time2a的测量值,规一化值,只有(SQ = 0)单个信息元素集合 M_ME_TD_1 See companion standard 101, subclass 7.3.1.26 传送原因(coa)用于 监视方向: <3> := 突发(自发) <5> := 被请求

func MeasuredValueNormalNoQuality

func MeasuredValueNormalNoQuality(c Connect, isSequence bool, coa CauseOfTransmission, ca CommonAddr, infos ...MeasuredValueNormalInfo) error

MeasuredValueNormalNoQuality sends a type identification M_ME_ND_1.不带品质的测量值,规一化值 M_ME_ND_1 See companion standard 101, subclass 7.3.1.21, The quality descriptor must default to asdu.GOOD 传送原因(coa)用于 监视方向: <1> := 周期/循环 <2> := 背景扫描 <3> := 突发(自发) <5> := 被请求 <20> := 响应站召唤 <21> := 响应第1组召唤 至 <36> := 响应第16组召唤

func MeasuredValueScaled

func MeasuredValueScaled(c Connect, isSequence bool, coa CauseOfTransmission, ca CommonAddr, infos ...MeasuredValueScaledInfo) error

MeasuredValueScaled sends a type identification M_ME_NB_1.测量值,标度化值 M_ME_NB_1 See companion standard 101, subclass 7.3.1.11 传送原因(coa)用于 监视方向: <1> := 周期/循环 <2> := 背景扫描 <3> := 突发(自发) <5> := 被请求 <20> := 响应站召唤 <21> := 响应第1组召唤 至 <36> := 响应第16组召唤

func MeasuredValueScaledCP24Time2a

func MeasuredValueScaledCP24Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...MeasuredValueScaledInfo) error

MeasuredValueScaledCP24Time2a sends a type identification M_ME_TB_1.带时标CP24Time2a的测量值,标度化值,只有(SQ = 0)单个信息元素集合 M_ME_TB_1 See companion standard 101, subclass 7.3.1.12 传送原因(coa)用于 监视方向: <3> := 突发(自发) <5> := 被请求

func MeasuredValueScaledCP56Time2a

func MeasuredValueScaledCP56Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...MeasuredValueScaledInfo) error

MeasuredValueScaledCP56Time2a sends a type identification M_ME_TE_1.带时标CP56Time2a的测量值,标度化值,只有(SQ = 0)单个信息元素集合 M_ME_TE_1 See companion standard 101, subclass 7.3.1.27 传送原因(coa)用于 监视方向: <3> := 突发(自发) <5> := 被请求

func PackedOutputCircuitInfoCP24Time2a

func PackedOutputCircuitInfoCP24Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, info PackedOutputCircuitInfoInfo) error

PackedOutputCircuitInfoCP24Time2a sends a type identification M_EP_TC_1. 带CP24Time2a继电器保护设备成组输出电路信息 M_EP_TC_1 See companion standard 101, subclass 7.3.1.19 传送原因(coa)用于 监视方向: <3> := 突发(自发)

func PackedOutputCircuitInfoCP56Time2a

func PackedOutputCircuitInfoCP56Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, info PackedOutputCircuitInfoInfo) error

PackedOutputCircuitInfoCP56Time2a sends a type identification M_EP_TF_1. 带CP56Time2a继电器保护设备成组输出电路信息 M_EP_TF_1 See companion standard 101, subclass 7.3.1.32 传送原因(coa)用于 监视方向: <3> := 突发(自发)

func PackedSinglePointWithSCD

func PackedSinglePointWithSCD(c Connect, isSequence bool, coa CauseOfTransmission, ca CommonAddr, infos ...PackedSinglePointWithSCDInfo) error

PackedSinglePointWithSCD sends a type identification M_PS_NA_1. 带变位检出的成组单点信息 M_PS_NA_1 See companion standard 101, subclass 7.3.1.20 传送原因(coa)用于 监视方向: <2> := 背景扫描 <3> := 突发(自发) <5> := 被请求 <11> := 由远方命令会紖起的返送信息 <12> := 由当地命令会紖起的返送信息 <20> := 响应站召唤 <21> := 响应第1组召唤 至 <36> := 响应第16组召唤

func PackedStartEventsOfProtectionEquipmentCP24Time2a

func PackedStartEventsOfProtectionEquipmentCP24Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, info PackedStartEventsOfProtectionEquipmentInfo) error

PackedStartEventsOfProtectionEquipmentCP24Time2a sends a type identification M_EP_TB_1. 继电器保护设备事件 M_EP_TB_1 See companion standard 101, subclass 7.3.1.18 传送原因(coa)用于 监视方向: <3> := 突发(自发)

func PackedStartEventsOfProtectionEquipmentCP56Time2a

func PackedStartEventsOfProtectionEquipmentCP56Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, info PackedStartEventsOfProtectionEquipmentInfo) error

PackedStartEventsOfProtectionEquipmentCP56Time2a sends a type identification M_EP_TB_1. 继电器保护设备事件 M_EP_TE_1 See companion standard 101, subclass 7.3.1.31 传送原因(coa)用于 监视方向: <3> := 突发(自发)

func ParameterActivation

func ParameterActivation(c Connect, coa CauseOfTransmission, ca CommonAddr, p ParameterActivationInfo) error

ParameterActivation 参数激活, 只有单个信息对象(SQ = 0) P_AC_NA_1, See companion standard 101, subclass 7.3.5.4 传送原因(coa)用于 控制方向: <6> := 激活 <8> := 停止激活 监视方向: <7> := 激活确认 <9> := 停止激活确认 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func ParameterFloat

func ParameterFloat(c Connect, coa CauseOfTransmission, ca CommonAddr, p ParameterFloatInfo) error

ParameterFloat 测量值参数,短浮点数, 只有单个信息对象(SQ = 0) P_ME_NC_1, See companion standard 101, subclass 7.3.5.3 传送原因(coa)用于 控制方向: <6> := 激活 监视方向: <7> := 激活确认 <20> := 响应站召唤 <21> := 响应第 1 组召唤 <22> := 响应第 2 组召唤 至 <36> := 响应第 16 组召唤 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func ParameterNormal

func ParameterNormal(c Connect, coa CauseOfTransmission, ca CommonAddr, p ParameterNormalInfo) error

ParameterNormal 测量值参数,规一化值, 只有单个信息对象(SQ = 0) P_ME_NA_1, See companion standard 101, subclass 7.3.5.1 传送原因(coa)用于 控制方向: <6> := 激活 监视方向: <7> := 激活确认 <20> := 响应站召唤 <21> := 响应第 1 组召唤 <22> := 响应第 2 组召唤 至 <36> := 响应第 16 组召唤 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func ParameterScaled

func ParameterScaled(c Connect, coa CauseOfTransmission, ca CommonAddr, p ParameterScaledInfo) error

ParameterScaled 测量值参数,标度化值, 只有单个信息对象(SQ = 0) P_ME_NB_1, See companion standard 101, subclass 7.3.5.2 传送原因(coa)用于 控制方向: <6> := 激活 监视方向: <7> := 激活确认 <20> := 响应站召唤 <21> := 响应第 1 组召唤 <22> := 响应第 2 组召唤 至 <36> := 响应第 16 组召唤 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func ParseCP16Time2a

func ParseCP16Time2a(b []byte) uint16

ParseCP16Time2a 2个八位位组二进制时间,读2字节,返回一个值 See companion standard 101, subclass 7.2.6.20.

func ParseCP24Time2a

func ParseCP24Time2a(bytes []byte, loc *time.Location) time.Time

ParseCP24Time2a 3个八位位组二进制时间,建议所有时标采用UTC,读3字节,返回一个时间 See companion standard 101, subclass 7.2.6.19.

func ParseCP56Time2a

func ParseCP56Time2a(bytes []byte, loc *time.Location) time.Time

ParseCP56Time2a 7个八位位组二进制时间,建议所有时标采用UTC,读7个字节,返回时间 The year is assumed to be in the 20th century. See IEC 60870-5-4 § 6.8 and IEC 60870-5-101 second edition § 7.2.6.18.

func ReadCmd

func ReadCmd(c Connect, coa CauseOfTransmission, ca CommonAddr, ioa InfoObjAddr) error

ReadCmd send read command C_RD_NA_1, 读命令, 只有单个信息对象(SQ = 0) C_RD_NA_1 See companion standard 101, subclass 7.3.4.3 传送原因(coa)用于 控制方向: <5> := 请求 监视方向: <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func ResetProcessCmd

ResetProcessCmd send reset process command C_RP_NA_1,复位进程命令, 只有单个信息对象(SQ = 0) C_RP_NA_1 See companion standard 101, subclass 7.3.4.6 传送原因(coa)用于 控制方向: <6> := 激活 监视方向: <7> := 激活确认 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func SetpointCmdFloat

func SetpointCmdFloat(c Connect, typeID TypeID, coa CauseOfTransmission, ca CommonAddr, cmd SetpointCommandFloatInfo) error

SetpointCmdFloat sends a type C_SE_NC_1 or C_SE_TC_1.设定命令,短浮点数,只有单个信息对象(SQ = 0) C_SE_NC_1 See companion standard 101, subclass 7.3.2.6 C_SE_TC_1 See companion standard 101, 传送原因(coa)用于 控制方向: <6> := 激活 <8> := 停止激活 监视方向: <7> := 激活确认 <9> := 停止激活确认 <10> := 激活终止 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func SetpointCmdNormal

func SetpointCmdNormal(c Connect, typeID TypeID, coa CauseOfTransmission, ca CommonAddr, cmd SetpointCommandNormalInfo) error

SetpointCmdNormal sends a type C_SE_NA_1 or C_SE_TA_1. 设定命令,规一化值, 只有单个信息对象(SQ = 0) C_SE_NA_1 See companion standard 101, subclass 7.3.2.4 C_SE_TA_1 See companion standard 101, 传送原因(coa)用于 控制方向: <6> := 激活 <8> := 停止激活 监视方向: <7> := 激活确认 <9> := 停止激活确认 <10> := 激活终止 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func SetpointCmdScaled

func SetpointCmdScaled(c Connect, typeID TypeID, coa CauseOfTransmission, ca CommonAddr, cmd SetpointCommandScaledInfo) error

SetpointCmdScaled sends a type C_SE_NB_1 or C_SE_TB_1. 设定命令,标度化值,只有单个信息对象(SQ = 0) C_SE_NB_1 See companion standard 101, subclass 7.3.2.5 C_SE_TB_1 See companion standard 101, 传送原因(coa)用于 控制方向: <6> := 激活 <8> := 停止激活 监视方向: <7> := 激活确认 <9> := 停止激活确认 <10> := 激活终止 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func Single

func Single(c Connect, isSequence bool, coa CauseOfTransmission, ca CommonAddr, infos ...SinglePointInfo) error

Single sends a type identification M_SP_NA_1.不带时标单点信息 M_SP_NA_1 See companion standard 101,subclass 7.3.1.1 传送原因(coa)用于 监视方向: <2> := 背景扫描 <3> := 突发(自发) <5> := 被请求 <11> := 远方命令引起的返送信息 <12> := 当地命令引起的返送信息 <20> := 响应站召唤 <21> := 响应第1组召唤 至 <36> := 响应第16组召唤

func SingleCP24Time2a

func SingleCP24Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...SinglePointInfo) error

SingleCP24Time2a sends a type identification M_SP_TA_1,带时标CP24Time2a的单点信息,只有(SQ = 0)单个信息元素集合 M_SP_TA_1 See companion standard 101,subclass 7.3.1.2 传送原因(coa)用于 监视方向: <3> := 突发(自发) <5> := 被请求 <11> := 远方命令引起的返送信息 <12> := 当地命令引起的返送信息

func SingleCP56Time2a

func SingleCP56Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...SinglePointInfo) error

SingleCP56Time2a sends a type identification M_SP_TB_1.带时标CP56Time2a的单点信息,只有(SQ = 0)单个信息元素集合 M_SP_TB_1 See companion standard 101,subclass 7.3.1.22 传送原因(coa)用于 监视方向: <3> := 突发(自发) <5> := 被请求 <11> := 远方命令引起的返送信息 <12> := 当地命令引起的返送信息

func SingleCmd

func SingleCmd(c Connect, typeID TypeID, coa CauseOfTransmission, ca CommonAddr, cmd SingleCommandInfo) error

SingleCmd sends a type identification C_SC_NA_1 or C_SC_TA_1. 单命令, 只有单个信息对象(SQ = 0) C_SC_NA_1 See companion standard 101, subclass 7.3.2.1 C_SC_TA_1 See companion standard 101, 传送原因(coa)用于 控制方向: <6> := 激活 <8> := 停止激活 监视方向: <7> := 激活确认 <9> := 停止激活确认 <10> := 激活终止 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func Step

func Step(c Connect, isSequence bool, coa CauseOfTransmission, ca CommonAddr, infos ...StepPositionInfo) error

Step sends a type identification M_ST_NA_1.步位置信息 M_ST_NA_1 See companion standard 101, subclass 7.3.1.5 传送原因(coa)用于 监视方向: <2> := 背景扫描 <3> := 突发(自发) <5> := 被请求 <11> := 远方命令引起的返送信息 <12> := 当地命令引起的返送信息 <20> := 响应站召唤 <21> := 响应第1组召唤 至 <36> := 响应第16组召唤

func StepCP24Time2a

func StepCP24Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...StepPositionInfo) error

StepCP24Time2a sends a type identification M_ST_TA_1.带时标CP24Time2a的双点信息,只有(SQ = 0)单个信息元素集合 M_ST_TA_1 See companion standard 101, subclass 7.3.1.5 传送原因(coa)用于 监视方向: <3> := 突发(自发) <5> := 被请求 <11> := 远方命令引起的返送信息 <12> := 当地命令引起的返送信息

func StepCP56Time2a

func StepCP56Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, infos ...StepPositionInfo) error

StepCP56Time2a sends a type identification M_ST_TB_1.带时标CP56Time2a的双点信息,只有(SQ = 0)单个信息元素集合 M_ST_TB_1 See companion standard 101, subclass 7.3.1.24 传送原因(coa)用于 监视方向: <3> := 突发(自发) <5> := 被请求 <11> := 远方命令引起的返送信息 <12> := 当地命令引起的返送信息

func StepCmd

func StepCmd(c Connect, typeID TypeID, coa CauseOfTransmission, ca CommonAddr, cmd StepCommandInfo) error

StepCmd sends a type C_RC_NA_1 or C_RC_TA_1. 步调节命令, 只有单个信息对象(SQ = 0) C_RC_NA_1 See companion standard 101, subclass 7.3.2.3 C_RC_TA_1 See companion standard 101, 传送原因(coa)用于 控制方向: <6> := 激活 <8> := 停止激活 监视方向: <7> := 激活确认 <9> := 停止激活确认 <10> := 激活终止 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func TestCommand

func TestCommand(c Connect, coa CauseOfTransmission, ca CommonAddr) error

TestCommand send test command C_TS_NA_1,测试命令, 只有单个信息对象(SQ = 0) C_TS_NA_1 See companion standard 101, subclass 7.3.4.5 传送原因(coa)用于 控制方向: <6> := 激活 监视方向: <7> := 激活确认 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

func TestCommandCP56Time2a

func TestCommandCP56Time2a(c Connect, coa CauseOfTransmission, ca CommonAddr, t time.Time) error

TestCommandCP56Time2a send test command C_TS_TA_1,测试命令, 只有单个信息对象(SQ = 0) 传送原因(coa)用于 控制方向: <6> := 激活 监视方向: <7> := 激活确认 <44> := 未知的类型标识 <45> := 未知的传送原因 <46> := 未知的应用服务数据单元公共地址 <47> := 未知的信息对象地址

Types

type ASDU

type ASDU struct {
	*Params
	Identifier
	// contains filtered or unexported fields
}

ASDU (Application Service Data Unit) is an application message.

func NewASDU

func NewASDU(p *Params, identifier Identifier) *ASDU

NewASDU new asdu with special params and identifier

func NewEmptyASDU

func NewEmptyASDU(p *Params) *ASDU

NewEmptyASDU new empty asdu with special params

func (*ASDU) AppendBinaryCounterReading

func (sf *ASDU) AppendBinaryCounterReading(v BinaryCounterReading) *ASDU

AppendBinaryCounterReading append binary couter reading value to info object See companion standard 101, subclass 7.2.6.9.

func (*ASDU) AppendBitsString32

func (sf *ASDU) AppendBitsString32(v uint32) *ASDU

AppendBitsString32 append a bits string value to info object See companion standard 101, subclass 7.2.6.13.

func (*ASDU) AppendBytes

func (sf *ASDU) AppendBytes(b ...byte) *ASDU

AppendBytes append some bytes to info object

func (*ASDU) AppendCP16Time2a

func (sf *ASDU) AppendCP16Time2a(msec uint16) *ASDU

AppendCP16Time2a append CP16Time2a to asdu info object

func (*ASDU) AppendCP24Time2a

func (sf *ASDU) AppendCP24Time2a(t time.Time, loc *time.Location) *ASDU

AppendCP24Time2a append CP24Time2a to asdu info object

func (*ASDU) AppendCP56Time2a

func (sf *ASDU) AppendCP56Time2a(t time.Time, loc *time.Location) *ASDU

AppendCP56Time2a append a CP56Time2a value to info object

func (*ASDU) AppendFloat32

func (sf *ASDU) AppendFloat32(f float32) *ASDU

AppendFloat32 append a float32 value to info object See companion standard 101, subclass 7.2.6.8.

func (*ASDU) AppendInfoObjAddr

func (sf *ASDU) AppendInfoObjAddr(addr InfoObjAddr) error

AppendInfoObjAddr append information object address to information object

func (*ASDU) AppendNormalize

func (sf *ASDU) AppendNormalize(n Normalize) *ASDU

AppendNormalize append a Normalize value to info object

func (*ASDU) AppendScaled

func (sf *ASDU) AppendScaled(i int16) *ASDU

AppendScaled append a Scaled value to info object See companion standard 101, subclass 7.2.6.7.

func (*ASDU) AppendStatusAndStatusChangeDetection

func (sf *ASDU) AppendStatusAndStatusChangeDetection(scd StatusAndStatusChangeDetection) *ASDU

AppendStatusAndStatusChangeDetection append StatusAndStatusChangeDetection value to asdu info object

func (*ASDU) AppendUint16

func (sf *ASDU) AppendUint16(b uint16) *ASDU

AppendUint16 append some uint16 to info object

func (*ASDU) Clone

func (sf *ASDU) Clone() *ASDU

Clone deep clone asdu

func (*ASDU) DecodeBinaryCounterReading

func (sf *ASDU) DecodeBinaryCounterReading() BinaryCounterReading

DecodeBinaryCounterReading decode info object byte to binary couter reading value

func (*ASDU) DecodeBitsString32

func (sf *ASDU) DecodeBitsString32() uint32

DecodeBitsString32 decode info object byte to a bits string value

func (*ASDU) DecodeByte

func (sf *ASDU) DecodeByte() byte

DecodeByte decode a byte then the pass it

func (*ASDU) DecodeCP16Time2a

func (sf *ASDU) DecodeCP16Time2a() uint16

DecodeCP16Time2a decode info object byte to CP16Time2a

func (*ASDU) DecodeCP24Time2a

func (sf *ASDU) DecodeCP24Time2a() time.Time

DecodeCP24Time2a decode info object byte to CP24Time2a

func (*ASDU) DecodeCP56Time2a

func (sf *ASDU) DecodeCP56Time2a() time.Time

DecodeCP56Time2a decode info object byte to CP56Time2a

func (*ASDU) DecodeFloat32

func (sf *ASDU) DecodeFloat32() float32

DecodeFloat32 decode info object byte to a float32 value

func (*ASDU) DecodeInfoObjAddr

func (sf *ASDU) DecodeInfoObjAddr() InfoObjAddr

DecodeInfoObjAddr decode info object address then the pass it

func (*ASDU) DecodeNormalize

func (sf *ASDU) DecodeNormalize() Normalize

DecodeNormalize decode info object byte to a Normalize value

func (*ASDU) DecodeScaled

func (sf *ASDU) DecodeScaled() int16

DecodeScaled decode info object byte to a Scaled value

func (*ASDU) DecodeStatusAndStatusChangeDetection

func (sf *ASDU) DecodeStatusAndStatusChangeDetection() StatusAndStatusChangeDetection

DecodeStatusAndStatusChangeDetection decode info object byte to StatusAndStatusChangeDetection

func (*ASDU) DecodeUint16

func (sf *ASDU) DecodeUint16() uint16

DecodeUint16 decode a uint16 then the pass it

func (*ASDU) GetBitString32

func (sf *ASDU) GetBitString32() []BitString32Info

GetBitString32 M_BO_NA_1, M_BO_TA_1 or M_BO_TB_1 获得比特位串信息体集合

func (*ASDU) GetBitsString32Cmd

func (sf *ASDU) GetBitsString32Cmd() BitsString32CommandInfo

GetBitsString32Cmd C_BO_NA_1 or C_BO_TA_1 获取比特串命令信息体

func (*ASDU) GetClockSynchronizationCmd

func (sf *ASDU) GetClockSynchronizationCmd() (InfoObjAddr, time.Time)

GetClockSynchronizationCmd C_CS_NA_1 获得时钟同步命令信息体(信息对象地址,时间)

func (*ASDU) GetCounterInterrogationCmd

func (sf *ASDU) GetCounterInterrogationCmd() (InfoObjAddr, QualifierCountCall)

GetCounterInterrogationCmd C_CI_NA_1 获得计量召唤信息体(信息对象地址,计量召唤限定词)

func (*ASDU) GetDelayAcquireCommand

func (sf *ASDU) GetDelayAcquireCommand() (InfoObjAddr, uint16)

GetDelayAcquireCommand C_CD_NA_1 获取延时获取命令信息体(信息对象地址,延时毫秒数)

func (*ASDU) GetDoubleCmd

func (sf *ASDU) GetDoubleCmd() DoubleCommandInfo

GetDoubleCmd C_DC_NA_1 or C_DC_TA_1 获取双命令信息体

func (*ASDU) GetDoublePoint

func (sf *ASDU) GetDoublePoint() []DoublePointInfo

GetDoublePoint M_DP_NA_1, M_DP_TA_1 or M_DP_TB_1 获得双点信息体集合

func (*ASDU) GetEndOfInitialization

func (sf *ASDU) GetEndOfInitialization() (InfoObjAddr, CauseOfInitial)

GetEndOfInitialization get GetEndOfInitialization for asdu when the identification M_EI_NA_1

func (*ASDU) GetEventOfProtectionEquipment

func (sf *ASDU) GetEventOfProtectionEquipment() []EventOfProtectionEquipmentInfo

GetEventOfProtectionEquipment M_EP_TA_1 M_EP_TD_1 获取继电器保护设备事件信息体

func (*ASDU) GetIntegratedTotals

func (sf *ASDU) GetIntegratedTotals() []BinaryCounterReadingInfo

GetIntegratedTotals M_IT_NA_1, M_IT_TA_1 or M_IT_TB_1. 获得累计量信息体集合

func (*ASDU) GetInterrogationCmd

func (sf *ASDU) GetInterrogationCmd() (InfoObjAddr, QualifierOfInterrogation)

GetInterrogationCmd C_IC_NA_1 获取总召唤信息体(信息对象地址,召唤限定词)

func (*ASDU) GetMeasuredValueFloat

func (sf *ASDU) GetMeasuredValueFloat() []MeasuredValueFloatInfo

GetMeasuredValueFloat M_ME_NC_1, M_ME_TC_1 or M_ME_TF_1.获得测量值,短浮点数信息体集合

func (*ASDU) GetMeasuredValueNormal

func (sf *ASDU) GetMeasuredValueNormal() []MeasuredValueNormalInfo

GetMeasuredValueNormal M_ME_NA_1, M_ME_TA_1,[ M_ME_TD_1] or M_ME_ND_1 获得测量值,规一化值信息体集合

func (*ASDU) GetMeasuredValueScaled

func (sf *ASDU) GetMeasuredValueScaled() []MeasuredValueScaledInfo

GetMeasuredValueScaled M_ME_NB_1, M_ME_TB_1 or M_ME_TE_1 获得测量值,标度化值信息体集合

func (*ASDU) GetPackedOutputCircuitInfo

func (sf *ASDU) GetPackedOutputCircuitInfo() PackedOutputCircuitInfoInfo

GetPackedOutputCircuitInfo M_EP_TC_1 M_EP_TF_1 获取继电器保护设备成组输出电路信息信息体

func (*ASDU) GetPackedSinglePointWithSCD

func (sf *ASDU) GetPackedSinglePointWithSCD() []PackedSinglePointWithSCDInfo

GetPackedSinglePointWithSCD M_PS_NA_1. 获得带变位检出的成组单点信息

func (*ASDU) GetPackedStartEventsOfProtectionEquipment

func (sf *ASDU) GetPackedStartEventsOfProtectionEquipment() PackedStartEventsOfProtectionEquipmentInfo

GetPackedStartEventsOfProtectionEquipment M_EP_TB_1 M_EP_TE_1 获取继电器保护设备事件信息体

func (*ASDU) GetParameterActivation

func (sf *ASDU) GetParameterActivation() ParameterActivationInfo

GetParameterActivation P_AC_NA_1,获取 参数激活 信息体

func (*ASDU) GetParameterFloat

func (sf *ASDU) GetParameterFloat() ParameterFloatInfo

GetParameterFloat P_ME_NC_1,获取 测量值参数,短浮点数 信息体

func (*ASDU) GetParameterNormal

func (sf *ASDU) GetParameterNormal() ParameterNormalInfo

GetParameterNormal P_ME_NA_1,获取 测量值参数,标度化值 信息体

func (*ASDU) GetParameterScaled

func (sf *ASDU) GetParameterScaled() ParameterScaledInfo

GetParameterScaled P_ME_NB_1,获取 测量值参数,归一化值 信息体

func (*ASDU) GetReadCmd

func (sf *ASDU) GetReadCmd() InfoObjAddr

GetReadCmd C_RD_NA_1 获得读命令信息地址

func (*ASDU) GetResetProcessCmd

func (sf *ASDU) GetResetProcessCmd() (InfoObjAddr, QualifierOfResetProcessCmd)

GetResetProcessCmd C_RP_NA_1 获得复位进程命令信息体(信息对象地址,复位进程命令限定词)

func (*ASDU) GetSetpointCmdScaled

func (sf *ASDU) GetSetpointCmdScaled() SetpointCommandScaledInfo

GetSetpointCmdScaled C_SE_NB_1 or C_SE_TB_1 获取设定命令,标度化值信息体

func (*ASDU) GetSetpointFloatCmd

func (sf *ASDU) GetSetpointFloatCmd() SetpointCommandFloatInfo

GetSetpointFloatCmd C_SE_NC_1 or C_SE_TC_1 获取设定命令,短浮点数信息体

func (*ASDU) GetSetpointNormalCmd

func (sf *ASDU) GetSetpointNormalCmd() SetpointCommandNormalInfo

GetSetpointNormalCmd C_SE_NA_1 or C_SE_TA_1 获取设定命令,规一化值信息体

func (*ASDU) GetSingleCmd

func (sf *ASDU) GetSingleCmd() SingleCommandInfo

GetSingleCmd C_SC_NA_1 or C_SC_TA_1 获取单命令信息体

func (*ASDU) GetSinglePoint

func (sf *ASDU) GetSinglePoint() []SinglePointInfo

GetSinglePoint M_SP_NA_1, M_SP_TA_1 or M_SP_TB_1 获取单点信息信息体集合

func (*ASDU) GetStepCmd

func (sf *ASDU) GetStepCmd() StepCommandInfo

GetStepCmd C_RC_NA_1 or C_RC_TA_1 获取步调节命令信息体

func (*ASDU) GetStepPosition

func (sf *ASDU) GetStepPosition() []StepPositionInfo

GetStepPosition M_ST_NA_1, M_ST_TA_1 or M_ST_TB_1 获得步位置信息体集合

func (*ASDU) GetTestCommand

func (sf *ASDU) GetTestCommand() (InfoObjAddr, bool)

GetTestCommand C_TS_NA_1,获得测试命令信息体(信息对象地址,是否是测试字)

func (*ASDU) GetTestCommandCP56Time2a

func (sf *ASDU) GetTestCommandCP56Time2a() (InfoObjAddr, bool, time.Time)

GetTestCommandCP56Time2a C_TS_TA_1,获得测试命令信息体(信息对象地址,是否是测试字)

func (*ASDU) MarshalBinary

func (sf *ASDU) MarshalBinary() (data []byte, err error)

MarshalBinary honors the encoding.BinaryMarshaler interface.

func (*ASDU) Reply

func (sf *ASDU) Reply(c Cause, addr CommonAddr) *ASDU

Reply returns a new "responding" ASDU which addresses "initiating" addr with a copy of Info.

func (*ASDU) SendReplyMirror

func (sf *ASDU) SendReplyMirror(c Connect, cause Cause) error

SendReplyMirror send a reply of the mirror request but cause different

func (*ASDU) SetVariableNumber

func (sf *ASDU) SetVariableNumber(n int) error

SetVariableNumber See companion standard 101, subclass 7.2.2.

func (*ASDU) UnmarshalBinary

func (sf *ASDU) UnmarshalBinary(rawAsdu []byte) error

UnmarshalBinary honors the encoding.BinaryUnmarshaler interface. ASDUParams must be set in advance. All other fields are initialized.

type BinaryCounterReading

type BinaryCounterReading struct {
	CounterReading int32
	SeqNumber      byte
	HasCarry       bool
	IsAdjusted     bool
	IsInvalid      bool
}

BinaryCounterReading is binary counter reading See companion standard 101, subclass 7.2.6.9. CounterReading: 计数器读数 [bit0...bit31] SeqNumber: 顺序记法 [bit32...bit40] SQ: 顺序号 [bit32...bit36] CY: 进位 [bit37] CA: 计数量被调整 IV: 无效

type BinaryCounterReadingInfo

type BinaryCounterReadingInfo struct {
	Ioa   InfoObjAddr
	Value BinaryCounterReading
	// the type does not include timing will ignore
	Time time.Time
}

BinaryCounterReadingInfo the counter reading attributes. 二进制计数量读数

type BitString32Info

type BitString32Info struct {
	Ioa   InfoObjAddr
	Value uint32
	// Quality descriptor asdu.GOOD means no remarks.
	Qds QualityDescriptor
	// the type does not include timing will ignore
	Time time.Time
}

BitString32Info the measured value attributes.

type BitsString32CommandInfo

type BitsString32CommandInfo struct {
	Ioa   InfoObjAddr
	Value uint32
	Time  time.Time
}

BitsString32CommandInfo 比特串命令 信息体

type COICause

type COICause byte

COICause Initialization reason See companion standard 101, subclass 7.2.6.21.

const (
	COILocalPowerOn COICause = iota
	COILocalHandReset
	COIRemoteReset
)

COICause defined 0: 当地电源合上 1: 当地手动复位 2: 远方复位 <3..31>: 本配讨标准备的标准定义保留 <32...127>: 为特定使用保留

type Cause

type Cause byte

Cause is the cause of transmission. bit5-bit0

const (
	Unused               Cause = iota // unused
	Periodic                          // periodic, cyclic
	Background                        // background scan
	Spontaneous                       // spontaneous 突发
	Initialized                       // initialized
	Request                           // request or requested
	Activation                        // activation  激活
	ActivationCon                     // activation confirmation 激活确认
	Deactivation                      // deactivation 停止激活
	DeactivationCon                   // deactivation confirmation 停止激活确认
	ActivationTerm                    // activation termination 激活停止
	ReturnInfoRemote                  // return information caused by a remote command
	ReturnInfoLocal                   // return information caused by a local command
	FileTransfer                      // file transfer
	Authentication                    // authentication
	SessionKey                        // maintenance of authentication session key
	UserRoleAndUpdateKey              // maintenance of user role and update key

	InterrogatedByStation   // interrogated by station interrogation
	InterrogatedByGroup1    // interrogated by group 1 interrogation
	InterrogatedByGroup2    // interrogated by group 2 interrogation
	InterrogatedByGroup3    // interrogated by group 3 interrogation
	InterrogatedByGroup4    // interrogated by group 4 interrogation
	InterrogatedByGroup5    // interrogated by group 5 interrogation
	InterrogatedByGroup6    // interrogated by group 6 interrogation
	InterrogatedByGroup7    // interrogated by group 7 interrogation
	InterrogatedByGroup8    // interrogated by group 8 interrogation
	InterrogatedByGroup9    // interrogated by group 9 interrogation
	InterrogatedByGroup10   // interrogated by group 10 interrogation
	InterrogatedByGroup11   // interrogated by group 11 interrogation
	InterrogatedByGroup12   // interrogated by group 12 interrogation
	InterrogatedByGroup13   // interrogated by group 13 interrogation
	InterrogatedByGroup14   // interrogated by group 14 interrogation
	InterrogatedByGroup15   // interrogated by group 15 interrogation
	InterrogatedByGroup16   // interrogated by group 16 interrogation
	RequestByGeneralCounter // requested by general counter request
	RequestByGroup1Counter  // requested by group 1 counter request
	RequestByGroup2Counter  // requested by group 2 counter request
	RequestByGroup3Counter  // requested by group 3 counter request
	RequestByGroup4Counter  // requested by group 4 counter request

	UnknownTypeID // unknown type identification
	UnknownCOT    // unknown cause of transmission
	UnknownCA     // unknown common address of ASDU
	UnknownIOA    // unknown information object address
)

Cause of transmission bit5-bit0 <0> 未定义 <1..63> 传输原因序号 <1..47> 标准定义 <48..63> 专用范围 NOTE: 信息对象带或不带时标由标识符类型的不同序列来区别

type CauseOfInitial

type CauseOfInitial struct {
	Cause         COICause
	IsLocalChange bool
}

CauseOfInitial cause of initial Cause: see COICause IsLocalChange: false - 未改变当地参数的初始化

true - 改变当地参数后的初始化

func ParseCauseOfInitial

func ParseCauseOfInitial(b byte) CauseOfInitial

ParseCauseOfInitial parse byte to cause of initial

func (CauseOfInitial) Value

func (sf CauseOfInitial) Value() byte

Value CauseOfInitial to byte

type CauseOfTransmission

type CauseOfTransmission struct {
	IsTest     bool
	IsNegative bool
	Cause      Cause
}

CauseOfTransmission is the cause of transmission. See companion standard 101, subclass 7.2.3. | T | P/N | 5..0 cause | T = test, the cause of transmission for testing ,0: 未试验, 1:试验 P/N indicates the negative (or positive) confirmation. Cause is the cause of transmission. bit5 - bit0 对由启动应用功能所请求的激活以肯定或者否定的确认 0: 肯定确认, 1: 否定确认

func ParseCauseOfTransmission

func ParseCauseOfTransmission(b byte) CauseOfTransmission

ParseCauseOfTransmission parse byte to cause of transmission

func (CauseOfTransmission) String

func (sf CauseOfTransmission) String() string

String 返回Cause的字符串,包含相应应用的",neg" and ",test"

func (CauseOfTransmission) Value

func (sf CauseOfTransmission) Value() byte

Value encode cause of transmission to byte

type CommonAddr

type CommonAddr uint16

CommonAddr is a station address. The width is controlled by Params.CommonAddrSize. width 1:

<0>: 未用
<1..254>: 站地址
<255>: 全局地址

width 2:

<0>: 未用
<1..65534>: 站地址
<65535>: 全局地址
const (
	// InvalidCommonAddr is the invalid common address.
	InvalidCommonAddr CommonAddr = 0
	// GlobalCommonAddr is the broadcast address. Use is restricted
	// to C_IC_NA_1, C_CI_NA_1, C_CS_NA_1 and C_RP_NA_1.
	// When in 8-bit mode 255 is mapped to this value on the fly.
	GlobalCommonAddr CommonAddr = 65535
)

special commonAddr

type Connect

type Connect interface {
	Params() *Params
	Send(a *ASDU) error
	UnderlyingConn() net.Conn
}

Connect interface

type DoubleCommand

type DoubleCommand byte

DoubleCommand double command See companion standard 101, subclass 7.2.6.16.

const (
	DCONotAllow0 DoubleCommand = iota
	DCOOn
	DCOOff
	DCONotAllow3
)

DoubleCommand defined

type DoubleCommandInfo

type DoubleCommandInfo struct {
	Ioa   InfoObjAddr
	Value DoubleCommand
	Qoc   QualifierOfCommand
	Time  time.Time
}

DoubleCommandInfo 单命令 信息体

type DoublePoint

type DoublePoint byte

DoublePoint is a measured value of a determination aware switch. See companion standard 101, subclass 7.2.6.2.

const (
	DPIIndeterminateOrIntermediate DoublePoint = iota // 不确定或中间状态
	DPIDeterminedOff                                  // 确定状态开
	DPIDeterminedOn                                   // 确定状态关
	DPIIndeterminate                                  // 不确定或中间状态
)

DoublePoint defined

func (DoublePoint) Value

func (sf DoublePoint) Value() byte

Value double point to byte

type DoublePointInfo

type DoublePointInfo struct {
	Ioa   InfoObjAddr
	Value DoublePoint
	// Quality descriptor asdu.QDSGood means no remarks.
	Qds QualityDescriptor
	// the type does not include timing will ignore
	Time time.Time
}

DoublePointInfo the measured value attributes.

type EventOfProtectionEquipmentInfo

type EventOfProtectionEquipmentInfo struct {
	Ioa   InfoObjAddr
	Event SingleEvent
	Qdp   QualityDescriptorProtection
	Msec  uint16
	// the type does not include timing will ignore
	Time time.Time
}

EventOfProtectionEquipmentInfo the counter reading attributes. 二进制计数量读数

type Identifier

type Identifier struct {
	// type identification, information content
	Type TypeID
	// Variable is variable structure qualifier
	Variable VariableStruct
	// cause of transmission submission category
	Coa CauseOfTransmission
	// Originator Address [1, 255] or 0 for the default.
	// The applicability is controlled by Params.CauseSize.
	OrigAddr OriginAddr
	// CommonAddr is a station address. Zero is not used.
	// The width is controlled by Params.CommonAddrSize.
	// See companion standard 101, subclass 7.2.4.
	CommonAddr CommonAddr // station address 公共地址是站地址
}

Identifier the application service data unit identifies.

func (Identifier) String

func (id Identifier) String() string

String 返回数据单元标识符的信息,例: "TypeID Cause OrigAddr@CommonAddr"

type InfoObjAddr

type InfoObjAddr uint

InfoObjAddr is the information object address. See companion standard 101, subclass 7.2.5. The width is controlled by Params.InfoObjAddrSize. <0>: 无关的信息对象地址 - width 1: <1..255> - width 2: <1..65535> - width 3: <1..16777215>

const InfoObjAddrIrrelevant InfoObjAddr = 0

InfoObjAddrIrrelevant Zero means that the information object address is irrelevant.

type MeasuredValueFloatInfo

type MeasuredValueFloatInfo struct {
	Ioa   InfoObjAddr
	Value float32
	// Quality descriptor asdu.GOOD means no remarks.
	Qds QualityDescriptor
	// the type does not include timing will ignore
	Time time.Time
}

MeasuredValueFloatInfo the measured value attributes.

type MeasuredValueNormalInfo

type MeasuredValueNormalInfo struct {
	Ioa   InfoObjAddr
	Value Normalize
	// Quality descriptor asdu.GOOD means no remarks.
	Qds QualityDescriptor
	// the type does not include timing will ignore
	Time time.Time
}

MeasuredValueNormalInfo the measured value attributes.

type MeasuredValueScaledInfo

type MeasuredValueScaledInfo struct {
	Ioa   InfoObjAddr
	Value int16
	// Quality descriptor asdu.GOOD means no remarks.
	Qds QualityDescriptor
	// the type does not include timing will ignore
	Time time.Time
}

MeasuredValueScaledInfo the measured value attributes.

type Normalize

type Normalize int16

Normalize is a 16-bit normalized value in[-1, 1 − 2⁻¹⁵].. 规一化值 f归一= 32768 * f真实 / 满码值 See companion standard 101, subclass 7.2.6.6.

func (Normalize) Float64

func (sf Normalize) Float64() float64

Float64 returns the value in [-1, 1 − 2⁻¹⁵].

type OriginAddr

type OriginAddr byte

OriginAddr is originator address, See companion standard 101, subclass 7.2.3. The width is controlled by Params.CauseSize. width 2 includes/activates the originator address. <0>: 未用 <1..255>: 源发地址

type OutputCircuitInfo

type OutputCircuitInfo byte

OutputCircuitInfo output command information See companion standard 101, subclass 7.2.6.12.

const (
	OCIGeneralCommand OutputCircuitInfo = 1 << iota // 总命令输出至输出电路
	OCICommandL1                                    // A 相保护命令输出至输出电路
	OCICommandL2                                    // B 相保护命令输出至输出电路
	OCICommandL3                                    // C 相保护命令输出至输出电路

)

OutputCircuitInfo defined

type PackedOutputCircuitInfoInfo

type PackedOutputCircuitInfoInfo struct {
	Ioa  InfoObjAddr
	Oci  OutputCircuitInfo
	Qdp  QualityDescriptorProtection
	Msec uint16
	// the type does not include timing will ignore
	Time time.Time
}

PackedOutputCircuitInfoInfo 继电器保护设备成组输出电路信息

type PackedSinglePointWithSCDInfo

type PackedSinglePointWithSCDInfo struct {
	Ioa InfoObjAddr
	Scd StatusAndStatusChangeDetection
	Qds QualityDescriptor
}

PackedSinglePointWithSCDInfo 带变位检出的成组单点信息

type PackedStartEventsOfProtectionEquipmentInfo

type PackedStartEventsOfProtectionEquipmentInfo struct {
	Ioa   InfoObjAddr
	Event StartEvent
	Qdp   QualityDescriptorProtection
	Msec  uint16
	// the type does not include timing will ignore
	Time time.Time
}

PackedStartEventsOfProtectionEquipmentInfo 继电器保护设备成组启动事件

type ParameterActivationInfo

type ParameterActivationInfo struct {
	Ioa InfoObjAddr
	Qpa QualifierOfParameterAct
}

ParameterActivationInfo 参数激活 信息体

type ParameterFloatInfo

type ParameterFloatInfo struct {
	Ioa   InfoObjAddr
	Value float32
	Qpm   QualifierOfParameterMV
}

ParameterFloatInfo 测量参数,短浮点数 信息体

type ParameterNormalInfo

type ParameterNormalInfo struct {
	Ioa   InfoObjAddr
	Value Normalize
	Qpm   QualifierOfParameterMV
}

ParameterNormalInfo 测量值参数,归一化值 信息体

type ParameterScaledInfo

type ParameterScaledInfo struct {
	Ioa   InfoObjAddr
	Value int16
	Qpm   QualifierOfParameterMV
}

ParameterScaledInfo 测量值参数,标度化值 信息体

type Params

type Params struct {
	// cause of transmission, 传输原因字节数
	// The standard requires "b" in [1, 2].
	// Value 2 includes/activates the originator address.
	CauseSize int
	// Originator Address [1, 255] or 0 for the default.
	// The applicability is controlled by Params.CauseSize.
	OrigAddress OriginAddr
	// size of ASDU common address, ASDU 公共地址字节数
	// 应用服务数据单元公共地址的八位位组数目,公共地址是站地址
	// The standard requires "a" in [1, 2].
	CommonAddrSize int

	// size of ASDU information object address. 信息对象地址字节数
	// The standard requires "c" in [1, 3].
	InfoObjAddrSize int

	// InfoObjTimeZone controls the time tag interpretation.
	// The standard fails to mention this one.
	InfoObjTimeZone *time.Location
}

Params 定义了ASDU相关特定参数 See companion standard 101, subclass 7.1.

func (Params) IdentifierSize

func (sf Params) IdentifierSize() int

IdentifierSize return the application service data unit identifies size

func (Params) Valid

func (sf Params) Valid() error

Valid returns the validation result of params.

func (Params) ValidCommonAddr

func (sf Params) ValidCommonAddr(addr CommonAddr) error

ValidCommonAddr returns the validation result of a station common address.

type QCCFreeze

type QCCFreeze byte

QCCFreeze 冻结 [bit6,bit7] See companion standard 101, subclass 7.2.6.23.

type QCCRequest

type QCCRequest byte

QCCRequest 请求 [bit0...bit5] See companion standard 101, subclass 7.2.6.23.

type QOCQual

type QOCQual byte

QOCQual the qualifier of qual. See companion standard 101, subclass 7.2.6.26.

const (
	// 0: no additional definition
	// 无另外的定义
	QOCNoAdditionalDefinition QOCQual = iota
	// 1: short pulse duration (circuit-breaker), duration determined by a system parameter in the outstation
	// 短脉冲持续时间(断路器),持续时间由被控站内的系统参数所确定
	QOCShortPulseDuration
	// 2: long pulse duration, duration determined by a system parameter in the outstation
	// 长脉冲持续时间,持续时间由被控站内的系统参数所确定
	QOCLongPulseDuration
	// 3: persistent output
	// 持续输出
	QOCPersistentOutput
)

QOCQual defined

type QOSQual

type QOSQual uint

QOSQual is the qualifier of a set-point command qual. See companion standard 101, subclass 7.2.6.39.

0: default
0‥63: reserved for standard definitions of sf companion standard (compatible range)
64‥127: reserved for special use (private range)

type QPMCategory

type QPMCategory byte

QPMCategory 测量参数类别

const (
	QPMUnused    QPMCategory = iota // 0: not used
	QPMThreshold                    // 1: threshold value
	QPMSmoothing                    // 2: smoothing factor (filter time constant)
	QPMLowLimit                     // 3: low limit for transmission of measured values
	QPMHighLimit                    // 4: high limit for transmission of measured values

	QPMChangeFlag      QPMCategory = 0x40 // bit6 marks local parameter change  当地参数改变
	QPMInOperationFlag QPMCategory = 0x80 // bit7 marks parameter operation 参数在运行
)

QPMCategory defined

type QualifierCountCall

type QualifierCountCall struct {
	Request QCCRequest
	Freeze  QCCFreeze
}

QualifierCountCall 计数量召唤命令限定词 See companion standard 101, subclass 7.2.6.23.

func ParseQualifierCountCall

func ParseQualifierCountCall(b byte) QualifierCountCall

ParseQualifierCountCall parse byte to QualifierCountCall

func (QualifierCountCall) Value

func (sf QualifierCountCall) Value() byte

Value QualifierCountCall to byte

type QualifierOfCommand

type QualifierOfCommand struct {
	Qual     QOCQual
	InSelect bool
}

QualifierOfCommand is a qualifier of command. 命令限定词 See companion standard 101, subclass 7.2.6.26. See section 5, subclass 6.8. InSelect: true - selects, false - executes.

func ParseQualifierOfCommand

func ParseQualifierOfCommand(b byte) QualifierOfCommand

ParseQualifierOfCommand parse byte to QualifierOfCommand

func (QualifierOfCommand) Value

func (sf QualifierOfCommand) Value() byte

Value QualifierOfCommand to byte

type QualifierOfInterrogation

type QualifierOfInterrogation byte

QualifierOfInterrogation Qualifier Of Interrogation See companion standard 101, subclass 7.2.6.22.

const (
	// <1..19>: 为标准定义保留
	QOIStation QualifierOfInterrogation = 20 + iota // interrogated by station interrogation
	QOIGroup1                                       // interrogated by group 1 interrogation
	QOIGroup2                                       // interrogated by group 2 interrogation
	QOIGroup3                                       // interrogated by group 3 interrogation
	QOIGroup4                                       // interrogated by group 4 interrogation
	QOIGroup5                                       // interrogated by group 5 interrogation
	QOIGroup6                                       // interrogated by group 6 interrogation
	QOIGroup7                                       // interrogated by group 7 interrogation
	QOIGroup8                                       // interrogated by group 8 interrogation
	QOIGroup9                                       // interrogated by group 9 interrogation
	QOIGroup10                                      // interrogated by group 10 interrogation
	QOIGroup11                                      // interrogated by group 11 interrogation
	QOIGroup12                                      // interrogated by group 12 interrogation
	QOIGroup13                                      // interrogated by group 13 interrogation
	QOIGroup14                                      // interrogated by group 14 interrogation
	QOIGroup15                                      // interrogated by group 15 interrogation
	QOIGroup16                                      // interrogated by group 16 interrogation

	// 0:未使用
	QOIUnused QualifierOfInterrogation = 0
)

QualifierOfInterrogation defined

type QualifierOfParameterAct

type QualifierOfParameterAct byte

QualifierOfParameterAct Qualifier Of Parameter Activation 参数激活限定词 See companion standard 101, subclass 7.2.6.25.

const (
	QPAUnused QualifierOfParameterAct = iota
	// 激活/停止激活这之前装载的参数(信息对象地址=0)
	QPADeActPrevLoadedParameter
	// 激活/停止激活所寻址信息对象的参数
	QPADeActObjectParameter
	// 激活/停止激活所寻址的持续循环或周期传输的信息对象
	QPADeActObjectTransmission
)

QualifierOfParameterAct defined

type QualifierOfParameterMV

type QualifierOfParameterMV struct {
	Category      QPMCategory
	IsChange      bool
	IsInOperation bool
}

QualifierOfParameterMV Qualifier Of Parameter Of Measured Values 测量值参数限定词 See companion standard 101, subclass 7.2.6.24. QPMCategory : [bit0...bit5] 参数类型 IsChange : [bit6]当地参数改变,false - 未改变,true - 改变 IsInOperation : [bit7] 参数在运行,false - 运行, true - 不在运行

func ParseQualifierOfParamMV

func ParseQualifierOfParamMV(b byte) QualifierOfParameterMV

ParseQualifierOfParamMV parse byte to QualifierOfParameterMV

func (QualifierOfParameterMV) Value

func (sf QualifierOfParameterMV) Value() byte

Value QualifierOfParameterMV to byte

type QualifierOfResetProcessCmd

type QualifierOfResetProcessCmd byte

QualifierOfResetProcessCmd 复位进程命令限定词 See companion standard 101, subclass 7.2.6.27.

const (
	// 未采用
	QRPUnused QualifierOfResetProcessCmd = iota
	// 进程的总复位
	QPRGeneralRest
	// 复位事件缓冲区等待处理的带时标的信息
	QPRResetPendingInfoWithTimeTag
)

QualifierOfResetProcessCmd defined

type QualifierOfSetpointCmd

type QualifierOfSetpointCmd struct {
	Qual     QOSQual
	InSelect bool
}

QualifierOfSetpointCmd is a qualifier of command. 设定命令限定词 See section 5, subclass 6.8. InSelect: true - selects, false - executes.

func ParseQualifierOfSetpointCmd

func ParseQualifierOfSetpointCmd(b byte) QualifierOfSetpointCmd

ParseQualifierOfSetpointCmd parse byte to QualifierOfSetpointCmd

func (QualifierOfSetpointCmd) Value

func (sf QualifierOfSetpointCmd) Value() byte

Value QualifierOfSetpointCmd to byte

type QualityDescriptor

type QualityDescriptor byte

QualityDescriptor Quality descriptor flags attribute measured values. See companion standard 101, subclass 7.2.6.3.

const (
	// QDSOverflow marks whether the value is beyond a predefined range.
	QDSOverflow QualityDescriptor = 1 << iota

	// QDSBlocked flags that the value is blocked for transmission; the
	// value remains in the state that was acquired before it was blocked.
	QDSBlocked
	// QDSSubstituted flags that the value was provided by the input of
	// an operator (dispatcher) instead of an automatic source.
	QDSSubstituted
	// QDSNotTopical flags that the most recent update was unsuccessful.
	QDSNotTopical
	// QDSInvalid flags that the value was incorrectly acquired.
	QDSInvalid

	// QDSGood means no flags, no problems.
	QDSGood QualityDescriptor = 0
)

QualityDescriptor defined.

type QualityDescriptorProtection

type QualityDescriptorProtection byte

QualityDescriptorProtection Quality descriptor Protection Equipment flags attribute. See companion standard 101, subclass 7.2.6.4.

const (

	// QDPElapsedTimeInvalid flags that the elapsed time was incorrectly acquired.
	QDPElapsedTimeInvalid QualityDescriptorProtection
	// QDPBlocked flags that the value is blocked for transmission; the
	// value remains in the state that was acquired before it was blocked.
	QDPBlocked
	// QDPSubstituted flags that the value was provided by the input of
	// an operator (dispatcher) instead of an automatic source.
	QDPSubstituted
	// QDPNotTopical flags that the most recent update was unsuccessful.
	QDPNotTopical
	// QDPInvalid flags that the value was incorrectly acquired.
	QDPInvalid

	// QDPGood means no flags, no problems.
	QDPGood QualityDescriptorProtection = 0
)

QualityDescriptorProtection defined.

type SetpointCommandFloatInfo

type SetpointCommandFloatInfo struct {
	Ioa   InfoObjAddr
	Value float32
	Qos   QualifierOfSetpointCmd
	Time  time.Time
}

SetpointCommandFloatInfo 设定命令, 短浮点数 信息体

type SetpointCommandNormalInfo

type SetpointCommandNormalInfo struct {
	Ioa   InfoObjAddr
	Value Normalize
	Qos   QualifierOfSetpointCmd
	Time  time.Time
}

SetpointCommandNormalInfo 设置命令,规一化值 信息体

type SetpointCommandScaledInfo

type SetpointCommandScaledInfo struct {
	Ioa   InfoObjAddr
	Value int16
	Qos   QualifierOfSetpointCmd
	Time  time.Time
}

SetpointCommandScaledInfo 设定命令,标度化值 信息体

type SingleCommand

type SingleCommand byte

SingleCommand Single command See companion standard 101, subclass 7.2.6.15.

const (
	SCOOn SingleCommand = iota
	SCOOff
)

SingleCommand defined

type SingleCommandInfo

type SingleCommandInfo struct {
	Ioa   InfoObjAddr
	Value bool
	Qoc   QualifierOfCommand
	Time  time.Time
}

SingleCommandInfo 单命令 信息体

type SingleEvent

type SingleEvent byte

SingleEvent is single event See companion standard 101, subclass 7.2.6.10.

const (
	SEIndeterminateOrIntermediate SingleEvent = iota // 不确定或中间状态
	SEDeterminedOff                                  // 确定状态开
	SEDeterminedOn                                   // 确定状态关
	SEIndeterminate                                  // 不确定或中间状态
)

SingleEvent dSequenceNotationefined

type SinglePoint

type SinglePoint byte

SinglePoint is a measured value of a switch. See companion standard 101, subclass 7.2.6.1.

const (
	SPIOff SinglePoint = iota // 关
	SPIOn                     // 开
)

SinglePoint defined

func (SinglePoint) Value

func (sf SinglePoint) Value() byte

Value single point to byte

type SinglePointInfo

type SinglePointInfo struct {
	Ioa InfoObjAddr
	// value of single point
	Value bool
	// Quality descriptor asdu.OK means no remarks.
	Qds QualityDescriptor
	// the type does not include timing will ignore
	Time time.Time
}

SinglePointInfo the measured value attributes.

type StartEvent

type StartEvent byte

StartEvent Start event protection

const (
	SEPGeneralStart          StartEvent = 1 << iota // 总启动
	SEPStartL1                                      // A相保护启动
	SEPStartL2                                      // B相保护启动
	SEPStartL3                                      // C相保护启动
	SEPStartEarthCurrent                            // 接地电流保护启动
	SEPStartReverseDirection                        // 反向保护启动

)

StartEvent defined See companion standard 101, subclass 7.2.6.11.

type StatusAndStatusChangeDetection

type StatusAndStatusChangeDetection uint32

StatusAndStatusChangeDetection 状态和状态变位检出 See companion standard 101, subclass 7.2.6.40.

type StepCommand

type StepCommand byte

StepCommand step command See companion standard 101, subclass 7.2.6.17.

const (
	SCONotAllow0 StepCommand = iota
	SCOStepDown
	SCOStepUP
	SCONotAllow3
)

StepCommand defined

type StepCommandInfo

type StepCommandInfo struct {
	Ioa   InfoObjAddr
	Value StepCommand
	Qoc   QualifierOfCommand
	Time  time.Time
}

StepCommandInfo 步调节 信息体

type StepPosition

type StepPosition struct {
	Val          int
	HasTransient bool
}

StepPosition is a measured value with transient state indication. 带瞬变状态指示的测量值,用于变压器步位置或其它步位置的值 See companion standard 101, subclass 7.2.6.5. Val range <-64..63> bit[0-5]: <-64..63> NOTE: bit6 为符号位 bit7: 0: 设备未在瞬变状态 1: 设备处于瞬变状态

func ParseStepPosition

func ParseStepPosition(b byte) StepPosition

ParseStepPosition parse byte to StepPosition.

func (StepPosition) Value

func (sf StepPosition) Value() byte

Value returns step position value.

type StepPositionInfo

type StepPositionInfo struct {
	Ioa   InfoObjAddr
	Value StepPosition
	// Quality descriptor asdu.GOOD means no remarks.
	Qds QualityDescriptor
	// the type does not include timing will ignore
	Time time.Time
}

StepPositionInfo the measured value attributes.

type TypeID

type TypeID uint8

TypeID is the ASDU type identification. See companion standard 101, subclass 7.2.1.

const (

	// 在监视方向上的过程信息 <0..44>
	M_SP_NA_1 TypeID // 1: single-point information, 单点信息
	M_SP_TA_1        // 2: single-point information with time tag, 单点信息-带时标
	M_DP_NA_1        // 3: double-point information, 双点信息
	M_DP_TA_1        // 4: double-point information with time tag, 双点信息-带时标
	M_ST_NA_1        // 5: step position information, 步位置信息
	M_ST_TA_1        // 6: step position information with time tag, 步位置信息-带时标
	M_BO_NA_1        // 7: bitstring of 32 bit, 32位比特串
	M_BO_TA_1        // 8: bitstring of 32 bit with time tag, 32位比特串-带时标
	M_ME_NA_1        // 9: measured value, normalized value, 测量值,规一化值
	M_ME_TA_1        // 10: measured value, normalized value with time tag, 测量值,规一化值-带时标
	M_ME_NB_1        // 11: measured value, scaled value, 测量值,标度化值
	M_ME_TB_1        // 12: measured value, scaled value with time tag, 测量值带时标,标度化值-带时标
	M_ME_NC_1        // 13: measured value, short floating point number, 测量值,短浮点数
	M_ME_TC_1        // 14: measured value, short floating point number with time tag, 测量值,短浮数-带时标
	M_IT_NA_1        // 15: integrated totals, 累积量
	M_IT_TA_1        // 16: integrated totals with time tag, 累积量带时标
	M_EP_TA_1        // 17: event of protection equipment with time tag, 继电器保护设备事件-带时标
	M_EP_TB_1        // 18: packed start events of protection equipment with time tag, 继电保护设备成组启动事件-带时标
	M_EP_TC_1        // 19: packed output circuit information of protection equipment with time tag, 继电保护设备成组输出电路信息-带时标
	M_PS_NA_1        // 20: packed single-point information with status change detection, 带变位检出的成组单点信息
	M_ME_ND_1        // 21: measured value, normalized value without quality descriptor, 测量值,不带品质描述词的规一化值

	M_SP_TB_1 // 30: single-point information with time tag CP56Time2a, 单点信息-带CP56Time2a
	M_DP_TB_1 // 31: double-point information with time tag CP56Time2a, 双点信息-带CP56Time2a
	M_ST_TB_1 // 32: step position information with time tag CP56Time2a, 步位置信息-带CP56Time2a
	M_BO_TB_1 // 33: bitstring of 32 bits with time tag CP56Time2a, 32比特串-带CP56Time2a
	M_ME_TD_1 // 34: measured value, normalized value with time tag CP56Time2a, 测量值,规一化值-带CP56Time2a
	M_ME_TE_1 // 35: measured value, scaled value with time tag CP56Time2a, 测量值,标度化值-带CP56Time2a
	M_ME_TF_1 // 36: measured value, short floating point number with time tag CP56Time2a, 测量值,短浮点数-带CP56Time2a
	M_IT_TB_1 // 37: integrated totals with time tag CP56Time2a, 累积值-带CP56Time2a
	M_EP_TD_1 // 38: event of protection equipment with time tag CP56Time2a, 继电保护装置事件-带CP56Time2a
	M_EP_TE_1 // 39: packed start events of protection equipment with time tag CP56Time2a, 继电保护装置成组启动事件-带CP56Time2a
	M_EP_TF_1 // 40: packed output circuit information of protection equipment with time tag CP56Time2a, 继电保护装置成组输出电路信息-带CP56Time2a
	S_IT_TC_1 // 41: integrated totals containing time-tagged security statistics

	// 在控制方向的过程信息 <45..69>
	C_SC_NA_1 // 45: single command 单点命令
	C_DC_NA_1 // 46: double command 双点命令
	C_RC_NA_1 // 47: regulating step command 调节步命令
	C_SE_NA_1 // 48: set-point command, normalized value 设定值命令,归一化值
	C_SE_NB_1 // 49: set-point command, scaled value 设定值命令,规度化值
	C_SE_NC_1 // 50: set-point command, short floating point number 设定值命令,短浮点数值
	C_BO_NA_1 // 51: bitstring of 32 bits 23位比特串

	C_SC_TA_1 // 58: single command with time tag CP56Time2a
	C_DC_TA_1 // 59: double command with time tag CP56Time2a
	C_RC_TA_1 // 60: regulating step command with time tag CP56Time2a
	C_SE_TA_1 // 61: set-point command with time tag CP56Time2a, normalized value
	C_SE_TB_1 // 62: set-point command with time tag CP56Time2a, scaled value
	C_SE_TC_1 // 63: set-point command with time tag CP56Time2a, short floating point number
	C_BO_TA_1 // 64: bitstring of 32-bit with time tag CP56Time2a

	// 在监视方向的系统命令 <70..99>
	M_EI_NA_1 // 70: end of initialization  初始化结束

	S_CH_NA_1 // 81: authentication challenge
	S_RP_NA_1 // 82: authentication reply
	S_AR_NA_1 // 83: aggressive mode authentication request
	S_KR_NA_1 // 84: session key status request
	S_KS_NA_1 // 85: session key status
	S_KC_NA_1 // 86: session key change
	S_ER_NA_1 // 87: authentication error

	S_US_NA_1 // 90: user status change
	S_UQ_NA_1 // 91: update key change request
	S_UR_NA_1 // 92: update key change reply
	S_UK_NA_1 // 93: update key change — symetric
	S_UA_NA_1 // 94: update key change — asymetric
	S_UC_NA_1 // 95: update key change confirmation

	// 在控制方向的系统命令 <100..109>
	C_IC_NA_1 // 100: interrogation command 总召唤
	C_CI_NA_1 // 101: counter interrogation command 计数量召唤
	C_RD_NA_1 // 102: read command 读命令
	C_CS_NA_1 // 103: clock synchronization command 时钟同步命令
	C_TS_NA_1 // 104: test command 测试命令
	C_RP_NA_1 // 105: reset process command 复位进程命令
	C_CD_NA_1 // 106: delay acquisition command 延时获得命令
	C_TS_TA_1 // 107: test command with time tag CP56Time2a  带CP56Time2a的测试命令

	// 在控制方向的参数命令 <110..119>
	P_ME_NA_1 // 110: parameter of measured value, normalized value 测量值参数,规一化值
	P_ME_NB_1 // 111: parameter of measured value, scaled value 测量值参数,标度化值
	P_ME_NC_1 // 112: parameter of measured value, short floating point number 测量值参数,短浮点数
	P_AC_NA_1 // 113: parameter activation 参数激活

	// 文件传输 <120..127>
	F_FR_NA_1 // 120: file ready  文件准备就绪
	F_SR_NA_1 // 121: section ready 节准备就绪
	F_SC_NA_1 // 122: call directory, select file, call file, call section 如唤目录,选择文件,召唤文件,召唤节
	F_LS_NA_1 // 123: last section, last segment 最后的节,最后的段
	F_AF_NA_1 // 124: ack file, ack section 认可文件,认可节
	F_SG_NA_1 // 125: segment 段
	F_DR_TA_1 // 126: directory 目录
	F_SC_NB_1 // 127: QueryLog - request archive file (section 104) 查询日志
)

The standard ASDU type identification. M for monitored information C for control information P for parameter F for file transfer. <0> 未用 <1..127> 标准定义 - 兼容 <128..135> 为路由报文保留 - 专用 <136..255> 特殊应用 - 专用 NOTE: 信息对象带或不带时标由标识符类型的不同序列来区别

func (TypeID) String

func (sf TypeID) String() string

type VariableStruct

type VariableStruct struct {
	Number     byte
	IsSequence bool
}

VariableStruct is variable structure qualifier See companion standard 101, subclass 7.2.2. number <0..127>: bit0 - bit6 seq: bit7 0: 同一类型,有不同objAddress的信息元素集合 (地址+元素)*N 1: 同一类型,相同objAddress顺序信息元素集合 (一个地址,N元素*N)

func ParseVariableStruct

func ParseVariableStruct(b byte) VariableStruct

ParseVariableStruct parse byte to variable structure qualifier

func (VariableStruct) String

func (sf VariableStruct) String() string

String 返回 variable structure 的格式

func (VariableStruct) Value

func (sf VariableStruct) Value() byte

Value encode variable structure to byte

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL