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
    Interpreter.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) 2016-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
    46#ifndef DW_SENSORS_CANBUS_INTERPRETER_H_
    47#define DW_SENSORS_CANBUS_INTERPRETER_H_
    48
    49#include <dw/core/base/Config.h>
    51
    54
    56#define DW_SENSORS_CAN_INTERPRETER_MESSAGE_MAX_SIGNALS 128
    57
    59#define DW_SENSORS_CAN_INTERPRETER_MAX_MESSAGE_NAME_LEN 32
    60
    62#define DW_SENSORS_CAN_INTERPRETER_MAX_SIGNAL_NAME_LEN 32
    63
    64#ifdef __cplusplus
    65extern "C" {
    66#endif
    67
    69typedef struct dwCANInterpreterObject* dwCANInterpreterHandle_t;
    70
    72typedef void (*dwCANInterpreterAddMessageFunc_t)(const dwCANMessage* msg, void* userData);
    73
    75typedef uint32_t (*dwCANInterpreterGetNumAvailableFunc_t)(void* userData);
    76
    78typedef bool (*dwCANInterpreterGetSignalInfoFunc_t)(const char8_t** name, dwTrivialDataType* type,
    79 dwCANVehicleData* data,
    80 uint32_t idx, void* userData);
    81
    83typedef bool (*dwCANInterpreterGetDataf32Func_t)(float32_t* value, dwTime_t* timestamp_us, uint32_t idx, void* userData);
    84
    86typedef bool (*dwCANInterpreterGetDataf64Func_t)(float64_t* value, dwTime_t* timestamp_us, uint32_t idx, void* userData);
    87
    89typedef bool (*dwCANInterpreterGetDatai32Func_t)(int32_t* value, dwTime_t* timestamp_us, uint32_t idx, void* userData);
    90
    93{
    101
    121 void* userData, dwContextHandle_t context);
    122
    146 const char8_t* inputDBC,
    148
    164 const char8_t* dbc,
    166
    181
    182// ------------ encoding
    200 const dwCANMessage* msg,
    201 dwCANInterpreterHandle_t interpreter);
    202
    220dwStatus dwCANInterpreter_getSignalNameInMessage(const char8_t** name, uint32_t idx,
    221 const dwCANMessage* msg,
    222 dwCANInterpreterHandle_t interpreter);
    223
    239
    255 dwCANInterpreterHandle_t interpreter);
    256
    276dwStatus dwCANInterpreter_encodef32(float32_t value, const char8_t* signal,
    277 dwCANMessage* msg,
    278 dwCANInterpreterHandle_t interpreter);
    279
    284dwStatus dwCANInterpreter_encodef64(float64_t value, const char8_t* signal,
    285 dwCANMessage* msg,
    286 dwCANInterpreterHandle_t interpreter);
    287
    292dwStatus dwCANInterpreter_encodei32(int32_t value, const char8_t* signal,
    293 dwCANMessage* msg,
    294 dwCANInterpreterHandle_t interpreter);
    295
    296// ----------------- consumption
    311 dwCANInterpreterHandle_t interpreter);
    312
    327
    347 dwCANInterpreterHandle_t interpreter);
    348
    361dwStatus dwCANInterpreter_getSignalName(const char8_t** name, uint32_t idx,
    362 dwCANInterpreterHandle_t interpreter);
    363
    378 dwCANInterpreterHandle_t interpreter);
    379
    394 dwCANInterpreterHandle_t interpreter);
    395
    416dwStatus dwCANInterpreter_getf32(float32_t* value, dwTime_t* timestamp_us, uint32_t idx, dwCANInterpreterHandle_t interpreter);
    417
    422dwStatus dwCANInterpreter_getf64(float64_t* value, dwTime_t* timestamp_us, uint32_t idx, dwCANInterpreterHandle_t interpreter);
    423
    428dwStatus dwCANInterpreter_geti32(int32_t* value, dwTime_t* timestamp_us, uint32_t idx, dwCANInterpreterHandle_t interpreter);
    429
    430#ifdef __cplusplus
    431}
    432#endif
    434#endif // DW_SENSORS_CANBUS_INTERPRETER_H_
    NVIDIA DriveWorks API: CAN
    NVIDIA DriveWorks API: Vehicle Data
    NVIDIA DriveWorks API: Core Exports
    Holds a CAN package.
    Definition: CAN.h:113
    struct dwContextObject * dwContextHandle_t
    Context handle.
    Definition: Context.h:82
    #define DW_API_PUBLIC
    Definition: Exports.h:54
    dwStatus
    Status definition.
    Definition: Status.h:171
    float float32_t
    Specifies POD types.
    Definition: Types.h:70
    dwTrivialDataType
    Specifies a type indicator of the underlying trivial data type.
    Definition: Types.h:103
    int64_t dwTime_t
    Specifies a timestamp unit, in microseconds.
    Definition: Types.h:82
    double float64_t
    Definition: Types.h:71
    dwCANInterpreterGetSignalInfoFunc_t getSignalInfo
    Definition: Interpreter.h:96
    dwCANInterpreterAddMessageFunc_t addMessage
    Definition: Interpreter.h:94
    dwCANInterpreterGetDatai32Func_t getDatai32
    Definition: Interpreter.h:99
    dwCANInterpreterGetDataf32Func_t getDataf32
    Definition: Interpreter.h:97
    dwCANInterpreterGetNumAvailableFunc_t getNumAvailableSignals
    Definition: Interpreter.h:95
    dwCANInterpreterGetDataf64Func_t getDataf64
    Definition: Interpreter.h:98
    DW_API_PUBLIC dwStatus dwCANInterpreter_buildFromDBCString(dwCANInterpreterHandle_t *interpreter, const char8_t *dbc, dwContextHandle_t ctx)
    Creates a CAN data interpreter based on DBC file format and initializes the interpreter from a string...
    DW_API_PUBLIC dwStatus dwCANInterpreter_encodei32(int32_t value, const char8_t *signal, dwCANMessage *msg, dwCANInterpreterHandle_t interpreter)
    Same as dwCANInterpreter_encodef32, but for int32 types.
    DW_API_PUBLIC dwStatus dwCANInterpreter_createMessage(dwCANMessage *msg, uint32_t id, dwCANInterpreterHandle_t interpreter)
    Initializes an empty can message an interpreter can encoded signals into.
    uint32_t(* dwCANInterpreterGetNumAvailableFunc_t)(void *userData)
    Gets the number of signals available to be retrieved. The same signal may be available multiple times...
    Definition: Interpreter.h:75
    DW_API_PUBLIC dwStatus dwCANInterpreter_encodef32(float32_t value, const char8_t *signal, dwCANMessage *msg, dwCANInterpreterHandle_t interpreter)
    Encodes a value for a signal into a given message.
    DW_API_PUBLIC dwStatus dwCANInterpreter_getSignalName(const char8_t **name, uint32_t idx, dwCANInterpreterHandle_t interpreter)
    Gets the name of a signal available for consumption by the application as a string.
    DW_API_PUBLIC dwStatus dwCANInterpreter_getSignalRange(float64_t *minimum, float64_t *maximum, uint32_t idx, dwCANInterpreterHandle_t interpreter)
    Returns the range of validity of data for a signal available for consumption by the application.
    DW_API_PUBLIC dwStatus dwCANInterpreter_getSignalNameInMessage(const char8_t **name, uint32_t idx, const dwCANMessage *msg, dwCANInterpreterHandle_t interpreter)
    Gets the name of a signal that the CAN interpreter can encode in the currently active encoded message...
    bool(* dwCANInterpreterGetDatai32Func_t)(int32_t *value, dwTime_t *timestamp_us, uint32_t idx, void *userData)
    Returns false if no int32 data is available.
    Definition: Interpreter.h:89
    DW_API_PUBLIC dwStatus dwCANInterpreter_encodef64(float64_t value, const char8_t *signal, dwCANMessage *msg, dwCANInterpreterHandle_t interpreter)
    Same as dwCANInterpreter_encodef32, but for float64 types.
    void(* dwCANInterpreterAddMessageFunc_t)(const dwCANMessage *msg, void *userData)
    Pushes new messages to the interpreter.
    Definition: Interpreter.h:72
    DW_API_PUBLIC dwStatus dwCANInterpreter_buildFromDBC(dwCANInterpreterHandle_t *interpreter, const char8_t *inputDBC, dwContextHandle_t ctx)
    Creates a CAN data interpreter based on DBC file format.
    bool(* dwCANInterpreterGetDataf64Func_t)(float64_t *value, dwTime_t *timestamp_us, uint32_t idx, void *userData)
    Returns false if no float64 data is available.
    Definition: Interpreter.h:86
    DW_API_PUBLIC dwStatus dwCANInterpreter_consume(const dwCANMessage *msg, dwCANInterpreterHandle_t interpreter)
    Pushes a new message to the interpreter.
    DW_API_PUBLIC dwStatus dwCANInterpreter_createMessageFromName(dwCANMessage *msg, const char8_t *msgName, dwCANInterpreterHandle_t interpreter)
    Initializes an empty can message an interpreter can encoded signals into.
    DW_API_PUBLIC dwStatus dwCANInterpreter_getf64(float64_t *value, dwTime_t *timestamp_us, uint32_t idx, dwCANInterpreterHandle_t interpreter)
    Same as dwCANInterpreter_getf32, but for float64 types.
    DW_API_PUBLIC dwStatus dwCANInterpreter_geti32(int32_t *value, dwTime_t *timestamp_us, uint32_t idx, dwCANInterpreterHandle_t interpreter)
    Same as dwCANInterpreter_getf32, but for int32 types.
    struct dwCANInterpreterObject * dwCANInterpreterHandle_t
    CAN message interpreter handle.
    Definition: Interpreter.h:69
    DW_API_PUBLIC dwStatus dwCANInterpreter_buildFromCallbacks(dwCANInterpreterHandle_t *interpreter, dwCANInterpreterInterface callbacks, void *userData, dwContextHandle_t context)
    Creates a CAN data interpreter based on user provided callbacks.
    DW_API_PUBLIC dwStatus dwCANInterpreter_getNumberSignalsInMessage(uint32_t *num, const dwCANMessage *msg, dwCANInterpreterHandle_t interpreter)
    Gets the number of signals a CAN interpreter can encode into the provided message.
    DW_API_PUBLIC dwStatus dwCANInterpreter_getNumberSignals(uint32_t *num, dwCANInterpreterHandle_t interpreter)
    Gets the number of signals decoded and available for consumption by the application side.
    DW_API_PUBLIC dwStatus dwCANInterpreter_getSignalType(dwTrivialDataType *type, uint32_t idx, dwCANInterpreterHandle_t interpreter)
    Returns the type of the value of a signal available for consumption by the application.
    DW_API_PUBLIC dwStatus dwCANInterpreter_release(dwCANInterpreterHandle_t interpreter)
    Closes previously opened interpreter.
    bool(* dwCANInterpreterGetDataf32Func_t)(float32_t *value, dwTime_t *timestamp_us, uint32_t idx, void *userData)
    Returns false if no float32 data is available.
    Definition: Interpreter.h:83
    DW_API_PUBLIC dwStatus dwCANInterpreter_getf32(float32_t *value, dwTime_t *timestamp_us, uint32_t idx, dwCANInterpreterHandle_t interpreter)
    Gets a 'float32_t' value from the available values.
    DW_API_PUBLIC dwStatus dwCANInterpreter_getDataSignalIndex(uint32_t *idx, dwCANVehicleData data, dwCANInterpreterHandle_t interpreter)
    Gets the index of a signal of the last consumed message that corresponds to a certain predefined data...
    bool(* dwCANInterpreterGetSignalInfoFunc_t)(const char8_t **name, dwTrivialDataType *type, dwCANVehicleData *data, uint32_t idx, void *userData)
    Gets the name and type of a signal; the callback must return false if the query fails.
    Definition: Interpreter.h:78
    Interface for callback based CAN data interpreter.
    Definition: Interpreter.h:93
    dwCANVehicleData
    A set of enumeration constants representing the default data signals.
    Definition: VehicleData.h:66
    人人超碰97caoporen国产