xsbaud.c
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 #include "xsbaud.h"
66 
67 #ifdef _WIN32
68 #define HAVE_ALL_RATES 1
69 #else
70 #define HAVE_ALL_RATES 0
71 #endif
72 
84 {
85  switch (baudcode)
86  {
87  case XBC_4k8:
88  return XBR_4800;
89  case XBC_9k6:
90  return XBR_9600;
91  case XBC_14k4:
92  return XBR_14k4;
93  case XBC_19k2:
94  return XBR_19k2;
95  case XBC_28k8:
96  return XBR_28k8;
97  case XBC_38k4:
98  return XBR_38k4;
99  case XBC_57k6:
100  return XBR_57k6;
101  case XBC_76k8:
102  return XBR_76k8;
103  case XBC_115k2:
104  return XBR_115k2;
105  case XBC_230k4:
106  return XBR_230k4;
107  case XBC_460k8:
108  return XBR_460k8;
109  case XBC_921k6:
110  case XBC_921k6Legacy:
111  return XBR_921k6;
112  case XBC_2MegaBaud:
113  return XBR_2000k;
114  case XBC_3_5MegaBaud:
115  return XBR_3500k;
116  case XBC_4MegaBaud:
117  return XBR_4000k;
118  default:
119  return XBR_Invalid;
120  }
121 }
122 
130 {
131  switch (baudrate)
132  {
133 #if HAVE_ALL_RATES
134  case XBR_14k4:
135  return XBC_14k4;
136  case XBR_28k8:
137  return XBC_28k8;
138  case XBR_76k8:
139  return XBC_76k8;
140 #endif
141  case XBR_4800:
142  return XBC_4k8;
143  case XBR_9600:
144  return XBC_9k6;
145  case XBR_19k2:
146  return XBC_19k2;
147  case XBR_38k4:
148  return XBC_38k4;
149  case XBR_57k6:
150  return XBC_57k6;
151  case XBR_115k2:
152  return XBC_115k2;
153  case XBR_230k4:
154  return XBC_230k4;
155  case XBR_460k8:
156  return XBC_460k8;
157  case XBR_921k6:
158  return XBC_921k6Legacy;
159  case XBR_2000k:
160  return XBC_2MegaBaud;
161  case XBR_3500k:
162  return XBC_3_5MegaBaud;
163  case XBR_4000k:
164  return XBC_4MegaBaud;
165  default:
166  return XBC_Invalid;
167  }
168 }
169 
177 {
178  switch (baudrate)
179  {
180 #if HAVE_ALL_RATES
181  case XBR_14k4:
182  return 14400;
183  case XBR_28k8:
184  return 28800;
185  case XBR_76k8:
186  return 76800;
187 #endif
188  case XBR_4800:
189  return 4800;
190  case XBR_9600:
191  return 9600;
192  case XBR_19k2:
193  return 19200;
194  case XBR_38k4:
195  return 38400;
196  case XBR_57k6:
197  return 57600;
198  case XBR_115k2:
199  return 115200;
200  case XBR_230k4:
201  return 230400;
202  case XBR_460k8:
203  return 460800;
204  case XBR_921k6:
205  return 921600;
206  case XBR_2000k:
207  return 2000000;
208  case XBR_3500k:
209  return 3500000;
210  case XBR_4000k:
211  return 4000000;
212  default:
213  return 0;
214  }
215 }
216 
224 {
225  switch (numeric)
226  {
227 #if HAVE_ALL_RATES
228  case 14400:
229  return XBR_14k4;
230  case 28800:
231  return XBR_28k8;
232  case 76800:
233  return XBR_76k8;
234 #endif
235  case 4800:
236  return XBR_4800;
237  case 9600:
238  return XBR_9600;
239  case 19200:
240  return XBR_19k2;
241  case 38400:
242  return XBR_38k4;
243  case 57600:
244  return XBR_57k6;
245  case 115200:
246  return XBR_115k2;
247  case 230400:
248  return XBR_230k4;
249  case 460800:
250  return XBR_460k8;
251  case 921600:
252  return XBR_921k6;
253  case 2000000:
254  return XBR_2000k;
255  case 3500000:
256  return XBR_3500k;
257  case 4000000:
258  return XBR_4000k;
259  default:
260  return XBR_Invalid;
261  }
262 }
263 
XBC_19k2
XBC_19k2
19k2 (19200 bps)
Definition: xsbaudcode.h:79
XBR_3500k
XBR_3500k
3500k0 (3500000 bps)
Definition: xsbaudrate.h:142
XsBaud_codeToRate
XsBaudRate XsBaud_codeToRate(XsBaudCode baudcode)
Convert an Xsens baud code to XsBaudRate.
Definition: xsbaud.c:83
XBC_230k4
XBC_230k4
230k4 (230400 bps)
Definition: xsbaudcode.h:85
XBR_28k8
XBR_28k8
28k8 is set to 0 on purpose
Definition: xsbaudrate.h:132
XBR_115k2
XBR_115k2
115k2 (115200 bps)
Definition: xsbaudrate.h:136
XBR_19k2
XBR_19k2
19k2 (19200 bps)
Definition: xsbaudrate.h:131
XBC_3_5MegaBaud
XBC_3_5MegaBaud
3500k0 (3500000 bps)
Definition: xsbaudcode.h:90
XBC_921k6Legacy
XBC_921k6Legacy
921k6 (921600 bps)
Definition: xsbaudcode.h:88
XBC_4MegaBaud
XBC_4MegaBaud
4000k0 (4000000 bps)
Definition: xsbaudcode.h:91
XBC_115k2
XBC_115k2
115k2 (115200 bps)
Definition: xsbaudcode.h:84
XBR_9600
XBR_9600
9k6 (9600 bps)
Definition: xsbaudrate.h:129
XBC_4k8
XBC_4k8
4k8 (4800 bps)
Definition: xsbaudcode.h:76
XBR_76k8
XBR_76k8
76k8 is set to 0 on purpose
Definition: xsbaudrate.h:135
XsBaudRate
enum XsBaudRate XsBaudRate
Communication speed.
Definition: xsbaud.h:81
XBC_76k8
XBC_76k8
76k8 (76800 bps)
Definition: xsbaudcode.h:83
XBR_38k4
XBR_38k4
38k4 (38400 bps)
Definition: xsbaudrate.h:133
XBC_14k4
XBC_14k4
14k4 (14400 bps)
Definition: xsbaudcode.h:78
XBR_4800
XBR_4800
4k8 (4800 bps)
Definition: xsbaudrate.h:128
XBC_57k6
XBC_57k6
57k6 (57600 bps)
Definition: xsbaudcode.h:82
XBC_460k8
XBC_460k8
460k8 (460800 bps)
Definition: xsbaudcode.h:86
XBC_38k4
XBC_38k4
38k4 (38400 bps)
Definition: xsbaudcode.h:81
XBC_2MegaBaud
XBC_2MegaBaud
2000k0 (2000000 bps)
Definition: xsbaudcode.h:89
XsBaud_rateToCode
XsBaudCode XsBaud_rateToCode(XsBaudRate baudrate)
Convert a XsBaudRate to an Xsens baud code.
Definition: xsbaud.c:129
XBR_2000k
XBR_2000k
2000k0 (2000000 bps)
Definition: xsbaudrate.h:141
XBR_14k4
XBR_14k4
14k4 is set to 0 on purpose
Definition: xsbaudrate.h:130
XBR_460k8
XBR_460k8
460k8 (460800 bps)
Definition: xsbaudrate.h:138
XBR_921k6
XBR_921k6
921k6 (921600 bps)
Definition: xsbaudrate.h:139
XBC_9k6
XBC_9k6
9k6 (9600 bps)
Definition: xsbaudcode.h:77
XsBaudCode
enum XsBaudCode XsBaudCode
Definition: xsbaud.h:80
xsbaud.h
XsBaud_numericToRate
XsBaudRate XsBaud_numericToRate(int numeric)
Convert a numeric baudrate in bps to XsBaudrate.
Definition: xsbaud.c:223
XsBaud_rateToNumeric
int XsBaud_rateToNumeric(XsBaudRate baudrate)
Convert a XsBaudrate to a numeric baudrate in bps.
Definition: xsbaud.c:176
XBR_230k4
XBR_230k4
230k4 (230400 bps)
Definition: xsbaudrate.h:137
XBC_921k6
XBC_921k6
921k6 (921600 bps). Only usable from MTi/x FW 2.4.6
Definition: xsbaudcode.h:87
XBC_28k8
XBC_28k8
28k8 (28800 bps)
Definition: xsbaudcode.h:80
XBR_Invalid
XBR_Invalid
Not a valid baud rate.
Definition: xsbaudrate.h:126
XBR_57k6
XBR_57k6
57k6 (57600 bps)
Definition: xsbaudrate.h:134


xsens_mti_driver
Author(s):
autogenerated on Sun Sep 3 2023 02:43:20