private static void Application_ApplicationExit(object sender, EventArgs e) { try { string configFileName = GetConfigFilePath(); if (File.Exists(configFileName)) { string configData = File.ReadAllText(configFileName); if (configData.Trim().Length > 0) { COMDeviceInfo deviceConfigInfo = JsonConvert.DeserializeObject <COMDeviceInfo>(configData); if (deviceConfigInfo.VirtualDevices != null && deviceConfigInfo.VirtualDevices.Count > 0) { //start COM intermediate service for the appliation once the configuration settings are completed ServiceController service = new ServiceController("ComIntermediateService"); if (service.Status != ServiceControllerStatus.Running) { service.Start(); } } } } } catch (Exception ex) { Log.Input(ex); } }
private void Form1_Load(object sender, EventArgs e) { try { _configFileName = GetConfigFilePath(); drpDeviceBaudRate.SelectedItem = "9600"; _serialPortList = SerialPort.GetPortNames(); DeviceSerialPort.Form = this; DeviceSerialPort.CallBackMethod = "CallBackDevicePortData"; if (System.IO.File.Exists(_configFileName)) { string configData = System.IO.File.ReadAllText(_configFileName); if (configData.Trim().Length > 0) { COMDeviceInfo deviceConfigInfo = JsonConvert.DeserializeObject <COMDeviceInfo>(configData); txtDeviceCOM.Text = deviceConfigInfo.DevicePortName; } } } catch (Exception ex) { Log.Input(ex); MessageBox.Show(this, ex.Message); } }
/// <summary> /// Set the Current COM Device /// </summary> /// <param name="deviceId">ID of the COM device to be used</param> public void SetCOMDevice(string deviceId) { COMDeviceInfo comDevice = GetCOMDevices().Find(p => p.DeviceID == deviceId); if (comDevice != null) { _SelectedCOMDevice = comDevice; InitUARTSerialPort(); } }
/// <summary> /// During the initialization phase, guess which COM device should be considered the one communicating to the Chip. /// If there is no device with the string "UART" in its name it will select the first COM device. /// </summary> /// <returns>COMDeviceInfo object</returns> private COMDeviceInfo GuessCOMDevice() { List <COMDeviceInfo> comDevices = GetCOMDevices(); COMDeviceInfo defaultCOMDevice = comDevices.Find(p => p.Name.ToLower().Contains("uart")); if (defaultCOMDevice == null && comDevices.Count > 0) { defaultCOMDevice = comDevices[0]; } return(defaultCOMDevice); }
/// <summary> /// Main Constructor /// </summary> /// <param name="templateRepo">Repository Template Service</param> /// <param name="userService">User Service</param> /// <param name="codenameService">4x4 Service</param> /// <param name="iotHubService">IoT Hub Service</param> public PreviewTemplateViewModel(ICosmosDBRepository <Template> templateRepo, IUserService userService, IFourByFourService codenameService, IIoTHubService iotHubService) { Log.Debug("PreviewTemplate ViewModel called"); _TemplateRepo = templateRepo; _UserService = userService; _IotHubService = iotHubService; _CodenameService = codenameService; //Set up chip default deviceID //_CodenameService.FourByFourPacketReceived += _CodenameService_CodenamePacketReceived; COMDevices = _CodenameService.GetCOMDevices(); _SelectedCOMDevice = _COMDevices.Find(p => p.DeviceID == _CodenameService.SelectCOMDevice.DeviceID); //Set commands _Initialize = new AsyncCommand <bool>(() => InitializeView(Parameter)); _RetryCheck = new RelayCommand(p => InitializeChip()); _DeviceChanged = new RelayCommand(p => _CodenameService.SetCOMDevice(_SelectedCOMDevice.DeviceID)); }
/// <summary> /// Initialize the service /// - Initiliaze the UART Service /// - Initiliaze the SerialPort object (if device found) /// </summary> public void Init() { if (_Initialized) { return; } //Init UART _UARTService = new UARTService(); COMDeviceInfo comDevice = GuessCOMDevice(); if (comDevice != null) { _SelectedCOMDevice = comDevice; InitUARTSerialPort(); } _Initialized = true; }
protected override void OnStart(string[] args) { try { _configFileName = GetConfigFilePath(); if (System.IO.File.Exists(_configFileName)) { string configData = System.IO.File.ReadAllText(_configFileName); if (configData.Trim().Length > 0) { COMDeviceInfo deviceConfigInfo = JsonConvert.DeserializeObject <COMDeviceInfo>(configData); _devicePort = new SerialPort(deviceConfigInfo.DevicePortName, 9600, Parity.None, 8, StopBits.One); _devicePort.Open(); _devicePort.DataReceived += new SerialDataReceivedEventHandler((sender, e) => DevicePortDataReceived(sender, e)); SerialPort virtualSerialPort = null; _virtualPorts = new List <SerialPort>(); _virtualPortInfoList = new List <VirtualPortInfo>(); foreach (VCOMInfo com in deviceConfigInfo.VirtualDevices) { string vCOMPort = com.VirtualPortName.Replace("A", "B"); virtualSerialPort = new SerialPort(vCOMPort, 9600, Parity.None, 8, StopBits.One); virtualSerialPort.Open(); virtualSerialPort.DataReceived += new SerialDataReceivedEventHandler((sender, e) => VirtualSerialPortDataReceived(sender, e, com.IPAddress)); _virtualPorts.Add(virtualSerialPort); _virtualPortInfoList.Add(new VirtualPortInfo(vCOMPort, com.IPAddress)); } } } else { Log.Input("Config file doesn't exist"); } } catch (Exception ex) { Log.Input(ex); } }
private void SetClientDetailValues(string[] devices) { try { string[] deviceInfo; COMDeviceInfo deviceConfigInfo = new COMDeviceInfo(); if (File.Exists(_configFileName)) { string configData = File.ReadAllText(_configFileName); if (configData.Trim().Length > 0) { deviceConfigInfo = JsonConvert.DeserializeObject <COMDeviceInfo>(configData); } } bool missingInformation = false; if (devices.Length > 0) { deviceInfo = devices[0].Split('-'); if (deviceInfo.Length > 1) { txtDeviceName1.Text = deviceInfo[0].Trim(); txtIPAddress1.Text = deviceInfo[1].Trim(); if (deviceConfigInfo.VirtualDevices.Count > 0) { drpVCOM1.SelectedItem = deviceConfigInfo.VirtualDevices[0].VirtualPortName; } } else { missingInformation = true; } } if (devices.Length > 1) { deviceInfo = devices[1].Split('-'); if (deviceInfo.Length > 1) { txtDeviceName2.Text = deviceInfo[0].Trim(); txtIPAddress2.Text = deviceInfo[1].Trim(); if (deviceConfigInfo.VirtualDevices.Count > 1) { drpVCOM2.SelectedItem = deviceConfigInfo.VirtualDevices[1].VirtualPortName; } } else { missingInformation = true; } } if (devices.Length > 2) { deviceInfo = devices[2].Split('-'); if (deviceInfo.Length > 1) { txtDeviceName3.Text = deviceInfo[0].Trim(); txtIPAddress3.Text = deviceInfo[1].Trim(); if (deviceConfigInfo.VirtualDevices.Count > 2) { drpVCOM3.SelectedItem = deviceConfigInfo.VirtualDevices[2].VirtualPortName; } } else { missingInformation = true; } } if (devices.Length > 3) { deviceInfo = devices[3].Split('-'); if (deviceInfo.Length > 1) { txtDeviceName4.Text = deviceInfo[0].Trim(); txtIPAddress4.Text = deviceInfo[1].Trim(); if (deviceConfigInfo.VirtualDevices.Count > 3) { drpVCOM4.SelectedItem = deviceConfigInfo.VirtualDevices[3].VirtualPortName; } } else { missingInformation = true; } } if (devices.Length > 4) { deviceInfo = devices[4].Split('-'); if (deviceInfo.Length > 1) { txtDeviceName5.Text = deviceInfo[0].Trim(); txtIPAddress5.Text = deviceInfo[1].Trim(); if (deviceConfigInfo.VirtualDevices.Count > 4) { drpVCOM5.SelectedItem = deviceConfigInfo.VirtualDevices[4].VirtualPortName; } } else { missingInformation = true; } } if (missingInformation) { MessageBox.Show(this, "Some of client detail is missing - " + string.Join(",", devices)); } if (devices.Length == 0) { MessageBox.Show(this, "Client detail is not available"); } } catch (Exception ex) { Log.Input(ex); MessageBox.Show(this, ex.Message); } }
private void btnFinish_Click(object sender, EventArgs e) { PopupForm popupForm = null; try { btnFinish.Enabled = false; popupForm = new PopupForm("Resetting virtual ports. please wait."); if (ValidateChildren(ValidationConstraints.Enabled)) { if (!_saveVCOMDetails) { MessageBox.Show(this, "Please fix errors before continue"); return; } } popupForm.Show(this); COMDeviceInfo deviceInfo = new COMDeviceInfo(); deviceInfo.DevicePortName = DeviceSerialPort.Port; VCOMInfo vCOMInfo = new VCOMInfo(); if (txtDeviceName1.Text.Trim().Length > 0) { vCOMInfo.DeviceName = txtDeviceName1.Text; vCOMInfo.IPAddress = txtIPAddress1.Text; vCOMInfo.VirtualPortName = drpVCOM1.SelectedItem.ToString(); deviceInfo.VirtualDevices.Add(vCOMInfo); } if (txtDeviceName2.Text.Trim().Length > 0) { vCOMInfo = new VCOMInfo(); vCOMInfo.DeviceName = txtDeviceName2.Text; vCOMInfo.IPAddress = txtIPAddress2.Text; vCOMInfo.VirtualPortName = drpVCOM2.SelectedItem.ToString(); deviceInfo.VirtualDevices.Add(vCOMInfo); } if (txtDeviceName3.Text.Trim().Length > 0) { vCOMInfo = new VCOMInfo(); vCOMInfo.DeviceName = txtDeviceName3.Text; vCOMInfo.IPAddress = txtIPAddress3.Text; vCOMInfo.VirtualPortName = drpVCOM3.SelectedItem.ToString(); deviceInfo.VirtualDevices.Add(vCOMInfo); } if (txtDeviceName4.Text.Trim().Length > 0) { vCOMInfo = new VCOMInfo(); vCOMInfo.DeviceName = txtDeviceName4.Text; vCOMInfo.IPAddress = txtIPAddress4.Text; vCOMInfo.VirtualPortName = drpVCOM4.SelectedItem.ToString(); deviceInfo.VirtualDevices.Add(vCOMInfo); } if (txtDeviceName5.Text.Trim().Length > 0) { vCOMInfo = new VCOMInfo(); vCOMInfo.DeviceName = txtDeviceName5.Text; vCOMInfo.IPAddress = txtIPAddress5.Text; vCOMInfo.VirtualPortName = drpVCOM5.SelectedItem.ToString(); deviceInfo.VirtualDevices.Add(vCOMInfo); } if (deviceInfo.VirtualDevices.Count > 0) { //log COM config data into JSON file File.WriteAllText(_configFileName, JsonConvert.SerializeObject(deviceInfo)); string filePath = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location); if (File.Exists(filePath + "\\setupc.exe")) { try { int portIndex = 0; foreach (VCOMInfo vCOM in deviceInfo.VirtualDevices) { int i = drpVCOM1.Items.IndexOf(vCOM.VirtualPortName); System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; startInfo.FileName = filePath + "\\setupc.exe"; startInfo.Arguments = "remove " + i; process.StartInfo = startInfo; process.Start(); process.WaitForExit(); portIndex++; process = new System.Diagnostics.Process(); startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; startInfo.FileName = filePath + "\\setupc.exe"; startInfo.Arguments = "Install PortName=" + vCOM.VirtualPortName + " PortName=" + vCOM.VirtualPortName.Replace("A", "B"); process.StartInfo = startInfo; process.Start(); process.WaitForExit(); } } catch (Exception ex) { Log.Input(ex); MessageBox.Show(this, "Failed to recreate virtual ports"); return; } } popupForm.Close(); MessageBox.Show(this, "Device setup is completed"); Application.Exit(); } else { MessageBox.Show(this, "No devices available"); } btnFinish.Enabled = true; } catch (Exception ex) { if (popupForm != null) { popupForm.Close(); } Log.Input(ex); MessageBox.Show(this, ex.Message); } finally { btnFinish.Enabled = true; } }