- 博客(133)
- 收藏
- 关注

原创 EIP-3664合约研究笔记01--项目介绍
早在 2021 年的5月份,DRepublic 团队提出了一个叫做EIP-3664 的协议方案(又叫做NFT 属性扩展协议),其使用了一种较为巧妙的方式,来进一步解决了主流NFT标准比如ERC-721 或 ERC-1155等,在属性上表现力不足,NFT之间难以融合,且在存储上中心化(目前主要存储在服务器上)的种种问题,并且该提案进一步实现了NFT 属性的动态扩展。
2022-09-30 10:08:53
943
原创 第四章 IEC61851协议分析--4.4 IEC61851-23 直流充电协议-4.4.4 IEC 61851-23 充电时序图
本节详细介绍直流充电时序图,说明了每个时间点应该执行的动作。
2025-04-06 13:00:00
620
原创 第四章 IEC61851协议分析--4.4 IEC61851-23 直流充电协议4.4.1~4.4.3内容概要
IEC 61851-23 和 IEC 61851-24 是国际电工委员会(IEC)针对直流电动汽车充电系统发布的核心标准,分别规范了直流充电设备技术要求和数字通信协议,旨在提升充电安全、兼容性与互操作性。本文介绍-23协议的基础内容。
2025-04-05 09:00:07
867
原创 第四章 IEC61851协议分析--4.1~4.3协议基础和核心原理
本章主要介绍IEC 61851-1/23协议内容,说明核心原理、状态机、操作流程。
2025-04-03 11:23:12
972
原创 第三章 ISO 15118-3 SLAC协议原理与实现--3.6 软件实现方案--EvseSlac
在开源项目Everest中包含一个使用c++编写的EvseSlac模块,是在Evse端运行的slac程序,用来与EV端建立slac连接。作者详细分析了EvseSlac模块,认为该模块满足ISO15118-3协议规定的命令流程和时序,具备完备的状态机制,也具备和ISO15118-2层软件通信机制,是一份相当完整可靠的slac软件。
2025-04-01 09:31:36
409
原创 第三章 ISO 15118-3 SLAC协议原理与实现--3.5 软件实现方案分析4
要搞清楚这几件事,对于理解SLAC程序的意义和工作方法至关重要:(1)在程序起动时 两端PLC node设置的key参数是否一致?(2)在加入逻辑网络时做了什么事情?(3)在退出逻辑网络时发生了什么事情?(4)逻辑网络对iso15118代码的影响?作者给出了自己的回答。
2025-03-31 09:49:52
943
原创 第三章 ISO 15118-3 SLAC协议原理与实现--3.4 软件实现方案--pyslac
pyslac是Python实现的SLAC(Station Level Access Control,站点级访问控制)协议,遵循ISO 15118-31标准。该项目旨在提供SLAC协议的实现示例,以及如何在电动汽车供电设备(EVSE)上启动和管理SLAC会话。本文对pyslac项目代码进行分析,运行,直到完成SLAC验证,最后给出了该项目的优缺点。
2025-03-28 12:28:09
1055
原创 第三章 ISO 15118-3 SLAC协议原理与实现--3.3 SLAC协议核心原理
本节详细协议中的SLAC连接过程,同时分析休眠和唤醒机制,超时机制,信号强度测量过程。
2025-03-27 09:39:26
1653
2
原创 第三章 ISO 15118-3 SLAC协议原理与实现(3.1~3.2协议基础)
本章作者将详细介绍SLAC协议原理和软件实现方案。首先,说明PLC和SLAC涉及到的协议、概念和原理。其次,详细介绍SLAC交互流程、命令内容。最后,作者还将为读者剖析3个实现软件(pyslac、XXX_SDK、EvseSlac),重点介绍EvseSlac的状态机、与HLC通信机制。 读者阅读本章节后可以掌握SLAC开发的协议、原理、流程和极具价值的实现代码。
2025-03-27 09:30:19
944
原创 第二章 EXI协议原理与实现--9.9 测试编解码库
自己设计的编解码库是否能稳定可靠运行?这是作者首先关注的问题,为此展开了一系列测试,包括代码静态检查、内存泄露测试、对测试例的自动化测试、对测试仪器的兼容性测试、在嵌入式芯片上的性能测试。 本节介绍对编解码库的测试过程和结果。
2025-03-26 10:25:34
848
原创 第二章 EXI协议原理与实现--9.8 创建动态链接库和静态库
继续对ISO15118协议命令进行研究工作,作者按照设计框架编写了一系列代码,完成"json格式字符串"<-->"EXI码流"的转换工作,已经获得成功。现在考虑打包成库,用于以后的C和Python程序调用。作者试验了动态链接库和静态库,都成功完成了库调用。本节详细说明库的打包过程。
2025-03-26 10:17:59
1054
原创 第二章 EXI协议原理与实现--9.7 cbExiGen库bug及改进
上一节作者改进了cjson库,成功的支持64位整数的解析和输出,但是在测试SessionSetupRes命令时,发现解码输出的时间戳仍然是乱码,说明 cbExigen库代码存在解码错误。本节作者分析了bug原因,提出了修改方案。 同时在github上提交这个bug,官方已经接受并且修复啦。
2025-03-25 09:52:46
411
原创 第二章 EXI协议原理与实现--9.6 cJSON库改进--支持64位长整型
cJSON本身不支持64位的整形数据解析和增加,对于部分应用场景不适用(例如时间戳,需要64位整数)。原因在于cJSON使用double来存储中间数据,转换为整形可能存在精度问题。本节作者提出了改进方案,让cJSON能够支持uint64类型。
2025-03-25 09:48:13
926
原创 第二章 EXI协议原理与实现--9.5 cjson库介绍
cJSON是一个使用C语言编写的JSON数据解析器,具有超轻便,可移植,单文件的特点,使用MIT开源协议。本节简单介绍下cjson库的使用方法。
2025-03-24 22:13:47
775
原创 第二章 EXI协议原理与实现--8.4 对-2/-20所有命令的测试结果
上节对supportedAppProtocolReq/Res命令编解码结果与EXICodec.jar完全相同,cbExiGen初步测试成功。本节将对全部-2/-20命令展开测试,检查是否与EXICodec.jar完全相同。作者编写了大量测试代码,解决了一些cbExiGen代码中的bug和问题,最终得到了结论: cbExiGen编解码和EXICodec.jar完全相同,通过了交叉测试,在实际的充电流程中也成功运行。
2025-03-23 22:01:46
269
原创 第二章 EXI协议原理与实现--8.3 测试ISO15118-2命令supportedAppProtocolReq编解码
本节开始编写测试代码,对supportedAppProtocolReq/Res命令编解码,编码和解码结果与EXICodec.jar完全相同,cbExiGen初步测试成功。cbExiGen只是根据schema生成了对应的结构体数据结构、关键的编解码函数,缺少把xml表达成数据结构代码,因此只能自己手动填写命令的数据结构。
2025-03-23 10:54:05
327
原创 第二章 EXI协议原理与实现--8 cbexigen编解码库分析(8.1~8.2介绍+启动)
cbExiGen 是一个代码生成器,用于创建编码和解码使用Vehicle To Grid Transport Protocol(V2GTP)消息的cbV2G库。它能够处理按照DIN 70121、ISO 15118-2和ISO 15118-20标准以及这些标准的衍生版本定义的XML架构。它会生成一个库,能够对所定义协议的完整EXI消息集进行编码和解码。
2025-03-23 10:47:54
942
原创 第二章 EXI协议原理与实现--7.9 编码错误原因分析与结论
在前面两小节中,作者发现个别命令使用Efficient XML库编码得到的EXI结果与EXICodec.jar结果不同,而且不能互相解码。这将导致EVCC和SECC之间通信失败,带来严重的后果。因此必须分析编码结果不同的原因。本节重点分析ChargeParameterDiscoveryRes编码过程。
2025-03-22 12:01:39
241
原创 第二章 EXI协议原理与实现--7.8 测试ISO15118-20命令
现在开始使用Efficient XML的库测试 ISO15118-20命令的编解码是否正确,是否与EXICodec.jar的结果一致。编写测试程序mytest20-all.c,对15118-2命令的原始xml文件编码得到exi文件,然后对exi文件进行解码生成xml文件。检查二者是否内容一致。
2025-03-22 11:57:01
762
原创 第二章 EXI协议原理与实现--7.7 测试ISO15118-2命令
现在开始使用Efficient XML的库测试 ISO15118-2 命令的编解码是否正确,是否与EXICodec.jar的结果一致。在本书的附录A中罗列了ISO15118-2的所有命令(json、xml、exi),感兴趣的读者可以使用这些命令自己进行编解码验证。编写测试程序mytest2.c,对15118-2命令的原始xml文件编码得到exi文件,然后对exi文件进行解码生成xml文件。检查二者是否内容一致。
2025-03-21 14:18:42
725
原创 第二章 EXI协议原理与实现--7.6 EFXReader用法示例
根据Efficient XML库中说明,提供了EFXReader函数用于读取exi文件,处理速度更快。EFXReader类型用于读取exi文件,使用流模式解析成事件进行处理。
2025-03-21 14:10:25
144
原创 第二章 EXI协议原理与实现--7.5 Efficient XML库和OpenEXI.jar编解码交叉测试
本节对Efficient XML库和OpenEXI.jar库进行编解码交叉测试,目的是验证Efficient XML库的兼容性。
2025-03-20 17:10:11
980
原创 第二章 EXI协议原理与实现--7 Efficient XML编码分析(7.1~7.4)
欧洲的 http://www.agiledelta.com公司是EXI协议发起者,也推出了一套EXI编解码库(Efficient XML)。作者联系agiledelta公司,获取了一套试用版本软件,进行了编解码测试。 测试结果表明针对ISO15118-2/20的V2G命令,大部分编解码结果是与EXICodec.jar工具一致,少部分与签名相关命令编码结果不同,不能达到互通。本节详细对Efficient XML的研究和测试过程。
2025-03-20 14:11:05
1326
原创 第二章 EXI协议原理与实现--6 EXIP软件分析
作者深入分析了EXIP软件的编码和解码过程,对这些软件的编码结果进行测试。实测结果表明EXIP软件输出的EXI码流并不能通用,与exicodec.jar存在兼容性问题。 以下从代码结构、功能模块及实际测试进行说明。
2025-03-19 16:27:14
1135
原创 第二章 EXI协议原理与实现--5 EXICodec.jar软件分析
从本节开始,作者深入分析了与EXI有关的编码软件,对这些软件的编码结果进行测试,实测结果表明这些软件输出的EXI码流并不能通用,存在兼容性问题。 作者将对这些软件和测试过程进行详细介绍,并且与最通用的15118协议编解码器exicodec.jar进行了命令编码结果对比。
2025-03-19 16:01:57
871
原创 第二章 EXI协议原理与实现--4 编码规律总结
本节尝试对编码过程中的语法规律进行总结,包括基本数据类型和事件编码两类,最后分析了ISO15118-2的AuthorizationReq消息的编码过程。以后也将随着认识不断深入而添加更多规律。
2025-03-18 11:14:52
891
3
原创 第二章 EXI协议原理与实现--3 编码示例
本节将介绍Notebook示例的EXI编码,以循序渐进的方式解释前面介绍的概念。特别的完整的介绍了事件含义,如何确定事件的编码位数,数据内容是如何编码的。最后也指出了参考文档中编码错误。
2025-03-17 17:43:56
963
原创 第二章 EXI协议原理与实现--1~2 数据传输编码+ EXI编码原理
ISO 15118是一套车与桩之间的通信协议,使用EXI编码作为数据传输载体,属于强制型国际标准。EXI(Efficient XML Interchange)是W3C标准化的高效XML交换格式,特点是通过二进制编码大幅压缩XML数据体积,同时提升解析速度并降低内存、功耗等资源消耗,适合应用在资源受限的嵌入式系统、物联网设备及标准化工业协议(如V2G充电)领域。
2025-03-16 13:28:41
773
原创 第一章 ISO15118协议概述
背景与发展:介绍ISO15118协议的起源、发展历程及全球应用现状。介绍ISO15118协议的通信架构,包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。标准体系:介绍ISO15118协议的标准体系,包括不同版本之间的区别和联系
2025-03-07 16:14:13
1033
2
原创 《ISO15118协议原理与软件实现》前言
本书首先介绍了ISO 15118协议的背景和发展历程,阐述了协议制定的初衷和目标,随后详细剖析了ISO 15118协议的核心原理,包括通信协议栈的构成、各层协议的功能、充电流程等。希望通过本书的学习,读者能够深入理解ISO 15118协议的原理和实现方法,为电动汽车充电通信技术的发展做出贡献。特别值得一提的是,作者深入研究了ISO15118-4协议,并完美实现了协议中规定的各种测试例,针对充电桩样机完成了一致性测试,此举可以帮助开发者避免购买昂贵的测试仪器,或者到TUV、CSA实验室测试的巨大花费。
2025-03-05 11:19:48
222
原创 《ISO15118协议原理与软件实现》写作计划
作者深入研究ISO15118协议原理和软件实现,打通了从链路层、网络层、传输层、表达层、会话层、应用层完整的路径,开发出了完整支持15118协议的充电桩样机,最后经过了专业测试仪器的全面测试。通过本书,读者将了解ISO15118协议的基本概念、发展背景、核心功能、安全机制及其在电动汽车充电过程中的实际应用,并掌握如何在软件中实现这一协议。2.1 通信架构:介绍ISO15118协议的通信架构,包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
2025-03-05 10:57:18
462
4
原创 在WSL(Ubuntu)上运行eclipse,调试C语言的makefile项目
首先下载eclipse指定版本:Eclipse IDE for C/C++ Developers,Linux 86_64,
2023-08-04 16:09:18
1249
2
原创 预言机Truora学习笔记5--Truora-Service服务端代码分析
本文分析Truora-Service服务端java,目标是梳理出OracleCore合约查找创建机制、事件监听机制、url访问机制、数据回写机制, 以后创建自己的预言机服务器就了如指掌了。代码下载路径: git clone。
2023-05-22 11:19:45
543
原创 预言机Truora学习笔记4--预言机合约分析
Truora-Service 获取到数据后,对 URL 发起一个 HTTP 调用,获取到数据,对数据按照解析格式进行处理,然后再调用 OracleCore 合约,根据请求编号将结果上传到链上,提供给其他合约来获取。预言机服务将取到数据通过调用预言机智能合约方法来将数据回传,预言机智能合约通过回调用户智能合约告知用户数据取到,用户合约做相应业务处理即可。用户在智能合约中调用预言机智能合约中的请求方法,预言机智能合约校验相应参数,发送相应的链事件。用户负责编写应用端合约,发出请求,读取结果。
2023-05-22 11:16:08
528
转载 预言机Truora学习笔记3--预言机原理
预言机是指获取、验证外部信息(即存储在链下的信息)并将外部信息传送给在区块链上运行的智能合约的应用程序。除了“拉取”链下数据并在以太坊进行广播之外,预言机还将信息从区块链“推送”到外部系统。在用户通过以太坊交易发送费用后解锁智能锁的预言机就是一个推送信息的示例。预言机充当一座“桥梁”,连接区块链上的智能合约与链下数据提供者。如果没有预言机,智能合约应用程序只能访问链上数据。预言机提供了一种使用链下数据触发智能合约功能的机制。
2023-05-22 11:15:24
803
原创 预言机Truora学习笔记2--Truora-Web安装部署
由于现在truora-web组件还不支持V3.3.0的链节点,页面上无法显示出服务端部署好的预言机合约地址。该项目是区块链中间件 Truora-Service 预言机 的前端服务,基于 vue-cli 框架开发。主要支持请求详情和请求历史的查询。方便应用查询自己预言机请求的结果,如果失败,可以看到请求失败的原因。Truora-Web 是 Truora 服务的前端组件。安装Truora-Web前端组件。配置Ngjinx服务。
2023-05-22 11:11:40
294
原创 预言机Truora学习笔记1--Truora-Service安装部署
Fiscobcos提供的预言机是Truora,完整的Truora功能包括:预言机合约 -- 系统提供合约,是请求-应答模式设计的。客户端合约 -- 系统提供模板,应用程序需要继承模板合约,并重写请求和回调处理方法预言机事件服务--监听预言机合约事件,完成网络调用获取数据,调用预言机合约的callback方法将数据写入到客户端合约。数据源网站 -- 通过url查询数据关键点:提供预言机事件服务的是我们部署的服务程序,内置了一个链上地址私钥,可以调用预言机合约发起交易。
2023-05-22 11:08:26
555
转载 「后端」架构师是如何画架构图?
部署架构也叫网络架构,就是底层服务器、网路的设计,提供网络安全、服务可靠性的设计。架构图包括总体架构、逻辑架构、应用架构、技术架构、数据架构、功能架构、网络架构、运行架构等等。或者更加通俗来描述,逻辑架构更偏向我们日常所理解的“分层”,把一个项目分为“表示层、业务逻辑层、数据访问层”这样经典的“三层架构”。早期的单体架构、后面的各种分层架构、微服务、服务网格等,说的都是在这里进行设计。这样的话,技术架构,就是高层级的技术架构了,不仅仅体现的是技术组件了,而是更高层级的一些模块,甚至规范。
2023-05-09 09:18:31
3989
原创 智能合约编译插件(solc-gradle-plugin)使用方法
智能合约编译插件可以大大简化从solidity源码到java代码的过程,帮助开发者快速编译调用合约。本文记录了编译0.4.25版本和0.8.11版本的使用方法。
2023-04-29 23:48:13
338
原创 AMOP功能使用代码示例
Java SDK支持链上信使协议AMOP(Advanced Messages Onchain Protocol),用户可以通过AMOP协议与其它机构互传消息。从这个表述上看,我们的应用可以当做即时消息系统使用,只不过这是依托链节点运行,类似于Kafka。当有2个节点时, 广播出来的消息变多了, 两个节点都广播一遍,还掺杂了seq为空的消息。本文完成了AMOP消息话题创建、发布、广播、订阅、应答功能代码实例,据此可以应用在项目工作中。要说明的是单播消息具备回调函数,可以接收应答消息。广播消息不具备回调函数。
2023-04-25 17:27:31
592
ISO15118协议所使用的schema规范文件,包含DIN70121/15118-2/15118-20三部分的xsd文件, 保证准确可读
2025-04-04
ISO 15118协议大全,包含各个协议文档 保证真实可读
2025-04-04
SLAC测试程序,SLAC测试程序,SLAC测试程序,SLAC测试程序,为空,不要下载
2025-03-28
分布式数字身份, BSN-DID SDK开发包
2022-10-08
EIP-3664智能合约源码, Legoot项目, 可组合可分解可扩展合约
2022-10-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人