using System; using System.Linq; using System.Windows.Forms; using TBF.Rig.RegisterReaders.CommonRR.IPerl.communication; using TBF.Rig.RegisterReaders.iPerlReaderUNI; using TBF.Rig.RegisterReaders.iPerlReaderUNI.common; using TBF.Rig.RegisterReaders.PoseidonReader.implementations; using TBF.Rig.Sequences; using TBF.Rig.Uni.SharedDialogs.SmartMetersCommunication; namespace TBF.Rig.RegisterReaders.IPerlReader { public partial class IperlUniHeadTestCtrl : UserControl { private IUniHeadTestCtrl _ctrl; private IUniHeadTestCtrl Ctrl { get => _ctrl; } public IperlUniHeadTestCtrl(iPerlReaderUNI.IPerlCfg config) { this._ctrl = new PoseidonImplHeadTestCtrl(); Ctrl.config = config; InitializeComponent(); if (config == null) return; SmartCommunicationForm.TestMethodCfg = new TestMethodCfg(null); // default values for iPerlCommunication foreach(var head in ProcessData.SmartHeadsUni) { if (head != null && head.Name == config.Name) { Ctrl.ISmartReader = head; } } rfidCommandComboBox.DisplayMember = "Name"; rfidCommandComboBox.ValueMember = "Value"; var items = Ctrl.GetComboOperationsPairs(); /* // CTRL+ALT+double click - hidden poweruser menu if (((Keyboard.ModifierKeys & Keys.Control) == Keys.Control) && ((Keyboard.ModifierKeys & Keys.Alt) == Keys.Alt) && Users.CurrentUser.AuthorizedAs == AuthorizedAs.PowerUser) { Array.Resize(ref items, items.Length + 1); items[items.Length - 1] = new { Name = "Kluc", Value = "Kluc" }; } */ rfidCommandComboBox.DataSource = items.Select(i => i.Name).ToArray(); Ctrl.Initialize(); Ctrl.OptoReceivedHandler += (EventHandler)((sndr, args) => { if (this.InvokeRequired) this.Invoke((Delegate)new EventHandler(this.OnOptoReceived2), sndr, (object)args); else this.OnOptoReceived2(sndr, args); }); } public void OnOptoReceived2(object sender, OptoReceivedEventArgs args) { optoListBox.Items.Insert(0,args.Data); } private void CommandTestButtonClick(object sender, MouseEventArgs e) { Ctrl.CommandTestButtonClick(sender, e, new Arguments() { ISmartReader = Ctrl.ISmartReader, OptoListBox = optoListBox, RfidCommandComboBox = rfidCommandComboBox, RfidOutputListBox = rfidOutputListBox }); } private void UserControl_Load(object sender, EventArgs e) { this.ParentForm.FormClosing += new FormClosingEventHandler(ParentForm_FormClosing); } void ParentForm_FormClosing(object sender, FormClosingEventArgs e) { //OnHandleDestroyed(new EventArgs()); Ctrl.Destroy(); } } }