public AxisRemap GetAxisRemap() { AxisRemap map = new AxisRemap(); byte mapConfig = ReadRegister(BNO055_AXIS_MAP_CONFIG_ADDR); byte signConfig = ReadRegister(BNO055_AXIS_MAP_SIGN_ADDR); map.Z = (byte)((mapConfig >> 4) & 0x03); map.Y = (byte)((mapConfig >> 2) & 0x03); map.X = (byte)(mapConfig & 0x03); map.ZSign = (byte)((signConfig >> 2) & 0x01); map.YSign = (byte)((signConfig >> 1) & 0x01); map.XSign = (byte)(signConfig & 0x01); return(map); }
public void SetAxisRemap(AxisRemap map) { byte mapConfig = 0; byte signConfig = 0; mapConfig |= (byte)((map.Z & 0x03) << 4); mapConfig |= (byte)((map.Y & 0x03) << 2); mapConfig |= (byte)(map.X & 0x03); signConfig |= (byte)((map.ZSign & 0x01) << 2); signConfig |= (byte)((map.YSign & 0x01) << 1); signConfig |= (byte)(map.XSign & 0x01); SetMode(OperationMode.OPERATION_MODE_CONFIG); WriteRegister(BNO055_AXIS_MAP_CONFIG_ADDR, mapConfig); WriteRegister(BNO055_AXIS_MAP_SIGN_ADDR, signConfig); SetMode(OperatingMode); }