Nedap.HandheldApi
Public Types | Public Member Functions | Events
Nedap.HandheldApi.Session Class Reference

Session layer: low-level communication layer to communicate with Handheld Reader. More...

Inheritance diagram for Nedap.HandheldApi.Session:
Nedap.HandheldApi.ISession

List of all members.

Public Types

enum  Command {
  GeneralGetBatteryPercentage = 0x01, GeneralGetDeviceDetails = 0x02, GeneralDisconnect = 0x03, RFIDSetParameter = 0x21,
  RFIDGetParameter = 0x22, RFIDReadEPC = 0x23, RFIDReadData = 0x24, RFIDWrite = 0x25,
  RFIDLock = 0x26, RFIDKill = 0x27, RFIDSetRegion = 0x28, RFIDSetEPCParameters = 0x29,
  RFIDSetCWSignal = 0x2A, RFIDSetFrequencyHopTable = 0x2B, RFIDGetSupportedRegions = 0x2C, RFIDWriteEPC = 0x2D,
  BarcodeSetType = 0x31, BarcodeTryDecode = 0x32, UILedSetStatusLed = 0x41, UIBeeperTune = 0x42,
  UIVibrationVibrate = 0x43, UIVibrationTune = 0x44, NFCTryToReadCard = 0x51
}
 Enumeration for available commands used in communication with handheld. More...
enum  Response {
  Error = 0xFF, GeneralBatteryPercentage = 0x81, GeneralDeviceDetails = 0x82, GeneralLowBattery = 0x83,
  GeneralEmptyBattery = 0x84, GeneralDeviceCharging = 0x85, RfidTagCount = 0xA1, RfidTags = 0xA2,
  RfidReadData = 0xA3, RfidWrite = 0xA4, RfidSupportedRegions = 0xA5, RFIDWriteEPC = 0xA6,
  BarcodeBarcodeRead = 0xB1, BarcodeNothingRead = 0xB2, UIButtonPush = 0xC1, UIAccelerometerShake = 0xC2,
  NfcNoCardFound = 0xD1, NfcCardFound = 0xD2
}
 Enumeration for available responces. More...

Public Member Functions

 Session (ICommunicationPort port, bool connectionStateEnable)
 Constructor for session layer.
void Dispose ()
 Disposes private objects.
bool HandheldIsConnected ()
 Checks if the handheld is connected or not.
void HandheldGetBatteryPercentage ()
 Returns the current battery status in percentage.
DeviceInfo HandheldGetInformation ()
 Get information on the handheld.
void HandheldDisconnect ()
 Will let the handheld kill the bluetooth connection. Can be used to pair the handheld with another device.
void UIPlay (UITune tune)
 The beeper on the handheld will play the defined tune.
void UIVibrate ()
 The vibration motor on the handheld will vibrate.
void UIVibrate (int duration)
 The vibration motor on the handheld will vibrate for a specified duration.
void UIVibrateTune (UITune tune)
 The vibration motor on the handheld will vibrate and the beeper on the handheld will play the defined tune.
void UILedSetBlinking (bool blinking)
 Let the white status led on the handheld blink or not.
void RfidGetSupportedRegions ()
 Gets the supported regions by the handheld reader.
void RfidSetRegion (RfidRegion region)
 Sets the region that the handheld reader operates in. The supported regions can be obtained by using +(void)rfidGetSupportedRegions.
void RfidSetFrequencyHopTable (List< RfidFrequency > frequencies)
 Set frequency hop table.
void RfidSetSession (RfidEpcSession session)
 Sets the session for the EPC Gen2 protocol.
void RfidSetTarget (RfidEpcTarget target, bool toggle)
 Sets the target for the EPC Gen2 protocol.
void RfidSetMValue (RfidEpcMValue mValue)
 Sets the miller value for the EPC Gen2 protocol.
void RfidSetQValue (int qValue, bool dynamic)
 Sets the Q value for the EPC Gen2 protocol.
void RfidReadEpcs (int timeout, int power, Select select)
 Will read RFID tags in the field, for a specified duration, with a specific power and with a select to select a subset of tags.
void RfidReadData (RfidEpcMemoryBank memoryBank, int addressInWords, int lengthInWords, int timeout, int power, Select select, Password password)
 Will read specific data from a RFID tag.
void RfidWriteEpc (EpcCode epc)
 Writes a new EPC code to a tag.
void RfidWriteData (byte[] dataToWrite, RfidEpcMemoryBank memoryBank, int addressInWords, int timeout, int power, Select select, Password password)
 Write data to a specified memory bank and address in a tag.
void RfidSetCWSignal (bool enabled, int antenna)
 Enables Continuous Wave (CW) signal, used for testing and measurement purposes.
bool BarcodeHasReader ()
 Check to see if the handheld reader has a barcode reader on-board.
void BarcodeSetStatusForType (BarcodeType barcodeType, bool enabled)
 Enables or disable a certain type of barcode.
void BarcodeTryDecode (int duration)
 Try to read a barcode for a defined number of seconds.
void NfcTryToReadCard ()
 The handheld will try to read a NFC card.

Events

EventHandler< EventArgs > OnSessionHandheldConnect
 This event is triggered after handheld device connects.
EventHandler< EventArgs > OnSessionHandheldDisconnect
 This event is triggered after handheld device disconnects.
EventHandler
< HandheldReceiveBatteryPercentageEventArgs
OnSessionHandheldReceiveBatteryPercentage
 This event is triggered after battery charge percentage is received.
EventHandler< EventArgs > OnSessionHandheldReceiveLowBatteryWarning
 This event is triggered after handheld device battery reaches minimal level.
EventHandler< EventArgs > OnSessionHandheldReceiveEmptyBatteryStatus
 This event is triggered after empty battery status responce is received.
EventHandler< EventArgs > OnSessionHandheldReceiveChargingStatus
 This event is triggered after charging status responce is received.
EventHandler
< HandheldReceiveErrorEventArgs
OnSessionHandheldReceiveError
 This event is triggered after error responce is received.
EventHandler
< RfidReadTagEventArgs
OnSessionRfidReadTag
 This event is triggered after handheld device reads tag.
EventHandler
< RfidReadDataEventArgs
OnSessionRfidReadData
 This event is triggered after handheld device reads data.
EventHandler< EventArgs > OnSessionRfidFinishReadCycle
 This event is triggered after handheld device finished read cycle.
EventHandler
< RfidFailButTagsAvailableEventArgs
OnSessionRfidFailButTagsAvailable
 This event is triggered after handheld device read fails but tags are available.
EventHandler
< RfidWriteDataMoreTagsAvailableEventArgs
OnSessionRfidWriteDataMoreTagsAvailable
 This event is triggered after handheld device writes data and more tags are available.
EventHandler< EventArgs > OnSessionRfidWriteNoTagsInField
 This event is triggered after handheld device tries to write EPC and there are no tags in the field.
EventHandler< EventArgs > OnSessionRfidWriteTooMuchTagsInField
 This event is triggered after handheld device tries to write EPC and there are too much tags in the field.
EventHandler< EventArgs > OnSessionRfidWriteToTagFailed
 This event is triggered after handheld device tries to write EPC and fails.
EventHandler< EventArgs > OnSessionRfidWriteSuccess
 This event is triggered after handheld device tries to write EPC and succeeds.
EventHandler
< RfidReceiveSupportedRegionsEventArgs
OnSessionRfidReceiveSupportedRegions
 This event is triggered after supported regions responce is received..
EventHandler
< RfidReadABarcodeEventArgs
OnSessionBarcodeRead
 This event is triggered after handheld reads a barcode.
EventHandler< EventArgs > OnSessionBarcodeNotRead
 This event is triggered after handheld fails to read a barcode.
EventHandler< EventArgs > OnSessionUIPushButton
 This event is triggered after button is pushed on the handheld device.
EventHandler< EventArgs > OnSessionUIShake
 This event is triggered after the handheld device is shaken.
EventHandler< EventArgs > OnSessionNfcCardNotFound
 This event is triggered after handheld device fails to found a card.
EventHandler
< RfidReadCardEventArgs
OnSessionNfcCardRead
 This event is triggered after handheld device reads a card.

Detailed Description

Session layer: low-level communication layer to communicate with Handheld Reader.


Member Enumeration Documentation

Enumeration for available commands used in communication with handheld.

Enumeration for available responces.


Constructor & Destructor Documentation

Nedap.HandheldApi.Session.Session ( ICommunicationPort  port,
bool  connectionStateEnable 
)

Constructor for session layer.

Parameters:
portPort implementation of ICommunicationPort interface
connectionStateEnableSet to true if session layer should provide connect/disconnect detection.

Member Function Documentation

bool Nedap.HandheldApi.Session.BarcodeHasReader ( )

Check to see if the handheld reader has a barcode reader on-board.

Returns:
true if there is a barcode reader

Implements Nedap.HandheldApi.ISession.

void Nedap.HandheldApi.Session.BarcodeSetStatusForType ( BarcodeType  barcodeType,
bool  enabled 
)

Enables or disable a certain type of barcode.

Parameters:
barcodeTypeNHBarcodeType
enabledenabled or disabled
void Nedap.HandheldApi.Session.BarcodeTryDecode ( int  duration)

Try to read a barcode for a defined number of seconds.

Parameters:
durationduration in seconds

Implements Nedap.HandheldApi.ISession.

void Nedap.HandheldApi.Session.Dispose ( )

Disposes private objects.

Implements Nedap.HandheldApi.ISession.

void Nedap.HandheldApi.Session.HandheldDisconnect ( )

Will let the handheld kill the bluetooth connection. Can be used to pair the handheld with another device.

Implements Nedap.HandheldApi.ISession.

void Nedap.HandheldApi.Session.HandheldGetBatteryPercentage ( )

Returns the current battery status in percentage.

Implements Nedap.HandheldApi.ISession.

DeviceInfo Nedap.HandheldApi.Session.HandheldGetInformation ( )

Get information on the handheld.

Returns:
DeviceInfo class object with three parameters: serial number, firmware and hardware version.

Implements Nedap.HandheldApi.ISession.

bool Nedap.HandheldApi.Session.HandheldIsConnected ( )

Checks if the handheld is connected or not.

Returns:
true if handheld is connected

Implements Nedap.HandheldApi.ISession.

void Nedap.HandheldApi.Session.NfcTryToReadCard ( )

The handheld will try to read a NFC card.

Implements Nedap.HandheldApi.ISession.

void Nedap.HandheldApi.Session.RfidGetSupportedRegions ( )

Gets the supported regions by the handheld reader.

Implements Nedap.HandheldApi.ISession.

void Nedap.HandheldApi.Session.RfidReadData ( RfidEpcMemoryBank  memoryBank,
int  addressInWords,
int  lengthInWords,
int  timeout,
int  power,
Select  select,
Password  password 
)

Will read specific data from a RFID tag.

Parameters:
memoryBankthe memory bank to read data from
addressInWordsthe address to read data from (in words)
lengthInWordsthe length of the data to read (in words)
timeouttimeout in milliseconds
powerthe power, possible values range from 10 to 23 dBm
selectselect statement, can also be set to null
passwordpassword, can also be set to null
void Nedap.HandheldApi.Session.RfidReadEpcs ( int  timeout,
int  power,
Select  select 
)

Will read RFID tags in the field, for a specified duration, with a specific power and with a select to select a subset of tags.

Parameters:
timeouttimeout in milliseconds
powerthe power, possible values range from 10 to 23 dBm
selectselect statement, can also be set to null
void Nedap.HandheldApi.Session.RfidSetCWSignal ( bool  enabled,
int  antenna 
)

Enables Continuous Wave (CW) signal, used for testing and measurement purposes.

Parameters:
enabledCW enabled
antennaselect antenna one or two

Implements Nedap.HandheldApi.ISession.

void Nedap.HandheldApi.Session.RfidSetFrequencyHopTable ( List< RfidFrequency frequencies)

Set frequency hop table.

Parameters:
frequenciesfrequencies array with frequencies (NSNumber containing NHRFIDFrequency)
void Nedap.HandheldApi.Session.RfidSetMValue ( RfidEpcMValue  mValue)

Sets the miller value for the EPC Gen2 protocol.

Parameters:
mValuemValue miller value
void Nedap.HandheldApi.Session.RfidSetQValue ( int  qValue,
bool  dynamic 
)

Sets the Q value for the EPC Gen2 protocol.

Parameters:
qValueqValue the Q value
dynamicdynamic whether the Q value is dynamically adjusted or not

Implements Nedap.HandheldApi.ISession.

void Nedap.HandheldApi.Session.RfidSetRegion ( RfidRegion  region)

Sets the region that the handheld reader operates in. The supported regions can be obtained by using +(void)rfidGetSupportedRegions.

Parameters:
regionRfidRegion to set
void Nedap.HandheldApi.Session.RfidSetSession ( RfidEpcSession  session)

Sets the session for the EPC Gen2 protocol.

Parameters:
sessionsession session (S0, S1, S2 or S3)
void Nedap.HandheldApi.Session.RfidSetTarget ( RfidEpcTarget  target,
bool  toggle 
)

Sets the target for the EPC Gen2 protocol.

Parameters:
targettarget target (A or B)
toggletoggle toggle between A and B
void Nedap.HandheldApi.Session.RfidWriteData ( byte[]  dataToWrite,
RfidEpcMemoryBank  memoryBank,
int  addressInWords,
int  timeout,
int  power,
Select  select,
Password  password 
)

Write data to a specified memory bank and address in a tag.

Parameters:
dataToWritethe data to write.
memoryBankthe memory bank where to write the data to
addressInWordsthe address in words where the data needs to be written
timeoutthe address in words where the data needs to be written
powerthe power, possible values range from 10 to 23 dBm
selectselect statement, can also be set to null
passwordpassword, can also be set to null
void Nedap.HandheldApi.Session.RfidWriteEpc ( EpcCode  epc)

Writes a new EPC code to a tag.

Parameters:
epcnew EPC code
void Nedap.HandheldApi.Session.UILedSetBlinking ( bool  blinking)

Let the white status led on the handheld blink or not.

Parameters:
blinkingblinking enabled

Implements Nedap.HandheldApi.ISession.

void Nedap.HandheldApi.Session.UIPlay ( UITune  tune)

The beeper on the handheld will play the defined tune.

Parameters:
tune
void Nedap.HandheldApi.Session.UIVibrate ( )

The vibration motor on the handheld will vibrate.

Implements Nedap.HandheldApi.ISession.

void Nedap.HandheldApi.Session.UIVibrate ( int  duration)

The vibration motor on the handheld will vibrate for a specified duration.

Parameters:
durationvibrate duration in tens of a second

Implements Nedap.HandheldApi.ISession.

void Nedap.HandheldApi.Session.UIVibrateTune ( UITune  tune)

The vibration motor on the handheld will vibrate and the beeper on the handheld will play the defined tune.

Parameters:
tune

Implements Nedap.HandheldApi.ISession.


Event Documentation

EventHandler<EventArgs> Nedap.HandheldApi.Session.OnSessionBarcodeNotRead

This event is triggered after handheld fails to read a barcode.

Implements Nedap.HandheldApi.ISession.

EventHandler<RfidReadABarcodeEventArgs> Nedap.HandheldApi.Session.OnSessionBarcodeRead

This event is triggered after handheld reads a barcode.

Implements Nedap.HandheldApi.ISession.

EventHandler<EventArgs> Nedap.HandheldApi.Session.OnSessionHandheldConnect

This event is triggered after handheld device connects.

Implements Nedap.HandheldApi.ISession.

EventHandler<EventArgs> Nedap.HandheldApi.Session.OnSessionHandheldDisconnect

This event is triggered after handheld device disconnects.

Implements Nedap.HandheldApi.ISession.

EventHandler<HandheldReceiveBatteryPercentageEventArgs> Nedap.HandheldApi.Session.OnSessionHandheldReceiveBatteryPercentage

This event is triggered after battery charge percentage is received.

Implements Nedap.HandheldApi.ISession.

EventHandler<EventArgs> Nedap.HandheldApi.Session.OnSessionHandheldReceiveChargingStatus

This event is triggered after charging status responce is received.

Implements Nedap.HandheldApi.ISession.

EventHandler<EventArgs> Nedap.HandheldApi.Session.OnSessionHandheldReceiveEmptyBatteryStatus

This event is triggered after empty battery status responce is received.

Implements Nedap.HandheldApi.ISession.

EventHandler<HandheldReceiveErrorEventArgs> Nedap.HandheldApi.Session.OnSessionHandheldReceiveError

This event is triggered after error responce is received.

Implements Nedap.HandheldApi.ISession.

EventHandler<EventArgs> Nedap.HandheldApi.Session.OnSessionHandheldReceiveLowBatteryWarning

This event is triggered after handheld device battery reaches minimal level.

Implements Nedap.HandheldApi.ISession.

EventHandler<EventArgs> Nedap.HandheldApi.Session.OnSessionNfcCardNotFound

This event is triggered after handheld device fails to found a card.

Implements Nedap.HandheldApi.ISession.

EventHandler<RfidReadCardEventArgs> Nedap.HandheldApi.Session.OnSessionNfcCardRead

This event is triggered after handheld device reads a card.

Implements Nedap.HandheldApi.ISession.

EventHandler<RfidFailButTagsAvailableEventArgs> Nedap.HandheldApi.Session.OnSessionRfidFailButTagsAvailable

This event is triggered after handheld device read fails but tags are available.

Implements Nedap.HandheldApi.ISession.

EventHandler<EventArgs> Nedap.HandheldApi.Session.OnSessionRfidFinishReadCycle

This event is triggered after handheld device finished read cycle.

Implements Nedap.HandheldApi.ISession.

EventHandler<RfidReadDataEventArgs> Nedap.HandheldApi.Session.OnSessionRfidReadData

This event is triggered after handheld device reads data.

Implements Nedap.HandheldApi.ISession.

EventHandler<RfidReadTagEventArgs> Nedap.HandheldApi.Session.OnSessionRfidReadTag

This event is triggered after handheld device reads tag.

Implements Nedap.HandheldApi.ISession.

EventHandler<RfidReceiveSupportedRegionsEventArgs> Nedap.HandheldApi.Session.OnSessionRfidReceiveSupportedRegions

This event is triggered after supported regions responce is received..

Implements Nedap.HandheldApi.ISession.

EventHandler<RfidWriteDataMoreTagsAvailableEventArgs> Nedap.HandheldApi.Session.OnSessionRfidWriteDataMoreTagsAvailable

This event is triggered after handheld device writes data and more tags are available.

Implements Nedap.HandheldApi.ISession.

EventHandler<EventArgs> Nedap.HandheldApi.Session.OnSessionRfidWriteNoTagsInField

This event is triggered after handheld device tries to write EPC and there are no tags in the field.

Implements Nedap.HandheldApi.ISession.

EventHandler<EventArgs> Nedap.HandheldApi.Session.OnSessionRfidWriteSuccess

This event is triggered after handheld device tries to write EPC and succeeds.

Implements Nedap.HandheldApi.ISession.

EventHandler<EventArgs> Nedap.HandheldApi.Session.OnSessionRfidWriteTooMuchTagsInField

This event is triggered after handheld device tries to write EPC and there are too much tags in the field.

Implements Nedap.HandheldApi.ISession.

EventHandler<EventArgs> Nedap.HandheldApi.Session.OnSessionRfidWriteToTagFailed

This event is triggered after handheld device tries to write EPC and fails.

Implements Nedap.HandheldApi.ISession.

EventHandler<EventArgs> Nedap.HandheldApi.Session.OnSessionUIPushButton

This event is triggered after button is pushed on the handheld device.

Implements Nedap.HandheldApi.ISession.

EventHandler<EventArgs> Nedap.HandheldApi.Session.OnSessionUIShake

This event is triggered after the handheld device is shaken.

Implements Nedap.HandheldApi.ISession.