InertiaSDK

Loading...
Searching...
No Matches
NexoDAQSettings.h
1#pragma once
2
3#include "data/config/SensorSpecificSettings.h"
4#include "data/config/SingleAxisConfig.h"
5
6 namespace inertia
7{
8
9 struct NexoDAQChannelConfig;
10 struct NexoDAQChannelCapability;
11 typedef std::shared_ptr<NexoDAQChannelConfig> NexoDAQChannelConfigPtr;
12 typedef std::shared_ptr<NexoDAQChannelCapability> NexoDAQChannelCapabilityPtr;
13
14
15// Channel Special Configuration Descriptor ID
16 enum NexoDAQDescriptorID : uint8_t
17{
18 NDQ_INPUT_STAGE = 0,
19 NDQ_SEHV_FRONT_END = 1,
20 NDQ_DLV_FRONT_END = 2,
21 NDQ_DCA_FRONT_END = 3,
22 NDQ_HARDWARE_GAIN = 4,
23 NDQ_HARDWARE_BIAS = 5,
24 NDQ_CURRENT_SOURCE = 6,
25 NDQ_USER_POWER = 7,
26 NDQ_TEDS = 8,
27 NDQ_AUTO_RAIL = 9,
28 NDQ_WAKEUP_SOURCE = 10,
29 NDQ_TRIGGER_SOURCE = 11,
30 NDQ_LED_BEHAVIOR = 12,
31 NDQ_ADC = 13,
32 NDQ_USER_GPIO = 14,
33 NDQ_USER_CALIBRATION = 15,
34 NDQ_METADATA = 16,
35 NDQ_DESCR_ID_UNKNOWN,
36};
37
38 enum NexoDAQUserGPIOMode : uint8_t
39{
40 NDQ_USER_GPIO_MODE_DIGITAL_IN = 0,
41 NDQ_USER_GPIO_MODE_DIGITAL_OUT = 1,
42 NDQ_USER_GPIO_MODE_ANALOG_IN = 2,
43 NDQ_USER_GPIO_MODE_LAST
44};
45
46 enum NexoDAQTEDSMode : uint8_t
47{
48 NDQ_TEDS_MODE_NONE = 0,
49 NDQ_TEDS_MODE_C1 = 1,
50 NDQ_TEDS_MODE_C2 = 2,
51};
52
53
54 struct INERTIA_API NexoDAQSettings
55 : SpecificSensorSettings
56{
57 std::vector<NexoDAQChannelConfigPtr> channelConfigs;
58
59 NexoDAQSettings();
60 NexoDAQSettings(uint8_t const* in, const unsigned offset, const unsigned _length);
61 NexoDAQSettings(std::wstring const& argString);
62
63#ifdef WITH_BOOST_PROGRAM_OPTIONS
64 static const po::options_description GetOptionDescription();
65#endif
66
67 void GetBytes(std::vector<uint8_t>& out, const size_t bitfieldOffset) const override;
68 const std::wstring ToString() const override;
69 const std::wstring ToSimpleString() const;
70};
71
72
73 struct INERTIA_API NexoDAQChannelConfig
74{
75 private:
76 NexoDAQDescriptorID descrID;
77
78 public:
79 NexoDAQChannelConfig(NexoDAQDescriptorID const _descrID);
80 NexoDAQChannelConfig(uint8_t const* in, const unsigned _length);
81 NexoDAQChannelConfig(std::wstring const& argString);
82
83#ifdef WITH_BOOST_PROGRAM_OPTIONS
84 static const po::options_description GetOptionDescription();
85#endif
86
87 NexoDAQDescriptorID GetDescrID() const;
88
89 unsigned GetLength(unsigned const subType = 0) const;
90 virtual void GetBytes(std::vector<uint8_t>& out) const;
91 virtual const std::wstring ToString() const;
92};
93
94
95 struct INERTIA_API NexoDAQChannelConfigInputStage
96 : NexoDAQChannelConfig
97{
98 bool selectACDC;
99 uint8_t activeFrontEndSelect;
100
101 NexoDAQChannelConfigInputStage();
102 NexoDAQChannelConfigInputStage(uint8_t const* in, const unsigned _length);
103 NexoDAQChannelConfigInputStage(std::wstring const& argString);
104
105#ifdef WITH_BOOST_PROGRAM_OPTIONS
106 static const po::options_description GetOptionDescription();
107#endif
108
109 void GetBytes(std::vector<uint8_t>& out) const override;
110 const std::wstring ToString() const override;
111};
112
113
114 struct INERTIA_API NexoDAQChannelConfigSEHVFrontEnd
115 : NexoDAQChannelConfig
116{
117 bool enable200InputImp;
118 bool force1MInputImpOnAINP;
119
120 NexoDAQChannelConfigSEHVFrontEnd();
121 NexoDAQChannelConfigSEHVFrontEnd(uint8_t const* in, const unsigned _length);
122 NexoDAQChannelConfigSEHVFrontEnd(std::wstring const& argString);
123
124#ifdef WITH_BOOST_PROGRAM_OPTIONS
125 static const po::options_description GetOptionDescription();
126#endif
127
128 void GetBytes(std::vector<uint8_t>& out) const override;
129 const std::wstring ToString() const override;
130};
131
132
133 struct INERTIA_API NexoDAQChannelConfigDLVFrontEnd
134 : NexoDAQChannelConfig
135{
136 bool enable10mInputImp;
137 bool disableDrivenGuard;
138 bool useSingleEndedMode;
139
140 NexoDAQChannelConfigDLVFrontEnd();
141 NexoDAQChannelConfigDLVFrontEnd(uint8_t const* in, const unsigned _length);
142 NexoDAQChannelConfigDLVFrontEnd(std::wstring const& argString);
143
144#ifdef WITH_BOOST_PROGRAM_OPTIONS
145 static const po::options_description GetOptionDescription();
146#endif
147
148 void GetBytes(std::vector<uint8_t>& out) const override;
149 const std::wstring ToString() const override;
150};
151
152
153 struct INERTIA_API NexoDAQChannelConfigDCAFrontEnd
154 : NexoDAQChannelConfig
155{
156 bool useSingleEndedMode;
157 uint8_t rangeSelect;
158 uint8_t cornerFreqBinSelect;
159
160 NexoDAQChannelConfigDCAFrontEnd();
161 NexoDAQChannelConfigDCAFrontEnd(uint8_t const* in, const unsigned _length);
162 NexoDAQChannelConfigDCAFrontEnd(std::wstring const& argString);
163
164#ifdef WITH_BOOST_PROGRAM_OPTIONS
165 static const po::options_description GetOptionDescription();
166#endif
167
168 void GetBytes(std::vector<uint8_t>& out) const override;
169 const std::wstring ToString() const override;
170};
171
172
173 struct INERTIA_API NexoDAQChannelConfigHardwareGain
174 : NexoDAQChannelConfig
175{
176 uint16_t gain;
177
178 NexoDAQChannelConfigHardwareGain();
179 NexoDAQChannelConfigHardwareGain(uint8_t const* in, const unsigned _length);
180 NexoDAQChannelConfigHardwareGain(std::wstring const& argString);
181
182#ifdef WITH_BOOST_PROGRAM_OPTIONS
183 static const po::options_description GetOptionDescription();
184#endif
185
186 void GetBytes(std::vector<uint8_t>& out) const override;
187 const std::wstring ToString() const override;
188};
189
190
191 struct INERTIA_API NexoDAQChannelConfigHardwareBias
192 : NexoDAQChannelConfig
193{
194 float bias;
195
196 NexoDAQChannelConfigHardwareBias();
197 NexoDAQChannelConfigHardwareBias(uint8_t const* in, const unsigned _length);
198 NexoDAQChannelConfigHardwareBias(std::wstring const& argString);
199
200#ifdef WITH_BOOST_PROGRAM_OPTIONS
201 static const po::options_description GetOptionDescription();
202#endif
203
204 void GetBytes(std::vector<uint8_t>& out) const override;
205 const std::wstring ToString() const override;
206};
207
208
209 struct INERTIA_API NexoDAQChannelConfigCurrentSource
210 : NexoDAQChannelConfig
211{
212 bool enableCurrentSource;
213 float current;
214
215 NexoDAQChannelConfigCurrentSource();
216 NexoDAQChannelConfigCurrentSource(uint8_t const* in, const unsigned _length);
217 NexoDAQChannelConfigCurrentSource(std::wstring const& argString);
218
219#ifdef WITH_BOOST_PROGRAM_OPTIONS
220 static const po::options_description GetOptionDescription();
221#endif
222
223 void GetBytes(std::vector<uint8_t>& out) const override;
224 const std::wstring ToString() const override;
225};
226
227
228 struct INERTIA_API NexoDAQChannelConfigUserPower
229 : NexoDAQChannelConfig
230{
231 bool enableUserPower;
232 bool autoEnableUserPower;
233 bool userPowerDuringSleep;
234
235 NexoDAQChannelConfigUserPower();
236 NexoDAQChannelConfigUserPower(uint8_t const* in, const unsigned _length);
237 NexoDAQChannelConfigUserPower(std::wstring const& argString);
238
239#ifdef WITH_BOOST_PROGRAM_OPTIONS
240 static const po::options_description GetOptionDescription();
241#endif
242
243 void GetBytes(std::vector<uint8_t>& out) const override;
244 const std::wstring ToString() const override;
245};
246
247
248 struct INERTIA_API NexoDAQChannelConfigTEDS
249 : NexoDAQChannelConfig
250{
251 NexoDAQTEDSMode tedsMode;
252
253 NexoDAQChannelConfigTEDS();
254 NexoDAQChannelConfigTEDS(uint8_t const* in, const unsigned _length);
255 NexoDAQChannelConfigTEDS(std::wstring const& argString);
256
257#ifdef WITH_BOOST_PROGRAM_OPTIONS
258 static const po::options_description GetOptionDescription();
259#endif
260
261 void GetBytes(std::vector<uint8_t>& out) const override;
262 const std::wstring ToString() const override;
263};
264
265
266 struct INERTIA_API NexoDAQChannelConfigAutoRail
267 : NexoDAQChannelConfig
268{
269 bool enableAutoRail;
270 bool enableAutoRailSignalFollower;
271 float maxSignalAmplitude;
272 float requiredSignalHeadroom;
273
274 NexoDAQChannelConfigAutoRail();
275 NexoDAQChannelConfigAutoRail(uint8_t const* in, const unsigned _length);
276 NexoDAQChannelConfigAutoRail(std::wstring const& argString);
277
278#ifdef WITH_BOOST_PROGRAM_OPTIONS
279 static const po::options_description GetOptionDescription();
280#endif
281
282 void GetBytes(std::vector<uint8_t>& out) const override;
283 const std::wstring ToString() const override;
284};
285
286
287 struct INERTIA_API NexoDAQChannelConfigWakeupSource
288 : NexoDAQChannelConfig
289{
290 bool useAsWakeupSource;
291 bool useAlternateSourceUserGPIO;
292 bool wirelessStreamWhileMonitoring;
293
294 uint8_t eventChannel;
295 uint8_t detectorMode;
296 uint8_t monitoringMode;
297
298 uint8_t monitoringChannel;
299 uint8_t monitoringSwitchDelay;
300 uint8_t eventHoldOff;
301
302 float lowerThreshold;
303 float higherThreshold;
304
305 NexoDAQChannelConfigWakeupSource();
306 NexoDAQChannelConfigWakeupSource(uint8_t const* in, const unsigned _length);
307 NexoDAQChannelConfigWakeupSource(std::wstring const& argString);
308
309#ifdef WITH_BOOST_PROGRAM_OPTIONS
310 static const po::options_description GetOptionDescription();
311#endif
312
313 void GetBytes(std::vector<uint8_t>& out) const override;
314 const std::wstring ToString() const override;
315};
316
317
318 struct INERTIA_API NexoDAQChannelConfigTriggerSource
319 : NexoDAQChannelConfig
320{
321 NexoDAQChannelConfigTriggerSource();
322 NexoDAQChannelConfigTriggerSource(uint8_t const* in, const unsigned _length);
323 NexoDAQChannelConfigTriggerSource(std::wstring const& argString);
324
325#ifdef WITH_BOOST_PROGRAM_OPTIONS
326 static const po::options_description GetOptionDescription();
327#endif
328
329 void GetBytes(std::vector<uint8_t>& out) const override;
330 const std::wstring ToString() const override;
331};
332
333
334 struct INERTIA_API NexoDAQChannelConfigLedBehavior
335 : NexoDAQChannelConfig
336{
337 bool enableLedOverride;
338 std::vector<uint8_t> ledBehavior;
339
340 NexoDAQChannelConfigLedBehavior();
341 NexoDAQChannelConfigLedBehavior(uint8_t const* in, const unsigned _length);
342 NexoDAQChannelConfigLedBehavior(std::wstring const& argString);
343
344#ifdef WITH_BOOST_PROGRAM_OPTIONS
345 static const po::options_description GetOptionDescription();
346#endif
347
348 void GetBytes(std::vector<uint8_t>& out) const override;
349 const std::wstring ToString() const override;
350};
351
352
353 struct INERTIA_API NexoDAQChannelConfigADC
354 : NexoDAQChannelConfig
355{
356 bool enableAdcOverride;
357 uint8_t osrSelect;
358 uint8_t filterSelect;
359
360 NexoDAQChannelConfigADC();
361 NexoDAQChannelConfigADC(uint8_t const* in, const unsigned _length);
362 NexoDAQChannelConfigADC(std::wstring const& argString);
363
364#ifdef WITH_BOOST_PROGRAM_OPTIONS
365 static const po::options_description GetOptionDescription();
366#endif
367
368 void GetBytes(std::vector<uint8_t>& out) const override;
369 const std::wstring ToString() const override;
370};
371
372
373 struct INERTIA_API NexoDAQChannelConfigUserGPIO
374 : NexoDAQChannelConfig
375{
376 NexoDAQUserGPIOMode gpioMode;
377 bool enableUserGPIO;
378
379 // digital input
380 bool triggerOnRisingEdge;
381 bool triggerOnFallingEdge;
382 uint8_t eventChannel;
383 uint8_t eventHoldOff;
384
385 // digital output
386 uint16_t reserved;
387
388 // analog input
389 SingleAxisConfig analogIn;
390
391 NexoDAQChannelConfigUserGPIO();
392 NexoDAQChannelConfigUserGPIO(uint8_t const* in, const unsigned _length);
393 NexoDAQChannelConfigUserGPIO(std::wstring const& argString);
394
395#ifdef WITH_BOOST_PROGRAM_OPTIONS
396 static const po::options_description GetOptionDescription();
397#endif
398
399 void GetBytes(std::vector<uint8_t>& out) const override;
400 const std::wstring ToString() const override;
401};
402
403
404 struct INERTIA_API NexoDAQChannelConfigUserCalibration
405 : NexoDAQChannelConfig
406{
407 bool enableUserCalibration;
408
409 NexoDAQChannelConfigUserCalibration();
410 NexoDAQChannelConfigUserCalibration(uint8_t const* in, const unsigned _length);
411 NexoDAQChannelConfigUserCalibration(std::wstring const& argString);
412
413#ifdef WITH_BOOST_PROGRAM_OPTIONS
414 static const po::options_description GetOptionDescription();
415#endif
416
417 void GetBytes(std::vector<uint8_t>& out) const override;
418 const std::wstring ToString() const override;
419};
420
421
422 struct INERTIA_API NexoDAQChannelConfigMetadata
423 : NexoDAQChannelConfig
424{
425 std::vector<uint8_t> metadata;
426
427 NexoDAQChannelConfigMetadata();
428 NexoDAQChannelConfigMetadata(uint8_t const* in, const unsigned _length);
429 NexoDAQChannelConfigMetadata(std::wstring const& argString);
430
431#ifdef WITH_BOOST_PROGRAM_OPTIONS
432 static const po::options_description GetOptionDescription();
433#endif
434
435 void GetBytes(std::vector<uint8_t>& out) const override;
436 const std::wstring ToString() const override;
437};
438
439
440 struct INERTIA_API NexoDAQChannelConfigUnknown
441 : NexoDAQChannelConfig
442{
443 std::vector<uint8_t> payload;
444
445 NexoDAQChannelConfigUnknown();
446 NexoDAQChannelConfigUnknown(uint8_t const* in, const unsigned _length);
447 NexoDAQChannelConfigUnknown(std::wstring const& argString);
448
449#ifdef WITH_BOOST_PROGRAM_OPTIONS
450 static const po::options_description GetOptionDescription();
451#endif
452
453 void GetBytes(std::vector<uint8_t>& out) const override;
454 const std::wstring ToString() const override;
455};
456
457
458// ------------- capabilities -------------
459
460
461 struct INERTIA_API NexoDAQCapabilities
462 : SpecificSensorSettings
463{
464 std::vector<NexoDAQChannelCapabilityPtr> channelCapabilities;
465
466 NexoDAQCapabilities();
467 NexoDAQCapabilities(uint8_t const* in, const unsigned offset, const unsigned _length);
468 NexoDAQCapabilities(std::wstring const& argString);
469
470
471#ifdef WITH_BOOST_PROGRAM_OPTIONS
472 static const po::options_description GetOptionDescription();
473#endif
474
475 void GetBytes(std::vector<uint8_t>& out, const size_t bitfieldOffset) const override;
476 const std::wstring ToString() const override;
477 const std::wstring ToSimpleString() const;
478};
479
480
481 struct INERTIA_API NexoDAQChannelCapability
482{
483 private:
484 NexoDAQDescriptorID descrID;
485
486 public:
487 NexoDAQChannelCapability(NexoDAQDescriptorID const _descrID);
488 NexoDAQChannelCapability(uint8_t const* in, const unsigned _length);
489 NexoDAQChannelCapability(std::wstring const& argString);
490
491#ifdef WITH_BOOST_PROGRAM_OPTIONS
492 static const po::options_description GetOptionDescription();
493#endif
494
495 NexoDAQDescriptorID GetDescrID() const;
496
497 unsigned GetLength(unsigned const subType = 0) const;
498 virtual void GetBytes(std::vector<uint8_t>& out) const;
499 virtual const std::wstring ToString() const;
500};
501
502
503 struct INERTIA_API NexoDAQChannelCapabilityInputStage
504 : NexoDAQChannelCapability
505{
506 bool dcCouplingSupported;
507 bool acCouplingSupported;
508
509 NexoDAQChannelCapabilityInputStage();
510 NexoDAQChannelCapabilityInputStage(uint8_t const* in, const unsigned _length);
511 NexoDAQChannelCapabilityInputStage(std::wstring const& argString);
512
513#ifdef WITH_BOOST_PROGRAM_OPTIONS
514 static const po::options_description GetOptionDescription();
515#endif
516
517 void GetBytes(std::vector<uint8_t>& out) const override;
518 const std::wstring ToString() const override;
519};
520
521
522 struct INERTIA_API NexoDAQChannelCapabilitySEHVFrontEnd
523 : NexoDAQChannelCapability
524{
525 uint8_t hardwareID;
526 uint32_t hardwareSpecific;
527
528 NexoDAQChannelCapabilitySEHVFrontEnd();
529 NexoDAQChannelCapabilitySEHVFrontEnd(uint8_t const* in, const unsigned _length);
530 NexoDAQChannelCapabilitySEHVFrontEnd(std::wstring const& argString);
531
532#ifdef WITH_BOOST_PROGRAM_OPTIONS
533 static const po::options_description GetOptionDescription();
534#endif
535
536 void GetBytes(std::vector<uint8_t>& out) const override;
537 const std::wstring ToString() const override;
538};
539
540
541 struct INERTIA_API NexoDAQChannelCapabilityDLVFrontEnd
542 : NexoDAQChannelCapability
543{
544 uint8_t hardwareID;
545 uint32_t hardwareSpecific;
546
547 NexoDAQChannelCapabilityDLVFrontEnd();
548 NexoDAQChannelCapabilityDLVFrontEnd(uint8_t const* in, const unsigned _length);
549 NexoDAQChannelCapabilityDLVFrontEnd(std::wstring const& argString);
550
551#ifdef WITH_BOOST_PROGRAM_OPTIONS
552 static const po::options_description GetOptionDescription();
553#endif
554
555 void GetBytes(std::vector<uint8_t>& out) const override;
556 const std::wstring ToString() const override;
557};
558
559
560 struct INERTIA_API NexoDAQChannelCapabilityDCAFrontEnd
561 : NexoDAQChannelCapability
562{
563 uint8_t hardwareID;
564 uint32_t hardwareSpecific;
565
566 NexoDAQChannelCapabilityDCAFrontEnd();
567 NexoDAQChannelCapabilityDCAFrontEnd(uint8_t const* in, const unsigned _length);
568 NexoDAQChannelCapabilityDCAFrontEnd(std::wstring const& argString);
569
570#ifdef WITH_BOOST_PROGRAM_OPTIONS
571 static const po::options_description GetOptionDescription();
572#endif
573
574 void GetBytes(std::vector<uint8_t>& out) const override;
575 const std::wstring ToString() const override;
576};
577
578
579 struct INERTIA_API NexoDAQChannelCapabilityHardwareGain
580 : NexoDAQChannelCapability
581{
582 uint8_t gainStepSize;
583 uint8_t gainBits;
584
585 NexoDAQChannelCapabilityHardwareGain();
586 NexoDAQChannelCapabilityHardwareGain(uint8_t const* in, const unsigned _length);
587 NexoDAQChannelCapabilityHardwareGain(std::wstring const& argString);
588
589#ifdef WITH_BOOST_PROGRAM_OPTIONS
590 static const po::options_description GetOptionDescription();
591#endif
592
593 void GetBytes(std::vector<uint8_t>& out) const override;
594 const std::wstring ToString() const override;
595};
596
597
598 struct INERTIA_API NexoDAQChannelCapabilityHardwareBias
599 : NexoDAQChannelCapability
600{
601 uint8_t hardwareID;
602
603 NexoDAQChannelCapabilityHardwareBias();
604 NexoDAQChannelCapabilityHardwareBias(uint8_t const* in, const unsigned _length);
605 NexoDAQChannelCapabilityHardwareBias(std::wstring const& argString);
606
607#ifdef WITH_BOOST_PROGRAM_OPTIONS
608 static const po::options_description GetOptionDescription();
609#endif
610
611 void GetBytes(std::vector<uint8_t>& out) const override;
612 const std::wstring ToString() const override;
613};
614
615
616 struct INERTIA_API NexoDAQChannelCapabilityCurrentSource
617 : NexoDAQChannelCapability
618{
619 uint8_t hardwareID;
620
621 NexoDAQChannelCapabilityCurrentSource();
622 NexoDAQChannelCapabilityCurrentSource(uint8_t const* in, const unsigned _length);
623 NexoDAQChannelCapabilityCurrentSource(std::wstring const& argString);
624
625#ifdef WITH_BOOST_PROGRAM_OPTIONS
626 static const po::options_description GetOptionDescription();
627#endif
628
629 void GetBytes(std::vector<uint8_t>& out) const override;
630 const std::wstring ToString() const override;
631};
632
633
634 struct INERTIA_API NexoDAQChannelCapabilityUserPower
635 : NexoDAQChannelCapability
636{
637 uint8_t reserved;
638
639 NexoDAQChannelCapabilityUserPower();
640 NexoDAQChannelCapabilityUserPower(uint8_t const* in, const unsigned _length);
641 NexoDAQChannelCapabilityUserPower(std::wstring const& argString);
642
643#ifdef WITH_BOOST_PROGRAM_OPTIONS
644 static const po::options_description GetOptionDescription();
645#endif
646
647 void GetBytes(std::vector<uint8_t>& out) const override;
648 const std::wstring ToString() const override;
649};
650
651
652 struct INERTIA_API NexoDAQChannelCapabilityTEDS
653 : NexoDAQChannelCapability
654{
655 bool class1supported;
656 bool class2supported;
657
658 NexoDAQChannelCapabilityTEDS();
659 NexoDAQChannelCapabilityTEDS(uint8_t const* in, const unsigned _length);
660 NexoDAQChannelCapabilityTEDS(std::wstring const& argString);
661
662#ifdef WITH_BOOST_PROGRAM_OPTIONS
663 static const po::options_description GetOptionDescription();
664#endif
665
666 void GetBytes(std::vector<uint8_t>& out) const override;
667 const std::wstring ToString() const override;
668};
669
670
671 struct INERTIA_API NexoDAQChannelCapabilityAutoRail
672 : NexoDAQChannelCapability
673{
674 bool dynamicSignalAmplitudeFollowerSupported;
675
676 NexoDAQChannelCapabilityAutoRail();
677 NexoDAQChannelCapabilityAutoRail(uint8_t const* in, const unsigned _length);
678 NexoDAQChannelCapabilityAutoRail(std::wstring const& argString);
679
680#ifdef WITH_BOOST_PROGRAM_OPTIONS
681 static const po::options_description GetOptionDescription();
682#endif
683
684 void GetBytes(std::vector<uint8_t>& out) const override;
685 const std::wstring ToString() const override;
686};
687
688
689 struct INERTIA_API NexoDAQChannelCapabilityWakeupSource
690 : NexoDAQChannelCapability
691{
692 bool thresholdDetectWhileOffSupported;
693 bool lowResCapturewhileOffSupported;
694 bool wakeupFromUserGPIOSupported;
695 uint8_t hardwareID;
696
697 NexoDAQChannelCapabilityWakeupSource();
698 NexoDAQChannelCapabilityWakeupSource(uint8_t const* in, const unsigned _length);
699 NexoDAQChannelCapabilityWakeupSource(std::wstring const& argString);
700
701#ifdef WITH_BOOST_PROGRAM_OPTIONS
702 static const po::options_description GetOptionDescription();
703#endif
704
705 void GetBytes(std::vector<uint8_t>& out) const override;
706 const std::wstring ToString() const override;
707};
708
709
710 struct INERTIA_API NexoDAQChannelCapabilityTriggerSource
711 : NexoDAQChannelCapability
712{
713 NexoDAQChannelCapabilityTriggerSource();
714 NexoDAQChannelCapabilityTriggerSource(uint8_t const* in, const unsigned _length);
715 NexoDAQChannelCapabilityTriggerSource(std::wstring const& argString);
716
717#ifdef WITH_BOOST_PROGRAM_OPTIONS
718 static const po::options_description GetOptionDescription();
719#endif
720
721 void GetBytes(std::vector<uint8_t>& out) const override;
722 const std::wstring ToString() const override;
723};
724
725
726 struct INERTIA_API NexoDAQChannelCapabilityLedBehavior
727 : NexoDAQChannelCapability
728{
729 NexoDAQChannelCapabilityLedBehavior();
730 NexoDAQChannelCapabilityLedBehavior(uint8_t const* in, const unsigned _length);
731 NexoDAQChannelCapabilityLedBehavior(std::wstring const& argString);
732
733#ifdef WITH_BOOST_PROGRAM_OPTIONS
734 static const po::options_description GetOptionDescription();
735#endif
736
737 void GetBytes(std::vector<uint8_t>& out) const override;
738 const std::wstring ToString() const override;
739};
740
741
742 struct INERTIA_API NexoDAQChannelCapabilityADC
743 : NexoDAQChannelCapability
744{
745 uint8_t hardwareID;
746
747 NexoDAQChannelCapabilityADC();
748 NexoDAQChannelCapabilityADC(uint8_t const* in, const unsigned _length);
749 NexoDAQChannelCapabilityADC(std::wstring const& argString);
750
751#ifdef WITH_BOOST_PROGRAM_OPTIONS
752 static const po::options_description GetOptionDescription();
753#endif
754
755 void GetBytes(std::vector<uint8_t>& out) const override;
756 const std::wstring ToString() const override;
757};
758
759
760 struct INERTIA_API NexoDAQChannelCapabilityUserGPIO
761 : NexoDAQChannelCapability
762{
763 bool analogSamplingSupported;
764 bool inputTriggerSupported;
765
766 uint8_t hardwareID;
767
768 NexoDAQChannelCapabilityUserGPIO();
769 NexoDAQChannelCapabilityUserGPIO(uint8_t const* in, const unsigned _length);
770 NexoDAQChannelCapabilityUserGPIO(std::wstring const& argString);
771
772#ifdef WITH_BOOST_PROGRAM_OPTIONS
773 static const po::options_description GetOptionDescription();
774#endif
775
776 void GetBytes(std::vector<uint8_t>& out) const override;
777 const std::wstring ToString() const override;
778};
779
780
781 struct INERTIA_API NexoDAQChannelCapabilityUserCalibration
782 : NexoDAQChannelCapability
783{
784 bool userCalibrationSupported;
785
786 NexoDAQChannelCapabilityUserCalibration();
787 NexoDAQChannelCapabilityUserCalibration(uint8_t const* in, const unsigned _length);
788 NexoDAQChannelCapabilityUserCalibration(std::wstring const& argString);
789
790#ifdef WITH_BOOST_PROGRAM_OPTIONS
791 static const po::options_description GetOptionDescription();
792#endif
793
794 void GetBytes(std::vector<uint8_t>& out) const override;
795 const std::wstring ToString() const override;
796};
797
798
799 struct INERTIA_API NexoDAQChannelCapabilityMetadata
800 : NexoDAQChannelCapability
801{
802 bool metadataSupported;
803
804 NexoDAQChannelCapabilityMetadata();
805 NexoDAQChannelCapabilityMetadata(uint8_t const* in, const unsigned _length);
806 NexoDAQChannelCapabilityMetadata(std::wstring const& argString);
807
808#ifdef WITH_BOOST_PROGRAM_OPTIONS
809 static const po::options_description GetOptionDescription();
810#endif
811
812 void GetBytes(std::vector<uint8_t>& out) const override;
813 const std::wstring ToString() const override;
814};
815
816
817 struct INERTIA_API NexoDAQChannelCapabilityUnknown
818 : NexoDAQChannelCapability
819{
820 std::vector<uint8_t> payload;
821
822 NexoDAQChannelCapabilityUnknown();
823 NexoDAQChannelCapabilityUnknown(uint8_t const* in, const unsigned _length);
824 NexoDAQChannelCapabilityUnknown(std::wstring const& argString);
825
826#ifdef WITH_BOOST_PROGRAM_OPTIONS
827 static const po::options_description GetOptionDescription();
828#endif
829
830 void GetBytes(std::vector<uint8_t>& out) const override;
831 const std::wstring ToString() const override;
832};
833
834}
inertia
Definition FlashCommands.h:6
inertia::NexoDAQChannelCapability
Definition NexoDAQSettings.h:482
inertia::NexoDAQChannelConfig
Definition NexoDAQSettings.h:74
inertia::SingleAxisConfig
Definition SingleAxisConfig.h:13