首页 > 编程语言 >技术栈:基于Java语言SpringBoot框架和Netty通讯服务的云快充协议解析

技术栈:基于Java语言SpringBoot框架和Netty通讯服务的云快充协议解析

时间:2025-01-04 12:01:31浏览次数:7  
标签:Netty Java SpringBoot 协议 绑定 离线 用户 充电 云快

一、云快充协议的定义
         1、 协议定义:

         云快充协议云快充协议一种基于互联网的充电服务模式,主要用于电动车与充电桩之间的数据交换,它通过远程管理与智能调度,方便用户进行充电操作,并优化充电资源的利用‌。
       

         2、云快充协议的核心流程
        云快充协议涉及多个步骤,包括用户认证、设备绑定、充电请求等:

‌        用户登录‌:用户通过APP或网页进行身份验证。
        ‌设备验证‌:系统检查用户绑定的设备状态。
        ‌绑定设备‌:验证通过后,系统将设备与用户绑定。
‌        发起充电请求‌:用户可以发起充电请求。
        ‌请求处理‌:系统根据当前充电桩情况,判断请求是否可以处理。
        ‌开始充电‌:如果请求成功,充电桩开始工作。
        ‌充电完成‌:充电完成后,系统会回馈充电信息‌。

二、协议版本

        云快充协议主要有云快充1.4、云快充1.5、云快充1.6,目前市面主流协议为1.5版本,1.6版本理论上和1.5是没有什么区别的,只是增加了双枪并充,其他的和1.5版本都一样;所谓双枪并充实两把枪为一辆车充电,主要是重卡汽车的应用场景;

三、技术栈

        SpringBoot框架+Netty通讯服务+云快充1.4-1.5-1.6协议解析

        开发语言:Java 框架:SpringBoot 部署:独立的项目、独立运行、独立部署,也可集成到自己的充电平台

        充电桩支持:公牛、盛宏、特来电、小桔、云快充、万马、驴充充、南瑞、京能、星星、双杰、普天等,只要桩支持刷云快充协议,均可对接;

四、接口和功能指标

        功能:

1、netty的channel仓储

2、频道绑定 key

3、客户端和频道绑定

4、存储频道

5、重入锁

6、获取单机连接数量

7、绑定频道和客户端id

8、是否已连接 9、是否已登录 10、获取客户端id 11、获取频道 12、释放连接和资源 13、关闭和清理连接 14、给设备发消息 15、Channel基础类 16、读取SIM卡号 0x76 17、 远程重启 0x92* 重启充电桩,应对部分问题,如卡死等 18、 * 远程更新 0x94 * 对桩进行软件升级,平台升级模式为ftp文件升级,由桩企提供升级需要的更新文件(文件名由桩企定义)* 平台再数据帧中提供访问更新文件相关服务器地址及下载路径信息,桩下载完更新程序后对文件进行校验并进行升级。 19、位数不够,进行补零操作 20、桩启动处理 21、离线充电-创建离线订单的订单号 22、结束订单 23、保存订单结算数据 24、* 更新设备停止状态 * 0X35 远程停机命令 25、充电过程数据存储 26、计算服务费 27、实时监测数据处理 28、保存错误日志 29、充电桩状态获取:0离线 1空闲-未插枪 2空闲-已插枪 3充电中 4已充满 5故障 6就绪 30、 获取log key 31、计算充电电费 32、组装报文的开始信息 33、编写帧校验位并重置指针位置 34、获取报序号 35、保存消息日志 36、处理数据 37、获取设备错误代码 38、处理netty的数据 39、发送获取实时数据命令0x12 40、远程账户余额更新 0x42 平台在用户完成充值后会将用户更新的余额下发到充电桩,* 桩接收到此数据帧需要对当前充电用户的信息进行校验并更新余额信息 41、 离线卡数据清除 0x46 * 平台再充电桩在线时下发此数据帧,充电桩接收到报文后清除桩本地对应的离线卡数据 42、离线卡数据查询 0x48 * 平台再充电桩在线时下发此数据帧到充电桩,充电桩接收到该报文后查询桩本地是否存在对应的离线卡 43、工作参数设置 0x52 采用云快充1.8版本 * 远程设置充电桩是否停用;设置充电桩允许输出功率,以实现电网功率的调节 44、对时设置 0x56 * 运营平台同步充电桩时钟,以确保充电桩与运营平台的时钟一致 45、 计费模型设置 0x58 * 用户充电费用计算,每半小时为一个费率段,共48段, * 每段对应尖峰平谷其中一个费率充电时桩屏幕按此费率分别显示已充电费和服务费 46、读取SIM卡号 0x76 47、远程重启 0x92 48、ota升级 49、启动充电 50、结束充电 51、设备启停测试用

常用聚合接口: 1、netty处理服务 2、发送获取实时数据命令0x12 3、远程账户余额更新 0x42 4、离线卡数据清除 0x46 5、离线卡数据查询 0x48 6、获取或者清除离线卡数据 7、工作参数设置 0x52 8、对时设置 0x56 9、计费模型设置 0x58 10、OTA升级 11、启动充电 12、结束充电

五、调试工具和效果

extending-a-theme

extending-a-theme

extending-a-theme

extending-a-theme

extending-a-theme

 七、云快充和OPCC

        云快充协议是基于互联网的充电服务模式,用户使用手机或其他智能设备进行充电。其核心流程包括用户认证、设备绑定、充电请求等步骤。云快充协议的优势在于其便捷性和高效性,通过云端平台管理充电桩,提高了充电效率和便利性‌。

        OCPP(欧洲电动汽车充电协议)由欧洲标准化委员会发布,广泛应用于欧洲。OCPP 1.6因其发布较早,已被大量现有的充电基础设施采用,具有较好的兼容性和成本效益。OCPP 2.0则是其升级版本,提供了更全面的设备管理、智能充电、安全性增强等功能,适合需要高级功能和安全性的应用场景‌。

        适用场景和优缺点比较

  • 云快充协议‌:

    • 优点‌:便捷高效,通过云端平台管理,提高了充电效率和用户体验。
    • 缺点‌:主要适用于中国市场,国际兼容性相对较弱。
  • OCPP协议‌:

    • 优点‌:全球广泛采用,兼容性强,提供全面的设备管理和智能充电功能,安全性高

标签:Netty,Java,SpringBoot,协议,绑定,离线,用户,充电,云快
From: https://blog.csdn.net/juzige03/article/details/144927014

相关文章

  • 技术栈:基于Java语言的陪诊系统_陪诊小程序_陪诊陪护系统
    一、市场背景分析        首先,随着社会的发展和人口老龄化的加剧,越来越多的家庭需要专业的医疗陪护服务。老年人口数量的不断增加,使得对医疗陪护的需求日益增长。同时,由于子女工作繁忙、异地居住等原因,许多老人在就医时面临无人陪伴的困境。此外,独居人群的增加以及医......
  • Java 8系列之重新认识HashMap6
     摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(JavaDevelopmetKit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Ja......
  • JavaScript介绍
    JavaScript是一种高级的、解释型的编程语言,在网页开发和许多其他应用场景中发挥着关键作用。一、起源与发展JavaScript诞生于1995年,由Netscape公司的BrendanEich开发。最初它的设计目的是为了让网页能够具有交互性,能够在浏览器端进行一些简单的表单验证、动画效果等操作......
  • Java 8系列之重新认识HashMap8
     摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(JavaDevelopmetKit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Ja......
  • Java 8系列之重新认识HashMap4
     摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(JavaDevelopmetKit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Ja......
  • java继承和多态之接口
    接口的概念接口是一种特殊的抽象类型,它只包含方法签名而没有方法体。接口定义了一组相关方法的契约,规定了实现类必须提供这些方法的具体实现。在Java中,接口使用interface关键字来定义。例如,定义一个简单的接口Drawable,它规定了任何实现这个接口的类都必须有一个draw方法:pu......
  • Java 8系列之重新认识HashMap10
     摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(JavaDevelopmetKit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Ja......
  • Java 8系列之重新认识HashMap4
     摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(JavaDevelopmetKit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Ja......
  • Java 8系列之重新认识HashMap6
     摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(JavaDevelopmetKit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Ja......
  • Java 8系列之重新认识HashMap8
     摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(JavaDevelopmetKit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Ja......