LVGL相关与JSON-RPC相关-RZMPU工业控制教程连载(49)

瑞萨MCU小百科 2025-01-10 12:05

13.2.3 LVGL前台程序功能

提供界面操作:

①增加、设置、删除“点”。

②读、写“点”。

③配置MQTT信息。

④升级传感器。


这些操作,都是通过RPC接口跟后台程序(控制中心)进行交互,它不直接操作硬件。


13.2.4 mqtt_client_app功能

它的功能为:

①通过RPC接口更后台程序(控制中心)进行交互:获得MQTT信息、获得点的信息、读写点。

②跟MQTT Broker通信:发布消息、订阅消息。

③发布消息时:通过RPC接口读取传感器信息。

④订阅消息时:得到消息后,通过RPC接口设置传感器。


13.2.5 modbus_tcp_server功能

模拟一个Modbus TCP传感器,处理后台程序(控制中心)发来的读写请求。


13.3 JSON-RPC示例与情景分析

理解了JSON-RPC的使用,再阅读本项目会容易很多。


使用C语言实现的JSON-RPC代码位于GIT仓库,它依赖于libev库。(您可复制下方链接至浏览器,或扫描二维码查看)


GIT仓库

https://github.com/hmng/jsonrpc-c


本节程序在如下目录:


13.3.1 服务器程序启动

服务器程序、客户端程序的源码都在如下文件里:


参考《13.3.5 上机实验》,启动服务器程序后,它的核心代码如下:

左右滑动查看完整内容

152 int RPC_Server_Init(void)153 {154 int err;155156 err = jrpc_server_init(&my_server, PORT);157 if (err)158 {159 printf("jrpc_server_init err : %d\n", err);160 }161162 jrpc_register_procedure(&my_server, say_hello, "sayHello", NULL );163 jrpc_register_procedure(&my_server, add, "add", NULL );164165 jrpc_server_run(&my_server);166 jrpc_server_destroy(&my_server);167168 return 0;169 }


  • 第156行,初始化服务器,使用端口“PORT”,它被定义为1234(可以修改)。


  • 第162~163行,注册2个函数:前台程序使用传来参数“sayHello”时会导致say_hello程序被调用;前台程序使用传来参数“add”时会导致add程序被调用。


  • 第165行:循环等待前台程序发来请求,收到请求后处理请求。


13.3.2 客户端程序发出请求

参考《13.3.5 上机实验》,假设执行了如下命令:

$ ./rpc add 3 4


它执行的代码如下:

左右滑动查看完整内容

193 int sum;194 int fd = RPC_Client_Init();195196 if (fd < 0)197 {198 printf("RPC_Client_Init err : %d\n", fd);199 return -1;200 }201202 if (argc == 4 && !strcmp(argv[1], "add"))203 {204 int a = (int)strtoul(argv[2], NULL, 0);205 int b = (int)strtoul(argv[3], NULL, 0);206 int err = rpc_add(fd, a, b, &sum);


  • 第194行,初始话客户端,就是连接服务器。

  • 第206行:调用rpc_add函数。


rpc_add函数代码如下:

左右滑动查看完整内容

16 int rpc_add(int iSocketClient, int a, int b, int *sum)17 {18 char buf[100];19 int iLen;20 sprintf(buf, "{\"method\": \"add\", \"params\": [%d,%d], \"id\": \"2\" }", a, b);21 iLen = send(iSocketClient, buf, strlen(buf), 0);22 if (iLen == strlen(buf))23 {24 while (1)25 {26 iLen = read(iSocketClient, buf, sizeof(buf));27 buf[iLen] = 0;28 if (iLen == 1 && (buf[0] == '\r' || buf[0] == '\n'))29 continue;30 else31 break;32 }3334 if (iLen > 0)35 {36 cJSON *root = cJSON_Parse(buf);37 cJSON *result = cJSON_GetObjectItem(root, "result");38 *sum = result->valueint;39 cJSON_Delete(root);40 return 0;41 }42 else43 {44 printf("read rpc reply err : %d\n", iLen);45 return -1;46 }47 }48 else49 {50 printf("send rpc request err : %d, %s\n", iLen, strerror(errno));51 return -1;52 }53 }


  • 第20行:构造一个JSON字符串,里面有:

    ①“\"method\":\"add\"”:这表示要调用服务器的add函数

    ②“\"params\":[%d,%d]”:这表示传递给add函数的参数

    ③“\"id\":\"2\"”:ID,这不重要。


13.3.3 服务器处理请求

服务器接收到网络数据后,根据里面的“method”值调用add函数。


add函数代码如下:

左右滑动查看完整内容

117 cJSON * add(jrpc_context * ctx, cJSON * params, cJSON *id) {118 char buf[100];119 cJSON * a = cJSON_GetArrayItem(params,0);120 cJSON * b = cJSON_GetArrayItem(params,1);121 return cJSON_CreateNumber(a->valueint + b->valueint);122 }


  • 第119~120行:从JSON格式的参数里提取出2个整数。

  • 第121行:求和,然后返回一个JSON格式的数据。


13.3.4 客户端程序解析数据

在《13.3.2 客户端发出请求》的第36~38行代码中,就是解析服务器程序返回的结构体。


13.3.5 上机实验

本节在Ubuntu中做实验。先编译libev库,再编译jsonrpc库,最后编译、执行测试程序json-rpc_test。


假设这3个文件放在同一个目录下:

左右滑动查看完整内容

$ lsjsonrpc-c_pc.tar.bz2 json-rpc_test.tar.bz2 libev_pc.tar.bz2


1.编译libev库

操作命令如下:

左右滑动查看完整内容

$ tar xjf libev_pc.tar.bz2$ cd libev_pc/$ CC=gcc ./configure --prefix=$PWD/tmp$ make -j 16$ make install$ ls tmp/include lib share


2.编译jsonrpc库

操作命令如下:

左右滑动查看完整内容

$ tar xjf jsonrpc-c_pc.tar.bz2$ cd jsonrpc-c_pc/$ autoreconf -i$ CC=gcc ./configure --prefix=$PWD/tmp$ make -j 16$ make install$ ls tmp/include lib


3.编译测试程序

操作命令如下:

$ tar xjf json-rpc_test.tar.bz2$ cd json-rpc_test/$ make


4.执行程序

操作命令如下:

$ ./rpc server &[1] 15028$ ./rpc add 2 6sum = 8$ ./rpc hello 100askHello, 100ask


注意:如果要重新运行rpc服务器程序,需要先关闭它,可以执行如下命令:

$ killall rpc


需要产品及方案支持

请扫码登记


需要技术支持?

如您在使用瑞萨MCU/MPU产品中有任何问题,可识别下方二维码或复制网址到浏览器中打开,进入瑞萨技术论坛寻找答案或获取在线技术支持。

https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/



未完待续


推荐阅读

Modbus RTU客户端及服务器端的编程与实验 - RZ MPU工业控制教程连载(43)


Modbus TCP编程与实验 - RZ MPU工业控制教程连载(44)

LVGL开发入门 - RZ MPU工业控制教程连载(45)

更多精彩,敬请关注

需要产品及方案支持

请扫码登记



评论 (0)
  • 一、行业背景与市场需求高血压作为全球发病率最高的慢性病之一,其早期监测与管理已成为公共卫生领域的重要课题。世界卫生组织数据显示,全球超13亿人受高血压困扰,且患者群体呈现年轻化趋势。传统血压计因功能单一、数据孤立等缺陷,难以满足现代健康管理的需求。在此背景下,集语音播报、蓝牙传输、电量检测于一体的智能血压计应运而生,通过技术创新实现“测量-分析-管理”全流程智能化,成为慢性病管理的核心终端设备。二、技术架构与核心功能智能血压计以电子血压测量技术为基础,融合物联网、AI算法及语音交互技术,构建起多
    广州唯创电子 2025-04-23 09:06 169浏览
  •   通用装备论证与评估系统平台解析   北京华盛恒辉通用装备论证与评估系统平台是服务军事装备全生命周期管理的综合性信息化平台,通过科学化、系统化手段,实现装备需求论证、效能分析等核心功能,提升装备建设效益。   应用案例   目前,已有多个通用装备论证与评估系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润通用装备论证与评估系统。这些成功案例为通用装备论证与评估系统的推广和应用提供了有力支持。   一、系统分层架构   (一)数据层   整合装备性能、作战、试验等多源异
    华盛恒辉l58ll334744 2025-04-24 16:14 70浏览
  •   有效样本分析决策系统平台全面解析   一、引言   北京华盛恒辉有效样本分析决策系统在当今数据驱动的时代,企业、科研机构等面临着海量数据的处理与分析挑战。有效样本分析决策系统平台应运而生,它通过对样本数据的精准分析,为决策提供有力支持,成为提升决策质量和效率的关键工具。   应用案例   目前,已有多个有效样本分析决策系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润有效样本分析决策系统。这些成功案例为有效样本分析决策系统的推广和应用提供了有力支持。   二、平台概述
    华盛恒辉l58ll334744 2025-04-24 11:13 87浏览
  •   无人机结构仿真与部件拆解分析系统平台解析   北京华盛恒辉无人机结构仿真与部件拆解分析系统无人机技术快速发展的当下,结构仿真与部件拆解分析系统平台成为无人机研发测试的核心工具,在优化设计、提升性能、降低成本等方面发挥关键作用。以下从功能、架构、应用、优势及趋势展开解析。   应用案例   目前,已有多个无人机结构仿真与部件拆解分析系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润无人机结构仿真与部件拆解分析系统。这些成功案例为无人机结构仿真与部件拆解分析系统的推广和应用提
    华盛恒辉l58ll334744 2025-04-23 15:00 201浏览
  •   电磁频谱数据综合管理平台系统解析   一、系统定义与目标   北京华盛恒辉电磁频谱数据综合管理平台融合无线传感器、软件定义电台等前沿技术,是实现无线电频谱资源全流程管理的复杂系统。其核心目标包括:优化频谱资源配置,满足多元通信需求;运用动态管理与频谱共享技术,提升资源利用效率;强化频谱安全监管,杜绝非法占用与干扰;为电子战提供频谱监测分析支持,辅助作战决策。   应用案例   目前,已有多个电磁频谱数据综合管理平台在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁频谱数
    华盛恒辉l58ll334744 2025-04-23 16:27 190浏览
  •   后勤实验仿真系统平台深度解析   北京华盛恒辉后勤实验仿真系统平台依托计算机仿真技术,是对后勤保障全流程进行模拟、分析与优化的综合性工具。通过搭建虚拟场景,模拟资源调配、物资运输等环节,为后勤决策提供数据支撑,广泛应用于军事、应急管理等领域。   应用案例   目前,已有多个后勤实验仿真系统平台在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润后勤实验仿真系统平台。这些成功案例为后勤实验仿真系统平台的推广和应用提供了有力支持。   一、核心功能   (一)后勤资源模拟
    华盛恒辉l58ll334744 2025-04-23 15:39 165浏览
  • 前言本文主要演示基于TL3576-MiniEVM评估板HDMI OUT、DP 1.4和MIPI的多屏同显、异显方案,适用开发环境如下。Windows开发环境:Windows 7 64bit、Windows 10 64bitLinux开发环境:VMware16.2.5、Ubuntu22.04.5 64bitU-Boot:U-Boot-2017.09Kernel:Linux-6.1.115LinuxSDK:LinuxSDK-[版本号](基于rk3576_linux6.1_release_v
    Tronlong 2025-04-23 13:59 134浏览
  •   高海拔区域勤务与装备保障调度系统平台解析   北京华盛恒辉高海拔区域勤务与装备保障调度系统平台专为高海拔特殊地理环境打造,致力于攻克装备适应、人员健康保障、物资运输及应急响应等难题。以下从核心功能、技术特点、应用场景及发展趋势展开全面解读。   应用案例   目前,已有多个高海拔区域勤务与装备保障调度系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润高海拔区域勤务与装备保障调度系统。这些成功案例为高海拔区域勤务与装备保障调度系统的推广和应用提供了有力支持。   一、核心
    华盛恒辉l58ll334744 2025-04-24 10:13 86浏览
  •   航空兵训练与战术对抗仿真平台系统解析   北京华盛恒辉航空兵训练与战术对抗仿真平台系统是现代军事训练的关键工具,借助计算机技术构建虚拟战场,支持多兵种协同作战模拟,为军事决策、训练及装备研发提供科学依据。   应用案例   目前,已有多个航空兵训练与战术对抗仿真平台在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润航空兵训练与战术对抗仿真平台。这些成功案例为航空兵训练与战术对抗仿真平台的推广和应用提供了有力支持。   一、系统架构与核心功能   系统由模拟器、计算机兵力生
    华盛恒辉l58ll334744 2025-04-24 16:34 82浏览
  • 一、技术背景与市场机遇在智能家居高速发展的今天,用户对家电设备的安全性、智能化及能效表现提出更高要求。传统取暖器因缺乏智能感知功能,存在能源浪费、安全隐患等痛点。WTL580-C01微波雷达感应模块的诞生,为取暖设备智能化升级提供了创新解决方案。该模块凭借微波雷达技术优势,在精准测距、环境适应、能耗控制等方面实现突破,成为智能取暖器领域的核心技术组件。二、核心技术原理本模块采用多普勒效应微波雷达技术,通过24GHz高频微波信号的发射-接收机制,实现毫米级动作识别和精准测距。当人体进入4-5米有效
    广州唯创电子 2025-04-23 08:41 161浏览
  •   陆地边防事件紧急处置系统平台解析   北京华盛恒辉陆地边防事件紧急处置系统平台是整合监测、预警、指挥等功能的智能化综合系统,致力于增强边防安全管控能力,快速响应各类突发事件。以下从系统架构、核心功能、技术支撑、应用场景及发展趋势展开全面解读。   应用案例   目前,已有多个陆地边防事件紧急处置系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润陆地边防事件紧急处置系统。这些成功案例为陆地边防事件紧急处置系统的推广和应用提供了有力支持。   一、系统架构   感知层:部
    华盛恒辉l58ll334744 2025-04-23 11:22 126浏览
  •   陆地装备体系论证与评估综合平台系统解析   北京华盛恒辉陆地装备体系论证与评估综合平台系统是契合现代军事需求而生的专业系统,借助科学化、智能化手段,实现对陆地装备体系的全方位论证与评估,为军事决策和装备发展提供关键支撑。以下从功能、技术、应用及展望展开分析。   应用案例   目前,已有多个陆地装备体系论证与评估综合平台在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润陆地装备体系论证与评估综合平台。这些成功案例为陆地装备体系论证与评估综合平台的推广和应用提供了有力支持。
    华盛恒辉l58ll334744 2025-04-24 10:53 98浏览
  • 故障现象一辆2016款奔驰C200L车,搭载274 920发动机,累计行驶里程约为13万km。该车组合仪表上的防侧滑故障灯、转向助力故障灯、安全气囊故障灯等偶尔异常点亮,且此时将挡位置于R挡,中控显示屏提示“后视摄像头不可用”,无法显示倒车影像。 故障诊断用故障检测仪检测,发现多个控制单元中均存储有通信类故障代码(图1),其中故障代码“U015587 与仪表盘的通信存在故障。信息缺失”出现的频次较高。 图1 存储的故障代码1而组合仪表中存储有故障代码“U006488 与用户界
    虹科Pico汽车示波器 2025-04-23 11:22 101浏览
  •   复杂电磁环境模拟系统平台解析   一、系统概述   北京华盛恒辉复杂电磁环境模拟系统平台是用于还原真实战场或特定场景电磁环境的综合性技术平台。该平台借助软硬件协同运作,能够产生多源、多频段、多体制的电磁信号,并融合空间、时间、频谱等参数,构建高逼真度的电磁环境,为电子对抗、通信、雷达等系统的研发、测试、训练及评估工作提供重要支持。   应用案例   目前,已有多个复杂电磁环境模拟系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润复杂电磁环境模拟系统。这些成功案例为复杂电
    华盛恒辉l58ll334744 2025-04-23 10:29 180浏览
  •   海上训练与保障调度指挥平台系统解析   北京华盛恒辉海上训练与保障调度指挥平台系统是现代海上作战训练的核心枢纽,融合信息技术、GIS、大数据及 AI 等前沿技术,旨在实现海上训练高效组织、作战保障科学决策。以下从架构功能、应用场景、系统优势及发展挑战展开解读。   应用案例   目前,已有多个海上训练与保障调度指挥平台在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润海上训练与保障调度指挥平台。这些成功案例为海上训练与保障调度指挥平台的推广和应用提供了有力支持。   一
    华盛恒辉l58ll334744 2025-04-24 15:26 70浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦