supportedsyncsettings.cpp
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 "supportedsyncsettings.h"
66 
67 #include "synclinemk4.h"
68 #include "synclinegmt.h"
69 #include <set>
71 
72 namespace Synchronization
73 {
74 
79 {
80  if (deviceId.isAwindaXDongle() ||
81  deviceId.isBodyPack())
82  return XsSyncSettingArray();
83 
84  if (deviceId.isAwindaX())
86  else if (deviceId.isSyncStationX())
88  else if (deviceId.isMtMark5() && deviceId.isMtigX10())
90  else if (deviceId.isMtig())
92  else if (deviceId.isMtiX() && deviceId.isGnss())
93  return supportedSyncSettingsForMti7AndMTi8Devices();//this used for both the MTi-7 and MTi-8
94  else if (deviceId.isMti6X0() && deviceId.isGnss() && deviceId.hasInternalGnss())
96  else if (deviceId.isMti6X0() && deviceId.isGnss())
98  else if (deviceId.isMti6X0())
100  else if (deviceId.isMtiX() || deviceId.isMti3X0())
102  else if (deviceId.isMti() || deviceId.isMtig())
104  else if (deviceId.isGnss())
106  else if (deviceId.isMtx2())
108  else if (deviceId.isMtw2())
110  else
111  return XsSyncSettingArray();
112 }
113 
116 bool supportsSyncSettings(XsDeviceId const& deviceId)
117 {
118  if (supportedSyncSettings(deviceId).size())
119  return true;
120  else
121  return false;
122 }
123 
126 bool isCompatibleSyncSetting(XsDeviceId const& deviceId, XsSyncSetting const& setting1, XsSyncSetting const& setting2)
127 {
128  if (deviceId.isAwindaX())
129  return isAwindaSettingCompatible(setting1, setting2);
130  else if (deviceId.isSyncStationX())
131  return isSyncStationSettingCompatible(setting1, setting2);
132  else
133  return true; // Always compatible for devices other than awinda for now
134 }
135 
140 unsigned int timeResolutionInMicroseconds(XsDeviceId const& deviceId)
141 {
142  if (deviceId.isAwindaX())
144  else if (deviceId.isSyncStationX())
146  else if (deviceId.isMti() || deviceId.isMtig())
148  else if (deviceId.isMtx2())
150  else
151  return 1;
152 }
153 
156 {
157  XsSyncSettingArray settings;
158  return settings;
159 }
160 
162 #define SUPPORT_XSL4_BiIn 0 // Bidirectional 1 <- In is not supported anymore
164 {
166  XsSyncSettingArray settings;
167 
168  //enable/disabled parameters per functions
169  s.m_polarity = XSP_RisingEdge;
170  s.m_offset = 1;
171  s.m_skipFactor = 1;
172  s.m_triggerOnce = 0;
173  s.m_skipFirst = 0;
174  s.m_pulseWidth = 0;
175  s.m_clockPeriod = 0;
176 
177  s.m_function = XSF_TriggerIndication;
178  s.m_line = xsl4ToXsl(XSL4_In);
179  settings.push_back(s);
180 
181 #if SUPPORT_XSL4_BiIn == 1
182  s.m_line = xsl4ToXsl(XSL4_BiIn);
183  settings.push_back(s);
184 #endif
185 
186  s.m_function = XSF_SendLatest;
187  s.m_line = xsl4ToXsl(XSL4_In);
188  settings.push_back(s);
189 
190  //-----
191  s.m_function = XSF_SendLatest;
192  s.m_line = xsl4ToXsl(XSL4_ReqData);
193  // Disable polarity, offset and skip factor for ReqData
194  s.m_polarity = XSP_None;
195  s.m_skipFactor = 0;
196  s.m_offset = 0;
197  settings.push_back(s);
198 
199  // Enable polarity, offset and skip factor for next settings
200  s.m_polarity = XSP_RisingEdge;
201  s.m_skipFactor = 1;
202  s.m_offset = 1;
203  //-----
204 
205 #if SUPPORT_XSL4_BiIn == 1
206  s.m_line = xsl4ToXsl(XSL4_BiIn);
207  settings.push_back(s);
208 #endif
209 
211  s.m_line = xsl4ToXsl(XSL4_BiOut);
212  s.m_pulseWidth = 1;
213  settings.push_back(s);
214 
215  s.m_function = XSF_ClockBiasEstimation;
216  s.m_line = xsl4ToXsl(XSL4_ClockIn);
217  s.m_offset = 0;
218  s.m_pulseWidth = 0;
219  s.m_clockPeriod = 1;
220  settings.push_back(s);
221 
222  s.m_function = XSF_StartSampling;
223  s.m_line = xsl4ToXsl(XSL4_In);
224  s.m_skipFactor = 0;
225  s.m_clockPeriod = 0;
226  s.m_pulseWidth = 0;
227  s.m_offset = 1;
228  settings.push_back(s);
229 
230  return settings;
231 }
232 
235 {
237  XsSyncSettingArray settings;
238 
239  //enable/disabled parameters per functions
240  s.m_polarity = XSP_RisingEdge;
241  s.m_offset = 0;
242  s.m_skipFactor = 1;
243  s.m_triggerOnce = 1;
244  s.m_skipFirst = 1;
245  s.m_pulseWidth = 0;
246  s.m_clockPeriod = 0;
247 
248  s.m_function = XSF_TriggerIndication;
249  s.m_line = XSL_In1;
250  settings.push_back(s);
251  s.m_line = XSL_In2;
252  settings.push_back(s);
253 
254  s.m_function = XSF_SendLatest;
255  s.m_line = XSL_In1;
256  settings.push_back(s);
257  s.m_line = XSL_In2;
258  settings.push_back(s);
259 
260  //-----
261  s.m_function = XSF_SendLatest;
262  s.m_line = XSL_ReqData;
263  // Disable polarity, offset and skip factor for ReqData
264  s.m_polarity = XSP_None;
265  s.m_skipFactor = 0;
266  s.m_offset = 0;
267  s.m_skipFirst = 0;
268  s.m_triggerOnce = 0;
269  settings.push_back(s);
270 
271  // Enable polarity, offset and skip factor for next settings
272  s.m_polarity = XSP_RisingEdge;
273  s.m_skipFactor = 1;
274  s.m_offset = 1;
275  //-----
276 
278  s.m_line = XSL_Out1;
279  s.m_pulseWidth = 1;
280  settings.push_back(s);
281  s.m_skipFirst = 0;
282  s.m_triggerOnce = 0;
283 
284  s.m_function = XSF_ClockBiasEstimation;
285  s.m_offset = 0;
286  s.m_pulseWidth = 0;
287  s.m_clockPeriod = 1;
288  s.m_line = XSL_In1;
289  settings.push_back(s);
290  s.m_line = XSL_In2;
291  settings.push_back(s);
292 
293  s.m_function = XSF_StartSampling;
294  s.m_skipFactor = 0;
295  s.m_clockPeriod = 0;
296  s.m_pulseWidth = 0;
297  s.m_offset = 1;
298  s.m_skipFirst = 1;
299  s.m_line = XSL_In1;
300  settings.push_back(s);
301  s.m_line = XSL_In2;
302  settings.push_back(s);
303 
304  return settings;
305 }
306 
309 {
311 
313 
314  // add XSF_Gnss1Pps with gnss clock in setting
315  s.m_function = XSF_Gnss1Pps;
316  s.m_polarity = XSP_None;
317  s.m_offset = 0;
318  s.m_pulseWidth = 1;
319  s.m_clockPeriod = 0;
320  s.m_skipFactor = 0;
321  s.m_line = XSL_In1;
322  settings.push_back(s);
323  s.m_line = XSL_In2;
324  settings.push_back(s);
325 
326  return settings;
327 }
328 
331 {
333  XsSyncSettingArray settings;
334 
335  //enable/disabled parameters per functions
336  s.m_polarity = XSP_RisingEdge;
337  s.m_offset = 0;
338  s.m_skipFactor = 1;
339  s.m_triggerOnce = 1;
340  s.m_skipFirst = 1;
341  s.m_pulseWidth = 0;
342  s.m_clockPeriod = 0;
343 
344  s.m_function = XSF_TriggerIndication;
345  s.m_line = XSL_In1;
346  settings.push_back(s);
347  s.m_line = XSL_In2;
348  settings.push_back(s);
349 
350  s.m_function = XSF_SendLatest;
351  s.m_line = XSL_In1;
352  settings.push_back(s);
353  s.m_line = XSL_In2;
354  settings.push_back(s);
355 
356  //-----
357  s.m_function = XSF_SendLatest;
358  s.m_line = XSL_ReqData;
359  // Disable polarity, offset and skip factor for ReqData
360  s.m_polarity = XSP_None;
361  s.m_skipFactor = 0;
362  s.m_offset = 0;
363  s.m_skipFirst = 0;
364  s.m_triggerOnce = 0;
365  settings.push_back(s);
366 
367  // Enable polarity, offset and skip factor for next settings
368  s.m_polarity = XSP_RisingEdge;
369  s.m_skipFactor = 1;
370  s.m_offset = 1;
371  //-----
372 
374  s.m_line = XSL_Out1;
375  s.m_pulseWidth = 1;
376  settings.push_back(s);
377  s.m_skipFirst = 0;
378  s.m_triggerOnce = 0;
379 
380  s.m_function = XSF_StartSampling;
381  s.m_skipFactor = 0;
382  s.m_clockPeriod = 0;
383  s.m_pulseWidth = 0;
384  s.m_offset = 1;
385  s.m_skipFirst = 1;
386  s.m_line = XSL_In1;
387  settings.push_back(s);
388  s.m_line = XSL_In2;
389  settings.push_back(s);
390 
391  // add XSF_Gnss1Pps with gnss clock in setting
392  s.m_function = XSF_Gnss1Pps;
393  s.m_polarity = XSP_None;
394  s.m_offset = 0;
395  s.m_pulseWidth = 1;
396  s.m_clockPeriod = 0;
397  s.m_skipFactor = 0;
398  s.m_line = XSL_In3;
399  settings.push_back(s);
400 
401  s.m_function = XSF_ClockBiasEstimation;
402  s.m_offset = 0;
403  s.m_pulseWidth = 0;
404  s.m_clockPeriod = 1;
405  s.m_line = XSL_In3;
406  settings.push_back(s);
407 
408  return settings;
409 }
410 
412 {
414 
415  XsSyncSetting timePulse1Pps(xsl4ToXsl(XSL4_BiOut), XSF_Gnss1Pps, XSP_None, 0, 0, 0, 0, 0, 0);
416  settings.push_back(timePulse1Pps);
417 
418  return settings;
419 }
420 
423 {
424  //extend ClockBiasEstimation to support GPS clock line
426  for (auto it = settings.begin(); it != settings.end(); ++it)
427  {
428  //insert a copy of existing XSF_ClockBiasEstimation with gps line setting
429  if (it->m_function == XSF_ClockBiasEstimation)
430  {
431  XsSyncSetting s = *it;
432  s.m_line = xsl4ToXsl(XSL4_GnssClockIn);
433  // Disable all parameters
434  s.m_polarity = XSP_None;
435  s.m_pulseWidth = 0;
436  s.m_offset = 0;
437  s.m_skipFactor = 0;
438  s.m_clockPeriod = 0;
439  settings.insert(s, it);
440  break;
441  }
442  }
443 
444  return settings;
445 }
446 
449 {
451 
453 
454  // add XSF_ClockBiasEstimation with clock line in setting
455  s.m_function = XSF_ClockBiasEstimation;
456  s.m_line = xsl4ToXsl(XSL4_In);
457  s.m_offset = 0;
458  s.m_pulseWidth = 0;
459  s.m_clockPeriod = 1;
460  s.m_skipFactor = 1;
461  settings.push_back(s);
462 
463  // add XSF_ClockBiasEstimation with gps line in setting
464  s.m_function = XSF_ClockBiasEstimation;
465  s.m_line = xsl4ToXsl(XSL4_GnssClockIn);
466  s.m_polarity = XSP_None;
467  s.m_offset = 0;
468  s.m_pulseWidth = 0;
469  s.m_clockPeriod = 0;
470  s.m_skipFactor = 0;
471  settings.push_back(s);
472 
473  // add XSF_Gnss1Pps with gnss clock in setting
474  s.m_function = XSF_Gnss1Pps;
475  s.m_line = xsl4ToXsl(XSL4_Gnss1Pps);
476  s.m_polarity = XSP_None;
477  s.m_offset = 0;
478  s.m_pulseWidth = 1;
479  s.m_clockPeriod = 0;
480  s.m_skipFactor = 0;
481  settings.push_back(s);
482 
483  return settings;
484 }
485 
488 {
490  XsSyncSettingArray settings;
491 
492  //enable/disabled options
493  s.m_polarity = XSP_RisingEdge;
494  s.m_skipFactor = 1;
495  s.m_offset = 1;
496  s.m_triggerOnce = 0;
497  s.m_skipFirst = 0;
498  s.m_pulseWidth = 0;
499  s.m_clockPeriod = 0;
500 
501  s.m_function = XSF_TriggerIndication;
502  s.m_line = XSL_In1;
503  settings.push_back(s);
504 
505  s.m_function = XSF_SendLatest;
506  s.m_line = XSL_In1;
507  settings.push_back(s);
508 
510  s.m_line = XSL_Out1;
511  s.m_pulseWidth = 1;
512  settings.push_back(s);
513 
514  s.m_function = XSF_ClockBiasEstimation;
515  s.m_line = XSL_ClockIn;
516  s.m_pulseWidth = 0;
517  s.m_clockPeriod = 1;
518  s.m_offset = 0;
519  settings.push_back(s);
520 
521 
522  return settings;
523 }
524 
527 {
530 
531  s.m_function = XSF_ClockBiasEstimation;
532  s.m_line = XSL_GnssClockIn;
533  // Disable all parameters
534  s.m_polarity = XSP_None;
535  s.m_pulseWidth = 0;
536  s.m_offset = 0;
537  s.m_skipFactor = 0;
538  s.m_clockPeriod = 0;
539  settings.push_back(s);
540 
541  return settings;
542 }
543 
546 {
548  XsSyncSettingArray settings;
549 
550  //enable/disabled parameters per functions
551  s.m_polarity = XSP_RisingEdge;
552  s.m_offset = 1;
553  s.m_skipFactor = 1;
554  s.m_triggerOnce = 0;
555  s.m_skipFirst = 0;
556  s.m_pulseWidth = 0;
557  s.m_clockPeriod = 0;
558 
559  s.m_function = XSF_SendLatest;
560  s.m_line = xslgmtToXsl(XSLGMT_In1);
561  settings.push_back(s);
562 
563  //-----
564  s.m_function = XSF_SendLatest;
565  s.m_line = xslgmtToXsl(XSLGMT_ReqData);
566  // Disable polarity, offset and skip factor for ReqData
567  s.m_polarity = XSP_None;
568  s.m_skipFactor = 0;
569  s.m_offset = 0;
570  settings.push_back(s);
571 
572  return settings;
573 }
574 
577 {
579  XsSyncSettingArray settings;
580 
581  // ----- Input triggers -----
582  std::set<XsSyncFunction> inputSyncFunctions;
583  inputSyncFunctions.insert(XSF_StartRecordingIn);
584  inputSyncFunctions.insert(XSF_StopRecordingIn);
585  inputSyncFunctions.insert(XSF_ResetTimer);
586  inputSyncFunctions.insert(XSF_TriggerIndication);
587 
588  for (XsSyncFunction const& syncFunction : inputSyncFunctions)
589  {
590  s.m_line = XSL_In1;
591  s.m_polarity = XSP_RisingEdge;
592  s.m_function = syncFunction;
593  s.m_pulseWidth = 0;
594  s.m_offset = 0;
595  s.m_skipFirst = 1;
596  s.m_skipFactor = 1;
597  s.m_clockPeriod = 0;
598  s.m_triggerOnce = 1;
599 
600  settings.push_back(s);
601 
602  s.m_line = XSL_In2;
603  s.m_polarity = XSP_RisingEdge;
604  s.m_function = syncFunction;
605  s.m_pulseWidth = 0;
606  s.m_offset = 0;
607  s.m_skipFirst = 1;
608  s.m_skipFactor = 1;
609  s.m_clockPeriod = 0;
610  s.m_triggerOnce = 1;
611 
612  settings.push_back(s);
613  }
614 
615  // ----- Output triggers -----
616  std::set<XsSyncFunction> outputSyncFunctions;
617  outputSyncFunctions.insert(XSF_StartRecordingOut);
618  outputSyncFunctions.insert(XSF_StopRecordingOut);
619  outputSyncFunctions.insert(XSF_GotoOperational);
620  outputSyncFunctions.insert(XSF_IntervalTransitionMeasurement);
621  outputSyncFunctions.insert(XSF_IntervalTransitionRecording);
622  for (XsSyncFunction const& syncFunction : outputSyncFunctions)
623  {
624  s.m_line = XSL_Out1;
625  s.m_polarity = XSP_RisingEdge;
626  s.m_function = syncFunction;
627  s.m_pulseWidth = 1;
628  s.m_offset = 0;
629  s.m_skipFirst = 1;
630  s.m_skipFactor = 1;
631  s.m_clockPeriod = 0;
632  s.m_triggerOnce = 1;
633 
634  settings.push_back(s);
635 
636  s.m_line = XSL_Out2;
637  s.m_polarity = XSP_RisingEdge;
638  s.m_function = syncFunction;
639  s.m_pulseWidth = 1;
640  s.m_offset = 0;
641  s.m_skipFirst = 1;
642  s.m_skipFactor = 1;
643  s.m_clockPeriod = 0;
644  s.m_triggerOnce = 1;
645 
646  settings.push_back(s);
647  }
648 
649  return settings;
650 }
651 
657 bool isAwindaSettingCompatible(XsSyncSetting const& setting1, XsSyncSetting const& setting2)
658 {
659  bool isCompatible = true;
660  if (setting1.m_function == setting2.m_function)
661  {
662  bool areInputs = (setting1.m_line == XSL_In1 || setting1.m_line == XSL_In2) && (setting2.m_line == XSL_In1 || setting2.m_line == XSL_In2);
663  bool areOutputs = (setting1.m_line == XSL_Out1 || setting1.m_line == XSL_Out2) && (setting2.m_line == XSL_Out1 || setting2.m_line == XSL_Out2);
664  if (areInputs || areOutputs)
665  {
666  if (setting1.m_line != setting2.m_line)
667  {
668  if (setting1.m_polarity != setting2.m_polarity ||
669  setting1.m_pulseWidth != setting2.m_pulseWidth ||
670  setting1.m_offset != setting2.m_offset ||
671  setting1.m_skipFirst != setting2.m_skipFirst ||
672  setting1.m_skipFactor != setting2.m_skipFactor ||
673  setting1.m_clockPeriod != setting2.m_clockPeriod ||
674  setting1.m_triggerOnce != setting2.m_triggerOnce)
675  isCompatible = false;
676  }
677  }
678  }
679  return isCompatible;
680 }
681 
686 bool isSyncStationSettingCompatible(XsSyncSetting const& setting1, XsSyncSetting const& setting2)
687 {
688  return isAwindaSettingCompatible(setting1, setting2);
689 }
690 
694 {
695  return 1000;
696 }
697 
701 {
703 }
704 
708 {
709  return 100;
710 }
711 
715 {
716  return 100;
717 }
718 
719 } // End namespace
XsSyncSettingArray
struct XsSyncSettingArray XsSyncSettingArray
Definition: xssyncsettingarray.h:82
XSF_Gnss1Pps
@ XSF_Gnss1Pps
Emit trigger on the start of each second, generated by the GNSS receiver.
Definition: xssyncfunction.h:96
Synchronization::supportedSyncSettingsForMtiDevice
XsSyncSettingArray supportedSyncSettingsForMtiDevice()
Definition: supportedsyncsettings.cpp:163
Synchronization::supportedSyncSettingsForMt6x0Device
XsSyncSettingArray supportedSyncSettingsForMt6x0Device()
get list of supported synchronizations settings for an Mti6x0Device
Definition: supportedsyncsettings.cpp:234
XsSyncSetting::m_skipFirst
uint16_t m_skipFirst
Definition: xssyncsetting.h:102
XSL_In2
@ XSL_In2
Sync In 2.
Definition: xssyncline.h:78
XSF_IntervalTransitionMeasurement
@ XSF_IntervalTransitionMeasurement
Emit trigger on an interval transition during measurement and recording.
Definition: xssyncfunction.h:81
XSF_TriggerIndication
@ XSF_TriggerIndication
An indication is sent to the driver when trigger is detected.
Definition: xssyncfunction.h:79
XSL_In1
@ XSL_In1
Sync In 1.
Definition: xssyncline.h:77
Synchronization::supportsSyncSettings
bool supportsSyncSettings(XsDeviceId const &deviceId)
Definition: supportedsyncsettings.cpp:116
s
XmlRpcServer s
XSLGMT_ReqData
@ XSLGMT_ReqData
Serial data sync option, use XMID_ReqData message id for this XSL_ReqData.
Definition: synclinegmt.h:86
XsSyncSetting::m_function
XsSyncFunction m_function
Definition: xssyncsetting.h:98
XSF_ClockBiasEstimation
@ XSF_ClockBiasEstimation
Do a clock bias estimation on trigger.
Definition: xssyncfunction.h:87
XSL4_ReqData
@ XSL4_ReqData
Serial data sync option, use XMID_ReqData message id for this XSL_ReqData.
Definition: synclinemk4.h:82
XSL_ReqData
@ XSL_ReqData
Serial data sync option, use XMID_ReqData message id for this.
Definition: xssyncline.h:85
XSF_StopRecordingOut
@ XSF_StopRecordingOut
Stop recording on trigger or emit trigger when recording is stopped (Out).
Definition: xssyncfunction.h:94
XsSyncSetting::m_polarity
XsSyncPolarity m_polarity
Definition: xssyncsetting.h:99
XSP_None
@ XSP_None
Don't generate or react to trigger level changes.
Definition: xssyncpolarity.h:76
Synchronization::mtiTimeResolutionInMicroseconds
unsigned int mtiTimeResolutionInMicroseconds()
Definition: supportedsyncsettings.cpp:707
Synchronization::supportedSyncSettingsForMt6x0IntGnssDevice
XsSyncSettingArray supportedSyncSettingsForMt6x0IntGnssDevice()
get list of supported synchronizations settings for any MTi-6x0G, rugged devices with internal GNSS,...
Definition: supportedsyncsettings.cpp:330
Synchronization::supportedSyncSettingsForMtigDevice
XsSyncSettingArray supportedSyncSettingsForMtigDevice()
get list of supported synchronizations settings for an MtigDevice
Definition: supportedsyncsettings.cpp:422
XSL_In3
@ XSL_In3
Sync In 3.
Definition: xssyncline.h:79
XSL4_BiIn
@ XSL4_BiIn
Bidirectional sync line, configured as input XSL_Bi1In.
Definition: synclinemk4.h:79
XsSyncSetting::m_pulseWidth
uint32_t m_pulseWidth
Definition: xssyncsetting.h:100
Synchronization::supportedSyncSettingsForAwindaBaseStation
XsSyncSettingArray supportedSyncSettingsForAwindaBaseStation()
get list of supported synchronizations settings for an Awinda base station
Definition: supportedsyncsettings.cpp:576
Synchronization::supportedSyncSettingsForMti7AndMTi8Devices
XsSyncSettingArray supportedSyncSettingsForMti7AndMTi8Devices()
get list of supported synchronizations settings for an Mti7 or MTi8 Device
Definition: supportedsyncsettings.cpp:448
XSLGMT_In1
@ XSLGMT_In1
Sync in 1 XSL_In1.
Definition: synclinegmt.h:83
Synchronization::awindaTimeResolutionInMicroseconds
unsigned int awindaTimeResolutionInMicroseconds()
Definition: supportedsyncsettings.cpp:693
XSF_GotoOperational
@ XSF_GotoOperational
Emit trigger when going to Operational mode.
Definition: xssyncfunction.h:83
XsSyncSetting
A structure for storing all xsens sync settings.
Definition: xssyncsetting.h:95
XsSyncSetting::m_triggerOnce
uint8_t m_triggerOnce
Definition: xssyncsetting.h:105
XsSyncSetting::m_line
XsSyncLine m_line
Definition: xssyncsetting.h:97
XSF_IntervalTransitionRecording
@ XSF_IntervalTransitionRecording
Emit trigger on an interval transition during recording.
Definition: xssyncfunction.h:82
xslgmtToXsl
XsSyncLine xslgmtToXsl(SyncLineGmt mk4Line)
Translate an SyncLineGmt into a generic XsSyncLine.
Definition: synclinegmt.c:72
XSL_GnssClockIn
@ XSL_GnssClockIn
Clock synchronisation input line attached to internal GNSS unit.
Definition: xssyncline.h:83
XSL4_ClockIn
@ XSL4_ClockIn
External clock sync XSL_ClockIn.
Definition: synclinemk4.h:76
XSL_ClockIn
@ XSL_ClockIn
Clock synchronisation input.
Definition: xssyncline.h:81
xssyncsettingarray.h
Synchronization::supportedSyncSettingsForGnssDevice
XsSyncSettingArray supportedSyncSettingsForGnssDevice()
get list of supported synchronizations settings for MtDevice with GNSS
Definition: supportedsyncsettings.cpp:526
XSL4_Gnss1Pps
@ XSL4_Gnss1Pps
GNSS 1PPS sync line XSL_Gnss1Pps.
Definition: synclinemk4.h:83
XSL4_BiOut
@ XSL4_BiOut
Bidirectional sync line, configured as output XSL_Bi1Out.
Definition: synclinemk4.h:80
Synchronization::isAwindaSettingCompatible
bool isAwindaSettingCompatible(XsSyncSetting const &setting1, XsSyncSetting const &setting2)
Definition: supportedsyncsettings.cpp:657
XSL_Out2
@ XSL_Out2
Sync Out 2.
Definition: xssyncline.h:90
XsDeviceId
Contains an Xsens device ID and provides operations for determining the type of device.
Definition: xsdeviceid.h:192
XsSyncSetting::m_offset
int32_t m_offset
Definition: xssyncsetting.h:101
XSP_RisingEdge
@ XSP_RisingEdge
React to a rising edge on input.
Definition: xssyncpolarity.h:77
xsl4ToXsl
XsSyncLine xsl4ToXsl(SyncLineMk4 mk4Line)
Translate an SyncLineMk4 into a generic XsSyncLine.
Definition: synclinemk4.c:72
Synchronization::supportedSyncSettingsForMtiXDevice
XsSyncSettingArray supportedSyncSettingsForMtiXDevice()
get list of supported synchronization settings for an MtiX Device
Definition: supportedsyncsettings.cpp:545
XSF_StartRecordingIn
@ XSF_StartRecordingIn
Start recording on trigger or emit trigger when first recording frame is started (In).
Definition: xssyncfunction.h:76
Synchronization::supportedSyncSettingsForMt6x0GnssDevice
XsSyncSettingArray supportedSyncSettingsForMt6x0GnssDevice()
get list of supported synchronizations settings for any MTi-6x0, non-rugged devices with external GNS...
Definition: supportedsyncsettings.cpp:308
XSF_StartRecordingOut
@ XSF_StartRecordingOut
Start recording on trigger or emit trigger when first recording frame is started (Out).
Definition: xssyncfunction.h:93
XSF_StartSampling
@ XSF_StartSampling
Start sampling. Data will only be transmitted after this trigger has been received.
Definition: xssyncfunction.h:91
Synchronization
Definition: supportedsyncsettings.cpp:72
XsSyncSettingArray
A list of XsSyncSetting values.
synclinegmt.h
Synchronization::isSyncStationSettingCompatible
bool isSyncStationSettingCompatible(XsSyncSetting const &setting1, XsSyncSetting const &setting2)
Definition: supportedsyncsettings.cpp:686
XSF_StopRecordingIn
@ XSF_StopRecordingIn
Stop recording on trigger or emit trigger when recording is stopped (In).
Definition: xssyncfunction.h:77
Synchronization::supportedSyncSettings
XsSyncSettingArray supportedSyncSettings(XsDeviceId const &deviceId)
Returns the list of the supported synchronizations settings for the specified device id Each item in ...
Definition: supportedsyncsettings.cpp:78
XSL_Out1
@ XSL_Out1
Sync Out 1.
Definition: xssyncline.h:89
XSF_ResetTimer
@ XSF_ResetTimer
On input trigger, the outgoing timer of the station will be set to 0.
Definition: xssyncfunction.h:78
Synchronization::mtx2TimeResolutionInMicroseconds
unsigned int mtx2TimeResolutionInMicroseconds()
Definition: supportedsyncsettings.cpp:714
synclinemk4.h
Synchronization::isCompatibleSyncSetting
bool isCompatibleSyncSetting(XsDeviceId const &deviceId, XsSyncSetting const &setting1, XsSyncSetting const &setting2)
Return true if setting1 is compatible with setting2 for a device with deviceId.
Definition: supportedsyncsettings.cpp:126
Synchronization::supportedSyncSettingsForMark5MtigX10Device
XsSyncSettingArray supportedSyncSettingsForMark5MtigX10Device()
Definition: supportedsyncsettings.cpp:411
XSF_SendLatest
@ XSF_SendLatest
Send the latest sample.
Definition: xssyncfunction.h:86
XsSyncFunction
XsSyncFunction
Actions to be taken on input triggers.
Definition: xssyncfunction.h:74
XSL4_In
@ XSL4_In
Send data line XSL_In1.
Definition: synclinemk4.h:78
XSL4_GnssClockIn
@ XSL4_GnssClockIn
GNSS clock sync XSL_GnssClockIn.
Definition: synclinemk4.h:77
Synchronization::supportedSyncSettingsForMtDevice
XsSyncSettingArray supportedSyncSettingsForMtDevice()
get list of supported synchronizations settings for an MtDevice
Definition: supportedsyncsettings.cpp:487
XsSyncSetting::m_skipFactor
uint16_t m_skipFactor
Definition: xssyncsetting.h:103
Synchronization::timeResolutionInMicroseconds
unsigned int timeResolutionInMicroseconds(XsDeviceId const &deviceId)
Definition: supportedsyncsettings.cpp:140
supportedsyncsettings.h
Synchronization::syncStationTimeResolutionInMicroseconds
unsigned int syncStationTimeResolutionInMicroseconds()
Definition: supportedsyncsettings.cpp:700
XsSyncSetting::m_clockPeriod
uint16_t m_clockPeriod
Definition: xssyncsetting.h:104
Synchronization::supportedSyncSettingsForMtx2Device
XsSyncSettingArray supportedSyncSettingsForMtx2Device()
get list of supported synchronizations settings for an Mtx2Device
Definition: supportedsyncsettings.cpp:155


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