EmbedXrpc 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
EmbedXrpc 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: MIT
开发语言: C/C++
操作系统: 跨平台
收录时间: 2020-05-27
提 交 者: 白开水不加糖

EmbedXrpc 类似于 Google 的 GRPC,但是应用场景是单片机。RPC 远程调用极大的方便了开发,使得不必关注于协议解析,数据的序列化和反序列化等繁琐的工作。

  • 所用技术:C#做 IDL语言+csscript+自己实现序列化和反序列化+代码生成(Razor Engine) 
  • Sample1工程是例子。除了 main.cpp 的代码是手工写的之外,其他的代码都是工具生成的。
  • 应用场景:单片机近距离 Client/Server 交互场景(USB、串口、CAN(如 J1939 、ISO15765 协议等),)只要是流协议都支持
  • 编译此工程你需要安装 Qt5.14.2 和 Qt For Vs Addin 插件。

此工程演示了:

  • 客户端每一秒向服务端发送1、2 服务端计算出来 3 后,把 3 发送给客户端
  • 服务端每 1 秒广播当前的时间,客户端打印到控制台上

 

用户使用步骤

1、用vs2019 打开EmbedXrpcIdlParser.sln编译好。

2、在EmbedXrpcIdlParser\bin\Debug会出现一个EmbedXrpcIdlParser.exe,

3、编写你的IDL文件,目录下会有一个idltest1.cs 文件,是例子。如果你打算用这个文件的话,请记得改一下这个文件里的配置类

[FileName("idltest1.cs")]
public class OptionProcess:IOptionProcess
{
    public GenerationOption Process()
    {
        GenerationOption option = new GenerationOption();
        option.OutPutFileName = "StudentService";//输出的文件名
        option.CSharpNameSpace = "StudentService";//如果生成C#文件,这是生成的命名空间
        option.UserIncludes.Add("UserIncFile");//如果生成Cpp文件,生成的代码将会添加UserIncFile.h文件.如果你不需要,则不用写这条语句
        option.UserNamespace.Add("UserNameSpace");//如果生成C#文件,生成的代码将会添加using UserNameSpace;语句.如果你不需要,则不用写这条语句
        return option;
    }
}

记得保存.

4、执行命令

.\EmbedXrpcIdlParser.exe -g all -l cpp -i idltest1.cs -o yourPath

-g 代表生成client还是server 还是all

-l 代表生成cpp还是 cs

-o 代表生成的代码打算放到哪个目录

5、生成好代码后(我假定你生成在了A文件夹下,

其中:

A文件夹所有的文件(包括子目录下的) + EmbedXrpcRuntime/Cpp + EmbedXrpcRuntime/Cpp/Win32.Port = 客户端(上位机端)的源文件(如果上位机用C++开发)

A文件夹所有的文件(包括子目录下的) + EmbedXrpcRuntime/CS = 客户端(上位机端)的源文件(如果上位机用C#开发)

A文件夹所有的文件(包括子目录下的) + EmbedXrpcRuntime/Cpp + EmbedXrpcRuntime/Cpp/RT-Thread.Port = 服务端(单片机端)的源文件 目前支持RT-Thread

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

EmbedXrpc 的相关资讯

还没有任何资讯

EmbedXrpc 的相关博客

《痞子衡嵌入式半月刊》 第 9 期

痞子衡嵌入式半月刊: 第 9 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节...

《痞子衡嵌入式半月刊》 第 9 期

痞子衡嵌入式半月刊: 第 9 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节...

EmbedXrpc 的相关问答

还没有任何问答,马上提问

评论 (0)

加载中
更多评论
0 评论
3 收藏
分享
返回顶部
顶部