美文网首页
Apollo CyberRT 深入理解系列

Apollo CyberRT 深入理解系列

作者: 飞天小小猫 | 来源:发表于2020-08-29 18:27 被阅读0次

    Cyber Classloader : https://zhuanlan.zhihu.com/p/91322837

    Cyber Component : https://zhuanlan.zhihu.com/p/116782645

    component的工作流程大致如下:

    1. 通过继承"cyber::Component",用户自定义一个模块,并且实现"Init()"和"Proc()"函数。编译生成".so"文件。
    2. 通过classloader加载component模块到内存,创建component对象,调用"Initialize()"初始化。(Initialize中会调用Init)
    3. 创建协程任务,并且注册"Process()"回调,当数据到来的时候,唤醒对象的协程任务执行"Process()"处理数据。(Process会调用Proc)

    DataVisitor和DataDispatcher : https://zhuanlan.zhihu.com/p/117318368

    数据的访问都是通过"DataVisitor"来实现,数据的分发通过"DataDispatcher"来实现。reader中也是通过DataVisitor来访问数据,在reader中订阅对应的DataDispatcher。

    也就是说如果要订阅一个通道,首先是在reader中注册消息的topic,绑定DataDispatcher,之后对应通道的消息到来之后,触发DataDispatcher分发消息,而DataDispatcher通过DataVisitor中的Notify唤醒协程,从DataVisitor中获取消息,并执行协程中绑定的回调函数,以上就是整个消息的收发过程。

    数据处理流程 : https://zhuanlan.zhihu.com/p/115046708

    image

    Cyber通信上层:https://blog.csdn.net/qq_25762163/article/details/103803032

    Cyber通信底层:https://blog.csdn.net/qq_25762163/article/details/103895527

    Cyber C++共享内存通信的实现: https://blog.csdn.net/qq_25762163/article/details/103945289

    Apollo 3.5 Cyber 多進程通訊模塊 - Transport (Shared Memory篇):https://blog.csdn.net/weixin_44450715/article/details/86314193

    相关文章

      网友评论

          本文标题:Apollo CyberRT 深入理解系列

          本文链接:https://www.haomeiwen.com/subject/xztrsktx.html