驱动实现

构建设计

面向对象

将驱动面向对象化,从功能的角度而言,提供了以下功能:

  • 连接下位机,断开下位机
  • 给下位机发送数据
  • 接收下位机发送的数据
  • LED控制,蜂鸣器控制,速度控制
  • 电池数据,速度数据,imu数据读取

消息队列

消息队列通常帮助我们来处理大量数据的,能让数据统一进行管理。

通过消息队列的使用分为两个部分:

  • 一方负责放数据
  • 一方负责取数据

python中,Queue就是我们的消息队列。

  • queue.put是放数据
  • queue.get是取数据
  • queue.get是一个阻塞式的函数,如果queue中没有数据,则会阻塞住代码

python中,通常用线程配合消息队列来使用,取数据会在子线程中,进行阻塞式读取。

回调设计

回调在开发中经常出现,在driver设计过程中,我们采用面向对象的操作,分为Driver类和节点。

两者要采取数据和事件交互时,可以通过回调来解决。

Driver知道什么时候接收到数据,数据是什么。

节点想要把对应的数据发布出去。

Driver负责定义回调函数,负责在适当的时机,调用回调函数。

节点则只需要实现回调函数即可。这样两者就能有效的进行数据传递.