|
| enum | Error : uint8_t {
None,
UartError,
Timeout,
CommandError,
ParseError,
BufferOverflow,
QueueFull
} |
| |
| enum | RadarOutputType : uint32_t {
DetectedPoints = 1,
RangeProfile = 2,
NoiseFloorProfile = 3,
AzimuthStaticHeatmap = 4,
RangeDopplerHeatmap = 5,
PerformanceStatistics = 6,
SideInfoDetectedPoints = 7,
AzimuthElevationStaticHeatmap = 8,
TemperatureStatistics = 9
} |
| |
|
|
| Iwr6843aop () |
| |
|
void | setSyncInterval (Duration interval) |
| |
|
Duration | getSyncInterval () const |
| |
|
void | setControlResponseTimeout (Duration timeout) |
| |
|
Duration | getControlResponseTimeout () const |
| |
|
bool | configure (std::span< const char > configuration) |
| |
|
template<std::size_t N> |
| bool | configure (const char (&configuration)[N]) |
| |
|
bool | sendCommand (std::span< const char > command, CommandResponse *response=nullptr) |
| |
|
template<std::size_t N> |
| bool | sendCommand (const char (&command)[N], CommandResponse *response=nullptr) |
| |
|
bool | sendCommandNoVerify (std::span< const char > command) |
| |
|
template<std::size_t N> |
| bool | sendCommandNoVerify (const char (&command)[N]) |
| |
|
bool | sendSensorStop () |
| |
|
bool | processData () |
| | Poll the data UART and parse all complete frames currently available.
|
| |
|
bool | getFrame (FrameType &frame) |
| |
|
bool | hasFrame () const |
| |
|
Error | getLastError () const |
| |
|
void | clearError () |
| |
|
bool | hasError () const |
| |
|
uint32_t | getParseErrorCount () const |
| |
|
uint32_t | getConsecutiveParseErrorCount () const |
| |
|
| static constexpr std::array< uint8_t, 8 > | SyncPattern |
| |
|
static constexpr std::size_t | FrameHeaderLength {32} |
| |
|
static constexpr std::size_t | TlvHeaderLength {8} |
| |
|
static constexpr std::size_t | PointStructSize {16} |
| |
|
static constexpr std::size_t | SideInfoStructSize {4} |
| |
|
static constexpr std::size_t | PerformanceStatsSize {24} |
| |
|
static constexpr std::size_t | TemperatureStatsSize {28} |
| |
|
static constexpr std::size_t | MaxResponseLines {16} |
| |
|
static constexpr std::size_t | MaxResponseLineLength {128} |
| |
|
static constexpr uint32_t | MaxConsecutiveParseErrors {32} |
| |
template<class ControlUart, class DataUart, class SyncPin = modm::platform::GpioUnused, std::size_t FrameQueueSize = 8, std::size_t MaxPointsPerFrame = 256, std::size_t MaxParserBufferSize = 4096>
class modm::iwr6843aop< ControlUart, DataUart, SyncPin, FrameQueueSize, MaxPointsPerFrame, MaxParserBufferSize >
TI xWRxx4x family radar UART driver.
The driver uses one UART for control commands and one UART for streaming point cloud data (TLV packet format). It should work for IWR1443, IWR1642, IWR1843, IWR6443 and IWR6843 and their automotive AWR* counterparts. The driver was tested with the prebuild binary version xWR64xx MMW Demo 03.06.02.00 on the IWR6843AOP chip. The binary is contained in the mmWaveSDK distributed at https://www.ti.com/tool/de-de/MMWAVE-SDK After installation, the sensor binary can be found at <INDUSTRIAL_TOOLBOX_INSTALL_DIR><VER>\68xx_aop_mmwave_sdk_hwa\prebuilt_binaries\xwr64xxAOP_mmw_demo.bin The binary is then flashed using Uniflash: https://www.ti.com/tool/en-us/UNIFLASH
- Template Parameters
-
| ControlUart | UART type for the control channel (CLI) |
| DataUart | UART type for the data channel |
| SyncPin | GPIO pin used for optional sync pulse output |
| FrameQueueSize | Number of parsed frames that can be queued |
| MaxPointsPerFrame | Maximum number of detected points stored per frame |
| MaxParserBufferSize | Size of the binary parser buffer |