예제 #1
0
        /// <summary>
        /// Updates the configuration file
        /// </summary>
        /// <param name="comPort"></param>
        /// <param name="baudRate"></param>
        /// <param name="refreshTimeInterval"></param>
        /// <returns></returns>
        public bool ReplaceConfigSettingsInFile(string comPort = null, string baudRate = null, string refreshTimeInterval = null, string site = null)
        {
            bool isConfigFileUpdated = false;

            {
                try
                {
                    lines = File.ReadAllLines(serviceConfigFilePath);
                    if ((comPort != null && comPort.Contains("COM") && cmbAvailablePorts.SelectedIndex >= 0) &&
                        (baudRate != null && cmbAvailableBaudRates.SelectedIndex >= 0) && !string.IsNullOrEmpty(refreshTimeInterval))
                    {
                        File.WriteAllText(serviceConfigFilePath, String.Empty);
                        File.AppendAllText(serviceConfigFilePath, comPort + Environment.NewLine + baudRate + Environment.NewLine + (Convert.ToInt32(refreshTimeInterval) * 60 * 1000) + Environment.NewLine + site);
                        isConfigFileUpdated = true;
                        lines             = File.ReadAllLines(serviceConfigFilePath);
                        this.lblData.Text = $"COM Port: {lines[0]}   Baud Rate: {lines[1]}   Refresh Time: {(Convert.ToInt32(lines[2]) / 60000)}m ";
                        XtraMessageBox.Show($"Confiuration file has been updated with:{Environment.NewLine}PORT = {comPort}{Environment.NewLine}Baud Rate = {baudRate}{Environment.NewLine}Refresh Time Interval = {refreshTimeInterval}", "Configuration File", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        DataLoggerControl.Write($"Confiuration file has been updated with PORT = {comPort}, Baud Rate = {baudRate} and Refresh Time Interval = {refreshTimeInterval}");
                    }
                }
                catch (Exception ex)
                {
                    log.Error(ex);
                }
            }
            return(isConfigFileUpdated);
        }
예제 #2
0
        /// <summary>
        /// Creating module at the start of the service
        /// </summary>
        private bool CreateModule()
        {
            #region GET_TND# and GET_FW_DATE#

            bool isFW_DATE           = false;
            bool isTND               = false;
            bool isTestModuleCreated = false;

            int portResponse = 3;
            while (portResponse > 0)
            {
                try
                {
                    if (serialPort1.IsOpen)
                    {
                        Thread.Sleep(4000);
                        serialPort1.Write("CHECK#");
                        Thread.Sleep(4000);
                        _tndCommandResponse = serialPort1.ReadTo("!");
                        if (_tndCommandResponse.Contains("OKAY"))
                        {
                            DataLoggerControl.Write($"CHECK Command is successfull on port {serialPort1.PortName}");
                            DataLoggerControl.Write($"CHECK Command response is: {_tndCommandResponse}");

                            DataLoggerControl.Write($"Command sent: GET_TND#");
                            Thread.Sleep(4000);
                            serialPort1.Write("GET_TND#");
                            Thread.Sleep(4000);
                            _tndCommandResponse = serialPort1.ReadTo("!");
                            Thread.Sleep(2000);
                            if (_tndCommandResponse.Contains("ERROR") || _tndCommandResponse == "")
                            {
                                DataLoggerControl.Write($"GET_TND# ERROR response: {_tndCommandResponse}{Environment.NewLine}");
                            }
                            else
                            {
                                isTND = true;
                                DataLoggerControl.Write($"Command response: {_tndCommandResponse}{Environment.NewLine}");
                            }

                            DataLoggerControl.Write($"Command sent: GET_FW_DATE#");
                            Thread.Sleep(4000);
                            serialPort1.Write("GET_FW_DATE#");
                            Thread.Sleep(4000);
                            _fwDateCommandResponse = serialPort1.ReadTo("!");
                            Thread.Sleep(2000);
                            if (_fwDateCommandResponse.Contains("ERROR") || _fwDateCommandResponse == "")
                            {
                                DataLoggerControl.Write($"GET_FW_DATE# ERROR response: {_fwDateCommandResponse}{Environment.NewLine}");
                            }
                            else
                            {
                                isFW_DATE           = true;
                                isTestModuleCreated = true;
                                DataLoggerControl.Write($"Command response: {_fwDateCommandResponse}{Environment.NewLine}");
                            }
                            portResponse = 0;
                        }
                        else if (_tndCommandResponse.Contains("ERROR"))
                        {
                            DataLoggerControl.Write($"CHECK# {_tndCommandResponse}{Environment.NewLine}");
                            portResponse--;
                        }
                    }
                    else
                    {
                        log.Warn($"Serial port {serialPort1.PortName} is not opened!");
                    }

                    //Module creation at the start of the service
                    if (isFW_DATE && isTND)
                    {
                        ModuleObject moduleObject = PrepareModuleObject(_fwDateCommandResponse, _tndCommandResponse);
                        AppService.RunModulePostAsync(moduleObject);
                        isTestModuleCreated = true;
                    }
                }
                catch (Exception ex)
                {
                    log.Error($"{ex}");
                    DataLoggerControl.Write($"GET_TND# Command: {ex.Message}");
                    _tndCommandResponse    = string.Empty;
                    _fwDateCommandResponse = string.Empty;
                    portResponse--;
                }
            }

            return(isTestModuleCreated);

            #endregion GET_TND# and GET_FW_DATE#
        }
예제 #3
0
        public void StartReadingFromDevice()
        {
            try
            {
                List <string> getValuesAndGetCells = new List <string>();
                bool          isGetValues          = false;
                bool          isGetCell            = false;
                if (serialPort1.IsOpen)
                {
                    log.Info($"COM port is open and starting reading data from {serialPort1.PortName}");

                    #region GET_VALUES# and GET_CELL#

                    int portResponse = 3;
                    while (portResponse > 0)
                    {
                        try
                        {
                            Thread.Sleep(4000);
                            serialPort1.Write("CHECK#");
                            Thread.Sleep(4000);
                            _getValuesResponse = serialPort1.ReadTo("!");
                            if (_getValuesResponse.Contains("OKAY"))
                            {
                                DataLoggerControl.Write($"CHECK Command is successfull on port {serialPort1.PortName}");
                                DataLoggerControl.Write($"CHECK Command response is: {_getValuesResponse}");

                                DataLoggerControl.Write($"Command sent: GET_VALUES#");
                                Thread.Sleep(4000);
                                serialPort1.Write("GET_VALUES#");
                                Thread.Sleep(4000);
                                _getValuesResponse = serialPort1.ReadTo("!");
                                Thread.Sleep(2000);
                                if (_getValuesResponse.Contains("ERROR") || _getValuesResponse == "")
                                {
                                    DataLoggerControl.Write($"GET_VALUES# ERROR response: {_getValuesResponse}{Environment.NewLine}");
                                }
                                else
                                {
                                    getValuesAndGetCells.Add(_getValuesResponse);
                                    isGetValues = true;
                                    DataLoggerControl.Write($"Command response: {_getValuesResponse}{Environment.NewLine}");
                                }

                                Thread.Sleep(4000);
                                serialPort1.Write("GET_CELL#");
                                Thread.Sleep(4000);
                                _getCellResponse = serialPort1.ReadTo("!");
                                Thread.Sleep(2000);
                                if (_getCellResponse.Contains("ERROR") || _getCellResponse == "")
                                {
                                    DataLoggerControl.Write($"GET_CELL# ERROR response: {_getCellResponse}{Environment.NewLine}");
                                }
                                else
                                {
                                    getValuesAndGetCells.Add(_getCellResponse);
                                    isGetCell = true;
                                    DataLoggerControl.Write($"Command response: {_getCellResponse}{Environment.NewLine}");
                                }

                                portResponse = 0;
                            }
                            else if (_getValuesResponse.Contains("ERROR"))
                            {
                                DataLoggerControl.Write($"{_getValuesResponse}{Environment.NewLine}");
                                portResponse--;
                            }
                        }
                        catch (Exception ex)
                        {
                            log.Error($"{ex}");
                            DataLoggerControl.Write($"GET_VALUES# Command: {ex.Message}");
                            _getValuesResponse = string.Empty;
                            portResponse--;
                        }
                    }

                    if (isGetCell && isGetValues)
                    {
                        foreach (var item in getValuesAndGetCells)
                        {
                            AppService.RunTestModulePostAsync(item, _serialPortReply);
                        }
                    }

                    #endregion GET_VALUES# and GET_CELL#

                    #region GET_FW#

                    portResponse = 3;
                    while (portResponse > 0)
                    {
                        try
                        {
                            Thread.Sleep(4000);
                            serialPort1.Write("CHECK#");
                            Thread.Sleep(4000);
                            _reply = serialPort1.ReadTo("!");
                            if (_reply.Contains("OKAY"))
                            {
                                DataLoggerControl.Write($"CHECK Command is successfull on port {serialPort1.PortName}");
                                DataLoggerControl.Write($"CHECK Command response is: {_reply}");

                                DataLoggerControl.Write($"Command sent: GET_FW#");
                                Thread.Sleep(4000);
                                serialPort1.Write("GET_FW#");
                                Thread.Sleep(4000);
                                _reply = serialPort1.ReadTo("!");
                                Thread.Sleep(2000);
                                if (_reply.Contains("ERROR") || _reply == "")
                                {
                                    DataLoggerControl.Write($"GET_FW# ERROR response: {_reply}{Environment.NewLine}");
                                }
                                else
                                {
                                    DataLoggerControl.Write($"Command response: {_reply}{Environment.NewLine}");
                                }
                                portResponse = 0;
                            }
                            else if (_reply.Contains("ERROR"))
                            {
                                DataLoggerControl.Write($"CHECK# {_reply}{Environment.NewLine}");
                                portResponse--;
                            }
                        }
                        catch (Exception ex)
                        {
                            log.Error($"{ex}");
                            DataLoggerControl.Write($"GET_FW# Command: {ex.Message}");
                            _reply = string.Empty;
                            portResponse--;
                        }
                    }

                    #endregion GET_FW#
                }
                else
                {
                    log.Warn($"COM Port {serialPort1.PortName} is not opened!");
                }
                _reply = string.Empty;
            }
            catch (Exception ex)
            {
                log.Error($"### Initialising Reading Error {ex}");
                log.Warn($"{ex.Message}. Service is re-started.");
            }
        }