# Candela
A straightforward communication framework for controlling LED lights.
## Development Warning
This crate is under active development; interfaces may change substantially.
You've been warned.
## Startup Protocol
### Client / Controller
* Listen for a broadcast packet advertising a server startup.
* Respond to the sender of the broadcast packet with controller info.
* Broadcast packet internally specifies where to respond.
* Locks controller until either the server responds or a timeout which
recycles this controller to the start of the connection protocol.
* Wait for a \{connection type\} connection from the server.
* Process messages as they arrive from the server.
### Server
* Send out a broadcast message to discover clients
* Listen for a fixed amount of time for responses
* Parse the responses.
* Decide to which clients to connect.
* Initiate connections to clients.
* Send messages to clients via those connections.