This week I again worked on the CAN message compression codec. I massively refactored the code base and wrote a test framework. I implemented the trivial run length encoding algorithm and my augmented run length encoding algorithm (optional run length encoding if run length above threshold, using escape character concept from KISS link-level protocol). I’ve attached a compression comparison from my testing; the augmented run length compression is only 0.89 (838 to 749 bytes) for now. I believe Huffman encoding will improve this dramatically.
I spent the class time working with my teammates on the design presentation and fleshing out the firmware block diagram. The later was the first step of designing the CAN firewall and configuration API.
My progress is consistent with the Gantt chart, yet I am behind from the personal goal I established in last week’s status report.
Next week/tonight, I will be adding finishing touches to the augmented run length encoding (there’s a bug in the decoding), and implementing two remaining algorithms (Huffman and shrinkwrap). I’ll further design a block diagram of the firewall and config API.