示例#1
0
        public static void Main(string[] args)
        {
            object sensorLock = new object();
            bool   run        = true;

            ISensor[] sensor = new ISensor[4];
            for (int i = 0; i < 4; i++)
            {
                sensor[i] = null;
            }
            using (SensorListner listner = new SensorListner())
            {
                listner.SensorAttached += delegate(ISensor obj)
                {
                    lock (sensorLock)
                    {
                        if (obj != null)
                        {
                            sensor[(int)obj.Port] = obj;
                            Console.WriteLine(obj.GetSensorName() + " attached on " + obj.Port);
                        }
                    }
                };
                listner.SensorDetached += delegate(SensorPort obj)
                {
                    lock (sensorLock)
                    {
                        Console.WriteLine(sensor[(int)obj] + " detached from " + obj);
                        sensor[(int)obj] = null;
                    }
                };
                ButtonEvents buts = new ButtonEvents();
                buts.EscapePressed += delegate
                {
                    run = false;
                };
                while (run)
                {
                    lock (sensorLock)
                    {
                        /*for (int i = 0; i < sensor.Length; i++) {
                         *                            if (sensor[i] != null) {
                         *                                    typeLabel [i].Text = sensor[i].GetSensorName ();
                         *                                    modeLabel [i].Text = sensor[i].SelectedMode ();
                         *                                    valueLabel[i].Text = sensor[i].ReadAsString ();
                         *                            } else {
                         *                                    typeLabel [i].Text = "Not connected";
                         *                                    modeLabel [i].Text = "-";
                         *                                    valueLabel [i].Text = "-";
                         *                            }
                         *                    }*/
                    }
                    System.Threading.Thread.Sleep(1000);
                }
            }
        }