summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-05-31 17:01:54 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2017-06-01 18:26:18 +0200
commit6c988cacd4fa284b0effb12e65c76502565c4248 (patch)
tree5da33ffb297ba8926e7ce0f70d2dc8f92b07ccb2
parent84f7395a94048df10fe88a41d6a43fdbc8f5785c (diff)
Retrieve signal last value and timestamp at once.
Change-Id: I8401030ece94b5e397b6d2b71b29ff4e435d1486 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
-rw-r--r--CAN-binder/low-can-binding/can/can-signals.cpp6
-rw-r--r--CAN-binder/low-can-binding/can/can-signals.hpp1
-rw-r--r--CAN-binder/low-can-binding/utils/timer.cpp5
-rw-r--r--CAN-binder/low-can-binding/utils/timer.hpp1
4 files changed, 13 insertions, 0 deletions
diff --git a/CAN-binder/low-can-binding/can/can-signals.cpp b/CAN-binder/low-can-binding/can/can-signals.cpp
index 260d5775..fe74115c 100644
--- a/CAN-binder/low-can-binding/can/can-signals.cpp
+++ b/CAN-binder/low-can-binding/can/can-signals.cpp
@@ -165,11 +165,17 @@ bool can_signal_t::get_received() const
{
return received_;
}
+
float can_signal_t::get_last_value() const
{
return last_value_;
}
+std::pair<float, uint64_t> can_signal_t::get_last_value_with_timestamp() const
+{
+ return std::make_pair(last_value_, frequency_.get_last_tick());
+}
+
void can_signal_t::set_parent(can_message_definition_t* parent)
{
parent_ = parent;
diff --git a/CAN-binder/low-can-binding/can/can-signals.hpp b/CAN-binder/low-can-binding/can/can-signals.hpp
index 2d67f273..d528f6a5 100644
--- a/CAN-binder/low-can-binding/can/can-signals.hpp
+++ b/CAN-binder/low-can-binding/can/can-signals.hpp
@@ -147,6 +147,7 @@ public:
SignalEncoder& get_encoder();
bool get_received() const;
float get_last_value() const;
+ std::pair<float, uint64_t> get_last_value_with_timestamp() const;
void set_parent(can_message_definition_t* parent);
void set_prefix(std::string val);
diff --git a/CAN-binder/low-can-binding/utils/timer.cpp b/CAN-binder/low-can-binding/utils/timer.cpp
index 4584b859..eb79f853 100644
--- a/CAN-binder/low-can-binding/utils/timer.cpp
+++ b/CAN-binder/low-can-binding/utils/timer.cpp
@@ -113,6 +113,11 @@ float frequency_clock_t::get_frequency() const
return frequency_;
}
+uint64_t frequency_clock_t::get_last_tick() const
+{
+ return last_tick_;
+}
+
/// @brief Force the clock to tick, regardless of it its time has actually
/// elapsed.
void frequency_clock_t::tick(uint64_t timestamp)
diff --git a/CAN-binder/low-can-binding/utils/timer.hpp b/CAN-binder/low-can-binding/utils/timer.hpp
index 560a8181..a667022a 100644
--- a/CAN-binder/low-can-binding/utils/timer.hpp
+++ b/CAN-binder/low-can-binding/utils/timer.hpp
@@ -53,5 +53,6 @@ public:
time_function_t get_time_function();
bool elapsed(bool stagger);
+ uint64_t get_last_tick() const;
void tick(uint64_t timestamp);
}; \ No newline at end of file