public static MonitorWindow Create(SerialPortChat portChat)
 {
     if (instance == null)
     {
         instance = new MonitorWindow();
     }
     instance.portChat = portChat;
     instance.portChat.RecivedAnswer += PortChat_RecivedAnswer;
     instance.WindowState             = WindowState.Normal;
     instance.commandTimer            = new Timer(new TimerCallback(SendCommand));
     instance.commandTimer.Change(500, 3000);
     return(instance);
 }
 private void btnOpenClose_Click(object sender, RoutedEventArgs e)
 {
     if (portChat == null)
     {
         portChat                = new SerialPortChat((string)portsNames.SelectedItem, (int)baudRates.SelectedItem, "None", 8, "One", "None");
         portChat.PortOpen      += PortChat_PortOpen;
         portChat.PortClose     += PortChat_PortClose;
         portChat.RecivedAnswer += PortChat_RecivedAnswer;
         portChat.OpenPort();
         btnMonitoring.IsEnabled = true;
         btnSettings.IsEnabled   = true;
     }
     else
     {
         portChat.ClosePort();
         portChat = null;
     }
 }
 private void btnOpenClose_Click(object sender, RoutedEventArgs e)
 {
     if (portChat == null)
     {
         portChat            = new SerialPortChat((string)portsNames.SelectedItem, (int)baudRates.SelectedItem, "None", 8, "One", "None");
         portChat.PortOpen  += PortChat_PortOpen;
         portChat.PortClose += PortChat_PortClose;
         portChat.OpenPort();
         commandTimer = new Timer(new TimerCallback(SendCommand));
         alarmTimer   = new Timer(new TimerCallback(SendAlarm));
     }
     else
     {
         commandTimer.Dispose();
         alarmTimer.Dispose();
         portChat.ClosePort();
         portChat = null;
     }
 }