助力开发者“低代码”开发 翼辉开源C语言代码生成工具JStruct

EdgerOS EdgerOS 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

       近日,为了帮助程序员节省代码开发量,翼辉信息董事长、SylixOS 嵌入式操作系统、EdgerOS 新一代智能边缘计算操作系统创始人韩辉发布并开源了极其有用的代码生成器-JStruct。该工具使用 JavaScript 编写,可以运行在 JSRE 或者 Node.js 环境中,其生成的代码相当于在 C/C++ 环境中直接使用 JSON.parse 与 JSON.stringify。JStruct 降低了 C 语言嵌入式编程的门槛,而它的开源是翼辉在简化设备端开发道路上迈出的第一步。

 

       JSON 作为现在最主流的数据交换语言之一,其简洁、清晰的层次结构相较于其他数据描述语言更加易读、易编写。随着互联网技术的迅猛发展,JSON 在各行业应用中脱颖而出。由于语言优势, JavaScript 可以非常轻松地将 JSON 数据转换为应用对象,反之也可以很容易的将应用对象转换为 JSON 数据。但这种顺畅的体验也只能在 JavaScript 中体会到,尤其像 C 语言这样的强类型语言,想要使用 JSON 来完成数据传输,相较于 JavaScript 而言则要复杂的多。

       在 C 语言编程中通常会引入 cJSON 来完成对 JSON 数据的生成、操作、解析等操作。虽然 cJSON 的 API 简单易用,但相对于 JavaScript 简洁的声明式语法,其可读性还存在明显差距。试想在具体的业务场景中可能会设计很多的 JSON 结构,而构建这些 JSON 数据结构的 C 语言代码大同小异。一旦数据结构多到了一个量级,那么这样的编程就成了重复的体力劳动且极容易出错。那么有没有更好的方案来让我们能使用声明式的方式,直接生成 C 语言代码,把自己从这样枯燥无趣的体力劳动中解放出来? 答案就是 “JStruct”。

       JStruct 是一个可以运行在 Node.js 和 JSRE 平台上的 C 语言 JSON 结构代码生成工具,只需要通过一个简单的配置文件,便可以生成一套完整的定制化 JSON 数据结构处理的 C 代码。

       通过引入 JStruct 所生成的 test_jstruct.h,C 代码中可以直接使用结构体编程,像 JavaScript 一样进行对象成员的赋值与转换。因为 JSON 字段与结构体成员一一对应,代码结构将更加清晰、友好。这样的开发模式与数据调用方式也更容易让上层应用开发人员理解和使用,降低了开发所需的代码量。如果开发过程中 JSON 结构需要改动,也仅仅只需要修改配置文件重新生成替换即可。

        由于使用了 JSON 声明的配置形式,使得无论是应用端还是设备端开发者都可以根据 conf.json 的内容清晰了解到数据结构和类型,这样极大地降低了设备端与应用端的交流成本。

       万物互联的目的实质就是打通数据连接,如何更加方便快速地完成数据的构建,解析,处理则是达成万物互联目标的基础。 如果已经厌倦了 cJSON 的数据生成与解析的方式,不妨试试 JStruct ,相信一定会给你带来不同的 JSON 数据操作体验。

      热爱写代码、程序员出身的韩辉在 2006 年开始研发 SylixOS 系统,与团队一起写下百万行内核源代码,成为了现在翼辉信息的种子,SylixOS 相关内核代码开源并在工信部进行了源码自主率扫描,内核自主化率达到 100%。2021 年,韩辉带领翼辉爱智团队推出新一代智能边缘计算操作系统——爱智操作系统EdgerOS,基于 SylixOS 系统为内核进行开发,可为开发者提供低代码开发平台,快速抓住物联网时代创业契机。此次翼辉通过发布和开源代码生成器,可为程序员极大节约代码开发量,让开发工作更加便捷。翼辉爱智团队也一贯坚持以程序员和开发者的利益至上,未来将有更多优秀的小工具分批开放提供使用。

JStruct 地址:https://github.com/hanhui03/jstruct

 

 

...全文

相关推荐

jstruct-demo:一个简单的 Javolution 演示

jstruct-demo 一个简单的 Javolution 演示

两只妖精同上树

jstruct:将字节解释为打包的二进制数据

构造 将字节解释为打包的二进制数据 ##安装 Gradle implemention ' com.lingyun.lib:jstruct:0.0.8 ' 玛文 < dependency> < groupId>com.lingyun.lib</ groupId> < artifactId>jstruct</ artifactId> < version>0.0.8</ version> </ dependency> 格式化字符串 格式字符串是用于在打包和拆包数据时指定预期布局的机制。 它们是由“构建的,“指定了要打包/解包的数据类型。 此外,还有一些特殊字符可用于控制。 字节顺序,大小和对齐方式 默认情况下,C类型以计算机的本机格式和字节顺序表示,并在必要时通过跳过填充字节来正确对齐(根据C编译器使用的规则)。 或者,根据下表,格式字符串的第一个字符可用于指示字节

管墨迪

shared-structs-presentation:关于如何使用结构在cc ++,Node.js和worker之间传输数据的演示

共享结构演示 关于使用结构在c / c ++,Node.JS和worker之间传输数据的演示 执照 麻省理工学院

孙洋 Sonya

struts2学习心得

struts2学习心得,总结了struts2的常用方法,经验

cjzm888

【工业自动化】欧姆龙PLC产品线与编程软件应用:从选型架构到调试排错的全流程技术指南

内容概要:本文《欧姆龙PLC与编程软件完全手册》系统介绍了欧姆龙PLC的产品架构、软件体系、通信协议、选型策略及编程调试技巧。重点区分了两大技术平台:基于CX-Programmer的传统C系列(CP/CJ/CS)与基于Sysmac Studio的新一代Sysmac平台(NJ/NX/NY),强调二者在软件生态、寻址方式和通信架构上的根本差异。手册详细对比了各系列PLC的性能参数,并提供与西门子产品的功能对标,帮助用户快速定位。深入讲解了编程操作中的关键问题,如任务结构设计、间接寻址、FB封装陷阱、在线调试五件套等,特别指出“FB使能关闭时状态不初始化”等易出错点。最后汇总了选型路径与现场避坑清单,极具实战指导价值。; 适合人群:具备一定工业自动化基础,从事PLC编程、设备调试、系统集成的研发工程师和技术人员,尤其是从西门子平台转向欧姆龙或参与新项目选型的1-5年经验从业者。; 使用场景及目标:① 新项目选型时判断应选用C系列还是Sysmac平台;② 编程调试过程中掌握高效操作技巧与常见问题排查方法;③ 实现跨平台迁移、系统升级或接手他人项目时规避架构与逻辑陷阱;④ 提升对欧姆龙PLC任务机制、间接寻址、FB设计等高级功能的理解与应用能力。; 阅读建议:本手册理论结合实践,建议按“先架构后操作”的顺序阅读,重点章节需结合实际工程反复演练。特别是FB设计规范、任务切换处理、强制操作收尾流程等内容,应在仿真环境中验证后再应用于现场。注意版本匹配问题,操作前确认所用软件与控制器固件版本兼容。

莫问西东LJ
评论 2
收藏 已收藏
分享
返回顶部