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; }

浙公网安备 33010602011771号