truck-code
j1939_interpreters.h
Go to the documentation of this file.
1 
23 #ifndef INCLUDE_JBUS_J1939_INTERPRETERS_H_
24 #define INCLUDE_JBUS_J1939_INTERPRETERS_H_
25 
26 #include <stdio.h>
27 #include <math.h>
28 #include <vector>
29 #include <map>
30 #include <string>
31 #include "j1939_struct.h"
32 #include "j1939_utils.h"
33 
34 using namespace std;
35 
36 
40 {
41 public:
43  virtual int pgn();
44 
51  virtual void *convert(j1939_pdu_typ *pdu) = 0;
52 
60  bool is_type(j1939_pdu_typ* pdu);
61 
69  virtual void print(void *pdv, FILE *fp, bool numeric) = 0;
70 
78  virtual void *import(vector<string> &tokens) = 0;
79 
81  virtual ~J1939Interpreter() = 0;
82 };
83 
84 
85 /* -------------------------------------------------------------------------- */
86 /* ----------------------- In case not interpretable ------------------------ */
87 /* -------------------------------------------------------------------------- */
88 
89 
92 {
93 public:
94  virtual int pgn();
95  virtual void *convert(j1939_pdu_typ *pdu);
96  virtual void print(void *pdv, FILE *fp, bool numeric);
97  virtual void *import(vector<string> &tokens);
98 };
99 
100 
101 /* -------------------------------------------------------------------------- */
102 /* ------------------------ Received from the brake ------------------------- */
103 /* -------------------------------------------------------------------------- */
104 
105 
108 {
109 public:
110  virtual int pgn();
111  virtual void *convert(j1939_pdu_typ *pdu);
112  virtual void print(void *pdv, FILE *fp, bool numeric);
113  virtual void *import(vector<string> &tokens);
114 };
115 
116 
119 {
120 public:
121  virtual int pgn();
122  virtual void *convert(j1939_pdu_typ *pdu);
123  virtual void print(void *pdv, FILE *fp, bool numeric);
124  virtual void *import(vector<string> &tokens);
125 };
126 
127 
130 {
131 public:
132  virtual int pgn();
133  virtual void *convert(j1939_pdu_typ *pdu);
134  virtual void print(void *pdv, FILE *fp, bool numeric);
135  virtual void *import(vector<string> &tokens);
136 };
137 
138 
139 /* -------------------------------------------------------------------------- */
140 /* ------------------------ Received from the engine ------------------------ */
141 /* -------------------------------------------------------------------------- */
142 
143 
146 {
147 public:
148  virtual int pgn();
149  virtual void *convert(j1939_pdu_typ *pdu);
150  virtual void print(void *pdv, FILE *fp, bool numeric);
151  virtual void *import(vector<string> &tokens);
152 };
153 
154 
157 {
158 public:
159  virtual int pgn();
160  virtual void *convert(j1939_pdu_typ *pdu);
161  virtual void print(void *pdv, FILE *fp, bool numeric);
162  virtual void *import(vector<string> &tokens);
163 };
164 
165 
168 {
169 public:
170  virtual int pgn();
171  virtual void *convert(j1939_pdu_typ *pdu);
172  virtual void print(void *pdv, FILE *fp, bool numeric);
173  virtual void *import(vector<string> &tokens);
174 };
175 
176 
179 {
180 public:
181  virtual int pgn();
182  virtual void *convert(j1939_pdu_typ *pdu);
183  virtual void print(void *pdv, FILE *fp, bool numeric);
184  virtual void *import(vector<string> &tokens);
185 };
186 
187 
190 {
191 public:
192  virtual int pgn();
193  virtual void *convert(j1939_pdu_typ *pdu);
194  virtual void print(void *pdv, FILE *fp, bool numeric);
195  virtual void *import(vector<string> &tokens);
196 };
197 
198 
201 {
202 public:
203  virtual int pgn();
204  virtual void *convert(j1939_pdu_typ *pdu);
205  virtual void print(void *pdv, FILE *fp, bool numeric);
206  virtual void *import(vector<string> &tokens);
207 };
208 
209 
212 {
213 public:
214  virtual int pgn();
215  virtual void *convert(j1939_pdu_typ *pdu);
216  virtual void print(void *pdv, FILE *fp, bool numeric);
217  virtual void *import(vector<string> &tokens);
218 };
219 
220 
223 {
224 public:
225  virtual int pgn();
226  virtual void *convert(j1939_pdu_typ *pdu);
227  virtual void print(void *pdv, FILE *fp, bool numeric);
228  virtual void *import(vector<string> &tokens);
229 };
230 
231 
234 {
235 public:
236  virtual int pgn();
237  virtual void *convert(j1939_pdu_typ *pdu);
238  virtual void print(void *pdv, FILE *fp, bool numeric);
239  virtual void *import(vector<string> &tokens);
240 };
241 
242 
243 /* -------------------------------------------------------------------------- */
244 /* ------------------ Received from both engine and brake ------------------- */
245 /* -------------------------------------------------------------------------- */
246 
247 
250 {
251 public:
252  virtual int pgn();
253  virtual void *convert(j1939_pdu_typ *pdu);
254  virtual void print(void *pdv, FILE *fp, bool numeric);
255  virtual void *import(vector<string> &tokens);
256 };
257 
258 
259 /* -------------------------------------------------------------------------- */
260 /* ----------------------------- Miscellaneous ------------------------------ */
261 /* -------------------------------------------------------------------------- */
262 
263 
264 // FIXME(ak): is this not written anywhere?
267 {
268 public:
269  // char* name = "Transmission Control (TC1)";
270  int pgn = 0;
271  virtual void *convert(j1939_pdu_typ *pdu);
272  virtual void print(void *pdv, FILE *fp, bool numeric);
273  virtual void *import(vector<string> &tokens);
274 };
275 
276 
279 {
280 public:
281  virtual int pgn();
282  virtual void *convert(j1939_pdu_typ *pdu);
283  virtual void print(void *pdv, FILE *fp, bool numeric);
284  virtual void *import(vector<string> &tokens);
285 };
286 
287 
290 {
291 public:
292  virtual int pgn();
293  virtual void *convert(j1939_pdu_typ *pdu);
294  virtual void print(void *pdv, FILE *fp, bool numeric);
295  virtual void *import(vector<string> &tokens);
296 };
297 
298 
301 {
302 public:
303  virtual int pgn();
304  virtual void *convert(j1939_pdu_typ *pdu);
305  virtual void print(void *pdv, FILE *fp, bool numeric);
306  virtual void *import(vector<string> &tokens);
307 };
308 
309 
310 // TODO(ak): do this
312 //class TCFG_interpreter : public J1939Interpreter
313 //{
314 //public:
315 // // char* name = "Transmission Configuration (TCFG)";
316 // int pgn = TCFG;
317 // virtual void *convert(j1939_pdu_typ *pdu);
318 // virtual void print(void *pdv, FILE *fp, bool numeric);
319 // virtual void publish(void*);
320 //};
321 
322 
325 {
326 public:
327  virtual int pgn();
328  virtual void *convert(j1939_pdu_typ *pdu);
329  virtual void print(void *pdv, FILE *fp, bool numeric);
330  virtual void *import(vector<string> &tokens);
331 };
332 
333 
336 {
337 public:
338  virtual int pgn();
339  virtual void *convert(j1939_pdu_typ *pdu);
340  virtual void print(void *pdv, FILE *fp, bool numeric);
341  virtual void *import(vector<string> &tokens);
342 };
343 
344 
347 {
348 public:
349  virtual int pgn();
350  virtual void *convert(j1939_pdu_typ *pdu);
351  virtual void print(void *pdv, FILE *fp, bool numeric);
352  virtual void *import(vector<string> &tokens);
353 };
354 
355 
358 {
359 public:
360  virtual int pgn();
361  virtual void *convert(j1939_pdu_typ *pdu);
362  virtual void print(void *pdv, FILE *fp, bool numeric);
363  virtual void *import(vector<string> &tokens);
364 };
365 
366 
369 {
370 public:
371  virtual int pgn();
372  virtual void *convert(j1939_pdu_typ *pdu);
373  virtual void print(void *pdv, FILE *fp, bool numeric);
374  virtual void *import(vector<string> &tokens);
375 };
376 
377 
380 {
381 public:
382  virtual int pgn();
383  virtual void *convert(j1939_pdu_typ *pdu);
384  virtual void print(void *pdv, FILE *fp, bool numeric);
385  virtual void *import(vector<string> &tokens);
386 };
387 
388 
391 {
392 public:
393  virtual int pgn();
394  virtual void *convert(j1939_pdu_typ *pdu);
395  virtual void print(void *pdv, FILE *fp, bool numeric);
396  virtual void *import(vector<string> &tokens);
397 };
398 
399 
402 {
403 public:
404  virtual int pgn();
405  virtual void *convert(j1939_pdu_typ *pdu);
406  virtual void print(void *pdv, FILE *fp, bool numeric);
407  virtual void *import(vector<string> &tokens);
408 };
409 
410 
413 {
414 public:
415  virtual int pgn();
416  virtual void *convert(j1939_pdu_typ *pdu);
417  virtual void print(void *pdv, FILE *fp, bool numeric);
418  virtual void *import(vector<string> &tokens);
419 };
420 
421 
424 {
425 public:
426  virtual int pgn();
427  virtual void *convert(j1939_pdu_typ *pdu);
428  virtual void print(void *pdv, FILE *fp, bool numeric);
429  virtual void *import(vector<string> &tokens);
430 };
431 
432 
433 /* This method initializes a map used to equate a specific PGN value with an
434  * interpreter class that can convert and print the messages within the PDU-
435  * formatted variable. */
436 extern map<int, J1939Interpreter*> get_interpreters();
437 
438 
439 #endif /* INCLUDE_JBUS_J1939_INTERPRETERS_H_ */
Definition: j1939_interpreters.h:200
Definition: j1939_interpreters.h:222
Definition: j1939_interpreters.h:145
Definition: j1939_interpreters.h:423
Definition: j1939_interpreters.h:39
Definition: j1939_interpreters.h:266
Definition: j1939_interpreters.h:401
Definition: j1939_interpreters.h:335
Definition: j1939_interpreters.h:249
Definition: j1939_interpreters.h:368
Definition: j1939_interpreters.h:390
Definition: j1939_interpreters.h:211
Definition: j1939_interpreters.h:278
Definition: j1939_interpreters.h:357
Definition: j1939_interpreters.h:129
Definition: j1939_interpreters.h:233
Definition: j1939_interpreters.h:156
Definition: j1939_interpreters.h:91
Definition: j1939_interpreters.h:178
Definition: j1939_interpreters.h:346
Definition: j1939_interpreters.h:324
Definition: j1939_interpreters.h:107
Definition: j1939_interpreters.h:289
Definition: j1939_interpreters.h:189
Definition: j1939_interpreters.h:300
Definition: j1939_interpreters.h:412
Definition: j1939_interpreters.h:379
Definition: j1939_interpreters.h:167
Definition: j1939_struct.h:32
Definition: j1939_interpreters.h:118