/// <summary> /// Search timer handler. Discover stations /// </summary> /// <param name="sender">Objeto que lanza el evento</param> /// <param name="e">Parámetros asociados al evento</param> private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { //buscar stations controllers List <EndpointAddress> endpointsList = m_searcherServices.GetDiscoveredServices(); foreach (EndpointAddress endpoint in endpointsList) { BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None); try { JBCStationControllerServiceClient JBC_StationControllerService = new JBCStationControllerServiceClient(binding, endpoint); JBC_StationControllerService.Open(); //notificar de un station controller encontrado if (DiscoveredStationControllerEvent != null) { DiscoveredStationControllerEvent(ref JBC_StationControllerService); } string[] lista = JBC_StationControllerService.GetStationList(); for (var i = 0; i <= lista.Length - 1; i++) { //notificar de una estación encontrada dc_Station_Sold_Info stationInfo = JBC_StationControllerService.GetStationInfo(lista[(int)i]); eStationType stationType = (eStationType)((eStationType)stationInfo.StationType); if (DiscoveredStationEvent != null) { DiscoveredStationEvent(ref JBC_StationControllerService, lista[(int)i], stationType); } } } catch (Exception ex) { //Este error sucede al desconectar un Station Controller ya que se intenta acceder a un Endpoint donde nadie escucha Debug.WriteLine(System.Reflection.MethodInfo.GetCurrentMethod().Name + ". Error: " + ex.Message); } } if (m_isSearching) { m_Timer.Start(); } }
private void tmr_Elapsed(object sender, EventArgs e) { if (_stationID >= 0) { //is necessary to maintain control mode _JBC_StationControllerService.KeepControlMode(_stationID); //get station information _stationInfo = _JBC_StationControllerService.GetStationInfo(_stationID); _stationStatus = _JBC_StationControllerService.GetStationStatus(_stationID); _stationSettings = _JBC_StationControllerService.GetStationSettings(_stationID); //update station data lblModel.Text = _stationInfo.Model; lblSW.Text = _stationInfo.Version_Software; if (_stationSettings.Unit == "C") { lblTrafo.Text = _stationStatus.TRAFOTemp.Celsius.ToString() + " ºC"; lblTrafoError.Text = _stationStatus.TempErrorTRAFO.Celsius.ToString() + " ºC"; lblMOSerror.Text = _stationStatus.TempErrorMOS.Celsius.ToString() + " ºC"; } else { lblTrafo.Text = _stationStatus.TRAFOTemp.Fahrenheit.ToString() + " ºF"; lblTrafoError.Text = _stationStatus.TempErrorTRAFO.Fahrenheit.ToString() + " ºF"; lblMOSerror.Text = _stationStatus.TempErrorMOS.Fahrenheit.ToString() + " ºF"; } lblError.Text = _stationStatus.StationError.ToString(); //update station params lblName.Text = _stationSettings.Name; if (_stationSettings.Unit == "C") { lblMaxTemp.Text = _stationSettings.MaxTemp.Celsius.ToString() + " ºC"; lblMinTemp.Text = _stationSettings.MinTemp.Celsius.ToString() + " ºC"; } else { lblMaxTemp.Text = _stationSettings.MaxTemp.Fahrenheit.ToString() + " ºF"; lblMinTemp.Text = _stationSettings.MinTemp.Fahrenheit.ToString() + " ºF"; } //if station supports display settings changes if (_stationInfo.Features.DisplaySettings) { lblUnits.Text = _stationSettings.Unit.ToString(); lblN2.Text = _stationSettings.N2Mode.ToString().Replace("_", ""); lblHelp.Text = _stationSettings.HelpText.ToString().Replace("_", ""); lblBeep.Text = _stationSettings.Beep.ToString().Replace("_", ""); butUnits.Enabled = true; butN2.Enabled = true; butHelp.Enabled = true; butBeep.Enabled = true; } else { lblUnits.Text = "N/A"; // not supported lblN2.Text = "N/A"; // not supported lblHelp.Text = "N/A"; // not supported lblBeep.Text = "N/A"; // not supported butUnits.Enabled = false; butN2.Enabled = false; butHelp.Enabled = false; butBeep.Enabled = false; } //update ports information for (var i = 1; i <= _stationInfo.PortCount; i++) { this.Controls.Find("gbxPort" + System.Convert.ToString(i), true)[0].Enabled = true; dc_StatusTool statusTool = _JBC_StationControllerService.GetPortStatus(_stationID, (dc_EnumConstJBCdc_Port)(i - 1)); Control tool = this.Controls.Find("lblPort" + System.Convert.ToString(i) + "Tool", true)[0]; Control actualTemp = this.Controls.Find("lblPort" + System.Convert.ToString(i) + "ActualTemp", true)[0]; Control selecTemp = this.Controls.Find("lblPort" + System.Convert.ToString(i) + "SelecTemp", true)[0]; Control err = this.Controls.Find("lblPort" + System.Convert.ToString(i) + "Error", true)[0]; Control status = this.Controls.Find("lblPort" + System.Convert.ToString(i) + "Status", true)[0]; tool.Text = (statusTool.ConnectedTool).ToString(); if (_stationSettings.Unit == "C") { actualTemp.Text = statusTool.ActualTemp.Celsius.ToString() + " ºC"; selecTemp.Text = statusTool.PortSelectedTemp.Celsius.ToString() + " ºC"; } else { actualTemp.Text = statusTool.ActualTemp.Fahrenheit.ToString() + " ºF"; selecTemp.Text = statusTool.PortSelectedTemp.Fahrenheit.ToString() + " ºF"; } err.Text = statusTool.ToolError.ToString(); if (statusTool.Extractor_OnOff == dc_EnumConstJBCdc_OnOff._ON) { status.Text = "Extractor"; } else if (statusTool.Hiber_OnOff == dc_EnumConstJBCdc_OnOff._ON) { status.Text = "Hibernation"; } else if (statusTool.Sleep_OnOff == dc_EnumConstJBCdc_OnOff._ON) { status.Text = "Sleep"; } else if (statusTool.Stand_OnOff == dc_EnumConstJBCdc_OnOff._ON) { status.Text = "Stand"; } else { status.Text = "Work"; } } for (var i = _stationInfo.PortCount + 1; i <= 4; i++) { this.Controls.Find("gbxPort" + System.Convert.ToString(i), true)[0].Enabled = false; } } _tmr.Start(); }