no comment against the class, but looks like one was intended - nor against the constructor; worth a comment about the payload parameter?
a little pedantic, but you mix your descriptions between payload and message (e.g. length was taken from payload length, but comments says returning message length). Not a problem in this context, but could be confusing in a larger more complex bit of coding. [same in other files - again, clear enough in most case, but not all, e.g. at least once the "message" is the overall CAN message, and the "payload" is payload extracted from it, so they are potentially different - so worth being careful!]
line 56 " #if" ... is not a terribly useful comment
"process state()" ... all paths through define "newState", so this is not a problem here, but normally worth a defensive default in case it drops through without (e.g. there could have been a coding error on a path that hadn't been checked)
CanTpMessage.py
no comment against the class, but looks like one was intended - nor against the constructor; worth a comment about the payload parameter?
a little pedantic, but you mix your descriptions between payload and message (e.g. length was taken from payload length, but comments says returning message length). Not a problem in this context, but could be confusing in a larger more complex bit of coding. [same in other files - again, clear enough in most case, but not all, e.g. at least once the "message" is the overall CAN message, and the "payload" is payload extracted from it, so they are potentially different - so worth being careful!]
line 56 " #if" ... is not a terribly useful comment
"process state()" ... all paths through define "newState", so this is not a problem here, but normally worth a defensive default in case it drops through without (e.g. there could have been a coding error on a path that hadn't been checked)
otherwise looks OK