|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectcom.alien.enterpriseRFID.reader.AbstractReader
com.alien.enterpriseRFID.reader.AlienClass1Reader
com.alien.enterpriseRFID.reader.AlienClassOEMReader
This class allows the host to interact with Alien readers which use the Alien Binary Reader Protocol, otherwise known as the DLE (Data Link Escape) protocol.
Typically the Reader object will be obtained from a
DiscoveryItem object, which is
acquired through one of the reader discovery mechanisms, such as
SerialDiscoveryListenerService.
However if the location (serial port name) is known, a Reader object can be
instantiated directly without the need of any discovery classes.
Once a valid reader object is instantiated, the user would first open a connection to it, then use any of the simple methods that implement the full command set described by the Reader Interface Guide. Without having the benefit of an ASCII-based interface controller on the reader, much of the autonomous mode functionality found on Alien's full-sized readers must be emulated (partially) by this class. Basically, this class supports autonomous operation only in that it can read tags constantly on it's own, maintaining its own TagList.
This class inherits from AlienClass1Reader, which supports readers with
much more functionality than the OEM readers provide. As such, the
sendString() and receiveString() methods are overridden so that commands
designed to work only with ASCII-based readers are not sent to OEM readers.
See AlienDLEObject and AlienClassOEMReader for information on
how the DLE protocol is used to communicate with Alien readers.
| Field Summary | |
int |
lastCommandByteCount
|
byte[] |
lastCommandBytes
|
int |
lastResponseByteCount
|
byte[] |
lastResponseBytes
|
AlienDLEObject |
rc
|
| Fields inherited from class com.alien.enterpriseRFID.reader.AlienClass1Reader |
ALL_MASK, CLASS0, CLASS1GEN1_64BITS, CLASS1GEN1_96BITS, CLASS1GEN1_ALL, CLASS1GEN1_LEPTON, CLASS1GEN1_OMEGA, CLASS1GEN1_QUARK, CLASS1GEN2, CUSTOM_FORMAT, DATA_INC_ALWAYS, DATA_INC_FAIL, DATA_INC_OFF, DATA_INC_SUCCESS, DATA_INC_WRITE, DATE_FORMATTER, FUNCTION_PROGRAMMER, FUNCTION_READER, G2TARGET_A, G2TARGET_AB, G2TARGET_B, GLOBAL_SCROLL, INVENTORY, LOCKTYPE_LOCK, LOCKTYPE_PERMALOCK, LOCKTYPE_PERMAUNLOCK, LOG_OFF, LOG_ON, OFF, ON, PROG_CLASS0, PROG_CLASS1GEN1, PROG_CLASS1GEN2, RFMOD_DRM, RFMOD_HS, RFMOD_STD, TERSE_FORMAT, TEXT_FORMAT, XML_FORMAT |
| Fields inherited from class com.alien.enterpriseRFID.reader.AbstractReader |
DEBUG_BYTES, DEBUG_OFF, DEBUG_TEXT, DEFAULT_TIMEOUT, TIMEOUTMODE_CHARACTER, TIMEOUTMODE_COMMAND |
| Constructor Summary | |
AlienClassOEMReader()
Constructs a new AlienClassOEMReader object, initializing an internal TagTable, and setting AutoMode off. |
|
AlienClassOEMReader(java.lang.String address)
Constructs a new AlienClassOEMReader object, specifying the address. |
|
| Method Summary | |
void |
autoModeReset()
Reset all autonomous mode values to their default states, including turning autonomous mode off. |
void |
clearTagList()
Clears all the tags from the internal TagList. |
Tag[] |
doInventory()
Performs an Inventory. |
void |
eraseTag()
Erases the data in the tag's ID space, using default loop-control parameters. |
void |
eraseTag(int numVerifies,
int numErases)
Erases the data in the tag's ID space. |
int |
getAcquireC1Count()
Returns the number of reads to perform in each C1 acquire cycle. |
int |
getAcquireC1Cycles()
Returns the number of complete acquire cycles to perform with each C1 read operation. |
int |
getAcquireC1EnterWakeCount()
Returns the number of wakes to perform at the start of each C1 acquire cycle. |
int |
getAcquireC1ExitWakeCount()
Returns the number of wakes to perform at the end of each C1 acquire cycle. |
int |
getAcquireC1SleepCount()
Returns the number of sleeps to perform after each C1 acquire cycle. |
int |
getAcquireCount()
Returns the number of reads to perform in each Class1 Gen1 acquire cycle. |
int |
getAcquireCycles()
Returns the number of complete acquire cycles to perform with each Class1 Gen1 read operation. |
int |
getAcquireEnterWakeCount()
Returns the number of wakes to perform at the start of each Class1 Gen1 acquire cycle. |
int |
getAcquireExitWakeCount()
Returns the number of wakes to perform at the end of all the Class1 Gen1 acquire cycles. |
int |
getAcquireG2Count()
Returns the number of reads to perform in each G2 acquire cycle. |
int |
getAcquireG2Cycles()
Returns the number of complete acquire cycles to perform with each G2 read operation. |
int |
getAcquireG2Q()
Returns the starting Q value for each G2 acquire cycle. |
java.lang.String |
getAcquireMode()
Returns the method that the reader uses to scan for tags. |
int |
getAcquireSleepCount()
Returns the number of sleeps to perform after each Class1 Gen1 acquire cycle. |
int |
getActiveAntenna()
Returns the number of the active antenna. |
java.lang.String |
getAntennaSequence()
Returns the Antenna Sequence, as a comma-separated String of hex values. |
int |
getAntennaStatus()
Returns the Antenna Status. |
int |
getAutoMode()
Returns the ON/OFF status of Autonomous mode. |
int |
getAvailableBaudRates()
Returns a bitmap denoting the available baud rates for this reader. |
int |
getBaudRate()
Returns the reader's serial communication baud rate. |
int |
getBidirectionalDDR()
Returns a bitmap defining the direction of the Bi-Directional I/O ports. |
int |
getBidirectionalIOPorts()
Returns a bitmap specifying which of the I/O ports have been configured to be Bidirectional inputs/outputs. |
int |
getExternalInput()
Returns the decimal representation of the state of the external inputs. |
int |
getGeneralPurposeInputs()
Returns a bitmap specifying which of the I/O ports have been configured to be General Purpose Inputs. |
int |
getGeneralPurposeOutputs()
Returns a bitmap specifying which of the I/O ports have been configured to be General Purpose Outputs. |
int |
getHardwareReaderType()
Returns this reader's Reader Type. |
int |
getHopInterval()
Returns the length of time the reader dwells at each frequency before hopping to the next one. |
int |
getHopStepSize()
Returns the frequency spacing of this reader's hop table. |
int |
getIOPortValue()
Returns the current state of the input/output port pins. |
int |
getLocalizationCode()
Returns this reader's Localization Code. |
java.lang.String |
getMask()
Returns the current tag mask. |
int |
getMaxAntenna()
Returns the maximum antenna number that may be addressed by this reader. |
int |
getMaxFrequency()
Returns the maximum RF frequency that this reader may be set to. |
int |
getMaxHopTableIndex()
Returns the maximum allowable Hop Channel that is used in the hopping table. |
int |
getMaxRFChannel()
Returns the maximum RF channel used in this reader. |
int |
getMaxRFPower()
Returns the maximum RF power available with this reader hardware. |
int |
getMinFrequency()
Returns the minimum RF frequency that this reader may be set to. |
int |
getOperatingVoltage()
Returns the measured voltage level into the OEM Module, given in hundredths of a volt. |
int |
getPersistTime()
Returns the time, in seconds, that tags on the internal TagList will persist without having been read, before being purged from the list. |
int |
getPLLType()
Returns the type of PLL installed in this reader. |
int |
getProgAntenna()
Returns the number of the programming antenna. |
int |
getProgramEnableMode()
Returns a bitmap specifying which program functions are enabled for this reader. |
int |
getRadioType()
Returns the type of RF radio in this reader. |
java.lang.String |
getReaderName()
Returns the reader name. |
int |
getReaderNumber()
Returns the ReaderNumber stored in this reader. |
java.lang.String |
getReaderSerialNumber()
|
java.lang.String |
getReaderType()
Returns the reader type. |
java.lang.String |
getReaderVersion()
Returns the firmware version of this reader, including the ReaderLocale and ReaderType values. |
int |
getRFAttenuation()
Returns the RF power attenuation value from non-volatile memory. |
int |
getRFChannel()
Returns the RF channel currently being used by this reader. |
int |
getRFOnOff()
Returns the current state of the RF power while the reader is idle. |
int |
getSupportedTagTypes()
Returns the bitmap indicating which Alien RFID tag types the reader should look for. |
Tag |
getTag()
Acquires one Tag, once. |
Tag |
getTag(int multiplier)
Acquires one Tag, using a multiplier. |
java.lang.String |
getTagID()
Acquires tags, and returns the TagID of the first tag on the TagList. |
Tag[] |
getTagList()
Returns an array of tags known to the reader, once. |
Tag[] |
getTagList(int multiplier)
Fetches and returns the tag list, using a multiplier count. |
java.lang.String |
getTimer()
Returns the Timer text for the most recent acquire. |
void |
issueReaderCommand(AlienDLEObject rc)
Issues a reader command. |
void |
killTag(int numVerifies,
int numKills,
java.lang.String tagIDAndPassCode)
Kills a tag by erasing the data in a locked tag's ID space. |
void |
killTag(java.lang.String tagIDAndPassCode)
Kills a tag by erasing the data in a locked tag's ID space, using default loop-control parameters. |
void |
lockTag(int tagIDLength,
int lockCode)
Locks a Tag, using default loop-control parameters. |
void |
lockTag(int numVerifies,
int numLocks,
int tagIDLength,
int lockCode)
Locks a Tag. |
void |
lockTag(java.lang.String passCode)
Locks a Tag, using default loop-control parameters and tagID length. |
java.lang.String |
manageReserved(java.lang.String reservedCommand)
Enables one of the "Manage Reserved" DLE-based command sequences to be sent to the reader. |
java.lang.String |
manageReservedCLI()
Enables one of the "Manage Reserved" DLE-based command sequences to be sent to the reader. |
void |
programTag(int numVerifies,
int numErases,
int numPrograms,
java.lang.String tagID)
Writes data to the tag ID space. |
void |
programTag(java.lang.String tagID)
Writes data to the tag ID space, using default loop-control parameters. |
java.lang.String |
rcCLI()
Enables raw DLE-based command sequences to be sent to the reader. |
java.lang.String |
readerCommandCLI()
Enables raw DLE-based command sequences to be sent to the reader. |
void |
reboot()
Causes the reader module to reboot. |
byte[] |
receiveBytes()
Receives and entire response message from the reader. |
java.lang.String |
receiveString(boolean blockForInput)
Returns the response string prepared by the sendString() method, as it if came from a reader sporting an ASCII-based interface. |
int |
resetBaudRate()
Attempts to set the serial communication baud rate of this reader to 115,200. |
void |
run()
Run the automode function for this reader. |
void |
sendBytes(byte[] bytes)
Sends an arbitrary sequence of bytes to the reader. |
void |
sendString(java.lang.String command)
Intercepts a command string intended for the OEM reader, and attempts to handle the command using methods from this class. |
void |
setAcquireC1Count(int acquireC1Count)
Specifies the number of reads to perform in each C1 acquire cycle. |
void |
setAcquireC1Cycles(int acquireC1Cycles)
Specifies the number of complete acquire cycles to perform with each C1 read operation. |
void |
setAcquireC1EnterWakeCount(int acquireC1EnterWakeCount)
Specifies the number of wakes to perform at the start of each C1 acquire cycle. |
void |
setAcquireC1ExitWakeCount(int acquireC1ExitWakeCount)
Specifies the number of wakes to perform at the end each C1 acquire cycle. |
void |
setAcquireC1SleepCount(int acquireC1SleepCount)
Specifies the number of sleeps to perform during each C1 acquire cycle. |
void |
setAcquireCount(int acquireC1Count)
Specifies the number of reads to perform in each Class1 Gen1 acquire cycle. |
void |
setAcquireCycles(int acquireC1Cycles)
Specifies the number of complete acquire cycles to perform with each Class1 Gen1 read operation. |
void |
setAcquireEnterWakeCount(int acquireC1EnterWakeCount)
Specifies the number of wakes to perform at the start of each Class1 Gen1 acquire cycle. |
void |
setAcquireExitWakeCount(int acquireC1ExitWakeCount)
Specifies the number of wakes to perform at the end all the Class1 Gen1 acquire cycles. |
void |
setAcquireG2Count(int acquireG2Count)
Specifies the number of reads to perform in each G2 acquire cycle. |
void |
setAcquireG2Cycles(int acquireG2Cycles)
Specifies the number of complete acquire cycles to perform with each G2 read operation. |
void |
setAcquireG2Q(int acquireG2Q)
Specifies the starting Q value for each G2 acquire cycle. |
void |
setAcquireMode(java.lang.String acquireMode)
Specifies the method the reader uses to scan for tags. |
void |
setAcquireSleepCount(int acquireC1SleepCount)
Specifies the number of sleeps to perform during each Class1 Gen1 acquire cycle. |
void |
setActiveAntenna(int antennaNumber)
Sets the active antenna to the specified value. |
void |
setAntennaSequence(int[] antennaSequenceBytes)
Sets the sequence of antenna ports, using an array of ints, that is used by the reader when responding to an Inventory command. |
void |
setAntennaSequence(java.lang.String sequenceString)
Sets the sequence of antenna ports, using a comma-separated String of integer values, that is used by the reader when responding to an Inventory command. |
void |
setAutoMode(int autoMode)
Sets the ON/OFF status of Autonomous mode. |
void |
setBaudRate(int baudRate)
Sets the reader's serial communication baud rate to the value specified. |
void |
setBidirectionalDDR(int bitmap)
Sets the input/output direction of Bi-Directional I/O ports. |
void |
setDebugLevel(int level)
Sets the current Debug Level. |
void |
setExternalOutput(int value)
Changes the state of the reader's external output pins. |
void |
setG2Mask(int bitLength,
int bitPointer,
java.lang.String tagMaskBytes)
|
void |
setG2TagMask(java.lang.String tagID)
Sets the reader's Class1/Gen2 tag mask to match the specified EPC. |
void |
setIOPortValue(int portValue)
Sets or clears specified output port pins. |
void |
setMask(int bitLength,
int bitPointer,
java.lang.String tagMaskBytes)
Set the Tag Mask, using a length, pointer, and string of hex bytes as parameters. |
void |
setMask(java.lang.String maskString)
Sets the Tag Mask, as a String. |
void |
setPersistTime(int persistTime)
Sets the time, in seconds, that tags on the internal TagList will persist without having been read, before being purged from the list. |
void |
setProgAntenna(int antennaNumber)
Sets the programming antenna to the specified value. |
void |
setReaderNumber(int readerNumber)
Changes the ReaderNumber parameter of this reader. |
void |
setRFAttenuation(int attenuationValue)
Sets the RF power attenuation to the value associated with argument provided. |
void |
setRFOnOff(int powerOnOff)
Turns the RF carrier on or off while idle (not reading tags). |
void |
setSupportedTagTypes(int tagType)
Sets the bitmap indicating which Alien RFID tag types the reader should look for. |
void |
setTagMask(java.lang.String tagID)
Sets the reader's tag mask to match the specified Tag ID. |
void |
sleepTag()
Causes a tag in the field to enter the sleep state. |
java.lang.String |
toString()
Returns a String representation of this reader object (it's ReaderType). |
java.lang.String |
verifyTag()
Interrogates the state of a tag that may or may not be readable by the Acquire commands. |
void |
wakeTag()
Requests all tags in the field wake up. |
| Methods inherited from class com.alien.enterpriseRFID.reader.AbstractReader |
bringIntoRange, clearInputBuffer, close, doReaderCommand, getAddress, getDebugLevel, getInputStream, getOutputStream, getReaderReply, getReaderReplyKeyword, getReaderReplyValueInt, getReaderReplyValueString, getTimeOutMilliseconds, getTimeOutMode, isOpen, isValidateOpen, open, receiveLine, setAddress, setConnection, setConnection, setInputStream, setNetworkConnection, setOutputStream, setSerialBaudRate, setSerialConnection, setTimeOutMilliseconds, setTimeOutMode, setValidateOpen, test |
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
public AlienDLEObject rc
public byte[] lastResponseBytes
public byte[] lastCommandBytes
public int lastResponseByteCount
public int lastCommandByteCount
| Constructor Detail |
public AlienClassOEMReader(java.lang.String address)
address - the serial port address where the reader is connectedpublic AlienClassOEMReader()
| Method Detail |
public void setDebugLevel(int level)
AbstractReaderSetting the Debug Level to DEBUG_TEXT causes the text of every reader command/response to be echoed to stdout. For example, calling getReaderName() with Debug Level set to DEBUG_TEXT displays the following:
Write: Get ReaderName
Read: ReaderName = Alien RFID Reader
Setting the Debug Level to DEBUG_BYTES causes the raw hex data of every
reader command/response to be echoed to stdout. For example, the same
getReaderName() call with Debug Level set to DEBUG_BYTES displays the following:
Write: 01 47 65 74 20 52 65 61 64 65 72 4E 61 6D 65 0D 0A
Read: 52 65 61 64 65 72 4E 61
Read: 6D 65 20 3D 20 41 6C 69
Read: 65 6E 20 52 46 49 44 20
Read: 52 65 61 64 65 72 0D 0A
Read: 00
This Debug Level shows the additional bytes sent to and received from the
reader that are used to prefix and terminate commands and responses.
Setting the Debug Level to DEBUG_OFF turns off these diagnostic messages, which is the default state.
setDebugLevel in class AbstractReaderlevel - the new Debug Level setting
public void issueReaderCommand(AlienDLEObject rc)
throws AlienReaderConnectionException,
AlienReaderTimeoutException,
AlienReaderCommandErrorException
AlienDLEObject,
which contains command/response buffers, manages and validates encoding and
decoding of DLE messages, and verifies response data from the reader.
This method is responsible for actually sending the command bytes and receiving the response bytes from the reader. As response bytes are received from the reader, they are passed one-at-a-time to the Reader Command object, which ensures the correct start-of-message (SOM), end-of-message (EOM), and other DLE delimiters are received properly.
All commands are atomic (that is, one command elicits a single DLE message response from the reader), except for the Inventory command. The reader responds to the Inventory command with separate STARTINV and ENDINV messages, as well as separate TAGINV messages for each tag it reads.
Any responses from the reader which indicate an error cause this class to generate an exception, which must be handled by the object which made the original call.
rc - the AlienDLEObject containing the command
AlienReaderConnectionException - if communication fails
AlienReaderTimeoutException - if the communication times out
AlienReaderCommandErrorException - if the reader returns an error response to the commandpublic void setPersistTime(int persistTime)
setPersistTime in class AlienClass1ReaderpersistTime - the time (secs) to wait before purging unseen tagsAlienClass1Reader.getPersistTime()public int getPersistTime()
getPersistTime in class AlienClass1ReaderAlienClass1Reader.setPersistTime(int)public void clearTagList()
clearTagList in class AlienClass1ReaderAlienClass1Reader.getTagList(int),
AlienClass1Reader.getTagList(int),
AlienClass1Reader.getTag(int),
AlienClass1Reader.getTag(int)
public Tag[] getTagList()
throws AlienReaderException
getTagList in class AlienClass1Readernull if no tags
AlienReaderException - if reader communication failsgetTagList(int)
public Tag[] getTagList(int multiplier)
throws AlienReaderException
getTagList in class AlienClass1Readermultiplier - the number of times to acquire tags
null if no tags
AlienReaderException - if reader communication failsAlienClass1Reader.getTagList(int),
AlienClass1Reader.getTag(int),
AlienClass1Reader.getTag(int),
AlienClass1Reader.clearTagList()
public Tag getTag()
throws AlienReaderException
getTag in class AlienClass1ReaderAlienReaderException - if reader communication failsgetTag(int),
getTagList(),
getTagList(int)
public Tag getTag(int multiplier)
throws AlienReaderException
multiple times), if necessary.
getTag in class AlienClass1Readermultiplier - the number of times to acquire tags
AlienReaderException - if reader communication failsgetTag(),
getTagList(),
getTagList(int)
public java.lang.String getTagID()
throws AlienReaderException
getTagID in class AlienClass1ReaderAlienReaderException - if reader communication failsgetTag()public int getAutoMode()
getAutoMode in class AlienClass1ReadersetAutoMode(int),
AlienClass1Reader.resetAutoMode()public void setAutoMode(int autoMode)
In the interests of future compatibility, you should use AlienClass1Reader.ON and AlienClass1Reader.OFF
constants to set and test this parameter.
setAutoMode in class AlienClass1ReaderautoMode - the new ON/OFF status of AutoModegetAutoMode(),
AlienClass1Reader.resetAutoMode()public void autoModeReset()
autoModeReset in class AlienClass1ReadergetAutoMode(),
setAutoMode(int)public java.lang.String getAcquireMode()
getAcquireMode in class AlienClass1ReadersetAcquireMode(String)public void setAcquireMode(java.lang.String acquireMode)
AlienClass1Reader.INVENTORY and AlienClass1Reader.GLOBAL_SCROLL to specify
and test for this parameter.
Inventory
The Inventory acquire mode performs a full anti-collision search on tags in
the reader's field of view. This method will locate and distinguish multiple
tags in front of the reader at the same time.
Global Scroll
The Global Scroll acquire mode instructs the reader to read a single tag
repeatedly. This is a very fast tag reading method which is most effective
when only one tag at a time is expected to be within reader range, as in
conveyor belt applications. Under such circumstances, the performance for
single tag reading is considerably faster than repeatedly doing a full tag
search using the Inventory mode.
NOTE: If multiple tags are in range of the reader when Global Scroll is used, the reader will either select one of the tags (usually the "strongest" or "loudest") to read and report it, or will read none of the tags.
setAcquireMode in class AlienClass1ReaderacquireMode - the method this reader uses to read tagsgetAcquireMode()public int getAcquireG2Cycles()
getAcquireG2Cycles in class AlienClass1ReadersetAcquireG2Cycles(int)public void setAcquireG2Cycles(int acquireG2Cycles)
setAcquireG2Cycles in class AlienClass1ReaderacquireG2Cycles - the number of complete acquire cycles to perform with each G2 read operationgetAcquireG2Cycles()public int getAcquireG2Count()
getAcquireG2Count in class AlienClass1ReadersetAcquireG2Count(int)public void setAcquireG2Count(int acquireG2Count)
setAcquireG2Count in class AlienClass1ReaderacquireG2Count - the number of reads to perform in each G2 acquire cyclegetAcquireG2Count()public int getAcquireG2Q()
getAcquireG2Q in class AlienClass1ReadersetAcquireG2Q(int)public void setAcquireG2Q(int acquireG2Q)
setAcquireG2Q in class AlienClass1ReaderacquireG2Q - the starting Q value for each G2 acquire cyclegetAcquireG2Q()public int getAcquireC1Cycles()
getAcquireC1Cycles in class AlienClass1ReadersetAcquireC1Cycles(int)public int getAcquireCycles()
AlienClass1Reader
getAcquireCycles in class AlienClass1ReaderAlienClass1Reader.setAcquireCycles(int)public void setAcquireC1Cycles(int acquireC1Cycles)
setAcquireC1Cycles in class AlienClass1ReaderacquireC1Cycles - the number of complete acquire cycles to perform with each C1 read operationgetAcquireC1Cycles()public void setAcquireCycles(int acquireC1Cycles)
AlienClass1Reader
setAcquireCycles in class AlienClass1ReaderacquireC1Cycles - the number of complete acquire cycles to perform with each Class1 Gen1 read operationAlienClass1Reader.getAcquireCycles()public int getAcquireC1Count()
getAcquireC1Count in class AlienClass1ReadersetAcquireC1Count(int)public int getAcquireCount()
AlienClass1Reader
getAcquireCount in class AlienClass1ReaderAlienClass1Reader.setAcquireCount(int)public void setAcquireC1Count(int acquireC1Count)
setAcquireC1Count in class AlienClass1ReaderacquireC1Count - the number of reads to perform in each C1 acquire cyclegetAcquireC1Count()public void setAcquireCount(int acquireC1Count)
AlienClass1Reader
setAcquireCount in class AlienClass1ReaderacquireC1Count - the number of reads to perform in each Class1 Gen1 acquire cycleAlienClass1Reader.getAcquireCount()public int getAcquireC1EnterWakeCount()
getAcquireC1EnterWakeCount in class AlienClass1ReadersetAcquireC1EnterWakeCount(int)public int getAcquireEnterWakeCount()
AlienClass1Reader
getAcquireEnterWakeCount in class AlienClass1ReaderAlienClass1Reader.setAcquireEnterWakeCount(int)public void setAcquireC1EnterWakeCount(int acquireC1EnterWakeCount)
setAcquireC1EnterWakeCount in class AlienClass1ReaderacquireC1EnterWakeCount - the number of wakes to perform at the start of each C1 acquire cyclegetAcquireC1EnterWakeCount()public void setAcquireEnterWakeCount(int acquireC1EnterWakeCount)
AlienClass1Reader
setAcquireEnterWakeCount in class AlienClass1ReaderacquireC1EnterWakeCount - the number of wakes to perform at the start of each Class1 Gen1 acquire cycleAlienClass1Reader.getAcquireEnterWakeCount()public int getAcquireC1ExitWakeCount()
getAcquireC1ExitWakeCount in class AlienClass1ReadersetAcquireC1ExitWakeCount(int)public int getAcquireExitWakeCount()
AlienClass1Reader
getAcquireExitWakeCount in class AlienClass1ReaderAlienClass1Reader.setAcquireExitWakeCount(int)public void setAcquireC1ExitWakeCount(int acquireC1ExitWakeCount)
setAcquireC1ExitWakeCount in class AlienClass1ReaderacquireC1ExitWakeCount - the number of wakes to perform at the end of each C1 acquire cyclegetAcquireC1ExitWakeCount()public void setAcquireExitWakeCount(int acquireC1ExitWakeCount)
AlienClass1Reader
setAcquireExitWakeCount in class AlienClass1ReaderacquireC1ExitWakeCount - the number of wakes to perform at the end of all the Class1 Gen1 acquire cyclesAlienClass1Reader.getAcquireExitWakeCount()public int getAcquireC1SleepCount()
getAcquireC1SleepCount in class AlienClass1ReadersetAcquireC1SleepCount(int)public int getAcquireSleepCount()
AlienClass1Reader
getAcquireSleepCount in class AlienClass1ReaderAlienClass1Reader.setAcquireSleepCount(int)public void setAcquireC1SleepCount(int acquireC1SleepCount)
setAcquireC1SleepCount in class AlienClass1ReaderacquireC1SleepCount - the number of sleeps to perform during each C1 acquire cyclegetAcquireC1SleepCount()public void setAcquireSleepCount(int acquireC1SleepCount)
AlienClass1Reader
setAcquireSleepCount in class AlienClass1ReaderacquireC1SleepCount - the number of sleeps to perform during each Class1 Gen1 acquire cycleAlienClass1Reader.getAcquireSleepCount()public java.lang.String getReaderName()
getReaderName in class AlienClass1ReaderAlienClass1Reader.setReaderName(String)public java.lang.String getReaderType()
getReaderType in class AlienClass1Reader
public java.lang.String getReaderVersion()
throws AlienReaderException
ReaderVersion = 00.00.88
ReaderLocale = 01
ReaderType = 04
These values are not ASCII encoded but rather numeric hexadecimal values. The
firmware version is compiled into the firmware load file. The localization
code and the reader type are stored in non-volatile memory by a protected
command as part of the manufacturing.
getReaderVersion in class AlienClass1ReaderAlienReaderException - if reader communication fails
public void setReaderNumber(int readerNumber)
throws AlienReaderException
setReaderNumber in class AlienClass1ReaderreaderNumber - the new number for this reader
AlienReaderException - if reader communication failsgetReaderNumber()
public int getReaderNumber()
throws AlienReaderException
The factory default reader number is 0xFF (255).
getReaderNumber in class AlienClass1ReaderAlienReaderException - if reader communication failssetReaderNumber(int)
public int getBaudRate()
throws AlienReaderConnectionException
19200
38400
57600
115200
230400
If the reader's baud rate is undetermined, this throws an AlienReaderConnectionException;
AlienReaderConnectionException - if the baud rate cannot be determined
public void setBaudRate(int baudRate)
throws AlienReaderException
19200
38400
57600
115200
230400
Any other values will be ignored.
baudRate - the new baud rate
AlienReaderException - if reader communication fails
public int resetBaudRate()
throws AlienReaderConnectionException
AlienReaderConnectionException - if the attempt fails
public void reboot()
throws AlienReaderException
AlienReaderException - if reader communication fails
public void setIOPortValue(int portValue)
throws AlienReaderException
Ports start at LSB and are bitmapped toward the MSB. The actual number of available outputs is hardware dependant. Bits in the send data with no corresponding physical port are ignored. If the reader hardware is bi-directional, the value will be ignored in the case of the corresponding port pin defined as input. A bit value of 1 in the send data will cause the corresponding port to tri-state or be set to a logical one depending on hardware. A bit value of 0 will cause the corresponding port pin to be pulled low.
portValue - the bitmap representing the desired output port state
AlienReaderException - if reader communication failsgetIOPortValue(),
getGeneralPurposeInputs(),
getGeneralPurposeOutputs(),
getBidirectionalDDR(),
setBidirectionalDDR(int),
getBidirectionalIOPorts()
public int getIOPortValue()
throws AlienReaderException
AlienReaderException - if reader communication failssetIOPortValue(int),
getGeneralPurposeInputs(),
getGeneralPurposeOutputs(),
getBidirectionalDDR(),
setBidirectionalDDR(int),
getBidirectionalIOPorts()
public int getExternalInput()
throws AlienReaderException
The command returns a single byte result that represents the bit mask settings of the external input pins. Bit 0 represents the state of pin 0, Bit 1 represents the state of pin 1, etc. For example, if pin 1 is high and pin 0 is low, the bit mask would be 10binary which translates to 2decimal.
getExternalInput in class AlienClass1ReaderAlienReaderException - if reader communication fails
public void setExternalOutput(int value)
throws AlienReaderException
With this command you can set the external output pin values. The command takes a single integer parameter that represents the bit mask settings of the external pins.
Bit 0 represents the state of pin 0, and Bit 1 represents the state of pin 1, etc. For example, to set pin 1 to high and all other pins low, use the bit mask of 10binary which translates to 2decimal.
setExternalOutput in class AlienClass1Readervalue - the decimal representation of the desired state of the external outputs
AlienReaderException - if reader communication failsAlienClass1Reader.getExternalOutput()
public void setActiveAntenna(int antennaNumber)
throws AlienReaderException
antennaNumber - the number of the antenna to use
AlienReaderException - if reader communication failsgetActiveAntenna(),
setAntennaSequence(String),
setAntennaSequence(int[]),
getAntennaSequence()
public int getActiveAntenna()
throws AlienReaderException
AlienReaderException - if reader communication failssetActiveAntenna(int),
setAntennaSequence(String),
setAntennaSequence(int[]),
getAntennaSequence()
public void setProgAntenna(int antennaNumber)
throws AlienReaderException
Antennas are numbered 0 through N, where N is hardware dependent. If a non-supported antenna number is requested, the response packet indicates "unknown value" and no antenna set operation is performed.
setProgAntenna in class AlienClass1ReaderantennaNumber - the number of the antenna to program on
AlienReaderException - if reader communication failsgetProgAntenna()
public int getProgAntenna()
throws AlienReaderException
getProgAntenna in class AlienClass1ReaderAlienReaderException - if reader communication failssetProgAntenna(int)
public void setRFAttenuation(int attenuationValue)
throws AlienReaderException
setRFAttenuation in class AlienClass1ReaderattenuationValue - the new RF attenuation
AlienReaderException - if reader communication failsgetRFAttenuation()
public int getRFAttenuation()
throws AlienReaderException
getRFAttenuation in class AlienClass1ReaderAlienReaderException - if reader communication failssetRFAttenuation(int)
public int getProgramEnableMode()
throws AlienReaderException
Bit 0 = Program enabled
Bit 1 = Erase enabled
Bit 2 = Lock enabled
Bit 3 = Kill enabled
AlienReaderException - if reader communication fails
public int getGeneralPurposeOutputs()
throws AlienReaderException
AlienReaderException - if reader communication failsgetGeneralPurposeInputs(),
getBidirectionalIOPorts()
public int getGeneralPurposeInputs()
throws AlienReaderException
AlienReaderException - if reader communication failsgetGeneralPurposeOutputs(),
getBidirectionalIOPorts()
public int getBidirectionalIOPorts()
throws AlienReaderException
getBidirectionalDDR() method.
To change the input/output status of these bidirectional I/O ports, use the
setBidirectionalDDR(int) method.
AlienReaderException - if reader communication failsgetBidirectionalDDR(),
setBidirectionalDDR(int)
public int getMaxHopTableIndex()
throws AlienReaderException
AlienReaderException - if reader communication fails
public int getHardwareReaderType()
throws AlienReaderException
0x00 - Unspecified
0x01 - ALR-9750
0x02 - ALR-9930
0x03 - ALR-9780
0x04 - ALR-9930-A
AlienReaderException - if reader communication failsgetReaderVersion()
public int getLocalizationCode()
throws AlienReaderException
0x00 - Unspecified
0x01 - USA
0x02 - Japan
0x03 - Europe
AlienReaderException - if reader communication failsgetReaderVersion()
public int getRadioType()
throws AlienReaderException
Upper nibble:
1 antenna = 0x0X
4 antennas = 0x3X
16 antennas = 0xFX
The lower nibble defines the frequency band:
Lower nibble:
868 MHz = 0xX1
915 MHz = 0xX2
950 MHz = 0xX3
2450 MHz = 0xX4
For example, a 4-antenna 915 MHz reader reports a Radio Type of 0x32.
AlienReaderException - if reader communication fails
public int getMinFrequency()
throws AlienReaderException
AlienReaderException - if reader communication failsgetMaxFrequency()
public int getMaxFrequency()
throws AlienReaderException
AlienReaderException - if reader communication failsgetMinFrequency()
public int getHopStepSize()
throws AlienReaderException
AlienReaderException - if reader communication failsgetHopInterval()
public int getPLLType()
throws AlienReaderException
0x00 - Unspecified
0x01 - Varil PLL400-915
0x02 - Varil PLL400-864
AlienReaderException - if reader communication fails
public int getMaxRFChannel()
throws AlienReaderException
AlienReaderException - if reader communication failsgetRFChannel()
public int getMaxRFPower()
throws AlienReaderException
AlienReaderException - if reader communication fails
public int getAvailableBaudRates()
throws AlienReaderException
Baud Rate Bitmap:
bit 0 - 19,200
bit 1 - 38,400
bit 2 - 57,600
bit 3 - 76,800
bit 4 - 115,200
bit 5 - 230,400
bit 6 - 460,800
bit 7 - unused
AlienReaderException - if reader communication fails
public int getSupportedTagTypes()
throws AlienReaderException
This is primarily due to the fact that "Lepton" tags have longer id spaces (128 bits) than "Quark" and "Omega" tags (96 bits). If the reader is looking only for Leptons, or only for Quarks and Omegas, it knows beforehand how many bits of ID to expect from a tag, and can therefore operate more quickly.
The value returned is a bit map, where each bit enables a certain tag type:
Bit 0 : Class 1, Gen 1 (64-bits) "Quark"
Bit 1 : Class 1, Gen 2 (64-bits) "Omega"
Bit 2 : Class 1, Gen 2 (96-bits) "Lepton"
Bit 3 : reserved (if C0 is supported)
Bit 4 : Class 1, Gen 2
Bit 5 : reserved
Bit 6 : reserved
Bit 7 : reserved
So, a TagType of 3 ("011" decimal) indicates that the reader is looking only
for Quark and Omega tag types. Similarly, a TagType of 7 indicates it is
looking for all tag types, and a TagType of 4 indicates it is only looking
for Lepton tags.
AlienReaderException - if reader communication failssetSupportedTagTypes(int)
public void setSupportedTagTypes(int tagType)
throws AlienReaderException
This is primarily due to the fact that "Lepton" tags have longer id spaces (128 bits) than "Quark" and "Omega" tags (96 bits). If the reader is looking only for Leptons, or only for Quarks and Omegas, it knows beforehand how many bits of ID to expect from a tag, and can therefore operate more quickly.
The value returned is a bit map, where each bit enables a certain tag type:
Bit 0 : Class 1, Gen 1 (64-bits) "Quark"
Bit 1 : Class 1, Gen 2 (64-bits) "Omega"
Bit 2 : Class 1, Gen 2 (96-bits) "Lepton"
Bit 3 : reserved (if C0 is supported)
Bit 4 : Class 1, Gen 2
Bit 5 : reserved
Bit 6 : reserved
Bit 7 : reserved
So, to have the reader look only for Quark and Omega tag types, use a TagType
of 3 ("011" decimal). Similarly, use a TagType of 7 to specify looking for all
tag types, and a TagType of 4 to specify Lepton tags only.
tagType - the bitmap indicating the tag types the reader should look for
AlienReaderException - if reader communication failsgetSupportedTagTypes()
public int getHopInterval()
throws AlienReaderException
AlienReaderException - if reader communication failsgetHopStepSize()
public int getRFChannel()
throws AlienReaderException
AlienReaderException - if reader communication failsgetMaxRFChannel()
public int getMaxAntenna()
throws AlienReaderException
getMaxAntenna in class AlienClass1ReaderAlienReaderException - if reader communication fails
public java.lang.String getReaderSerialNumber()
throws AlienReaderException
AlienReaderException
public java.lang.String manageReserved(java.lang.String reservedCommand)
throws AlienReaderException
reservedCommand argument is a string of hex
bytes. The first byte is the Manage Reserved Parameters subcommand, followed
by additional bytes which may be required for each subcommand.
reservedCommand - a string of hex bytes, including subcommand and data bytes
AlienReaderException - if reader communication fails
public void setMask(int bitLength,
int bitPointer,
java.lang.String tagMaskBytes)
throws AlienReaderException
setTagMask(32, 0, "A1 03")
matches only tags where the first 32 bits match the hex value 0xA103
The number of tagMaskBytes should equal (bitLength + 7) / 8. All compares
start with earliest ID bit modulated and compare towards last bit modulated.
The mask is evaluated MSB first. The mask is stored in volatile memory (not
retained when the reader is rebooted), and is initialized with a bitLength of
zero, which indicates all tags are selected. bitPointer and tagMaskBytes are
only used when bitLength is non-zero.
setMask in class AlienClass1ReaderbitLength - the number of bits in the tag maskbitPointer - the pointer into the TagID to compare with the masktagMaskBytes - a string of hex bytes defining the mask value
AlienReaderException - if reader communication failssetTagMask(String),
getMask()
public void setMask(java.lang.String maskString)
throws AlienReaderException
This version of setMask takes one String argument, consisting of three comma separated values:
setMask in class AlienClass1ReadermaskString - a string representation of the new mask
AlienReaderException - if reader communication failsgetMask(),
setMask(int, int, String),
setTagMask(String)
public void setTagMask(java.lang.String tagID)
throws AlienReaderException
setTagMask in class AlienClass1ReadertagID - the tag ID to mask to for subsequent reads and writes
AlienReaderException - if reader communication failsgetMask(),
setMask(String),
setMask(int, int, String)
public java.lang.String getMask()
throws AlienReaderException
64, 0, 11 22 33 44 55 66 77 88
indicates a tag mask that is 64 bits long, starts at the first tagID bit
and matches against the hex bytes 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88.
getMask in class AlienClass1ReaderAlienReaderException - if reader communication failssetTagMask(String),
setMask(int, int, String)
public void setG2Mask(int bitLength,
int bitPointer,
java.lang.String tagMaskBytes)
throws AlienReaderException
AlienReaderException
public void setG2TagMask(java.lang.String tagID)
throws AlienReaderException
AlienClass1Readernull or "0" for all tags.
setG2TagMask in class AlienClass1ReadertagID - the EPC to mask to for subsequent reads and writes
AlienReaderException - if reader communication failsAlienClass1Reader.getAcqG2Mask(),
AlienClass1Reader.setAcqG2Mask(String),
AlienClass1Reader.setAcqG2Mask(int, int, int, String),
AlienClass1Reader.setG2MaskBits(int, String)
public void setBidirectionalDDR(int bitmap)
throws AlienReaderException
bitmap - the bitmap defining I/O state of bi-directional I/O ports
AlienReaderException - if reader communication failsgetBidirectionalDDR(),
getBidirectionalIOPorts()
public int getBidirectionalDDR()
throws AlienReaderException
AlienReaderException - if reader communication failssetBidirectionalDDR(int),
getBidirectionalIOPorts()
public void setRFOnOff(int powerOnOff)
throws AlienReaderException
When performing multiple commands on a tag, it is more efficient if the carrier is not turned off between commands. It is therefore advisable to turn RF on explicitly before issuing multiple commands, then turn RF off explicitly after the commands have finished.
In the interests of future compatibility, you should use AlienClass1Reader.ON and AlienClass1Reader.OFF
constants to set and test this parameter.
powerOnOff - the new idle ON/OFF state of the RF carrier
AlienReaderException - if reader communication failsgetRFOnOff()
public int getRFOnOff()
throws AlienReaderException
AlienReaderException - if reader communication failssetRFOnOff(int)
public void setAntennaSequence(int[] antennaSequenceBytes)
throws AlienReaderException
It should be noted that any array element can be set to any valid antenna number, thus allowing the sequence of antennas to be executed in any order, and the same antenna can be used multiple times in response to one Inventory command. The default values for the array are 0 in the first array element and 0xFF is the other seven.
antennaSequenceBytes - an array listing the sequence of antennas to use
AlienReaderException - if reader communication failssetAntennaSequence(String),
getAntennaSequence()
public void setAntennaSequence(java.lang.String sequenceString)
throws AlienReaderException
It should be noted that any array element can be set to any valid antenna number, thus allowing the sequence of antennas to be executed in any order, and the same antenna can be used multiple times in response to one Inventory command. The default values for the array are 0 in the first array element and 0xFF is the other seven.
setAntennaSequence in class AlienClass1ReadersequenceString - a comma-separated list of antenna ports
AlienReaderException - if reader communication failssetAntennaSequence(int[]),
getAntennaSequence()
public java.lang.String getAntennaSequence()
throws AlienReaderException
getAntennaSequence in class AlienClass1ReaderAlienReaderException - if reader communication failssetAntennaSequence(int[]),
setAntennaSequence(String)
public int getAntennaStatus()
throws AlienReaderException
AlienReaderException - if reader communication fails
public int getOperatingVoltage()
throws AlienReaderException
AlienReaderException - if reader communication fails
public void sleepTag()
throws AlienReaderException
AlienReaderException - if reader communication failswakeTag()
public void wakeTag()
throws AlienReaderException
AlienReaderException - if reader communication failssleepTag()
public java.lang.String verifyTag()
throws AlienReaderException
A Verify command cannot sort multiple tags; it should only be used on one tag at a time.
verifyTag in class AlienClass1ReaderAlienReaderException - if reader communication fails
public Tag[] doInventory()
throws AlienReaderException
Two main types of Inventory are supported, and are selected by setting the
acquireMode property to AlienClass1Reader.INVENTORY or
AlienClass1Reader.GLOBALSCROLL.
Inventory - Tree based. This will use binary mask selection techniques,
and optionally sleep/wake commands to attempt to isolate all tags in the
field in a binary tree method. This technique is best when large numbers
of tags are expected in the field. This method is the slowest but has the
strongest collision detection/avoidance algorithm.
Global Scroll - Scroll N based. This will use the starting mask and
optionally sleep/wake commands to repeatedly send MASKED SCROLL type
commands to try to gather the IDs of tags in the field. This technique is
best used when only one or a small number of tags is expected in the field.
This technique is faster than the tree based, but depends only on variance
of tag signal strength for collision detection and avoidance.
All four types of inventory are executed within a nested loop. The outer loop,
governed by the acquireCycles parameters, executes Wake commands
before the actual inventory type is executed. The number of wakes issued is
determined by the acquireEnterWakeCount parameter. Note that
acquireEnterWakeCount can equal 0, in which case no Wakes will
be issued. The inner loop, governed by the acquireCount
parameter, determines how many times the specified inventory type will execute
without sending Wake commands. As each tag ID is gathered, an optional series
of Sleep commands can be issued to this tag. The acquireSleepCount
parameter determines how many will be sent, and may equal zero if no Sleep
commands are desired.
The antenna list is examined within the looping structure, and each portion
of the loop is executed for all valid antenna entries in the list. Therefore
the inner and outer loops can be executed up to 8 times the acquireCycles
and acquireCount values, dependent on the entries in the antenna
list. After the inner and outer loops are executed, a series of Wake commands
may be executed to wake any tags that were issued a Sleep command during the
inventory process. The number of Wake commands executed is determined by the
acquireExitWakeCount parameter. This parameter may be set to
zero if no exit wakes are desired.
AlienReaderException - if reader communication failssetAcquireMode(String),
setAcquireCycles(int),
setAcquireEnterWakeCount(int),
setAcquireCount(int),
setAcquireSleepCount(int),
setAcquireExitWakeCount(int),
setAntennaSequence(String)
public void programTag(int numVerifies,
int numErases,
int numPrograms,
java.lang.String tagID)
throws AlienReaderException
The reader automatically generates the CRC for the supplied tag ID data and programs it into the first two bytes of ID space. This command does not lock the tag or program a kill code.
numVerifies - the number of times to verify the existence of the tag prior to programmingnumErases - the number of times to erase the tag prior to programmingnumPrograms - the number of times to try to program the tagtagID - the string representation of the 8- or 12-byte tag ID to program
AlienReaderException - if reader communication failsprogramTag(String)
public void programTag(java.lang.String tagID)
throws AlienReaderException
The reader automatically generates the CRC for the supplied tag ID data and programs it into the first two bytes of ID space. This command does not lock the tag or program a lock code.
programTag in class AlienClass1ReadertagID - the string representation of the 8- or 12-byte tag ID to program
AlienReaderException - if reader communication failsprogramTag(int, int, int, String)
public void eraseTag(int numVerifies,
int numErases)
throws AlienReaderException
numVerifies - the number of times to verify the existence of the tag prior to erasingnumErases - the number of times to try to erase the tag
AlienReaderException - if reader communication failseraseTag()
public void eraseTag()
throws AlienReaderException
eraseTag in class AlienClass1ReaderAlienReaderException - if reader communication failseraseTag(int, int)
public void killTag(int numVerifies,
int numKills,
java.lang.String tagIDAndPassCode)
throws AlienReaderException
numVerifies - the number of times to verify the existence of the tag prior to killingnumKills - the number of times to try to kill the tagtagIDAndPassCode - a string representing the tag's ID, followed by its PassCode
AlienReaderException - if reader communication failskillTag(String)
public void killTag(java.lang.String tagIDAndPassCode)
throws AlienReaderException
killTag in class AlienClass1ReadertagIDAndPassCode - a string representing the tag's ID, followed by its PassCode
AlienReaderException - if reader communication failskillTag(int, int, String)
public void lockTag(int numVerifies,
int numLocks,
int tagIDLength,
int lockCode)
throws AlienReaderException
numVerifies - the number of times to verify the existence of the tag prior to lockingnumLocks - the number of times to try to lock the tagtagIDLength - the number of bytes in the tag's ID (8 or 12)lockCode - the byte value used to lock and kill the tag
AlienReaderException - if reader communication failslockTag(int, int),
lockTag(String)
public void lockTag(int tagIDLength,
int lockCode)
throws AlienReaderException
tagIDLength - the number of bytes in the tag's ID (8 or 12)lockCode - the byte value used to lock and kill the tag
AlienReaderException - if reader communication failslockTag(int, int, int, int),
lockTag(String)
public void lockTag(java.lang.String passCode)
throws AlienReaderException
lockTag in class AlienClass1ReaderpassCode - a String representing the byte value used to lock and kill the tag
AlienReaderException - if reader communication failslockTag(int, int, int, int),
lockTag(int, int)public void run()
run in interface java.lang.Runnablepublic java.lang.String getTimer()
public java.lang.String readerCommandCLI()
public java.lang.String rcCLI()
public java.lang.String manageReservedCLI()
public void sendString(java.lang.String command)
throws AlienReaderConnectionException
This gives the illusion that the reader is accepting and returning ASCII-based communications.
Furthermore, if the command string is not preceeded by a \1 character (which doReaderCommand() adds automatically, then it is assumed that the command is coming from a command line interface, and appropriate "Alien>" prompts are attached to the response string.
sendString in class AbstractReadercommand - the text string to send
AlienReaderConnectionException - if communication failsreceiveString(boolean)public java.lang.String receiveString(boolean blockForInput)
receiveString in class AbstractReaderblockForInput - ignored
sendString(String)
public void sendBytes(byte[] bytes)
throws AlienReaderException
bytes - the array of bytes to send to the reader
AlienReaderException - if reader communication failsreceiveBytes()
public byte[] receiveBytes()
throws AlienReaderException
AlienReaderException - if reader communication failssendBytes(byte[])public java.lang.String toString()
toString in class AlienClass1Reader
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||