Exemplo n.º 1
0
 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);
     }
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 5
0
        /// <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;
        }
Exemplo n.º 7
0
        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);
            }
        }
Exemplo n.º 8
0
        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);
            }
        }
Exemplo n.º 9
0
        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;
            }
        }