initial port of existing CANopenNode in our project codebases