public override void ReadFromConfig() { ComPort = GetConfigString("COM1", "ComPort"); BaudRate = GetConfigInt(57600, "BaudRate"); ComPorts.Clear(); foreach (var port in SerialPort.GetPortNames()) { ComPorts.Add(port); } if (ComPorts.Count == 0) { ComPorts.Add("COM1"); } BaudRates.Clear(); BaudRates.Add(300); BaudRates.Add(1200); BaudRates.Add(2400); BaudRates.Add(4800); BaudRates.Add(9600); BaudRates.Add(14400); BaudRates.Add(19200); BaudRates.Add(28800); BaudRates.Add(38400); BaudRates.Add(57600); BaudRates.Add(115200); }
private void RefreshComPorts() { var coms = SerialPort.GetPortNames(); foreach (var p in coms) { if (!ComPorts.Contains(p)) { ComPorts.AddSorted(p); } } foreach (var p in ComPorts.ToList()) { if (!coms.Contains(p)) { ComPorts.Remove(p); } } if (SelectedComPort == null && ComPorts.Count > 0) { SelectedComPort = ComPorts.First(); } }
public void LoadPorts() { IEnumerable <string> ports = SerialReader.GetAvailablePorts(); List <string> toChange = new List <string>(); //Search not non-existent foreach (var port in ComPorts) { if (!ports.Contains(port)) { toChange.Add(port); } } //Delete not non-existent ComPorts.RemoveRange(toChange); toChange.Clear(); //Search New foreach (var port in ports) { if (!ComPorts.Contains(port)) { toChange.Add(port); } } //Add New ComPorts.AddRange(toChange); //Select One if needed if (SelectedComPort == null || !ComPorts.Contains(SelectedComPort)) { SelectedComPort = ComPorts.FirstOrDefault(); } }
/// <summary> /// Closes open serial connection /// </summary> /// <returns></returns> private async Task CloseSerial() { try { IsBusy = true; var comms = Globals.Serials; var query = ComPorts.Select((value, index) => new { value, index }) .Where(x => x.value.Name == _comPort) .Select(x => x.index) .Take(1); var idx = query.ElementAt(0); // Closes the port only if it is currently open if (ComPorts[idx].Used) { // Send message to close the tab attached that is attached to the serial port that is being closed (Application.Current.Properties["MessageBus"] as MessageBus) .Publish(new MessageCenter("closeTab", new Tuple <string, string>(_comPort, comms[_comPort].SerialNo))); comms.Remove(_comPort); ComPorts[idx].Used = false; Globals.Logger.LogInformation($"Closed serial port {_comPort}"); } } finally { IsBusy = false; COMPORT = " "; } }
// Conexion al arduino. // Connection to Arduino. private void ConnectArduino() { string portComSelected = ComPorts.GetItemText(ComPorts.SelectedItem); ArduinoPort = new SerialPort(portComSelected, 9600, Parity.None, 8, StopBits.One); // Initialize serial port. try { Conexion = true; // Establecer la conexion en TRUE para validar. || This value validate if arduino and APP are binded. ArduinoPort.Open(); // Estilos que cambian al modificar la conexion. // EN: Styles for form button and label. Connection_btn.Text = "CLOSE"; Connection_btn.BackColor = Color.Crimson; StateLevel_lb.Text = "CONNECTED"; StateLevel_lb.ForeColor = Color.FromArgb(6, 214, 160); // ES: Activa los controles // EN: Enable the controls Red_Controller.Enabled = true; Green_Controller.Enabled = true; Blue_Controller.Enabled = true; } catch (Exception e) { MessageBox.Show("Error: " + e.Message, "EXCEPTION.", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void Init() { this.ComPorts = new ObservableCollection <string>(); LlenarComPorts(); this.SelectedComPortUno = ComPorts.FirstOrDefault(c => c == Properties.Settings.Default.ComPortUno); this.SelectedComPortNano = ComPorts.FirstOrDefault(c => c == Properties.Settings.Default.ComPortNano); }
public void RefreshCOM() { string[] ports = SerialPort.GetPortNames(); foreach (var port in ports) { ComPorts.Add(port); } }
private void AddPort(string port) { for (int j = 0; j < ComPorts.Count; j++) { if (port.CompareTo(ComPorts[j]) < 0) { ComPorts.Insert(j, port); break; } } }
// Use this for initialization void Start() { //Create python engine m_engine = Python.CreateEngine(); cwd = Directory.GetCurrentDirectory(); unityCwd = Directory.GetCurrentDirectory(); //Connect to gamobject comports //TODO: Initialize here only comPorts = GetComponent <ComPorts>(); Debug.Log("comports " + comPorts); }
public MainViewModel() { OpenFile = new RelayCommand(() => { OpenFileDialog openFileDialog = new OpenFileDialog { Filter = "Text files (*.txt)|*.txt" }; if (openFileDialog.ShowDialog() != true) { return; } SenderTextBox = File.ReadAllText(openFileDialog.FileName); }); Send = new RelayCommand(() => { if (_modemTalking == null || _selectedCom == null) { MessageBox.Show("Choose serial port."); return; } if (SenderTextBox == null) { MessageBox.Show("Enter message to be sent."); return; } _modemTalking.Send(SenderTextBox); }); RefreshPorts = new RelayCommand(() => { _modemTalking?.Close(); _selectedCom = null; ComPorts?.Clear(); foreach (var portName in SerialPort.GetPortNames()) { ComPorts?.Add(portName); } }); ClosePorts = new RelayCommand(() => { _modemTalking?.Close(); }); }
private void CheckForNewPortsAsync() { IEnumerable <string> ports = SerialPort.GetPortNames().OrderBy(s => s); foreach (string comPort in ComPorts) { if (!ports.Contains(comPort)) { ComPorts.Remove(comPort); } } foreach (var port in ports) { if (!ComPorts.Contains(port)) { AddPort(port); } } }
private void SetDefaultComPorts() { SerialPort.GetPortNames().ToList().ForEach(ComPorts.Add); //Autoselect for EdgePort hookup if (ComPorts.Count > 3) { var number = new Regex(@"(\d+)$"); //Take last 4 var edgeport = ComPorts.Select(c => new { Port = c, Numer = int.Parse(number.Match(c).Value) }) .OrderByDescending(c => c.Numer).Take(4).OrderBy(c => c.Numer).ToArray(); // .Take(4) // (n => ).ToArray(); ELComPort = edgeport[1].Port; ADComPort = edgeport[0].Port; DVComPort = edgeport[2].Port; } }
public MainWindow() { Log.Register(LogHandler); Logs = new ObservableCollection <string>(); ComPorts = SerialPort.GetPortNames().ToList(); ArduinoPort = ComPorts.FirstOrDefault(); DataContext = this; InitializeComponent(); var wrapService = new WrapService(); wrapService.Add(_arduinoAdalightService); _ledMatrixPreviewService.LedArray = LedArrayPreview; wrapService.Add(_ledMatrixPreviewService); _processor = new Processor(); _processor.Run(wrapService); MinimizeToTray.Enable(this); }
private void Construct() { ComPort = Properties.Settings.Default.LastUsedComPort; OwnPhoneNumber = "5555555555"; BaudRate = Properties.Settings.Default.LastUsedBaudRate.ToString(); DataBits = 8; StopBits = 1; ParityBits = "None"; ReadTimeout = 300; WriteTimeout = 300; foreach (string s in System.IO.Ports.SerialPort.GetPortNames()) { ComPorts.Add(s); } BaudRates.Add("4800"); BaudRates.Add("9600"); BaudRates.Add("19200"); BaudRates.Add("38400"); BaudRates.Add("57600"); }
void Awake() { //Get available COM ports availablePorts = new ComPorts(); EnfluxVRSuit.startScanPorts(availablePorts); }
/// <summary> /// Code used to create/open meter object and create a tab for this item /// </summary> public async Task <string> CreateNewMeter() { Dictionary <string, Meter> meters = Globals.Meters; // Logs into meter and retrieves it's ID _id = await _serial.SetupSerial(_comPort); if (_id == "") { InfoView info = null; InfoViewModel ifvm = new InfoViewModel("Unable to Connect", "COM Port already open, close port or choose another COM..."); Application.Current.Dispatcher.Invoke(() => { info = new InfoView { Owner = Application.Current.MainWindow, WindowStartupLocation = WindowStartupLocation.CenterOwner, DataContext = ifvm }; info.Show(); }); return(null); } var query = ComPorts.Select((value, index) => new { value, index }) .Where(x => x.value.Name == _comPort) .Select(x => x.index) .Take(1); ComPorts[query.ElementAt(0)].Used = true; // Creates new meter if imported meters do not match current meter if (!meters.ContainsKey(_id)) { Globals.Logger.LogInformation($"Creating new meter for {_id}"); meters.Add(_id, new Meter()); var meter = meters[_id]; meter.ID = _id; // Sets the size of the meter based on the type/version of meter connected string version = await _serial.GetVersion(); string[] lines = version.Split(new char[] { '\n', '\r' }, System.StringSplitOptions.RemoveEmptyEntries); string inspect = ""; bool stop = false; foreach (string line in lines) { if (line.ToLower().Contains("software")) { stop = true; } else if (stop) { inspect = line; break; } } var cols = inspect.Split(new char[0], System.StringSplitOptions.RemoveEmptyEntries); string[] serials = (await _serial.GetChildSerial()).Split(','); if (cols[1] == "59330354") { meter.Firmware = cols[1]; _serial.NewFirmware = true; // Retrieves child serial numbers and assigns them to respective channel for (int i = 0; i < 12; i++) { meter.Channels.Add(new Channel(i + 1)); meter.Channels[i].Serial = serials[i]; } Globals.Logger.LogInformation($"Meter {_id} has firmware version {meter.Firmware}."); } else if (cols[1] == "59330353") { meter.Firmware = cols[1]; // Retrieves child serial numbers and assigns them to respective channel for (int i = 0; i < 12; i++) { meter.Channels.Add(new Channel(i + 1)); meter.Channels[i].Serial = serials[i]; } Globals.Logger.LogInformation($"Meter {_id} has firmware version {meter.Firmware}."); } else { InfoView info = null; InfoViewModel ifvm = new InfoViewModel("Bad Firmware Version", $"Invalid Firmware Version {cols[1]}"); Application.Current.Dispatcher.Invoke(() => { info = new InfoView { Owner = Application.Current.MainWindow, WindowStartupLocation = WindowStartupLocation.CenterOwner, DataContext = ifvm }; info.Show(); }); return(null); } } else { // Firmware was not populated from the file so read directly from the meter if (meters[_id].Firmware == null) { string version = await _serial.GetVersion(); string[] lines = version.Split(new char[] { '\n', '\r' }, System.StringSplitOptions.RemoveEmptyEntries); string inspect = ""; bool stop = false; foreach (string line in lines) { if (line.ToLower().Contains("software")) { stop = true; } else if (stop) { inspect = line; break; } } var cols = inspect.Split(new char[0], System.StringSplitOptions.RemoveEmptyEntries); meters[_id].Firmware = cols[1]; Globals.Logger.LogInformation($"Meter {_id} has firmware version {meters[_id].Firmware}."); } // This is an unknown firmware version, print message to user and exit if (meters[_id].Firmware != "59330353" && meters[_id].Firmware != "59330354") { InfoView info = null; InfoViewModel ifvm = new InfoViewModel("Bad Firmware Version", $"Invalid Firmware Version {meters[_id].Firmware}"); Application.Current.Dispatcher.Invoke(() => { info = new InfoView { Owner = Application.Current.MainWindow, WindowStartupLocation = WindowStartupLocation.CenterOwner, DataContext = ifvm }; info.Show(); }); return(null); } else { _serial.NewFirmware = (meters[_id].Firmware == "59330354"); } } return(_id); }
public MainViewModel() { OpenFile = new RelayCommand(() => { OpenFileDialog openFileDialog = new OpenFileDialog { Filter = "Text files (*.txt)|*.txt" }; if (openFileDialog.ShowDialog() != true) { return; } SenderTextBox = File.ReadAllText(openFileDialog.FileName); }); Send = new RelayCommand(() => { if (_senderModem == null || _selectedSenderCom == null) { MessageBox.Show("Choose serial port."); return; } if (SenderTextBox == null) { MessageBox.Show("Enter message to be sent."); return; } Task.Run(() => _senderModem.Send(Encoding.GetEncoding(28591).GetBytes(SenderTextBox))); }); BackgroundWorker reciveWorker = new BackgroundWorker(); reciveWorker.DoWork += ReciveMessage; reciveWorker.RunWorkerCompleted += ReciveWorker_RunWorkerCompleted; Receive = new RelayCommand(() => { if (_reciverModem == null) { MessageBox.Show("Choose serial port."); return; } if (!reciveWorker.IsBusy) { reciveWorker.RunWorkerAsync(); } }); RefreshPorts = new RelayCommand(() => { _senderModem?.Close(); _reciverModem?.Close(); _selectedReciverCom = null; _selectedSenderCom = null; ComPorts?.Clear(); foreach (var portName in SerialPort.GetPortNames()) { ComPorts?.Add(portName); } }); }