added mp comments
[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 { CAN = 1; SIMPLE = 2; DIAGNOSTIC = 3; CONTROL_COMMAND = 4;
8             COMMAND_RESPONSE = 5; }
9
10     optional Type type = 1;
11     optional CanMessage can_message = 2;
12     optional SimpleMessage simple_message = 3;
13     optional DiagnosticResponse diagnostic_response = 4;
14     optional ControlCommand control_command = 5;
15     optional CommandResponse command_response = 6;
16     optional uint64 timestamp = 7;
17 }
18
19 message CanMessage {
20     enum FrameFormat {
21         STANDARD = 1;
22         EXTENDED = 2;
23     }
24     optional int32 bus = 1;
25     optional uint32 id = 2;
26     optional bytes data = 3;
27     optional FrameFormat frame_format = 4;
28 }
29
30 message ControlCommand {
31     enum Type {
32         VERSION = 1;
33         DEVICE_ID = 2;
34         DIAGNOSTIC = 3;
35         PASSTHROUGH = 4;
36         ACCEPTANCE_FILTER_BYPASS = 5;
37         PAYLOAD_FORMAT = 6;
38         PREDEFINED_OBD2_REQUESTS = 7;
39         MODEM_CONFIGURATION = 8;
40         RTC_CONFIGURATION = 9;
41         SD_MOUNT_STATUS = 10;
42     }
43
44     optional Type type = 1;
45     optional DiagnosticControlCommand diagnostic_request = 2;
46     optional PassthroughModeControlCommand passthrough_mode_request = 3;
47     optional AcceptanceFilterBypassCommand acceptance_filter_bypass_command = 4;
48     optional PayloadFormatCommand payload_format_command = 5;
49     optional PredefinedObd2RequestsCommand predefined_obd2_requests_command = 6;
50     optional ModemConfigurationCommand modem_configuration_command = 7;
51     optional RTCConfigurationCommand rtc_configuration_command = 8;
52 }
53
54 message DiagnosticControlCommand {
55     enum Action { ADD = 1; CANCEL = 2; }
56
57     optional DiagnosticRequest request = 1;
58     optional Action action = 2;
59 }
60
61 message PassthroughModeControlCommand {
62     optional int32 bus = 1;
63     optional bool enabled = 2;
64 }
65
66 message AcceptanceFilterBypassCommand {
67     optional int32 bus = 1;
68     optional bool bypass = 2;
69 }
70
71 message PayloadFormatCommand {
72     enum PayloadFormat {
73         JSON = 1;
74         PROTOBUF = 2;
75         MESSAGEPACK = 3;
76     }
77
78     optional PayloadFormat format = 1;
79 }
80
81 message PredefinedObd2RequestsCommand {
82     optional bool enabled = 1;
83 }
84
85 message NetworkOperatorSettings {
86         enum OperatorSelectMode {
87                 AUTOMATIC = 0;
88                 MANUAL = 1;
89                 DEREGISTER = 2;
90                 SET_ONLY = 3;
91                 MANUAL_AUTOMATIC = 4;
92         }
93         message NetworkDescriptor {
94                 enum NetworkType {
95                         GSM = 0;
96                         UTRAN = 2;
97                 }
98                 optional uint32 PLMN = 1;
99                 optional NetworkType networkType = 2;
100         }
101         optional bool allowDataRoaming = 1;
102         optional OperatorSelectMode operatorSelectMode = 2;
103         optional NetworkDescriptor networkDescriptor = 3;
104 }
105
106 message NetworkDataSettings {
107         optional string APN = 1;
108 }
109
110 message ServerConnectSettings {
111         optional string host = 1;
112         optional uint32 port = 2;
113 }
114
115 message ModemConfigurationCommand {
116         optional NetworkOperatorSettings networkOperatorSettings = 1;
117         optional NetworkDataSettings networkDataSettings = 2;
118         optional ServerConnectSettings serverConnectSettings = 3;
119 }
120
121 message RTCConfigurationCommand {
122         optional uint32 unix_time = 1;
123 }
124
125 message CommandResponse {
126     optional ControlCommand.Type type = 1;
127     optional string message = 2;
128     optional bool status = 3;
129 }
130
131 message DiagnosticRequest {
132     enum DecodedType { NONE = 1; OBD2 = 2; }
133
134     optional int32 bus = 1;
135     optional uint32 message_id = 2;
136     optional uint32 mode = 3;
137     optional uint32 pid = 4;
138     // TODO we are capping this at 8 bytes for now - need to change when we
139     // support multi-frame responses
140     optional bytes payload = 5;
141     optional bool multiple_responses = 6;
142     optional double frequency = 7;
143     optional string name = 8;
144     optional DecodedType decoded_type = 9;
145 }
146
147 message DiagnosticResponse {
148     optional int32 bus = 1;
149     optional uint32 message_id = 2;
150     optional uint32 mode = 3;
151     optional uint32 pid = 4;
152     optional bool success = 5;
153     optional uint32 negative_response_code = 6;
154     // TODO we are capping this at 8 bytes for now - need to change when we
155     // support multi-frame responses
156     optional bytes payload = 7;
157     optional double value = 8;
158 }
159
160 message DynamicField {
161     enum Type { STRING = 1; NUM = 2; BOOL = 3; }
162
163     optional Type type = 1;
164     optional string string_value = 2;
165     optional double numeric_value = 3;
166     optional bool boolean_value = 4;
167 }
168
169 message SimpleMessage {
170     optional string name = 1;
171     optional DynamicField value = 2;
172     optional DynamicField event = 3;
173 }