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); } }
/**********************************************************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(); } } }
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; } } } }