26#ifndef SIM_TO_DUT_INTERFACE_DUTCONNECTOR_H
27#define SIM_TO_DUT_INTERFACE_DUTCONNECTOR_H
33#include <boost/asio.hpp>
34#include "../DuT_Connectors/ConnectorInfo.h"
35#include "../Events/SimEvent.h"
36#include "../Utility/SharedQueue.h"
37#include "../Utility/PeriodicTimer.h"
38#include "ConnectorConfig.h"
95 bool canHandleSimEvent(
const SimEvent &simEvent);
97 bool isPeriodicEnabled(
const SimEvent &simEvent);
99 void setupTimer(
const SimEvent &simEvent);
101 void enablePeriodicSending(
const std::string &operation,
int periodMs);
103 std::shared_ptr<boost::asio::io_service> io;
104 std::thread timerRunner;;
106 std::set<std::string> processableOperations;
108 std::shared_ptr<SharedQueue<SimEvent>> queueDuTToSim;
110 std::map<std::string, std::unique_ptr<sim_interface::PeriodicTimer>> periodicTimers;
111 std::map<std::string, int> periodicIntervals;
112 std::unique_ptr<PeriodicTimer> aliveTimer;
113 bool periodicTimerEnabled;
A thread save shared queue to communicate between multiple threads. The queue is a FIFO queue.
Definition: SharedQueue.h:40
Event object used to communicate between simulation and DuTs.
Definition: SimEvent.h:47
Configuration for a single DuTConnector
Definition: ConnectorConfig.h:43
Some basic information about the connector device.
Definition: ConnectorInfo.h:37
Connector implementing all kinds of DuT devices.
Definition: DuTConnector.h:48
void sendEventToSim(const SimEvent &simEvent)
Definition: DuTConnector.cpp:82
virtual void handleEventSingle(const SimEvent &simEvent)
Definition: DuTConnector.h:90
~DuTConnector()
Definition: DuTConnector.cpp:52
DuTConnector(std::shared_ptr< SharedQueue< SimEvent > > queueDuTToSim, const sim_interface::dut_connector::ConnectorConfig &config)
Definition: DuTConnector.cpp:33
void handleEvent(const SimEvent &simEvent)
Definition: DuTConnector.cpp:66
virtual ConnectorInfo getConnectorInfo()
Definition: DuTConnector.cpp:58
Definition: CANConnector.cpp:29