61 lines
1.9 KiB
C
61 lines
1.9 KiB
C
#ifndef _VNEZASYNCDATA_H_
|
|
#define _VNEZASYNCDATA_H_
|
|
|
|
#include "vn/int.h"
|
|
#include "vn/error.h"
|
|
#include "vn/sensors/compositedata.h"
|
|
#include "vn/sensors.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/** \brief Structure supporting easy and reliable access to asynchronous data
|
|
* from a VectorNav sensor at the cost of a slight performance hit. */
|
|
typedef struct
|
|
{
|
|
/** \brief The associated connected sensor. */
|
|
VnSensor* sensor;
|
|
|
|
/** \brief Critical section for accessing the current data. */
|
|
VnCriticalSection* curDataCS;
|
|
|
|
/** \brief The current data received from asynchronous data packets. */
|
|
VnCompositeData* curData;
|
|
|
|
} VnEzAsyncData;
|
|
|
|
/** \brief Initializes and connects to a VectorNav sensor with the specified
|
|
* connection parameters.
|
|
*
|
|
* \param[in] ezAsyncData The associated VnEzAsyncData structure.
|
|
* \param]in] portName The name of the serial port to connect to.
|
|
* \param[in] baudrate The baudrate to connect at.
|
|
* \return Any errors encountered. */
|
|
VnError VnEzAsyncData_initializeAndConnect(VnEzAsyncData* ezAsyncData, const char* portName, uint32_t baudrate);
|
|
|
|
/** \brief Disconnects from a VectorNav sensor.
|
|
*
|
|
* \param[in] ezAsyncData The associated VnEzAsyncData structure.
|
|
* \return Any errors encountered. */
|
|
VnError VnEzAsyncData_disconnectAndUninitialize(VnEzAsyncData* ezAsyncData);
|
|
|
|
/** \brief Returns the most recent asynchronous data the VnEzAsyncData structure
|
|
* has processed.
|
|
*
|
|
* \param[in] ezAsyncData The associated VnEzAsyncData structure.
|
|
* \return The latest data processed. */
|
|
VnCompositeData VnEzAsyncData_currentData(VnEzAsyncData* ezAsyncData);
|
|
|
|
/** \brief Returns the underlying VnSensor referenced.
|
|
*
|
|
* \param[in] ezAsyncData The associated VnEzAsyncData structure.
|
|
* \return The underlying VnSensor reference. */
|
|
VnSensor* VnEzAsyncData_sensor(VnEzAsyncData* ezAsyncData);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|