2 #include "commands_3dm.hpp"
4 #include "../utils/serialization.h"
5 #include "../mip_interface.h"
17 namespace commands_3dm {
27 void insert(Serializer& serializer,
const NmeaMessage&
self)
29 insert(serializer,
self.message_id);
31 insert(serializer,
self.talker_id);
33 insert(serializer,
self.source_desc_set);
35 insert(serializer,
self.decimation);
38 void extract(Serializer& serializer, NmeaMessage&
self)
40 extract(serializer,
self.message_id);
42 extract(serializer,
self.talker_id);
44 extract(serializer,
self.source_desc_set);
46 extract(serializer,
self.decimation);
55 void insert(Serializer& serializer,
const PollImuMessage&
self)
57 insert(serializer,
self.suppress_ack);
59 insert(serializer,
self.num_descriptors);
61 for(
unsigned int i=0; i <
self.num_descriptors; i++)
62 insert(serializer,
self.descriptors[i]);
65 void extract(Serializer& serializer, PollImuMessage&
self)
67 extract(serializer,
self.suppress_ack);
69 C::extract_count(&serializer, &
self.num_descriptors,
sizeof(
self.descriptors)/
sizeof(
self.descriptors[0]));
70 for(
unsigned int i=0; i <
self.num_descriptors; i++)
71 extract(serializer,
self.descriptors[i]);
78 Serializer serializer(buffer,
sizeof(buffer));
80 insert(serializer, suppressAck);
82 insert(serializer, numDescriptors);
84 assert(descriptors || (numDescriptors == 0));
85 for(
unsigned int i=0; i < numDescriptors; i++)
86 insert(serializer, descriptors[i]);
88 assert(serializer.isOk());
92 void insert(Serializer& serializer,
const PollGnssMessage&
self)
94 insert(serializer,
self.suppress_ack);
96 insert(serializer,
self.num_descriptors);
98 for(
unsigned int i=0; i <
self.num_descriptors; i++)
99 insert(serializer,
self.descriptors[i]);
102 void extract(Serializer& serializer, PollGnssMessage&
self)
104 extract(serializer,
self.suppress_ack);
106 C::extract_count(&serializer, &
self.num_descriptors,
sizeof(
self.descriptors)/
sizeof(
self.descriptors[0]));
107 for(
unsigned int i=0; i <
self.num_descriptors; i++)
108 extract(serializer,
self.descriptors[i]);
115 Serializer serializer(buffer,
sizeof(buffer));
117 insert(serializer, suppressAck);
119 insert(serializer, numDescriptors);
121 assert(descriptors || (numDescriptors == 0));
122 for(
unsigned int i=0; i < numDescriptors; i++)
123 insert(serializer, descriptors[i]);
125 assert(serializer.isOk());
129 void insert(Serializer& serializer,
const PollFilterMessage&
self)
131 insert(serializer,
self.suppress_ack);
133 insert(serializer,
self.num_descriptors);
135 for(
unsigned int i=0; i <
self.num_descriptors; i++)
136 insert(serializer,
self.descriptors[i]);
139 void extract(Serializer& serializer, PollFilterMessage&
self)
141 extract(serializer,
self.suppress_ack);
143 C::extract_count(&serializer, &
self.num_descriptors,
sizeof(
self.descriptors)/
sizeof(
self.descriptors[0]));
144 for(
unsigned int i=0; i <
self.num_descriptors; i++)
145 extract(serializer,
self.descriptors[i]);
152 Serializer serializer(buffer,
sizeof(buffer));
154 insert(serializer, suppressAck);
156 insert(serializer, numDescriptors);
158 assert(descriptors || (numDescriptors == 0));
159 for(
unsigned int i=0; i < numDescriptors; i++)
160 insert(serializer, descriptors[i]);
162 assert(serializer.isOk());
166 void insert(Serializer& serializer,
const ImuMessageFormat&
self)
168 insert(serializer,
self.
function);
170 if(
self.
function == FunctionSelector::WRITE )
172 insert(serializer,
self.num_descriptors);
174 for(
unsigned int i=0; i <
self.num_descriptors; i++)
175 insert(serializer,
self.descriptors[i]);
179 void extract(Serializer& serializer, ImuMessageFormat&
self)
181 extract(serializer,
self.
function);
183 if(
self.
function == FunctionSelector::WRITE )
185 C::extract_count(&serializer, &
self.num_descriptors,
sizeof(
self.descriptors)/
sizeof(
self.descriptors[0]));
186 for(
unsigned int i=0; i <
self.num_descriptors; i++)
187 extract(serializer,
self.descriptors[i]);
192 void insert(Serializer& serializer,
const ImuMessageFormat::Response&
self)
194 insert(serializer,
self.num_descriptors);
196 for(
unsigned int i=0; i <
self.num_descriptors; i++)
197 insert(serializer,
self.descriptors[i]);
200 void extract(Serializer& serializer, ImuMessageFormat::Response&
self)
202 C::extract_count(&serializer, &
self.num_descriptors,
sizeof(
self.descriptors)/
sizeof(
self.descriptors[0]));
203 for(
unsigned int i=0; i <
self.num_descriptors; i++)
204 extract(serializer,
self.descriptors[i]);
211 Serializer serializer(buffer,
sizeof(buffer));
213 insert(serializer, FunctionSelector::WRITE);
214 insert(serializer, numDescriptors);
216 assert(descriptors || (numDescriptors == 0));
217 for(
unsigned int i=0; i < numDescriptors; i++)
218 insert(serializer, descriptors[i]);
220 assert(serializer.isOk());
227 Serializer serializer(buffer,
sizeof(buffer));
229 insert(serializer, FunctionSelector::READ);
230 assert(serializer.isOk());
232 uint8_t responseLength =
sizeof(buffer);
237 Serializer deserializer(buffer, responseLength);
240 assert(descriptorsOut || (numDescriptorsOut == 0));
241 for(
unsigned int i=0; i < *numDescriptorsOut; i++)
242 extract(deserializer, descriptorsOut[i]);
244 if( deserializer.remaining() != 0 )
252 Serializer serializer(buffer,
sizeof(buffer));
254 insert(serializer, FunctionSelector::SAVE);
255 assert(serializer.isOk());
262 Serializer serializer(buffer,
sizeof(buffer));
264 insert(serializer, FunctionSelector::LOAD);
265 assert(serializer.isOk());
272 Serializer serializer(buffer,
sizeof(buffer));
274 insert(serializer, FunctionSelector::RESET);
275 assert(serializer.isOk());
279 void insert(Serializer& serializer,
const GpsMessageFormat&
self)
281 insert(serializer,
self.
function);
283 if(
self.
function == FunctionSelector::WRITE )
285 insert(serializer,
self.num_descriptors);
287 for(
unsigned int i=0; i <
self.num_descriptors; i++)
288 insert(serializer,
self.descriptors[i]);
292 void extract(Serializer& serializer, GpsMessageFormat&
self)
294 extract(serializer,
self.
function);
296 if(
self.
function == FunctionSelector::WRITE )
298 C::extract_count(&serializer, &
self.num_descriptors,
sizeof(
self.descriptors)/
sizeof(
self.descriptors[0]));
299 for(
unsigned int i=0; i <
self.num_descriptors; i++)
300 extract(serializer,
self.descriptors[i]);
305 void insert(Serializer& serializer,
const GpsMessageFormat::Response&
self)
307 insert(serializer,
self.num_descriptors);
309 for(
unsigned int i=0; i <
self.num_descriptors; i++)
310 insert(serializer,
self.descriptors[i]);
313 void extract(Serializer& serializer, GpsMessageFormat::Response&
self)
315 C::extract_count(&serializer, &
self.num_descriptors,
sizeof(
self.descriptors)/
sizeof(
self.descriptors[0]));
316 for(
unsigned int i=0; i <
self.num_descriptors; i++)
317 extract(serializer,
self.descriptors[i]);
324 Serializer serializer(buffer,
sizeof(buffer));
326 insert(serializer, FunctionSelector::WRITE);
327 insert(serializer, numDescriptors);
329 assert(descriptors || (numDescriptors == 0));
330 for(
unsigned int i=0; i < numDescriptors; i++)
331 insert(serializer, descriptors[i]);
333 assert(serializer.isOk());
340 Serializer serializer(buffer,
sizeof(buffer));
342 insert(serializer, FunctionSelector::READ);
343 assert(serializer.isOk());
345 uint8_t responseLength =
sizeof(buffer);
350 Serializer deserializer(buffer, responseLength);
353 assert(descriptorsOut || (numDescriptorsOut == 0));
354 for(
unsigned int i=0; i < *numDescriptorsOut; i++)
355 extract(deserializer, descriptorsOut[i]);
357 if( deserializer.remaining() != 0 )
365 Serializer serializer(buffer,
sizeof(buffer));
367 insert(serializer, FunctionSelector::SAVE);
368 assert(serializer.isOk());
375 Serializer serializer(buffer,
sizeof(buffer));
377 insert(serializer, FunctionSelector::LOAD);
378 assert(serializer.isOk());
385 Serializer serializer(buffer,
sizeof(buffer));
387 insert(serializer, FunctionSelector::RESET);
388 assert(serializer.isOk());
392 void insert(Serializer& serializer,
const FilterMessageFormat&
self)
394 insert(serializer,
self.
function);
396 if(
self.
function == FunctionSelector::WRITE )
398 insert(serializer,
self.num_descriptors);
400 for(
unsigned int i=0; i <
self.num_descriptors; i++)
401 insert(serializer,
self.descriptors[i]);
405 void extract(Serializer& serializer, FilterMessageFormat&
self)
407 extract(serializer,
self.
function);
409 if(
self.
function == FunctionSelector::WRITE )
411 C::extract_count(&serializer, &
self.num_descriptors,
sizeof(
self.descriptors)/
sizeof(
self.descriptors[0]));
412 for(
unsigned int i=0; i <
self.num_descriptors; i++)
413 extract(serializer,
self.descriptors[i]);
418 void insert(Serializer& serializer,
const FilterMessageFormat::Response&
self)
420 insert(serializer,
self.num_descriptors);
422 for(
unsigned int i=0; i <
self.num_descriptors; i++)
423 insert(serializer,
self.descriptors[i]);
426 void extract(Serializer& serializer, FilterMessageFormat::Response&
self)
428 C::extract_count(&serializer, &
self.num_descriptors,
sizeof(
self.descriptors)/
sizeof(
self.descriptors[0]));
429 for(
unsigned int i=0; i <
self.num_descriptors; i++)
430 extract(serializer,
self.descriptors[i]);
437 Serializer serializer(buffer,
sizeof(buffer));
439 insert(serializer, FunctionSelector::WRITE);
440 insert(serializer, numDescriptors);
442 assert(descriptors || (numDescriptors == 0));
443 for(
unsigned int i=0; i < numDescriptors; i++)
444 insert(serializer, descriptors[i]);
446 assert(serializer.isOk());
453 Serializer serializer(buffer,
sizeof(buffer));
455 insert(serializer, FunctionSelector::READ);
456 assert(serializer.isOk());
458 uint8_t responseLength =
sizeof(buffer);
463 Serializer deserializer(buffer, responseLength);
466 assert(descriptorsOut || (numDescriptorsOut == 0));
467 for(
unsigned int i=0; i < *numDescriptorsOut; i++)
468 extract(deserializer, descriptorsOut[i]);
470 if( deserializer.remaining() != 0 )
478 Serializer serializer(buffer,
sizeof(buffer));
480 insert(serializer, FunctionSelector::SAVE);
481 assert(serializer.isOk());
488 Serializer serializer(buffer,
sizeof(buffer));
490 insert(serializer, FunctionSelector::LOAD);
491 assert(serializer.isOk());
498 Serializer serializer(buffer,
sizeof(buffer));
500 insert(serializer, FunctionSelector::RESET);
501 assert(serializer.isOk());
505 void insert(Serializer& serializer,
const ImuGetBaseRate&
self)
510 void extract(Serializer& serializer, ImuGetBaseRate&
self)
516 void insert(Serializer& serializer,
const ImuGetBaseRate::Response&
self)
518 insert(serializer,
self.rate);
521 void extract(Serializer& serializer, ImuGetBaseRate::Response&
self)
523 extract(serializer,
self.rate);
530 uint8_t responseLength =
sizeof(buffer);
536 Serializer deserializer(buffer, responseLength);
539 extract(deserializer, *rateOut);
541 if( deserializer.remaining() != 0 )
546 void insert(Serializer& serializer,
const GpsGetBaseRate&
self)
551 void extract(Serializer& serializer, GpsGetBaseRate&
self)
557 void insert(Serializer& serializer,
const GpsGetBaseRate::Response&
self)
559 insert(serializer,
self.rate);
562 void extract(Serializer& serializer, GpsGetBaseRate::Response&
self)
564 extract(serializer,
self.rate);
571 uint8_t responseLength =
sizeof(buffer);
577 Serializer deserializer(buffer, responseLength);
580 extract(deserializer, *rateOut);
582 if( deserializer.remaining() != 0 )
587 void insert(Serializer& serializer,
const FilterGetBaseRate&
self)
592 void extract(Serializer& serializer, FilterGetBaseRate&
self)
598 void insert(Serializer& serializer,
const FilterGetBaseRate::Response&
self)
600 insert(serializer,
self.rate);
603 void extract(Serializer& serializer, FilterGetBaseRate::Response&
self)
605 extract(serializer,
self.rate);
612 uint8_t responseLength =
sizeof(buffer);
618 Serializer deserializer(buffer, responseLength);
621 extract(deserializer, *rateOut);
623 if( deserializer.remaining() != 0 )
628 void insert(Serializer& serializer,
const PollData&
self)
630 insert(serializer,
self.desc_set);
632 insert(serializer,
self.suppress_ack);
634 insert(serializer,
self.num_descriptors);
636 for(
unsigned int i=0; i <
self.num_descriptors; i++)
637 insert(serializer,
self.descriptors[i]);
640 void extract(Serializer& serializer, PollData&
self)
642 extract(serializer,
self.desc_set);
644 extract(serializer,
self.suppress_ack);
646 C::extract_count(&serializer, &
self.num_descriptors,
sizeof(
self.descriptors)/
sizeof(
self.descriptors[0]));
647 for(
unsigned int i=0; i <
self.num_descriptors; i++)
648 extract(serializer,
self.descriptors[i]);
655 Serializer serializer(buffer,
sizeof(buffer));
657 insert(serializer, descSet);
659 insert(serializer, suppressAck);
661 insert(serializer, numDescriptors);
663 assert(descriptors || (numDescriptors == 0));
664 for(
unsigned int i=0; i < numDescriptors; i++)
665 insert(serializer, descriptors[i]);
667 assert(serializer.isOk());
671 void insert(Serializer& serializer,
const GetBaseRate&
self)
673 insert(serializer,
self.desc_set);
676 void extract(Serializer& serializer, GetBaseRate&
self)
678 extract(serializer,
self.desc_set);
682 void insert(Serializer& serializer,
const GetBaseRate::Response&
self)
684 insert(serializer,
self.desc_set);
686 insert(serializer,
self.rate);
689 void extract(Serializer& serializer, GetBaseRate::Response&
self)
691 extract(serializer,
self.desc_set);
693 extract(serializer,
self.rate);
700 Serializer serializer(buffer,
sizeof(buffer));
702 insert(serializer, descSet);
704 assert(serializer.isOk());
706 uint8_t responseLength =
sizeof(buffer);
711 Serializer deserializer(buffer, responseLength);
713 extract(deserializer, descSet);
716 extract(deserializer, *rateOut);
718 if( deserializer.remaining() != 0 )
723 void insert(Serializer& serializer,
const MessageFormat&
self)
725 insert(serializer,
self.
function);
727 insert(serializer,
self.desc_set);
729 if(
self.
function == FunctionSelector::WRITE )
731 insert(serializer,
self.num_descriptors);
733 for(
unsigned int i=0; i <
self.num_descriptors; i++)
734 insert(serializer,
self.descriptors[i]);
738 void extract(Serializer& serializer, MessageFormat&
self)
740 extract(serializer,
self.
function);
742 extract(serializer,
self.desc_set);
744 if(
self.
function == FunctionSelector::WRITE )
746 C::extract_count(&serializer, &
self.num_descriptors,
sizeof(
self.descriptors)/
sizeof(
self.descriptors[0]));
747 for(
unsigned int i=0; i <
self.num_descriptors; i++)
748 extract(serializer,
self.descriptors[i]);
753 void insert(Serializer& serializer,
const MessageFormat::Response&
self)
755 insert(serializer,
self.desc_set);
757 insert(serializer,
self.num_descriptors);
759 for(
unsigned int i=0; i <
self.num_descriptors; i++)
760 insert(serializer,
self.descriptors[i]);
763 void extract(Serializer& serializer, MessageFormat::Response&
self)
765 extract(serializer,
self.desc_set);
767 C::extract_count(&serializer, &
self.num_descriptors,
sizeof(
self.descriptors)/
sizeof(
self.descriptors[0]));
768 for(
unsigned int i=0; i <
self.num_descriptors; i++)
769 extract(serializer,
self.descriptors[i]);
776 Serializer serializer(buffer,
sizeof(buffer));
778 insert(serializer, FunctionSelector::WRITE);
779 insert(serializer, descSet);
781 insert(serializer, numDescriptors);
783 assert(descriptors || (numDescriptors == 0));
784 for(
unsigned int i=0; i < numDescriptors; i++)
785 insert(serializer, descriptors[i]);
787 assert(serializer.isOk());
794 Serializer serializer(buffer,
sizeof(buffer));
796 insert(serializer, FunctionSelector::READ);
797 insert(serializer, descSet);
799 assert(serializer.isOk());
801 uint8_t responseLength =
sizeof(buffer);
806 Serializer deserializer(buffer, responseLength);
808 extract(deserializer, descSet);
811 assert(descriptorsOut || (numDescriptorsOut == 0));
812 for(
unsigned int i=0; i < *numDescriptorsOut; i++)
813 extract(deserializer, descriptorsOut[i]);
815 if( deserializer.remaining() != 0 )
823 Serializer serializer(buffer,
sizeof(buffer));
825 insert(serializer, FunctionSelector::SAVE);
826 insert(serializer, descSet);
828 assert(serializer.isOk());
835 Serializer serializer(buffer,
sizeof(buffer));
837 insert(serializer, FunctionSelector::LOAD);
838 insert(serializer, descSet);
840 assert(serializer.isOk());
847 Serializer serializer(buffer,
sizeof(buffer));
849 insert(serializer, FunctionSelector::RESET);
850 insert(serializer, descSet);
852 assert(serializer.isOk());
856 void insert(Serializer& serializer,
const NmeaPollData&
self)
858 insert(serializer,
self.suppress_ack);
860 insert(serializer,
self.count);
862 for(
unsigned int i=0; i <
self.count; i++)
863 insert(serializer,
self.format_entries[i]);
866 void extract(Serializer& serializer, NmeaPollData&
self)
868 extract(serializer,
self.suppress_ack);
870 C::extract_count(&serializer, &
self.count,
sizeof(
self.format_entries)/
sizeof(
self.format_entries[0]));
871 for(
unsigned int i=0; i <
self.count; i++)
872 extract(serializer,
self.format_entries[i]);
879 Serializer serializer(buffer,
sizeof(buffer));
881 insert(serializer, suppressAck);
883 insert(serializer, count);
885 assert(formatEntries || (count == 0));
886 for(
unsigned int i=0; i < count; i++)
887 insert(serializer, formatEntries[i]);
889 assert(serializer.isOk());
893 void insert(Serializer& serializer,
const NmeaMessageFormat&
self)
895 insert(serializer,
self.
function);
897 if(
self.
function == FunctionSelector::WRITE )
899 insert(serializer,
self.count);
901 for(
unsigned int i=0; i <
self.count; i++)
902 insert(serializer,
self.format_entries[i]);
906 void extract(Serializer& serializer, NmeaMessageFormat&
self)
908 extract(serializer,
self.
function);
910 if(
self.
function == FunctionSelector::WRITE )
912 C::extract_count(&serializer, &
self.count,
sizeof(
self.format_entries)/
sizeof(
self.format_entries[0]));
913 for(
unsigned int i=0; i <
self.count; i++)
914 extract(serializer,
self.format_entries[i]);
919 void insert(Serializer& serializer,
const NmeaMessageFormat::Response&
self)
921 insert(serializer,
self.count);
923 for(
unsigned int i=0; i <
self.count; i++)
924 insert(serializer,
self.format_entries[i]);
927 void extract(Serializer& serializer, NmeaMessageFormat::Response&
self)
929 C::extract_count(&serializer, &
self.count,
sizeof(
self.format_entries)/
sizeof(
self.format_entries[0]));
930 for(
unsigned int i=0; i <
self.count; i++)
931 extract(serializer,
self.format_entries[i]);
938 Serializer serializer(buffer,
sizeof(buffer));
940 insert(serializer, FunctionSelector::WRITE);
941 insert(serializer, count);
943 assert(formatEntries || (count == 0));
944 for(
unsigned int i=0; i < count; i++)
945 insert(serializer, formatEntries[i]);
947 assert(serializer.isOk());
954 Serializer serializer(buffer,
sizeof(buffer));
956 insert(serializer, FunctionSelector::READ);
957 assert(serializer.isOk());
959 uint8_t responseLength =
sizeof(buffer);
964 Serializer deserializer(buffer, responseLength);
967 assert(formatEntriesOut || (countOut == 0));
968 for(
unsigned int i=0; i < *countOut; i++)
969 extract(deserializer, formatEntriesOut[i]);
971 if( deserializer.remaining() != 0 )
979 Serializer serializer(buffer,
sizeof(buffer));
981 insert(serializer, FunctionSelector::SAVE);
982 assert(serializer.isOk());
989 Serializer serializer(buffer,
sizeof(buffer));
991 insert(serializer, FunctionSelector::LOAD);
992 assert(serializer.isOk());
999 Serializer serializer(buffer,
sizeof(buffer));
1001 insert(serializer, FunctionSelector::RESET);
1002 assert(serializer.isOk());
1006 void insert(Serializer& serializer,
const DeviceSettings&
self)
1008 insert(serializer,
self.
function);
1011 void extract(Serializer& serializer, DeviceSettings&
self)
1013 extract(serializer,
self.
function);
1020 Serializer serializer(buffer,
sizeof(buffer));
1022 insert(serializer, FunctionSelector::SAVE);
1023 assert(serializer.isOk());
1030 Serializer serializer(buffer,
sizeof(buffer));
1032 insert(serializer, FunctionSelector::LOAD);
1033 assert(serializer.isOk());
1040 Serializer serializer(buffer,
sizeof(buffer));
1042 insert(serializer, FunctionSelector::RESET);
1043 assert(serializer.isOk());
1047 void insert(Serializer& serializer,
const UartBaudrate&
self)
1049 insert(serializer,
self.
function);
1051 if(
self.
function == FunctionSelector::WRITE )
1053 insert(serializer,
self.baud);
1057 void extract(Serializer& serializer, UartBaudrate&
self)
1059 extract(serializer,
self.
function);
1061 if(
self.
function == FunctionSelector::WRITE )
1063 extract(serializer,
self.baud);
1068 void insert(Serializer& serializer,
const UartBaudrate::Response&
self)
1070 insert(serializer,
self.baud);
1073 void extract(Serializer& serializer, UartBaudrate::Response&
self)
1075 extract(serializer,
self.baud);
1082 Serializer serializer(buffer,
sizeof(buffer));
1084 insert(serializer, FunctionSelector::WRITE);
1085 insert(serializer, baud);
1087 assert(serializer.isOk());
1094 Serializer serializer(buffer,
sizeof(buffer));
1096 insert(serializer, FunctionSelector::READ);
1097 assert(serializer.isOk());
1099 uint8_t responseLength =
sizeof(buffer);
1104 Serializer deserializer(buffer, responseLength);
1107 extract(deserializer, *baudOut);
1109 if( deserializer.remaining() != 0 )
1117 Serializer serializer(buffer,
sizeof(buffer));
1119 insert(serializer, FunctionSelector::SAVE);
1120 assert(serializer.isOk());
1127 Serializer serializer(buffer,
sizeof(buffer));
1129 insert(serializer, FunctionSelector::LOAD);
1130 assert(serializer.isOk());
1137 Serializer serializer(buffer,
sizeof(buffer));
1139 insert(serializer, FunctionSelector::RESET);
1140 assert(serializer.isOk());
1144 void insert(Serializer& serializer,
const FactoryStreaming&
self)
1146 insert(serializer,
self.action);
1148 insert(serializer,
self.reserved);
1151 void extract(Serializer& serializer, FactoryStreaming&
self)
1153 extract(serializer,
self.action);
1155 extract(serializer,
self.reserved);
1162 Serializer serializer(buffer,
sizeof(buffer));
1164 insert(serializer, action);
1166 insert(serializer, reserved);
1168 assert(serializer.isOk());
1172 void insert(Serializer& serializer,
const DatastreamControl&
self)
1174 insert(serializer,
self.
function);
1176 insert(serializer,
self.desc_set);
1178 if(
self.
function == FunctionSelector::WRITE )
1180 insert(serializer,
self.enable);
1184 void extract(Serializer& serializer, DatastreamControl&
self)
1186 extract(serializer,
self.
function);
1188 extract(serializer,
self.desc_set);
1190 if(
self.
function == FunctionSelector::WRITE )
1192 extract(serializer,
self.enable);
1197 void insert(Serializer& serializer,
const DatastreamControl::Response&
self)
1199 insert(serializer,
self.desc_set);
1201 insert(serializer,
self.enabled);
1204 void extract(Serializer& serializer, DatastreamControl::Response&
self)
1206 extract(serializer,
self.desc_set);
1208 extract(serializer,
self.enabled);
1215 Serializer serializer(buffer,
sizeof(buffer));
1217 insert(serializer, FunctionSelector::WRITE);
1218 insert(serializer, descSet);
1220 insert(serializer, enable);
1222 assert(serializer.isOk());
1229 Serializer serializer(buffer,
sizeof(buffer));
1231 insert(serializer, FunctionSelector::READ);
1232 insert(serializer, descSet);
1234 assert(serializer.isOk());
1236 uint8_t responseLength =
sizeof(buffer);
1241 Serializer deserializer(buffer, responseLength);
1243 extract(deserializer, descSet);
1246 extract(deserializer, *enabledOut);
1248 if( deserializer.remaining() != 0 )
1256 Serializer serializer(buffer,
sizeof(buffer));
1258 insert(serializer, FunctionSelector::SAVE);
1259 insert(serializer, descSet);
1261 assert(serializer.isOk());
1268 Serializer serializer(buffer,
sizeof(buffer));
1270 insert(serializer, FunctionSelector::LOAD);
1271 insert(serializer, descSet);
1273 assert(serializer.isOk());
1280 Serializer serializer(buffer,
sizeof(buffer));
1282 insert(serializer, FunctionSelector::RESET);
1283 insert(serializer, descSet);
1285 assert(serializer.isOk());
1289 void insert(Serializer& serializer,
const ConstellationSettings&
self)
1291 insert(serializer,
self.
function);
1293 if(
self.
function == FunctionSelector::WRITE )
1295 insert(serializer,
self.max_channels);
1297 insert(serializer,
self.config_count);
1299 for(
unsigned int i=0; i <
self.config_count; i++)
1300 insert(serializer,
self.settings[i]);
1304 void extract(Serializer& serializer, ConstellationSettings&
self)
1306 extract(serializer,
self.
function);
1308 if(
self.
function == FunctionSelector::WRITE )
1310 extract(serializer,
self.max_channels);
1312 C::extract_count(&serializer, &
self.config_count,
sizeof(
self.settings)/
sizeof(
self.settings[0]));
1313 for(
unsigned int i=0; i <
self.config_count; i++)
1314 extract(serializer,
self.settings[i]);
1319 void insert(Serializer& serializer,
const ConstellationSettings::Response&
self)
1321 insert(serializer,
self.max_channels_available);
1323 insert(serializer,
self.max_channels_use);
1325 insert(serializer,
self.config_count);
1327 for(
unsigned int i=0; i <
self.config_count; i++)
1328 insert(serializer,
self.settings[i]);
1331 void extract(Serializer& serializer, ConstellationSettings::Response&
self)
1333 extract(serializer,
self.max_channels_available);
1335 extract(serializer,
self.max_channels_use);
1337 C::extract_count(&serializer, &
self.config_count,
sizeof(
self.settings)/
sizeof(
self.settings[0]));
1338 for(
unsigned int i=0; i <
self.config_count; i++)
1339 extract(serializer,
self.settings[i]);
1343 void insert(Serializer& serializer,
const ConstellationSettings::Settings&
self)
1345 insert(serializer,
self.constellation_id);
1347 insert(serializer,
self.enable);
1349 insert(serializer,
self.reserved_channels);
1351 insert(serializer,
self.max_channels);
1353 insert(serializer,
self.option_flags);
1356 void extract(Serializer& serializer, ConstellationSettings::Settings&
self)
1358 extract(serializer,
self.constellation_id);
1360 extract(serializer,
self.enable);
1362 extract(serializer,
self.reserved_channels);
1364 extract(serializer,
self.max_channels);
1366 extract(serializer,
self.option_flags);
1373 Serializer serializer(buffer,
sizeof(buffer));
1375 insert(serializer, FunctionSelector::WRITE);
1376 insert(serializer, maxChannels);
1378 insert(serializer, configCount);
1380 assert(settings || (configCount == 0));
1381 for(
unsigned int i=0; i < configCount; i++)
1382 insert(serializer, settings[i]);
1384 assert(serializer.isOk());
1391 Serializer serializer(buffer,
sizeof(buffer));
1393 insert(serializer, FunctionSelector::READ);
1394 assert(serializer.isOk());
1396 uint8_t responseLength =
sizeof(buffer);
1401 Serializer deserializer(buffer, responseLength);
1403 assert(maxChannelsAvailableOut);
1404 extract(deserializer, *maxChannelsAvailableOut);
1406 assert(maxChannelsUseOut);
1407 extract(deserializer, *maxChannelsUseOut);
1410 assert(settingsOut || (configCountOut == 0));
1411 for(
unsigned int i=0; i < *configCountOut; i++)
1412 extract(deserializer, settingsOut[i]);
1414 if( deserializer.remaining() != 0 )
1422 Serializer serializer(buffer,
sizeof(buffer));
1424 insert(serializer, FunctionSelector::SAVE);
1425 assert(serializer.isOk());
1432 Serializer serializer(buffer,
sizeof(buffer));
1434 insert(serializer, FunctionSelector::LOAD);
1435 assert(serializer.isOk());
1442 Serializer serializer(buffer,
sizeof(buffer));
1444 insert(serializer, FunctionSelector::RESET);
1445 assert(serializer.isOk());
1449 void insert(Serializer& serializer,
const GnssSbasSettings&
self)
1451 insert(serializer,
self.
function);
1453 if(
self.
function == FunctionSelector::WRITE )
1455 insert(serializer,
self.enable_sbas);
1457 insert(serializer,
self.sbas_options);
1459 insert(serializer,
self.num_included_prns);
1461 for(
unsigned int i=0; i <
self.num_included_prns; i++)
1462 insert(serializer,
self.included_prns[i]);
1466 void extract(Serializer& serializer, GnssSbasSettings&
self)
1468 extract(serializer,
self.
function);
1470 if(
self.
function == FunctionSelector::WRITE )
1472 extract(serializer,
self.enable_sbas);
1474 extract(serializer,
self.sbas_options);
1476 C::extract_count(&serializer, &
self.num_included_prns,
sizeof(
self.included_prns)/
sizeof(
self.included_prns[0]));
1477 for(
unsigned int i=0; i <
self.num_included_prns; i++)
1478 extract(serializer,
self.included_prns[i]);
1483 void insert(Serializer& serializer,
const GnssSbasSettings::Response&
self)
1485 insert(serializer,
self.enable_sbas);
1487 insert(serializer,
self.sbas_options);
1489 insert(serializer,
self.num_included_prns);
1491 for(
unsigned int i=0; i <
self.num_included_prns; i++)
1492 insert(serializer,
self.included_prns[i]);
1495 void extract(Serializer& serializer, GnssSbasSettings::Response&
self)
1497 extract(serializer,
self.enable_sbas);
1499 extract(serializer,
self.sbas_options);
1501 C::extract_count(&serializer, &
self.num_included_prns,
sizeof(
self.included_prns)/
sizeof(
self.included_prns[0]));
1502 for(
unsigned int i=0; i <
self.num_included_prns; i++)
1503 extract(serializer,
self.included_prns[i]);
1510 Serializer serializer(buffer,
sizeof(buffer));
1512 insert(serializer, FunctionSelector::WRITE);
1513 insert(serializer, enableSbas);
1515 insert(serializer, sbasOptions);
1517 insert(serializer, numIncludedPrns);
1519 assert(includedPrns || (numIncludedPrns == 0));
1520 for(
unsigned int i=0; i < numIncludedPrns; i++)
1521 insert(serializer, includedPrns[i]);
1523 assert(serializer.isOk());
1527 TypedResult<GnssSbasSettings>
readGnssSbasSettings(
C::mip_interface&
device, uint8_t* enableSbasOut, GnssSbasSettings::SBASOptions* sbasOptionsOut, uint8_t* numIncludedPrnsOut, uint8_t numIncludedPrnsOutMax, uint16_t* includedPrnsOut)
1530 Serializer serializer(buffer,
sizeof(buffer));
1532 insert(serializer, FunctionSelector::READ);
1533 assert(serializer.isOk());
1535 uint8_t responseLength =
sizeof(buffer);
1540 Serializer deserializer(buffer, responseLength);
1542 assert(enableSbasOut);
1543 extract(deserializer, *enableSbasOut);
1545 assert(sbasOptionsOut);
1546 extract(deserializer, *sbasOptionsOut);
1548 C::extract_count(&deserializer, numIncludedPrnsOut, numIncludedPrnsOutMax);
1549 assert(includedPrnsOut || (numIncludedPrnsOut == 0));
1550 for(
unsigned int i=0; i < *numIncludedPrnsOut; i++)
1551 extract(deserializer, includedPrnsOut[i]);
1553 if( deserializer.remaining() != 0 )
1561 Serializer serializer(buffer,
sizeof(buffer));
1563 insert(serializer, FunctionSelector::SAVE);
1564 assert(serializer.isOk());
1571 Serializer serializer(buffer,
sizeof(buffer));
1573 insert(serializer, FunctionSelector::LOAD);
1574 assert(serializer.isOk());
1581 Serializer serializer(buffer,
sizeof(buffer));
1583 insert(serializer, FunctionSelector::RESET);
1584 assert(serializer.isOk());
1588 void insert(Serializer& serializer,
const GnssAssistedFix&
self)
1590 insert(serializer,
self.
function);
1592 if(
self.
function == FunctionSelector::WRITE )
1594 insert(serializer,
self.option);
1596 insert(serializer,
self.flags);
1600 void extract(Serializer& serializer, GnssAssistedFix&
self)
1602 extract(serializer,
self.
function);
1604 if(
self.
function == FunctionSelector::WRITE )
1606 extract(serializer,
self.option);
1608 extract(serializer,
self.flags);
1613 void insert(Serializer& serializer,
const GnssAssistedFix::Response&
self)
1615 insert(serializer,
self.option);
1617 insert(serializer,
self.flags);
1620 void extract(Serializer& serializer, GnssAssistedFix::Response&
self)
1622 extract(serializer,
self.option);
1624 extract(serializer,
self.flags);
1631 Serializer serializer(buffer,
sizeof(buffer));
1633 insert(serializer, FunctionSelector::WRITE);
1634 insert(serializer, option);
1636 insert(serializer, flags);
1638 assert(serializer.isOk());
1645 Serializer serializer(buffer,
sizeof(buffer));
1647 insert(serializer, FunctionSelector::READ);
1648 assert(serializer.isOk());
1650 uint8_t responseLength =
sizeof(buffer);
1655 Serializer deserializer(buffer, responseLength);
1658 extract(deserializer, *optionOut);
1661 extract(deserializer, *flagsOut);
1663 if( deserializer.remaining() != 0 )
1671 Serializer serializer(buffer,
sizeof(buffer));
1673 insert(serializer, FunctionSelector::SAVE);
1674 assert(serializer.isOk());
1681 Serializer serializer(buffer,
sizeof(buffer));
1683 insert(serializer, FunctionSelector::LOAD);
1684 assert(serializer.isOk());
1691 Serializer serializer(buffer,
sizeof(buffer));
1693 insert(serializer, FunctionSelector::RESET);
1694 assert(serializer.isOk());
1698 void insert(Serializer& serializer,
const GnssTimeAssistance&
self)
1700 insert(serializer,
self.
function);
1702 if(
self.
function == FunctionSelector::WRITE )
1704 insert(serializer,
self.tow);
1706 insert(serializer,
self.week_number);
1708 insert(serializer,
self.accuracy);
1712 void extract(Serializer& serializer, GnssTimeAssistance&
self)
1714 extract(serializer,
self.
function);
1716 if(
self.
function == FunctionSelector::WRITE )
1718 extract(serializer,
self.tow);
1720 extract(serializer,
self.week_number);
1722 extract(serializer,
self.accuracy);
1727 void insert(Serializer& serializer,
const GnssTimeAssistance::Response&
self)
1729 insert(serializer,
self.tow);
1731 insert(serializer,
self.week_number);
1733 insert(serializer,
self.accuracy);
1736 void extract(Serializer& serializer, GnssTimeAssistance::Response&
self)
1738 extract(serializer,
self.tow);
1740 extract(serializer,
self.week_number);
1742 extract(serializer,
self.accuracy);
1749 Serializer serializer(buffer,
sizeof(buffer));
1751 insert(serializer, FunctionSelector::WRITE);
1754 insert(serializer, weekNumber);
1756 insert(serializer, accuracy);
1758 assert(serializer.isOk());
1765 Serializer serializer(buffer,
sizeof(buffer));
1767 insert(serializer, FunctionSelector::READ);
1768 assert(serializer.isOk());
1770 uint8_t responseLength =
sizeof(buffer);
1775 Serializer deserializer(buffer, responseLength);
1778 extract(deserializer, *towOut);
1780 assert(weekNumberOut);
1781 extract(deserializer, *weekNumberOut);
1783 assert(accuracyOut);
1784 extract(deserializer, *accuracyOut);
1786 if( deserializer.remaining() != 0 )
1791 void insert(Serializer& serializer,
const ImuLowpassFilter&
self)
1793 insert(serializer,
self.
function);
1795 insert(serializer,
self.target_descriptor);
1797 if(
self.
function == FunctionSelector::WRITE )
1799 insert(serializer,
self.enable);
1801 insert(serializer,
self.manual);
1803 insert(serializer,
self.frequency);
1805 insert(serializer,
self.reserved);
1809 void extract(Serializer& serializer, ImuLowpassFilter&
self)
1811 extract(serializer,
self.
function);
1813 extract(serializer,
self.target_descriptor);
1815 if(
self.
function == FunctionSelector::WRITE )
1817 extract(serializer,
self.enable);
1819 extract(serializer,
self.manual);
1821 extract(serializer,
self.frequency);
1823 extract(serializer,
self.reserved);
1828 void insert(Serializer& serializer,
const ImuLowpassFilter::Response&
self)
1830 insert(serializer,
self.target_descriptor);
1832 insert(serializer,
self.enable);
1834 insert(serializer,
self.manual);
1836 insert(serializer,
self.frequency);
1838 insert(serializer,
self.reserved);
1841 void extract(Serializer& serializer, ImuLowpassFilter::Response&
self)
1843 extract(serializer,
self.target_descriptor);
1845 extract(serializer,
self.enable);
1847 extract(serializer,
self.manual);
1849 extract(serializer,
self.frequency);
1851 extract(serializer,
self.reserved);
1858 Serializer serializer(buffer,
sizeof(buffer));
1860 insert(serializer, FunctionSelector::WRITE);
1861 insert(serializer, targetDescriptor);
1863 insert(serializer, enable);
1865 insert(serializer, manual);
1867 insert(serializer, frequency);
1869 insert(serializer, reserved);
1871 assert(serializer.isOk());
1878 Serializer serializer(buffer,
sizeof(buffer));
1880 insert(serializer, FunctionSelector::READ);
1881 insert(serializer, targetDescriptor);
1883 assert(serializer.isOk());
1885 uint8_t responseLength =
sizeof(buffer);
1890 Serializer deserializer(buffer, responseLength);
1892 extract(deserializer, targetDescriptor);
1895 extract(deserializer, *enableOut);
1898 extract(deserializer, *manualOut);
1900 assert(frequencyOut);
1901 extract(deserializer, *frequencyOut);
1903 assert(reservedOut);
1904 extract(deserializer, *reservedOut);
1906 if( deserializer.remaining() != 0 )
1914 Serializer serializer(buffer,
sizeof(buffer));
1916 insert(serializer, FunctionSelector::SAVE);
1917 insert(serializer, targetDescriptor);
1919 assert(serializer.isOk());
1926 Serializer serializer(buffer,
sizeof(buffer));
1928 insert(serializer, FunctionSelector::LOAD);
1929 insert(serializer, targetDescriptor);
1931 assert(serializer.isOk());
1938 Serializer serializer(buffer,
sizeof(buffer));
1940 insert(serializer, FunctionSelector::RESET);
1941 insert(serializer, targetDescriptor);
1943 assert(serializer.isOk());
1947 void insert(Serializer& serializer,
const PpsSource&
self)
1949 insert(serializer,
self.
function);
1951 if(
self.
function == FunctionSelector::WRITE )
1953 insert(serializer,
self.source);
1957 void extract(Serializer& serializer, PpsSource&
self)
1959 extract(serializer,
self.
function);
1961 if(
self.
function == FunctionSelector::WRITE )
1963 extract(serializer,
self.source);
1968 void insert(Serializer& serializer,
const PpsSource::Response&
self)
1970 insert(serializer,
self.source);
1973 void extract(Serializer& serializer, PpsSource::Response&
self)
1975 extract(serializer,
self.source);
1982 Serializer serializer(buffer,
sizeof(buffer));
1984 insert(serializer, FunctionSelector::WRITE);
1985 insert(serializer, source);
1987 assert(serializer.isOk());
1994 Serializer serializer(buffer,
sizeof(buffer));
1996 insert(serializer, FunctionSelector::READ);
1997 assert(serializer.isOk());
1999 uint8_t responseLength =
sizeof(buffer);
2004 Serializer deserializer(buffer, responseLength);
2007 extract(deserializer, *sourceOut);
2009 if( deserializer.remaining() != 0 )
2017 Serializer serializer(buffer,
sizeof(buffer));
2019 insert(serializer, FunctionSelector::SAVE);
2020 assert(serializer.isOk());
2027 Serializer serializer(buffer,
sizeof(buffer));
2029 insert(serializer, FunctionSelector::LOAD);
2030 assert(serializer.isOk());
2037 Serializer serializer(buffer,
sizeof(buffer));
2039 insert(serializer, FunctionSelector::RESET);
2040 assert(serializer.isOk());
2044 void insert(Serializer& serializer,
const GpioConfig&
self)
2046 insert(serializer,
self.
function);
2048 insert(serializer,
self.pin);
2050 if(
self.
function == FunctionSelector::WRITE )
2052 insert(serializer,
self.feature);
2054 insert(serializer,
self.behavior);
2056 insert(serializer,
self.pin_mode);
2060 void extract(Serializer& serializer, GpioConfig&
self)
2062 extract(serializer,
self.
function);
2064 extract(serializer,
self.pin);
2066 if(
self.
function == FunctionSelector::WRITE )
2068 extract(serializer,
self.feature);
2070 extract(serializer,
self.behavior);
2072 extract(serializer,
self.pin_mode);
2077 void insert(Serializer& serializer,
const GpioConfig::Response&
self)
2079 insert(serializer,
self.pin);
2081 insert(serializer,
self.feature);
2083 insert(serializer,
self.behavior);
2085 insert(serializer,
self.pin_mode);
2088 void extract(Serializer& serializer, GpioConfig::Response&
self)
2090 extract(serializer,
self.pin);
2092 extract(serializer,
self.feature);
2094 extract(serializer,
self.behavior);
2096 extract(serializer,
self.pin_mode);
2103 Serializer serializer(buffer,
sizeof(buffer));
2105 insert(serializer, FunctionSelector::WRITE);
2108 insert(serializer, feature);
2110 insert(serializer, behavior);
2112 insert(serializer, pinMode);
2114 assert(serializer.isOk());
2121 Serializer serializer(buffer,
sizeof(buffer));
2123 insert(serializer, FunctionSelector::READ);
2126 assert(serializer.isOk());
2128 uint8_t responseLength =
sizeof(buffer);
2133 Serializer deserializer(buffer, responseLength);
2138 extract(deserializer, *featureOut);
2140 assert(behaviorOut);
2141 extract(deserializer, *behaviorOut);
2144 extract(deserializer, *pinModeOut);
2146 if( deserializer.remaining() != 0 )
2154 Serializer serializer(buffer,
sizeof(buffer));
2156 insert(serializer, FunctionSelector::SAVE);
2159 assert(serializer.isOk());
2166 Serializer serializer(buffer,
sizeof(buffer));
2168 insert(serializer, FunctionSelector::LOAD);
2171 assert(serializer.isOk());
2178 Serializer serializer(buffer,
sizeof(buffer));
2180 insert(serializer, FunctionSelector::RESET);
2183 assert(serializer.isOk());
2187 void insert(Serializer& serializer,
const GpioState&
self)
2189 insert(serializer,
self.
function);
2191 if(
self.
function == FunctionSelector::WRITE ||
self.
function == FunctionSelector::READ )
2193 insert(serializer,
self.pin);
2196 if(
self.
function == FunctionSelector::WRITE )
2198 insert(serializer,
self.state);
2202 void extract(Serializer& serializer, GpioState&
self)
2204 extract(serializer,
self.
function);
2206 if(
self.
function == FunctionSelector::WRITE ||
self.
function == FunctionSelector::READ )
2208 extract(serializer,
self.pin);
2211 if(
self.
function == FunctionSelector::WRITE )
2213 extract(serializer,
self.state);
2218 void insert(Serializer& serializer,
const GpioState::Response&
self)
2220 insert(serializer,
self.pin);
2222 insert(serializer,
self.state);
2225 void extract(Serializer& serializer, GpioState::Response&
self)
2227 extract(serializer,
self.pin);
2229 extract(serializer,
self.state);
2236 Serializer serializer(buffer,
sizeof(buffer));
2238 insert(serializer, FunctionSelector::WRITE);
2241 insert(serializer, state);
2243 assert(serializer.isOk());
2250 Serializer serializer(buffer,
sizeof(buffer));
2252 insert(serializer, FunctionSelector::READ);
2255 assert(serializer.isOk());
2257 uint8_t responseLength =
sizeof(buffer);
2262 Serializer deserializer(buffer, responseLength);
2267 extract(deserializer, *stateOut);
2269 if( deserializer.remaining() != 0 )
2274 void insert(Serializer& serializer,
const Odometer&
self)
2276 insert(serializer,
self.
function);
2278 if(
self.
function == FunctionSelector::WRITE )
2280 insert(serializer,
self.mode);
2282 insert(serializer,
self.scaling);
2284 insert(serializer,
self.uncertainty);
2288 void extract(Serializer& serializer, Odometer&
self)
2290 extract(serializer,
self.
function);
2292 if(
self.
function == FunctionSelector::WRITE )
2294 extract(serializer,
self.mode);
2296 extract(serializer,
self.scaling);
2298 extract(serializer,
self.uncertainty);
2303 void insert(Serializer& serializer,
const Odometer::Response&
self)
2305 insert(serializer,
self.mode);
2307 insert(serializer,
self.scaling);
2309 insert(serializer,
self.uncertainty);
2312 void extract(Serializer& serializer, Odometer::Response&
self)
2314 extract(serializer,
self.mode);
2316 extract(serializer,
self.scaling);
2318 extract(serializer,
self.uncertainty);
2325 Serializer serializer(buffer,
sizeof(buffer));
2327 insert(serializer, FunctionSelector::WRITE);
2328 insert(serializer, mode);
2330 insert(serializer, scaling);
2332 insert(serializer, uncertainty);
2334 assert(serializer.isOk());
2341 Serializer serializer(buffer,
sizeof(buffer));
2343 insert(serializer, FunctionSelector::READ);
2344 assert(serializer.isOk());
2346 uint8_t responseLength =
sizeof(buffer);
2351 Serializer deserializer(buffer, responseLength);
2354 extract(deserializer, *modeOut);
2357 extract(deserializer, *scalingOut);
2359 assert(uncertaintyOut);
2360 extract(deserializer, *uncertaintyOut);
2362 if( deserializer.remaining() != 0 )
2370 Serializer serializer(buffer,
sizeof(buffer));
2372 insert(serializer, FunctionSelector::SAVE);
2373 assert(serializer.isOk());
2380 Serializer serializer(buffer,
sizeof(buffer));
2382 insert(serializer, FunctionSelector::LOAD);
2383 assert(serializer.isOk());
2390 Serializer serializer(buffer,
sizeof(buffer));
2392 insert(serializer, FunctionSelector::RESET);
2393 assert(serializer.isOk());
2397 void insert(Serializer& serializer,
const GetEventSupport&
self)
2399 insert(serializer,
self.query);
2402 void extract(Serializer& serializer, GetEventSupport&
self)
2404 extract(serializer,
self.query);
2408 void insert(Serializer& serializer,
const GetEventSupport::Response&
self)
2410 insert(serializer,
self.query);
2412 insert(serializer,
self.max_instances);
2414 insert(serializer,
self.num_entries);
2416 for(
unsigned int i=0; i <
self.num_entries; i++)
2417 insert(serializer,
self.entries[i]);
2420 void extract(Serializer& serializer, GetEventSupport::Response&
self)
2422 extract(serializer,
self.query);
2424 extract(serializer,
self.max_instances);
2426 C::extract_count(&serializer, &
self.num_entries,
sizeof(
self.entries)/
sizeof(
self.entries[0]));
2427 for(
unsigned int i=0; i <
self.num_entries; i++)
2428 extract(serializer,
self.entries[i]);
2432 void insert(Serializer& serializer,
const GetEventSupport::Info&
self)
2434 insert(serializer,
self.type);
2436 insert(serializer,
self.count);
2439 void extract(Serializer& serializer, GetEventSupport::Info&
self)
2441 extract(serializer,
self.type);
2443 extract(serializer,
self.count);
2447 TypedResult<GetEventSupport>
getEventSupport(
C::mip_interface&
device, GetEventSupport::Query query, uint8_t* maxInstancesOut, uint8_t* numEntriesOut, uint8_t numEntriesOutMax, GetEventSupport::Info* entriesOut)
2450 Serializer serializer(buffer,
sizeof(buffer));
2452 insert(serializer, query);
2454 assert(serializer.isOk());
2456 uint8_t responseLength =
sizeof(buffer);
2461 Serializer deserializer(buffer, responseLength);
2465 assert(maxInstancesOut);
2466 extract(deserializer, *maxInstancesOut);
2469 assert(entriesOut || (numEntriesOut == 0));
2470 for(
unsigned int i=0; i < *numEntriesOut; i++)
2471 extract(deserializer, entriesOut[i]);
2473 if( deserializer.remaining() != 0 )
2478 void insert(Serializer& serializer,
const EventControl&
self)
2480 insert(serializer,
self.
function);
2482 insert(serializer,
self.instance);
2484 if(
self.
function == FunctionSelector::WRITE )
2486 insert(serializer,
self.mode);
2490 void extract(Serializer& serializer, EventControl&
self)
2492 extract(serializer,
self.
function);
2494 extract(serializer,
self.instance);
2496 if(
self.
function == FunctionSelector::WRITE )
2498 extract(serializer,
self.mode);
2503 void insert(Serializer& serializer,
const EventControl::Response&
self)
2505 insert(serializer,
self.instance);
2507 insert(serializer,
self.mode);
2510 void extract(Serializer& serializer, EventControl::Response&
self)
2512 extract(serializer,
self.instance);
2514 extract(serializer,
self.mode);
2521 Serializer serializer(buffer,
sizeof(buffer));
2523 insert(serializer, FunctionSelector::WRITE);
2524 insert(serializer, instance);
2526 insert(serializer, mode);
2528 assert(serializer.isOk());
2535 Serializer serializer(buffer,
sizeof(buffer));
2537 insert(serializer, FunctionSelector::READ);
2538 insert(serializer, instance);
2540 assert(serializer.isOk());
2542 uint8_t responseLength =
sizeof(buffer);
2547 Serializer deserializer(buffer, responseLength);
2549 extract(deserializer, instance);
2552 extract(deserializer, *modeOut);
2554 if( deserializer.remaining() != 0 )
2562 Serializer serializer(buffer,
sizeof(buffer));
2564 insert(serializer, FunctionSelector::SAVE);
2565 insert(serializer, instance);
2567 assert(serializer.isOk());
2574 Serializer serializer(buffer,
sizeof(buffer));
2576 insert(serializer, FunctionSelector::LOAD);
2577 insert(serializer, instance);
2579 assert(serializer.isOk());
2586 Serializer serializer(buffer,
sizeof(buffer));
2588 insert(serializer, FunctionSelector::RESET);
2589 insert(serializer, instance);
2591 assert(serializer.isOk());
2595 void insert(Serializer& serializer,
const GetEventTriggerStatus&
self)
2597 insert(serializer,
self.requested_count);
2599 for(
unsigned int i=0; i <
self.requested_count; i++)
2600 insert(serializer,
self.requested_instances[i]);
2603 void extract(Serializer& serializer, GetEventTriggerStatus&
self)
2605 C::extract_count(&serializer, &
self.requested_count,
sizeof(
self.requested_instances)/
sizeof(
self.requested_instances[0]));
2606 for(
unsigned int i=0; i <
self.requested_count; i++)
2607 extract(serializer,
self.requested_instances[i]);
2611 void insert(Serializer& serializer,
const GetEventTriggerStatus::Response&
self)
2613 insert(serializer,
self.count);
2615 for(
unsigned int i=0; i <
self.count; i++)
2616 insert(serializer,
self.triggers[i]);
2619 void extract(Serializer& serializer, GetEventTriggerStatus::Response&
self)
2621 C::extract_count(&serializer, &
self.count,
sizeof(
self.triggers)/
sizeof(
self.triggers[0]));
2622 for(
unsigned int i=0; i <
self.count; i++)
2623 extract(serializer,
self.triggers[i]);
2627 void insert(Serializer& serializer,
const GetEventTriggerStatus::Entry&
self)
2629 insert(serializer,
self.type);
2634 void extract(Serializer& serializer, GetEventTriggerStatus::Entry&
self)
2636 extract(serializer,
self.type);
2645 Serializer serializer(buffer,
sizeof(buffer));
2647 insert(serializer, requestedCount);
2649 assert(requestedInstances || (requestedCount == 0));
2650 for(
unsigned int i=0; i < requestedCount; i++)
2651 insert(serializer, requestedInstances[i]);
2653 assert(serializer.isOk());
2655 uint8_t responseLength =
sizeof(buffer);
2660 Serializer deserializer(buffer, responseLength);
2663 assert(triggersOut || (countOut == 0));
2664 for(
unsigned int i=0; i < *countOut; i++)
2665 extract(deserializer, triggersOut[i]);
2667 if( deserializer.remaining() != 0 )
2672 void insert(Serializer& serializer,
const GetEventActionStatus&
self)
2674 insert(serializer,
self.requested_count);
2676 for(
unsigned int i=0; i <
self.requested_count; i++)
2677 insert(serializer,
self.requested_instances[i]);
2680 void extract(Serializer& serializer, GetEventActionStatus&
self)
2682 C::extract_count(&serializer, &
self.requested_count,
sizeof(
self.requested_instances)/
sizeof(
self.requested_instances[0]));
2683 for(
unsigned int i=0; i <
self.requested_count; i++)
2684 extract(serializer,
self.requested_instances[i]);
2688 void insert(Serializer& serializer,
const GetEventActionStatus::Response&
self)
2690 insert(serializer,
self.count);
2692 for(
unsigned int i=0; i <
self.count; i++)
2693 insert(serializer,
self.actions[i]);
2696 void extract(Serializer& serializer, GetEventActionStatus::Response&
self)
2698 C::extract_count(&serializer, &
self.count,
sizeof(
self.actions)/
sizeof(
self.actions[0]));
2699 for(
unsigned int i=0; i <
self.count; i++)
2700 extract(serializer,
self.actions[i]);
2704 void insert(Serializer& serializer,
const GetEventActionStatus::Entry&
self)
2706 insert(serializer,
self.action_type);
2708 insert(serializer,
self.trigger_id);
2711 void extract(Serializer& serializer, GetEventActionStatus::Entry&
self)
2713 extract(serializer,
self.action_type);
2715 extract(serializer,
self.trigger_id);
2722 Serializer serializer(buffer,
sizeof(buffer));
2724 insert(serializer, requestedCount);
2726 assert(requestedInstances || (requestedCount == 0));
2727 for(
unsigned int i=0; i < requestedCount; i++)
2728 insert(serializer, requestedInstances[i]);
2730 assert(serializer.isOk());
2732 uint8_t responseLength =
sizeof(buffer);
2737 Serializer deserializer(buffer, responseLength);
2740 assert(actionsOut || (countOut == 0));
2741 for(
unsigned int i=0; i < *countOut; i++)
2742 extract(deserializer, actionsOut[i]);
2744 if( deserializer.remaining() != 0 )
2749 void insert(Serializer& serializer,
const EventTrigger&
self)
2751 insert(serializer,
self.
function);
2753 insert(serializer,
self.instance);
2755 if(
self.
function == FunctionSelector::WRITE )
2757 insert(serializer,
self.type);
2759 if(
self.type == EventTrigger::Type::GPIO )
2761 insert(serializer,
self.parameters.gpio);
2764 if(
self.type == EventTrigger::Type::THRESHOLD )
2766 insert(serializer,
self.parameters.threshold);
2769 if(
self.type == EventTrigger::Type::COMBINATION )
2771 insert(serializer,
self.parameters.combination);
2776 void extract(Serializer& serializer, EventTrigger&
self)
2778 extract(serializer,
self.
function);
2780 extract(serializer,
self.instance);
2782 if(
self.
function == FunctionSelector::WRITE )
2784 extract(serializer,
self.type);
2786 if(
self.type == EventTrigger::Type::GPIO )
2788 extract(serializer,
self.parameters.gpio);
2791 if(
self.type == EventTrigger::Type::THRESHOLD )
2793 extract(serializer,
self.parameters.threshold);
2796 if(
self.type == EventTrigger::Type::COMBINATION )
2798 extract(serializer,
self.parameters.combination);
2804 void insert(Serializer& serializer,
const EventTrigger::Response&
self)
2806 insert(serializer,
self.instance);
2808 insert(serializer,
self.type);
2810 if(
self.type == EventTrigger::Type::GPIO )
2812 insert(serializer,
self.parameters.gpio);
2815 if(
self.type == EventTrigger::Type::THRESHOLD )
2817 insert(serializer,
self.parameters.threshold);
2820 if(
self.type == EventTrigger::Type::COMBINATION )
2822 insert(serializer,
self.parameters.combination);
2826 void extract(Serializer& serializer, EventTrigger::Response&
self)
2828 extract(serializer,
self.instance);
2830 extract(serializer,
self.type);
2832 if(
self.type == EventTrigger::Type::GPIO )
2834 extract(serializer,
self.parameters.gpio);
2837 if(
self.type == EventTrigger::Type::THRESHOLD )
2839 extract(serializer,
self.parameters.threshold);
2842 if(
self.type == EventTrigger::Type::COMBINATION )
2844 extract(serializer,
self.parameters.combination);
2849 void insert(Serializer& serializer,
const EventTrigger::GpioParams&
self)
2851 insert(serializer,
self.pin);
2853 insert(serializer,
self.mode);
2856 void extract(Serializer& serializer, EventTrigger::GpioParams&
self)
2858 extract(serializer,
self.pin);
2860 extract(serializer,
self.mode);
2864 void insert(Serializer& serializer,
const EventTrigger::ThresholdParams&
self)
2866 insert(serializer,
self.desc_set);
2868 insert(serializer,
self.field_desc);
2870 insert(serializer,
self.param_id);
2872 insert(serializer,
self.type);
2874 if(
self.type == EventTrigger::ThresholdParams::Type::WINDOW )
2876 insert(serializer,
self.low_thres);
2879 if(
self.type == EventTrigger::ThresholdParams::Type::INTERVAL )
2881 insert(serializer,
self.int_thres);
2884 if(
self.type == EventTrigger::ThresholdParams::Type::WINDOW )
2886 insert(serializer,
self.high_thres);
2889 if(
self.type == EventTrigger::ThresholdParams::Type::INTERVAL )
2891 insert(serializer,
self.interval);
2895 void extract(Serializer& serializer, EventTrigger::ThresholdParams&
self)
2897 extract(serializer,
self.desc_set);
2899 extract(serializer,
self.field_desc);
2901 extract(serializer,
self.param_id);
2903 extract(serializer,
self.type);
2905 if(
self.type == EventTrigger::ThresholdParams::Type::WINDOW )
2907 extract(serializer,
self.low_thres);
2910 if(
self.type == EventTrigger::ThresholdParams::Type::INTERVAL )
2912 extract(serializer,
self.int_thres);
2915 if(
self.type == EventTrigger::ThresholdParams::Type::WINDOW )
2917 extract(serializer,
self.high_thres);
2920 if(
self.type == EventTrigger::ThresholdParams::Type::INTERVAL )
2922 extract(serializer,
self.interval);
2927 void insert(Serializer& serializer,
const EventTrigger::CombinationParams&
self)
2929 insert(serializer,
self.logic_table);
2931 for(
unsigned int i=0; i < 4; i++)
2932 insert(serializer,
self.input_triggers[i]);
2935 void extract(Serializer& serializer, EventTrigger::CombinationParams&
self)
2937 extract(serializer,
self.logic_table);
2939 for(
unsigned int i=0; i < 4; i++)
2940 extract(serializer,
self.input_triggers[i]);
2947 Serializer serializer(buffer,
sizeof(buffer));
2949 insert(serializer, FunctionSelector::WRITE);
2950 insert(serializer, instance);
2952 insert(serializer, type);
2954 if( type == EventTrigger::Type::GPIO )
2956 insert(serializer, parameters.gpio);
2959 if( type == EventTrigger::Type::THRESHOLD )
2961 insert(serializer, parameters.threshold);
2964 if( type == EventTrigger::Type::COMBINATION )
2966 insert(serializer, parameters.combination);
2969 assert(serializer.isOk());
2976 Serializer serializer(buffer,
sizeof(buffer));
2978 insert(serializer, FunctionSelector::READ);
2979 insert(serializer, instance);
2981 assert(serializer.isOk());
2983 uint8_t responseLength =
sizeof(buffer);
2988 Serializer deserializer(buffer, responseLength);
2990 extract(deserializer, instance);
2993 extract(deserializer, *typeOut);
2995 if( *typeOut == EventTrigger::Type::GPIO )
2997 extract(deserializer, parametersOut->gpio);
3000 if( *typeOut == EventTrigger::Type::THRESHOLD )
3002 extract(deserializer, parametersOut->threshold);
3005 if( *typeOut == EventTrigger::Type::COMBINATION )
3007 extract(deserializer, parametersOut->combination);
3010 if( deserializer.remaining() != 0 )
3018 Serializer serializer(buffer,
sizeof(buffer));
3020 insert(serializer, FunctionSelector::SAVE);
3021 insert(serializer, instance);
3023 assert(serializer.isOk());
3030 Serializer serializer(buffer,
sizeof(buffer));
3032 insert(serializer, FunctionSelector::LOAD);
3033 insert(serializer, instance);
3035 assert(serializer.isOk());
3042 Serializer serializer(buffer,
sizeof(buffer));
3044 insert(serializer, FunctionSelector::RESET);
3045 insert(serializer, instance);
3047 assert(serializer.isOk());
3051 void insert(Serializer& serializer,
const EventAction&
self)
3053 insert(serializer,
self.
function);
3055 insert(serializer,
self.instance);
3057 if(
self.
function == FunctionSelector::WRITE )
3059 insert(serializer,
self.trigger);
3061 insert(serializer,
self.type);
3063 if(
self.type == EventAction::Type::GPIO )
3065 insert(serializer,
self.parameters.gpio);
3068 if(
self.type == EventAction::Type::MESSAGE )
3070 insert(serializer,
self.parameters.message);
3075 void extract(Serializer& serializer, EventAction&
self)
3077 extract(serializer,
self.
function);
3079 extract(serializer,
self.instance);
3081 if(
self.
function == FunctionSelector::WRITE )
3083 extract(serializer,
self.trigger);
3085 extract(serializer,
self.type);
3087 if(
self.type == EventAction::Type::GPIO )
3089 extract(serializer,
self.parameters.gpio);
3092 if(
self.type == EventAction::Type::MESSAGE )
3094 extract(serializer,
self.parameters.message);
3100 void insert(Serializer& serializer,
const EventAction::Response&
self)
3102 insert(serializer,
self.instance);
3104 insert(serializer,
self.trigger);
3106 insert(serializer,
self.type);
3108 if(
self.type == EventAction::Type::GPIO )
3110 insert(serializer,
self.parameters.gpio);
3113 if(
self.type == EventAction::Type::MESSAGE )
3115 insert(serializer,
self.parameters.message);
3119 void extract(Serializer& serializer, EventAction::Response&
self)
3121 extract(serializer,
self.instance);
3123 extract(serializer,
self.trigger);
3125 extract(serializer,
self.type);
3127 if(
self.type == EventAction::Type::GPIO )
3129 extract(serializer,
self.parameters.gpio);
3132 if(
self.type == EventAction::Type::MESSAGE )
3134 extract(serializer,
self.parameters.message);
3139 void insert(Serializer& serializer,
const EventAction::GpioParams&
self)
3141 insert(serializer,
self.pin);
3143 insert(serializer,
self.mode);
3146 void extract(Serializer& serializer, EventAction::GpioParams&
self)
3148 extract(serializer,
self.pin);
3150 extract(serializer,
self.mode);
3154 void insert(Serializer& serializer,
const EventAction::MessageParams&
self)
3156 insert(serializer,
self.desc_set);
3158 insert(serializer,
self.decimation);
3160 insert(serializer,
self.num_fields);
3162 for(
unsigned int i=0; i <
self.num_fields; i++)
3163 insert(serializer,
self.descriptors[i]);
3166 void extract(Serializer& serializer, EventAction::MessageParams&
self)
3168 extract(serializer,
self.desc_set);
3170 extract(serializer,
self.decimation);
3172 C::extract_count(&serializer, &
self.num_fields,
sizeof(
self.descriptors)/
sizeof(
self.descriptors[0]));
3173 for(
unsigned int i=0; i <
self.num_fields; i++)
3174 extract(serializer,
self.descriptors[i]);
3181 Serializer serializer(buffer,
sizeof(buffer));
3183 insert(serializer, FunctionSelector::WRITE);
3184 insert(serializer, instance);
3186 insert(serializer, trigger);
3188 insert(serializer, type);
3190 if( type == EventAction::Type::GPIO )
3192 insert(serializer, parameters.gpio);
3195 if( type == EventAction::Type::MESSAGE )
3197 insert(serializer, parameters.message);
3200 assert(serializer.isOk());
3207 Serializer serializer(buffer,
sizeof(buffer));
3209 insert(serializer, FunctionSelector::READ);
3210 insert(serializer, instance);
3212 assert(serializer.isOk());
3214 uint8_t responseLength =
sizeof(buffer);
3219 Serializer deserializer(buffer, responseLength);
3221 extract(deserializer, instance);
3224 extract(deserializer, *triggerOut);
3227 extract(deserializer, *typeOut);
3229 if( *typeOut == EventAction::Type::GPIO )
3231 extract(deserializer, parametersOut->gpio);
3234 if( *typeOut == EventAction::Type::MESSAGE )
3236 extract(deserializer, parametersOut->message);
3239 if( deserializer.remaining() != 0 )
3247 Serializer serializer(buffer,
sizeof(buffer));
3249 insert(serializer, FunctionSelector::SAVE);
3250 insert(serializer, instance);
3252 assert(serializer.isOk());
3259 Serializer serializer(buffer,
sizeof(buffer));
3261 insert(serializer, FunctionSelector::LOAD);
3262 insert(serializer, instance);
3264 assert(serializer.isOk());
3271 Serializer serializer(buffer,
sizeof(buffer));
3273 insert(serializer, FunctionSelector::RESET);
3274 insert(serializer, instance);
3276 assert(serializer.isOk());
3280 void insert(Serializer& serializer,
const AccelBias&
self)
3282 insert(serializer,
self.
function);
3284 if(
self.
function == FunctionSelector::WRITE )
3286 for(
unsigned int i=0; i < 3; i++)
3287 insert(serializer,
self.bias[i]);
3291 void extract(Serializer& serializer, AccelBias&
self)
3293 extract(serializer,
self.
function);
3295 if(
self.
function == FunctionSelector::WRITE )
3297 for(
unsigned int i=0; i < 3; i++)
3298 extract(serializer,
self.bias[i]);
3303 void insert(Serializer& serializer,
const AccelBias::Response&
self)
3305 for(
unsigned int i=0; i < 3; i++)
3306 insert(serializer,
self.bias[i]);
3309 void extract(Serializer& serializer, AccelBias::Response&
self)
3311 for(
unsigned int i=0; i < 3; i++)
3312 extract(serializer,
self.bias[i]);
3319 Serializer serializer(buffer,
sizeof(buffer));
3321 insert(serializer, FunctionSelector::WRITE);
3322 assert(bias || (3 == 0));
3323 for(
unsigned int i=0; i < 3; i++)
3324 insert(serializer, bias[i]);
3326 assert(serializer.isOk());
3333 Serializer serializer(buffer,
sizeof(buffer));
3335 insert(serializer, FunctionSelector::READ);
3336 assert(serializer.isOk());
3338 uint8_t responseLength =
sizeof(buffer);
3343 Serializer deserializer(buffer, responseLength);
3345 assert(biasOut || (3 == 0));
3346 for(
unsigned int i=0; i < 3; i++)
3347 extract(deserializer, biasOut[i]);
3349 if( deserializer.remaining() != 0 )
3357 Serializer serializer(buffer,
sizeof(buffer));
3359 insert(serializer, FunctionSelector::SAVE);
3360 assert(serializer.isOk());
3367 Serializer serializer(buffer,
sizeof(buffer));
3369 insert(serializer, FunctionSelector::LOAD);
3370 assert(serializer.isOk());
3377 Serializer serializer(buffer,
sizeof(buffer));
3379 insert(serializer, FunctionSelector::RESET);
3380 assert(serializer.isOk());
3384 void insert(Serializer& serializer,
const GyroBias&
self)
3386 insert(serializer,
self.
function);
3388 if(
self.
function == FunctionSelector::WRITE )
3390 for(
unsigned int i=0; i < 3; i++)
3391 insert(serializer,
self.bias[i]);
3395 void extract(Serializer& serializer, GyroBias&
self)
3397 extract(serializer,
self.
function);
3399 if(
self.
function == FunctionSelector::WRITE )
3401 for(
unsigned int i=0; i < 3; i++)
3402 extract(serializer,
self.bias[i]);
3407 void insert(Serializer& serializer,
const GyroBias::Response&
self)
3409 for(
unsigned int i=0; i < 3; i++)
3410 insert(serializer,
self.bias[i]);
3413 void extract(Serializer& serializer, GyroBias::Response&
self)
3415 for(
unsigned int i=0; i < 3; i++)
3416 extract(serializer,
self.bias[i]);
3423 Serializer serializer(buffer,
sizeof(buffer));
3425 insert(serializer, FunctionSelector::WRITE);
3426 assert(bias || (3 == 0));
3427 for(
unsigned int i=0; i < 3; i++)
3428 insert(serializer, bias[i]);
3430 assert(serializer.isOk());
3437 Serializer serializer(buffer,
sizeof(buffer));
3439 insert(serializer, FunctionSelector::READ);
3440 assert(serializer.isOk());
3442 uint8_t responseLength =
sizeof(buffer);
3447 Serializer deserializer(buffer, responseLength);
3449 assert(biasOut || (3 == 0));
3450 for(
unsigned int i=0; i < 3; i++)
3451 extract(deserializer, biasOut[i]);
3453 if( deserializer.remaining() != 0 )
3461 Serializer serializer(buffer,
sizeof(buffer));
3463 insert(serializer, FunctionSelector::SAVE);
3464 assert(serializer.isOk());
3471 Serializer serializer(buffer,
sizeof(buffer));
3473 insert(serializer, FunctionSelector::LOAD);
3474 assert(serializer.isOk());
3481 Serializer serializer(buffer,
sizeof(buffer));
3483 insert(serializer, FunctionSelector::RESET);
3484 assert(serializer.isOk());
3488 void insert(Serializer& serializer,
const CaptureGyroBias&
self)
3490 insert(serializer,
self.averaging_time_ms);
3493 void extract(Serializer& serializer, CaptureGyroBias&
self)
3495 extract(serializer,
self.averaging_time_ms);
3499 void insert(Serializer& serializer,
const CaptureGyroBias::Response&
self)
3501 for(
unsigned int i=0; i < 3; i++)
3502 insert(serializer,
self.bias[i]);
3505 void extract(Serializer& serializer, CaptureGyroBias::Response&
self)
3507 for(
unsigned int i=0; i < 3; i++)
3508 extract(serializer,
self.bias[i]);
3515 Serializer serializer(buffer,
sizeof(buffer));
3517 insert(serializer, averagingTimeMs);
3519 assert(serializer.isOk());
3521 uint8_t responseLength =
sizeof(buffer);
3526 Serializer deserializer(buffer, responseLength);
3528 assert(biasOut || (3 == 0));
3529 for(
unsigned int i=0; i < 3; i++)
3530 extract(deserializer, biasOut[i]);
3532 if( deserializer.remaining() != 0 )
3537 void insert(Serializer& serializer,
const MagHardIronOffset&
self)
3539 insert(serializer,
self.
function);
3541 if(
self.
function == FunctionSelector::WRITE )
3543 for(
unsigned int i=0; i < 3; i++)
3544 insert(serializer,
self.offset[i]);
3548 void extract(Serializer& serializer, MagHardIronOffset&
self)
3550 extract(serializer,
self.
function);
3552 if(
self.
function == FunctionSelector::WRITE )
3554 for(
unsigned int i=0; i < 3; i++)
3555 extract(serializer,
self.offset[i]);
3560 void insert(Serializer& serializer,
const MagHardIronOffset::Response&
self)
3562 for(
unsigned int i=0; i < 3; i++)
3563 insert(serializer,
self.offset[i]);
3566 void extract(Serializer& serializer, MagHardIronOffset::Response&
self)
3568 for(
unsigned int i=0; i < 3; i++)
3569 extract(serializer,
self.offset[i]);
3576 Serializer serializer(buffer,
sizeof(buffer));
3578 insert(serializer, FunctionSelector::WRITE);
3579 assert(offset || (3 == 0));
3580 for(
unsigned int i=0; i < 3; i++)
3581 insert(serializer, offset[i]);
3583 assert(serializer.isOk());
3590 Serializer serializer(buffer,
sizeof(buffer));
3592 insert(serializer, FunctionSelector::READ);
3593 assert(serializer.isOk());
3595 uint8_t responseLength =
sizeof(buffer);
3600 Serializer deserializer(buffer, responseLength);
3602 assert(offsetOut || (3 == 0));
3603 for(
unsigned int i=0; i < 3; i++)
3604 extract(deserializer, offsetOut[i]);
3606 if( deserializer.remaining() != 0 )
3614 Serializer serializer(buffer,
sizeof(buffer));
3616 insert(serializer, FunctionSelector::SAVE);
3617 assert(serializer.isOk());
3624 Serializer serializer(buffer,
sizeof(buffer));
3626 insert(serializer, FunctionSelector::LOAD);
3627 assert(serializer.isOk());
3634 Serializer serializer(buffer,
sizeof(buffer));
3636 insert(serializer, FunctionSelector::RESET);
3637 assert(serializer.isOk());
3641 void insert(Serializer& serializer,
const MagSoftIronMatrix&
self)
3643 insert(serializer,
self.
function);
3645 if(
self.
function == FunctionSelector::WRITE )
3647 for(
unsigned int i=0; i < 9; i++)
3648 insert(serializer,
self.offset[i]);
3652 void extract(Serializer& serializer, MagSoftIronMatrix&
self)
3654 extract(serializer,
self.
function);
3656 if(
self.
function == FunctionSelector::WRITE )
3658 for(
unsigned int i=0; i < 9; i++)
3659 extract(serializer,
self.offset[i]);
3664 void insert(Serializer& serializer,
const MagSoftIronMatrix::Response&
self)
3666 for(
unsigned int i=0; i < 9; i++)
3667 insert(serializer,
self.offset[i]);
3670 void extract(Serializer& serializer, MagSoftIronMatrix::Response&
self)
3672 for(
unsigned int i=0; i < 9; i++)
3673 extract(serializer,
self.offset[i]);
3680 Serializer serializer(buffer,
sizeof(buffer));
3682 insert(serializer, FunctionSelector::WRITE);
3683 assert(offset || (9 == 0));
3684 for(
unsigned int i=0; i < 9; i++)
3685 insert(serializer, offset[i]);
3687 assert(serializer.isOk());
3694 Serializer serializer(buffer,
sizeof(buffer));
3696 insert(serializer, FunctionSelector::READ);
3697 assert(serializer.isOk());
3699 uint8_t responseLength =
sizeof(buffer);
3704 Serializer deserializer(buffer, responseLength);
3706 assert(offsetOut || (9 == 0));
3707 for(
unsigned int i=0; i < 9; i++)
3708 extract(deserializer, offsetOut[i]);
3710 if( deserializer.remaining() != 0 )
3718 Serializer serializer(buffer,
sizeof(buffer));
3720 insert(serializer, FunctionSelector::SAVE);
3721 assert(serializer.isOk());
3728 Serializer serializer(buffer,
sizeof(buffer));
3730 insert(serializer, FunctionSelector::LOAD);
3731 assert(serializer.isOk());
3738 Serializer serializer(buffer,
sizeof(buffer));
3740 insert(serializer, FunctionSelector::RESET);
3741 assert(serializer.isOk());
3745 void insert(Serializer& serializer,
const ConingScullingEnable&
self)
3747 insert(serializer,
self.
function);
3749 if(
self.
function == FunctionSelector::WRITE )
3751 insert(serializer,
self.enable);
3755 void extract(Serializer& serializer, ConingScullingEnable&
self)
3757 extract(serializer,
self.
function);
3759 if(
self.
function == FunctionSelector::WRITE )
3761 extract(serializer,
self.enable);
3766 void insert(Serializer& serializer,
const ConingScullingEnable::Response&
self)
3768 insert(serializer,
self.enable);
3771 void extract(Serializer& serializer, ConingScullingEnable::Response&
self)
3773 extract(serializer,
self.enable);
3780 Serializer serializer(buffer,
sizeof(buffer));
3782 insert(serializer, FunctionSelector::WRITE);
3783 insert(serializer, enable);
3785 assert(serializer.isOk());
3792 Serializer serializer(buffer,
sizeof(buffer));
3794 insert(serializer, FunctionSelector::READ);
3795 assert(serializer.isOk());
3797 uint8_t responseLength =
sizeof(buffer);
3802 Serializer deserializer(buffer, responseLength);
3805 extract(deserializer, *enableOut);
3807 if( deserializer.remaining() != 0 )
3815 Serializer serializer(buffer,
sizeof(buffer));
3817 insert(serializer, FunctionSelector::SAVE);
3818 assert(serializer.isOk());
3825 Serializer serializer(buffer,
sizeof(buffer));
3827 insert(serializer, FunctionSelector::LOAD);
3828 assert(serializer.isOk());
3835 Serializer serializer(buffer,
sizeof(buffer));
3837 insert(serializer, FunctionSelector::RESET);
3838 assert(serializer.isOk());
3842 void insert(Serializer& serializer,
const Sensor2VehicleTransformEuler&
self)
3844 insert(serializer,
self.
function);
3846 if(
self.
function == FunctionSelector::WRITE )
3848 insert(serializer,
self.roll);
3850 insert(serializer,
self.pitch);
3852 insert(serializer,
self.yaw);
3856 void extract(Serializer& serializer, Sensor2VehicleTransformEuler&
self)
3858 extract(serializer,
self.
function);
3860 if(
self.
function == FunctionSelector::WRITE )
3862 extract(serializer,
self.roll);
3864 extract(serializer,
self.pitch);
3866 extract(serializer,
self.yaw);
3871 void insert(Serializer& serializer,
const Sensor2VehicleTransformEuler::Response&
self)
3873 insert(serializer,
self.roll);
3875 insert(serializer,
self.pitch);
3877 insert(serializer,
self.yaw);
3880 void extract(Serializer& serializer, Sensor2VehicleTransformEuler::Response&
self)
3882 extract(serializer,
self.roll);
3884 extract(serializer,
self.pitch);
3886 extract(serializer,
self.yaw);
3893 Serializer serializer(buffer,
sizeof(buffer));
3895 insert(serializer, FunctionSelector::WRITE);
3896 insert(serializer, roll);
3898 insert(serializer, pitch);
3902 assert(serializer.isOk());
3909 Serializer serializer(buffer,
sizeof(buffer));
3911 insert(serializer, FunctionSelector::READ);
3912 assert(serializer.isOk());
3914 uint8_t responseLength =
sizeof(buffer);
3919 Serializer deserializer(buffer, responseLength);
3922 extract(deserializer, *rollOut);
3925 extract(deserializer, *pitchOut);
3928 extract(deserializer, *yawOut);
3930 if( deserializer.remaining() != 0 )
3938 Serializer serializer(buffer,
sizeof(buffer));
3940 insert(serializer, FunctionSelector::SAVE);
3941 assert(serializer.isOk());
3948 Serializer serializer(buffer,
sizeof(buffer));
3950 insert(serializer, FunctionSelector::LOAD);
3951 assert(serializer.isOk());
3958 Serializer serializer(buffer,
sizeof(buffer));
3960 insert(serializer, FunctionSelector::RESET);
3961 assert(serializer.isOk());
3965 void insert(Serializer& serializer,
const Sensor2VehicleTransformQuaternion&
self)
3967 insert(serializer,
self.
function);
3969 if(
self.
function == FunctionSelector::WRITE )
3971 for(
unsigned int i=0; i < 4; i++)
3972 insert(serializer,
self.q[i]);
3976 void extract(Serializer& serializer, Sensor2VehicleTransformQuaternion&
self)
3978 extract(serializer,
self.
function);
3980 if(
self.
function == FunctionSelector::WRITE )
3982 for(
unsigned int i=0; i < 4; i++)
3983 extract(serializer,
self.q[i]);
3988 void insert(Serializer& serializer,
const Sensor2VehicleTransformQuaternion::Response&
self)
3990 for(
unsigned int i=0; i < 4; i++)
3991 insert(serializer,
self.q[i]);
3994 void extract(Serializer& serializer, Sensor2VehicleTransformQuaternion::Response&
self)
3996 for(
unsigned int i=0; i < 4; i++)
3997 extract(serializer,
self.q[i]);
4004 Serializer serializer(buffer,
sizeof(buffer));
4006 insert(serializer, FunctionSelector::WRITE);
4007 assert(q || (4 == 0));
4008 for(
unsigned int i=0; i < 4; i++)
4009 insert(serializer, q[i]);
4011 assert(serializer.isOk());
4018 Serializer serializer(buffer,
sizeof(buffer));
4020 insert(serializer, FunctionSelector::READ);
4021 assert(serializer.isOk());
4023 uint8_t responseLength =
sizeof(buffer);
4028 Serializer deserializer(buffer, responseLength);
4030 assert(qOut || (4 == 0));
4031 for(
unsigned int i=0; i < 4; i++)
4032 extract(deserializer, qOut[i]);
4034 if( deserializer.remaining() != 0 )
4042 Serializer serializer(buffer,
sizeof(buffer));
4044 insert(serializer, FunctionSelector::SAVE);
4045 assert(serializer.isOk());
4052 Serializer serializer(buffer,
sizeof(buffer));
4054 insert(serializer, FunctionSelector::LOAD);
4055 assert(serializer.isOk());
4062 Serializer serializer(buffer,
sizeof(buffer));
4064 insert(serializer, FunctionSelector::RESET);
4065 assert(serializer.isOk());
4069 void insert(Serializer& serializer,
const Sensor2VehicleTransformDcm&
self)
4071 insert(serializer,
self.
function);
4073 if(
self.
function == FunctionSelector::WRITE )
4075 for(
unsigned int i=0; i < 9; i++)
4076 insert(serializer,
self.dcm[i]);
4080 void extract(Serializer& serializer, Sensor2VehicleTransformDcm&
self)
4082 extract(serializer,
self.
function);
4084 if(
self.
function == FunctionSelector::WRITE )
4086 for(
unsigned int i=0; i < 9; i++)
4087 extract(serializer,
self.dcm[i]);
4092 void insert(Serializer& serializer,
const Sensor2VehicleTransformDcm::Response&
self)
4094 for(
unsigned int i=0; i < 9; i++)
4095 insert(serializer,
self.dcm[i]);
4098 void extract(Serializer& serializer, Sensor2VehicleTransformDcm::Response&
self)
4100 for(
unsigned int i=0; i < 9; i++)
4101 extract(serializer,
self.dcm[i]);
4108 Serializer serializer(buffer,
sizeof(buffer));
4110 insert(serializer, FunctionSelector::WRITE);
4111 assert(dcm || (9 == 0));
4112 for(
unsigned int i=0; i < 9; i++)
4113 insert(serializer, dcm[i]);
4115 assert(serializer.isOk());
4122 Serializer serializer(buffer,
sizeof(buffer));
4124 insert(serializer, FunctionSelector::READ);
4125 assert(serializer.isOk());
4127 uint8_t responseLength =
sizeof(buffer);
4132 Serializer deserializer(buffer, responseLength);
4134 assert(dcmOut || (9 == 0));
4135 for(
unsigned int i=0; i < 9; i++)
4136 extract(deserializer, dcmOut[i]);
4138 if( deserializer.remaining() != 0 )
4146 Serializer serializer(buffer,
sizeof(buffer));
4148 insert(serializer, FunctionSelector::SAVE);
4149 assert(serializer.isOk());
4156 Serializer serializer(buffer,
sizeof(buffer));
4158 insert(serializer, FunctionSelector::LOAD);
4159 assert(serializer.isOk());
4166 Serializer serializer(buffer,
sizeof(buffer));
4168 insert(serializer, FunctionSelector::RESET);
4169 assert(serializer.isOk());
4173 void insert(Serializer& serializer,
const ComplementaryFilter&
self)
4175 insert(serializer,
self.
function);
4177 if(
self.
function == FunctionSelector::WRITE )
4179 insert(serializer,
self.pitch_roll_enable);
4181 insert(serializer,
self.heading_enable);
4183 insert(serializer,
self.pitch_roll_time_constant);
4185 insert(serializer,
self.heading_time_constant);
4189 void extract(Serializer& serializer, ComplementaryFilter&
self)
4191 extract(serializer,
self.
function);
4193 if(
self.
function == FunctionSelector::WRITE )
4195 extract(serializer,
self.pitch_roll_enable);
4197 extract(serializer,
self.heading_enable);
4199 extract(serializer,
self.pitch_roll_time_constant);
4201 extract(serializer,
self.heading_time_constant);
4206 void insert(Serializer& serializer,
const ComplementaryFilter::Response&
self)
4208 insert(serializer,
self.pitch_roll_enable);
4210 insert(serializer,
self.heading_enable);
4212 insert(serializer,
self.pitch_roll_time_constant);
4214 insert(serializer,
self.heading_time_constant);
4217 void extract(Serializer& serializer, ComplementaryFilter::Response&
self)
4219 extract(serializer,
self.pitch_roll_enable);
4221 extract(serializer,
self.heading_enable);
4223 extract(serializer,
self.pitch_roll_time_constant);
4225 extract(serializer,
self.heading_time_constant);
4232 Serializer serializer(buffer,
sizeof(buffer));
4234 insert(serializer, FunctionSelector::WRITE);
4235 insert(serializer, pitchRollEnable);
4237 insert(serializer, headingEnable);
4239 insert(serializer, pitchRollTimeConstant);
4241 insert(serializer, headingTimeConstant);
4243 assert(serializer.isOk());
4250 Serializer serializer(buffer,
sizeof(buffer));
4252 insert(serializer, FunctionSelector::READ);
4253 assert(serializer.isOk());
4255 uint8_t responseLength =
sizeof(buffer);
4260 Serializer deserializer(buffer, responseLength);
4262 assert(pitchRollEnableOut);
4263 extract(deserializer, *pitchRollEnableOut);
4265 assert(headingEnableOut);
4266 extract(deserializer, *headingEnableOut);
4268 assert(pitchRollTimeConstantOut);
4269 extract(deserializer, *pitchRollTimeConstantOut);
4271 assert(headingTimeConstantOut);
4272 extract(deserializer, *headingTimeConstantOut);
4274 if( deserializer.remaining() != 0 )
4282 Serializer serializer(buffer,
sizeof(buffer));
4284 insert(serializer, FunctionSelector::SAVE);
4285 assert(serializer.isOk());
4292 Serializer serializer(buffer,
sizeof(buffer));
4294 insert(serializer, FunctionSelector::LOAD);
4295 assert(serializer.isOk());
4302 Serializer serializer(buffer,
sizeof(buffer));
4304 insert(serializer, FunctionSelector::RESET);
4305 assert(serializer.isOk());
4309 void insert(Serializer& serializer,
const SensorRange&
self)
4311 insert(serializer,
self.
function);
4313 insert(serializer,
self.sensor);
4315 if(
self.
function == FunctionSelector::WRITE )
4317 insert(serializer,
self.setting);
4321 void extract(Serializer& serializer, SensorRange&
self)
4323 extract(serializer,
self.
function);
4325 extract(serializer,
self.sensor);
4327 if(
self.
function == FunctionSelector::WRITE )
4329 extract(serializer,
self.setting);
4334 void insert(Serializer& serializer,
const SensorRange::Response&
self)
4336 insert(serializer,
self.sensor);
4338 insert(serializer,
self.setting);
4341 void extract(Serializer& serializer, SensorRange::Response&
self)
4343 extract(serializer,
self.sensor);
4345 extract(serializer,
self.setting);
4352 Serializer serializer(buffer,
sizeof(buffer));
4354 insert(serializer, FunctionSelector::WRITE);
4355 insert(serializer, sensor);
4357 insert(serializer, setting);
4359 assert(serializer.isOk());
4366 Serializer serializer(buffer,
sizeof(buffer));
4368 insert(serializer, FunctionSelector::READ);
4369 insert(serializer, sensor);
4371 assert(serializer.isOk());
4373 uint8_t responseLength =
sizeof(buffer);
4378 Serializer deserializer(buffer, responseLength);
4380 extract(deserializer, sensor);
4383 extract(deserializer, *settingOut);
4385 if( deserializer.remaining() != 0 )
4393 Serializer serializer(buffer,
sizeof(buffer));
4395 insert(serializer, FunctionSelector::SAVE);
4396 insert(serializer, sensor);
4398 assert(serializer.isOk());
4405 Serializer serializer(buffer,
sizeof(buffer));
4407 insert(serializer, FunctionSelector::LOAD);
4408 insert(serializer, sensor);
4410 assert(serializer.isOk());
4417 Serializer serializer(buffer,
sizeof(buffer));
4419 insert(serializer, FunctionSelector::RESET);
4420 insert(serializer, sensor);
4422 assert(serializer.isOk());
4426 void insert(Serializer& serializer,
const CalibratedSensorRanges&
self)
4428 insert(serializer,
self.sensor);
4431 void extract(Serializer& serializer, CalibratedSensorRanges&
self)
4433 extract(serializer,
self.sensor);
4437 void insert(Serializer& serializer,
const CalibratedSensorRanges::Response&
self)
4439 insert(serializer,
self.sensor);
4441 insert(serializer,
self.num_ranges);
4443 for(
unsigned int i=0; i <
self.num_ranges; i++)
4444 insert(serializer,
self.ranges[i]);
4447 void extract(Serializer& serializer, CalibratedSensorRanges::Response&
self)
4449 extract(serializer,
self.sensor);
4451 C::extract_count(&serializer, &
self.num_ranges,
sizeof(
self.ranges)/
sizeof(
self.ranges[0]));
4452 for(
unsigned int i=0; i <
self.num_ranges; i++)
4453 extract(serializer,
self.ranges[i]);
4457 void insert(Serializer& serializer,
const CalibratedSensorRanges::Entry&
self)
4459 insert(serializer,
self.setting);
4461 insert(serializer,
self.range);
4464 void extract(Serializer& serializer, CalibratedSensorRanges::Entry&
self)
4466 extract(serializer,
self.setting);
4468 extract(serializer,
self.range);
4475 Serializer serializer(buffer,
sizeof(buffer));
4477 insert(serializer, sensor);
4479 assert(serializer.isOk());
4481 uint8_t responseLength =
sizeof(buffer);
4486 Serializer deserializer(buffer, responseLength);
4488 extract(deserializer, sensor);
4491 assert(rangesOut || (numRangesOut == 0));
4492 for(
unsigned int i=0; i < *numRangesOut; i++)
4493 extract(deserializer, rangesOut[i]);
4495 if( deserializer.remaining() != 0 )
4500 void insert(Serializer& serializer,
const LowpassFilter&
self)
4502 insert(serializer,
self.
function);
4504 insert(serializer,
self.desc_set);
4506 insert(serializer,
self.field_desc);
4508 if(
self.
function == FunctionSelector::WRITE )
4510 insert(serializer,
self.enable);
4512 insert(serializer,
self.manual);
4514 insert(serializer,
self.frequency);
4518 void extract(Serializer& serializer, LowpassFilter&
self)
4520 extract(serializer,
self.
function);
4522 extract(serializer,
self.desc_set);
4524 extract(serializer,
self.field_desc);
4526 if(
self.
function == FunctionSelector::WRITE )
4528 extract(serializer,
self.enable);
4530 extract(serializer,
self.manual);
4532 extract(serializer,
self.frequency);
4537 void insert(Serializer& serializer,
const LowpassFilter::Response&
self)
4539 insert(serializer,
self.desc_set);
4541 insert(serializer,
self.field_desc);
4543 insert(serializer,
self.enable);
4545 insert(serializer,
self.manual);
4547 insert(serializer,
self.frequency);
4550 void extract(Serializer& serializer, LowpassFilter::Response&
self)
4552 extract(serializer,
self.desc_set);
4554 extract(serializer,
self.field_desc);
4556 extract(serializer,
self.enable);
4558 extract(serializer,
self.manual);
4560 extract(serializer,
self.frequency);
4567 Serializer serializer(buffer,
sizeof(buffer));
4569 insert(serializer, FunctionSelector::WRITE);
4570 insert(serializer, descSet);
4572 insert(serializer, fieldDesc);
4574 insert(serializer, enable);
4576 insert(serializer, manual);
4578 insert(serializer, frequency);
4580 assert(serializer.isOk());
4587 Serializer serializer(buffer,
sizeof(buffer));
4589 insert(serializer, FunctionSelector::READ);
4590 insert(serializer, descSet);
4592 insert(serializer, fieldDesc);
4594 assert(serializer.isOk());
4596 uint8_t responseLength =
sizeof(buffer);
4601 Serializer deserializer(buffer, responseLength);
4603 extract(deserializer, descSet);
4605 extract(deserializer, fieldDesc);
4608 extract(deserializer, *enableOut);
4611 extract(deserializer, *manualOut);
4613 assert(frequencyOut);
4614 extract(deserializer, *frequencyOut);
4616 if( deserializer.remaining() != 0 )
4624 Serializer serializer(buffer,
sizeof(buffer));
4626 insert(serializer, FunctionSelector::SAVE);
4627 insert(serializer, descSet);
4629 insert(serializer, fieldDesc);
4631 assert(serializer.isOk());
4638 Serializer serializer(buffer,
sizeof(buffer));
4640 insert(serializer, FunctionSelector::LOAD);
4641 insert(serializer, descSet);
4643 insert(serializer, fieldDesc);
4645 assert(serializer.isOk());
4652 Serializer serializer(buffer,
sizeof(buffer));
4654 insert(serializer, FunctionSelector::RESET);
4655 insert(serializer, descSet);
4657 insert(serializer, fieldDesc);
4659 assert(serializer.isOk());