示例#1
0
        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);
        }
示例#2
0
        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);
        }