summaryrefslogtreecommitdiffstats
path: root/src/configuration.cpp
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-03-08 22:53:22 +0100
committerRomain Forlot <romain.forlot@iot.bzh>2017-03-16 17:10:39 +0100
commit897338604c6fa1e63b18907d198a5a1b45095826 (patch)
treedae2b08511e529357d7370ba803a7a257bb94862 /src/configuration.cpp
parentc631ee0bf8f702004c9d21c501d9588458c0ca08 (diff)
Separate methods declarations and implementations.
Get out examples objects to test into another cpp that will be used to be the template for the futur generated code. Change-Id: Ic630478b5419e7a18e4e6446edbac7fbe68299b9 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh> Conflicts: src/configuration.hpp
Diffstat (limited to 'src/configuration.cpp')
-rw-r--r--src/configuration.cpp116
1 files changed, 64 insertions, 52 deletions
diff --git a/src/configuration.cpp b/src/configuration.cpp
index 0c5e8d08..f0f79093 100644
--- a/src/configuration.cpp
+++ b/src/configuration.cpp
@@ -15,61 +15,73 @@
* limitations under the License.
*/
-/////////////////////////////////////////////////////////////////////////////////////
-// THIS IS AN EXAMPLE
-/////////////////////////////////////////////////////////////////////////////////////
-
#include <configuration.hpp>
#define OBD2_FUNCTIONAL_BROADCAST_ID 0x7df
-/*
-* Pre-defined OBD-II PIDs to query for if supported by the vehicle.
-*/
- std::vector<obd2_signal_t> OBD2_PIDS = {
- { 0x04, "obd2.engine.load", 0, 100, POURCENT, 5, false},
- { 0x05, "obd2.engine.coolant.temperature", -40, 215, DEGREES_CELSIUS, 1, false},
- { 0x0a, "obd2.fuel.pressure", 0, 765, KPA, 1, false},
- { 0x0b, "obd2.intake.manifold.pressure", 0, 255, KPA, 1, false},
- { 0x0c, "obd2.engine.speed", 0, 16383, RPM, 5, false},
- { 0x0d, "obd2.vehicle.speed", 0, 255, KM_H, 5, false},
- { 0x0f, "obd2.intake.air.temperature", -40, 215, DEGREES_CELSIUS, 1, false},
- { 0x10, "obd2.mass.airflow", 0, 655, GRAMS_SEC, 5, false},
- { 0x11, "obd2.throttle.position", 0, 100, POURCENT, 5, false},
- { 0x1f, "obd2.running.time", 0, 65535, SECONDS, 1, false},
- { 0x2d, "obd2.EGR.error", -100, 99, POURCENT, 0, false},
- { 0x2f, "obd2.fuel.level", 0, 100, POURCENT, 1, false},
- { 0x33, "obd2.barometric.pressure", 0, 255, KPA, 1, false},
- { 0x4c, "obd2.commanded.throttle.position", 0, 100, POURCENT, 1, false},
- { 0x52, "obd2.ethanol.fuel.percentage", 0, 100, POURCENT, 1, false},
- { 0x5a, "obd2.accelerator.pedal.position", 0, 100, POURCENT, 5, false},
- { 0x5b, "obd2.hybrid.battery-pack.remaining.life", 0, 100, POURCENT, 5, false},
- { 0x5c, "obd2.engine.oil.temperature",-40, 210, DEGREES_CELSIUS, 1, false},
- { 0x63, "obd2.engine.torque", 0, 65535, NM, 1, false}
-};
-
-std::vector<can_message_set_t> CAN_MESSAGE_SET =
-{
- {0, "example_messages", 1, 2, 2, 0, 19},
-};
-
-std::vector<std::vector<can_message_definition_t>> CAN_MESSAGES_DEFINTION = {
- {
- {0x620, CanMessageFormat::STANDARD, {10, 0, nullptr}, false, (uint8_t)NULL},
- {0x442, CanMessageFormat::STANDARD, {10, 0, nullptr}, false, (uint8_t)NULL},
- },
-};
-
-/**
- * @brief Dumb SIGNALS array. It is composed by CanMessageSet
- * SIGNALS[MESSAGE_SET_ID][CanSignal]
- */
-std::vector<std::vector<can_signal_t>> SIGNALS = {
- {
- {&(CAN_MESSAGES_DEFINTION[MESSAGE_SET_ID][0]), "can.driver_door.open", 2, 4, 1.000000, 0.000000, 0.000000, 0.000000, {10, 0, nullptr}, false, true, nullptr, 0, false, decoder_t::booleanDecoder, nullptr, false, 0.0},
- {&(CAN_MESSAGES_DEFINTION[MESSAGE_SET_ID][1]), "can.driver_door.close", 0, 4, 1.000000, 0.000000, 0.000000, 0.000000, {10, 0, nullptr}, false, true, nullptr, 0, false, decoder_t::booleanDecoder, nullptr, false, 0.0}
- },
-};
+// Dumb signals and message implementation. To get compile.
+ std::vector<obd2_signal_t> OBD2_PIDS;
+
+std::vector<can_message_set_t> CAN_MESSAGE_SET;
+
+std::vector<std::vector<can_message_definition_t>> CAN_MESSAGES_DEFINTION;
+
+std::vector<std::vector<can_signal_t>> SIGNALS;
configuration_t::configuration_t()
- : obd2_signals_{OBD2_PIDS}, can_message_set_{CAN_MESSAGE_SET}, can_signals_{SIGNALS}, can_message_definition_{CAN_MESSAGES_DEFINTION} \ No newline at end of file
+ : obd2_signals_{OBD2_PIDS}, can_message_set_{CAN_MESSAGE_SET}, can_signals_{SIGNALS}, can_message_definition_{CAN_MESSAGES_DEFINTION}
+
+configuration_t& configuration_t::get_configuration()
+{
+ return *this;
+}
+
+can_bus_t& configuration_t::get_can_bus_manager() const
+{
+ return can_bus_manager_;
+}
+
+diagnostic_manager_t& configuration_t::get_diagnostic_manager() const
+{
+ return diagnostic_manager_;
+}
+
+uint8_t configuration_t::get_active_message_set() const
+{
+ return active_message_set_;
+}
+
+const std::vector<can_message_set_t>& configuration_t::get_can_message_set() const
+{
+ return can_message_set_;
+}
+
+const std::vector<can_signal_t>& configuration_t::get_can_signals() const
+{
+ return can_signals_[active_message_set_];
+}
+
+const std::vector<can_message_definition_t>& configuration_t::get_can_message_definition() const
+{
+ return can_message_definition_[active_message_set_];
+}
+
+const std::vector<obd2_signal_t>& configuration_t::get_obd2_signals() const
+{
+ return obd2_signals_;
+}
+
+uint32_t configuration_t::get_signal_id(obd2_signal_t& sig) const
+{
+ return sig.get_pid();
+}
+
+uint32_t configuration_t::get_signal_id(can_signal_t& sig) const
+{
+ return sig.get_message()->get_id();
+}
+
+void configuration_t::set_active_message_set(uint8_t id)
+{
+ active_message_set_ = id;
+} \ No newline at end of file