package openxc; option java_package = "com.openxc"; option java_outer_classname = "BinaryMessages"; message VehicleMessage { enum Type { RAW = 1; TRANSLATED = 2; } optional Type type = 1; optional RawMessage raw_message = 2; optional TranslatedMessage translated_message = 3; } message RawMessage { optional int32 bus = 1; optional uint32 message_id = 2; optional uint64 data = 3; } message DiagnosticMessage { optional int32 bus = 1; optional uint32 message_id = 2; optional uint32 mode = 3; optional uint32 pid = 4; optional bool success = 5; optional uint32 negative_response_code = 6; // TODO we are capping this at 8 bytes for now - need to change when we // support multi-frame responses optional bytes payload = 7; } message TranslatedMessage { enum Type { STRING = 1; NUM = 2; BOOL = 3; EVENTED_STRING = 4; EVENTED_NUM = 5; EVENTED_BOOL = 6;} optional Type type = 1; optional string name = 2; optional string string_value = 3; optional double numeric_value = 4; optional bool boolean_value = 5; optional string string_event = 6; optional double numeric_event = 7; optional bool boolean_event = 8; } // TODO we should also consider having an enum type, having each specific // message defined as a protobuf