Skip to content
Joseph Schlesinger edited this page May 2, 2015 · 2 revisions

PoMoCo 2.0 runs on modules, and an asynchronous note-passing system between them. Each module is a child of the Node class, which itself is a child of the thread class. Each module runs as its own thread with its own incoming notes queue. Every node can talk to every other node by putting notes into its incoming queue. When a Node starts, it puts a pointer to its own incoming queue into a dictionary shared between the nodes.

Communications between modules:

  • GUI -> robot: changes to servo positions, offsets, on/off, robot moves
  • GUI -> controller: request connection, request auto-connection, record arduino moves
  • robot -> controller: changes to servo positions, offsets, on/off
  • robot -> GUI: when the robot moves, the servo moves are sent back to the GUI
  • controller -> comms: request connection changes, raw message data
  • comms -> controller: updates about connection status, firmware version updates, raw message data
  • controller -> GUI: updates about connection status, firmware version updates, recorded arduino moves
Clone this wiki locally