Exemple #1
0
      public MainForm()
      {
         this.InitializeComponent();
         this.StatusLabel.Text = "";

         this.device = new Device("device", 0);
         this.downloadDevice = new Device("download device", 0);

         this.digitalIo = new PeakDigitalIo("digital IO", 0);
         this.digitalIo.OnInputChange = new PeakDigitalIo.InputChangeHandler(this.DigitalIoChangeHandler);

         this.analogIo = new PeakAnalogIo("analog IO", 0);

         this.encoder = new KublerRotaryEncoder("encoder", 0);
         
         this.motor = new ElmoWhistleMotor("motor", 0);
         this.motor.OnInputChange = new ElmoWhistleMotor.InputChangeHandler(this.MotorInputChangeHandler);
         
         this.camera = new UlcRoboticsCamera("camera", 0);
         this.gps = new UlcRoboticsGps("gps", 0);
         this.nicbotBody = new UlcRoboticsNicbotBody("nicbot body", 0);
         this.nicbotWheel = new UlcRoboticsNicbotWheel("nicbot wheel", 0);
                  
         this.rs232 = new UlcRoboticsRs232("rs232", 0);
         this.rs232.OnSerialReceive = new UlcRoboticsRs232.SerialReceiveHandler(this.Rs232ReceiveHandler);
         this.rs232RxQueue = new Queue();
         
         this.busInterface = new BusInterface();
         this.busInterface.AddDevice(this.device);
         this.busInterface.AddDevice(this.downloadDevice);
         this.busInterface.AddDevice(this.digitalIo);
         this.busInterface.AddDevice(this.analogIo);
         this.busInterface.AddDevice(this.encoder);
         this.busInterface.AddDevice(this.motor);
         this.busInterface.AddDevice(this.camera);
         this.busInterface.AddDevice(this.gps);
         this.busInterface.AddDevice(this.nicbotBody);
         this.busInterface.AddDevice(this.nicbotWheel);
         this.busInterface.AddDevice(this.rs232);

         Array interfaces = Enum.GetValues(typeof(BusInterfaces));

         this.BusInterfaceComboBox.Items.Clear();
         for (IEnumerator i = interfaces.GetEnumerator(); i.MoveNext(); )
         {
            this.BusInterfaceComboBox.Items.Add(i.Current);
         }
         this.BusInterfaceComboBox.SelectedIndex = 0;


         this.BaudComboBox.Items.Clear();
         this.BaudComboBox.Items.Add("10000");
         this.BaudComboBox.Items.Add("20000");
         this.BaudComboBox.Items.Add("50000");
         this.BaudComboBox.Items.Add("100000");
         this.BaudComboBox.Items.Add("125000");
         this.BaudComboBox.Items.Add("250000");
         this.BaudComboBox.Items.Add("500000");
         this.BaudComboBox.Items.Add("1000000");
         this.BaudComboBox.SelectedIndex = 5;


         this.DigitalIoBaudComboBox.Items.Clear();
         this.DigitalIoBaudComboBox.Items.Add("1000000");
         this.DigitalIoBaudComboBox.Items.Add("800000");
         this.DigitalIoBaudComboBox.Items.Add("500000");
         this.DigitalIoBaudComboBox.Items.Add("250000");
         this.DigitalIoBaudComboBox.Items.Add("125000");
         this.DigitalIoBaudComboBox.Items.Add("50000");
         this.DigitalIoBaudComboBox.SelectedIndex = 5;


         this.AnalogIoBaudComboBox.Items.Clear();
         this.AnalogIoBaudComboBox.Items.Add("1000000");
         this.AnalogIoBaudComboBox.Items.Add("800000");
         this.AnalogIoBaudComboBox.Items.Add("500000");
         this.AnalogIoBaudComboBox.Items.Add("250000");
         this.AnalogIoBaudComboBox.Items.Add("125000");
         this.AnalogIoBaudComboBox.Items.Add("50000");
         this.AnalogIoBaudComboBox.SelectedIndex = 5;


         this.EncoderBaudComboBox.Items.Clear();
         this.EncoderBaudComboBox.Items.Add("10000");
         this.EncoderBaudComboBox.Items.Add("20000");
         this.EncoderBaudComboBox.Items.Add("50000");
         this.EncoderBaudComboBox.Items.Add("100000");
         this.EncoderBaudComboBox.Items.Add("125000");
         this.EncoderBaudComboBox.Items.Add("250000");
         this.EncoderBaudComboBox.Items.Add("500000");
         this.EncoderBaudComboBox.Items.Add("1000000");
         this.EncoderBaudComboBox.SelectedIndex = 6;

         this.MotorModeComboBox.SelectedIndex = 0;

         this.CameraBaudComboBox.Items.Clear();
         this.CameraBaudComboBox.Items.Add("10000");
         this.CameraBaudComboBox.Items.Add("20000");
         this.CameraBaudComboBox.Items.Add("50000");
         this.CameraBaudComboBox.Items.Add("125000");
         this.CameraBaudComboBox.Items.Add("250000");
         this.CameraBaudComboBox.Items.Add("500000");
         this.CameraBaudComboBox.Items.Add("1000000");
         this.CameraBaudComboBox.SelectedIndex = 5;


         this.GpsBaudComboBox.Items.Clear();
         this.GpsBaudComboBox.Items.Add("10000");
         this.GpsBaudComboBox.Items.Add("20000");
         this.GpsBaudComboBox.Items.Add("50000");
         this.GpsBaudComboBox.Items.Add("125000");
         this.GpsBaudComboBox.Items.Add("250000");
         this.GpsBaudComboBox.Items.Add("500000");
         this.GpsBaudComboBox.Items.Add("1000000");
         this.GpsBaudComboBox.SelectedIndex = 5;


         this.NicbotBodyBaudComboBox.Items.Clear();
         this.NicbotBodyBaudComboBox.Items.Add("10000");
         this.NicbotBodyBaudComboBox.Items.Add("20000");
         this.NicbotBodyBaudComboBox.Items.Add("50000");
         this.NicbotBodyBaudComboBox.Items.Add("100000");
         this.NicbotBodyBaudComboBox.Items.Add("125000");
         this.NicbotBodyBaudComboBox.Items.Add("250000");
         this.NicbotBodyBaudComboBox.Items.Add("500000");
         this.NicbotBodyBaudComboBox.Items.Add("1000000");
         this.NicbotBodyBaudComboBox.SelectedIndex = 5;


         this.NicbotWheelModeComboBox.SelectedIndex = 0;
         
         this.NicbotWheelBaudComboBox.Items.Clear();
         this.NicbotWheelBaudComboBox.Items.Add("10000");
         this.NicbotWheelBaudComboBox.Items.Add("20000");
         this.NicbotWheelBaudComboBox.Items.Add("50000");
         this.NicbotWheelBaudComboBox.Items.Add("100000");
         this.NicbotWheelBaudComboBox.Items.Add("125000");
         this.NicbotWheelBaudComboBox.Items.Add("250000");
         this.NicbotWheelBaudComboBox.Items.Add("500000");
         this.NicbotWheelBaudComboBox.Items.Add("1000000");
         this.NicbotWheelBaudComboBox.SelectedIndex = 5;


         this.Rs232BaudComboBox.Items.Clear();
         this.Rs232BaudComboBox.Items.Add("10000");
         this.Rs232BaudComboBox.Items.Add("20000");
         this.Rs232BaudComboBox.Items.Add("50000");
         this.Rs232BaudComboBox.Items.Add("125000");
         this.Rs232BaudComboBox.Items.Add("250000");
         this.Rs232BaudComboBox.Items.Add("500000");
         this.Rs232BaudComboBox.Items.Add("1000000");
         this.Rs232BaudComboBox.SelectedIndex = 5;

         this.NicbotAutoDrillOriginCheckBox.Checked = false;
         this.NicbotAutoDrillContinuousModeRadioButton.Checked = true;
         this.NicbotAutoDrillDistanceRetractionRadioButton.Checked = true;

         this.traceQueue = new Queue();

         QueuedTraceListener queuedTraceListener = new QueuedTraceListener(this.traceQueue);
         Trace.Listeners.Add(queuedTraceListener);

         Tracer.MaskString = "FFFFFFFF";

         this.ActivityButton.Text = "Start";
         this.active = false;

         this.DownloadProgressLabel.Text = "";
         this.DownloadActivityButton.Text = "Start";
         this.downloadActive = false;

         this.HeartbeatActivityButton.Text = "Start";
         this.heartbeatActive = false;

         this.GpsDegreesRadioButton.Checked = true;
      }
      public void RemoveDevice(Device device)
      {
         lock (this)
         {
            device.OnTransmit = null;
            device.OnCommError = null;

            if (this.deviceList.Contains(device) != false)
            {
               this.deviceList.Remove(device);
            }
         }
      }
      private void WaitDeviceHeartbeat(Device device)
      {
         DateTime limit = DateTime.Now.AddMilliseconds(BootTimeoutPeriod);

         for (; ; )
         {
            if (false != device.ReceiveBootupHeartbeat)
            {
               Thread.Sleep(250);
               break;
            }
            else if (DateTime.Now > limit)
            {
               device.Fault("boot timeout");
               break;
            }

            Thread.Sleep(50);
         }
      }
      public void AddDevice(Device device)
      {
         device.OnTransmit = new Device.TransmitHandler(this.DeviceTransmit);
         device.OnCommError = new Device.CommErrorHandler(this.DeviceError);

         this.deviceList.Add(device);        
      }