summaryrefslogtreecommitdiffstats
path: root/gen/cpp/openxc.pb.h
blob: 48002b14fde8e7e188438b27b0fa5c582d71d8fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
/* Automatically generated nanopb header */
/* Generated by nanopb-0.2.5 at Sat Sep 20 21:48:43 2014. */

#ifndef _PB_OPENXC_PB_H_
#define _PB_OPENXC_PB_H_
#include <pb.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Enum definitions */
typedef enum _openxc_VehicleMessage_Type {
    openxc_VehicleMessage_Type_RAW = 1,
    openxc_VehicleMessage_Type_TRANSLATED = 2,
    openxc_VehicleMessage_Type_DIAGNOSTIC = 3,
    openxc_VehicleMessage_Type_CONTROL_COMMAND = 4,
    openxc_VehicleMessage_Type_COMMAND_RESPONSE = 5
} openxc_VehicleMessage_Type;

typedef enum _openxc_ControlCommand_Type {
    openxc_ControlCommand_Type_VERSION = 1,
    openxc_ControlCommand_Type_DEVICE_ID = 2,
    openxc_ControlCommand_Type_DIAGNOSTIC = 3,
    openxc_ControlCommand_Type_PASSTHROUGH = 4
} openxc_ControlCommand_Type;

typedef enum _openxc_DiagnosticControlCommand_Action {
    openxc_DiagnosticControlCommand_Action_ADD = 1,
    openxc_DiagnosticControlCommand_Action_CANCEL = 2
} openxc_DiagnosticControlCommand_Action;

typedef enum _openxc_PassthroughModeControlCommand_PassthroughMode {
    openxc_PassthroughModeControlCommand_PassthroughMode_OFF = 1,
    openxc_PassthroughModeControlCommand_PassthroughMode_FILTERED = 2,
    openxc_PassthroughModeControlCommand_PassthroughMode_UNFILTERED = 3
} openxc_PassthroughModeControlCommand_PassthroughMode;

typedef enum _openxc_DiagnosticRequest_DecodedType {
    openxc_DiagnosticRequest_DecodedType_NONE = 1,
    openxc_DiagnosticRequest_DecodedType_OBD2 = 2
} openxc_DiagnosticRequest_DecodedType;

typedef enum _openxc_DynamicField_Type {
    openxc_DynamicField_Type_STRING = 1,
    openxc_DynamicField_Type_NUM = 2,
    openxc_DynamicField_Type_BOOL = 3
} openxc_DynamicField_Type;

typedef enum _openxc_TranslatedMessage_Type {
    openxc_TranslatedMessage_Type_STRING = 1,
    openxc_TranslatedMessage_Type_NUM = 2,
    openxc_TranslatedMessage_Type_BOOL = 3,
    openxc_TranslatedMessage_Type_EVENTED_STRING = 4,
    openxc_TranslatedMessage_Type_EVENTED_NUM = 5,
    openxc_TranslatedMessage_Type_EVENTED_BOOL = 6
} openxc_TranslatedMessage_Type;

/* Struct definitions */
typedef struct _openxc_CommandResponse {
    bool has_type;
    openxc_ControlCommand_Type type;
    bool has_message;
    char message[128];
    bool has_status;
    bool status;
} openxc_CommandResponse;

typedef struct {
    size_t size;
    uint8_t bytes[8];
} openxc_DiagnosticRequest_payload_t;

typedef struct _openxc_DiagnosticRequest {
    bool has_bus;
    int32_t bus;
    bool has_message_id;
    uint32_t message_id;
    bool has_mode;
    uint32_t mode;
    bool has_pid;
    uint32_t pid;
    bool has_payload;
    openxc_DiagnosticRequest_payload_t payload;
    bool has_multiple_responses;
    bool multiple_responses;
    bool has_frequency;
    double frequency;
    bool has_name;
    char name[10];
    bool has_decoded_type;
    openxc_DiagnosticRequest_DecodedType decoded_type;
} openxc_DiagnosticRequest;

typedef struct {
    size_t size;
    uint8_t bytes[8];
} openxc_DiagnosticResponse_payload_t;

typedef struct _openxc_DiagnosticResponse {
    bool has_bus;
    int32_t bus;
    bool has_message_id;
    uint32_t message_id;
    bool has_mode;
    uint32_t mode;
    bool has_pid;
    uint32_t pid;
    bool has_success;
    bool success;
    bool has_negative_response_code;
    uint32_t negative_response_code;
    bool has_payload;
    openxc_DiagnosticResponse_payload_t payload;
    bool has_value;
    double value;
} openxc_DiagnosticResponse;

typedef struct _openxc_DynamicField {
    bool has_type;
    openxc_DynamicField_Type type;
    bool has_string_value;
    char string_value[100];
    bool has_numeric_value;
    double numeric_value;
    bool has_boolean_value;
    bool boolean_value;
} openxc_DynamicField;

typedef struct _openxc_PassthroughModeControlCommand {
    bool has_bus;
    int32_t bus;
    bool has_mode;
    openxc_PassthroughModeControlCommand_PassthroughMode mode;
} openxc_PassthroughModeControlCommand;

typedef struct {
    size_t size;
    uint8_t bytes[8];
} openxc_RawMessage_data_t;

typedef struct _openxc_RawMessage {
    bool has_bus;
    int32_t bus;
    bool has_message_id;
    uint32_t message_id;
    bool has_data;
    openxc_RawMessage_data_t data;
} openxc_RawMessage;

typedef struct _openxc_DiagnosticControlCommand {
    bool has_request;
    openxc_DiagnosticRequest request;
    bool has_action;
    openxc_DiagnosticControlCommand_Action action;
} openxc_DiagnosticControlCommand;

typedef struct _openxc_TranslatedMessage {
    bool has_type;
    openxc_TranslatedMessage_Type type;
    bool has_name;
    char name[100];
    bool has_value;
    openxc_DynamicField value;
    bool has_event;
    openxc_DynamicField event;
} openxc_TranslatedMessage;

typedef struct _openxc_ControlCommand {
    bool has_type;
    openxc_ControlCommand_Type type;
    bool has_diagnostic_request;
    openxc_DiagnosticControlCommand diagnostic_request;
    bool has_passthrough_mode_request;
    openxc_PassthroughModeControlCommand passthrough_mode_request;
} openxc_ControlCommand;

typedef struct _openxc_VehicleMessage {
    bool has_type;
    openxc_VehicleMessage_Type type;
    bool has_raw_message;
    openxc_RawMessage raw_message;
    bool has_translated_message;
    openxc_TranslatedMessage translated_message;
    bool has_diagnostic_response;
    openxc_DiagnosticResponse diagnostic_response;
    bool has_control_command;
    openxc_ControlCommand control_command;
    bool has_command_response;
    openxc_CommandResponse command_response;
} openxc_VehicleMessage;

/* Default values for struct fields */

/* Field tags (for use in manual encoding/decoding) */
#define openxc_CommandResponse_type_tag          1
#define openxc_CommandResponse_message_tag       2
#define openxc_CommandResponse_status_tag        3
#define openxc_DiagnosticRequest_bus_tag         1
#define openxc_DiagnosticRequest_message_id_tag  2
#define openxc_DiagnosticRequest_mode_tag        3
#define openxc_DiagnosticRequest_pid_tag         4
#define openxc_DiagnosticRequest_payload_tag     5
#define openxc_DiagnosticRequest_multiple_responses_tag 6
#define openxc_DiagnosticRequest_frequency_tag   7
#define openxc_DiagnosticRequest_name_tag        8
#define openxc_DiagnosticRequest_decoded_type_tag 9
#define openxc_DiagnosticResponse_bus_tag        1
#define openxc_DiagnosticResponse_message_id_tag 2
#define openxc_DiagnosticResponse_mode_tag       3
#define openxc_DiagnosticResponse_pid_tag        4
#define openxc_DiagnosticResponse_success_tag    5
#define openxc_DiagnosticResponse_negative_response_code_tag 6
#define openxc_DiagnosticResponse_payload_tag    7
#define openxc_DiagnosticResponse_value_tag      8
#define openxc_DynamicField_type_tag             1
#define openxc_DynamicField_string_value_tag     2
#define openxc_DynamicField_numeric_value_tag    3
#define openxc_DynamicField_boolean_value_tag    4
#define openxc_PassthroughModeControlCommand_bus_tag 1
#define openxc_PassthroughModeControlCommand_mode_tag 2
#define openxc_RawMessage_bus_tag                1
#define openxc_RawMessage_message_id_tag         2
#define openxc_RawMessage_data_tag               3
#define openxc_DiagnosticControlCommand_request_tag 1
#define openxc_DiagnosticControlCommand_action_tag 2
#define openxc_TranslatedMessage_type_tag        1
#define openxc_TranslatedMessage_name_tag        2
#define openxc_TranslatedMessage_value_tag       3
#define openxc_TranslatedMessage_event_tag       4
#define openxc_ControlCommand_type_tag           1
#define openxc_ControlCommand_diagnostic_request_tag 2
#define openxc_ControlCommand_passthrough_mode_request_tag 3
#define openxc_VehicleMessage_type_tag           1
#define openxc_VehicleMessage_raw_message_tag    2
#define openxc_VehicleMessage_translated_message_tag 3
#define openxc_VehicleMessage_diagnostic_response_tag 4
#define openxc_VehicleMessage_control_command_tag 5
#define openxc_VehicleMessage_command_response_tag 6

/* Struct field encoding specification for nanopb */
extern const pb_field_t openxc_VehicleMessage_fields[7];
extern const pb_field_t openxc_RawMessage_fields[4];
extern const pb_field_t openxc_ControlCommand_fields[4];
extern const pb_field_t openxc_DiagnosticControlCommand_fields[3];
extern const pb_field_t openxc_PassthroughModeControlCommand_fields[3];
extern const pb_field_t openxc_CommandResponse_fields[4];
extern const pb_field_t openxc_DiagnosticRequest_fields[10];
extern const pb_field_t openxc_DiagnosticResponse_fields[9];
extern const pb_field_t openxc_DynamicField_fields[5];
extern const pb_field_t openxc_TranslatedMessage_fields[5];

/* Maximum encoded size of messages (where known) */
#define openxc_VehicleMessage_size               693
#define openxc_RawMessage_size                   27
#define openxc_ControlCommand_size               103
#define openxc_DiagnosticControlCommand_size     76
#define openxc_PassthroughModeControlCommand_size 17
#define openxc_CommandResponse_size              139
#define openxc_DiagnosticRequest_size            68
#define openxc_DiagnosticResponse_size           56
#define openxc_DynamicField_size                 119
#define openxc_TranslatedMessage_size            350

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif