10 namespace Treehopper {
namespace Libraries {
namespace Sensors {
namespace Inertial {
40 class ChipIdRegister :
public Register 46 long getValue() {
return ((value & 0xFF) << 0); }
47 void setValue(
long val)
49 value = (int)((val >> 0) & 0xFF);
53 class AccelChipIdRegister :
public Register 59 long getValue() {
return ((value & 0xFF) << 0); }
60 void setValue(
long val)
62 value = (int)((val >> 0) & 0xFF);
66 class MagChipIdRegister :
public Register 72 long getValue() {
return ((value & 0xFF) << 0); }
73 void setValue(
long val)
75 value = (int)((val >> 0) & 0xFF);
79 class GyroChipIdRegister :
public Register 85 long getValue() {
return ((value & 0xFF) << 0); }
86 void setValue(
long val)
88 value = (int)((val >> 0) & 0xFF);
92 class SwRevisionRegister :
public Register 98 long getValue() {
return ((value & 0xFFFF) << 0); }
99 void setValue(
long val)
101 value = (int)((val >> 0) & 0xFFFF);
105 class BootloaderVersionRegister :
public Register 111 long getValue() {
return ((value & 0xFF) << 0); }
112 void setValue(
long val)
114 value = (int)((val >> 0) & 0xFF);
118 class PageIdRegister :
public Register 124 long getValue() {
return ((value & 0xFF) << 0); }
125 void setValue(
long val)
127 value = (int)((val >> 0) & 0xFF);
131 class AccelXRegister :
public Register 137 long getValue() {
return ((value & 0xFFFF) << 0); }
138 void setValue(
long val)
140 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
144 class AccelYRegister :
public Register 150 long getValue() {
return ((value & 0xFFFF) << 0); }
151 void setValue(
long val)
153 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
157 class AccelZRegister :
public Register 163 long getValue() {
return ((value & 0xFFFF) << 0); }
164 void setValue(
long val)
166 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
170 class MagnetometerXRegister :
public Register 176 long getValue() {
return ((value & 0xFFFF) << 0); }
177 void setValue(
long val)
179 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
183 class MagnetometerYRegister :
public Register 189 long getValue() {
return ((value & 0xFFFF) << 0); }
190 void setValue(
long val)
192 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
196 class MagnetometerZRegister :
public Register 202 long getValue() {
return ((value & 0xFFFF) << 0); }
203 void setValue(
long val)
205 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
209 class GyroXRegister :
public Register 215 long getValue() {
return ((value & 0xFFFF) << 0); }
216 void setValue(
long val)
218 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
222 class GyroYRegister :
public Register 228 long getValue() {
return ((value & 0xFFFF) << 0); }
229 void setValue(
long val)
231 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
235 class GyroZRegister :
public Register 241 long getValue() {
return ((value & 0xFFFF) << 0); }
242 void setValue(
long val)
244 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
248 class EulHeadingRegister :
public Register 254 long getValue() {
return ((value & 0xFFFF) << 0); }
255 void setValue(
long val)
257 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
261 class EulRollRegister :
public Register 267 long getValue() {
return ((value & 0xFFFF) << 0); }
268 void setValue(
long val)
270 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
274 class EulPitchRegister :
public Register 280 long getValue() {
return ((value & 0xFFFF) << 0); }
281 void setValue(
long val)
283 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
287 class QuaWRegister :
public Register 293 long getValue() {
return ((value & 0xFFFF) << 0); }
294 void setValue(
long val)
296 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
300 class QuaXRegister :
public Register 306 long getValue() {
return ((value & 0xFFFF) << 0); }
307 void setValue(
long val)
309 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
313 class QuaYRegister :
public Register 319 long getValue() {
return ((value & 0xFFFF) << 0); }
320 void setValue(
long val)
322 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
326 class QuaZRegister :
public Register 332 long getValue() {
return ((value & 0xFFFF) << 0); }
333 void setValue(
long val)
335 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
339 class LinXRegister :
public Register 345 long getValue() {
return ((value & 0xFFFF) << 0); }
346 void setValue(
long val)
348 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
352 class LinYRegister :
public Register 358 long getValue() {
return ((value & 0xFFFF) << 0); }
359 void setValue(
long val)
361 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
365 class LinZRegister :
public Register 371 long getValue() {
return ((value & 0xFFFF) << 0); }
372 void setValue(
long val)
374 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
378 class GravXRegister :
public Register 384 long getValue() {
return ((value & 0xFFFF) << 0); }
385 void setValue(
long val)
387 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
391 class GravYRegister :
public Register 397 long getValue() {
return ((value & 0xFFFF) << 0); }
398 void setValue(
long val)
400 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
404 class GravZRegister :
public Register 410 long getValue() {
return ((value & 0xFFFF) << 0); }
411 void setValue(
long val)
413 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
417 class TempRegister :
public Register 423 long getValue() {
return ((value & 0xFF) << 0); }
424 void setValue(
long val)
426 value = (int)((val >> 0) & 0xFF);
430 class CalibStatRegister :
public Register 435 int accelCalibStatus;
439 long getValue() {
return ((magCalibStatus & 0x3) << 0) | ((accelCalibStatus & 0x3) << 2) | ((gyroCalibStatus & 0x3) << 4) | ((sysCalibStatus & 0x3) << 6); }
440 void setValue(
long val)
442 magCalibStatus = (int)((val >> 0) & 0x3);
443 accelCalibStatus = (int)((val >> 2) & 0x3);
444 gyroCalibStatus = (int)((val >> 4) & 0x3);
445 sysCalibStatus = (int)((val >> 6) & 0x3);
449 class SelfTestResultRegister :
public Register 458 long getValue() {
return ((accel & 0x1) << 0) | ((mag & 0x1) << 1) | ((gyro & 0x1) << 2) | ((mcu & 0x1) << 3); }
459 void setValue(
long val)
461 accel = (int)((val >> 0) & 0x1);
462 mag = (int)((val >> 1) & 0x1);
463 gyro = (int)((val >> 2) & 0x1);
464 mcu = (int)((val >> 3) & 0x1);
468 class InterruptStatusRegister :
public Register 478 long getValue() {
return ((gyroAnyMotion & 0x1) << 2) | ((gyroHighRate & 0x1) << 3) | ((accelHighG & 0x1) << 5) | ((accelAnyMotion & 0x1) << 6) | ((accelNoMotion & 0x1) << 7); }
479 void setValue(
long val)
481 gyroAnyMotion = (int)((val >> 2) & 0x1);
482 gyroHighRate = (int)((val >> 3) & 0x1);
483 accelHighG = (int)((val >> 5) & 0x1);
484 accelAnyMotion = (int)((val >> 6) & 0x1);
485 accelNoMotion = (int)((val >> 7) & 0x1);
489 class SysClockStatusRegister :
public Register 495 long getValue() {
return ((mainClock & 0x1) << 0); }
496 void setValue(
long val)
498 mainClock = (int)((val >> 0) & 0x1);
502 class SysStatusRegister :
public Register 508 long getValue() {
return ((value & 0xFF) << 0); }
509 void setValue(
long val)
511 value = (int)((val >> 0) & 0xFF);
515 class SysErrRegister :
public Register 521 long getValue() {
return ((value & 0xFF) << 0); }
522 void setValue(
long val)
524 value = (int)((val >> 0) & 0xFF);
528 class UnitSelRegister :
public Register 538 long getValue() {
return ((accel & 0x1) << 0) | ((gyro & 0x1) << 1) | ((eular & 0x1) << 2) | ((temp & 0x1) << 4) | ((orientationMode & 0x1) << 7); }
539 void setValue(
long val)
541 accel = (int)((val >> 0) & 0x1);
542 gyro = (int)((val >> 1) & 0x1);
543 eular = (int)((val >> 2) & 0x1);
544 temp = (int)((val >> 4) & 0x1);
545 orientationMode = (int)((val >> 7) & 0x1);
549 class OperatingModeRegister :
public Register 555 void setOperatingMode(
OperatingModes enumVal) { operatingMode = (int)enumVal; }
557 long getValue() {
return ((operatingMode & 0xF) << 0); }
558 void setValue(
long val)
560 operatingMode = (int)((val >> 0) & 0xF);
564 class PowerModeRegister :
public Register 570 void setPowerMode(
PowerModes enumVal) { powerMode = (int)enumVal; }
572 long getValue() {
return ((powerMode & 0x3) << 0); }
573 void setValue(
long val)
575 powerMode = (int)((val >> 0) & 0x3);
579 class SysTriggerRegister :
public Register 588 long getValue() {
return ((selfTest & 0x1) << 0) | ((resetSys & 0x1) << 5) | ((resetInt & 0x1) << 6) | ((clockSel & 0x1) << 7); }
589 void setValue(
long val)
591 selfTest = (int)((val >> 0) & 0x1);
592 resetSys = (int)((val >> 5) & 0x1);
593 resetInt = (int)((val >> 6) & 0x1);
594 clockSel = (int)((val >> 7) & 0x1);
598 class TempSourceRegister :
public Register 604 long getValue() {
return ((source & 0x3) << 0); }
605 void setValue(
long val)
607 source = (int)((val >> 0) & 0x3);
611 class AxisMapConfigRegister :
public Register 619 long getValue() {
return ((x & 0x3) << 0) | ((y & 0x3) << 2) | ((z & 0x3) << 4); }
620 void setValue(
long val)
622 x = (int)((val >> 0) & 0x3);
623 y = (int)((val >> 2) & 0x3);
624 z = (int)((val >> 4) & 0x3);
628 class AxisMapSignRegister :
public Register 636 long getValue() {
return ((x & 0x1) << 0) | ((y & 0x1) << 1) | ((z & 0x1) << 2); }
637 void setValue(
long val)
639 x = (int)((val >> 0) & 0x1);
640 y = (int)((val >> 1) & 0x1);
641 z = (int)((val >> 2) & 0x1);
645 class AccelOffsetXRegister :
public Register 651 long getValue() {
return ((value & 0xFFFF) << 0); }
652 void setValue(
long val)
654 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
658 class AccelOffsetYRegister :
public Register 664 long getValue() {
return ((value & 0xFFFF) << 0); }
665 void setValue(
long val)
667 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
671 class AccelOffsetZRegister :
public Register 677 long getValue() {
return ((value & 0xFFFF) << 0); }
678 void setValue(
long val)
680 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
684 class MagnetometerOffsetXRegister :
public Register 690 long getValue() {
return ((value & 0xFFFF) << 0); }
691 void setValue(
long val)
693 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
697 class MagnetometerOffsetYRegister :
public Register 703 long getValue() {
return ((value & 0xFFFF) << 0); }
704 void setValue(
long val)
706 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
710 class MagnetometerOffsetZRegister :
public Register 716 long getValue() {
return ((value & 0xFFFF) << 0); }
717 void setValue(
long val)
719 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
723 class GyroOffsetXRegister :
public Register 729 long getValue() {
return ((value & 0xFFFF) << 0); }
730 void setValue(
long val)
732 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
736 class GyroOffsetYRegister :
public Register 742 long getValue() {
return ((value & 0xFFFF) << 0); }
743 void setValue(
long val)
745 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
749 class GyroOffsetZRegister :
public Register 755 long getValue() {
return ((value & 0xFFFF) << 0); }
756 void setValue(
long val)
758 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
762 class AccelRadiusRegister :
public Register 768 long getValue() {
return ((value & 0xFFFF) << 0); }
769 void setValue(
long val)
771 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
775 class MagRadiusRegister :
public Register 781 long getValue() {
return ((value & 0xFFFF) << 0); }
782 void setValue(
long val)
784 value = (int)(((val >> 0) & 0xFFFF) << (32 - 16)) >> (32 - 16);
788 ChipIdRegister chipId;
789 AccelChipIdRegister accelChipId;
790 MagChipIdRegister magChipId;
791 GyroChipIdRegister gyroChipId;
792 SwRevisionRegister swRevision;
793 BootloaderVersionRegister bootloaderVersion;
794 PageIdRegister pageId;
795 AccelXRegister accelX;
796 AccelYRegister accelY;
797 AccelZRegister accelZ;
798 MagnetometerXRegister magnetometerX;
799 MagnetometerYRegister magnetometerY;
800 MagnetometerZRegister magnetometerZ;
804 EulHeadingRegister eulHeading;
805 EulRollRegister eulRoll;
806 EulPitchRegister eulPitch;
818 CalibStatRegister calibStat;
819 SelfTestResultRegister selfTestResult;
820 InterruptStatusRegister interruptStatus;
821 SysClockStatusRegister sysClockStatus;
822 SysStatusRegister sysStatus;
823 SysErrRegister sysErr;
824 UnitSelRegister unitSel;
825 OperatingModeRegister operatingMode;
826 PowerModeRegister powerMode;
827 SysTriggerRegister sysTrigger;
828 TempSourceRegister tempSource;
829 AxisMapConfigRegister axisMapConfig;
830 AxisMapSignRegister axisMapSign;
831 AccelOffsetXRegister accelOffsetX;
832 AccelOffsetYRegister accelOffsetY;
833 AccelOffsetZRegister accelOffsetZ;
834 MagnetometerOffsetXRegister magnetometerOffsetX;
835 MagnetometerOffsetYRegister magnetometerOffsetY;
836 MagnetometerOffsetZRegister magnetometerOffsetZ;
837 GyroOffsetXRegister gyroOffsetX;
838 GyroOffsetYRegister gyroOffsetY;
839 GyroOffsetZRegister gyroOffsetZ;
840 AccelRadiusRegister accelRadius;
841 MagRadiusRegister magRadius;
843 Bno055Registers(SMBusDevice& device) :
RegisterManager(device, true), chipId(*this), accelChipId(*this), magChipId(*this), gyroChipId(*this), swRevision(*this), bootloaderVersion(*this), pageId(*this), accelX(*this), accelY(*this), accelZ(*this), magnetometerX(*this), magnetometerY(*this), magnetometerZ(*this), gyroX(*this), gyroY(*this), gyroZ(*this), eulHeading(*this), eulRoll(*this), eulPitch(*this), quaW(*this), quaX(*this), quaY(*this), quaZ(*this), linX(*this), linY(*this), linZ(*this), gravX(*this), gravY(*this), gravZ(*this), temp(*this), calibStat(*this), selfTestResult(*this), interruptStatus(*this), sysClockStatus(*this), sysStatus(*this), sysErr(*this), unitSel(*this), operatingMode(*this), powerMode(*this), sysTrigger(*this), tempSource(*this), axisMapConfig(*this), axisMapSign(*this), accelOffsetX(*this), accelOffsetY(*this), accelOffsetZ(*this), magnetometerOffsetX(*this), magnetometerOffsetY(*this), magnetometerOffsetZ(*this), gyroOffsetX(*this), gyroOffsetY(*this), gyroOffsetZ(*this), accelRadius(*this), magRadius(*this)
845 registers.push_back(&chipId);
846 registers.push_back(&accelChipId);
847 registers.push_back(&magChipId);
848 registers.push_back(&gyroChipId);
849 registers.push_back(&swRevision);
850 registers.push_back(&bootloaderVersion);
851 registers.push_back(&pageId);
852 registers.push_back(&accelX);
853 registers.push_back(&accelY);
854 registers.push_back(&accelZ);
855 registers.push_back(&magnetometerX);
856 registers.push_back(&magnetometerY);
857 registers.push_back(&magnetometerZ);
858 registers.push_back(&gyroX);
859 registers.push_back(&gyroY);
860 registers.push_back(&gyroZ);
861 registers.push_back(&eulHeading);
862 registers.push_back(&eulRoll);
863 registers.push_back(&eulPitch);
864 registers.push_back(&quaW);
865 registers.push_back(&quaX);
866 registers.push_back(&quaY);
867 registers.push_back(&quaZ);
868 registers.push_back(&linX);
869 registers.push_back(&linY);
870 registers.push_back(&linZ);
871 registers.push_back(&gravX);
872 registers.push_back(&gravY);
873 registers.push_back(&gravZ);
874 registers.push_back(&temp);
875 registers.push_back(&calibStat);
876 registers.push_back(&selfTestResult);
877 registers.push_back(&interruptStatus);
878 registers.push_back(&sysClockStatus);
879 registers.push_back(&sysStatus);
880 registers.push_back(&sysErr);
881 registers.push_back(&unitSel);
882 registers.push_back(&operatingMode);
883 registers.push_back(&powerMode);
884 registers.push_back(&sysTrigger);
885 registers.push_back(&tempSource);
886 registers.push_back(&axisMapConfig);
887 registers.push_back(&axisMapSign);
888 registers.push_back(&accelOffsetX);
889 registers.push_back(&accelOffsetY);
890 registers.push_back(&accelOffsetZ);
891 registers.push_back(&magnetometerOffsetX);
892 registers.push_back(&magnetometerOffsetY);
893 registers.push_back(&magnetometerOffsetZ);
894 registers.push_back(&gyroOffsetX);
895 registers.push_back(&gyroOffsetY);
896 registers.push_back(&gyroOffsetZ);
897 registers.push_back(&accelRadius);
898 registers.push_back(&magRadius);
PowerModes
Definition: Bno055Registers.h:29
Definition: Register.h:11
Definition: RegisterManager.h:10
OperatingModes
Definition: Bno055Registers.h:12