Jsonification of VehicleMessage and push event
[apps/agl-service-can-low-level.git] / src / can-signals.cpp
1 /*
2  * Copyright (C) 2015, 2016 "IoT.bzh"
3  * Author "Romain Forlot" <romain.forlot@iot.bzh>
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *       http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 #include <string>
19 #include <vector>
20 #include "can-signals.h"
21
22 bool match(const std::string &first, const std::string &second)
23 {
24
25 }
26
27 CanSignal* getSignals(openxc_DynamicField *key)
28 {
29         int n_signals, i;
30         std::vector <CanSignal> ret_signals;
31
32         n_signals = SIGNALS.size();
33
34         switch(key->type):
35         {
36                 case openxc_DynamicField_Type::openxc_DynamicField_Type_STRING:
37                         for(i=0; i<=n_signals; i++)
38                         {
39                                 if(match((std::string*)key->string_value, (std::string*)SIGNALS[i]->genericName))
40                                         ret_signals.insert(&SIGNALS[i]);
41                         }
42                         break;
43                 case openxc_DynamicField_Type::openxc_DynamicField_Type_NUM:
44                         for(i=0; i<=n_signals; i++)
45                         {
46                                 CanMessageDefinition *msg_def = SIGNALS[i]->message;
47                                 if(msg_def->id == key->numeric_value)
48                                         ret_signals.insert(&SIGNALS[i])
49                         }
50                         break;
51                 default:
52                         return NULL;
53                         break;
54         }
55
56         return &ret_signals;
57 }