Update doc revision and pdf cover.
[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 #include "../binding/application.hpp"
21
22 can_message_definition_t::can_message_definition_t(const std::string bus)
23         : parent_{nullptr}, bus_{bus}, last_value_{CAN_MESSAGE_SIZE}
24 {}
25
26 can_message_definition_t::can_message_definition_t(
27         const std::string bus,
28         uint32_t id,
29         frequency_clock_t frequency_clock,
30         bool force_send_changed)
31         : parent_{nullptr},
32           bus_{bus},
33           id_{id},
34           frequency_clock_{frequency_clock},
35           force_send_changed_{force_send_changed},
36           last_value_{CAN_MESSAGE_SIZE}
37 {}
38
39 can_message_definition_t::can_message_definition_t(
40         const std::string bus,
41         uint32_t id,
42         can_message_format_t format,
43         frequency_clock_t frequency_clock,
44         bool force_send_changed)
45         : parent_{nullptr},
46         bus_{bus},
47         id_{id},
48         format_{format},
49         frequency_clock_{frequency_clock},
50         force_send_changed_{force_send_changed},
51         last_value_{CAN_MESSAGE_SIZE}
52 {}
53
54 can_message_definition_t::can_message_definition_t(
55         const std::string bus,
56         uint32_t id,
57         can_message_format_t format,
58         frequency_clock_t frequency_clock,
59         bool force_send_changed,
60         const std::vector<std::shared_ptr<can_signal_t> >& can_signals)
61         :  parent_{nullptr},
62         bus_{bus},
63         id_{id},
64         format_{format},
65         frequency_clock_{frequency_clock},
66         force_send_changed_{force_send_changed},
67         last_value_{CAN_MESSAGE_SIZE},
68         can_signals_{can_signals}
69 {}
70
71 const std::string can_message_definition_t::get_bus_name() const
72 {
73         return bus_;
74 }
75
76 const std::string can_message_definition_t::get_bus_device_name() const
77 {
78         return application_t::instance().get_can_bus_manager()
79                 .get_can_device_name(bus_);
80 }
81
82 uint32_t can_message_definition_t::get_id() const
83 {
84         return id_;
85 }
86
87 std::vector<std::shared_ptr<can_signal_t> >& can_message_definition_t::get_can_signals()
88 {
89         return can_signals_;
90 }
91
92 void can_message_definition_t::set_parent(can_message_set_t* parent)
93 {
94         parent_= parent;
95 }
96
97 void can_message_definition_t::set_last_value(const can_message_t& cm)
98 {
99         last_value_= cm.get_data_vector();
100 }