Compute Graph Framework SDK Reference  5.16
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-2023 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
34#include <dwframework/dwnodes/sensors/dwsensornode/dwSensorDrainerTemplate.hpp>
35#include <dwframework/dwnodes/sensors/dwvehiclestatenode/impl/dwVehicleStateNodeImpl.hpp>
36
37#include <dw/sensors/Sensors.h>
38#include <dw/core/base/Types.h>
39
40namespace dw
41{
42namespace framework
43{
44class dwVehicleStateDrainer : public dwSensorDrainerTemplate<dwVehicleIOState, vio::ReadProcessedData>
45{
46public:
47 dwVehicleStateDrainer(dwSensorDrainerParams params, std::unique_ptr<vio::ReadProcessedData> readProcessedDataFunc, dwSensorHandle_t sensor)
48 : dwSensorDrainerTemplate<dwVehicleIOState, vio::ReadProcessedData>(params, std::move(readProcessedDataFunc), sensor)
49 {
50 }
51
52 dwStatus drainProcessedData(dwVehicleIOState* processedOutput,
53 dwTime_t& timestampOutput,
54 dwTime_t& nextTimestampOutput,
55 dwTime_t virtualSyncTime)
56 {
57 m_readProcessedDataFunc->clearButtonsPressed();
58
59 dwStatus status = dwSensorDrainerTemplate<dwVehicleIOState, vio::ReadProcessedData>::
60 drainProcessedData(processedOutput,
61 timestampOutput,
62 nextTimestampOutput,
63 virtualSyncTime);
64
65 m_readProcessedDataFunc->getButtonsPressed(*processedOutput);
66
67 return status;
68 }
69
70 dwStatus replayProcessedData(dwVehicleIOState* processedOutput,
71 dwTime_t& timestampOutput,
73 {
74 m_readProcessedDataFunc->clearButtonsPressed();
75
76 dwStatus status = dwSensorDrainerTemplate<dwVehicleIOState, vio::ReadProcessedData>::
77 replayProcessedData(processedOutput,
78 timestampOutput,
79 std::move(readCb));
80
81 m_readProcessedDataFunc->getButtonsPressed(*processedOutput);
82
83 return status;
84 }
85};
86}
87}
88
89#endif // DW_FRAMEWORK_VEHICLE_STATE_DRAINER_HPP_
dw::core::Function< bool(DataEvent &)> DataEventReadCallback
Definition: Node.hpp:389
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, ISensorNode::DataEventReadCallback readCb)
Definition: Buffer.hpp:40