//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()); } }
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; } }
private void button_AuthMYD_Click(object sender, EventArgs e) { int keyAddressTag = (int)this.numericUpDown_KeyAdrTAG.Value; int keyAddressSam = (int)this.numericUpDown_KeyAdrSAM.Value; int authCntAddress = (int)this.numericUpDown_AuthCntAdr.Value; fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B2_REQ_KEY_ADR_TAG, keyAddressTag); fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B2_REQ_KEY_ADR_SAM, keyAddressSam); fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B2_REQ_AUTH_COUNTER_ADR, authCntAddress); fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B2_REQ_KEY_AUTH_SEQUENCE, this.comboBox_AuthSequence.SelectedIndex); fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B2_MODE_ADR, mode); // addressed(for ISO15693) or selected(for ISO14443) Mode fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B2_CMD, 0xB1); try { fedm.SendProtocol((byte)0xB2); } catch (System.Exception ex) { MessageBox.Show(this, ex.ToString(), "Error"); return; } //Close Dialog this.Close(); }
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); } }
private void button_Authent_Click(object sender, EventArgs e) { String strKey; // get Key strKey = this.textBox_Key1.Text + this.textBox_Key2.Text + this.textBox_Key3.Text + this.textBox_Key4.Text + this.textBox_Key5.Text + this.textBox_Key6.Text; // ------ perform Authent Mifare fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B2_CMD, 0xB0); // Sub-Command fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B2_MODE, 0x00); // delete value Mode Byte (MODE_KL and MODE_ADR) fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B2_MODE_ADR, FedmIscReaderConst.ISO_MODE_SEL); // Fixed Selected Mode fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B2_REQ_DB_ADR, (int)this.numericUpDown_DBAdr.Value); // requested DataBlock Addr fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B2_REQ_KEY_TYPE, (byte)this.comboBoxKeyType.SelectedIndex); // Key type (A or B) byte bKeyLoc = (byte)this.comboBoxKeyLoc.SelectedIndex; if (bKeyLoc == 1) { // EEPROM Addr. where Key is stored fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B2_REQ_KEY_ADR, (byte)this.numericUpDown_KeyAdr.Value); } else { fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_ISO14443A_KEY, strKey); fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B2_MODE_KL, true); // choose Key Location - from Protocol } try { fedm.SendProtocol((byte)0xB2); } catch (System.Exception ex) { MessageBox.Show(this, ex.ToString(), "Error"); return; } // Close window after authent command this.Close(); }
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()); } }
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); } }