private void OnButtonClick_Inventory(object sender, EventArgs e)
        {
            int iBack = 0;

            string[] serialNumber;
            byte[]   tagType;

            // prepare Inventory
            fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_CMD, 0x01);
            fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE, 0x00);
            try
            {
                fedm.ResetTable(FedmIscReaderConst.ISO_TABLE);
                fedm.SendProtocol(0x69);         // RFReset
                iBack = fedm.SendProtocol(0xB0); // ISOCmd
                if (iBack != 0 && iBack != 0x94)
                {
                    this.textBox_status_out.Clear();
                    this.textBox_status_out.AppendText(iBack.ToString());
                }
                while (fedm.GetLastStatus() == 0x94) // more flag set?
                {
                    fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE_MORE, 0x01);
                    fedm.SendProtocol(0xB0);
                }
                //new dimensiion from array serialNumber,tagtype,SeNumbLength
                serialNumber = new string[fedm.GetTableLength(FedmIscReaderConst.ISO_TABLE)];
                tagType      = new byte[fedm.GetTableLength(FedmIscReaderConst.ISO_TABLE)];

                if (fedm.GetTableLength(FedmIscReaderConst.ISO_TABLE) <= 0)
                {
                    MessageBox.Show(this, "No Tag in Reader Field", "Warning");
                }

                int i;
                for (i = 0; i < fedm.GetTableLength(FedmIscReaderConst.ISO_TABLE); i++)
                {
                    fedm.GetTableData(i, FedmIscReaderConst.ISO_TABLE, FedmIscReaderConst.DATA_SNR, out serialNumber[i]);
                    fedm.GetTableData(i, FedmIscReaderConst.ISO_TABLE, FedmIscReaderConst.DATA_TRTYPE, out tagType[i]);
                }

                // Display Tags
                this.listBox_TagList.Items.Clear();
                for (i = 0; i < serialNumber.Length; i++)
                {
                    if (this.listBox_TagList.Items.Contains(serialNumber[i]))
                    {
                    }
                    else
                    {
                        this.listBox_TagList.Items.Add(serialNumber[i]);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.ToString(), "Error");
                return;
            }
        }
Example #2
0
        //Read activated/selected Reader
        public void ReadActiveReader(long DeviceID)
        {
            string[] serialNumber = new string[0];

            int index;

            //Activate from selected reader
            index     = map.IndexOfKey(DeviceID);
            ActReader = (FedmIscReader)map.GetByIndex(index);

            ActReader.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_CMD, 0x01);
            ActReader.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE, 0x00);
            try
            {
                ActReader.ResetTable(FedmIscReaderConst.ISO_TABLE);

                ActReader.SendProtocol(0x69);             // RFReset
                ActReader.SendProtocol(0xB0);             // ISOCmd

                while (ActReader.GetLastStatus() == 0x94) // more flag set?
                {
                    ActReader.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE_MORE, 0x01);
                    ActReader.SendProtocol(0xB0);
                }
                //new dimensiion from array serialNumber
                serialNumber = new string[ActReader.GetTableLength(FedmIscReaderConst.ISO_TABLE)];

                this.labelTagsNumb.Text = ActReader.GetTableLength(FedmIscReaderConst.ISO_TABLE).ToString();

                if (ActReader.GetTableLength(FedmIscReaderConst.ISO_TABLE) > 0)
                {
                    int i;
                    for (i = 0; i <= (ActReader.GetTableLength(FedmIscReaderConst.ISO_TABLE) - 1); i++)
                    {
                        ActReader.GetTableData(i, FedmIscReaderConst.ISO_TABLE, FedmIscReaderConst.DATA_SNR, out serialNumber[i]);
                    }
                    TagChanged(serialNumber);
                }
                else
                {
                    this.listBoxTags.Items.Clear();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Example #3
0
        void ReadDevice(int deviceId, FedmIscReader device)
        {
            device.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_CMD, 0x01);
            device.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE, 0x00);

            try
            {
                device.ResetTable(FedmIscReaderConst.ISO_TABLE);

                device.SendProtocol(0x69);
                device.SendProtocol(0xB0);

                while (device.GetLastStatus() == 0x94)
                {
                    device.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE_MORE, 0x01);
                    device.SendProtocol(0xB0);
                }

                var transponders = new string[device.GetTableLength(FedmIscReaderConst.ISO_TABLE)];

                if (transponders.Length > 0)
                {
                    for (var i = 0; i < transponders.Length; i++)
                    {
                        device.GetTableData(i, FedmIscReaderConst.ISO_TABLE, FedmIscReaderConst.DATA_SNR,
                                            out transponders[i]);
                    }
                }

                _rfidSendRepository.Send(new Service.Models.RfidData {
                    DeviceId = deviceId.ToString(), Timestamp = DateTime.Now, Transponders = transponders
                });
                Console.WriteLine($"Device {deviceId} read tags: {string.Join(",", transponders)}");
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e);
            }
        }
Example #4
0
        /**********************************************************ENDE***************************************************************************************************************/

        /**************************************************Buttons**********************************************/
        private void buttonListen_Click(object sender, EventArgs e)
        {
            if (this.buttonListen.Text == "Listen")
            {
                this.buttonListen.Text = "Cancel";

                taskOpt.IPPort = Convert.ToInt16(this.textBoxPortNr.Text);
                if (this.checkBoxAkn.Checked)
                {
                    taskOpt.NotifyWithAck = 1;
                }
                else
                {
                    taskOpt.NotifyWithAck = 0;
                }
                //Start from intern Thread
                try
                {
                    reader.StartAsyncTask(FedmTaskOption.ID_NOTIFICATION, this, taskOpt);
                }
                catch (FeReaderDriverException ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
            else
            {
                this.buttonListen.Text = "Listen";
                //End from intern thread
                int val;
                reader.ResetTable(FedmIscReaderConst.BRM_TABLE);
                val = reader.CancelAsyncTask();
                //case Deadlocks ->-4084
                if (val < 0)
                {
                    reader.CancelAsyncTask();
                }
            }
        }
Example #5
0
    private void buttonSearchForLabels_Click(object sender, System.EventArgs e)
    {
        this.listBoxSerialNumber.Items.Clear();

        int back;

        reader.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_CMD, 0x01);
        reader.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE, 0x00);

        String[] tagType      = null;
        String[] serialNumber = null;

        try
        {
            back = reader.ResetTable(FedmIscReaderConst.ISO_TABLE);
            back = reader.SendProtocol(0x69);                     // RFReset
            System.Console.Write("RF-Reset: ");
            System.Console.WriteLine(reader.GetErrorText(back));
            back = reader.SendProtocol(0xB0);                     // ISOCmd
            System.Console.Write("Inventory: ");
            if (back < 0)
            {
                System.Console.WriteLine(reader.GetErrorText(back));
            }
            else
            {
                System.Console.WriteLine(reader.GetStatusText((byte)back));
            }
            while (reader.GetLastStatus() == 0x94)                     // more flag set?
            {
                reader.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE_MORE, 0x01);
                reader.SendProtocol(0xB0);
            }

            int length = reader.GetTableLength(FedmIscReaderConst.ISO_TABLE);
            serialNumber = new String[length];
            tagType      = new String[length];

            Console.WriteLine(reader.GetTableLength(FedmIscReaderConst.ISO_TABLE));
            if (length > 0)
            {
                int i;
                for (i = 0; i < reader.GetTableLength(FedmIscReaderConst.ISO_TABLE); i++)
                {
                    reader.GetTableData(i, FedmIscReaderConst.ISO_TABLE, FedmIscReaderConst.DATA_SNR, out serialNumber[i]);
                    reader.GetTableData(i, FedmIscReaderConst.ISO_TABLE, FedmIscReaderConst.DATA_TRTYPE, out tagType[i]);
                    if (tagType[i].Equals("00"))
                    {
                        tagType[i] = "Philips I-Code1";
                    }
                    if (tagType[i].Equals("01"))
                    {
                        tagType[i] = "Texas Instruments Tag-it HF";
                    }
                    if (tagType[i].Equals("03"))
                    {
                        tagType[i] = "ISO15693 Transponder";
                    }
                    if (tagType[i].Equals("04"))
                    {
                        tagType[i] = "14443A";
                    }
                    if (tagType[i].Equals("05"))
                    {
                        tagType[i] = "14443B";
                    }
                    if (tagType[i].Equals("06"))
                    {
                        tagType[i] = "EPC";
                    }

                    this.listBoxSerialNumber.Items.Add(serialNumber[i] + " - " + tagType[i]);
                }
            }
        }
        catch (Exception ex)
        {
            System.Console.WriteLine(ex.ToString());
        }
    }
/****************************************END*********************************/

        // methode to execute the thread
        public void ReadThread()
        {
            int readerStatus = 0;

            string[] serialNumber;
            byte[]   tagType;

            //declaration from delegateobject
            DelegateTagChanged TagChangedMethod = new DelegateTagChanged(TagChanged);
            DelegateLastError  LastErrorMethod  = new DelegateLastError(LastError);
            DelegateNoTag      NoTagMethod      = new DelegateNoTag(ClearList);

            object[]     obj1 = new object[2];
            object       obj2 = null;
            IAsyncResult result;

            while (true)
            {
                if (running == true)
                {
                    fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_CMD, 0x01);
                    fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE, 0x00);
                    try
                    {
                        fedm.ResetTable(FedmIscReaderConst.ISO_TABLE);
                        fedm.SendProtocol(0x69);                // RFReset
                        readerStatus = fedm.SendProtocol(0xB0); // ISOCmd
                        if (readerStatus != 0 && readerStatus != 0x94)
                        {
                            obj2   = readerStatus;
                            result = BeginInvoke(NoTagMethod, obj2);
                            EndInvoke(result);
                            continue;
                        }

                        while (fedm.GetLastStatus() == 0x94) // more flag set?
                        {
                            fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE_MORE, 0x01);
                            fedm.SendProtocol(0xB0);
                        }
                        //new dimensiion from array serialNumber,tagtype,SeNumbLength
                        serialNumber = new string[fedm.GetTableLength(FedmIscReaderConst.ISO_TABLE)];
                        tagType      = new byte[fedm.GetTableLength(FedmIscReaderConst.ISO_TABLE)];

                        if (fedm.GetTableLength(FedmIscReaderConst.ISO_TABLE) <= 0)
                        {
                            continue;
                        }

                        int i;
                        for (i = 0; i < fedm.GetTableLength(FedmIscReaderConst.ISO_TABLE); i++)
                        {
                            fedm.GetTableData(i, FedmIscReaderConst.ISO_TABLE, FedmIscReaderConst.DATA_SNR, out serialNumber[i]);
                            fedm.GetTableData(i, FedmIscReaderConst.ISO_TABLE, FedmIscReaderConst.DATA_TRTYPE, out tagType[i]);
                            // check, wether UHF tags are available in list
                            if (tagType[i] >= 0x80)
                            {
                                uhfTransponder = true;
                            }
                            else
                            {
                                uhfTransponder = false;
                            }
                        }
                        obj1[0] = serialNumber;

                        //asynchrone result senden
                        result = BeginInvoke(TagChangedMethod, obj1);
                        EndInvoke(result);
                    }
                    catch (Exception ex)
                    {
                        obj2 = ex.ToString();
                        //asynchrone result senden
                        result = BeginInvoke(LastErrorMethod, obj2);
                        EndInvoke(result);
                        running        = false;
                        uhfTransponder = false;
                    }
                }
            }
        }