# LRJsonToStruct **Repository Path**: bushlyc/lrjson-to-struct ## Basic Information - **Project Name**: LRJsonToStruct - **Description**: JSON转换成结构体调试使用 - **Primary Language**: C/C++ - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2022-03-11 - **Last Updated**: 2025-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 简介 :smile: JSON分析工具是LR内部调试工具,可以基于本公司内部协议实现硬件设备的简单读取以及配置。本软件支持,网络,串口两种方式。 ![数据结构分析](https://foruda.gitee.com/images/1732175846185279012/9e4ebbca_7820924.png "屏幕截图") ![校准](https://foruda.gitee.com/images/1732175879829254938/21f887b7_7820924.png "屏幕截图") ### 核心特性 :star: - 通过自定义的简单语法,将其转换成类似C++结构体,以此对于数据进行分析与处理 - 可以实现本公司常见的,比例,偏移,7022三种校准模式 ### 如何编写描述文件 描述文件基于JSON格式,如果没有了解过JSON,建议花20分钟了解一下JSON。 下面贴上一个最简单的配置文件,此配置可以让您读取系统参数中的MyName字段 ``` { "CommType": "net", "EquIdStr": "GCS31BConfigData", "UartBaud": 19200, "UartAddr": 1, "UDPPort": 2305, "Structs": [ { "Name": "系统参数", "ParaStaAdd": 186, "MemberPool": [ { "Name": "MyName", "Hint": "设备名称123", "Type": "char", "Count": 64 } ] } ], "Calibs": [ { "Name" : "校准Uab保护", "Type": 0, "MeasVal": "6004,s32", "CalibVal": "5002,u16", "DestVal": 1000, "CalibCnt": 20 } ] } ``` 文件分为三个分区 - 基础功能区: 也就是指定通讯参数,还有设备识别字的区域。 - 结构体功能区 :star: : 最主要的分区,用于描述C++数据结构,然后分析硬件设备数据。 - 校准功能区: 需要对电流电压等进行测算的设备,常常需要进行校准,这里便是描述校准。 #### 关键字 ##### 基础功能区 | 字段 | 功能 | |----------|---------------------------| | CommType | 通讯类型 "net":网络 "serial":串口 | | EquIdStr | 设备识别字 | | UartBaud | 波特率 | | UartAddr | 串口地址(用于结构体内部) | | UDPPort | UDP端口 | | Structs | 结构体功能区(下面详细介绍) | | Calibs | 校准功能区(下面详细介绍) | ##### 结构体功能区 | 字段 | 功能 | |------------|---------------------| | Visible | true: 显示 false: 不显示 | | Name | 名称 | | ParaStaAdd | 起始地址 | | MemberPool | 成员(下面详细介绍) | 下面是MemberPool的详细介绍 | 字段 | 功能 | |------|------------------| | Name | 名称 | | Type | 数据类型 支持如下 “char” “u8” “u16” “s16” “u32” “s32” “s64” “u64” | | Count | 数组长度,若此字段不是数组,那么此字段可以省略 | | Hint | 提示,鼠标移动到相应成员上,会提示此字段 | ##### 校准功能区 | 字段 | 功能 | |----------|------------------------------| | Name | 名称 | | Type | 类型 0: 比例校准 1: 偏移校准 2: 7022校准 | | MeasVal | 测量值,格式 {偏移}:{数据类型} | | CalibVal | 校准值,格式 {偏移}:{数据类型} | | CalibExtVal| 扩展校准值,仅仅用于偏移校准,格式 {偏移}:{数据类型} | | DestVal | 目标校准值,会显示在页面上,可以手动修改 | | CalibCnt | 采样次数 | :exclamation: 注意: 7022校准模式下,CalibVal字段的{数据类型}没用,但是依然要写,可以随便写一个。 ### 三种校准方式的说明 #### 比例校准 ![比例校准](https://foruda.gitee.com/images/1732181148543218075/691edaec_7820924.png "屏幕截图") #### 偏移校准 ![输入图片说明](https://foruda.gitee.com/images/1732181272693125300/3001408f_7820924.png "屏幕截图") #### 7022校准 ![7022校准](https://foruda.gitee.com/images/1732181191122362442/f4fd3ca0_7820924.png "屏幕截图") ### 计划添加以下特性 - 透传通讯方式 - 数据示波器 - 组态配置工具