示例#1
0
        public SerialBNOUpdater(int sigFigs = 4)
        {
            _bnoSensor = new SerialBNO(SerialPorts.COM3, 5000, 5000, SerialBNO.Bno055OpMode.Operation_Mode_Ndof);
            _bnoData   = new BNOData();


            _newData    = new byte[_dataSize + _metaDataCount];
            _newData[0] = (byte)PacketType.StartByte; // start bit = 0xff
            _newData[1] = (byte)PacketType.BNODump;
            _newData[2] = (byte)((_dataSize >> 8) & 0xFF);
            _newData[3] = (byte)(_dataSize & 0xFF);

            _precision = (int)Math.Pow(10, sigFigs - 1);
            //_precision = 1;
            //for (int i = 0; i < sigFigs-1; i++)
            //{
            //    _precision *= 10;
            //}


            _workItem = new WorkItem(GyroUpdater, ref _newData, EventType.BNOUpdate, _bnoData, true, true);

            _bnoSensor.begin();
        }
示例#2
0
 protected override void handleBNOData(BNOData bNOData)
 {
     rb.AddTorque(bNOData.quat.eulerAngles * torqueStrength * rb.mass, ForceMode.Force);
     rb.AddForce(rb.velocity * velScale);
 }
示例#3
0
 protected virtual void handleBNOData(BNOData bNOData)
 {
     rb.MoveRotation(isolateAxisRotation(bNOData.quat, Vector3.up)); // Vector3.right, .2f));
 }
示例#4
0
 protected virtual void handleSerial(string incoming)
 {
     handleBNOData(BNOData.FromString(incoming));
 }