public IComPortConfigurationViewModel CreateComPortConfigurationViewModel(IComPortConfiguration comPortConfiguration)
        {
            IComPortConfigurationViewModel comPortConfigurationViewModel = _container.Resolve <IComPortConfigurationViewModel>();

            comPortConfigurationViewModel.ComPortConfiguration = comPortConfiguration;
            return(comPortConfigurationViewModel);
        }
Exemple #2
0
        public async Task <bool> TryOpenConnectionAsync(bool isThrowingException, IComPortConfiguration comPortConfiguration)
        {
            //if ((_openedPort != null) && (_openedPort == PortName)) return true;
            try
            {
                IModbusSerialMaster modbusSerialMaster = null;
                await Task.Run((() =>
                {
                    IStreamResource streamResource = _connectionManager.GetSerialPortAdapter(PortName, comPortConfiguration);
                    modbusSerialMaster = ModbusSerialMaster.CreateRtu(streamResource);
                }));

                if (modbusSerialMaster != null)
                {
                    _currentModbusMaster?.Dispose();
                    _currentModbusMaster = modbusSerialMaster;
                }
                else
                {
                    throw new Exception();
                }
                _slaveId = SlaveId;
                //  QueryQueue.Initialize(_currentModbusSerialMaster,deviceLogger,(() => LastQueryStatusChangedAction?.Invoke()));
                _openedPort = PortName;
            }
            catch (Exception e)
            {
                if (isThrowingException)
                {
                    throw e;
                }
                return(false);
            }
            return(true);
        }
Exemple #3
0
        public void SetComPortConfigurationByName(IComPortConfiguration comPortConfiguration, string portName)
        {
            if (!ComPortConfigurationsDictionary.ContainsKey(portName))
            {
                ComPortConfigurationsDictionary.Add(portName,
                                                    _comPortConfigurationFactory.CreateComPortConfiguration());
            }

            ComPortConfigurationsDictionary[portName] = comPortConfiguration;
        }
Exemple #4
0
        public SerialPortAdapter GetSerialPortAdapter(string portName, IComPortConfiguration comPortConfiguration)
        {
            SerialPort        serialPort        = new SerialPort(portName);
            SerialPortAdapter serialPortAdapter = new SerialPortAdapter(serialPort);

            if (!ComPortConfigurationsDictionary.ContainsKey(portName))
            {
                return(null);
            }
            comPortConfiguration    = ComPortConfigurationsDictionary[portName];
            serialPort.BaudRate     = comPortConfiguration.BaudRate;
            serialPort.DataBits     = comPortConfiguration.DataBits;
            serialPort.StopBits     = comPortConfiguration.StopBits;
            serialPort.Parity       = comPortConfiguration.Parity;
            serialPort.ReadTimeout  = comPortConfiguration.WaitAnswer;
            serialPort.WriteTimeout = comPortConfiguration.WaitAnswer;
            serialPort.Open();

            return(serialPortAdapter);
        }
Exemple #5
0
        public SerialPortAdapter GetSerialPortAdapter(string portName)
        {
            SerialPort        serialPort        = new SerialPort(portName);
            SerialPortAdapter serialPortAdapter = new SerialPortAdapter(serialPort);

            if (!ComPortConfigurationsDictionary.ContainsKey(portName))
            {
                return(null);
            }
            IComPortConfiguration comPortConfiguration = ComPortConfigurationsDictionary[portName];

            serialPort.BaudRate     = comPortConfiguration.BaudRate;
            serialPort.DataBits     = comPortConfiguration.DataBits;
            serialPort.StopBits     = comPortConfiguration.StopBits;
            serialPort.Parity       = comPortConfiguration.Parity;
            serialPort.ReadTimeout  = comPortConfiguration.WaitAnswer;
            serialPort.WriteTimeout = comPortConfiguration.WaitAnswer;
            try
            {
                serialPort.Open();
            }
            catch (Exception portExc)
            {
                Debug.Write(portExc.Message);
                throw portExc;
            }

            try
            {
                _serializerService.SerializeInFile(ComPortConfigurationsDictionary, StringKeys.COMPORT_CONFIGURATION_SETTINGS + ".json");
            }
            catch (Exception e)
            {
                Debug.Write(e.Message);
            }

            return(serialPortAdapter);
        }
        public ComPortConfigurationViewModel(IComPortConfiguration comPortConfiguration, ILocalizerService localizerService)
        {
            _comPortConfiguration = comPortConfiguration;
            _localizerService     = localizerService;
            BaudRates             = new ObservableCollection <int>();
            foreach (BaudRatesEnum baudRatesEnum in Enum.GetValues(typeof(BaudRatesEnum)))
            {
                BaudRates.Add((int)baudRatesEnum);
            }
            DataBitsCollection = new ObservableCollection <int>();
            foreach (DataBitsEnum dataBit in Enum.GetValues(typeof(DataBitsEnum)))
            {
                DataBitsCollection.Add((int)dataBit);
            }

            StopBitsCollection = new ObservableCollection <StopBits>();
            foreach (StopBits stopBit in Enum.GetValues(typeof(StopBits)))
            {
                StopBitsCollection.Add(stopBit);
            }
            ParityCollection = new ObservableCollection <Parity>();
            foreach (Parity parity in Enum.GetValues(typeof(Parity)))
            {
                ParityCollection.Add(parity);
            }


            SelectedBaudRate = (int)BaudRatesEnum.BR115200;
            SelectedDataBits = 8;
            SelectedStopBits = StopBits.One;
            SelectedParity   = Parity.None;
            WaitAnswer       = 200;
            WaitByte         = 100;
            OnTransmission   = 0;
            OffTramsmission  = 0;
        }