コード例 #1
0
        private UARTMode ColorModeToSensorMode(ColorMode mode)
        {
            UARTMode sensorMode = UARTMode.Mode0;

            switch (mode)
            {
            case ColorMode.Ambient:
                sensorMode = UARTMode.Mode1;
                break;

            case ColorMode.Color:
                sensorMode = UARTMode.Mode2;
                break;

            case ColorMode.Blue:
                sensorMode = UARTMode.Mode1;
                break;

            case ColorMode.Green:
                sensorMode = UARTMode.Mode0;                        //not supported by the EV3 use relection
                break;

            case ColorMode.Reflection:
                sensorMode = UARTMode.Mode0;
                break;
            }
            return(sensorMode);
        }
コード例 #2
0
ファイル: UARTSensor.cs プロジェクト: thaiEv3/monoev3
        protected bool SetMode(UARTMode mode)
        {
            SetOperatingMode(mode);
            int status = WaitNonZeroStatus(WaitTimout);

            if ((status & UartDataReady) != 0 && (status & UartPortChanged) == 0)
            {
                return(true);
            }
            else
            {
                return(Initialise(mode));
            }
        }
コード例 #3
0
ファイル: UARTSensor.cs プロジェクト: thaiEv3/monoev3
 protected bool Initialise(UARTMode mode)
 {
     for (int i = 0; i < InitRetry; i++)
     {
         if (SensorManager.Instance.GetConnectionType(this.port) != ConnectionType.UART)
         {
             return(false);
         }
         if (InitUart(mode))
         {
             return(true);
         }
         Reset();
     }
     return(false);
 }
コード例 #4
0
        private ColorMode SensorModeToColorMode(UARTMode mode)
        {
            ColorMode colorMode = ColorMode.Reflection;

            switch (mode)
            {
            case UARTMode.Mode1:
                colorMode = ColorMode.Ambient;
                break;

            case UARTMode.Mode2:
                colorMode = ColorMode.Color;
                break;

            case UARTMode.Mode0:
                colorMode = ColorMode.Reflection;
                break;
            }
            return(colorMode);
        }
コード例 #5
0
ファイル: UARTSensor.cs プロジェクト: thaiEv3/monoev3
        private bool InitUart(UARTMode mode)
        {
            for (int i = 0; i < SetUpRetry; i++)
            {
                byte status;
                if (SensorManager.Instance.GetConnectionType(this.port) != ConnectionType.UART)
                {
                    return(false);
                }
                // now try and configure as a UART

                SetOperatingMode(mode);
                status = WaitNonZeroStatus(WaitTimout);
                while ((status & UartPortChanged) != 0)
                {
                    //something change wait for it to become ready
                    if (SensorManager.Instance.GetConnectionType(this.port) != ConnectionType.UART)
                    {
                        return(false);
                    }
                    ClearPortChanged();
                    System.Threading.Thread.Sleep(InitDelay);
                    status = WaitNonZeroStatus(WaitTimout);
                    if ((status & UartDataReady) != 0 && (status & UartPortChanged) == 0)
                    {
                        // device ready make sure it is now in the correct mode
                        SetOperatingMode(mode);
                        //status = WaitNonZeroStatus(WaitTimout);
                    }
                }
                if ((status & UartDataReady) != 0 && (status & UartPortChanged) == 0)
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #6
0
ファイル: UARTSensor.cs プロジェクト: thaiEv3/monoev3
 private void SetOperatingMode(UARTMode mode)
 {
     SensorManager.Instance.SetUartOperatingMode(mode, this.port);
     this.uartMode = mode;
 }
コード例 #7
0
		private ColorMode SensorModeToColorMode (UARTMode mode)
		{
			ColorMode colorMode = ColorMode.Reflection;
			switch (mode) {
				case UARTMode.Mode1:
					colorMode = ColorMode.Ambient;
					break;
				case UARTMode.Mode2:
					colorMode = ColorMode.Color;
					break;
				case UARTMode.Mode0:
					colorMode = ColorMode.Reflection;
					break;
                case UARTMode.Mode4:
                    colorMode = ColorMode.RGB;
                    break;
			}
			return colorMode;
		}
コード例 #8
0
 public void SetUartOperatingMode(UARTMode mode, SensorPort port)
 {
     unchecked {
         UartDevice.IoCtl((Int32)UartIOSetConnection, SetupCommand(port, ConnectionType.UART, SensorType.None, (byte)mode));
     }
 }
コード例 #9
0
ファイル: UARTSensor.cs プロジェクト: RoninWest/monoev3
	    private bool InitUart (UARTMode mode)
		{
			for (int i = 0; i <  SetUpRetry; i++) {
				byte status;
				if ( SensorManager.Instance.GetConnectionType (this.port) != ConnectionType.UART)
					return false;
				// now try and configure as a UART
	        
				SetOperatingMode (mode);
				status = WaitNonZeroStatus (WaitTimout);
				while ((status & UartPortChanged) != 0) {
					//something change wait for it to become ready
					if ( SensorManager.Instance.GetConnectionType (this.port) != ConnectionType.UART)
						return false;
					ClearPortChanged ();
					System.Threading.Thread.Sleep (InitDelay);
					status = WaitNonZeroStatus (WaitTimout);
					if ((status & UartDataReady) != 0 && (status & UartPortChanged) == 0) {
						// device ready make sure it is now in the correct mode
						SetOperatingMode (mode);
						//status = WaitNonZeroStatus(WaitTimout);
					}
				}
				if ((status & UartDataReady) != 0 && (status & UartPortChanged) == 0)
					return true;
			}
			return false;
	    }
コード例 #10
0
ファイル: UARTSensor.cs プロジェクト: RoninWest/monoev3
		private void SetOperatingMode (UARTMode mode)
		{
			SensorManager.Instance.SetUartOperatingMode(mode, this.port);
			this.uartMode = mode;  
	    }
コード例 #11
0
ファイル: UARTSensor.cs プロジェクト: RoninWest/monoev3
		protected bool SetMode(UARTMode mode)
	    {
	        
	        SetOperatingMode(mode);
	        int status = WaitNonZeroStatus(WaitTimout);
	        if ((status & UartDataReady) != 0 && (status & UartPortChanged) == 0)
	        {
	            return true;
	        }
	        else
	            return Initialise(mode);
	    }
コード例 #12
0
ファイル: UARTSensor.cs プロジェクト: RoninWest/monoev3
	    protected bool Initialise(UARTMode mode)
	    {
	        for(int i = 0; i < InitRetry; i++)
	        {
	            if (SensorManager.Instance.GetConnectionType(this.port) != ConnectionType.UART)
	                return false;
	            if (InitUart(mode))
	            {
	                return true;
	            }
	            Reset();
	        }
	        return false;
	    }
コード例 #13
0
ファイル: SensorManager.cs プロジェクト: RoninWest/monoev3
		public void SetUartOperatingMode (UARTMode mode, SensorPort port)
		{
			unchecked {
				UartDevice.IoCtl ((Int32)UartIOSetConnection,  SetupCommand (port, ConnectionType.UART, SensorType.None,(byte) mode));
			}
	    }