コード例 #1
0
		private void _brick_BrickChanged(object sender, BrickChangedEventArgs e)
		{
			Debug.WriteLine("Brick changed!");

			this._distanceMeasured = (int)e.Ports[InputPort.Four].SIValue;
			txtDistance.Text = this._distanceMeasured.ToString();

			Debug.WriteLine(this._distanceMeasured.ToString());
		}
コード例 #2
0
        //stuff that happen every time the sensor values change
        private void _brick_BrickChanged(object sender, BrickChangedEventArgs e)
        {
            var buttonpressed = _brick.Ports[InputPort.One].SIValue;
            var xcoordinate = _brick.Ports[InputPort.A].SIValue;
            var ycoordinate = _brick.Ports[InputPort.B].SIValue;
            //create comma sperated list of data
            string LogValues = buttonpressed.ToString() + "," + xcoordinate.ToString() +","+ ycoordinate.ToString();
            //add to list
            LogList.Add(LogValues);

    }
コード例 #3
0
		void brick_BrickChanged(object sender, BrickChangedEventArgs e)
		{
			// hack to workaround XAML trying to typecast the Port dictionary to something unbindable...
			List<KeyValue> temp = new List<KeyValue>();

			foreach(KeyValuePair<InputPort, Port> p in e.Ports)
				temp.Add(new KeyValue { Key = p.Key, Value = p.Value });

			InputPorts.DataContext = temp;
			Buttons.DataContext = null;
			Buttons.DataContext = e.Buttons;
		}
コード例 #4
0
		void _brick_BrickChanged(object sender, BrickChangedEventArgs e)
		{
			MotorA.Update(_brick);
			MotorB.Update(_brick);
			MotorC.Update(_brick);
			MotorD.Update(_brick);

			InputOne.Update(_brick);
			InputTwo.Update(_brick);
			InputThree.Update(_brick);
			InputFour.Update(_brick);
		}
コード例 #5
0
        private void OnBrickChanged(BrickChangedEventArgs e)
        {
            EventHandler <BrickChangedEventArgs> handler = BrickChanged;

            if (handler != null)
            {
                if (_context == SynchronizationContext.Current)
                {
                    handler(this, e);
                }
                else
                {
                    _context.Post(delegate { handler(this, e); }, null);
                }
            }
        }
コード例 #6
0
        private void _brick_BrickChanged(object sender, BrickChangedEventArgs e)
        {
            string rawIrValue = e.Ports[InputPort.One].SIValue.ToString();
            int iButton;
            if (Int32.TryParse(rawIrValue, out iButton))
            {
                _data.ActiveButton = iButton;
            }

            string rawUsValue = e.Ports[InputPort.Two].SIValue.ToString();
            int iDistance;
            if (Int32.TryParse(rawUsValue, out iDistance))
            {
                _data.UltrasonicSensorData = iDistance;
            }

            string rawColorValue = e.Ports[InputPort.Three].SIValue.ToString();
            int iColor;
            if (Int32.TryParse(rawColorValue, out iColor))
            {
                _data.ColorSensorData = iColor;
            }

            string rawGyroValue = e.Ports[InputPort.Four].SIValue.ToString();
            int iGyro;
            if (Int32.TryParse(rawGyroValue, out iGyro))
            {
                if(!_gyroOffsetInit)
                {
                    _gyroOffsetInit = true;
                    _gyroOffset = iGyro;
                }
                _data.Angle = iGyro - _gyroOffset;
            }

            string rawTachoValue = e.Ports[_driveSensorPortLeft].SIValue.ToString();
            int iTacho;
            if (Int32.TryParse(rawTachoValue, out iTacho))
            {
                _data.TachoLeftWheel = iTacho;
            }
        }
コード例 #7
0
ファイル: MainWindow.xaml.cs プロジェクト: adrianopsf/duoslam
 void _brick_BrickChanged(object sender, BrickChangedEventArgs e)
 {
     double x, y;
     int density = 240;
     _sensorMotorPos = e.Ports[InputPort.A].SIValue;
     _infraSensor = e.Ports[InputPort.Three].SIValue;
     _ultraSensor = e.Ports[InputPort.Four].SIValue;
     e.Ports[InputPort.Four].SetMode(1);
     txtInfra.Text = "Infra: " + _infraSensor;
     txtUltra.Text = "Ultra: " + _ultraSensor;
     txtMotor.Text = "Motor: " + _sensorMotorPos;
     if (_scan)
     {
         if (_scanEdge)
         {
             _brick.DirectCommand.StepMotorAtSpeedAsync(OutputPort.A, 25, 10, true);
             if (_sensorMotorPos >= _sensorStartPos + 80)
                 _scanEdge = false;
         }
         else
         {
             _brick.DirectCommand.StepMotorAtSpeedAsync(OutputPort.A, -30, 10, true);
             if (_sensorMotorPos <= _sensorStartPos - 80)
                 _scanEdge = true;
         }
         
         DrawLine(
             new SensorMeasuremntDisplay(_sensorMotorPos, _infraSensor, density).x, 
             new SensorMeasuremntDisplay(_sensorMotorPos, _infraSensor, density).y, 
             canvInfra);
         if (_ultraSensor != 255)
         {
             DrawLine(
                 new SensorMeasuremntDisplay(_sensorMotorPos, _ultraSensor, density).x,
                 new SensorMeasuremntDisplay(_sensorMotorPos, _ultraSensor, density).y,
                 canvUltra);
         }
     }
 }
コード例 #8
0
 private void Brick_BrickChanged(object sender, BrickChangedEventArgs e)
 {
     brick.Ports[InputPort.Four].SetMode(InfraredMode.Proximity);
     Console.WriteLine(brick.Ports[InputPort.Four].SIValue);
     brick.DirectCommand.PlayToneAsync(20, 442, 1000);
 }
コード例 #9
0
ファイル: Activity1.cs プロジェクト: BananaScheriff/legoev3
		private void brick_BrickChanged(object sender, BrickChangedEventArgs e)
		{
			_portText.Clear();

			foreach(Port port in e.Ports.Values)
			{
				_portText.AppendFormat("{0}: {1}, {2}, {3}", port.Name, port.Type, port.Mode, port.SIValue);
				_portText.AppendLine();
			}

			_ports.Text = _portText.ToString();
		}
コード例 #10
0
		void brick_BrickChanged(object sender, BrickChangedEventArgs e)
		{
			InputPorts.DataContext = e.Ports;
		}
コード例 #11
0
ファイル: Brick.cs プロジェクト: Sam-son/legoev3
		private void OnBrickChanged(BrickChangedEventArgs e)
		{
			EventHandler<BrickChangedEventArgs> handler = BrickChanged;
			if(handler != null)
			{
				if(_context == SynchronizationContext.Current)
					handler(this, e);
				else
					_context.Post(delegate { handler(this, e); }, null);
			}
		}
コード例 #12
0
        /*
         * _brick_BrickChanged is an event handler that will fire when ever the brick's color sensor reveives new data. 
         */

        void _brick_BrickChanged(object sender, BrickChangedEventArgs e)
        {
            //System.Console.WriteLine("\nIn MaveNavigatorIntermediate()");

            double lightSensorValue = e.Ports[InputPort.One].SIValue;

            if (traversingArc)
            {
                if (lightSensorValue < darkColorSIValue) // black in current 
                {
                    // Possible node found

                    traversingArc = false;
                }
                else if (lightSensorValue > lightColorSIValue) 
                {
                    // Target found

                    targetReached = true;

                    traversingArc = false;

                    MakeTone(1000);

                    Task.Delay(500).Wait();

                    MakeTone(1000);

                    Task.Delay(500).Wait();

                    MakeTone(1000);

                    Task.Delay(500).Wait();
                }
                else
                {
                    TraverseArc(lightSensorValue);
                }
            }

            //System.Console.WriteLine("Leaving MaveNavigatorIntermediate()\n");
        }
コード例 #13
0
 private void _brick_BrickChanged(object sender, BrickChangedEventArgs e)
 {
     Debug.WriteLine("algo ocurrió!");
 }
コード例 #14
0
ファイル: Program.cs プロジェクト: BananaScheriff/legoev3
		static void _brick_BrickChanged(object sender, BrickChangedEventArgs e)
		{
			System.Console.WriteLine(e.Ports[InputPort.One].SIValue);
		}