private void deviceSearcher_DeviceSearchCompleted(object sender, DeviceSearchCompletedEventArgs e) { if (e.Cancelled || e.Error != null) { this.RaiseUploadingCompletedEvent(new AsyncCompletedEventArgs(e.Error, e.Cancelled, null)); } else { if (Encoding.ASCII.GetString(e.DeviceResponse).ToLower().Contains(this.deviceSearcher.Pattern.ToLower())) { bootLoaderMode = false; } AbstractChannel port = new SerialportChannel(e.Port); port.ControllerAddress = e.DeviceResponse[0]; this.devicePort = this.solution.LastWorkedPort = port; AsyncOperation asyncOp = AsyncOperationManager.CreateOperation(Guid.NewGuid()); this.userStateToLifeTime.Add(asyncOp); WorkerEventHandler workerDelegate = new WorkerEventHandler(this.Upload); workerDelegate.BeginInvoke(port, null, null); } }
/// <summary> /// Запуск отладчика /// </summary> public void Start() { if (this.EngineStatus != DebuggerEngineStatus.Stopped) { throw new Exception("Отладчик уже запущен"); } AbstractChannel port = null; if (this.Parameters.ComConection) { port = new SerialportChannel(this.Parameters.PortName, this.Parameters.BaudRate, this.Parameters.ProtocolType); } else { port = new EthernetChannel(this.Parameters.PortIP, 12144, this.Parameters.ProtocolType); } port.ControllerAddress = this.Parameters.ControllerNumber; this.asyncOp = AsyncOperationManager.CreateOperation(port); WorkingDelegateCOM worker = new WorkingDelegateCOM(this.ProceedRequests); worker.BeginInvoke(port, null, null); }