The software does pretty much exactly what it did before. Cool, eh?
Sometimes you need to reset in order to move forward. In this case, the problem was a very rushed, hacked coding style by someone who made up the language as they went along, and wrote half of it like they were working in Python.
The new version of the codebase is completely refactored to push the Combadge functionality further away. It’s also been split up so that the nitty-gritty of packet-level interaction has been separated out from the logic model of the Combadge protocol. This makes the combadged itself cleaner and also means that we have one “big and simple” chunk of code to handle the packet bytes, and one “small and complex” chunk of code to structure the conversation. You can think of it as a huge dictionary full of words, and a small grammar manual.
As well, I’ve moved everything to be an ES6 module, which updates some of the design and also gives us stricter checking – which as a bit of a hack, I definitely benefit from.
I still have some small changes to make to the design of the packet classes which I want to do soon, but the major work of the refactor is done – which should mean I can get on with more “novel” changes soon.
Help welcome, you can find v0.0.3 on the Github as per usual.