Skip to content

YDL and LCM

sberkun edited this page May 26, 2021 · 2 revisions

YDL

YDL (pronounced "yodel") is a TCP server that forwards messages between processes.

Methods

YDL.py has two methods meant for external use:

  • ydl_start_read(receive_channel, queue, put_json=False) starts a daemon thread that puts received messages into the queue
  • ydl_send(target_channel, header, dic={}) sends a message to the given target

Usage

Start up the main processes (such as server.py and Shepherd.py) and YDL.py. The processes should be able to send messages through YDL.

Fun facts

  • most of the design for YDL was copied from this tutorial: https://realpython.com/python-sockets/. It is a good introduction to socket programming and selectors.
  • another proposed name for YDL was "didgeridoo"

LCM

LCM (Lightweight Communications and Marshaling) was the old way that Shepherd processes communicated. The interface was very similar; however LCM was a pain to install, especially on Windows.

Clone this wiki locally