public static Thread LaunchForm(InventoryForm form)
        {
            if (form == null) throw new ArgumentNullException("form");

            inv = form;

            //if (MsgThread != null) return MsgThread;

            MessageForm.msgThread = new Thread(MsgThreadProc);
            MsgThread.Name = "MessageForm";
            MsgThread.Priority = ThreadPriority.Highest;
            MsgThread.IsBackground = false;
            MsgThread.Start();
            return MsgThread;
        }
 private void lk_epc_Click(object sender, EventArgs e)
 {
     //Stop current process
     if (Program.ReaderCE.MyState != ReaderOperationMode.Idle)
         Program.ReaderCE.Stop();
     while (Program.ReaderCE.MyState != ReaderOperationMode.Idle)
     {
         System.Threading.Thread.Sleep(10);
         Application.DoEvents();
     }
     AttachCallback(false);
     using (InventoryForm InvForm = new InventoryForm(true))
     {
         if (InvForm.ShowDialog() == DialogResult.OK)
         {
             lk_epc.Text = TargetEPC = InvForm.EPC;
         }
     }
     AttachCallback(true);
 }
 private void btn_inv_Click(object sender, EventArgs e)
 {
     using (InventoryForm InvForm = new InventoryForm(false))
     {
         InvForm.ShowDialog();
     }
     UpdatePower();
 }
        private void btn_scan_Click(object sender, EventArgs e)
        {
            //Stop current operation
            if (Program.ReaderCE.MyState == ReaderOperationMode.Running)
            {
                Program.ReaderCE.Stop();
            }
            while (Program.ReaderCE.MyState != ReaderOperationMode.Idle)
            {
                Thread.Sleep(10);
                Application.DoEvents();
            }

            AttachCallback(false);

            using (InventoryForm inv = new InventoryForm(true))
            {
                if (inv.ShowDialog() == DialogResult.OK)
                {
                    TargetEPC = tb_epc.Text = inv.EPC;
                }
            }
            AttachCallback(true);
        }
 private void lb_epc_Click(object sender, EventArgs e)
 {
     if (Program.ReaderCE.MyState == ReaderOperationMode.Idle)
     {
         AttachCallback(false);
         using (InventoryForm InvForm = new InventoryForm(true))
         {
             if (InvForm.ShowDialog() == DialogResult.OK)
             {
                 TargetEPC = InvForm.EPC;
                 lb_epc.Text = EpcAddDashLine(InvForm.EPC);
             }
         }
         AttachCallback(true);
     }
     else
     {
         MessageBox.Show("Please wait, Reader is busy");
     }
 }
 private void ButtonHandle(InventoryForm.ButtonState btnState, bool en)
 {
     if (this.InvokeRequired)
     {
         Invoke(new OnButtonHandleDeleg(ButtonHandle), new object[] { btnState , en});
         return;
     }
     switch (btnState)
     {
         case InventoryForm.ButtonState.Clear:
             btn_clear.Enabled = en;
             break;
         case InventoryForm.ButtonState.Save:
             btn_save.Enabled = en;
             break;
         case InventoryForm.ButtonState.Select:
             btn_select.Enabled = en;
             break;
         case InventoryForm.ButtonState.Start:
             btn_once.Enabled = btn_run.Enabled = en;
             break;
         case InventoryForm.ButtonState.Stop:
             btn_stop.Enabled = en;
             break;
         case InventoryForm.ButtonState.ALL:
             this.Enabled = en;
             break;
         default: break;
     }
 }
 void MainForm_OnButtonEnable(object sender, InventoryForm.OnButtonClickEventArgs e)
 {
     ButtonHandle(e.State, e.Enable);
 }
        public static Thread LaunchControlPanel(InventoryForm form)
        {
            if (form == null)
                throw new ArgumentNullException("form");

            if (ControlPanelThread != null) return ControlPanelThread;

            _mainForm = form;

            ControlPanelForm._controlPanelThread = new Thread(ControlPanelThreadProc);
            ControlPanelThread.Name = "ControlPanel";
            ControlPanelThread.Priority = ThreadPriority.Highest;
            ControlPanelThread.IsBackground = false;
            ControlPanelThread.Start();
            return ControlPanelThread;
        }