Review the @README.md and implement a python process for the test stations that can run on a Raspberry Pi and a process for the control station that can run on a macbook. Also set up a simulator using docker-compose with Docker containers for each Test Station process and a control station, with a `SIMULATOR=true` env variable. When this is true, the process uses UDP on the Docker network between the containers to "transmit" and "listen" for packets instead of looking for a USB serial attached node device. Reference a prototype in @reference/modjam-prototype.py and its output tsv files. #### DOWNLINKING The control node sends a `RESULTS:|` command on the `control_radio` settings. This is received by all Test Stations in `IDLE` state but only the station addressed by the command acts on the command. Some arbitrary time after, the control station sends a `RESULTS:A|test1` command. The Control Station and Test Station A tune to the data radio settings and Test Station A enters `DOWNLINKING` state. Each beacons a "ready" message until they hear the other station's "ready", at which point Test Station A Simulator using Docker containers for each Test Station process, with a `SIMULATOR=true` env variable. When this is true, the process uses UDP on the Docker network between the containers to "transmit" and "listen" for packets. Commands: - START - STOP - RESULTS [:]||… Listens for START command from control node `START|name:|f:915.1|bw:62.5,125,250,500|sf:6,7,8,9,10,11,12|cr:4,5,6,7,8|pow:10,22` RESULTS command: `RESULTS:\tname:` RESULTS:A|name sends summary of each trial |||||||||… A|test1|915.1|500|7|8|22|100|88|84 B|test1|915.1|500|7|8|22|85|100|80 C|test1|915.1|500|7|8|22|85|100|80