Set parent from configuration_generated objects.
[apps/low-level-can-service.git] / CAN-binder / low-can-binding / can / can-message-definition.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 "can-message-definition.hpp"
19
20 can_message_definition_t::can_message_definition_t(const std::string bus)
21         : parent_{nullptr}, bus_{bus}, last_value_{CAN_MESSAGE_SIZE}
22 {}
23
24 can_message_definition_t::can_message_definition_t(
25         const std::string bus,
26         uint32_t id,
27         frequency_clock_t frequency_clock,
28         bool force_send_changed)
29         : parent_{nullptr},
30           bus_{bus},
31           id_{id},
32           frequency_clock_{frequency_clock},
33           force_send_changed_{force_send_changed},
34           last_value_{CAN_MESSAGE_SIZE}
35 {}
36
37 can_message_definition_t::can_message_definition_t(
38         const std::string bus,
39         uint32_t id,
40         can_message_format_t format,
41         frequency_clock_t frequency_clock,
42         bool force_send_changed)
43         : parent_{nullptr},
44         bus_{bus},
45         id_{id},
46         format_{format},
47         frequency_clock_{frequency_clock},
48         force_send_changed_{force_send_changed},
49         last_value_{CAN_MESSAGE_SIZE}
50 {}
51
52 can_message_definition_t::can_message_definition_t(
53         const std::string bus,
54         uint32_t id,
55         can_message_format_t format,
56         frequency_clock_t frequency_clock,
57         bool force_send_changed,
58         const std::vector<std::shared_ptr<can_signal_t> >& can_signals)
59         :  parent_{nullptr},
60         bus_{bus},
61         id_{id},
62         format_{format},
63         frequency_clock_{frequency_clock},
64         force_send_changed_{force_send_changed},
65         last_value_{CAN_MESSAGE_SIZE},
66         can_signals_{std::move(can_signals)}
67 {}
68
69 const std::string can_message_definition_t::get_bus_name() const
70 {
71         return bus_;
72 }
73
74 uint32_t can_message_definition_t::get_id() const
75 {
76         return id_;
77 }
78
79 std::vector<std::shared_ptr<can_signal_t> >& can_message_definition_t::get_can_signals()
80 {
81         return can_signals_;
82 }
83
84 void can_message_definition_t::set_parent(can_message_set_t* parent)
85 {
86         parent_= parent;
87 }
88
89 void can_message_definition_t::set_last_value(const can_message_t& cm)
90 {
91         last_value_= cm.get_data_vector();
92 }