Cleanup examples, tests, configuration and plugins
[apps/agl-service-can-low-level.git] / examples / engine / engine-signals.cpp
1 #include <binding/application.hpp>
2 #include <can/can-decoder.hpp>
3 #include <can/can-encoder.hpp>
4
5 extern "C" {
6 CTLP_CAPI_REGISTER("example");
7
8 std::shared_ptr<message_set_t> cms = 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,"",8,0,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.00000f,// 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                                         static_cast<sign_t>(0),// signed
31                                         -1,// bit_sign_position
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.00000f,// 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                                         static_cast<sign_t>(0),// signed
53                                         -1,// bit_sign_position
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.00000f,// 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                                         static_cast<sign_t>(0),// signed
75                                         -1,// bit_sign_position
76                                         ""// unit
77                                 })}
78                         } // end signals vector
79                 })} // end message_definition entry
80 ,               {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3E9,"",8,0,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.00000f,// 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                                         static_cast<sign_t>(0),// signed
101                                         -1,// bit_sign_position
102                                         ""// unit
103                                 })}
104                         } // end signals vector
105                 })} // end message_definition entry
106 ,               {std::make_shared<message_definition_t>(message_definition_t{"hs",0x4D1,"",8,0,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.00000f,// 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                                         static_cast<sign_t>(0),// signed
127                                         -1,// bit_sign_position
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.00000f,// 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                                         static_cast<sign_t>(0),// signed
149                                         -1,// bit_sign_position
150                                         ""// unit
151                                 })}
152                         } // end signals vector
153                 })} // end message_definition entry
154         }, // end message_definition vector
155         { // beginning diagnostic_messages_ vector
156
157         } // end diagnostic_messages_ vector
158 }); // end message_set entry
159
160 CTLP_ONLOAD(plugin, handle) {
161         afb_api_t api = (afb_api_t) plugin->api;
162         CtlConfigT* CtlConfig = (CtlConfigT*) afb_api_get_userdata(api);
163         application_t* app = (application_t*) getExternalData(CtlConfig);
164
165         return app->add_message_set(cms);
166 }
167
168
169 }