31#ifndef DW_FRAMEWORK_VEHICLE_STATE_DRAINER_HPP_
32#define DW_FRAMEWORK_VEHICLE_STATE_DRAINER_HPP_
34#include <dwframework/dwnodes/sensors/dwsensornode/dwSensorDrainerTemplate.hpp>
35#include <dwframework/dwnodes/sensors/dwvehiclestatenode/impl/dwVehicleStateNodeImpl.hpp>
36#include <dwframework/dwnodes/sensors/dwvehiclestatenode/impl/dwVehicleStateChannelNodeImpl.hpp>
38#include <dw/sensors/Sensors.h>
39#include <dw/core/base/Types.h>
48 dwVehicleStateDrainer(dwSensorDrainerParams params, std::unique_ptr<vio::ReadProcessedData> readProcessedDataFunc, dwSensorHandle_t sensor)
49 : dwSensorDrainerTemplate<dwVehicleIOState, vio::ReadProcessedData>(params, std::move(readProcessedDataFunc), sensor)
54 dwTime_t& timestampOutput,
55 dwTime_t& nextTimestampOutput,
56 dwTime_t virtualSyncTime)
58 m_readProcessedDataFunc->clearButtonsPressed();
60 dwStatus status = dwSensorDrainerTemplate<dwVehicleIOState, vio::ReadProcessedData>::
61 drainProcessedData(processedOutput,
66 m_readProcessedDataFunc->getButtonsPressed(*processedOutput);
72 dwTime_t& timestampOutput,
75 m_readProcessedDataFunc->clearButtonsPressed();
77 dwStatus status = dwSensorDrainerTemplate<dwVehicleIOState, vio::ReadProcessedData>::
78 replayProcessedData(processedOutput,
82 m_readProcessedDataFunc->getButtonsPressed(*processedOutput);
94 : dwChannelDrainerTemplate<dwVehicleIOState, vio::ReadProcessedVehicleStateDataFromChannel>(params, std::move(readProcessedDataFunc), inputPort)
99 dwTime_t& timestampOutput,
100 dwTime_t& nextTimestampOutput,
101 dwTime_t virtualSyncTime)
103 m_readProcessedDataFunc->clearButtonsPressed();
105 dwStatus status = dwChannelDrainerTemplate<dwVehicleIOState, vio::ReadProcessedVehicleStateDataFromChannel>::
106 drainProcessedData(processedOutput,
111 m_readProcessedDataFunc->getButtonsPressed(*processedOutput);
dw::core::Function< bool(DataEvent &)> DataEventReadCallback
dwVehicleStateChannelDrainer(dwSensorDrainerParams params, std::unique_ptr< vio::ReadProcessedVehicleStateDataFromChannel > readProcessedDataFunc, InputPort inputPort)
dwStatus drainProcessedData(dwVehicleIOState *processedOutput, dwTime_t ×tampOutput, dwTime_t &nextTimestampOutput, dwTime_t virtualSyncTime)
dwVehicleStateDrainer(dwSensorDrainerParams params, std::unique_ptr< vio::ReadProcessedData > readProcessedDataFunc, dwSensorHandle_t sensor)
dwStatus drainProcessedData(dwVehicleIOState *processedOutput, dwTime_t ×tampOutput, dwTime_t &nextTimestampOutput, dwTime_t virtualSyncTime)
dwStatus replayProcessedData(dwVehicleIOState *processedOutput, dwTime_t ×tampOutput, ISensorNode::DataEventReadCallback readCb)