bool initialize();
- void read_socket();
utils::socketcan_bcm_t& get_socket();
std::string get_can_bus();
active_diagnostic_request_t* get_last_recurring_requests() const;
void cleanup_active_requests(bool force);
active_diagnostic_request_t* find_recurring_request(const DiagnosticRequest* request);
- void checkSupportedPids(const active_diagnostic_request_t& request,
- const DiagnosticResponse& response, float parsedPayload);
-
// Subscription parts
active_diagnostic_request_t* add_request(DiagnosticRequest* request, const std::string name,
bool waitForMultipleResponses, const DiagnosticResponseDecoder decoder,
bool waitForMultipleResponses, const DiagnosticResponseDecoder decoder,
const DiagnosticResponseCallback callback, float frequencyHz);
- // Sendig requests part
- bool conflicting(active_diagnostic_request_t* request, active_diagnostic_request_t* candidate) const;
- bool clear_to_send(active_diagnostic_request_t* request) const;
- int reschedule_request(sd_event_source *s, uint64_t usec, active_diagnostic_request_t* adr);
- static int send_request(sd_event_source *s, uint64_t usec, void *userdata);
-
// Decoding part
openxc_VehicleMessage relay_diagnostic_response(active_diagnostic_request_t* adr, const DiagnosticResponse& response);
openxc_VehicleMessage relay_diagnostic_handle(active_diagnostic_request_t* entry, const can_message_t& cm);