Example #1
0
        /// <summary>
        /// Gets the value depending on the current mode
        /// </summary>
        /// <returns>value</returns>
        public async Task <ColorSensorValue> GetValue()
        {
            int raw = await InputMethods.GetReadyRaw(Brick.Socket, PortNumber, 0, (int)Mode);

            ColorSensorValue value = ConvertToSensorValue(raw);

            Value = value;
            return(value);
        }
Example #2
0
        /// <summary>
        /// Override to set the value from EventMonitor
        /// </summary>
        protected sealed override bool SetValue(object value)
        {
            ColorSensorValue newValue = ConvertToSensorValue(value);

            bool hasChanged = (Value != newValue);

            if (hasChanged)
            {
                Value = newValue;
                if (InputChanged != null && MonitorEvents)
                {
                    if (Brick.Socket.SynchronizationContext == SynchronizationContext.Current)
                    {
                        InputChanged(this, Value);
                    }
                    else
                    {
                        Brick.Socket.SynchronizationContext.Post(delegate { InputChanged(this, Value); }, null);
                    }
                }
            }
            return(hasChanged);
        }
Example #3
0
        private ColorSensorValue ConvertToSensorValue(object value)
        {
            if (value == null)
            {
                return(null);
            }
            ColorSensorValue colorSensorValue;

            switch (Mode)
            {
            case ColorSensorMode.Color:
            {
                colorSensorValue = new ColorSensorValue(((ColorSensorColor)(int)value), Mode);
                break;
            }

            default:     //TODO test other colormodes!!
            {
                colorSensorValue = new ColorSensorValue((int)value, Mode);
                break;
            }
            }
            return(colorSensorValue);
        }
Example #4
0
 /// <summary>
 /// constructs a LEGO® MINDSTORMS® EV3 Color Sensor
 /// </summary>
 public ColorSensor(ColorSensorMode mode)
     : base(DeviceType.ColorSensor)
 {
     Mode  = mode;
     Value = new ColorSensorValue(ColorSensorColor.None, Mode);
 }