当前位置: 首页 > news >正文

如何使用EBHelper 简化EdgeBus的代码编写?

EBHelper是一款专为简化 EB 代码开发设计的插件工具。用户仅需完成JSON 格式配置文件,即可快速实现设备通信与数据上报,无需编写代码。

核心功能与支持规约

  • 设计目标:简化开发流程,通过配置实现通信。
  • 支持协议
  • Modbus
  • DL/T 645
  • Any(自定义任意格式)

数据结构定义

EB 上行标准帧结构

上行事件采用固定格式封装原始数据:

字段名偏移长度 (Bytes)含义说明
version01协议版本号
dataType11数据类型编码
covStatus21保留字节(供内部 COV 处理)
status31查询事件状态
battery41电池电量
addr[]5n子设备地址(Modbus 为 1 字节,DL/T 645 为 6 字节)
appData[]5+nm应用层原始数据(解析由物模型完成)

配置项详解

上行事件配置(主配置)

用于定义数据上报通道及周期。

  • 基础项name(标识名),port(端口, 默认 22),addrSize(地址长度)。
  • 版本控制version(默认 0x83),dataType(自动递增)。
  • 周期策略
  • 优先级upPeriod>upPeriodIndex> 默认不触发。
  • 动态调整:推荐使用upPeriodIndex(起始地址 70,4 字节对齐)。

3.2. 查询事件配置 (quInfo)

定义如何向子设备发起请求。

  • 协议参数:支持protocol,code(功能码),addr(设备地址)。
  • 数据注入:通过indexAPP,indexCMD,copySize可将 App 参数动态写入命令帧,避免硬编码。
  • 校验与触发
  • isLast: 设为true时,该查询完成后立即触发数据上行。
  • listTag: 用于回复报文的基础校验。

3.3. 数据处理与 COV (listVal)

定义从回复报文中提取数据的规则及变化上报 (COV)策略。

  • 提取范围startend闭区间。在 Modbus 中代表寄存器地址,非偏移量。
  • COV 机制
  • 支持Uint8/16/32,Int8/16/32,Float(大/小端)。
  • 触发条件:采集值与上次发送值的差值绝对值 >covAppIndex存储的阈值。

最佳实践建议

效率优化

  • 减少查询次数:尽量用单次查询获取连续数据,即使包含少量无效字节(回复报文支持达 250 字节)。
  • 分包原则:若无效数据超过 50 字节,建议拆分为多个查询事件。

参数规划

  • 动态化:优先使用Index类配置(如upPeriodIndex),便于后期无需重新编译即可调整参数。
  • 内存分配参考
  • 70+:周期相关参数。
  • 110+:COV 阈值缓存区。
  • 150+:动态参数源地址。

周期单位参考

支持:s(秒),m(分),h(时),d(天),y(年)。

示例:"900s"表示 900秒。

参考示例

import { Buffer } from "buffer"; import { buildOtaFile } from "@EBSDK/run"; import { ActionAfertExpr, CalcData, CrcMode, CvtRule, EBBuffer, EBModel, ExprCondition, LoraUpEvent, QueryEvent, SetUpCovDataType, UserConfUPItem,EventInfoItem } from "@EBSDK/EBCompiler/all_variable"; import { CheckbitEnum, getOtaConfig, HwTypeEnum, UpgrdTypeEnum } from "@EBSDK/otaConfig"; //////////////////////////////////////////////////////////////////////////////////////// const eventInfo:UserConfUPItem[]=[ { name:"transh",dataType:"0x23",upPeriodIndex:70, // port:22, version:"0x83",upPeriod:"900s", quInfo:[ { protocol:"modbus",addr:"0x02",code:"0x03", periodIndex:74, //indexAPP:150, indexCMD:0, copySize:4,period:"900s",isLast:false,payIndex:3,ackAddrIndex:0, listVal:[ { start: "0", end: "1" ,covType:"Uint32BE",covAppIndex:110}, { start: "2", end: "3" ,covType:"Uint32BE",covAppIndex:110}, { start: "4", end: "7" }, ] },{ protocol:"modbus",addr:"0x01",code:"0x03",periodIndex:74, //indexAPP:-1, indexCMD:0, copySize:4,period:"300s",//isLast:false,payIndex:3,ackAddrIndex:0, hook:false listVal:[ { start: "0x0102", end: "0x0102",covType:"Uint16BE",covAppIndex:114} //,covAppIndex ] } ] } ] let otaConfig = getOtaConfig({ SwVersion:31, BaudRate: 9600, StopBits: 1, DataBits: 8, Checkbit: CheckbitEnum.NONE, Battery: false, // 非电池供电,Class C模式 ConfirmDuty: 60, BzType: 10105, BzVersion: 11 }) const MODBUS_TT = (ebModel: EBModel) => { for (let i=0; i<eventInfo.length; i++){ let event=new EventInfoItem(eventInfo[i]); event.upEventSetup() event.eventInstall() } return JSON.stringify(ebModel, null, 2) }
http://www.jsqmd.com/news/341203/

相关文章:

  • 2026年2月重磅测评:头部麻将机品牌技术迭代能力与商业适配性全解析 - 品牌推荐
  • 2025中国AI智能体百强唯一BI厂商!白泽连获多项权威奖项与榜单认可
  • 创作的第256天:当技术博客成为我的第二份“原理图”
  • 分析北京政府机关食堂承包专业企业,哪家口碑好 - 工业推荐榜
  • 深入浅出地理解 C# WPF 中的​属性
  • 2026年泉州美术艺考机构口碑排名,纵横美术艺考集训学费情况 - mypinpai
  • OpenClaw是什么?2026年OpenClaw(Clawdbot)一键部署教程
  • 从MOOG产能扩张解析2000亿市场投资机会:商业航天+人形机器人双轮驱动航天伺服行业爆发
  • 2026年福州口碑好的美术艺考培训机构推荐,纵横美术艺考全解析 - 工业设备
  • DeepSeek 崩了?GPT-5.2 灰度内测?手把手教你用“向量引擎”构建永不宕机的 AI 中台(附 Sora2/Veo3 实战源码)
  • 2026年OpenClaw(Clawdbot)快速部署的几种方法
  • 聊聊苏州口碑好的医药车间净化板漆面修复机构,哪家性价比高 - myqiye
  • 2026年猫粮品牌推荐:全阶段科学喂养趋势评测,涵盖幼猫与成猫营养需求 - 品牌推荐
  • 分子模拟耗时久的底层逻辑与科研效率提升方案解析
  • 一文掌握Python四大核心数据结构:变量、结构体、类与枚举 - 教程
  • 2026年清污机市场评测:哪些品牌值得推荐?回转式格栅清污机/精密过滤器微滤机,清污机品牌有哪些 - 品牌推荐师
  • 丝印机哪家强?2025本地口碑公司排行榜出炉,丝印机生产厂家精选优质品牌解析 - 品牌推荐师
  • 网络安全工程师 5 年还是大头兵,身体累心更累,厌倦内卷却无路可去该怎么办?
  • 2026年猫粮品牌推荐:基于权威机构评价,针对肠胃敏感与毛发护理痛点 - 品牌推荐
  • 网络安全每日的工作内容,还不知道你就亏大了!
  • 如何通过FCKEditor实现Word图片粘贴后自动转存至服务器?
  • 2026年杭州有实力的GEO优化公司推荐榜单,GEO优化AI工具排名/GEO优化AI搜索,GEO优化实力厂家口碑推荐榜 - 品牌推荐师
  • 计算机毕业设计springboot订餐系统 SpringBoot 智慧餐厅在线点餐平台 基于SpringBoot的校园外卖订餐管理平台
  • 代码随想录算法训练营第二十五天| 455.分发饼干、376. 摆动序列、53. 最大子序和
  • 2026年 销售管理软件厂家推荐排行榜,制造业/工厂/外贸/内贸/渠道多场景覆盖,智能绩效看板与客户流失预警系统深度解析 - 品牌企业推荐师(官方)
  • Mac 扩展坞(Dock)总是跑到副屏?一个非常有效的解决方法记录
  • 2026年猫粮品牌推荐:居家喂养场景深度评测,解决营养与适口性痛点并附购买排名 - 品牌推荐
  • 内网环境下,html5如何支持大文件的分块上传?
  • 怎么才能系统的学好学透网络安全?学到后面感觉东西越来越多
  • vue框架如何处理内网大文件的目录结构上传?