Compute Graph Framework SDK Reference  5.8
dwVehicleStateDrainer.hpp
Go to the documentation of this file.
1
2//
3// Notice
4// ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
5// NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
6// THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
7// MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
8//
9// NVIDIA CORPORATION & AFFILIATES assumes no responsibility for the consequences of use of such
10// information or for any infringement of patents or other rights of third parties that may
11// result from its use. No license is granted by implication or otherwise under any patent
12// or patent rights of NVIDIA CORPORATION & AFFILIATES. No third party distribution is allowed unless
13// expressly authorized by NVIDIA. Details are subject to change without notice.
14// This code supersedes and replaces all information previously supplied.
15// NVIDIA CORPORATION & AFFILIATES products are not authorized for use as critical
16// components in life support devices or systems without express written approval of
17// NVIDIA CORPORATION & AFFILIATES.
18//
19// SPDX-FileCopyrightText: Copyright (c) 2020-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
20// SPDX-License-Identifier: LicenseRef-NvidiaProprietary
21//
22// NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
23// property and proprietary rights in and to this material, related
24// documentation and any modifications thereto. Any use, reproduction,
25// disclosure or distribution of this material and related documentation
26// without an express license agreement from NVIDIA CORPORATION or
27// its affiliates is strictly prohibited.
28//
30
31#ifndef DW_FRAMEWORK_VEHICLE_STATE_DRAINER_HPP_
32#define DW_FRAMEWORK_VEHICLE_STATE_DRAINER_HPP_
33
35#include <dwframework/dwnodes/sensors/dwvehiclestatenode/impl/dwVehicleStateNodeImpl.hpp>
36#include <dwframework/dwnodes/sensors/dwvehiclestatenode/impl/dwVehicleStateChannelNodeImpl.hpp>
37
38#include <dw/sensors/Sensors.h>
39#include <dw/core/base/Types.h>
40
41namespace dw
42{
43namespace framework
44{
45class dwVehicleStateDrainer : public dwSensorDrainerTemplate<dwVehicleIOState, vio::ReadProcessedData>
46{
47public:
48 dwVehicleStateDrainer(dwSensorDrainerParams params, std::unique_ptr<vio::ReadProcessedData> readProcessedDataFunc, dwSensorHandle_t sensor)
49 : dwSensorDrainerTemplate<dwVehicleIOState, vio::ReadProcessedData>(params, std::move(readProcessedDataFunc), sensor)
50 {
51 }
52
53 dwStatus drainProcessedData(dwVehicleIOState* processedOutput,
54 dwTime_t& timestampOutput,
55 dwTime_t& nextTimestampOutput,
56 dwTime_t virtualSyncTime)
57 {
58 m_readProcessedDataFunc->clearButtonsPressed();
59
61 drainProcessedData(processedOutput,
62 timestampOutput,
63 nextTimestampOutput,
64 virtualSyncTime);
65
66 m_readProcessedDataFunc->getButtonsPressed(*processedOutput);
67
68 return status;
69 }
70
71 dwStatus replayProcessedData(dwVehicleIOState* processedOutput,
72 dwTime_t& timestampOutput,
74 {
75 m_readProcessedDataFunc->clearButtonsPressed();
76
78 replayProcessedData(processedOutput,
79 timestampOutput,
80 readCb);
81
82 m_readProcessedDataFunc->getButtonsPressed(*processedOutput);
83
84 return status;
85 }
86};
87
88class dwVehicleStateChannelDrainer : public dwChannelDrainerTemplate<dwVehicleIOState, vio::ReadProcessedVehicleStateDataFromChannel>
89{
91
92public:
93 dwVehicleStateChannelDrainer(dwSensorDrainerParams params, std::unique_ptr<vio::ReadProcessedVehicleStateDataFromChannel> readProcessedDataFunc, InputPort inputPort)
94 : dwChannelDrainerTemplate<dwVehicleIOState, vio::ReadProcessedVehicleStateDataFromChannel>(params, std::move(readProcessedDataFunc), inputPort)
95 {
96 }
97
98 dwStatus drainProcessedData(dwVehicleIOState* processedOutput,
99 dwTime_t& timestampOutput,
100 dwTime_t& nextTimestampOutput,
101 dwTime_t virtualSyncTime)
102 {
103 m_readProcessedDataFunc->clearButtonsPressed();
104
106 drainProcessedData(processedOutput,
107 timestampOutput,
108 nextTimestampOutput,
109 virtualSyncTime);
110
111 m_readProcessedDataFunc->getButtonsPressed(*processedOutput);
112
113 return status;
114 }
115};
116}
117}
118
119#endif // DW_FRAMEWORK_VEHICLE_STATE_DRAINER_HPP_
ISensorNode::DataEventReadCallback DataEventReadCallback
Definition: Node.hpp:339
virtual dwStatus drainProcessedData(ProcessedDataType *processedOutput, dwTime_t &timestampOutput, dwTime_t &nextTimestampOutput, dwTime_t virtualSyncTime)
virtual dwStatus replayProcessedData(ProcessedDataType *processedOutput, dwTime_t &timestampOutput, SensorNode::DataEventReadCallback readCb)
dwVehicleStateChannelDrainer(dwSensorDrainerParams params, std::unique_ptr< vio::ReadProcessedVehicleStateDataFromChannel > readProcessedDataFunc, InputPort inputPort)
dwStatus drainProcessedData(dwVehicleIOState *processedOutput, dwTime_t &timestampOutput, dwTime_t &nextTimestampOutput, dwTime_t virtualSyncTime)
dwVehicleStateDrainer(dwSensorDrainerParams params, std::unique_ptr< vio::ReadProcessedData > readProcessedDataFunc, dwSensorHandle_t sensor)
dwStatus drainProcessedData(dwVehicleIOState *processedOutput, dwTime_t &timestampOutput, dwTime_t &nextTimestampOutput, dwTime_t virtualSyncTime)
dwStatus replayProcessedData(dwVehicleIOState *processedOutput, dwTime_t &timestampOutput, SensorNode::DataEventReadCallback readCb)
dwCalibrationStatus status
Definition: Exception.hpp:47