Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>

  • DriveWorks SDK Reference
    5.8.83 Release
    For Test and Development only

    All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    SensorManager.h
    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) 2017-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
    45#ifndef DW_SENSORS_SENSORMANAGER_H_
    46#define DW_SENSORS_SENSORMANAGER_H_
    47
    48#include <dw/rig/Rig.h>
    49#include <dw/sensors/Sensors.h>
    51#include <dw/sensors/imu/IMU.h>
    53#include <dw/sensors/gps/GPS.h>
    58
    59#ifdef __cplusplus
    60extern "C" {
    61#endif
    62
    63#if defined(LINUX)
    64#define DW_SENSORMANGER_MAX_CAMERAS 64U
    65#else
    66// The camera limit is to match the max CSI port limit on HW
    67#define DW_SENSORMANGER_MAX_CAMERAS 16U
    68#endif
    69#define DW_SENSORMANGER_MAX_NUM_SENSORS 64U
    70
    71typedef struct dwSensorManagerObject* dwSensorManagerHandle_t;
    72
    74typedef struct _dwUltrasonicEnvelope dwUltrasonicEnvelope;
    75
    77typedef struct
    78{
    81
    86
    89
    93 uint32_t sensorIndex;
    94
    96 uint32_t sensorIndices[DW_SENSORMANGER_MAX_CAMERAS];
    97
    101 uint32_t numCamFrames;
    103
    111 const uint8_t* rawData;
    115
    117{
    121
    122typedef struct
    123{
    131
    132typedef struct
    133{
    136
    138 uint32_t enableSensors[DW_SENSORMANGER_MAX_NUM_SENSORS];
    139
    143
    153
    154typedef void (*dwSensorManagerDispatcher_t)(const dwSensorEvent*, void*, dwStatus);
    155
    169 size_t poolSize, dwSALHandle_t const sal);
    170
    192 dwRigHandle_t rc,
    193 size_t poolSize, dwSALHandle_t sal);
    194
    218 dwRigHandle_t const rc,
    219 const dwSensorManagerParams* params,
    220 size_t poolSize, dwSALHandle_t const sal);
    221
    232
    253
    276dwStatus dwSensorManager_addCameraSensor(const char8_t* groupName, uint32_t siblingIndex,
    277 dwSensorParams params, uint64_t clientData,
    279
    291
    303
    315
    335
    351
    365
    379
    393
    408 uint32_t sensorTypeIndex, dwSensorManagerHandle_t sm);
    409
    425 uint32_t sensorIndex, dwSensorManagerHandle_t sm);
    426
    440
    454#ifdef __cplusplus
    455}
    456#endif
    457
    459#endif // DW_SENSORS_SENSORMANAGER_H_
    NVIDIA DriveWorks API: CAN
    NVIDIA DriveWorks API: Cameras
    NVIDIA DriveWorks API: Data
    NVIDIA DriveWorks API: GPS
    NVIDIA DriveWorks API: IMU
    NVIDIA DriveWorks API: Lidar
    NVIDIA DriveWorks API: Radar
    NVIDIA DriveWorks API: Rig Configuration
    NVIDIA DriveWorks API: Sensors
    struct dwCameraFrame * dwCameraFrameHandle_t
    Handle to captured frame.
    Definition: Camera.h:73
    Holds a CAN package.
    Definition: CAN.h:113
    #define DW_API_PUBLIC
    Definition: Exports.h:54
    dwStatus
    Status definition.
    Definition: Status.h:171
    int64_t dwTime_t
    Specifies a timestamp unit, in microseconds.
    Definition: Types.h:82
    Holds a data packet.
    Definition: Data.h:61
    A GPS packet containing localization information.
    Definition: GPS.h:108
    An IMU frame containing sensor readings from the IMU sensor.
    Definition: IMU.h:122
    Defines the structure for a decoded lidar packet.
    Definition: Lidar.h:214
    Defines the structure for a complete radar scan.
    Definition: Radar.h:259
    struct dwRigObject * dwRigHandle_t
    Handle representing the Rig interface.
    Definition: Rig.h:70
    uint32_t numCamFrames
    uint32_t numEnableSensors
    Number of entries in the 'enableSensors' list.
    dwGPSFrame gpsFrame
    Data accessor for all other sensors.
    dwIMUFrame imuFrame
    uint32_t sensorTypeIndex
    Index of the given sensor as defined by the order in which it was created and the type of sensor it i...
    Definition: SensorManager.h:85
    const dwLidarDecodedPacket * lidFrame
    dwCANMessage canFrame
    bool singleVirtualCameraGroup
    Whether to associate virtual cameras to individual 'camera-group's (default), or to a single 'camera-...
    bool accumCamFrames
    Whether Dispatcher shall accumulated frames from all cameras into a single event.
    const dwDataPacket * dataFrame
    size_t rawDataSize
    const dwRadarScan * radFrame
    dwTime_t camFramesTimeDiffLimit
    Up to how much can timstamps of camera frames accumulated in a single event differ.
    dwDispatcherParams dispatcherParams
    Parameters to configure dispatcher mode.
    const dwUltrasonicEnvelope * ultrasonicFrame
    dwTime_t timestamp_us
    Timestamp (us)
    Definition: SensorManager.h:88
    const uint8_t * rawData
    uint32_t sensorIndex
    The index of the sensor as defined by the order in which it was created.
    Definition: SensorManager.h:93
    dwSensorType type
    Type of sensor providing data for this event.
    Definition: SensorManager.h:80
    dwTime_t timeout
    Timeout value to be used in dispatcher mode for virtual files.
    DW_API_PUBLIC dwStatus dwSensorManager_stop(dwSensorManagerHandle_t sm)
    Stops all sensors.
    DW_API_PUBLIC dwStatus dwSensorManager_initializeFromRig(dwSensorManagerHandle_t *sm, dwRigHandle_t rc, size_t poolSize, dwSALHandle_t sal)
    Creates and initializes a SensorManager module, adding all sensors in the provided Rig Configuration.
    DW_API_PUBLIC dwStatus dwSensorManager_getNumSensors(uint32_t *count, dwSensorType type, dwSensorManagerHandle_t sm)
    Gets the number of sensors instantiated for a given sensor type.
    dwSensorManagerDataMode
    DW_API_PUBLIC dwStatus dwSensorManager_addSensor(dwSensorParams params, uint64_t clientData, dwSensorManagerHandle_t sm)
    Adds a sensor to the SAL instance.
    #define DW_SENSORMANGER_MAX_CAMERAS
    Definition: SensorManager.h:67
    DW_API_PUBLIC dwStatus dwSensorManager_acquireNextEvent(const dwSensorEvent **ev, dwTime_t timeoutMicroSeconds, dwSensorManagerHandle_t sm)
    Called by the application to consume the next available sensor event ready for consumption.
    struct dwSensorManagerObject * dwSensorManagerHandle_t
    Definition: SensorManager.h:71
    DW_API_PUBLIC dwStatus dwSensorManager_initialize(dwSensorManagerHandle_t *sm, size_t poolSize, dwSALHandle_t const sal)
    Creates and initializes a SensorManager module.
    DW_API_PUBLIC dwStatus dwSensorManager_getSensorClientData(uint64_t *cd, uint32_t sensorIndex, dwSensorManagerHandle_t sm)
    Gets sensor's clientData.
    DW_API_PUBLIC dwStatus dwSensorManager_reset(dwSensorManagerHandle_t sm)
    Resets all sensors.
    DW_API_PUBLIC dwStatus dwSensorManager_initializeFromRigWithParams(dwSensorManagerHandle_t *sm, dwRigHandle_t const rc, const dwSensorManagerParams *params, size_t poolSize, dwSALHandle_t const sal)
    Creates and initializes a SensorManager module, adding enabled sensors in the provided Rig Configurat...
    DW_API_PUBLIC dwStatus dwSensorManager_start(dwSensorManagerHandle_t sm)
    Starts all sensors.
    DW_API_PUBLIC dwStatus dwSensorManager_releaseAcquiredEvent(const dwSensorEvent *ev, dwSensorManagerHandle_t sm)
    Releases a previously acquired event back to the pool.
    DW_API_PUBLIC dwStatus dwSensorManager_setTimeout(dwTime_t timeout, dwSensorManagerHandle_t sm)
    Sets the timeout to wait for a new frame across all sensors.
    DW_API_PUBLIC dwStatus dwSensorManager_getSensorHandle(dwSensorHandle_t *handle, uint32_t sensorIndex, dwSensorManagerHandle_t sm)
    Gets the sensor handle to the specified sensor.
    DW_API_PUBLIC dwStatus dwSensorManager_addCameraSensor(const char8_t *groupName, uint32_t siblingIndex, dwSensorParams params, uint64_t clientData, dwSensorManagerHandle_t sm)
    Adds a camera sensor to the SAL instance.
    DW_API_PUBLIC dwStatus dwSensorManager_getSensorTypeIndex(uint32_t *sensorTypeIndex, dwSensorType *type, uint32_t sensorIndex, dwSensorManagerHandle_t sm)
    Gets sensor's relative index and type based upon its sensor index.
    struct _dwUltrasonicEnvelope dwUltrasonicEnvelope
    Not available as of current release. Will be added in future releases.
    Definition: SensorManager.h:74
    #define DW_SENSORMANGER_MAX_NUM_SENSORS
    Definition: SensorManager.h:69
    void(* dwSensorManagerDispatcher_t)(const dwSensorEvent *, void *, dwStatus)
    DW_API_PUBLIC dwStatus dwSensorManager_release(dwSensorManagerHandle_t sm)
    Releases the SensorManager module.
    DW_API_PUBLIC dwStatus dwSensorManager_getSensorIndex(uint32_t *sensorIndex, dwSensorType type, uint32_t sensorTypeIndex, dwSensorManagerHandle_t sm)
    Gets sensor's index.
    DW_API_PUBLIC dwStatus dwSensorManager_setDispatcher(dwSensorManagerDispatcher_t dispatchPtr, void *const cookie, dwSensorManagerHandle_t sm)
    Sets sensor's dispatcher function when the feature is turned on.
    @ DW_SENSOR_MANAGER_DATA_MODE_NON_RAW
    @ DW_SENSOR_MANAGER_DATA_MODE_RAW
    Structure for returning data upon any sensor event.
    Definition: SensorManager.h:78
    struct dwSALObject * dwSALHandle_t
    Handle representing the Sensor Abstraction Layer interface.
    Definition: Sensors.h:83
    dwSensorType
    Defines the type of sensors that are available in DriveWorks.
    Definition: Sensors.h:188
    struct dwSensorObject * dwSensorHandle_t
    Handle representing a sensor.
    Definition: Sensors.h:86
    Holds sets of parameters for sensor creation.
    Definition: Sensors.h:95
    人人超碰97caoporen国产