Get started
This SDK can be used within Android applications to manage USB connected rfIDEAS card readers. Our customers typically use this SDK to develop Android Apps that run on Phones, Tablets, or Printers.
Requirements
Compatible with all Android Versions.
For Android OS versions >=10, the reader must use Firmware Filename: LNC160903UPX70R, SVN: 13787 with one of the below part numbers to successfully connect.
- RDR-800x2AxU-AN for SE Models
- RDR-805x2AxU-AN for non-SE Models
When using this SDK in an Android application with an rfIDEAS Reader, you should filter the available USB devices by VID/PID using a resource file. Below is an Example
of what the resource file will look like. For more information, please refer to the following link: https://developer.android.com/guide/topics/connectivity/usb/host
<resources>
<!-- VID PID for Ivory Loon Readers. -->
<usb-device vendor-id="3111" product-id="15134" class="239" subclass="2" protocol="1" />
<!-- VID PID for pcProx Plus Readers. -->
<usb-device vendor-id="3111" product-id="15354" class="0" subclass="0" protocol="0" />
</resources>
SDK Reference
USBConnect
Enumerate returns an array of all connected USB readers. If the available device list is filtered via USB manifest resources, only rf IDEAS reader devices should be returned.
Parameter: Context object of the Android activity.
Return: An array with handles of all connected usb readers or null if no reader is connected.
Throws: SDKException if there is an error communicating with USB devices.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext);
USBDisconnect
Disconnects all the readers.
Example:
Enumerate.USBDisconnect();
GetActiveID
Reads the active data from the card presently on the reader.
This function will return the number of bits read. This call is only valid for cards with less than 64 bits.
The buffer passed in arguments is populated with card data.
It is recommended you do not call this faster than 250 msec, or about twice the data hold time of the active card. Call sooner than 250 msec will not be sent to the reader but will return cached data.
Parameter: buffer - It is an empty int array of desired size. It will be populated with the active data from the card, bufferMaximumSize - It specifies the size of the byte buffer. Maximum value is 8, if the value provided is more than 8, it will automatically reset to 8.
Return: It returns number of bits read from the reader representing the card ID. It does NOT include the parity bits that may have been stripped from the ID through the use of the leading and/or trailing parity bit counts.
A return value of zero means there is either: no card within RF field, an error was encountered, or an invalid card was presented.
Throws: SDKException if there is an error communicating with USB devices.
Example:
private Reader[] readers = Enumerate.USBConnect(appContext);
int buffer[64];
short activeID = readers[0].GetActiveID(buffer, 64);
GetActiveID32
This is the 32 byte version of GetActiveID(int[], short). This method can retrieve card data up to 255 bits of data. Cards with ID's larger than 64 bits will be truncated with GetActiveID(int[], short), so this function is recommended instead.
This function will return the number of bits read. The buffer passed in arguments is populated with card data.
It is recommended you do not call this faster than 250 msec, or about twice the data hold time of the active card. Call sooner than 250 msec will not be sent to the reader but will return cached data.
Parameter: buffer - an empty int array of desired size. It will be populated with the active data from the card, bufferMaximumSize - It specifies the size of the byte buffer. Maximum value is 32, if the value provided is more than 32, it will automatically reset to 32.
Return: Number of bits Read 0..255. It does NOT include the parity bits that may have been stripped from the ID through the use of the leading and/or trailing parity bit counts. A return value of zero means there is either no card within RF field or an error was encountered or a wrong card was presented.
Throws: SDKException if there is an error communicating with USB devices.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext);
int buffer[84];
short activeID32Bits = readers[0].GetActiveID32(buffer,84);
GetCardType
Get the Card Type 0x0000..0xFFFE for the given configuration.
Parameter: configurationIndex. Reader's can contain multiple configurations. The index supplied in this function call will return the Card Type for the specified configuration. Possible values include 0..N-1, where N stands for maximum configuration.
Return: 0..0xFFFE for valid card types. -1 for error, disconnected, or non pcProx Plus reader.
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] readers = Enumerate.USBConnect(appContext);
readers[0].ReadCfg(0);
int cardType = readers[0].GetCardType(0);
GetDevCnt
Returns the number of pcProx devices found on this machine from USBConnect().
Return: Number of devices on bus: 0..127
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
int devices = Enumerate.GetDevCnt();
GetCardPriority
Get the Card Priority for the configuration index. The Priority is 0 or 1, and -1 indicates an error.
Parameter: configurationIndex. Reader's can contain multiple configurations. The index supplied in this function call will return the Card Priority for the specified configuration. Possible values include 0..N-1, where N stands for maximum configuration.
Return: 0 = Low priority, 1 = high priority, -1 error.
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
int cardPriority = GetCardPriority(0);
SetBeeperVolume
Sets the volume level for the pcProx Plus (version 2)(loon) reader.
Parameter: volumeLevel volumeLevel in range 0..3. 0-off, 1-low, 2-med, 3-High
Return: True if successful, false otherwise
Throws: SDKException if Volume level is less than zero or greater than 3 or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
readers[0].SetBeeperVolume((byte)2);
readers[0].WriteCfg(0);
GetBeeperVolume
Gets the volume level for the pcProx Plus(version 2).
Return: Volume level 0..3 for the pcProx Plus(version 2) Reader. 0- off, 1- low, 2- med, 3- High, -1- For non pcProx Plus(version 2).
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] readers = Enumerate.USBConnect(appContext);
readers[0].ReadCfg(0);
short volumeLevel = readers[0].GetBeeperVolume();
getDid
Returns the firmware version Major,Minor,Build as bits 15..8
Bits 7..4 and bits 3..0 respectively. Example: 0x0F12 = 15.1.2
Note: Do not compare version numbers from the pcProx firmware to enable or disable
functions in your application as firmware version can change. The firmware version
is for reference only and should not be used to make decision on what features
are available.
Return:Firmware version
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] readers = Enumerate.USBConnect(appContext);
String did = readers[0].getDid();
getLuid
Get Logical Unit ID from last ReadCfg(int)
of device.
Return: LUID a user defined 16-bit ID (0-65536) to be associated with the current selected device.
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] readers = Enumerate.USBConnect(appContext);
readers[0].ReadCfg(0);
int luid = readers[0].getLuid();
setLuid
Set Logical unit ID to device.
Parameter: luid It is a user defined 16-bit ID (0-65536) to be associated with the current
device. When multiple devices are connected they may enumerate in random order and
the LUID is the safest way to tell them apart. This does not write the configuration
items to the device, just to library memory. Setting the reader to defaults does
not erase the LUID.
Use WriteCfg(int)
to write to device memory. Setting the reader to defaults
does not erase the LUID.
Return: True if successful, false otherwise
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] readers = Enumerate.USBConnect(appContext);
readers[0].ReadCfg(0);
readers[0].setLuid(65525);
readers[0].WriteCfg(0);
getPartNumberString
Read the device part number string. This is a 24 character string such as "RDR-80581AKU" and null terminated.
Return: String value of device part number.
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] readers = Enumerate.USBConnect(appContext);
readers[0].ReadCfg(0);
String partNumber = readers[0].getPartNumberString();
GetDevName
This API is used to get the device name. e.g. "/dev/bus/usb/001/002"
Return: Device Name String
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] readers = Enumerate.USBConnect(appContext);
readers[0].ReadCfg(0);
String deviceName = readers[0].GetDevName();
getLibVersion
Get the version of the library code. This does not communicate with any device.
It returns the string from the BuildConfig file.
The intended interpretation of the version name is Major.Minor.Build.Hotfix
Return: Version of the library code.
Example:
private Reader[] readers = Enumerate.USBConnect(appContext);
String libraryVersion = readers[0].getLibVersion();
BeepNow
Call this function with the number of desired short or long beeps.
Parameter: count 1..N beeps, Range is 1..5 for short beeps and 1..2 for long beeps.
Parameter: longBeep long Beep = true, short beep = false
Throws: SDKException if count exceeds permissible range.
Example:
private Reader[] readers = Enumerate.USBConnect(appContext);
readers[0].BeepNow((byte)5,false);
GetMaxConfig
Get number of configurations present in the reader. For pcProx Plus dual frequency readers this will be 1 or more and 0 for Legacy non pcProx Plus readers.
Return: 0..N-1: 0 for non pcProx Plus, 1 or more for pcProx Plus. Here N stands for maximum configuration.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
int maxConfiguration = readers[0].GetMaxConfig();
ReadCfg
A call to this function pulls the device configuration information into the library memory space to be manipulated by the Get*() and Set*() functions. After altering the data the user must call WriteCfg(int)
to write the changes back to device so they can take effect.
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration.
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Throws: CloneNotSupportedException
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
WriteCfg
A call to this function writes all configuration information in the library memory
space to the device for non-volatile storage. Any changed parameters take effect
immediately after WriteCfg(int)
.
The actual write internally within the device is not
done until all critical pending actions are complete. This may take up to two
seconds, typically 1200 msec to complete. pcProx Plus(version 2) readers takes only 20ms to complete the write.
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration.
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Throws: InterruptedException
Throws: CloneNotSupportedException
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].SetBeeperVolume((byte)2);
readers[0].setLuid(65525);
readers[0].WriteCfg(0);
SetCardTypePriority
Set the Card Type 0x0000..0xFFFF and the card priority for the given configuration index.
Card types not understood by the device firmware are ignored and will return as
(0x0000) OFF. The priority bit if non-zero will have priority
over other configurations that are set to zero. The priority allows dual frequency
cards or multiple cards to be read in a predictable manner. Only one configuration
should have the priority bit set, otherwise unpredictable results may occur on
multiple card reads. It is not applicable for single config readers.
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration.
Parameter: cardType 16 bit card type.
Parameter: cardPriority 0 for low and 1 for high.
Return: True = success , False = failure.
Throws: SDKException if configurationIndex exceeds maximum Config or priority value is other than 0 or 1 or
if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
readers[0].SetCardTypePriority(0, 61188, 1);
readers[0].WriteCfg(0);
isLoon
Checks whether a reader is loon or not.
Return: true for loon readers, false otherwise
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
boolean _isDeviceLoon = readers[0].isLoon();
GetFWFilename
Reads the device firmware filename, e.g. "LNC160700UBX700". Works only for loon readers.
Return: String value of Firmware Filename on success
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
String filename = readers[0].GetFWFilename();
GetFullFWVersion
Reads the device's full Firmware version including the String version number.
e.g. "16.07.0-7715". Works only for loon readers.
Return: Firmware version with the string version number for loon readers having version number 16.7 or greater.
In case of failure it returns Null.
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
String fullFWVersion = readers[0].GetFullFWVersion();
GetFirmwareVersion
Some devices have multiple firmware versions to report. This function returns
the long firmware version of the hardware and module pair. Not
all modules are available for all hardware. These return 0 for unavailable.
The version 0x01023456 can be expressed as "1.2.34.56".
Note: Do not compare version numbers from the pcProx firmware to enable or disable functions in your application as firmware version can change. The firmware version
is for reference only.
Parameter: hardware Hardware 0 = Main CPU, 1 = Aux Cpu, 2-FF unused
Parameter: module IModule 0 = Application, 1 = Bootloader, 2 = Modem
Return: long value for valid versions, 0 indicates unavailable.
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
long firmwareVersion = readers[0].GetFirmwareVersion();
GetFlags
Returns ConfigurationFlags
object for the given configuration index. ConfigurationFlags
contains:
- boolean bFixLenDsp:
It will return whether the send fixed length FAC/ID is set or not.
- boolean bFrcBitCntEx:
It will return whether the read bit count to be exact to be valid is set or not.
- boolean bStripFac:
It returns whether the stripping of the FAC from the ID (not discarded) is set or not.
- boolean bSndFac:
It returns whether the send FAC (if stripped from data) is set or not.
- boolean bUseDelFac2Id:
It gives the delimiter placed between FAC and ID on send.
- boolean bNoUseELChar:
It gives the termination keystroke set i.e. the last character after card ID (default to ENTER).
- boolean bSndOnRx:
It sends valid ID as soon as it is received (iIDLockOutTm timer not used).
- boolean bHaltKBSnd:
When set true,it does not send keys to USB i.e. itdisables key strokes.
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration.
Return: ConfigurationFlags
object.
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
ConfigurationFlags configurationFlags = readers[0].GetFlags(0);
boolean isFixLengthDisplay = configurationFlags.getbFixLenDsp();
SetFlags
Sets ConfigurationFlags
object for the given configuration index. ConfigurationFlags
contains:
- boolean bFixLenDsp:
If set to true it will set the FAC digits and the ID digits to the number specified by the user.
- boolean bFrcBitCntEx:
It forces the read bit count to be exact to be valid.
- boolean bStripFac:
It sets the stripping of the FAC from the ID (not discarded).
- boolean bSndFac:
When true, it allows to Send the FAC (if stripped from data).
- boolean bUseDelFac2Id:
It puts a delimiter between FAC and ID on send.
- boolean bNoUseELChar:
It sets the termination keystroke i.e. the last character after card ID (default to ENTER).
- boolean bSndOnRx:
It sends valid ID as soon as it is received (iIDLockOutTm timer not used).
- boolean bHaltKBSnd:
When set true,it does not send keys to USB i.e. it disables key strokes.
Parameter: configurationFlags - ConfigurationFlags object
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration.
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
ConfigurationFlags configurationFlags = readers[0].GetFlags(0);
configurationFlags.bHaltKBSnd(false);
readers[0].SetFlags(configurationFlags,0);
readers[0].WriteCfg(0);
GetFlags2
Returns ConfigurationFlags2
object for the given configuration index. ConfigurationFlags2
contains:
- boolean bUseLeadChrs:
It returns whether the Use leading chars in ID KB send is set or not.
- boolean bDspHex:
It returns whether display ID as ASCII Hex [not ASCII decimal] is set or not.
- boolean bWiegInvData:
It returns whether the wiegand data on pins is inverted or not.
- boolean bUseInvDataF:
It returns whether the bWiegInvData flag over hardware setting is set or not.
- boolean bRevWiegBits:
It returns whether the reverse the Wiegand read bits is set or not.
- boolean bBeepID:
It returns whether the beep when ID is received is set or not.
- boolean bRevBytes:
It returns whether the reverse the byte order (CSN reader) is set or not.
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration.
Return: ConfigurationFlags2
object.
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
ConfigurationFlags2 configurationFlags2 = readers[0].GetFlags2(0);
boolean isDspHex = configurationFlags2.getbDspHex();
SetFlags2
Sets ConfigurationFlags2
object for the given configuration index. ConfigurationFlags2
contains:
- boolean bUseLeadChrs:
It is set to Use leading chars in ID KB send.
- boolean bDspHex:
It is set to display ID as ASCII Hex [not ASCII decimal].
- boolean bWiegInvData:
It is set if wiegand data on pins is inverted.
- boolean bUseInvDataF:
It is set to use the bWiegInvData flag over hardware setting.
- boolean bRevWiegBits:
It is set to reverse the Wiegand read bits.
- boolean bBeepID:
It is set to let the device beep when ID is received.
- boolean bRevBytes:
It is set to reverse the byte order (CSN reader).
Parameter: configurationFlags2 - ConfigurationFlags2 object
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Throws:SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
ConfigurationFlags2 configurationFlags2 = readers[0].GetFlags2(0);
configurationFlags2.bRevWiegBits(true);
readers[0].SetFlags2(configurationFlags2,0);
readers[0].WriteCfg(0);
GetFlags3
Returns ConfigurationFlags3
object for the given configuration index. ConfigurationFlags3
contains:
- boolean bUseNumKP:
Euro Keyboard flag.
- boolean bSndSFON:
Split format ON = 1, old combined scheme = 0.
- boolean bSndSFFC:
It allows to send FAC as hexadecimal number in keystroke output. 0 = FAC Decimal, 1 = FAC Hex.
- boolean bSndSFID:
It allows to send ID as hexadecimal number in keystroke output. 0 = ID as decimal, 1 = ID as hex.
- boolean bPrxProEm:
Emulate serial data format to match HID Corp. Prox Pro reader by sending a 2 byte checksum after the card data.
- boolean bUse64Bit:
It sets the Extended precison math on for ID. 0 = 32-bit, 1 = 64-bit.
- boolean bNotBootDev:
USB Enum: 0=BootDevice, 1=NOTBootDevice.
- boolean bLowerCaseHex:
Keystroke out the card data in lowercase hexadecimal. 0 = uppercase hexadecimal, 1 = lowercase hexadecimal.
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration.
Return: ConfigurationFlags3
object
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
ConfigurationFlags3 configurationFlags3 = readers[0].GetFlags3(0);
boolean isLowerCaseHex = configurationFlags3.bLowerCaseHex();
SetFlags3
Sets ConfigurationFlags3
object for the given configuration index. ConfigurationFlags3
contains:
- boolean bUseNumKP:
Euro Keyboard flag.
- boolean bSndSFON:
Split format ON = 1, old combined scheme = 0.
- boolean bSndSFFC:
It allows to send FAC as hexadecimal number in keystroke output. 0 = FAC Decimal, 1 = FAC Hex.
- boolean bSndSFID:
It allows to send ID as hexadecimal number in keystroke output. 0 = ID as decimal, 1 = ID as hex.
- boolean bPrxProEm:
Emulate serial data format to match HID Corp. Prox Pro reader by sending a 2 byte checksum after the card data.
- boolean bUse64Bit:
It sets the Extended precison math on for ID. 0 = 32-bit, 1 = 64-bit.
- boolean bNotBootDev:
USB Enum: 0=BootDevice, 1=NOTBootDevice.
- boolean bLowerCaseHex:
Keystroke out the card data in lowercase hexadecimal. 0 = uppercase hexadecimal, 1 = lowercase hexadecimal.
Parameter: configurationFlags3 ConfigurationFlags3 object
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
ConfigurationFlags3 configurationFlags3 = readers[0].GetFlags3(0);
configurationFlags3.bLowerCaseHex(false);
readers[0].SetFlags3(configurationFlags3,0);
readers[0].WriteCfg(0);
GetIDBitCnts
Returns IdBitCounts
object for the given configuration index. IdBitCounts
contains:
- short iLeadParityBitCnt:
It gives the number of most significant bits stripped. The number should be in range 0..15 for single config readers, 0..142 otherwise
- short iTrailParityBitCnt:
It gives the number of least significant bits stripped. The number should be in range 0..15 for single config readers, 0..142 otherwise
- short iIDBitCnt:
It gives the value of id bit field count which should be in range 0..255
- short iTotalBitCnt:
It gives the value of the total bit counts that can be read by the device. The value should be in range 26..255
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration.
Return: IdBitCounts
object
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
IdBitCounts idBitCnts = readers[0].GetIDBitCnts(0);
short lp = idBitCnts.getiLeadParityBitCnt();
SetIDBitCnts
Sets IdBitCounts
object for the given configuration index.IdBitCounts
contains:
- short iLeadParityBitCnt:
It strips the most significant bits from the output of the card, as per the value passed in arguments. The value should be in range 0..15 for single config readers, 0..142 otherwise
- short iTrailParityBitCnt:
It strips the least significant bits from the output of the card, as per the value passed in arguments. The value should be in range 0..15 for single config readers, 0..142 otherwise
- short iIDBitCnt:
It sets the id field bit count as per the argument passed with it. The value should be in range 1..255
- short iTotalBitCnt:
It sets the value in argument to the total bits that can only be read by the card. The value should be in range 26..255
Parameter: idBitCounts IdBitCounts object
Parameter: configurationIndex 0..N-1, N stands for maximum configuration
Throws: SDKException if configurationIndex exceeds maximum Config or input values exceeds the allowed range or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
IdBitCounts idBitCnts = readers[0].GetIDBitCnts(0);
idBitCnts.setiTotalBitCnt((short) 0);
readers[0].SetIDBitCnts(idBitCnts,0);
readers[0].WriteCfg(0);
GetTimeParms
Returns TimeParameters
object for the given Configuration index. TimeParameters
contains:
- short iBitStrmTO:
Wiegand read T/O after this msec time (4ms). The range should be 0..1020
- short iIDHoldTO:
Card ID valid for this msec time (48ms). The range should be 0..12750
- short iIDLockOutTm:
Squelch repetitive reader reports (usually > 1000) in msec (48msec gran.). The range should be 0..12750
- short iUSBKeyPrsTm:
It sets USB inter-key 'Press' time in 4ms units. The range should be 0..1020
- short iUSBKeyRlsTm:
It sets USB inter-key 'Release' time in 4ms units. The range should be 0..1020
- short ExFeatures01:
Extended Features (big parity Azery ext precision)
- short iTPCfgFlg3:
Bit mapped tp Flags3/p>
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Return: TimeParameters
object
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
TimeParameters timeParameters = readers[0].GetTimeParms(0);
short holdTime = timeParameters.getiIDHoldTO();
SetTimeParms
Sets TimeParameters
for the selected Configuration Index. TimeParameters
contains:
- short iBitStrmTO:
Wiegand read T/O after this msec time (4ms)
- short iIDHoldTO:
Card ID valid for this msec time (48ms)
- short iIDLockOutTm:
Squelch repetitive reader reports (usually > 1000) in msec (48msec gran.)
- short iUSBKeyPrsTm:
Sets USB inter-key 'Press' time in 4ms units
- short iUSBKeyRlsTm:
Sets USB inter-key 'Release' time in 4ms units
- short ExFeatures01:
Extended Features (big parity Azery ext precision)
- short iTPCfgFlg3:
Bit mapped tp Flags3
Parameter: timeParameters Object
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Throws: SDKException if configurationIndex exceeds maximum Config or if input values are out of allowed range or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
TimeParameters timeParameters = readers[0].GetTimeParms(0);
timeParameters.setiIDHoldTO((short) 900);
readers[0].SetTimeParms(timeParameters, 0);
readers[0].WriteCfg(0);
GetLEDControl
Get LEDControl
object information color red, green, amber, auto or off. LEDControl Contains:
- boolean bAppCtrlsLED:
It gives true if the control is set to auto mode
- boolean iRedLEDState:
It gives true if the LED state is set to Red color
- boolean iGrnLEDState:
It gives true if the LED state is set to Green color
- boolean bVolatile:
0 == commit to EE, 1 == Don't store to EE
Color of LED is AMBER when both iGRnLEDState and iRedLEDState are true and bAppCtrlsLED is false
LED is turned OFF when bAppCtrlsLED, iGRnLEDState and iRedLEDState are false
Return: LEDControl
object
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
LEDControl ledControl = readers[0].GetLEDControl();
boolean redLEDState = ledControl.getiRedLEDState();
SetLEDControl
Sets LEDControl
object information color red, green, amber, auto or off for the given configuration. LEDControl Contains:
- boolean bAppCtrlsLED:
It sets the control to auto mode
- boolean iRedLEDState:
It sets the LED state to Red color
- boolean iGrnLEDState:
It sets the LED state to Green color
- boolean bVolatile:
0 == commit to EE, 1 == Don't store to EE
Setting both iGRnLEDState and iRedLEDState to true and bAppCtrlsLED to false changes the LED to AMBER
Setting both iGRnLEDState and iRedLEDState to false will turn the LED OFF
Parameter: ledControl LEDControl object
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
LEDControl ledControl = readers[0].GetLEDControl();
ledControl.bAppCtrlsLED(true);
ledControl.iGrnLEDState(true);
readers[0].SetLEDControl(ledControl);
readers[0].WriteCfg(0);
GetActDev
Return the current active device as an index into the list, 0..(GetDevCnt()-1).
Note: The USB order of devices found can be random. Use the LUID to uniquely tag your devices. Then enumerate through the active device list for the LUID you need.
Parameter: None
Return: Active device 0..126
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
int actDev = readers[0].GetActDev();
SetActDev
Set the active device. The selected device is the active device that ReadCfg() and WriteCfg() operate on.
Parameter:Set the active device where deviceIndex selects a new device for processing. This does not require a WriteCfg() to be performed as it is only selecting the device to which we are communicating with via the library.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
boolean result = readers[0].SetActDev(5);
GetAZERTYShiftLock
Get the state of the Shift Lock. Some keyboards such as French keyboards have a shift lock key in place of the US caps lock key. This affects how the top row of numbers and punctuation are used.
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Return: Boolean: the value of AzertyShiftLock (true if set, false if not)
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
boolean isAZERTY = readers[0].GetAZERTYShiftLock();
SetAZERTYShiftLock
Set the state of the Shift Lock. Some keyboards such as French keyboards have a shift lock key in place of the US caps lock key. This affects how the top row of numbers and punctuation are used.
Parameter: AZERTYShiftLock state of AZERTShift lock to be set: true or false
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
readers[0].SetAZERTYShiftLock (true);
readers[0].WriteCfg(0);
GetExtendedPrecisionMath
Return the state of the ExtendedPrecisionMath flag. This affects the FAC value when it is longer than 32 bit.
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Return: boolean state of ExtendedPrecisionMath on (true = 64-bits, false = 32-bits)
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
boolean extendedPrecision = readers[0].GetExtendedPrecisionMath();
SetExtendedPrecisionMath
Set the state of the extended precision math flag. This affects the FAC value when it
is longer than 32 bits. When off FAC values over 32 bits will not be displayed properly
Parameter: extendedPrecisionMath of extendedPrecisionMath lock to be set: true or false
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
readers[0].SetExtendedPrecisionMath (true);
readers[0].WriteCfg(0);
ResetFactoryDefaults
This sets the device configuration to the Factory Default values. It is like a WriteCfg(int)
call.
Before returning to the caller, this function calls ReadCfg() to reload the configuration information (which may have changed) into the library memory.
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ResetFactoryDefaults();
GetBLEConfiguration
Gets the BLE configuration of the reader. It is applicable only for loon readers which support bluetooth functionality.
Return: level:
- 0 for BLE off/125KHz-13.56MHz radios off
- 1 for BLE off/125KHz-13.56MHz radios on
- 2 for BLE on/125KHz-13.56MHz radios off
- 3 for BLE on/125KHz-13.56MHz radios on
- -1 for unsupported readers
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
int level = readers[0].GetBLEConfiguration();
SetBLEConfiguration
Sets the BLE configuration of the reader.
Parameter: level 0, 1, 2, 3 or 4
- 0:BLE off/125KHz-13.56MHz radios off
- 1:BLE off/125KHz-13.56MHz radios on
- 2:BLE on/125KHz-13.56MHz radios off
- 3:BLE on/125KHz-13.56MHz radios on
- 4:BLE off/125KHz-13.56MHz radios toggle
Throws: SDKException if there is a failure in USB communication or level is not between 0-4.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
readers[0].SetBLEConfiguration((byte)3);
IsBLEPresent
To check whether the BLE(Bluetooth) is present or not.
Return: True if successful, false otherwise
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
boolean _isBLEDevice = readers[0].IsBLEPresent();
GetSepFldData
Get the FIPS 201 credentials and delimiters for all user defined fields. This is for pcProx or OEM Wiegand converter board that can read FIPS 201 CHUID's. Usually from 75 to 245 bits make up some or all of the FIPS 201 fields. OEM Readers such as the HID-G3 75 bit reader is support by the OEM converter board.
Parameter: sepFldDataBuffer int buffer
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
int sepFldDataBuffer[84];
readers[0].GetSepFldData(sepFldDataBuffer,84);
SetSepFldData
Set the FIPS 201 credentials and delimiters for all user defined fields. This is for pcProx or OEM Wiegand converter board that can read FIPS 201 CHUID's. Usually from 75 to 245 bits make up some or all of the FIPS 201 fields. OEM Readers such as the HID-G3 75 bit reader is supported by the OEM converter board
Parameter: sepFldDataBuffer int buffer
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
int sepFldDataBuffer[84];
readers[0].SetSepFldData(sepFldDataBuffer,84);
GetBprRlyCtrl
Get beeper (and relay on OEM W2-USB readers) controls.
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Return: BprRlyCtrl
object
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
BprRlyCtrl bprRlyCtrl = readers[0].GetBprRlyCtrl(0);
variable = bprRlyCtrl.function();
SetBprRlyCtrl
Set beeper (and relay on OEM W2-USB readers) controls.
Parameter: bprRlyCtrl object
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
BprRlyCtrl bprRlyCtrl = readers[0].GetBprRlyCtrl(0);
bprRlyCtrl.function(value);
readers[0].SetBprRlyCtrl(BprRlyCtrl, int);
GetIDDispParms
To get IdDisplayParameters
. IdDisplayParameters
conatins:
- short iFACIDDelim:
If bStripFac & bSndFac & bUseDelFac2Id, this char is sent between FAC & ID. This delimiter appears as a seperator between FAC and ID in keystroke output
- short iELDelim:
If NOT bNoUseELChar, this char when set appears at the end of the ID in keystroked card output
- short iDDispLen:
If bFixLenDsp is true, ID is padded with zeros/stripped to achieve this length
- short iFACDispLen:
If bFixLenDsp is true, FAC is padded with zeros/stripped to achieve this length
- short iExOutputFormat:
This allows to choose one of the two format modes: data format or extend mode(if supported by reader)
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Return: IdDisplayParameters
Object
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
IdDisplayParameters idDisplayParameters = readers[0].GetIDDispParms(0);
short facidDelim = idDisplayParameters.getiDDispLen();
SetIDDispParms
Set display parameters IdDisplayParameters
to control how the card ID is displayed when keystroked out or sent serially on serial and RS-232 readers.IdDisplayParameters
contains:
- short iFACIDDelim:
If bStripFac & bSndFac & bUseDelFac2Id, this char is sent between FAC & ID. This delimiter appears as a seperator between FAC and ID in keystroke output
- short iELDelim:
If NOT bNoUseELChar, this char when set appears at the end of the ID in keystroked card output
- short iDDispLen:
If bFixLenDsp is true, ID is padded with zeros/stripped to achieve this length
- short iFACDispLen:
If bFixLenDsp is true, FAC is padded with zeros/stripped to achieve this length
- short iExOutputFormat:
This allows to choose one of the two format modes: data format or extend mode(if supported by reader)
Parameter: IdDisplayParameters
Object
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Throws: SDKException if configurationIndex exceeds maximum Config or if input values are out of allowed range or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
IdDisplayParameters idDisplayParameters = readers[0].GetIDDispParms(0);
idDisplayParameters.setiDDispLen((short) 7);
readers[0].SetIDDispParms(idDisplayParameters, 0);
readers[0].WriteCfg(0);
GetIDDispParms2
To get IdDisplayParameters2
which contains:
- short iLeadChrCnt:
If bUseLeadChrs, then it is set with lead character counts(<=3). And according to the count, characters can be sent at the beginning of the card data. Three delimiters total are allowed and can be split between leading and trailing characters
- short iLeadChr0:
First Leading character. The char set will be displayed in the beginnning of card data.
- short iLeadChr1:
Second Leading character. If previous lead char is 0 then it will shift to previous position.
- short iLeadChr2:
Third Leading character. If previous lead char is 0 then it will shift to previous position.
- short iCrdGnChr0:
First card gone character. It is sent/ displayed in output when card is gone from the field
- short iCrdGnChr0:
Second card gone character. If the previous card gone char is zero then it will shift to the previous position
- short iCrdGnChr1:
If this and Chr0 non-zero, sent when ID goes Invalid.
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Return: IdDisplayParameters2
Object
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
IdDisplayParameters2 idDisplayParameters2 = readers[0].GetIDDispParms2(0);
short leadCharCnt = idDisplayParameters2.getiLeadChrCnt();
SetIDDispParms2
To set IdDisplayParameters2
. Mainly controls the leading and trailing delimiters. IdDisplayParameters2
contains:
- short iLeadChrCnt:
If bUseLeadChrs, then it is set with lead character counts(<=3). And according to the count, characters can be sent at the beginning of the card data. Three delimiters total are allowed and can be split between leading and trailing characters
- short iLeadChr0:
First Leading character. The char set will be displayed in the beginnning of card data.
- short iLeadChr1:
Second Leading character. If previous lead char is 0 then it will shift to previous position.
- short iLeadChr2:
Third Leading character. If previous lead char is 0 then it will shift to previous position.
- short iCrdGnChr0:
First card gone character. It is sent/ displayed in output when card is gone from the field
- short iCrdGnChr0:
Second card gone character. If the previous card gone char is zero then it will shift to the previous position
- short iCrdGnChr1:
If this and Chr0 non-zero, sent when ID goes Invalid.
Parameter: IdDisplayParameters2
Object
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Throws: SDKException if configurationIndex exceeds maximum Config or
if input values are out of allowed range or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
IdDisplayParameters2 idDisplayParameters2 = readers[0].GetIDDispParms2(0);
idDisplayParameters2.setiLeadChrCnt((short) 2);
readers[0].SetIDDispParms2(idDisplayParameters2, 0);
readers[0].WriteCfg(0);
GetIDDispParms3
To get IdDisplayParameters3
which contains:
- short iTrailChrCnt:
It contains the trailing character count(<=3). The sum of iTrailChrCnt and iLeadChrCnt should be (<=3). And according to the count, characters can be sent at the end of the card data (ID).
- short iTrailChr0:
First trailing character. The char set will be displayed in the end of the ID of card data.
- short iTrailChr1:
Second trailing character. If previous trailing char is 0 then it will shift to previous position.
- short iTrailChr2:
Third trailing character. If previous trailing char is 0 then it will shift to previous position.
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Return: IdDisplayParameters3
Object
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
IdDisplayParameters3 idDisplayParameters3 = readers[0].GetIDDispParms3(0);
short trailCharCnt = idDisplayParameters3.getiTrailChrCnt();
SetIDDispParms3
To set IdDisplayParameters3
. Mainly controls the leading and trailing delimiters. IdDisplayParameters3
contains:
- short iTrailChrCnt:
It contains the trailing character count(<=3). The sum of iTrailChrCnt and iLeadChrCnt should be (<=3). And according to the count, characters can be sent at the end of the card data (ID).
- short iTrailChr0:
First trailing character. The char set will be displayed in the end of the ID of card data.
- short iTrailChr1:
Second trailing character. If previous trailing char is 0 then it will shift to previous position.
- short iTrailChr2:
Third trailing character. If previous trailing char is 0 then it will shift to previous position.
Parameter: IdDisplayParameters3
Object
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Throws: SDKException if configurationIndex exceeds maximum Config or
if input values are out of allowed range or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
IdDisplayParameters3 idDisplayParameters3 = readers[0].GetIDDispParms3(0);
idDisplayParameters3.setiTrailChrCnt((short) 1);
readers[0].SetIDDispParms3(idDisplayParameters3, 0);
readers[0].WriteCfg(0);
ReadDevCfgFmFile
Open and read an ASCII file and load the setting into the reader.This function reads
files created with the WriteDevCfgToFile(OutputStream)
function.
Parameter: HWGinputStream object an instance of FileInputStream
FileInputStream created from a hwg file
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
readers[0].ReadDevCfgFmFile(HWGinputStream)
ReadDevCfgFmSecureFile
This will check whether the Secure validation which is present in the file is valid or not.
Open and read an ASCII file and load the setting into the reader.This function reads
files created with the WriteDevCfgToSecureFile(OutputStream, FileInputStream)
function.
Parameter: HWGinputStream object an instance of FileInputStream
FileInputStream created from a hwg file
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
readers[0].ReadDevCfgFmSecureFile(HWGInputStream);
WriteDevCfgToFile
Write an ASCII file with all the setting of most recent the device setting read by
ReadCfg(). This writes the buffered data held by the library to a file. The user should
call ReadCfg() or WriteCfg() to make sure the correct values are sync'ed with the
device memory. The file can be loaded back into the device with function ReadDevCfgFmFile().
Parameter: HWGoutputStream
object
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
readers[0].WriteDevCfgToFile(HWGoutputStream);
WriteDevCfgToSecureFile
Write an ASCII file with all the setting of most recent the device setting read by
ReadCfg(). This writes the buffered data held by the library to a file. The user should
call ReadCfg() or WriteCfg() to make sure the correct values are sync'ed with the
device memory. The file can be loaded back into the device with function ReadDevCfgFmFile().
It will generate the Secure key for the file and append at the end of the file
Parameter: HWGoutputStream
object
Parameter: HWGInputStream
object an instance of FileInputStream
created from the same hwg file that you opened for writing.
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
readers[0].WriteDevCfgToSecureFile(HWGOutputStream, HWGInputStream);
SetActConfig
Set the active configuration ( 0..N ) of the pcProx Plus
device. pcProx Plus readers will return 0, 1, 2..N
and Non pcProx Plus readers will return 0.
Parameter: configurationIndex 0..N-1, where N stands for maximum configuration
Throws: SDKException if configurationIndex exceeds maximum Config or if there is a failure
in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
readers[0].SetActConfig(1);
readers[0].WriteCfg(0);
GetActConfig
Get the active configuration ( 0..N ) of the pcProx Plus. For devices
that only have one configuration this will return 0. All devices have
one configuration, so zero is always valid.
Return: Active configuration Index ( 0..N )
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
short activeConfig = readers[0].GetActConfig();
GetDevType
Get the active device type.
It will return PRXDEVTYP_
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
short devType = readers[0].GetDevType();
GetQueuedID
Read the Queued ID data from the reader. This returns the last card read by the reader, age and overrun counter.
The age is is from 0 - 0x00FFFF in 48msec units up to 52 minutes
The overrun is the number of cards read before the UID was transfered to the PC.
It is recommended not to call this faster than 250ms, or about
twice the data hold time of the active card.
After this call returns TRUE (Success) you may call GetQueuedID_index()
Parameter: clearUID if clearUID is set then the card, and overrun counters will be cleared for the next read.
Parameter: clearHold if clearHold is set then the reader is ready to read another card immediately.
Return: Returns TRUE success, or FALSE failed (perhaps function is not available in the firmware)
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].GetQueuedID((short)0,(short)0);
GetQueuedID_index
Return specific part of the data read by GetQueuedID()
GetQueuedID() actuall gets data from the reader
this funtions just marshalls the data back to the caller.
GetQueuedID_index()
index 0 .. 35
Return:index 0..31 = Bytes 0.. 31 of the UserID
index 32 = String Number of bits read 0-256
index 33 = String Age (16 bits) 0 - 65,535 48msec ticks or 0 to 52 minutes
index 34 = String Overrun counter number of cards before UID transfered to PC.
index 35 = String lockout timer 0-256 (0=ready to read)
Overrun clipped at 255, and age clipped at 0x00FFFF
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
boolean result = readers[0].GetQueuedID();
if(result){
short index = 33;
String age = readers[0].GetQueuedID_index(index);
}
GetVidPidVendorName
This Api will return the VendorName string for the active device.
Return: String value of device vendor Name
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
String partNumber = readers[0].GetVidPidVendorName();
getESN
This Api will Returns the 32 byte electronic serial number embedded in the processor chip.
Return: 32 byte String ESN for loon USB readers and else return NULL.
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].ReadCfg(0);
String partNumber = readers[0].getESN();
IsCardTypeInList
Is CardType in list? If the given card type is in the pcProx Plus Firmware
List Return TRUE, else return FALSE. A 0 card type (CARDTYPE_OFF) is always
in the list and returns TRUE. If the pcProx Plus does not have a list then
all cards types are assumed to be in the list.
Parameter: cardType 0..FFFF
Return: TRUE card type in list -- FALSE not in list
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
String cardType = "fa02";
boolean result = readers[0].IsCardTypeInList(cardType);
GetLastLibErr
Returns the last library error code (see Library Error Codes) for the
active device. The last error code is valid until another library call is made.
This does not reset the last library error code. When a function returns
FALSE and has failed, it is good practice to call this function to check the
error code.
Return: byte error code value bits
- 0x0002- READ_CFG_FAIL
- 0x01- GET_ACTIVE_ID_FAIL
- 0x0004- WRITE_CFG_FAIL
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
byte errCode = readers[0].GetLastLibErr();
pcProxPlusDefaults
Reset pcProx Plus to defaults. This copies the Default settings
configurations to the Active settings configurations and Stored
Settings. You will need to call ReadCfg() to get the changed
settings into your application.
Return: TRUE success / FALSE Fail
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
byte errCode = readers[0].pcProxPlusDefaults();
SaveUserDflts
Save Current As USER Default Configuration
Save the current device's working configuration as the user defaults.
user defaults. Execution time ~ 2 seconds.
For pcProx Plus this Writes the stored settings.
Return: TRUE success / FALSE Fail
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
byte errCode = readers[0].SaveUserDflts();
ReadSecureData
This is to get and read the secure blob on a secure reader.
Read the configuration as requested in header (blob details: Type, config, length, BSV).
Parameter: headerBuffer pointer (reference) to byte buffer to send the blob details to reader.
Parameter: dataBuffer pointer (reference) to byte buffer to get the data present on reader
Return: TRUE success / FALSE Fail
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
byte[] headerBuffer = new byte[4];
headerBuffer[0] = (byte)08; // Blob Header Type
headerBuffer[1] = (byte)01; // Blob Header ID
headerBuffer[2] = (byte)10; // Blob Header length
headerBuffer[3] = (byte)00; // Blob Header BSV
byte[] dataBuffer = new byte[10]; // To get the blob data from the reader
boolean status = readers[0].ReadSecureData(headerBuffer, dataBuffer);
WriteSecureData
This is to set and write the secure blob on a secure reader.
Write the configuration as requested in header(blob details: Type, config, length, BSV).
Parameter: blobBuffer reference to List
Parameter: blobLen is the integer value for length of List
Return: TRUE success / FALSE Fail
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
boolean status = readers[0].WriteSecureData(blobBuffer, blobLen);
LoadIniFile
Load the secure reader configuration in the reader containing secure blobs.
Parameter: IniInputStream object an instance ofFileInputStream
created from a ini file
Throws: SDKException if there is a failure in USB communication.
Example:
private Reader[] reader = Enumerate.USBConnect(appContext());
readers[0].LoadIniFile(IniInputStream);
Release Notes
RF IDeas' pcProx® USB Software Developer's Kit, and Proximity Reader.
Version 2.1.0 includes the following changes:
01) Optimized SDK attributes and dependencies.
Version 2.0.1 includes the following changes:
01) Added the new SDK API Documentation.
02) Added updated EULA document.
Version 2.0.0 includes the following changes:
01) Code refactoring and restructuring.
Version 1.0.4 includes the following changes:
01) Bug fixed for number of bits read is incorrect in GetQueuedID API.
02) Bug fixed for received age is incorrect in GetQueuedID API.
Version 1.0.3 includes addition of APIs mentioned below:
01) Bug fixed for configuration setting are not getting on loading HWG+ file onto any reader.
Version 1.0.2 includes addition of APIs mentioned below:
01) Bug fixed for loading correct HWG+/INI file.
Version 1.0.1 includes addition of APIs mentioned below:
01) Bug fixed for error message not correct while loading tampered file.
02) Bug fixed for when reader is unplugged from device and selecting the file for loading , the error message is not correct.
03) Bug fixed for recovery of Non HID and Nano readers.
Version 1.0.0 includes addition of APIs mentioned below:
01) Bug fix for Connecting Nano readers.
Version 0.0.18.0 includes addition of APIs mentioned below:
01) WriteSecureData
02) ReadSecureData
03) LoadINI
04) Payload APIs
Bug Fix and task:-
01) Bug fix for GetVidPidVendorName API.
02) Adding Common CRC method and Error Codes.
Version 0.0.17.0 includes the following changes:
01) Bug fix for loading HWG file.
02) Bug fix for reset to stored data format settings for single config readers.
Version 0.0.16.0 includes the following changes:
01) Code refactoring and restructuring.
Version 0.0.15.0 includes the following changes:
01) Bug Fix for Card priority Single config reader.
02) Adding the GetFirmwareVersion API.
03) Code refactoring and restructuring.
Version 0.0.14.0 includes the following changes:
01) Adding the vid and pid for CCID and Imprivata Reader.
02) Bug Fix for SaveUsrDflts API.
Version 0.0.13.0 includes the following changes:
01) Renaming the Secure keyword to iEndOfHwgFile in the SDK for Secure hwg files.
02) Bug Fix for queuedID API.
Version 0.0.12.0 includes addition of APIs mentioned below:
01)GetActConfig | 02)SetActConfig | 03)GetDevType | 04)GetDID | 05)GetVidPidVendorName |
06)IsCardTypeInList | 07)GetActDev | 08)SetActDev | 09)GetQueuedID | 10)GetQueuedID_index |
11)pcProxPlusDefaults | 12)getESN | 13)GetLastLibErr | 14)SaveUserDflts | 15)getFeatureReport for some APIs |
16)ReadDevCfgFmSecureFile | 17)WriteDevCfgToSecureFile |
Bug Fix and task:-
01) Dirty Bit implementation.
02) API Doc changes
03) Adding two buttons for loading and saving the secure HWG file in the sample application
04) Fixing the return value for GetActiveID and getActiveId32
05) RDR 6012AKU not able to load hwg file generated in a 4 config reader (RDR-300x1AxU).
06) Changing the minSdkVersion to 17 for sample app and android SDK.
Version 0.0.11.0 includes the following changes:
01) Includes another way of getting permission for the reader by registering the broadcast receiver in the sample application.
02) Adding support for the latest Android OS 11(API Level 30).
Version 0.0.10.0 includes the following changes:
01) Includes Correction in removal of SetDID() API.
Version 0.0.9.0 includes the following changes:
01) Includes one more way of creating Reader class object by passing UsbDevice and UsbDeviceConnection objects as parameters.
02) Updated the Readme for Android Example.
03) Removal of SetDID() API.
Version 0.0.8.0 includes the following changes:
01) Fixing reader disconnection while reading hwg file.
Version 0.0.7.0 includes the following changes:
01) Bux fix for random values appearing for variables of tscfgflags3 structure while reading hwg file.
Version 0.0.6.0 includes addition of APIs mentioned below–
01)GetFlags3 | 02)SetFlags3 | 03)GetExtendedPrecisionMath | 04)SetExtendedPrecisionMath | 05)GetIDDispParms | 06)SetIDDispParms |
07)GetSepFldData | 08)SetSepFldData | 09)GetIDDispParms2 | 10)SetIDDispParms2 | 11)GetIDDispParms3 | 12)SetIDDispParms3 |
13)GetBprRlyCtrl | 14)SetBprRlyCtrl | 15)ReadDevCfgFmFile | 16)WriteDevCfgToFile | 17)GetAZERTYShiftLock | 18)SetAZERTYShiftLock |
Version 0.0.5.0 includes–
01) Update in the API Documentation.
02) Fixed the Bug: Disconnect functionality not working correctly on sample application Android v 0.0.4.0
03) Fixing the ReadMe of Android Example.
Version 0.0.4.0 includes a bug fix–
01) LUID is not getting saved for some random values
Version 0.0.3.0 includes few bug fixes as mentioned below–
01) Card Type Value not changing on calling ResetFactoryDefaults
02) Set Time parameters is accepting negative values
03) Part number string received is not correct
04) Unable to set the card priority and card type for any configuration apart from config
05) Unable to set the LUID for plus readers
06) Get/Set LEDControl is not global
07) Bug Fix to restrict negative values in SetIDBitCnt
Version 0.0.2.0 includes addition of APIs mentioned below–
01)GetLEDCtrl | 02)SetLEDCtrl | 03)SetCardTypePriority | 04)SetFlags | 05)SetFlags2 | |
06)SetIDBitCnts | 07)GetLibVersion | 08)SetTimeParms | 09)IsBLEPresent | 10)GetBLEConfiguration | |
11)SetBLEConfiguration | 12)GetActiveID32 | 13)SetLUID | 14)GetLUID | 15)WriteCfg | 16)ResetFactoryDefaults |
Version 0.0.1.0 includes the following APIs–
01)USBConnect | 02)USBDisconnect | 03)GetCardType | 04)GetDevCnt | 05)GetCardPriority |
06)ReadCfg | 07)WriteCfg | 08)GetActiveID | 09)GetFlags2 | 10)GetTimeParms |
11)IsLoon | 12)SetBeeperVolume | 13)GetFullFWVersion | 14)getPartNumberString | 15)GetMaxConfig |
16)GetDevName | 17)GetFlags | 18)GetIDBitCnts | 19)GetBeeperVolume | 20)GetFWFilename |
21)BeepNow | 22)SetFlags |
Sample Application
Please Contact rfIDEAS's customer support, sample Android application can only be used for demonstration purposes.