Switch back to many subtypes for binary messages.
[apps/agl-service-can-low-level.git] / openxc.proto
1 package openxc;
2
3 option java_package = "com.openxc";
4 option java_outer_classname = "BinaryMessages";
5
6 message VehicleMessage {
7     enum Type { RAW = 1;
8         STRING = 2;
9         BOOL = 3;
10         NUM = 4;
11         EVENTED_NUM = 5;
12         EVENTED_STRING = 6;
13         EVENTED_BOOL = 7;
14     }
15
16     optional Type type = 1;
17
18     optional RawMessage raw_message = 2;
19     optional StringMessage string_message = 3;
20     optional NumericMessage numeric_message = 4;
21     optional BooleanMessage boolean_message = 5;
22     optional EventedStringMessage evented_string_message = 6;
23     optional EventedBooleanMessage evented_boolean_message = 7;
24     optional EventedNumericMessage evented_numeric_message = 8;
25 }
26
27 message RawMessage {
28     optional int32 bus = 1;
29     optional uint32 message_id = 2;
30 }
31
32 message StringMessage {
33     optional string name = 1;
34     optional string value = 2;
35 }
36
37 message NumericMessage {
38     optional string name = 1;
39     optional double value = 2;
40 }
41
42 message BooleanMessage {
43     optional string name = 1;
44     optional bool value = 2;
45 }
46
47 message EventedStringMessage {
48     optional string name = 1;
49     optional string value = 2;
50     optional string event = 3;
51 }
52
53 message EventedBooleanMessage {
54     optional string name = 1;
55     optional string value = 2;
56     optional bool event = 3;
57 }
58
59 message EventedNumericMessage {
60     optional string name = 1;
61     optional string value = 2;
62     optional double event = 3;
63 }
64
65 // TODO we should also consider having an enum type, having each specific
66 // message defined as a protobuf