300TC 机载系统 完整功能,(1)采集影像(2)采集和解析惯导数据(3)惯导磁场校正
This commit is contained in:
97
Header_Files/sbgbuffer.h
Normal file
97
Header_Files/sbgbuffer.h
Normal file
@ -0,0 +1,97 @@
|
||||
#ifndef SBGBUFFER_H
|
||||
#define SBGBUFFER_H
|
||||
|
||||
#include "sbgerrorcodes.h"
|
||||
#include <QByteArray>
|
||||
|
||||
namespace sbgtc
|
||||
{
|
||||
#define SBG_ECOM_MAX_BUFFER_SIZE (4096) /*!< Maximum reception buffer size in bytes. */
|
||||
#define SBG_ECOM_MAX_PAYLOAD_SIZE (4086) /*!< Maximum payload size in bytes. */
|
||||
#define SBG_ECOM_SYNC_1 (0xFF) /*!< First synchronization char of the frame. */
|
||||
#define SBG_ECOM_SYNC_2 (0x5A) /*!< Second synchronization char of the frame. */
|
||||
#define SBG_ECOM_ETX (0x33) /*!< End of frame byte. */
|
||||
|
||||
|
||||
/*!
|
||||
* Windows x86 & x64 support both aligned and unaligned access
|
||||
*/
|
||||
#define SBG_CONFIG_UNALIGNED_ACCESS_AUTH (0)
|
||||
|
||||
/*!
|
||||
* Windows is using little endianess
|
||||
*/
|
||||
#define SBG_CONFIG_BIG_ENDIAN (0)
|
||||
|
||||
|
||||
/*!
|
||||
* Union that allows type punning (access to a floating point number bits)
|
||||
*/
|
||||
typedef union _FloatNint
|
||||
{
|
||||
float valF;
|
||||
int32_t valI;
|
||||
uint32_t valU;
|
||||
} FloatNint;
|
||||
|
||||
/*!
|
||||
* Union that allows type punning (access to a double number bits)
|
||||
*/
|
||||
typedef union _DoubleNint
|
||||
{
|
||||
double valF;
|
||||
uint64_t valU;
|
||||
int64_t valI;
|
||||
} DoubleNint;
|
||||
|
||||
typedef struct _rawBuffer
|
||||
{
|
||||
uint8_t * rxBuffer;
|
||||
size_t rxBufferSize;
|
||||
}rawBuffer;
|
||||
|
||||
typedef struct _SbgStreamBuffer
|
||||
{
|
||||
//SbgSBMode modes; /*!< Defines the stream buffer modes (read/write). */
|
||||
size_t bufferSize; /*!< Size in bytes of the linked buffer. */
|
||||
uint8_t *pBufferPtr; /*!< Pointer to the buffer linked with this stream. */
|
||||
uint8_t *pCurrentPtr; /*!< Current pointer within the buffer. */
|
||||
SbgErrorCode errorCode; /*!< Current error code on stream buffer. */
|
||||
} SbgStreamBuffer;
|
||||
|
||||
typedef enum _SbgSBSeekOrigin
|
||||
{
|
||||
SB_SEEK_SET, /*!< The offset is referenced to the begining of the stream. */
|
||||
SB_SEEK_CUR_INC, /*!< The offset is referenced to the current cursor position and increment the current cursor. */
|
||||
SB_SEEK_CUR_DEC, /*!< The offset is referenced to the current cursor position and decrement the current cursor. */
|
||||
SB_SEEK_END /*!< The offset is referenced to the end of the stream. */
|
||||
} SbgSBSeekOrigin;
|
||||
|
||||
rawBuffer initRawBuffer(QByteArray * sbgMessage);
|
||||
SbgErrorCode sbgStreamBufferInitForRead(SbgStreamBuffer *pHandle, const void *pLinkedBuffer, size_t bufferSize);
|
||||
|
||||
SbgErrorCode sbgStreamBufferSeek(SbgStreamBuffer *pHandle, size_t offset, SbgSBSeekOrigin origin);
|
||||
size_t sbgStreamBufferTell(SbgStreamBuffer *pHandle);
|
||||
void *sbgStreamBufferGetCursor(SbgStreamBuffer *pHandle);
|
||||
size_t sbgStreamBufferGetSize(SbgStreamBuffer *pHandle);
|
||||
size_t sbgStreamBufferGetLength(SbgStreamBuffer *pHandle);
|
||||
size_t sbgStreamBufferGetSpace(SbgStreamBuffer *pHandle);
|
||||
|
||||
void *sbgStreamBufferGetLinkedBuffer(SbgStreamBuffer *pHandle);
|
||||
|
||||
uint8_t sbgStreamBufferReadUint8LE(SbgStreamBuffer *pHandle);
|
||||
uint16_t sbgStreamBufferReadUint16LE(SbgStreamBuffer *pHandle);
|
||||
uint32_t sbgStreamBufferReadUint32LE(SbgStreamBuffer *pHandle);
|
||||
uint64_t sbgStreamBufferReadUint64LE(SbgStreamBuffer *pHandle);
|
||||
|
||||
int8_t sbgStreamBufferReadInt8LE(SbgStreamBuffer *pHandle);
|
||||
int32_t sbgStreamBufferReadInt32LE(SbgStreamBuffer *pHandle);
|
||||
|
||||
float sbgStreamBufferReadFloatLE(SbgStreamBuffer *pHandle);
|
||||
double sbgStreamBufferReadDoubleLE(SbgStreamBuffer *pHandle);
|
||||
|
||||
SbgErrorCode sbgStreamBufferGetLastError(SbgStreamBuffer *pHandle);
|
||||
|
||||
}
|
||||
|
||||
#endif // SBGBUFFER_H
|
Reference in New Issue
Block a user