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; } }
//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()); } }
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 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 listBoxTags_SelectedIndexChanged(object sender, EventArgs e) { int selRow; int mode; byte bTagType; selRow = this.listBoxTags.SelectedIndex; if (selRow == -1) { MessageBox.Show(this, "There was no tag selected.", "Error"); return; } else { // get Tag Type fedm.GetTableData(selRow, FedmIscReaderConst.ISO_TABLE, FedmIscReaderConst.DATA_TRTYPE, out bTagType); // control enable check for UHF controls if (uhfTransponder == true) { this.comboBoxBank.Enabled = true; } else { this.comboBoxBank.Enabled = false; } // control enable check for ISO14443 controls if (bTagType == FedmIscReaderConst.TR_TYPE_ISO14443A || bTagType == FedmIscReaderConst.TR_TYPE_ISO14443B) { this.button_Authent_myd.Enabled = true; this.button_AuthentMifare.Enabled = true; // for ISO14443 tags mode is fixed -> selected mode = FedmIscReaderConst.ISO_MODE_SEL; this.comboBoxMod.SelectedIndex = FedmIscReaderConst.ISO_MODE_SEL; } else if (bTagType == FedmIscReaderConst.TR_TYPE_ISO15693) { this.button_Authent_myd.Enabled = true; this.button_AuthentMifare.Enabled = false; // get Mode from comboBox (non-addr, addr, selected) mode = this.comboBoxMod.SelectedIndex; } else { this.button_Authent_myd.Enabled = false; this.button_AuthentMifare.Enabled = false; // get Mode from comboBox (non-addr, addr, selected) mode = this.comboBoxMod.SelectedIndex; } serialNumber = this.listBoxTags.SelectedItem.ToString(); SerialNumberLen = Convert.ToByte(serialNumber.Length / 2); try { fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_REQ_UID, serialNumber); // prepare for 0xB0 command if (bTagType == FedmIscReaderConst.TR_TYPE_ISO14443A || bTagType == FedmIscReaderConst.TR_TYPE_ISO14443B) { fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B2_REQ_UID, serialNumber); // prepare for 0xB2 command } } catch (System.Exception ex) { MessageBox.Show(this, ex.ToString(), "Error"); return; } if (mode == 2)//selected { try { fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_MODE, 0x01); // Mode: addressed fedm.SetData(FedmIscReaderID.FEDM_ISC_TMP_B0_CMD, 0x25); // Select Command fedm.SendProtocol(0xB0); } catch (System.Exception ex) { MessageBox.Show(this, ex.ToString(), "Error"); return; } } else { return; } } }