private void buttonRead_Click(object sender, EventArgs e)
        {
            byte[] data;
            byte   blockSize;
            int    idx;
            int    dbn;
            int    address;
            int    mode;
            int    bankidx;
            long   datalocation = FedmIscReaderConst.DATA_RxDB;

            mode = this.comboBoxMod.SelectedIndex;

            int selRow;

            selRow = this.listBoxTags.SelectedIndex;

            if (selRow == -1 && mode > 0)
            {
                MessageBox.Show(this, "There was no tag selected.", "Error");
                return;
            }

            // set IscTable-Parameter
            dbn     = (int)this.numericUpDownDBN.Value;
            address = (int)this.numericUpDownAdr.Value;

            fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE, (byte)0);
            fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_REQ_UID, serialNumber);
            fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_CMD, 0x23);
            fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_REQ_DBN, dbn);
            fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE_ADR, mode);

            //if uhfTransponder is found
            if (uhfTransponder == true)
            {
                if (mode == 2)
                {
                    MessageBox.Show(this, "UHF Transponder cannot be read in mode selected mode.", "Error");
                    return;
                }

                bankidx = this.comboBoxBank.SelectedIndex;

                fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE_UID_LF, true);
                fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE_EXT_ADR, true);
                fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_REQ_UID_LEN, SerialNumberLen);
                fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_REQ_BANK, (byte)0);
                fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_REQ_BANK_BANK_NR, bankidx);
                fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_ACCESS_PW_LENGTH, (byte)0);
                fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_REQ_DB_ADR_EXT, address);
            }


            fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_REQ_DB_ADR, address);


            // Send ReadMultipleBlocks-Protocol
            try
            {
                fedm.SendProtocol(0xB0);
            }

            catch (System.Exception ex)
            {
                MessageBox.Show(this, ex.ToString(), "Error");
                return;
            }

            switch (mode)
            {
            case 0:
                idx = 0;
                break;

            case 1:
                idx = fedm.FindTableIndex(0, FedmIscReaderConst.ISO_TABLE, FedmIscReaderConst.DATA_SNR, serialNumber);
                break;

            case 2:
                idx = fedm.FindTableIndex(0, FedmIscReaderConst.ISO_TABLE, FedmIscReaderConst.DATA_IS_SELECTED, true);
                break;

            default:
                return;
            }

            // get blockSize from ISC-table, default = 4
            FedmIsoTableItem item;

            try
            {
                item = (FedmIsoTableItem)fedm.GetTableItem(idx, FedmIscReaderConst.ISO_TABLE);
                item.GetData((FedmIscReaderConst.DATA_BLOCK_SIZE), out blockSize);
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(this, ex.ToString(), "Error");
                return;
            }

            if (blockSize == 0)
            {
                blockSize = 4; // default value
            }

            //set current blockSize
            this.numericUpDownDBS.Value = blockSize;

            //Set DataBlockData from ResponseBuffer to HexEdit
            int i;

            for (i = 0; i < dbn; i++)
            {
                if (uhfTransponder == true)
                {
                    bankidx = this.comboBoxBank.SelectedIndex;
                    switch (bankidx)
                    {
                    case 0:
                        datalocation = FedmIscReaderConst.DATA_RxDB_RES_BANK;
                        break;

                    case 1:
                        datalocation = FedmIscReaderConst.DATA_RxDB_EPC_BANK;
                        break;

                    case 2:
                        datalocation = FedmIscReaderConst.DATA_RxDB_TID_BANK;
                        break;

                    case 3:
                        datalocation = FedmIscReaderConst.DATA_RxDB;
                        break;

                    default:
                        break;
                    }
                }
                item.GetData(datalocation, address + i, out data);
                HexEdit.InsertData((address + i) * blockSize, data);
            }
        }