一、客户端
先找到实现python封装c++的代码,如下图:
找到代码的实现,如下图:
继续跳转,如下图:
上图中除了发送tick以外,还实现了“定时”功能。继续跳转,如下图:
这里就是客户端最后的代码了,再跳转就到了通信接口libcarla的部分了
二、通信接口
这里看到这个函数的名字是“tick_cue”,之后就是到服务端server代码中找到绑定这个名字的函数,如下图:
三、服务端
到了这里我其实就有点蒙蔽了,上图的代码里,完全没有更更新仿真有关的内容,只有对TickCuesReceived变量的操作。后来看到TRACE_CPUPROFILER_EVENT_SCOPE这个在ue4中用来计时的函数,没有在这里调用,最终发现在下图中的位置调用。
再次一路跳转:
SyncRunFor()就是同步运行的函数,使用的线程快速切换的方式实现伪同步