BNO055をI2CとUARTで使用するためのライブラリ。UARTはmbedにて不安定なため使用できるボードとできないボードがある模様。
Dependents: BNO055_BME280_ Yabusame2_gyro GRhanawaizman test_deg_read
BNO055.h@5:64b033b30802, 2019-05-13 (annotated)
- Committer:
- Yajirushi
- Date:
- Mon May 13 14:46:38 2019 +0000
- Revision:
- 5:64b033b30802
- Parent:
- 3:363ec3772dce
change comment
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Yajirushi | 0:3807ce385b2a | 1 | #ifndef BNO055_H |
Yajirushi | 0:3807ce385b2a | 2 | #define BNO055_H |
Yajirushi | 0:3807ce385b2a | 3 | |
Yajirushi | 0:3807ce385b2a | 4 | #include "mbed.h" |
Yajirushi | 0:3807ce385b2a | 5 | |
Yajirushi | 0:3807ce385b2a | 6 | //UART通信に使用するバッファの最大サイズ |
Yajirushi | 0:3807ce385b2a | 7 | #define BNO055_UART_BUF_MAXLEN 24 //[byte] |
Yajirushi | 0:3807ce385b2a | 8 | //I2Cデフォルトスレーブアドレス |
Yajirushi | 0:3807ce385b2a | 9 | #define BNO055_I2C_DEFADDR 0x28 |
Yajirushi | 0:3807ce385b2a | 10 | |
Yajirushi | 0:3807ce385b2a | 11 | #define BNO055_PAGE_ID 0x07 |
Yajirushi | 0:3807ce385b2a | 12 | |
Yajirushi | 0:3807ce385b2a | 13 | #define BNO055P0_CHIP_ID 0x00 |
Yajirushi | 0:3807ce385b2a | 14 | #define BNO055P0_ACC_ID 0x01 |
Yajirushi | 0:3807ce385b2a | 15 | #define BNO055P0_MAG_ID 0x02 |
Yajirushi | 0:3807ce385b2a | 16 | #define BNO055P0_GYR_ID 0x03 |
Yajirushi | 0:3807ce385b2a | 17 | #define BNO055P0_SW_REV_ID_LSB 0x04 |
Yajirushi | 0:3807ce385b2a | 18 | #define BNO055P0_SW_REV_ID_MSB 0x05 |
Yajirushi | 0:3807ce385b2a | 19 | #define BNO055P0_BL_REV_ID 0x06 |
Yajirushi | 0:3807ce385b2a | 20 | #define BNO055P0_ACC_DATA_X_LSB 0x08 |
Yajirushi | 0:3807ce385b2a | 21 | #define BNO055P0_ACC_DATA_X_MSB 0x09 |
Yajirushi | 0:3807ce385b2a | 22 | #define BNO055P0_ACC_DATA_Y_LSB 0x0A |
Yajirushi | 0:3807ce385b2a | 23 | #define BNO055P0_ACC_DATA_Y_MSB 0x0B |
Yajirushi | 0:3807ce385b2a | 24 | #define BNO055P0_ACC_DATA_Z_LSB 0x0C |
Yajirushi | 0:3807ce385b2a | 25 | #define BNO055P0_ACC_DATA_Z_MSB 0x0D |
Yajirushi | 0:3807ce385b2a | 26 | #define BNO055P0_MAG_DATA_X_LSB 0x0E |
Yajirushi | 0:3807ce385b2a | 27 | #define BNO055P0_MAG_DATA_X_MSB 0x0F |
Yajirushi | 0:3807ce385b2a | 28 | #define BNO055P0_MAG_DATA_Y_LSB 0x10 |
Yajirushi | 0:3807ce385b2a | 29 | #define BNO055P0_MAG_DATA_Y_MSB 0x11 |
Yajirushi | 0:3807ce385b2a | 30 | #define BNO055P0_MAG_DATA_Z_LSB 0x12 |
Yajirushi | 0:3807ce385b2a | 31 | #define BNO055P0_MAG_DATA_Z_MSB 0x13 |
Yajirushi | 0:3807ce385b2a | 32 | #define BNO055P0_GYR_DATA_X_LSB 0x14 |
Yajirushi | 0:3807ce385b2a | 33 | #define BNO055P0_GYR_DATA_X_MSB 0x15 |
Yajirushi | 0:3807ce385b2a | 34 | #define BNO055P0_GYR_DATA_Y_LSB 0x16 |
Yajirushi | 0:3807ce385b2a | 35 | #define BNO055P0_GYR_DATA_Y_MSB 0x17 |
Yajirushi | 0:3807ce385b2a | 36 | #define BNO055P0_GYR_DATA_Z_LSB 0x18 |
Yajirushi | 0:3807ce385b2a | 37 | #define BNO055P0_GYR_DATA_Z_MSB 0x19 |
Yajirushi | 0:3807ce385b2a | 38 | #define BNO055P0_EUL_HEADING_LSB 0x1A |
Yajirushi | 0:3807ce385b2a | 39 | #define BNO055P0_EUL_HEADING_MSB 0x1B |
Yajirushi | 0:3807ce385b2a | 40 | #define BNO055P0_EUL_ROLL_LSB 0x1C |
Yajirushi | 0:3807ce385b2a | 41 | #define BNO055P0_EUL_ROLL_MSB 0x1D |
Yajirushi | 0:3807ce385b2a | 42 | #define BNO055P0_EUL_PITCH_LSB 0x1E |
Yajirushi | 0:3807ce385b2a | 43 | #define BNO055P0_EUL_PITCH_MSB 0x1F |
Yajirushi | 0:3807ce385b2a | 44 | #define BNO055P0_QUA_DATA_W_LSB 0x20 |
Yajirushi | 0:3807ce385b2a | 45 | #define BNO055P0_QUA_DATA_W_MSB 0x21 |
Yajirushi | 0:3807ce385b2a | 46 | #define BNO055P0_QUA_DATA_X_LSB 0x22 |
Yajirushi | 0:3807ce385b2a | 47 | #define BNO055P0_QUA_DATA_X_MSB 0x23 |
Yajirushi | 0:3807ce385b2a | 48 | #define BNO055P0_QUA_DATA_Y_LSB 0x24 |
Yajirushi | 0:3807ce385b2a | 49 | #define BNO055P0_QUA_DATA_Y_MSB 0x25 |
Yajirushi | 0:3807ce385b2a | 50 | #define BNO055P0_QUA_DATA_Z_LSB 0x26 |
Yajirushi | 0:3807ce385b2a | 51 | #define BNO055P0_QUA_DATA_Z_MSB 0x27 |
Yajirushi | 0:3807ce385b2a | 52 | #define BNO055P0_LIA_DATA_X_LSB 0x28 |
Yajirushi | 0:3807ce385b2a | 53 | #define BNO055P0_LIA_DATA_X_MBS 0x29 |
Yajirushi | 0:3807ce385b2a | 54 | #define BNO055P0_LIA_DATA_Y_LSB 0x2A |
Yajirushi | 0:3807ce385b2a | 55 | #define BNO055P0_LIA_DATA_Y_MBS 0x2B |
Yajirushi | 0:3807ce385b2a | 56 | #define BNO055P0_LIA_DATA_Z_LSB 0x2C |
Yajirushi | 0:3807ce385b2a | 57 | #define BNO055P0_LIA_DATA_Z_MBS 0x2D |
Yajirushi | 0:3807ce385b2a | 58 | #define BNO055P0_GRV_DATA_X_LSB 0x2E |
Yajirushi | 0:3807ce385b2a | 59 | #define BNO055P0_GRV_DATA_X_MSB 0x2F |
Yajirushi | 0:3807ce385b2a | 60 | #define BNO055P0_GRV_DATA_Y_LSB 0x30 |
Yajirushi | 0:3807ce385b2a | 61 | #define BNO055P0_GRV_DATA_Y_MSB 0x31 |
Yajirushi | 0:3807ce385b2a | 62 | #define BNO055P0_GRV_DATA_Z_LSB 0x32 |
Yajirushi | 0:3807ce385b2a | 63 | #define BNO055P0_GRV_DATA_Z_MSB 0x33 |
Yajirushi | 0:3807ce385b2a | 64 | #define BNO055P0_TEMP 0x34 |
Yajirushi | 0:3807ce385b2a | 65 | #define BNO055P0_CALIB_STAT 0x35 |
Yajirushi | 0:3807ce385b2a | 66 | #define BNO055P0_ST_RESULT 0x36 |
Yajirushi | 0:3807ce385b2a | 67 | #define BNO055P0_INT_STA 0x37 |
Yajirushi | 0:3807ce385b2a | 68 | #define BNO055P0_SYS_CLK_STATUS 0x38 |
Yajirushi | 0:3807ce385b2a | 69 | #define BNO055P0_SYS_STATUS 0x39 |
Yajirushi | 0:3807ce385b2a | 70 | #define BNO055P0_SYS_ERR 0x3A |
Yajirushi | 0:3807ce385b2a | 71 | #define BNO055P0_UNIT_SEL 0x3B |
Yajirushi | 0:3807ce385b2a | 72 | #define BNO055P0_OPR_MODE 0x3D |
Yajirushi | 0:3807ce385b2a | 73 | #define BNO055P0_PWR_MODE 0x3E |
Yajirushi | 0:3807ce385b2a | 74 | #define BNO055P0_SYS_TRIGGER 0x3F |
Yajirushi | 0:3807ce385b2a | 75 | #define BNO055P0_TEMP_SOURCE 0x40 |
Yajirushi | 0:3807ce385b2a | 76 | #define BNO055P0_AXIS_MAP_CONFIG 0x41 |
Yajirushi | 0:3807ce385b2a | 77 | #define BNO055P0_AXIS_MAP_SIGN 0x42 |
Yajirushi | 0:3807ce385b2a | 78 | #define BNO055P0_ACC_OFFSET_X_LSB 0x55 |
Yajirushi | 0:3807ce385b2a | 79 | #define BNO055P0_ACC_OFFSET_X_MSB 0x56 |
Yajirushi | 0:3807ce385b2a | 80 | #define BNO055P0_ACC_OFFSET_Y_LSB 0x57 |
Yajirushi | 0:3807ce385b2a | 81 | #define BNO055P0_ACC_OFFSET_Y_MSB 0x58 |
Yajirushi | 0:3807ce385b2a | 82 | #define BNO055P0_ACC_OFFSET_Z_LSB 0x59 |
Yajirushi | 0:3807ce385b2a | 83 | #define BNO055P0_ACC_OFFSET_Z_MSB 0x5A |
Yajirushi | 0:3807ce385b2a | 84 | #define BNO055P0_MAG_OFFSET_X_LSB 0x5B |
Yajirushi | 0:3807ce385b2a | 85 | #define BNO055P0_MAG_OFFSET_X_MSB 0x5C |
Yajirushi | 0:3807ce385b2a | 86 | #define BNO055P0_MAG_OFFSET_Y_LSB 0x5D |
Yajirushi | 0:3807ce385b2a | 87 | #define BNO055P0_MAG_OFFSET_Y_MSB 0x5E |
Yajirushi | 0:3807ce385b2a | 88 | #define BNO055P0_MAG_OFFSET_Z_LSB 0x5F |
Yajirushi | 0:3807ce385b2a | 89 | #define BNO055P0_MAG_OFFSET_Z_MSB 0x60 |
Yajirushi | 0:3807ce385b2a | 90 | #define BNO055P0_GYR_OFFSET_X_LSB 0x61 |
Yajirushi | 0:3807ce385b2a | 91 | #define BNO055P0_GYR_OFFSET_X_MSB 0x62 |
Yajirushi | 0:3807ce385b2a | 92 | #define BNO055P0_GYR_OFFSET_Y_LSB 0x63 |
Yajirushi | 0:3807ce385b2a | 93 | #define BNO055P0_GYR_OFFSET_Y_MSB 0x64 |
Yajirushi | 0:3807ce385b2a | 94 | #define BNO055P0_GYR_OFFSET_Z_LSB 0x65 |
Yajirushi | 0:3807ce385b2a | 95 | #define BNO055P0_GYR_OFFSET_Z_MSB 0x66 |
Yajirushi | 0:3807ce385b2a | 96 | #define BNO055P0_ACC_RADIUS_LSB 0x67 |
Yajirushi | 0:3807ce385b2a | 97 | #define BNO055P0_ACC_RADIUS_MSB 0x68 |
Yajirushi | 0:3807ce385b2a | 98 | #define BNO055P0_MAG_RADIUS_LSB 0x69 |
Yajirushi | 0:3807ce385b2a | 99 | #define BNO055P0_MAG_RADIUS_MSB 0x6A |
Yajirushi | 0:3807ce385b2a | 100 | |
Yajirushi | 0:3807ce385b2a | 101 | #define BNO055P1_ACC_CONFIG 0x08 |
Yajirushi | 0:3807ce385b2a | 102 | #define BNO055P1_MAG_CONFIG 0x09 |
Yajirushi | 0:3807ce385b2a | 103 | #define BNO055P1_GYR_CONFIG_0 0x0A |
Yajirushi | 0:3807ce385b2a | 104 | #define BNO055P1_GYR_CONFIG_1 0x0B |
Yajirushi | 0:3807ce385b2a | 105 | #define BNO055P1_ACC_SLEEP_CONFIG 0x0C |
Yajirushi | 0:3807ce385b2a | 106 | #define BNO055P1_GYR_SLEEP_CONFIG 0x0D |
Yajirushi | 0:3807ce385b2a | 107 | #define BNO055P1_INT_MSK 0x0F |
Yajirushi | 0:3807ce385b2a | 108 | #define BNO055P1_INT_EN 0x10 |
Yajirushi | 0:3807ce385b2a | 109 | #define BNO055P1_ACC_AM_THRES 0x11 |
Yajirushi | 0:3807ce385b2a | 110 | #define BNO055P1_ACC_INT_SETTINGS 0x12 |
Yajirushi | 0:3807ce385b2a | 111 | #define BNO055P1_ACC_HG_DURATION 0x13 |
Yajirushi | 0:3807ce385b2a | 112 | #define BNO055P1_ACC_HG_THRES 0x14 |
Yajirushi | 0:3807ce385b2a | 113 | #define BNO055P1_ACC_NM_THRES 0x15 |
Yajirushi | 0:3807ce385b2a | 114 | #define BNO055P1_ACC_NM_SET 0x16 |
Yajirushi | 0:3807ce385b2a | 115 | #define BNO055P1_GYR_INT_SETING 0x17 |
Yajirushi | 0:3807ce385b2a | 116 | #define BNO055P1_GYR_HR_X_SET 0x18 |
Yajirushi | 0:3807ce385b2a | 117 | #define BNO055P1_GYR_DUR_X 0x19 |
Yajirushi | 0:3807ce385b2a | 118 | #define BNO055P1_GYR_HR_Y_SET 0x1A |
Yajirushi | 0:3807ce385b2a | 119 | #define BNO055P1_GYR_DUR_Y 0x1B |
Yajirushi | 0:3807ce385b2a | 120 | #define BNO055P1_GYR_HR_Z_SET 0x1C |
Yajirushi | 0:3807ce385b2a | 121 | #define BNO055P1_GYR_DUR_Z 0x1D |
Yajirushi | 0:3807ce385b2a | 122 | #define BNO055P1_GYR_AM_THRES 0x1E |
Yajirushi | 0:3807ce385b2a | 123 | #define BNO055P1_GYR_AM_SET 0x1F |
Yajirushi | 0:3807ce385b2a | 124 | |
Yajirushi | 0:3807ce385b2a | 125 | |
Yajirushi | 0:3807ce385b2a | 126 | class BNO055_CTRL{ |
Yajirushi | 0:3807ce385b2a | 127 | public: |
Yajirushi | 0:3807ce385b2a | 128 | BNO055_CTRL(); |
Yajirushi | 0:3807ce385b2a | 129 | virtual ~BNO055_CTRL(); |
Yajirushi | 0:3807ce385b2a | 130 | protected: |
Yajirushi | 0:3807ce385b2a | 131 | bool page1; |
Yajirushi | 0:3807ce385b2a | 132 | char *ary; |
Yajirushi | 0:3807ce385b2a | 133 | char lastError; |
Yajirushi | 0:3807ce385b2a | 134 | char lastLength; |
Yajirushi | 0:3807ce385b2a | 135 | public: |
Yajirushi | 0:3807ce385b2a | 136 | char getNowPage(); |
Yajirushi | 0:3807ce385b2a | 137 | char getLastError(); |
Yajirushi | 0:3807ce385b2a | 138 | char getLastLength(); |
Yajirushi | 0:3807ce385b2a | 139 | virtual void init(); |
Yajirushi | 0:3807ce385b2a | 140 | virtual char rr(bool isPage1, char regAddr); |
Yajirushi | 3:363ec3772dce | 141 | virtual char rrc(bool isPage1, char startRegAddr, unsigned char *receiveBytes, char length); |
Yajirushi | 0:3807ce385b2a | 142 | virtual char wr(bool isPage1, char regAddr, char wBytes); |
Yajirushi | 0:3807ce385b2a | 143 | virtual char wrc(bool isPage1, char startRegAddr, char *Bytes, char length); |
Yajirushi | 0:3807ce385b2a | 144 | }; |
Yajirushi | 0:3807ce385b2a | 145 | |
Yajirushi | 0:3807ce385b2a | 146 | class BNO055_UART_CTRL : public BNO055_CTRL{ |
Yajirushi | 0:3807ce385b2a | 147 | public: |
Yajirushi | 0:3807ce385b2a | 148 | BNO055_UART_CTRL(RawSerial *uart); |
Yajirushi | 0:3807ce385b2a | 149 | virtual ~BNO055_UART_CTRL(); |
Yajirushi | 0:3807ce385b2a | 150 | private: |
Yajirushi | 0:3807ce385b2a | 151 | RawSerial *iface; |
Yajirushi | 0:3807ce385b2a | 152 | short rxd; |
Yajirushi | 0:3807ce385b2a | 153 | bool read_mark; |
Yajirushi | 0:3807ce385b2a | 154 | |
Yajirushi | 0:3807ce385b2a | 155 | void rxInterrupt(); |
Yajirushi | 0:3807ce385b2a | 156 | public: |
Yajirushi | 0:3807ce385b2a | 157 | virtual void init(); |
Yajirushi | 0:3807ce385b2a | 158 | virtual char rr(bool isPage1, char regAddr); |
Yajirushi | 3:363ec3772dce | 159 | virtual char rrc(bool isPage1, char startRegAddr, unsigned char *receiveBytes, char length); |
Yajirushi | 0:3807ce385b2a | 160 | virtual char wr(bool isPage1, char regAddr, char wBytes); |
Yajirushi | 0:3807ce385b2a | 161 | virtual char wrc(bool isPage1, char startRegAddr, char *Bytes, char length); |
Yajirushi | 0:3807ce385b2a | 162 | }; |
Yajirushi | 0:3807ce385b2a | 163 | |
Yajirushi | 0:3807ce385b2a | 164 | class BNO055_I2C_CTRL : public BNO055_CTRL{ |
Yajirushi | 0:3807ce385b2a | 165 | public: |
Yajirushi | 0:3807ce385b2a | 166 | BNO055_I2C_CTRL(I2C *iic, char addr, unsigned int freq); |
Yajirushi | 0:3807ce385b2a | 167 | virtual ~BNO055_I2C_CTRL(); |
Yajirushi | 0:3807ce385b2a | 168 | private: |
Yajirushi | 0:3807ce385b2a | 169 | I2C *iface; |
Yajirushi | 0:3807ce385b2a | 170 | char i2c_writeAddr; |
Yajirushi | 0:3807ce385b2a | 171 | char i2c_readAddr; |
Yajirushi | 0:3807ce385b2a | 172 | unsigned int i2c_freq; |
Yajirushi | 0:3807ce385b2a | 173 | public: |
Yajirushi | 0:3807ce385b2a | 174 | virtual void init(); |
Yajirushi | 0:3807ce385b2a | 175 | virtual char rr(bool isPage1, char regAddr); |
Yajirushi | 3:363ec3772dce | 176 | virtual char rrc(bool isPage1, char startRegAddr, unsigned char *receiveBytes, char length); |
Yajirushi | 0:3807ce385b2a | 177 | virtual char wr(bool isPage1, char regAddr, char wBytes); |
Yajirushi | 0:3807ce385b2a | 178 | virtual char wrc(bool isPage1, char startRegAddr, char *Bytes, char length); |
Yajirushi | 0:3807ce385b2a | 179 | }; |
Yajirushi | 0:3807ce385b2a | 180 | |
Yajirushi | 0:3807ce385b2a | 181 | class BOARDC_BNO055{ |
Yajirushi | 0:3807ce385b2a | 182 | public: |
Yajirushi | 0:3807ce385b2a | 183 | BOARDC_BNO055(PinName tx, PinName rx); |
Yajirushi | 0:3807ce385b2a | 184 | BOARDC_BNO055(RawSerial *uart); |
Yajirushi | 0:3807ce385b2a | 185 | BOARDC_BNO055(PinName scl, PinName sda, char addr=BNO055_I2C_DEFADDR, unsigned int freq=100000); |
Yajirushi | 0:3807ce385b2a | 186 | BOARDC_BNO055(I2C *iic, char addr=BNO055_I2C_DEFADDR, unsigned int freq=100000); |
Yajirushi | 0:3807ce385b2a | 187 | ~BOARDC_BNO055(); |
Yajirushi | 0:3807ce385b2a | 188 | |
Yajirushi | 0:3807ce385b2a | 189 | private: |
Yajirushi | 0:3807ce385b2a | 190 | BNO055_CTRL *ctrl; |
Yajirushi | 0:3807ce385b2a | 191 | float scaleACC; |
Yajirushi | 0:3807ce385b2a | 192 | float scaleMAG; //fixed |
Yajirushi | 0:3807ce385b2a | 193 | float scaleGYRO; |
Yajirushi | 0:3807ce385b2a | 194 | float scaleTEMP; |
Yajirushi | 0:3807ce385b2a | 195 | float scaleEuler; |
Yajirushi | 0:3807ce385b2a | 196 | float scaleLIA; //=scaleACC |
Yajirushi | 0:3807ce385b2a | 197 | float scaleGV; //=scaleACC |
Yajirushi | 0:3807ce385b2a | 198 | double scaleQuaternion; //fixed |
Yajirushi | 0:3807ce385b2a | 199 | unsigned char axisRemap; |
Yajirushi | 0:3807ce385b2a | 200 | unsigned char axisSign; |
Yajirushi | 0:3807ce385b2a | 201 | bool clkExt; |
Yajirushi | 0:3807ce385b2a | 202 | |
Yajirushi | 0:3807ce385b2a | 203 | public: |
Yajirushi | 0:3807ce385b2a | 204 | char initialize(bool resetIface=true); |
Yajirushi | 0:3807ce385b2a | 205 | char getIfaceLastError(); |
Yajirushi | 0:3807ce385b2a | 206 | char getIfaceLastLength(); |
Yajirushi | 0:3807ce385b2a | 207 | |
Yajirushi | 0:3807ce385b2a | 208 | char customRead(bool isPage1, char regAddr); |
Yajirushi | 3:363ec3772dce | 209 | char customReadC(bool isPage1, char startRegAddr, unsigned char *receiveBytes, unsigned char length); |
Yajirushi | 0:3807ce385b2a | 210 | char customWrite(bool isPage1, char regAddr, char wBytes); |
Yajirushi | 0:3807ce385b2a | 211 | char customWriteC(bool isPage1, char startRegAddr, char *Bytes, unsigned char length); |
Yajirushi | 0:3807ce385b2a | 212 | |
Yajirushi | 0:3807ce385b2a | 213 | char getPage(); |
Yajirushi | 0:3807ce385b2a | 214 | void setPage(unsigned char pageNo); |
Yajirushi | 0:3807ce385b2a | 215 | |
Yajirushi | 0:3807ce385b2a | 216 | char getChipID(); |
Yajirushi | 0:3807ce385b2a | 217 | char getAccChipID(); |
Yajirushi | 0:3807ce385b2a | 218 | char getMagChipID(); |
Yajirushi | 0:3807ce385b2a | 219 | char getGyroChipID(); |
Yajirushi | 0:3807ce385b2a | 220 | |
Yajirushi | 0:3807ce385b2a | 221 | short getRevision(); |
Yajirushi | 0:3807ce385b2a | 222 | char getBootRevision(); |
Yajirushi | 0:3807ce385b2a | 223 | |
Yajirushi | 0:3807ce385b2a | 224 | float getAccScale(); |
Yajirushi | 0:3807ce385b2a | 225 | float getMagScale(); |
Yajirushi | 0:3807ce385b2a | 226 | float getGyroScale(); |
Yajirushi | 0:3807ce385b2a | 227 | float getTempScale(); |
Yajirushi | 0:3807ce385b2a | 228 | float getEulerScale(); |
Yajirushi | 0:3807ce385b2a | 229 | float getLinearScale(); |
Yajirushi | 0:3807ce385b2a | 230 | float getGVScale(); |
Yajirushi | 0:3807ce385b2a | 231 | double getQuaternionScale(); |
Yajirushi | 0:3807ce385b2a | 232 | |
Yajirushi | 0:3807ce385b2a | 233 | void getAccDataAll(short &accX, short &accY, short &accZ); |
Yajirushi | 0:3807ce385b2a | 234 | short getAccDataX(); |
Yajirushi | 0:3807ce385b2a | 235 | short getAccDataY(); |
Yajirushi | 0:3807ce385b2a | 236 | short getAccDataZ(); |
Yajirushi | 0:3807ce385b2a | 237 | |
Yajirushi | 0:3807ce385b2a | 238 | void getMagDataAll(short &magX, short &magY, short &magZ); |
Yajirushi | 0:3807ce385b2a | 239 | short getMagDataX(); |
Yajirushi | 0:3807ce385b2a | 240 | short getMagDataY(); |
Yajirushi | 0:3807ce385b2a | 241 | short getMagDataZ(); |
Yajirushi | 0:3807ce385b2a | 242 | |
Yajirushi | 0:3807ce385b2a | 243 | void getGyroDataAll(short &gyroX, short &gyroY, short &gyroZ); |
Yajirushi | 0:3807ce385b2a | 244 | short getGyroDataX(); |
Yajirushi | 0:3807ce385b2a | 245 | short getGyroDataY(); |
Yajirushi | 0:3807ce385b2a | 246 | short getGyroDataZ(); |
Yajirushi | 0:3807ce385b2a | 247 | |
Yajirushi | 0:3807ce385b2a | 248 | void getEulerDataAll(short &E_heading, short &E_roll, short &E_pitch); |
Yajirushi | 0:3807ce385b2a | 249 | short getEulerDataHeading(); |
Yajirushi | 0:3807ce385b2a | 250 | short getEulerDataYaw(); |
Yajirushi | 0:3807ce385b2a | 251 | short getEulerDataRoll(); |
Yajirushi | 0:3807ce385b2a | 252 | short getEulerDataPitch(); |
Yajirushi | 0:3807ce385b2a | 253 | |
Yajirushi | 0:3807ce385b2a | 254 | void get9Axis(short *box); |
Yajirushi | 0:3807ce385b2a | 255 | void get9AxisAndEUL(short *box); |
Yajirushi | 0:3807ce385b2a | 256 | |
Yajirushi | 0:3807ce385b2a | 257 | void getQuaternion(short &q1, short &q2, short &q3, short &q4); |
Yajirushi | 1:7dbc931127c0 | 258 | void getEulerFromQ(double &E_heading, double &E_roll, double &E_pitch); |
Yajirushi | 0:3807ce385b2a | 259 | |
Yajirushi | 0:3807ce385b2a | 260 | void getLinearAccDataAll(short &L_accX, short &L_accY, short &L_accZ); |
Yajirushi | 0:3807ce385b2a | 261 | short getLinearAccDataX(); |
Yajirushi | 0:3807ce385b2a | 262 | short getLinearAccDataY(); |
Yajirushi | 0:3807ce385b2a | 263 | short getLinearAccDataZ(); |
Yajirushi | 0:3807ce385b2a | 264 | |
Yajirushi | 0:3807ce385b2a | 265 | void getGVectorDataAll(short &gvX, short &gvY, short &gvZ); |
Yajirushi | 0:3807ce385b2a | 266 | short getGVectorDataX(); |
Yajirushi | 0:3807ce385b2a | 267 | short getGVectorDataY(); |
Yajirushi | 0:3807ce385b2a | 268 | short getGVectorDataZ(); |
Yajirushi | 0:3807ce385b2a | 269 | |
Yajirushi | 0:3807ce385b2a | 270 | char getTemperature(); |
Yajirushi | 0:3807ce385b2a | 271 | |
Yajirushi | 0:3807ce385b2a | 272 | void getCalibStatusAll(char &sys, char &acc, char &mag, char &gyro); |
Yajirushi | 0:3807ce385b2a | 273 | char getCalibStatusSys(); |
Yajirushi | 0:3807ce385b2a | 274 | char getCalibStatusAcc(); |
Yajirushi | 0:3807ce385b2a | 275 | char getCalibStatusMag(); |
Yajirushi | 0:3807ce385b2a | 276 | char getCalibStatusGyro(); |
Yajirushi | 0:3807ce385b2a | 277 | |
Yajirushi | 0:3807ce385b2a | 278 | char getSelfTestResultAll(); |
Yajirushi | 0:3807ce385b2a | 279 | bool getSelfTestResultMCU(); |
Yajirushi | 0:3807ce385b2a | 280 | bool getSelfTestResultAcc(); |
Yajirushi | 0:3807ce385b2a | 281 | bool getSelfTestResultMag(); |
Yajirushi | 0:3807ce385b2a | 282 | bool getSelfTestResultGyro(); |
Yajirushi | 0:3807ce385b2a | 283 | |
Yajirushi | 0:3807ce385b2a | 284 | char triggeredIntALL(); |
Yajirushi | 0:3807ce385b2a | 285 | bool triggeredACC_NM(); |
Yajirushi | 0:3807ce385b2a | 286 | bool triggeredACC_AM(); |
Yajirushi | 0:3807ce385b2a | 287 | bool triggeredACC_HIGH_G(); |
Yajirushi | 0:3807ce385b2a | 288 | bool triggeredGYR_HIGH_RATE(); |
Yajirushi | 0:3807ce385b2a | 289 | bool triggeredGYRO_AM(); |
Yajirushi | 0:3807ce385b2a | 290 | |
Yajirushi | 0:3807ce385b2a | 291 | bool isSystemClockFixed(); |
Yajirushi | 0:3807ce385b2a | 292 | |
Yajirushi | 0:3807ce385b2a | 293 | char getSystemStatus(); |
Yajirushi | 0:3807ce385b2a | 294 | char getSystemError(); |
Yajirushi | 0:3807ce385b2a | 295 | |
Yajirushi | 0:3807ce385b2a | 296 | char getUNIT_SEL(); |
Yajirushi | 0:3807ce385b2a | 297 | char setUNIT_SEL(char selectValue); |
Yajirushi | 0:3807ce385b2a | 298 | char setUNIT_AccUnit(bool isMeterPerSec2=true); |
Yajirushi | 0:3807ce385b2a | 299 | char setUNIT_GyroUnit(bool isDps=true); |
Yajirushi | 0:3807ce385b2a | 300 | char setUNIT_EulerUnit(bool isDegrees=true); |
Yajirushi | 0:3807ce385b2a | 301 | char setUNIT_Temperature(bool isCelsius=true); |
Yajirushi | 0:3807ce385b2a | 302 | char setUNIT_OrientationMode(bool ori_Android=true); |
Yajirushi | 0:3807ce385b2a | 303 | |
Yajirushi | 0:3807ce385b2a | 304 | char getOperationMode(); |
Yajirushi | 0:3807ce385b2a | 305 | char setOperationMode(char modeValue); |
Yajirushi | 0:3807ce385b2a | 306 | char setOperation_CONFIG(); |
Yajirushi | 0:3807ce385b2a | 307 | char setOperation_ACCONRY(); |
Yajirushi | 0:3807ce385b2a | 308 | char setOperation_MAGONRY(); |
Yajirushi | 0:3807ce385b2a | 309 | char setOperation_GYROONRY(); |
Yajirushi | 0:3807ce385b2a | 310 | char setOperation_ACCMAG(); |
Yajirushi | 0:3807ce385b2a | 311 | char setOperation_ACCGYRO(); |
Yajirushi | 0:3807ce385b2a | 312 | char setOperation_MAGGYRO(); |
Yajirushi | 0:3807ce385b2a | 313 | char setOperation_AMG(); |
Yajirushi | 0:3807ce385b2a | 314 | char setOperation_Fusion_IMU(); |
Yajirushi | 0:3807ce385b2a | 315 | char setOperation_Fusion_COMPASS(); |
Yajirushi | 0:3807ce385b2a | 316 | char setOperation_Fusion_M4G(); |
Yajirushi | 0:3807ce385b2a | 317 | char setOperation_Fusion_NDOF_FMC_OFF(); |
Yajirushi | 0:3807ce385b2a | 318 | char setOperation_Fusion_NDOF(); |
Yajirushi | 0:3807ce385b2a | 319 | |
Yajirushi | 0:3807ce385b2a | 320 | char getPowerMode(); |
Yajirushi | 0:3807ce385b2a | 321 | char setPowerMode(unsigned char modeValue); |
Yajirushi | 0:3807ce385b2a | 322 | char setPowerMode_Normal(); |
Yajirushi | 0:3807ce385b2a | 323 | char setPowerMode_LowPower(); |
Yajirushi | 0:3807ce385b2a | 324 | char setPowerMode_Suspend(); |
Yajirushi | 0:3807ce385b2a | 325 | |
Yajirushi | 0:3807ce385b2a | 326 | char setSysTrigger(char regVal); |
Yajirushi | 0:3807ce385b2a | 327 | char setSys_ExternalCrystal(bool isExternal=true); |
Yajirushi | 0:3807ce385b2a | 328 | char resetInterrupt(); |
Yajirushi | 0:3807ce385b2a | 329 | char soft_reset(); |
Yajirushi | 0:3807ce385b2a | 330 | char execSelfTest(); |
Yajirushi | 0:3807ce385b2a | 331 | |
Yajirushi | 0:3807ce385b2a | 332 | char getTempSource(); |
Yajirushi | 0:3807ce385b2a | 333 | char setTempSource(bool Accelerometer=true); |
Yajirushi | 0:3807ce385b2a | 334 | |
Yajirushi | 0:3807ce385b2a | 335 | char getAxisMapConfig(); |
Yajirushi | 0:3807ce385b2a | 336 | char setAxisMapConfig(char val); |
Yajirushi | 0:3807ce385b2a | 337 | char getAxisMapSign(); |
Yajirushi | 0:3807ce385b2a | 338 | char setAxisMapSign(char val); |
Yajirushi | 0:3807ce385b2a | 339 | char setAxisRemap_topview_topleft(); |
Yajirushi | 0:3807ce385b2a | 340 | char setAxisRemap_topview_topright(); |
Yajirushi | 0:3807ce385b2a | 341 | char setAxisRemap_topview_bottomleft(); |
Yajirushi | 0:3807ce385b2a | 342 | char setAxisRemap_topview_bottomright(); |
Yajirushi | 0:3807ce385b2a | 343 | char setAxisRemap_bottomview_topleft(); |
Yajirushi | 0:3807ce385b2a | 344 | char setAxisRemap_bottomview_topright(); |
Yajirushi | 0:3807ce385b2a | 345 | char setAxisRemap_bottomview_bottomleft(); |
Yajirushi | 0:3807ce385b2a | 346 | char setAxisRemap_bottomview_bottomright(); |
Yajirushi | 0:3807ce385b2a | 347 | char getAxisRemap_type(); |
Yajirushi | 0:3807ce385b2a | 348 | |
Yajirushi | 0:3807ce385b2a | 349 | void getAccOffsetAll(float &offsetX, float &offsetY, float &offsetZ); |
Yajirushi | 0:3807ce385b2a | 350 | float getAccOffsetX(); |
Yajirushi | 0:3807ce385b2a | 351 | float getAccOffsetY(); |
Yajirushi | 0:3807ce385b2a | 352 | float getAccOffsetZ(); |
Yajirushi | 0:3807ce385b2a | 353 | char setAccOffsetAll(float offsetX, float offsetY, float offsetZ); |
Yajirushi | 0:3807ce385b2a | 354 | char setAccOffsetX(float offset); |
Yajirushi | 0:3807ce385b2a | 355 | char setAccOffsetY(float offset); |
Yajirushi | 0:3807ce385b2a | 356 | char setAccOffsetZ(float offset); |
Yajirushi | 0:3807ce385b2a | 357 | |
Yajirushi | 0:3807ce385b2a | 358 | void getMagOffsetAll(float &offsetX, float &offsetY, float &offsetZ); |
Yajirushi | 0:3807ce385b2a | 359 | float getMagOffsetX(); |
Yajirushi | 0:3807ce385b2a | 360 | float getMagOffsetY(); |
Yajirushi | 0:3807ce385b2a | 361 | float getMagOffsetZ(); |
Yajirushi | 0:3807ce385b2a | 362 | char setMagOffsetAll(float offsetX, float offsetY, float offsetZ); |
Yajirushi | 0:3807ce385b2a | 363 | char setMagOffsetX(float offset); |
Yajirushi | 0:3807ce385b2a | 364 | char setMagOffsetY(float offset); |
Yajirushi | 0:3807ce385b2a | 365 | char setMagOffsetZ(float offset); |
Yajirushi | 0:3807ce385b2a | 366 | |
Yajirushi | 0:3807ce385b2a | 367 | void getGyroOffsetAll(float &offsetX, float &offsetY, float &offsetZ); |
Yajirushi | 0:3807ce385b2a | 368 | float getGyroOffsetX(); |
Yajirushi | 0:3807ce385b2a | 369 | float getGyroOffsetY(); |
Yajirushi | 0:3807ce385b2a | 370 | float getGyroOffsetZ(); |
Yajirushi | 0:3807ce385b2a | 371 | char setGyroOffsetAll(float offsetX, float offsetY, float offsetZ); |
Yajirushi | 0:3807ce385b2a | 372 | char setGyroOffsetX(float offset); |
Yajirushi | 0:3807ce385b2a | 373 | char setGyroOffsetY(float offset); |
Yajirushi | 0:3807ce385b2a | 374 | char setGyroOffsetZ(float offset); |
Yajirushi | 0:3807ce385b2a | 375 | |
Yajirushi | 0:3807ce385b2a | 376 | short getAccRadius(); |
Yajirushi | 0:3807ce385b2a | 377 | char setAccRadius(short LSB); |
Yajirushi | 0:3807ce385b2a | 378 | |
Yajirushi | 0:3807ce385b2a | 379 | short getMagRadius(); |
Yajirushi | 0:3807ce385b2a | 380 | char setMagRadius(short LSB); |
Yajirushi | 0:3807ce385b2a | 381 | |
Yajirushi | 0:3807ce385b2a | 382 | char getAccConfig(); |
Yajirushi | 0:3807ce385b2a | 383 | char setAccConfig(char regVal); |
Yajirushi | 0:3807ce385b2a | 384 | char setAccConfig(char gRange, char bandWidth, char powMode); |
Yajirushi | 0:3807ce385b2a | 385 | char setAccRange(unsigned char G); |
Yajirushi | 0:3807ce385b2a | 386 | |
Yajirushi | 0:3807ce385b2a | 387 | char getMagConfig(); |
Yajirushi | 0:3807ce385b2a | 388 | char setMagConfig(char regVal); |
Yajirushi | 0:3807ce385b2a | 389 | char setMagConfig(char rate, char oprMode, char powMode); |
Yajirushi | 0:3807ce385b2a | 390 | |
Yajirushi | 0:3807ce385b2a | 391 | char getGyroConfig_0(); |
Yajirushi | 0:3807ce385b2a | 392 | char setGyroConfig_0(char regVal); |
Yajirushi | 0:3807ce385b2a | 393 | char setGyroConfig_0(char range, char bandWidth); |
Yajirushi | 0:3807ce385b2a | 394 | char getGyroConfig_1(); |
Yajirushi | 0:3807ce385b2a | 395 | char setGyroConfig_1(char powMode); |
Yajirushi | 0:3807ce385b2a | 396 | char setGyroRange(unsigned short dps); |
Yajirushi | 0:3807ce385b2a | 397 | |
Yajirushi | 0:3807ce385b2a | 398 | char getAccSleepConfig(); |
Yajirushi | 0:3807ce385b2a | 399 | char setAccSleepConfig(char regVal); |
Yajirushi | 0:3807ce385b2a | 400 | char setAccSleepConfig(char duration, char mode); |
Yajirushi | 0:3807ce385b2a | 401 | |
Yajirushi | 0:3807ce385b2a | 402 | char getGyroSleepConfig(); |
Yajirushi | 0:3807ce385b2a | 403 | char setGyroSleepConfig(char regVal); |
Yajirushi | 0:3807ce385b2a | 404 | char setGyroSleepConfig(char autoSleepDuration, char duration); |
Yajirushi | 0:3807ce385b2a | 405 | |
Yajirushi | 0:3807ce385b2a | 406 | char getInterruptMask(); |
Yajirushi | 0:3807ce385b2a | 407 | char setInterruptMask(char mask); |
Yajirushi | 0:3807ce385b2a | 408 | |
Yajirushi | 0:3807ce385b2a | 409 | char getInterruptEnable(); |
Yajirushi | 0:3807ce385b2a | 410 | char setInterruptEnable(char mask); |
Yajirushi | 0:3807ce385b2a | 411 | |
Yajirushi | 0:3807ce385b2a | 412 | float getAccAnyMotionThreashold(bool ismg=true); |
Yajirushi | 0:3807ce385b2a | 413 | char setAccAnyMotionThreashold(bool ismg, float threashold); |
Yajirushi | 0:3807ce385b2a | 414 | |
Yajirushi | 0:3807ce385b2a | 415 | char getAccInterruptSettings(); |
Yajirushi | 0:3807ce385b2a | 416 | char setAccInterruptSettings(char settings); |
Yajirushi | 0:3807ce385b2a | 417 | |
Yajirushi | 0:3807ce385b2a | 418 | unsigned short getAccHighGduration(); |
Yajirushi | 0:3807ce385b2a | 419 | char setAccHighGduration(short ms); |
Yajirushi | 0:3807ce385b2a | 420 | |
Yajirushi | 0:3807ce385b2a | 421 | float getAccHighGThreashold(bool ismg=true); |
Yajirushi | 0:3807ce385b2a | 422 | char setAccHighGThreashold(bool ismg, float threashold); |
Yajirushi | 0:3807ce385b2a | 423 | |
Yajirushi | 0:3807ce385b2a | 424 | float getAccNMThreashold(bool ismg=true); |
Yajirushi | 0:3807ce385b2a | 425 | char setAccNMThreashold(bool ismg, float threashold); |
Yajirushi | 0:3807ce385b2a | 426 | |
Yajirushi | 0:3807ce385b2a | 427 | char getAccNMsetting(); |
Yajirushi | 0:3807ce385b2a | 428 | char setAccNMsetting(char setting); |
Yajirushi | 0:3807ce385b2a | 429 | |
Yajirushi | 0:3807ce385b2a | 430 | char getGyroInterruptSettings(); |
Yajirushi | 0:3807ce385b2a | 431 | char setGyroInterruptSettings(char settings); |
Yajirushi | 0:3807ce385b2a | 432 | |
Yajirushi | 0:3807ce385b2a | 433 | char getGyroHighRateXsetting(); |
Yajirushi | 0:3807ce385b2a | 434 | void getGyroHighRateXsetting_dps(float &hyst, float &thres); |
Yajirushi | 0:3807ce385b2a | 435 | char setGyroHighRateXsetting(char setting); |
Yajirushi | 0:3807ce385b2a | 436 | char setGyroHighRateXsetting_dps(float hystVal, float thresVal); |
Yajirushi | 0:3807ce385b2a | 437 | float getGyroHighRateXduration(); |
Yajirushi | 0:3807ce385b2a | 438 | char setGyroHighRateXduration(float duration); |
Yajirushi | 0:3807ce385b2a | 439 | |
Yajirushi | 0:3807ce385b2a | 440 | char getGyroHighRateYsetting(); |
Yajirushi | 0:3807ce385b2a | 441 | void getGyroHighRateYsetting_dps(float &hyst, float &thres); |
Yajirushi | 0:3807ce385b2a | 442 | char setGyroHighRateYsetting(char setting); |
Yajirushi | 0:3807ce385b2a | 443 | char setGyroHighRateYsetting_dps(float hystVal, float thresVal); |
Yajirushi | 0:3807ce385b2a | 444 | float getGyroHighRateYduration(); |
Yajirushi | 0:3807ce385b2a | 445 | char setGyroHighRateYduration(float duration); |
Yajirushi | 0:3807ce385b2a | 446 | |
Yajirushi | 0:3807ce385b2a | 447 | char getGyroHighRateZsetting(); |
Yajirushi | 0:3807ce385b2a | 448 | void getGyroHighRateZsetting_dps(float &hyst, float &thres); |
Yajirushi | 0:3807ce385b2a | 449 | char setGyroHighRateZsetting(char setting); |
Yajirushi | 0:3807ce385b2a | 450 | char setGyroHighRateZsetting_dps(float hystVal, float thresVal); |
Yajirushi | 0:3807ce385b2a | 451 | float getGyroHighRateZduration(); |
Yajirushi | 0:3807ce385b2a | 452 | char setGyroHighRateZduration(float duration); |
Yajirushi | 0:3807ce385b2a | 453 | |
Yajirushi | 0:3807ce385b2a | 454 | float getGyroAnyMotionThreashold(); |
Yajirushi | 0:3807ce385b2a | 455 | char setGyroAnyMotionThreashold(float threashold); |
Yajirushi | 0:3807ce385b2a | 456 | |
Yajirushi | 0:3807ce385b2a | 457 | char getAccAnyMotionSetting(); |
Yajirushi | 0:3807ce385b2a | 458 | char setAccAnyMotionSetting(char setting); |
Yajirushi | 0:3807ce385b2a | 459 | }; |
Yajirushi | 0:3807ce385b2a | 460 | |
Yajirushi | 0:3807ce385b2a | 461 | #endif |