This project started from 2 things: I wanted to learn Rust, and we can into some issues at Speed River Timing
that I figured would be easy to fix through software.
I started by writing a couple of data structures to parse and store data from the timing system. This included
participant and finish records, and being able to parse them from exiting file formats.
Next I wrote a multiplexer for the reads. It connects directly to the reader via a TCP connection, and receives
the reads. It then sends them out to each of the connected clients. It can also save all the reads to a file, and
print live the people who cross the line.
Once I had mostly finished that up, I wrote a reader emulator to help me continue to develop this program when I
didn't have access to the necessary hardware.
One challenge for this project (other than learning Rust) has been getting the multithreading working. This was
the first truly threaded program I have made, so so it was my first time using channels (or in this case, a bus).