Communication is highly device-specific. As such, it makes sense to split each protocol into its own dedicated file. This will also tidy the tool, help decouple the backend from the frontend, and as a result, simplify the development.