Index: scripts/MsgUtils/msgutils/templates/MsgDefs_proto.jinja =================================================================== diff -u -re3aaafd456d2a3b791400e90fbc380372da56ff9 -r53d80d0edc1c441132b13f387f5f13570a7aafd2 --- scripts/MsgUtils/msgutils/templates/MsgDefs_proto.jinja (.../MsgDefs_proto.jinja) (revision e3aaafd456d2a3b791400e90fbc380372da56ff9) +++ scripts/MsgUtils/msgutils/templates/MsgDefs_proto.jinja (.../MsgDefs_proto.jinja) (revision 53d80d0edc1c441132b13f387f5f13570a7aafd2) @@ -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'] }})