前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java 104规约_电网104规约解包(java)

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

作者头像
全栈程序员站长
发布2022-06-24 14:43:34
1.1K0
发布2022-06-24 14:43:34
举报

大家好,又见面了,我是你们的朋友全栈君。

【实例简介】电网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));

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151361.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档