Alien reader java开发2-1 Reader Class

Reader Classes
  Introduction

  The reader classes are the primary classes for communicating with a reader either over
the network or a serial port. Typically the reader object will be obtained from a
DiscoveryItem object, as discussed in a subsequent chapter. However, if the location
(either serial port or network address) of the reader is known, a reader object can be
instantiated directly without the need of any discovery classes.
  Once a valid reader object is created, it offers you a number of simple commands that
fully implement the command set described in the Reader Interface Guide.
  The parent reader class, AbstractReader, provides the base functionality of a generic
reader class, handling serial and network communications, and low-level methods for
sending commands to a reader and receiving back responses. As its name suggests it is
an abstract class and therefore cannot be instantiated, so one of its subclasses is used
instead:

  • AlienClass1Reader is the class representing the all of Alien's Class I passive
  readers, and exposes all of the reader commands of the passive readers
  through it’s API. The vast majority of Alien readers is handled by this single
  class.
  • AlienClassOEMReader extends AlienClass1Reader to communicate with
  Alien RFID OEM Modules, using a binary protocol. Only serial communication
  is possible with OEM Modules.
  • AlienClassBPTReader extends AlienClass1Reader and includes all of the
  additional functionality of the Battery Powered Tag reader. We discuss
  AlienClassBPTReader in a later chapter.

说明

  reader类是通过网络或者串口与阅读器通信的主要类。通常,reader对象是通过DiscoveryItem对象获得的,将在后面的章节谈到。不管怎么样,如果知道reader的位置(串口号或者网络地址),那么reader对象就可以直接实例化并不需要任何discovery类。

  一旦一个合法的reader对象被创建,你将会获得一些简单的操作。这些操作的完整实现你可以再用户接口指南中找到。

  reader的父类AbstractReader,提供了一般的reader类的基本功能。如处理串口和网络通信,发送命令到阅读器和接受相应的低端的方法。正如其名它是一个抽象类,因而不能实例化。所以用它的子类代替:

  • AlienClass1Reader是代表所有的Alien的一级的被动readers的类。而且通过它的API揭示阅读器的被动readers的所有命令。大量的Alien readers被这个简单类操纵。(感觉不是很懂)

  • AlienClassOEMReader继承AlienClass1Reader类,实现与AlienRFID OEM模块通信的功能,使用的事二进制协议。只有串口通信可以使用OEM模块。

  • AlienClassBPTReader继承AlienClass1Reader类,而且包含所有 有源标签阅读器 新增加的功能。将在后面讨论它。

Creating a Reader Object from a DiscoveryItem
  If discovery classes are used (see subsequent chapters), any readers that are found on
the network or serial ports are represented by DiscoveryItem objects. To derive a
reader object from a DiscoveryItem, use the following method:  

AlienClass1Reader reader = discoveryItem.getReader();

  If the discovered reader is actually a Battery Powered Tag Reader or OEM Module, the
reader object that is returned will actually be of the appropriate class, and can be cast as
such: 

AlienClass1Reader class1Reader = discoveryItem.getReader();
if (class1Reader instanceof AlienClassBPTReader) {
AlienClassBPTReader classBPTReader = (AlienClassBPTReader)class1Reader;
} else if (class1Reader instanceof AlienClassOEMReader) {
AlienClassOEMReader classOEMReader = (AlienClassOEMReader)class1Reader;
}

  Example Code: Recasting a Reader Object

通过DiscoveryItem创建一个Reader对象

  如果使用发现类(在后面几章讨论),在网络或者串口被发现的任何阅读器都是被DiscoveryItem对象管理的。可以使用下面的方法从DiscoveryItem获得一个reader对象:

    AlienClass1Reader reader = discoveryItem.getReader();

  如果发现的阅读器实际是一个有源标签阅读器或者是OEM模块,则返回的reader对象将是适当的类类型,而且可以如下转换:

 

AlienClass1Reader class1Reader = discoveryItem.getReader();
if (class1Reader instanceof AlienClassBPTReader) {
AlienClassBPTReader classBPTReader = (AlienClassBPTReader)class1Reader;
} else if (class1Reader instanceof AlienClassOEMReader) {
AlienClassOEMReader classOEMReader = (AlienClassOEMReader)class1Reader;
}

 

 

posted @ 2012-09-27 21:50  孤独~根号三  阅读(239)  评论(0)    收藏  举报