The <msg>_encode method always zeros the buffer up to <msg>_MAX_SIZE bytes so there is no need to do it before calling the function. Saves at least 8 bytes per instance.
split into separate cpp files and avoid static functions