Add necessary to be able to initialize diagnostic manager shims.
[apps/low-level-can-service.git] / src / diagnostic / diagnostic-manager.hpp
index 0352120..faf1eaf 100644 (file)
@@ -20,7 +20,7 @@
 #include <vector>
 
 #include "uds/uds.h"
-#include "can/can-bus.hpp"
+#include "can/can-bus-dev.hpp"
 #include "can/can-message.hpp"
 #include "obd2/active-diagnostic-request.hpp"
 
  */
 class diagnostic_manager_t {
 protected:
+       static bool shims_send(const uint32_t arbitration_id, const uint8_t* data, const uint8_t size);
        static void shims_logger(const char* m, ...);
        static void shims_timer();
 
 private:
        DiagnosticShims shims_; /*!< shims_ - An array of shim functions for each CAN bus that plug the diagnostics
                                                                * library (uds-c) into the VI's CAN peripheral.*/
-       can_bus_dev_t& bus_; /*!< bus_ - A reference to the CAN bus that should be used for all standard OBD-II requests, if the bus is not
+       can_bus_dev_t* bus_; /*!< bus_ - A pointer to the CAN bus that should be used for all standard OBD-II requests, if the bus is not
                                                        * explicitly spcified in the request. If NULL, all requests require an explicit bus.*/
        std::queue<active_diagnostic_request_t> recurringRequests_; /*!< recurringRequests - A queue of active, recurring diagnostic requests. When
                                                                                                                                * a response is received for a recurring request or it times out, it is
@@ -61,9 +62,13 @@ private:
        bool initialized_; /*!< * initialized - True if the DiagnosticsManager has been initialized with shims. It will interface with the uds-c lib*/
 
 public:
+       diagnostic_manager_t();
        diagnostic_manager_t(can_bus_dev_t& bus);
+
        void init_diagnostic_shims();
 
+       can_bus_dev_t* get_can_bus_dev();
+
        void checkSupportedPids(const active_diagnostic_request_t& request,
        const DiagnosticResponse& response, float parsedPayload);