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); } }