Esempio n. 1
0
        // Function to get rfid event
        private void rfidDev_NotifyRFIDEvent(object sender, SDK_SC_RfidReader.rfidReaderArgs args)
        {
            switch (args.RN_Value)
            {
            // Event when failed to connect
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_FailedToConnect:
                Invoke((MethodInvoker) delegate { toolStripStatusLabelInfo.Text = "Info RFID : Failed to Connect"; });
                Invoke((MethodInvoker) delegate { buttonCreate.Enabled = true; });
                Invoke((MethodInvoker) delegate { buttonDispose.Enabled = false; });
                Invoke((MethodInvoker) delegate { groupBoxCtrl.Enabled = false; });
                Invoke((MethodInvoker) delegate { groupBoxFP.Enabled = false; });
                break;

            // Event when release the object
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_Disconnected:
                Invoke((MethodInvoker) delegate { toolStripStatusLabelInfo.Text = "Info RFID : Device Disconnected"; });
                Invoke((MethodInvoker) delegate { buttonCreate.Enabled = true; });
                Invoke((MethodInvoker) delegate { buttonDispose.Enabled = false; });
                Invoke((MethodInvoker) delegate { groupBoxCtrl.Enabled = false; });
                Invoke((MethodInvoker) delegate { groupBoxFP.Enabled = false; });
                break;

            //Event when device is connected
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_Connected:
                Invoke((MethodInvoker) delegate { toolStripStatusLabelInfo.Text = "Info RFID : Device Connected"; });
                Invoke((MethodInvoker) delegate { buttonCreate.Enabled = false; });
                Invoke((MethodInvoker) delegate { buttonDispose.Enabled = true; });
                Invoke((MethodInvoker) delegate { groupBoxCtrl.Enabled = true; });
                Invoke((MethodInvoker) delegate { groupBoxFP.Enabled = true; });
                break;

            // Event when scan started
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ScanStarted:

                Invoke((MethodInvoker) delegate { buttonScan.Enabled = false; });
                Invoke((MethodInvoker) delegate { buttonStop.Enabled = true; });
                Invoke((MethodInvoker) delegate { toolStripStatusLabelInfo.Text = "Info RFID : Scan Started"; });
                listBoxTag.Invoke((MethodInvoker) delegate { listBoxTag.Items.Clear(); });
                labelInventoryTagCount.Invoke((MethodInvoker) delegate { labelInventoryTagCount.Text = "Tag(s): 0"; });
                break;

            //event when fail to start scan
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ReaderFailToStartScan:
                Invoke((MethodInvoker) delegate { buttonScan.Enabled = true; });
                Invoke((MethodInvoker) delegate { buttonStop.Enabled = false; });
                Invoke((MethodInvoker) delegate { toolStripStatusLabelInfo.Text = "Info RFID: Failed to start scan"; });
                break;

            //event when a new tag is identify
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_TagAdded:
                listBoxTag.Invoke((MethodInvoker) delegate { listBoxTag.Items.Add(args.Message); });
                labelInventoryTagCount.Invoke((MethodInvoker) delegate { labelInventoryTagCount.Text = "Tag(s) : " + listBoxTag.Items.Count.ToString("000"); });
                break;

            // Event when scan completed
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ScanCompleted:
                Invoke((MethodInvoker) delegate { buttonScan.Enabled = true; });
                Invoke((MethodInvoker) delegate { buttonStop.Enabled = false; });
                Invoke((MethodInvoker) delegate { toolStripStatusLabelInfo.Text = "Info RFID: Scan Completed"; });
                break;

            //error when error during scan
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ReaderScanTimeout:
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ErrorDuringScan:
                Invoke((MethodInvoker) delegate { buttonScan.Enabled = true; });
                Invoke((MethodInvoker) delegate { buttonStop.Enabled = false; });
                Invoke((MethodInvoker) delegate { toolStripStatusLabelInfo.Text = "Info RFID: Scan has error"; });
                break;

            // Scan cancel by user
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ScanCancelByHost:
                Invoke((MethodInvoker) delegate { buttonScan.Enabled = true; });
                Invoke((MethodInvoker) delegate { buttonStop.Enabled = false; });
                Invoke((MethodInvoker) delegate { toolStripStatusLabelInfo.Text = "Info RFID : Scan cancel by host"; });
                break;

            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_Door_Opened:
                Invoke((MethodInvoker) delegate { toolStripStatusLabelInfo.Text = "Info RFID : Door Open"; });
                break;

            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_Door_Closed:
                Invoke((MethodInvoker) delegate { toolStripStatusLabelInfo.Text = "Info RFID : Door Close"; });
                break;
            }
            Application.DoEvents();
        }
        /// <summary>
        /// RFID events handling.
        /// </summary>
        private void rfidDev_NotifyRFIDEvent(object sender, SDK_SC_RfidReader.rfidReaderArgs args)
        {
            switch (args.RN_Value)
            {
            // Event when failed to connect
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_FailedToConnect:
                UpdateStatusBar("Info : Failed to connect");
                Invoke((MethodInvoker) delegate
                {
                    buttonCreateDevice.Enabled = true;
                    buttonDispose.Enabled      = false;
                    scanGroup.Enabled          = false;
                });
                break;

            // Event when release the object
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_Disconnected:
                UpdateStatusBar("Info : Device disconnected");
                Invoke((MethodInvoker) delegate
                {
                    buttonCreateDevice.Enabled = true;
                    buttonDispose.Enabled      = false;
                    scanGroup.Enabled          = false;
                });
                break;

            //Event when device is connected
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_Connected:
                UpdateStatusBar("Info : Device connected");
                Invoke((MethodInvoker) delegate
                {
                    buttonCreateDevice.Enabled = false;
                    buttonDispose.Enabled      = true;
                    buttonStart.Enabled        = true;
                    scanGroup.Enabled          = true;
                });
                break;

            // Event when scan started
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ScanStarted:
                Invoke((MethodInvoker) delegate
                {
                    buttonStart.Enabled = false;
                    buttonStop.Enabled  = true;
                    buttonLedOn.Enabled = false;
                });
                UpdateStatusBar("Info : Scan started");
                break;

            //event when fail to start scan
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ReaderFailToStartScan:
                Invoke((MethodInvoker) delegate
                {
                    buttonStart.Enabled = true;
                    buttonStop.Enabled  = false;
                });
                UpdateStatusBar("Info : Failed to start scan");
                break;

            //event when a new tag is identify
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_TagAdded:
                tagsCountLabel.Invoke((MethodInvoker) delegate
                {
                    if (!listBoxTag.Items.Contains(args.Message))
                    {
                        listBoxTag.Items.Add(args.Message);
                    }
                    tagsCountLabel.Text = listBoxTag.Items.Count.ToString();
                });
                Application.DoEvents();
                break;

            // Event when scan completed
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ScanCompleted:
                Invoke((MethodInvoker) delegate
                {
                    buttonStart.Enabled = true;
                    buttonStop.Enabled  = false;
                });
                UpdateStatusBar("Info : Scan completed");
                break;

            //error when error during scan
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ReaderScanTimeout:
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ErrorDuringScan:
                Invoke((MethodInvoker) delegate
                {
                    buttonStart.Enabled = true;
                    buttonStop.Enabled  = false;
                });
                UpdateStatusBar("Info : Scan has error");
                break;

            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ScanCancelByHost:
                Invoke((MethodInvoker) delegate
                {
                    buttonStart.Enabled = true;
                    buttonStop.Enabled  = false;
                });
                UpdateStatusBar("Info : Scan cancel by host");
                break;
            }

            Application.DoEvents();
        }
        // Function to get rfid event
        private void rfidDev_NotifyRFIDEvent(object sender, SDK_SC_RfidReader.rfidReaderArgs args)
        {
            switch (args.RN_Value)
            {
            // Event when failed to connect
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_FailedToConnect:
                updatelabel("Info : Failed to Connect");
                break;

            // Event when release the object
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_Disconnected:
                updatelabel("Info : Device Disconnected");
                break;

            //Event when device is connected
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_Connected:
                updatelabel("Info : Device Connected");
                break;

            // Event when scan started
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ScanStarted:
                updatelabel("Info : Scan Started");
                break;

            //event when fail to start scan
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ReaderFailToStartScan:
                updatelabel("Info : Failed to start scan");
                break;

            //event when a new tag is identify
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_TagAdded:

                break;

            // Event when scan completed
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ScanCompleted:

                if (device.currentInventory.nbTagAll == 0)
                {
                    updatelabel("Info : No Tag Found");
                    // feed the printer

                    PrinterClass printer = new PrinterClass();
                    PrinterClass.MAPI_FEED_RETURN_TYPE ret = printer.FeedPrinter(printInfo.PrinterIP, 9100);
                    if (ret == PrinterClass.MAPI_FEED_RETURN_TYPE.MAPI_FEED_RETURN_SUCCEED)
                    {
                        updatelabel("Feed Succeed");
                        System.Threading.Thread.Sleep(1000);
                    }
                }
                else if (device.currentInventory.nbTagAll > 1)
                {
                    updatelabel("Info : More than one tag scanned - Please check the printer");
                }
                else
                {
                    updatelabel("Info : Scan Completed - Tag Scanned : " + device.currentInventory.listTagAll[0].ToString());
                    TagUidPrinted = device.currentInventory.listTagAll[0].ToString();
                    print(TagUidPrinted);
                }

                break;

            //error when error during scan
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ReaderScanTimeout:
            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ErrorDuringScan:
                updatelabel("Info : Scan has error");
                break;

            case SDK_SC_RfidReader.rfidReaderArgs.ReaderNotify.RN_ScanCancelByHost:
                updatelabel("Info : Scan cancel by host");
                break;
            }
            Application.DoEvents();
        }