Index: scripts/MsgUtils/msgutils/templates/MsgDefs_proto.jinja =================================================================== diff -u -rfd9c43b00259567ff49a3d9b31b98df75b47bc52 -r808df723cf9d1b0097796815e5229abfa18f2d8f --- scripts/MsgUtils/msgutils/templates/MsgDefs_proto.jinja (.../MsgDefs_proto.jinja) (revision fd9c43b00259567ff49a3d9b31b98df75b47bc52) +++ scripts/MsgUtils/msgutils/templates/MsgDefs_proto.jinja (.../MsgDefs_proto.jinja) (revision 808df723cf9d1b0097796815e5229abfa18f2d8f) @@ -7,12 +7,19 @@ import "google/protobuf/timestamp.proto"; +// Header is required as the first field (i.e. 'Header header = 1;') of every message. message Header { string deviceSerialNum = 1; google.protobuf.Timestamp timestamp = 2; uint32 msgId = 3; - uint32 sequence = 4; + int32 sequence = 4; } + +// Envelope is a minimal wrapper used to extract the Header from serialized messages without knowing the +// concrete message type at parse time. Every message requires Header at field 1. +message Envelope { + Header header = 1; +} {%- for (msg_id, msg) in msg_proto.data.items() %} // {{ msg['msg_id'] }} ({{ msg['msg_id_hex_string'] }})