summaryrefslogtreecommitdiffstats
path: root/src/diagnostic/active-diagnostic-request.cpp
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-03-10 10:11:44 +0100
committerRomain Forlot <romain.forlot@iot.bzh>2017-03-16 17:10:40 +0100
commita0b229d33eb8bf076bc40f9a31dbd3a689a335e1 (patch)
treeb48a78476b7cad5c14955a85135224b53347ff5a /src/diagnostic/active-diagnostic-request.cpp
parent19c0faf5dcb5c7e58136f6ba56c65535baac2efb (diff)
Finalize the class active_diag... to get it compile.
Fix subsequents bugs into the other depending class diagnostic manager Change-Id: I8920c489fc15a61a36ff29d58aab59c2e6388f85 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'src/diagnostic/active-diagnostic-request.cpp')
-rw-r--r--src/diagnostic/active-diagnostic-request.cpp55
1 files changed, 31 insertions, 24 deletions
diff --git a/src/diagnostic/active-diagnostic-request.cpp b/src/diagnostic/active-diagnostic-request.cpp
index 430e4f68..3e6ab140 100644
--- a/src/diagnostic/active-diagnostic-request.cpp
+++ b/src/diagnostic/active-diagnostic-request.cpp
@@ -17,41 +17,49 @@
#include "active-diagnostic-request.hpp"
-bool& operator==(const active_diagnostic_request_t& adr) const
+bool active_diagnostic_request_t::operator==(const active_diagnostic_request_t& b)
{
- return (bus_ == adr.bus_ && id_ == adr.id_ && handle_ == adr.handle_) ? true : false;
+ return (bus_ == b.bus_ && id_ == b.id_ && handle_ == b.handle_) ? true : false;
}
-active_diagnostic_request_t& operator=(const active_diagnostic_request_t& adr)
- : can_bus_dev_{adr.can_bus_dev_}, id_{adr.id_}, handle_{adr.handle_}, name_{adr.name_},
- decoder_{adr.decoder_}, callback_{adr.callback_}, reccuring_{adr.reccuring_}, wait_for_multiple_responses_{adr.wait_for_multiple_responses_},
- in_flight_{adr.in_flight_}, frequency_clock_{adr.frequency_clock_}, timeout_clock_{adr.timeout_clock_}
-{}
+active_diagnostic_request_t& active_diagnostic_request_t::operator=(const active_diagnostic_request_t& adr)
+{
+ bus_ = adr.bus_;
+ id_ = adr.id_;
+ handle_ = adr.handle_;
+ name_ = adr.name_;
+ decoder_ = adr.decoder_;
+ callback_ = adr.callback_;
+ recurring_ = adr.recurring_;
+ wait_for_multiple_responses_ = adr.wait_for_multiple_responses_;
+ in_flight_ = adr.in_flight_;
+ frequency_clock_ = adr.frequency_clock_;
+ timeout_clock_ = adr.timeout_clock_;
+
+ return *this;
+}
active_diagnostic_request_t::active_diagnostic_request_t()
- : can_bus_dev_{nullptr}, id_{0}, handle_{nullptr}, name_{""},
- decoder_{nullptr}, callback_{nullptr}, reccuring_{false}, wait_for_multiple_responses_{false},
+ : bus_{nullptr}, id_{0}, handle_{nullptr}, name_{""},
+ decoder_{nullptr}, callback_{nullptr}, recurring_{false}, wait_for_multiple_responses_{false},
in_flight_{false}, frequency_clock_{frequency_clock_t()}, timeout_clock_{frequency_clock_t()}
{}
-active_diagnostic_request_t(can_bus_dev_t* bus, DiagnosticRequest* request,
+active_diagnostic_request_t::active_diagnostic_request_t(can_bus_dev_t* bus, DiagnosticRequest* request,
const std::string& name, bool wait_for_multiple_responses,
const DiagnosticResponseDecoder decoder,
const DiagnosticResponseCallback callback, float frequencyHz)
: bus_{bus}, id_{request->arbitration_id}, handle_{nullptr}, name_{name},
- decoder_{decoder}, callback_{callback}, reccuring_{frequencyHz ? true : false}, wait_for_multiple_responses_{wait_for_multiple_responses},
+ decoder_{decoder}, callback_{callback}, recurring_{frequencyHz ? true : false}, wait_for_multiple_responses_{wait_for_multiple_responses},
in_flight_{false}, frequency_clock_{frequency_clock_t(frequencyHz)}, timeout_clock_{frequency_clock_t(10)}
-{
- entry->handle = generate_diagnostic_request(
- &manager->shims[bus->address - 1], request, NULL);
-}
+{}
can_bus_dev_t* active_diagnostic_request_t::get_can_bus_dev()
{
- return can_bus_dev_;
+ return bus_;
}
-DiagnosticRequestHandle& active_diagnostic_request_t::get_handle()
+DiagnosticRequestHandle* active_diagnostic_request_t::get_handle()
{
return handle_;
}
@@ -66,9 +74,9 @@ bool active_diagnostic_request_t::get_in_flight() const
return in_flight_;
}
-void active_diagnostic_request_t::set_handle(DiagnosticShims& shims, DiagnosticRequest& request)
+void active_diagnostic_request_t::set_handle(DiagnosticShims& shims, DiagnosticRequest* request)
{
- handle_ = generate_diagnostic_request(shims_, request, nullptr)
+ handle_ = new DiagnosticRequestHandle(generate_diagnostic_request(&shims, request, nullptr));
}
void active_diagnostic_request_t::set_in_flight(bool val)
@@ -76,7 +84,7 @@ void active_diagnostic_request_t::set_in_flight(bool val)
in_flight_ = val;
}
-bool active_diagnostic_request_t::timed_out() const
+bool active_diagnostic_request_t::timed_out()
{
// don't use staggered start with the timeout clock
return timeout_clock_.elapsed(false);
@@ -91,14 +99,13 @@ bool active_diagnostic_request_t::timed_out() const
bool active_diagnostic_request_t::response_received() const
{
return !wait_for_multiple_responses_ &&
- handle_.completed;
+ handle_->completed;
}
/// @brief Returns true if the request has timed out waiting for a response,
/// or a sufficient number of responses has been received.
-///
-bool active_diagnostic_request_t::request_completed() const
+bool active_diagnostic_request_t::request_completed()
{
return response_received() ||
(timed_out() && diagnostic_request_sent(handle_));
-} \ No newline at end of file
+}