RPC(Remote Procedure Call Protocol)即远程过程调用,也就是调用的函数是在其它的控制板上运行的,不需要理会底层的通讯协议。现在大型设备通常有超过5块控制板,这些控制板通过485/CAN/以太网组成一个局域网。通讯协议可以使用Modbus或者自定义。。。
多模块组网,实现模块化,减少电气布线便于维护:
远程调用数据流:
这些控制板的硬件基本都一样(电机,传感器。。),底层驱动程序也一样,只是上层的业务逻辑的差别,在驱动层封装一层rpc,能进一步简化业务逻辑开发,使得控制从机的电机 动作和本机的函数接口一样.
动作 传感器映射
映射是把本地动作编号 传感器编号映射到从机模块的动作编号和传感器编号,这个是在上电初始化时完成.
enum
{
HOST=0,//本机编号
SLAVE1,
SLAVE2,
};
l->MapRemoteAction(201,SLAVE1,1); //动作201映射到从机1的1号动作
l->MapRemoteAction(301,SLAVE2,1); //动作301映射到从机2的1号动作
l->MapRemoteSensor(X201,SLAVE1,X01);//把传感器X201映射到从机的X01
SLAVE1,SLAVE2是从机模块编号,通常是电路板上的拨码开关决定的.RPC组包时会把这些模块编号放在头部.
业务代码:
start(App):
l->WaitAction(201,STEP2,STEP_ERROR); //执行从机1动作201,动作正确完成就跳到step2,错误step_error
step2:
if(l->IsSenorOn(X201)) //从机1号传感器感应
{
l->WaitAction(301,STEP_OK,STEP_ERROR); //执行从机2的动作
}
else
{
l->SetActionOk();
}
step_ok:
l->SetActionOk();
step_error:
l->SetSubError();
end
上面的业务代码是没有任何通讯相关的流程,只是一些简单的函数调用和本地函数调用一模样
RPC层
RPC层主要完成数据组包,实时数据通讯,从机的动作 电机运动都是耗时过程,需要一定的时间才能完成,那么主机端的rpc层就需要不断查询从机的状态.App调用从机的动作时就同步等待从机的状态变化后继续向下执行.软件实现上需要单独一个线程或者类似于switch-case实时处理rpc的工作流程.
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
RPC
+关注
关注
0文章
87浏览量
11338 -
函数
+关注
关注
3文章
3248浏览量
60669 -
通讯协议
+关注
关注
9文章
227浏览量
19970
发布评论请先 登录
相关推荐
RPC的结构原理是什么?
远程过程调用(RPC)是一个协议,程序可以使用这个协议请求网络中另一台计算机上某程序的服务而不需知道网络细节。(过程调用有时也称作函数调用,或子例行程序调用。)RPC使用client/server模型。请求程序是client,而服务提供程序则为se
发表于 10-12 10:43
【学习打卡】OpenHarmony的RPC连接介绍
远程过程调用 (RPC)是一种用于构建基于客户端-服务器的分布式应用程序的强大技术。它基于对传统本地过程调用的扩展,因此被调用过程不必与调用过程存在于同一地址空间中。这两个进程可能在同一个系统上,也可能在
发表于 07-28 18:13
多核下基于RDMA的高效RPC研究
远程直接内存访问(remote direct memory access,RDMA)的远程过程调用(remote procedure call,RPC)设计在多核背景下存在的性能和扩展性问题,提出了一种新的基于RDMA Write的高效
发表于 09-26 15:27
•0次下载
OpenMV Cam上的RPC模块
rpc模块允许您将 OpenMV Cam 连接到另一台微控制器或计算机,并在 OpenMV Cam 上执行远程 Python(或过程)调用。
OpenDaylight中的RPC & Notification是什么
RPC和Notification,并从进程内外的通信开始,着重介绍远程过程调用和发布-订阅机制,然后分析MD-SAL的通信交互过程。
嵌入式远程过程调用组件--eRPC
RPC(Remote Procedure call)远程过程调用。其分为两部分:远程过程和过程调用。远程过程是指每台机器上提供的服务,过程调用就是对远程过程调用以及数据传输。 RPC用通
RPC接口与HTTP接口哪一个更好?
RPC接口都是生产上常用的接口,顾名思义,HTTP接口使用基于HTTP协议的URL传参调用,而RPC接口则基于远程过程调用。
发表于 06-13 09:18
•243次阅读
基于Client/Server架构的HTTP接口和RPC接口
RPC接口都是生产上常用的接口,顾名思义,HTTP接口使用基于HTTP协议的URL传参调用,而RPC接口则基于远程过程调用。
发表于 06-13 09:18
•206次阅读
RPC接口和HTTP接口的区别与联系
远程过程调用。 RPC(即Remote Procedure Call,远程过程调用)和HTTP(HyperText Transfer Protocol,超文本传输协议),两者前者是一种方法,后者则是一种
如何在放置过程中标注原理图符号?
何在放置过程中标注原理图符号?我发现的唯一方法是依次放置多个同类元器件,并配置属性中参考位号后面的数字。当我插入新的元器件时,标注总是一个问号。
评论