/// <summary>
        /// Initialize the Color Sensor state
        /// </summary>
        private void InitializeState()
        {
            if (_state == null)
            {
                _state = new ColorSensorState();
                // Default to Color mode if no config file
                _state.SensorMode = ColorSensorMode.Color;
            }

            if (_state.PollingFrequencyMs == 0)
                _state.PollingFrequencyMs = Contract.DefaultPollingFrequencyMs;

            _state.TimeStamp = DateTime.MinValue;
            _state.Reading = 0;
            _state.Connected = false;

            if (_genericState == null)
                _genericState = new pxanalogsensor.AnalogSensorState();

            // Analog range is 0-1023 (10-bit A/D)
            _genericState.RawMeasurementRange = 1023.0;
            _genericState.RawMeasurement = 0.0;
            _genericState.NormalizedMeasurement = 0.0;
            _genericState.TimeStamp = DateTime.MinValue;

            // Set the hardware identifier from the connected motor port.
            _genericState.HardwareIdentifier = NxtCommon.HardwareIdentifier(_state.SensorPort);
        }
 private void setColorSensorState(ColorSensorState state)
 {
     switch (state.SensorMode)
     {
         case ColorSensorMode.Blue:
             mode = ColorSensorMode.Red;
             break;
         case ColorSensorMode.Red:
             mode = ColorSensorMode.Green;
             break;
         case ColorSensorMode.Green:
             mode = ColorSensorMode.Blue;
             break;
         default:
             mode = ColorSensorMode.Green;
             break;
     }
 }