sbgECom Library  5.2.590-stable
Interface SBG Systems IMU/AHRS/INS
Loading...
Searching...
No Matches
sbgEComProtocol.h
Go to the documentation of this file.
1
32
37
38#ifndef SBG_ECOM_PROTOCOL_H
39#define SBG_ECOM_PROTOCOL_H
40
41// sbgCommonLib headers
42#include <sbgCommon.h>
45
46#ifdef __cplusplus
47extern "C" {
48#endif
49
50//----------------------------------------------------------------------//
51//- Constant definitions -//
52//----------------------------------------------------------------------//
53
54#define SBG_ECOM_MAX_BUFFER_SIZE (4096)
55#define SBG_ECOM_MAX_PAYLOAD_SIZE (4086)
56#define SBG_ECOM_MAX_EXTENDED_PAYLOAD_SIZE (4081)
57#define SBG_ECOM_SYNC_1 (0xFF)
58#define SBG_ECOM_SYNC_2 (0x5A)
59#define SBG_ECOM_ETX (0x33)
60
61#define SBG_ECOM_RX_TIME_OUT (450)
62
63//----------------------------------------------------------------------//
64//- Callbacks definitions -//
65//----------------------------------------------------------------------//
66
71
84typedef void (*SbgEComProtocolFrameCb)(SbgEComProtocol *pProtocol, uint8_t msgClass, uint8_t msgId, SbgStreamBuffer *pReceivedFrame, void *pUserArg);
85
86//----------------------------------------------------------------------//
87//- Structure definitions -//
88//----------------------------------------------------------------------//
89
102
109{
113 size_t discardSize;
115
116 //
117 // Raw stream sbgECom frame reception callback
118 //
120 void *pUserArg;
121
122 //
123 // Member variables related to large transfer reception.
124 //
125 uint8_t *pLargeBuffer;
127 uint8_t msgClass;
128 uint8_t msgId;
129 uint8_t transferId;
130 uint16_t pageIndex;
131 uint16_t nrPages;
132};
133
134//----------------------------------------------------------------------//
135//- Public methods (SbgEComProtocolPayload) -//
136//----------------------------------------------------------------------//
137
144
151
159
167
180
181//----------------------------------------------------------------------//
182//- Public methods (SbgEComProtocol) -//
183//----------------------------------------------------------------------//
184
193
201
213
227SbgErrorCode sbgEComProtocolSend(SbgEComProtocol *pProtocol, uint8_t msgClass, uint8_t msg, const void *pData, size_t size);
228
242SbgErrorCode sbgEComProtocolReceive(SbgEComProtocol *pProtocol, uint8_t *pMsgClass, uint8_t *pMsgId, void *pData, size_t *pSize, size_t maxSize);
243
263SbgErrorCode sbgEComProtocolReceive2(SbgEComProtocol *pProtocol, uint8_t *pMsgClass, uint8_t *pMsgId, SbgEComProtocolPayload *pPayload);
264
277void sbgEComProtocolSetOnFrameReceivedCb(SbgEComProtocol *pProtocol, SbgEComProtocolFrameCb pOnFrameReceivedCb, void *pUserArg);
278
293SbgErrorCode sbgEComStartFrameGeneration(SbgStreamBuffer *pOutputStream, uint8_t msgClass, uint8_t msg, size_t *pStreamCursor);
294
307
308#ifdef __cplusplus
309}
310#endif
311
312#endif // SBG_ECOM_PROTOCOL_H
Main header for the SBG Systems common C library.
size_t sbgEComProtocolPayloadGetSize(const SbgEComProtocolPayload *pPayload)
void(* SbgEComProtocolFrameCb)(SbgEComProtocol *pProtocol, uint8_t msgClass, uint8_t msgId, SbgStreamBuffer *pReceivedFrame, void *pUserArg)
Definition sbgEComProtocol.h:84
struct _SbgEComProtocol SbgEComProtocol
Definition sbgEComProtocol.h:70
struct _SbgEComProtocolPayload SbgEComProtocolPayload
SbgErrorCode sbgEComProtocolInit(SbgEComProtocol *pProtocol, SbgInterface *pInterface)
SbgErrorCode sbgEComStartFrameGeneration(SbgStreamBuffer *pOutputStream, uint8_t msgClass, uint8_t msg, size_t *pStreamCursor)
SbgErrorCode sbgEComProtocolSend(SbgEComProtocol *pProtocol, uint8_t msgClass, uint8_t msg, const void *pData, size_t size)
void * sbgEComProtocolPayloadMoveBuffer(SbgEComProtocolPayload *pPayload)
SbgErrorCode sbgEComProtocolReceive2(SbgEComProtocol *pProtocol, uint8_t *pMsgClass, uint8_t *pMsgId, SbgEComProtocolPayload *pPayload)
void sbgEComProtocolSetOnFrameReceivedCb(SbgEComProtocol *pProtocol, SbgEComProtocolFrameCb pOnFrameReceivedCb, void *pUserArg)
SbgErrorCode sbgEComFinalizeFrameGeneration(SbgStreamBuffer *pOutputStream, size_t streamCursor)
SbgErrorCode sbgEComProtocolReceive(SbgEComProtocol *pProtocol, uint8_t *pMsgClass, uint8_t *pMsgId, void *pData, size_t *pSize, size_t maxSize)
void sbgEComProtocolPayloadConstruct(SbgEComProtocolPayload *pPayload)
SbgErrorCode sbgEComProtocolClose(SbgEComProtocol *pProtocol)
SbgErrorCode sbgEComProtocolPurgeIncoming(SbgEComProtocol *pProtocol)
#define SBG_ECOM_MAX_BUFFER_SIZE
Definition sbgEComProtocol.h:54
const void * sbgEComProtocolPayloadGetBuffer(const SbgEComProtocolPayload *pPayload)
void sbgEComProtocolPayloadDestroy(SbgEComProtocolPayload *pPayload)
enum _SbgErrorCode SbgErrorCode
This file implements the base interface for all Serial and Ethernet ports.
struct _SbgInterface SbgInterface
Definition sbgInterface.h:79
Used to read/write data from/to a memory buffer stream.
struct _SbgStreamBuffer SbgStreamBuffer
Definition sbgEComProtocol.h:109
uint16_t pageIndex
Definition sbgEComProtocol.h:130
uint8_t transferId
Definition sbgEComProtocol.h:129
uint8_t * pLargeBuffer
Definition sbgEComProtocol.h:125
size_t discardSize
Definition sbgEComProtocol.h:113
SbgEComProtocolFrameCb pReceiveFrameCb
Definition sbgEComProtocol.h:119
uint16_t nrPages
Definition sbgEComProtocol.h:131
SbgInterface * pLinkedInterface
Definition sbgEComProtocol.h:110
uint8_t msgClass
Definition sbgEComProtocol.h:127
uint8_t msgId
Definition sbgEComProtocol.h:128
uint8_t nextLargeTxId
Definition sbgEComProtocol.h:114
void * pUserArg
Definition sbgEComProtocol.h:120
size_t rxBufferSize
Definition sbgEComProtocol.h:112
size_t largeBufferSize
Definition sbgEComProtocol.h:126
uint8_t rxBuffer[SBG_ECOM_MAX_BUFFER_SIZE]
Definition sbgEComProtocol.h:111
Definition sbgEComProtocol.h:97
size_t size
Definition sbgEComProtocol.h:100
void * pBuffer
Definition sbgEComProtocol.h:99
bool allocated
Definition sbgEComProtocol.h:98