f635e2bdac0fc606b15ce53b4bdf8877b1a84a08
[apps/agl-service-can-low-level.git] / examples / toyota / auris / application-generated.cpp
1 #include "application.hpp"
2 #include "../can/can-decoder.hpp"
3 #include "../can/can-encoder.hpp"
4
5 application_t::application_t()
6         : can_bus_manager_{utils::config_parser_t{"/etc/dev-mapping.conf"}}
7         , message_set_{
8                 {std::make_shared<message_set_t>(message_set_t{0,"example",
9                         { // beginning message_definition_ vector
10                                 {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3D9,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
11                                         { // beginning signals vector
12                                                 {std::make_shared<signal_t> (signal_t{
13                                                         "engine.speed",// generic_name
14                                                         16,// bit_position
15                                                         16,// bit_size
16                                                         0.250000f,// factor
17                                                         0.00000,// offset
18                                                         0,// min_value
19                                                         0,// max_value
20                                                         frequency_clock_t(0.00000f),// frequency
21                                                         true,// send_same
22                                                         false,// force_send_changed
23                                                         {
24                                                         },// states
25                                                         false,// writable
26                                                         nullptr,// decoder
27                                                         nullptr,// encoder
28                                                         false,// received
29                                                         std::make_pair<bool, int>(false, 0),// multiplex
30                                                         0,// is_big_endian
31                                                         0,// is_signed
32                                                         ""// unit
33                                                 })},
34                                                 {std::make_shared<signal_t> (signal_t{
35                                                         "fuel.level.low",// generic_name
36                                                         55,// bit_position
37                                                         1,// bit_size
38                                                         1.00000f,// factor
39                                                         0.00000,// offset
40                                                         0,// min_value
41                                                         0,// max_value
42                                                         frequency_clock_t(0.00000f),// frequency
43                                                         true,// send_same
44                                                         false,// force_send_changed
45                                                         {
46                                                         },// states
47                                                         false,// writable
48                                                         decoder_t::decode_boolean,// decoder
49                                                         nullptr,// encoder
50                                                         false,// received
51                                                         std::make_pair<bool, int>(false, 0),// multiplex
52                                                         0,// is_big_endian
53                                                         0,// is_signed
54                                                         ""// unit
55                                                 })},
56                                                 {std::make_shared<signal_t> (signal_t{
57                                                         "fuel.level",// generic_name
58                                                         8,// bit_position
59                                                         8,// bit_size
60                                                         0.392157f,// factor
61                                                         0.00000,// offset
62                                                         0,// min_value
63                                                         0,// max_value
64                                                         frequency_clock_t(0.00000f),// frequency
65                                                         true,// send_same
66                                                         false,// force_send_changed
67                                                         {
68                                                         },// states
69                                                         false,// writable
70                                                         nullptr,// decoder
71                                                         nullptr,// encoder
72                                                         false,// received
73                                                         std::make_pair<bool, int>(false, 0),// multiplex
74                                                         0,// is_big_endian
75                                                         0,// is_signed
76                                                         ""// unit
77                                                 })}
78                                         } // end signals vector
79                                 })} // end message_definition entry
80 ,                               {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3E9,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
81                                         { // beginning signals vector
82                                                 {std::make_shared<signal_t> (signal_t{
83                                                         "vehicle.average.speed",// generic_name
84                                                         0,// bit_position
85                                                         15,// bit_size
86                                                         0.0156250f,// factor
87                                                         0.00000,// offset
88                                                         0,// min_value
89                                                         0,// max_value
90                                                         frequency_clock_t(0.00000f),// frequency
91                                                         true,// send_same
92                                                         false,// force_send_changed
93                                                         {
94                                                         },// states
95                                                         false,// writable
96                                                         nullptr,// decoder
97                                                         nullptr,// encoder
98                                                         false,// received
99                                                         std::make_pair<bool, int>(false, 0),// multiplex
100                                                         0,// is_big_endian
101                                                         0,// is_signed
102                                                         ""// unit
103                                                 })}
104                                         } // end signals vector
105                                 })} // end message_definition entry
106 ,                               {std::make_shared<message_definition_t>(message_definition_t{"hs",0x4D1,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
107                                         { // beginning signals vector
108                                                 {std::make_shared<signal_t> (signal_t{
109                                                         "engine.oil.temp",// generic_name
110                                                         16,// bit_position
111                                                         8,// bit_size
112                                                         1.00000f,// factor
113                                                         0.00000,// offset
114                                                         0,// min_value
115                                                         0,// max_value
116                                                         frequency_clock_t(0.00000f),// frequency
117                                                         true,// send_same
118                                                         false,// force_send_changed
119                                                         {
120                                                         },// states
121                                                         false,// writable
122                                                         nullptr,// decoder
123                                                         nullptr,// encoder
124                                                         false,// received
125                                                         std::make_pair<bool, int>(false, 0),// multiplex
126                                                         0,// is_big_endian
127                                                         0,// is_signed
128                                                         ""// unit
129                                                 })},
130                                                 {std::make_shared<signal_t> (signal_t{
131                                                         "engine.oil.temp.high",// generic_name
132                                                         7,// bit_position
133                                                         1,// bit_size
134                                                         1.00000f,// factor
135                                                         0.00000,// offset
136                                                         0,// min_value
137                                                         0,// max_value
138                                                         frequency_clock_t(0.00000f),// frequency
139                                                         true,// send_same
140                                                         false,// force_send_changed
141                                                         {
142                                                         },// states
143                                                         false,// writable
144                                                         decoder_t::decode_boolean,// decoder
145                                                         nullptr,// encoder
146                                                         false,// received
147                                                         std::make_pair<bool, int>(false, 0),// multiplex
148                                                         0,// is_big_endian
149                                                         0,// is_signed
150                                                         ""// unit
151                                                 })}
152                                         } // end signals vector
153                                 })} // end message_definition entry
154 ,                               {std::make_shared<message_definition_t>(message_definition_t{"hs",0x620,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
155                                         { // beginning signals vector
156                                                 {std::make_shared<signal_t> (signal_t{
157                                                         "doors.boot.open",// generic_name
158                                                         47,// bit_position
159                                                         1,// bit_size
160                                                         1.00000f,// factor
161                                                         0.00000,// offset
162                                                         0,// min_value
163                                                         0,// max_value
164                                                         frequency_clock_t(0.00000f),// frequency
165                                                         true,// send_same
166                                                         false,// force_send_changed
167                                                         {
168                                                         },// states
169                                                         false,// writable
170                                                         decoder_t::decode_boolean,// decoder
171                                                         nullptr,// encoder
172                                                         false,// received
173                                                         std::make_pair<bool, int>(false, 0),// multiplex
174                                                         0,// is_big_endian
175                                                         0,// is_signed
176                                                         ""// unit
177                                                 })},
178                                                 {std::make_shared<signal_t> (signal_t{
179                                                         "doors.front_left.open",// generic_name
180                                                         43,// bit_position
181                                                         1,// bit_size
182                                                         1.00000f,// factor
183                                                         0.00000,// offset
184                                                         0,// min_value
185                                                         0,// max_value
186                                                         frequency_clock_t(0.00000f),// frequency
187                                                         true,// send_same
188                                                         false,// force_send_changed
189                                                         {
190                                                         },// states
191                                                         false,// writable
192                                                         decoder_t::decode_boolean,// decoder
193                                                         nullptr,// encoder
194                                                         false,// received
195                                                         std::make_pair<bool, int>(false, 0),// multiplex
196                                                         0,// is_big_endian
197                                                         0,// is_signed
198                                                         ""// unit
199                                                 })},
200                                                 {std::make_shared<signal_t> (signal_t{
201                                                         "doors.front_right.open",// generic_name
202                                                         44,// bit_position
203                                                         1,// bit_size
204                                                         1.00000f,// factor
205                                                         0.00000,// offset
206                                                         0,// min_value
207                                                         0,// max_value
208                                                         frequency_clock_t(0.00000f),// frequency
209                                                         true,// send_same
210                                                         false,// force_send_changed
211                                                         {
212                                                         },// states
213                                                         false,// writable
214                                                         decoder_t::decode_boolean,// decoder
215                                                         nullptr,// encoder
216                                                         false,// received
217                                                         std::make_pair<bool, int>(false, 0),// multiplex
218                                                         0,// is_big_endian
219                                                         0,// is_signed
220                                                         ""// unit
221                                                 })},
222                                                 {std::make_shared<signal_t> (signal_t{
223                                                         "doors.rear_left.open",// generic_name
224                                                         46,// bit_position
225                                                         1,// bit_size
226                                                         1.00000f,// factor
227                                                         0.00000,// offset
228                                                         0,// min_value
229                                                         0,// max_value
230                                                         frequency_clock_t(0.00000f),// frequency
231                                                         true,// send_same
232                                                         false,// force_send_changed
233                                                         {
234                                                         },// states
235                                                         false,// writable
236                                                         decoder_t::decode_boolean,// decoder
237                                                         nullptr,// encoder
238                                                         false,// received
239                                                         std::make_pair<bool, int>(false, 0),// multiplex
240                                                         0,// is_big_endian
241                                                         0,// is_signed
242                                                         ""// unit
243                                                 })},
244                                                 {std::make_shared<signal_t> (signal_t{
245                                                         "doors.rear_right.open",// generic_name
246                                                         45,// bit_position
247                                                         4,// bit_size
248                                                         1.00000f,// factor
249                                                         0.00000,// offset
250                                                         0,// min_value
251                                                         0,// max_value
252                                                         frequency_clock_t(0.00000f),// frequency
253                                                         true,// send_same
254                                                         false,// force_send_changed
255                                                         {
256                                                         },// states
257                                                         false,// writable
258                                                         decoder_t::decode_boolean,// decoder
259                                                         nullptr,// encoder
260                                                         false,// received
261                                                         std::make_pair<bool, int>(false, 0),// multiplex
262                                                         0,// is_big_endian
263                                                         0,// is_signed
264                                                         ""// unit
265                                                 })}
266                                         } // end signals vector
267                                 })} // end message_definition entry
268 ,                               {std::make_shared<message_definition_t>(message_definition_t{"hs",0x799,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
269                                         { // beginning signals vector
270                                                 {std::make_shared<signal_t> (signal_t{
271                                                         "windows.front_left.open",// generic_name
272                                                         43,// bit_position
273                                                         1,// bit_size
274                                                         1.00000f,// factor
275                                                         0.00000,// offset
276                                                         0,// min_value
277                                                         0,// max_value
278                                                         frequency_clock_t(0.00000f),// frequency
279                                                         true,// send_same
280                                                         false,// force_send_changed
281                                                         {
282                                                         },// states
283                                                         false,// writable
284                                                         decoder_t::decode_boolean,// decoder
285                                                         nullptr,// encoder
286                                                         false,// received
287                                                         std::make_pair<bool, int>(false, 0),// multiplex
288                                                         0,// is_big_endian
289                                                         0,// is_signed
290                                                         ""// unit
291                                                 })},
292                                                 {std::make_shared<signal_t> (signal_t{
293                                                         "windows.front_right.open",// generic_name
294                                                         44,// bit_position
295                                                         1,// bit_size
296                                                         1.00000f,// factor
297                                                         0.00000,// offset
298                                                         0,// min_value
299                                                         0,// max_value
300                                                         frequency_clock_t(0.00000f),// frequency
301                                                         true,// send_same
302                                                         false,// force_send_changed
303                                                         {
304                                                         },// states
305                                                         false,// writable
306                                                         decoder_t::decode_boolean,// decoder
307                                                         nullptr,// encoder
308                                                         false,// received
309                                                         std::make_pair<bool, int>(false, 0),// multiplex
310                                                         0,// is_big_endian
311                                                         0,// is_signed
312                                                         ""// unit
313                                                 })},
314                                                 {std::make_shared<signal_t> (signal_t{
315                                                         "windows.rear_left.open",// generic_name
316                                                         46,// bit_position
317                                                         1,// bit_size
318                                                         1.00000f,// factor
319                                                         0.00000,// offset
320                                                         0,// min_value
321                                                         0,// max_value
322                                                         frequency_clock_t(0.00000f),// frequency
323                                                         true,// send_same
324                                                         false,// force_send_changed
325                                                         {
326                                                         },// states
327                                                         false,// writable
328                                                         decoder_t::decode_boolean,// decoder
329                                                         nullptr,// encoder
330                                                         false,// received
331                                                         std::make_pair<bool, int>(false, 0),// multiplex
332                                                         0,// is_big_endian
333                                                         0,// is_signed
334                                                         ""// unit
335                                                 })},
336                                                 {std::make_shared<signal_t> (signal_t{
337                                                         "windows.rear_right.open",// generic_name
338                                                         45,// bit_position
339                                                         4,// bit_size
340                                                         1.00000f,// factor
341                                                         0.00000,// offset
342                                                         0,// min_value
343                                                         0,// max_value
344                                                         frequency_clock_t(0.00000f),// frequency
345                                                         true,// send_same
346                                                         false,// force_send_changed
347                                                         {
348                                                         },// states
349                                                         false,// writable
350                                                         decoder_t::decode_boolean,// decoder
351                                                         nullptr,// encoder
352                                                         false,// received
353                                                         std::make_pair<bool, int>(false, 0),// multiplex
354                                                         0,// is_big_endian
355                                                         0,// is_signed
356                                                         ""// unit
357                                                 })}
358                                         } // end signals vector
359                                 })} // end message_definition entry
360
361                 }, // end message_definition vector
362                         { // beginning diagnostic_messages_ vector
363                                 {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
364                                         4,
365                                         "engine.load",
366                                         0,
367                                         0,
368                                         UNIT::INVALID,
369                                         5.00000f,
370                                         decoder_t::decode_obd2_response,
371                                         nullptr,
372                                         true,
373                                         false
374                                 })}
375 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
376                                         5,
377                                         "engine.coolant.temperature",
378                                         0,
379                                         0,
380                                         UNIT::INVALID,
381                                         1.00000f,
382                                         decoder_t::decode_obd2_response,
383                                         nullptr,
384                                         true,
385                                         false
386                                 })}
387 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
388                                         10,
389                                         "fuel.pressure",
390                                         0,
391                                         0,
392                                         UNIT::INVALID,
393                                         1.00000f,
394                                         decoder_t::decode_obd2_response,
395                                         nullptr,
396                                         true,
397                                         false
398                                 })}
399 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
400                                         11,
401                                         "intake.manifold.pressure",
402                                         0,
403                                         0,
404                                         UNIT::INVALID,
405                                         1.00000f,
406                                         decoder_t::decode_obd2_response,
407                                         nullptr,
408                                         true,
409                                         false
410                                 })}
411 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
412                                         12,
413                                         "engine.speed",
414                                         0,
415                                         0,
416                                         UNIT::INVALID,
417                                         5.00000f,
418                                         decoder_t::decode_obd2_response,
419                                         nullptr,
420                                         true,
421                                         false
422                                 })}
423 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
424                                         13,
425                                         "vehicle.speed",
426                                         0,
427                                         0,
428                                         UNIT::INVALID,
429                                         5.00000f,
430                                         decoder_t::decode_obd2_response,
431                                         nullptr,
432                                         true,
433                                         false
434                                 })}
435 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
436                                         15,
437                                         "intake.air.temperature",
438                                         0,
439                                         0,
440                                         UNIT::INVALID,
441                                         1.00000f,
442                                         decoder_t::decode_obd2_response,
443                                         nullptr,
444                                         true,
445                                         false
446                                 })}
447 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
448                                         16,
449                                         "mass.airflow",
450                                         0,
451                                         0,
452                                         UNIT::INVALID,
453                                         5.00000f,
454                                         decoder_t::decode_obd2_response,
455                                         nullptr,
456                                         true,
457                                         false
458                                 })}
459 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
460                                         17,
461                                         "throttle.position",
462                                         0,
463                                         0,
464                                         UNIT::INVALID,
465                                         5.00000f,
466                                         decoder_t::decode_obd2_response,
467                                         nullptr,
468                                         true,
469                                         false
470                                 })}
471 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
472                                         31,
473                                         "running.time",
474                                         0,
475                                         0,
476                                         UNIT::INVALID,
477                                         1.00000f,
478                                         decoder_t::decode_obd2_response,
479                                         nullptr,
480                                         true,
481                                         false
482                                 })}
483 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
484                                         45,
485                                         "EGR.error",
486                                         0,
487                                         0,
488                                         UNIT::INVALID,
489                                         0.00000f,
490                                         decoder_t::decode_obd2_response,
491                                         nullptr,
492                                         true,
493                                         false
494                                 })}
495 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
496                                         47,
497                                         "fuel.level",
498                                         0,
499                                         0,
500                                         UNIT::INVALID,
501                                         1.00000f,
502                                         decoder_t::decode_obd2_response,
503                                         nullptr,
504                                         true,
505                                         false
506                                 })}
507 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
508                                         51,
509                                         "barometric.pressure",
510                                         0,
511                                         0,
512                                         UNIT::INVALID,
513                                         1.00000f,
514                                         decoder_t::decode_obd2_response,
515                                         nullptr,
516                                         true,
517                                         false
518                                 })}
519 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
520                                         70,
521                                         "ambient.air.temperature",
522                                         0,
523                                         0,
524                                         UNIT::INVALID,
525                                         1.00000f,
526                                         decoder_t::decode_obd2_response,
527                                         nullptr,
528                                         true,
529                                         false
530                                 })}
531 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
532                                         76,
533                                         "commanded.throttle.position",
534                                         0,
535                                         0,
536                                         UNIT::INVALID,
537                                         1.00000f,
538                                         decoder_t::decode_obd2_response,
539                                         nullptr,
540                                         true,
541                                         false
542                                 })}
543 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
544                                         82,
545                                         "ethanol.fuel.percentage",
546                                         0,
547                                         0,
548                                         UNIT::INVALID,
549                                         1.00000f,
550                                         decoder_t::decode_obd2_response,
551                                         nullptr,
552                                         true,
553                                         false
554                                 })}
555 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
556                                         90,
557                                         "accelerator.pedal.position",
558                                         0,
559                                         0,
560                                         UNIT::INVALID,
561                                         5.00000f,
562                                         decoder_t::decode_obd2_response,
563                                         nullptr,
564                                         true,
565                                         false
566                                 })}
567 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
568                                         91,
569                                         "hybrid.battery-pack.remaining.life",
570                                         0,
571                                         0,
572                                         UNIT::INVALID,
573                                         5.00000f,
574                                         decoder_t::decode_obd2_response,
575                                         nullptr,
576                                         true,
577                                         false
578                                 })}
579 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
580                                         92,
581                                         "engine.oil.temperature",
582                                         0,
583                                         0,
584                                         UNIT::INVALID,
585                                         1.00000f,
586                                         decoder_t::decode_obd2_response,
587                                         nullptr,
588                                         true,
589                                         false
590                                 })}
591 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
592                                         94,
593                                         "engine.fuel.rate",
594                                         0,
595                                         0,
596                                         UNIT::INVALID,
597                                         1.00000f,
598                                         decoder_t::decode_obd2_response,
599                                         nullptr,
600                                         true,
601                                         false
602                                 })}
603 ,                               {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
604                                         99,
605                                         "engine.torque",
606                                         0,
607                                         0,
608                                         UNIT::INVALID,
609                                         1.00000f,
610                                         decoder_t::decode_obd2_response,
611                                         nullptr,
612                                         true,
613                                         false
614                                 })}
615
616                         } // end diagnostic_messages_ vector
617                 })} // end message_set entry
618         } // end message_set vector
619 {
620         for(std::shared_ptr<message_set_t> cms: message_set_)
621         {
622                 std::vector<std::shared_ptr<message_definition_t>> messages_definition = cms->get_messages_definition();
623                 for(std::shared_ptr<message_definition_t> cmd : messages_definition)
624                 {
625                         cmd->set_parent(cms);
626                         std::vector<std::shared_ptr<signal_t>> signals = cmd->get_signals();
627                         for(std::shared_ptr<signal_t> sig: signals)
628                         {
629                                 sig->set_parent(cmd);
630                         }
631                 }
632
633                 std::vector<std::shared_ptr<diagnostic_message_t>> diagnostic_messages = cms->get_diagnostic_messages();
634                 for(std::shared_ptr<diagnostic_message_t> dm : diagnostic_messages)
635                 {
636                         dm->set_parent(cms);
637                 }
638         }
639                 }
640
641 const std::string application_t::get_diagnostic_bus() const
642 {
643         return "hs";
644 }
645
646