示例#1
0
        /// <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);
        }
        /// <summary>
        /// Post Configure Sensor Connection with body and return the response port.
        /// </summary>
        /// <param name="state">Color Sensor State to use for initialization</param>
        public virtual PortSet <DefaultUpdateResponseType, Fault> ConnectToBrick(ColorSensorState state)
        {
            ConnectToBrick op = new ConnectToBrick();

            op.Body      = new ColorSensorConfig(state.SensorPort);
            op.Body.Name = state.Name;
            op.Body.PollingFrequencyMs = state.PollingFrequencyMs;
            op.Body.SensorMode         = state.SensorMode;

            this.PostUnknownType(op);
            return(op.ResponsePort);
        }