lib
xspublic
xscommon
xbusparser.h
Go to the documentation of this file.
1
2
// Copyright (c) 2003-2021 Xsens Technologies B.V. or subsidiaries worldwide.
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without modification,
6
// are permitted provided that the following conditions are met:
7
//
8
// 1. Redistributions of source code must retain the above copyright notice,
9
// this list of conditions, and the following disclaimer.
10
//
11
// 2. Redistributions in binary form must reproduce the above copyright notice,
12
// this list of conditions, and the following disclaimer in the documentation
13
// and/or other materials provided with the distribution.
14
//
15
// 3. Neither the names of the copyright holders nor the names of their contributors
16
// may be used to endorse or promote products derived from this software without
17
// specific prior written permission.
18
//
19
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
20
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
22
// THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
// SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
24
// OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR
26
// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.THE LAWS OF THE NETHERLANDS
28
// SHALL BE EXCLUSIVELY APPLICABLE AND ANY DISPUTES SHALL BE FINALLY SETTLED UNDER THE RULES
29
// OF ARBITRATION OF THE INTERNATIONAL CHAMBER OF COMMERCE IN THE HAGUE BY ONE OR MORE
30
// ARBITRATORS APPOINTED IN ACCORDANCE WITH SAID RULES.
31
//
32
33
34
// Copyright (c) 2003-2021 Xsens Technologies B.V. or subsidiaries worldwide.
35
// All rights reserved.
36
//
37
// Redistribution and use in source and binary forms, with or without modification,
38
// are permitted provided that the following conditions are met:
39
//
40
// 1. Redistributions of source code must retain the above copyright notice,
41
// this list of conditions, and the following disclaimer.
42
//
43
// 2. Redistributions in binary form must reproduce the above copyright notice,
44
// this list of conditions, and the following disclaimer in the documentation
45
// and/or other materials provided with the distribution.
46
//
47
// 3. Neither the names of the copyright holders nor the names of their contributors
48
// may be used to endorse or promote products derived from this software without
49
// specific prior written permission.
50
//
51
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
52
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
53
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
54
// THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
55
// SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
56
// OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
57
// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR
58
// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
59
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.THE LAWS OF THE NETHERLANDS
60
// SHALL BE EXCLUSIVELY APPLICABLE AND ANY DISPUTES SHALL BE FINALLY SETTLED UNDER THE RULES
61
// OF ARBITRATION OF THE INTERNATIONAL CHAMBER OF COMMERCE IN THE HAGUE BY ONE OR MORE
62
// ARBITRATORS APPOINTED IN ACCORDANCE WITH SAID RULES.
63
//
64
65
#ifndef XBUSPARSER_H
66
#define XBUSPARSER_H
67
68
#ifdef __cplusplus
69
extern
"C"
{
70
#endif
71
72
enum
State
73
{
74
haveNothing
,
75
havePreamble
,
76
haveLengthExtenderByte
,
77
haveLength
,
78
haveMessage
,
79
haveError
,
80
};
81
82
enum
Result
83
{
84
RES_Ok
,
85
RES_MessageReceived
,
86
RES_BufferOverflow
,
87
RES_CheckSumError
,
88
RES_InvalidLength
,
89
RES_FoundPreamble
,
90
RES_SpuriousByte
,
91
};
92
95
typedef
struct
96
{
97
unsigned
char
*
m_rxBuffer
;
98
int
m_rxBufferSize
;
99
int
m_idxWrite
;
100
int
m_totalLength
;
101
int
m_payloadLength
;
102
int
m_offsetToPayload
;
103
unsigned
short
m_checksum
;
104
enum
Result
m_lastError;
105
enum
State
m_state;
106
}
XbusParser
;
107
108
109
void
XbusParser_init
(
XbusParser
* obj,
unsigned
char
* buffer,
int
bufferSize);
110
111
enum
Result
XbusParser_insertByte
(
XbusParser
* obj,
unsigned
char
byte
,
int
* messageSize);
112
113
114
#ifdef __cplusplus
115
}
116
#endif
117
118
119
#endif
State
State
Definition:
xbusparser.h:72
XbusParser::m_payloadLength
int m_payloadLength
Definition:
xbusparser.h:101
RES_SpuriousByte
@ RES_SpuriousByte
Definition:
xbusparser.h:90
haveNothing
@ haveNothing
Definition:
xbusparser.h:74
RES_CheckSumError
@ RES_CheckSumError
Definition:
xbusparser.h:87
XbusParser::m_checksum
unsigned short m_checksum
Definition:
xbusparser.h:103
XbusParser::m_rxBufferSize
int m_rxBufferSize
Definition:
xbusparser.h:98
XbusParser::m_idxWrite
int m_idxWrite
Definition:
xbusparser.h:99
XbusParser::m_rxBuffer
unsigned char * m_rxBuffer
Definition:
xbusparser.h:97
RES_MessageReceived
@ RES_MessageReceived
Definition:
xbusparser.h:85
RES_InvalidLength
@ RES_InvalidLength
Definition:
xbusparser.h:88
XbusParser::m_offsetToPayload
int m_offsetToPayload
Definition:
xbusparser.h:102
haveLengthExtenderByte
@ haveLengthExtenderByte
Definition:
xbusparser.h:76
XbusParser_insertByte
enum Result XbusParser_insertByte(XbusParser *obj, unsigned char byte, int *messageSize)
Insert a new byte in the parser.
Definition:
xbusparser.c:88
RES_BufferOverflow
@ RES_BufferOverflow
Definition:
xbusparser.h:86
RES_FoundPreamble
@ RES_FoundPreamble
Definition:
xbusparser.h:89
XbusParser
XbusParser object definition.
Definition:
xbusparser.h:95
haveLength
@ haveLength
Definition:
xbusparser.h:77
haveMessage
@ haveMessage
Definition:
xbusparser.h:78
havePreamble
@ havePreamble
Definition:
xbusparser.h:75
Result
Result
Definition:
xbusparser.h:82
RES_Ok
@ RES_Ok
Definition:
xbusparser.h:84
XbusParser::m_totalLength
int m_totalLength
Definition:
xbusparser.h:100
XbusParser_init
void XbusParser_init(XbusParser *obj, unsigned char *buffer, int bufferSize)
Initializes an XbusParser instance.
Definition:
xbusparser.c:73
haveError
@ haveError
Definition:
xbusparser.h:79
xsens_mti_driver
Author(s):
autogenerated on Sun Sep 3 2023 02:43:20