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:广东电网配网自动…

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

【实例简介】电网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.net/151361.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4 CAN!

    秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4 CAN!一.CAN协议概念1.1CAN协议简介CAN是控制器局域网络(ControllerAreaNetwork)的简称,它是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。差异点如下:CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。近年来,它具有的高可靠性和良好的错误检测

    2022年6月28日
  • 排序 遍历

    排序 遍历

    2021年9月10日
  • django自定义用户认证_为什么需要自定义类加载器

    django自定义用户认证_为什么需要自定义类加载器前言如果我们不用使用drf那套认证规则,我们想自定义认证类,那么我们首先要知道,drf本身是如何定义认证规则的,也就是要查看它的源码是如何写的源码分析源码的入口在APIView.py文件下的di

    2022年8月7日
  • Python 图像处理_图像处理的一般步骤

    Python 图像处理_图像处理的一般步骤Python图像处理基础对我个人而言使用Python图像处理意在取代matlab,集中化使用Python环境保证之后在机器学习和OpenCV的使用上具有一致性,虽然从实验室师兄师姐的口中得知Python的图像处理较之matlab相对复杂(应该只是代码量的问题),但我依然觉得学习python环境比较实用和高效。在进行Python图像处理之前,Pillow是不可或缺的实用性工具,pillow是Py

    2022年10月14日
  • Cocos2D-X学习笔记 3 从一个场景切换到还有一个场景

    Cocos2D-X学习笔记 3 从一个场景切换到还有一个场景

    2021年12月7日
  • Redis雪崩_redis落地方式

    Redis雪崩_redis落地方式同一时间大面积失效,那一瞬间Redis跟没有一样,那这个数量级别的请求直接打到数据库几乎是灾难性的,如果打挂的是一个用户服务的库,那其他依赖他的库所有的接口几乎都会报错,如果没做熔断等策略基本上就是瞬间挂一片的节奏,怎么重启用户都会把你打挂,等你能重启的时候,用户早就睡觉去了,并且对产品失去了信心,什么垃圾产品。设置两个缓存,原始缓存和备用缓存,原始缓存失效时,访问备用缓存,备用缓存失效时间设置长点。设置缓存过期时间时加上一个随机值,避免缓存在同一时间过期。雪崩概念在某一个时间段,缓存集中过期失效。…

    2022年9月14日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号