none
How to detect if there is no tag present at the RFID reader

    질문

  • Hi all.

    What could be the best method of detecting if there is no tag present at the RFID reader? Are there any events that could be used? Reader status etc?
    What I am doing now is this:
    ICollection<TagReadEvent> tagEventsList=Connection.GetTags(TagDataSelector.All);

    Checks if the tagEventList has a count greater than 0.
    Made a Timer, starting the timer in Form_Load, and call the code above. Is this best practice?

    Regards,
    Arthur
    2009년 10월 28일 수요일 오후 3:49

답변

  • Your method is one way of doing it. But if you have an RFID process running that's bound to the reader in question, I think it's better to deduce this on the basis of the tag stream that the RFID process is receiving from the device. To give an example of how you would do this, let's say you have an RFID process that's bound to this reader and is posting events to a sink using the SqlServerSink EH. You could now query the database for the latest tag from the database, and on the basis of this timestamp, decide whether any tag is in front of the reader or not. (Note that this solution assumes that your reader is configured to report tags even though they might've been reported earlier. This is usually the case with RFID readers, so if you didn't do any special configuration, you probably don't need to worry about it.)

    The reason I'm suggesting this is that when you bind an RFID process to a reader, you already have inventory running at the device... if you request a 'GetTags' from the device, it might cause some providers to temporarily stop the asynchronous inventory, start a separate inventory cycle to service the GetTags request, and then start their asynchronous inventory again. The problem with this is that a provider's implementation might not report the tags collected during this new inventory cycle to the RFID process, and this might cause some data loss for the RFID process (this is completely dependent on the how the Provider is implemented, though). Instead of this happening periodically, you could simply glean the answer to your question from the data being reported to the RFID process.

    2009년 11월 1일 일요일 오후 7:12

모든 응답

  • Your method is one way of doing it. But if you have an RFID process running that's bound to the reader in question, I think it's better to deduce this on the basis of the tag stream that the RFID process is receiving from the device. To give an example of how you would do this, let's say you have an RFID process that's bound to this reader and is posting events to a sink using the SqlServerSink EH. You could now query the database for the latest tag from the database, and on the basis of this timestamp, decide whether any tag is in front of the reader or not. (Note that this solution assumes that your reader is configured to report tags even though they might've been reported earlier. This is usually the case with RFID readers, so if you didn't do any special configuration, you probably don't need to worry about it.)

    The reason I'm suggesting this is that when you bind an RFID process to a reader, you already have inventory running at the device... if you request a 'GetTags' from the device, it might cause some providers to temporarily stop the asynchronous inventory, start a separate inventory cycle to service the GetTags request, and then start their asynchronous inventory again. The problem with this is that a provider's implementation might not report the tags collected during this new inventory cycle to the RFID process, and this might cause some data loss for the RFID process (this is completely dependent on the how the Provider is implemented, though). Instead of this happening periodically, you could simply glean the answer to your question from the data being reported to the RFID process.

    2009년 11월 1일 일요일 오후 7:12
  • please Mr Andrew. I'm Saleh, student at USM unversity I'm looking for RFID software to read tag so please if you have one send it to me in my email(adaa2006@yahoo.com) thank you
    2011년 5월 10일 화요일 오후 5:59