package openxc; message VehicleMessage { enum Type { RAW = 1; STRING = 2; NUM = 3; BOOL = 4; } optional Type type = 1; optional RawMessage raw_message = 2; optional TranslatedStringMessage string_message = 3; optional TranslatedNumericMessage numerical_message = 4; optional TranslatedBooleanMessage boolean_message = 5; } message RawMessage { optional uint32 message_id = 1; optional double data = 2; } message TranslatedStringMessage { optional string name = 1; optional string value = 2; } message TranslatedNumericMessage { optional string name = 1; optional double value = 2; } message TranslatedBooleanMessage { optional string name = 1; optional bool value = 2; } // TODO we should also consider having an enum type, h aving each specific // message defined as a protobuf