/// <summary>
        ///
        /// </summary>
        public BaudrateComboBox()
        {
            DropDownStyle = ComboBoxStyle.DropDownList;
            AutoToolTip   = true;
            ToolTipText   = CultureService.Instance.GetString(CultureText.menuItem_Baudrate_ToolTip);
            Size          = new System.Drawing.Size(150, 25);

            List <string> bauds          = CanBaudRateCollection.GetBaudRates().Select(n => n.Name).ToList <string>();
            var           baudWithCustom = new string[bauds.Count + 1];

            bauds.Add(_comboItemCustomBaudRate_Text);
            bauds.CopyTo(baudWithCustom, 0);
            Items.AddRange(baudWithCustom);


            EventAggregator.Instance.Subscribe <StorageAppEvent>(e =>
            {
                if (e.ChangingType == FileChangingType.LoadComplete)
                {
                    _parmeters = e.Storage.Parameters;

                    /*Ha olyan BaudRate-et töltött be, ami egyedi, azt először hozzá kell adni a ComboBox listájához, mert különben nem jelenik meg...*/
                    if (!_parmeters.Baudrate.Contains("kBaud") && !_parmeters.Baudrate.Contains("MBaud"))
                    {
                        bauds = CanBaudRateCollection.GetBaudRates().Select(n => n.Name).ToList <string>();
                        bauds.Add(_parmeters.Baudrate);
                        string[] temp = new string[bauds.Count];
                        bauds.CopyTo(temp, 0);
                        Items.Clear();
                        Items.AddRange(temp);
                    }

                    SelectedItem = _lastSelectedBaud = _parmeters.Baudrate;
                }
            });
            EventAggregator.Instance.Subscribe <StopAppEvent>(e => Enabled = true);
            EventAggregator.Instance.Subscribe <PlayAppEvent>(e => Enabled = false);
        }
        /// <summary>
        /// Egy elemre klikkelt a legördülő listában, amihez lehet meg kell jeleníteni a BaudRate szerkesztőt.
        /// </summary>
        protected override void OnSelectionChangeCommitted(System.EventArgs e)
        {
            if (!Text.Contains("kBaud") && !Text.Contains("MBaud"))
            {/*Ez egy új vagy a meglévő érték létrehozás/szerkesztése */
                IBaurateEditorForm cbf = new BaurateEditorForm();

                if (Text[0] == 'B')
                { /*meglévő érték szereksztése*/
                    cbf.CustomBaudRateValue = Text.Remove(Text.IndexOf("Custom", 0)).Trim();
                }
                else
                {
                    /*először adott meg egyedi értéket, alaphelyzetet lát.*/
                    cbf.Default();
                }

                if (cbf.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    /*Egyedi értéket választott a ComoboLista elemeiben a Custom szót az új értkere kell módosítani.*/
                    string        customValue = cbf.CustomBaudRateValue + " Custom Baud";
                    List <string> bauds       = CanBaudRateCollection.GetBaudRates().Select(n => n.Name).ToList <string>();
                    bauds.Add(customValue);
                    /*tömbnek új referencia kell, csak akkor frissül a box...*/
                    string[] temp = new string[bauds.Count];
                    bauds.CopyTo(temp, 0);
                    Items.Clear();
                    Items.AddRange(temp);
                    /*A kijelölt elem az új egyedi érték*/
                    SelectedItem = customValue;
                }
                else
                {
                    /*Mégsem nyutgázta az új értéket */
                    /*Vissza kell tenni az előző kijelőlést*/
                    SelectedItem = _lastSelectedBaud;
                }
            }
        }
예제 #3
0
        /// <summary>
        ///
        /// </summary>
        public void Play()
        {
            /*Ha engdélyezve van a törlés, akkor indulás előtt törli az előzményeket.*/
            if (_paramters.PlayHistoryClearEnabled)
            {
                _adapterStat.Reset();
                _messageStat.Default();
                _messageTrace.Clear();
                _filters.Default();
            }

            Debug.WriteLine(GetType().Namespace + "." + GetType().Name + "." + MethodBase.GetCurrentMethod().Name + "()");

            _shutdownEvent       = new AutoResetEvent(false);
            _readyToDisposeEvent = new AutoResetEvent(false);



            uint baudrate = 0;

            if (_paramters.Baudrate.Contains("Custom"))
            {
                /*Baudrate = "B003D007 Custom Baud"*/
                baudrate = UInt32.Parse(_paramters.Baudrate.Remove(_paramters.Baudrate.IndexOf(@"Custom")).Trim(), System.Globalization.NumberStyles.HexNumber);
            }
            else
            {
                /*Baudrate = 5.000kBaud*/
                baudrate = CanBaudRateCollection.GetBaudRates().First(n => n.Name == _paramters.Baudrate).Value;
            }

            if (_paramters.DeviceName != VirtualDeviceName)
            {
                try
                {
                    _adapter = new CanAdapterDevice();
                    _adapter.ConnectTo(_paramters.DeviceName);
                    _adapter.Services.Reset();
                    _adapter.Attributes.ListenOnly            = _paramters.ListenOnly;
                    _adapter.Attributes.Loopback              = _paramters.Loopback;
                    _adapter.Attributes.NonAutoRetransmission = _paramters.NonAutoReTx;
                    _adapter.Attributes.Termination           = _paramters.Termination;
                    _adapter.Open(baudrate);
                    _statusUpdateTimestamp = 0;
                }
                catch (Exception)
                {
                    _adapter.Dispose();
                    OnStopped();
                    throw;
                }
            }
            else
            {
                _virtualAdapterFrameCounter = 0;
            }

            try
            {
                if (_project.Parameters.LogEnabled)
                {
                    _log = new LogFileItem(_project.Loaction, _project.FileName, DateTime.Now.ToString(AppConstants.FileNameTimestampFormat));
                    _log.Messages.AddToStorageBegin();
                }

                var th = new Thread(new ThreadStart(DoWork))
                {
                    Name     = "Adapter",
                    Priority = Settings.Default.AdapterThreadPriority
                };
                th.Start();
                _toolTables.SetTxQueue(_txQueue);
                _toolTables.Start();
            }
            catch
            {
                OnStopped();
                throw;
            }
        }
예제 #4
0
 /// <summary>
 ///
 /// </summary>
 /// <returns></returns>
 private static string[] GetBaudrates()
 {
     return(CanBaudRateCollection.GetBaudRates().Select(n => (n.Name)).ToArray());
 }
예제 #5
0
 public void _0007_Baudrates()
 {
     CanBaudRateCollection.GetBaudRates();
 }