using System; using System.Collections.Generic; using System.Text; using System.Drawing; namespace NKH.MindSqualls { public class NxtColorSensor: NxtPassiveSensor { public NxtColorSensor() : base(NxtSensorType.COLOR_DETECTOR, NxtSensorMode.RAWMODE) { } public Color? TheColor { get { if (pollData.HasValue) { switch (pollData.Value.scaledValue) { case 1: return Color.Black; case 2: return Color.Blue; case 3: return Color.Green; case 4: return Color.Yellow; case 5: return Color.Red; case 6: return Color.White; } } return null; } } private object pollDataLock = new object(); /// /// Polls the sensor, and fires the NXT-G like events if appropriate. /// public override void Poll() { TraceUtil.MethodEnter(); if (Brick.IsConnected) { lock (pollDataLock) { base.Poll(); } } TraceUtil.MethodExit(null); } public void TurnLampOn(byte ColorNum) { Brick.CommLink.SetInputMode(sensorPort, NxtSensorType.COLOR_RED + ColorNum, NxtSensorMode.RAWMODE); } public void TurnLampOff() { Brick.CommLink.SetInputMode(sensorPort, NxtSensorType.COLOR_NONE, NxtSensorMode.RAWMODE); } public void SetToDetectionMode() { Brick.CommLink.SetInputMode(sensorPort, NxtSensorType.COLOR_DETECTOR, NxtSensorMode.RAWMODE); } } }