java 104规约_电网104规约解包(java)

java 104规约_电网104规约解包(java)【实例简介】电网104规约解包java代码项目是围绕电网规约101规约(DL/T634.5101-2002)和104规约(DL/T634.5104-2009),项目基于Java语言。可以完成规约的内容解析工作和组装工作。可用于实际场景的把发送报文的生成等工作。【文件目录】101_104规约解析├──LICENSE├──README.md├──docs│├──附件1:广东电网配网自动..._1671465600

【实例简介】电网104规约解包java代码

项目是围绕电网规约101规约(DL/T634.5101-2002)和104规约(DL/T634.5104-2009),项目基于Java语言。 可以完成规约的内容解析工作和组装工作。可用于实际场景的把发送报文的生成等工作。

【文件目录】

101_104规约解析

├── LICENSE

├── README.md

├── docs

│   ├── 附件1:广东电网配网自动化101规约实施细则(试行).docx

│   ├── 附件2:广东电网配网自动化104规约实施细则(试行).docx

│   └── 附件3:规约解析细则.xlsx

├── iec.iml

├── iec_analysis

│   ├── iec_analysis.iml

│   ├── pom.xml

│   ├── src

│   │   ├── main

│   │   │   └── java

│   │   │       └── com

│   │   │           └── iec

│   │   │               ├── analysis

│   │   │               │   ├── common

│   │   │               │   │   ├── BalancedLinkCode.java

│   │   │               │   │   ├── TransferReason.java

│   │   │               │   │   └── TypeIdentifier.java

│   │   │               │   ├── exception

│   │   │               │   │   ├── CsCheckException.java

│   │   │               │   │   ├── CustomException.java

│   │   │               │   │   ├── IllegalFormatException.java

│   │   │               │   │   ├── LengthException.java

│   │   │               │   │   ├── UnknownLinkCodeException.java

│   │   │               │   │   ├── UnknownTransferReasonException.java

│   │   │               │   │   └── UnknownTypeIdentifierException.java

│   │   │               │   ├── protocol101

│   │   │               │   │   ├── ASDU.java

│   │   │               │   │   ├── Analysis.java

│   │   │               │   │   ├── Control.java

│   │   │               │   │   └── InformationBody

│   │   │               │   │       ├── InfoElement.java

│   │   │               │   │       ├── ParamePreset.java

│   │   │               │   │       ├── SystemCommand.java

│   │   │               │   │       ├── Telecontrol.java

│   │   │               │   │       ├── Telemetry.java

│   │   │               │   │       └── Telesignalling.java

│   │   │               │   └── protocol104

│   │   │               │       ├── ASDU.java

│   │   │               │       ├── Analysis.java

│   │   │               │       ├── ParamePreset104.java

│   │   │               │       ├── Telecontrol104.java

│   │   │               │       ├── Telemetry104.java

│   │   │               │       └── Telesignalling104.java

│   │   │               ├── assemble101

│   │   │               │   ├── ContinuousAddressBuilder.java

│   │   │               │   ├── UnContinuousAddressBuilder.java

│   │   │               │   └── VariableLengthPacket.java

│   │   │               ├── assemble104

│   │   │               │   ├── ContinuousAddressBuilder.java

│   │   │               │   ├── UnContinuousAddressBuilder.java

│   │   │               │   └── VaribleLengthPacket.java

│   │   │               └── utils

│   │   │                   └── Util.java

│   │   └── test

│   │       └── java

│   │           └── com

│   │               └── iec

│   │                   └── test

│   │                       ├── Analysis101Test.java

│   │                       └── Analysis104Test.java

│   └── target

│       ├── classes

│       │   └── com

│       │       └── iec

│       │           ├── analysis

│       │           │   ├── common

│       │           │   │   ├── BalancedLinkCode.class

│       │           │   │   ├── TransferReason.class

│       │           │   │   └── TypeIdentifier.class

│       │           │   ├── exception

│       │           │   │   ├── CsCheckException.class

│       │           │   │   ├── CustomException.class

│       │           │   │   ├── IllegalFormatException.class

│       │           │   │   ├── LengthException.class

│       │           │   │   ├── UnknownLinkCodeException.class

│       │           │   │   ├── UnknownTransferReasonException.class

│       │           │   │   └── UnknownTypeIdentifierException.class

│       │           │   ├── protocol101

│       │           │   │   ├── ASDU.class

│       │           │   │   ├── Analysis.class

│       │           │   │   ├── Control.class

│       │           │   │   └── InformationBody

│       │           │   │       ├── InfoElement.class

│       │           │   │       ├── ParamePreset.class

│       │           │   │       ├── SystemCommand.class

│       │           │   │       ├── Telecontrol.class

│       │           │   │       ├── Telemetry.class

│       │           │   │       └── Telesignalling.class

│       │           │   └── protocol104

│       │           │       ├── ASDU.class

│       │           │       ├── Analysis.class

│       │           │       ├── ParamePreset104.class

│       │           │       ├── Telecontrol104.class

│       │           │       ├── Telemetry104.class

│       │           │       └── Telesignalling104.class

│       │           ├── assemble101

│       │           │   ├── ContinuousAddressBuilder.class

│       │           │   ├── UnContinuousAddressBuilder.class

│       │           │   └── VariableLengthPacket.class

│       │           ├── assemble104

│       │           │   ├── ContinuousAddressBuilder.class

│       │           │   ├── UnContinuousAddressBuilder.class

│       │           │   └── VaribleLengthPacket.class

│       │           └── utils

│       │               └── Util.class

│       ├── generated-sources

│       │   └── annotations

│       ├── generated-test-sources

│       │   └── test-annotations

│       └── test-classes

│           └── com

│               └── iec

│                   └── test

│                       ├── Analysis101Test.class

│                       └── Analysis104Test.class

├── iec_interaction

│   ├── iec_interaction.iml

│   └── pom.xml

└── pom.xml

43 directories, 79 files

【核心代码】

Apdu apdu = new Apdu(new DataInputStream(is));

if (apdu.getApciType() == Apdu.ApciType.I_FORMAT) {

Asdu asdu = apdu.getAsdu();

//处理I命令

handleData(asdu.getTypeId(), asdu.getInformationObjects());

//返回S确认命令

int receiveSeqNum = apdu.getSendSeqNumber() 1;

byte[] recNum = new byte[2];

recNum[0] = (byte) (receiveSeqNum << 1);

recNum[1] = (byte) (receiveSeqNum >> 7);

String recStr = ChangeUtils.toHexString(recNum);

os.write(ChangeUtils.hexStringToBytes("68040100" recStr));

本文来源jx zhong,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/222508
0

发表评论