Merchandize Visibility
Unified Point of Service
Version 8.0 OATSystems, Inc
August 2010 Document Number: OAT_MVUPOS_UG_8.0
MV UnifiedPOS Guide ii
Copyright © 2010 OATSystems Inc. All Rights Reserved.
This document contains proprietary information that is owned by OATSystems. Copying or
reproduction of any material from this site to any other location for further reproduction or
redistribution is expressly prohibited. Any reproduction or redistribution of the files not in
accordance with the terms of the License Statement is a violation of copyright law.
OAT and Senseware are registered trademarks of OATSystems, Inc.
Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc.
in the United States and other countries. OATSystems is independent of Sun Microsystems, Inc.
IBM is a registered trademark of International Business Machines Corporation.hb
Linux is a registered trademark of Linus Torvalds.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Microsoft and Windows are either registered trademarks or trademarks of Microsoft Corporation
in the United States and/or other countries.
All other trade names and trademarks are the property of their respective owners.
OATSystems makes no warranties, express or implied, with regards to its products in this
document.
Support Information
You can contact the OAT Support Center (OSC) for technical support at:
OATSystems, Inc.
309 Waverley Oaks Road, Suite 306
Waltham, MA 02452
USA
Phone: 877-OAT-SUPPORT or 781-907-6081
Fax: 781-907-6098
Email: [email protected]
Web site: https://support.oatsystems.com
MV UnifiedPOS Guide iii
Table of Contents Chapter 1 Introduction ................................................................................6
1.1 What is MV UnifiedPOS? ............................................................................6
1.2 Features of MV UnifiedPOS ........................................................................6
1.3 Purpose of this document ..........................................................................6
Chapter 2 Prerequisites ...............................................................................7
2.1 Before you begin.....................................................................................7
2.2 Hardware Requirements............................................................................7
2.3 Software Requirement ..............................................................................7
Chapter 3 Installation .................................................................................8
3.1 MV UnifiedPOS Release Package Contents ......................................................8
3.2 Steps to Install .......................................................................................8
Chapter 4 Configuration ..............................................................................9
4.1 Configuring MV UnifiedPOS ........................................................................9
4.1.1 DeviceLibrary Element .............................................................................11
4.1.2 PluginLibrary .........................................................................................12
Chapter 5 Application Development ...............................................................14
5.1 Supported UnifiedPOS Methods ...................................................................14
5.2 Supported UnifiedPOS Properties .................................................................15
5.3 Supported UnifiedPOS Events .....................................................................16
5.4 Error Codes (DeviceErrorEvent) ...................................................................16
5.5 Device State Codes (DeviceStateEvent) .........................................................17
5.6 Use Cases .............................................................................................17
5.6.1 Application Startup .................................................................................17
5.6.2 Application Shutdown...............................................................................19
5.6.3 Sale Process ..........................................................................................21
5.6.4 Return Process .......................................................................................23
5.7 Custom Use Cases (optional) ......................................................................25
5.7.1 Sale with Detacher ..................................................................................25
5.7.2 Return with Detacher ...............................................................................27
Appendix ................................................................................................29
A.1 Controlling Digital I/O ..............................................................................29
A.2 EPC Read Notification ..............................................................................30
MV UnifiedPOS Guide iv
Preface The MV UnifiedPOS Guide describes requirements and procedures needed to use MV UnifiedPOS
in a retail store environment.
Who should use this document?
This guide is intended for system administrators and implementers.
Assumptions
The MV UnifiedPOS Guide assumes the following:
All software and hardware requirements specified in the chapter Prerequisites for
installing MV UnifiedPOS are met.
The user has administrative privileges on the local host machine.
The user has access to the UnifiedPOS Retail Peripheral Architecture Version1.13
document from http://www.nrf-arts.org/UnifiedPOS/default.htm.
Additional Documentation
OAT, Inc. customers and partners can log on to https://support.oatsystems.com to access product
release notes, hardware configurations for supported devices, and other information related to
OAT products.
Document Conventions
Following are the formatting conventions used in this document:
Code Examples Examples from an actual file or a sample
command line appears as follows:
cd /oat_install_dir/ofs/schema
Navigation The 'greater than (>)' sign separates the
navigation controls in a sequence to be
performed. For example
Admin > Users
Admin > Users Indicates that you need to click the Admin tab
and then the Users icon.
Notes Notes convey important information.
Following is an example
NOTE: In the user interface of the OATxpress
Web application, fields with asterisks (*) are
MV UnifiedPOS Guide v
mandatory and require users to supply a value
Cross-references A cross-reference directs you to another
location in the document for information. For
example: See Introduction Click the blue text,
to traverse the link to the referenced location.
MV UnifiedPOS Guide 6
Chapter 1 Introduction
1.1 What is MV UnifiedPOS?
MV UnifiedPOS or Merchandise Visibility Unified Point of Service is an RFID Scanner
UnifiedPOS service object. It supports RFID devices with digital I/O controls to enable point of
service to speed up the sale and return process.
For more information refer to the document UnifiedPOS Retail Peripheral Architecture
Version1.13 from http://www.nrf-arts.org/UnifiedPOS/default.htm.
1.2 Features of MV UnifiedPOS
MV UnifiedPOS provides the following features:
Supports the RFID Scanner device class in a device-independent manner.
Supports RFID devices and SNAP devices.
Speeds up the sale process at the sales counter.
Enables easy return of merchandise at the sales counter.
Reduces maintenance and upgrade costs as the MV UnifiedPOS software platform uses a
plug and play model.
Enables customizations or feature additions using plug-ins.
Supports the Sirit INfinity 510 RFID reader.
o Serial (RS232) and TCP/IP based connections.
o Read and write capabilities.
o Digital output via output ports on the Sirit device.
1.3 Purpose of this document
The purpose of this document is as follows:
Provide installation and configuration details.
Provide information on application development.
o API usage for standard configuration.
o Additional usage and configuration options.
MV UnifiedPOS Guide 7
Chapter 2 Prerequisites
This chapter describes the requirements you need to fulfill before installing the MV UnifiedPOS.
2.1 Before you begin
Ensure the following are available before installing MV UnifiedPOS:
Sirit INfinity 510 with Firmware version 3.0
Password for Sirit Reader
Microsoft POS for .NET version 1.12
POS application
2.2 Hardware Requirements
Following are the hardware requirements:
RS 232 Serial Cable or Network Cable
Serial port or Ethernet controller with LAN connectivity
Intel Core 2 Duo E4300/512M DDR II Memory
160GB Hard disk
1GB System Memory
Detacher (optional)
2.3 Software Requirement
Following are the software requirements:
Windows 2003 Server or Windows Embedded for POS service
Microsoft .NET Framework version 2.0
MV UnifiedPOS Guide 8
Chapter 3 Installation
This chapter explains the procedure you need to follow to install MV UnifiedPOS.
3.1 MV UnifiedPOS Release Package Contents
The MV UnifiedPOS release package consists of the following:
File Description
OATsystemsUPOSRFID.dll RFID Service Object
OATSystems.Sirit.DeviceImpl.dll Sirit Driver
OATRFIDConfig.xml file Configuration File
Optional Plug-file:
File Description
OATSytems.UPOS.Plugins.dll The plug-in functionality includes the
following:
Direct I/O call command mappings
EPC read notifications
3.2 Steps to Install
Following are the steps to install MV UnifiedPOS:
1. Unzip OATupos.zip
2. Copy OATSystemsUPOSRFID.dll to the following directory
C:\Program Files\Common Files\Microsoft Shared\Point Of Service\Control Assemblies.
3. Copy OATSystems.UPOS.Plugins.dll, OATSystems.Sirit.DeviceImpl.dll, OATRFIDConfig.xml
files to the POS application folder.
4. Configure the Service object. For details see the chapter 4 on Configuration.
5. This completes the installation.
6. Restart the POS application.
MV UnifiedPOS Guide 9
Chapter 4 Configuration
This chapter provides details on configuring MV UnifiedPOS using an XML-based configuration file. The
XML file is used to configure the device driver and other plug-in modules.
4.1 Configuring MV UnifiedPOS
You can create or modify the OATRFIDConfig.xml present in the POS application folder. Device driver
configurations are part of the ‘DeviceLibrary Elementelement and plug-in configurations are a part of the
‘PluginLibrary’ element.
NOTE: The application runs even if the XML file is not present, in which case, the default values (specified in the
tables below) will be used at runtime.
Following is a sample of the XML configuration file:
Following is a sample XML configuration file:<?xml version="1.0"
encoding="utf-8" ?>
<RFIDUPOSConfig xmlns="http://tempuri.org/ConfigSchema.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!--Device driver details:
Assembly file name: OATSystems.Sirit.DeviceImpl.dll
Class Name to be invoked: OATSystems.SiritDeviceImpl.SiritReader
Device ID: 1
Device Type: The specified assembly supports both RFID and IO device
Active: Is the specified library is active? yes
-->
<DeviceLibrary assembly="OATSystems.Sirit.DeviceImpl.dll"
class="OATSystems.SiritDeviceImpl.SiritReader" deviceId="1"
deviceType="RFID_AND_IO" active="yes">
<!--
Connection details for the device:
Type: Serial connection (SERIAL)
Port: com1
Barud rate: 152000
Device password: sirit
-->
<ConnectionType type="SERIAL" port="com1" baud=”115200”
password="sirit">
</ConnectionType>
<!--
Device specific properties:
Configuration
MV UnifiedPOS Guide 10
Property name: VerifyWrite (verify the tag write by reading after
write)
Property value: yes
-->
<Property name=”VerifyWrite” value=”yes”/>
</DeviceLibrary>
<!--
Plug-in details:
Plug-in for DirectIO command mapping
Assembly: OATSystems.UPOS.Plugins.dll
Class: OATSystems.UPOS.Plugins.CustomDirectIO
Plug-in Type: DIRECT_IO
pluginID: plugin reference (0002)
Active: is specified plug-in active? yes
-->
<PluginLibrary assembly="OATSystems.UPOS.Plugins.dll"
class="OATSystems.UPOS.Plugins.CustomDirectIO" pluginId="0001"
pluginType="DIRECT_IO" active="yes"/>
<!--
Plug-in details:
Plug-in for read notificaiton
Assembly: OATSystems.UPOS.Plugins.dll (it can be same assembly as other
plug-in)
Class: OATSystems.UPOS.Plugins.CustomReadNotify
Plug-in Type: READ_NOTIFY
Active: is specified plug-in active? yes
-->
<PluginLibrary assembly="OATSystems.UPOS.Plugins.dll"
class="OATSystems.UPOS.Plugins.CustomReadNotify" pluginId="0002"
pluginType="READ_NOTIFY" active="yes"/>
</RFIDUPOSConfig>
NOTE:
1. Ensure proper device password is provided in the ‘Connection’ configuration
2. Set VerifyWrite to true in the Device Property, while using Serial Communication.
3. Ensure that appropriate plug-in class is configured in the ‘PluginLibrary’ configuration.
Configuration
MV UnifiedPOS Guide 11
4.1.1 DeviceLibrary Element
There are one or more DeviceLibrary elements in the XML file, with one sub-element of ConnectionType
each. There may be any number of Property sub-elements. The Property sub-element is not mandatory in
DeviceLibrary. Any device specific property has to be specified as a name-value pair.
Following are the attributes supported by the DeviceLibrary element:
Attributes Description Default Value
assembly Device specific driver
assembly. OATSystems.Sirit.DeviceImpl.dll
class Class to be invoked from the
assembly. OATSystems.SiritDeviceImpl.Siri
tReader
deviceId Unique number. 1
deviceType Following are the supported
device types are:
RFID_ONLY - Device
driver supports only
RFID functions.
RFID_AND_IO -
Device driver supports
both RFID and IO
functionalities.
IO_ONLY - Device
driver supports only IO
functionalities.
RFID_AND_IO
active yes or no
NOTE: In case of multiple
DeviceLibrary, the first instance
with active=”yes” is considered for
loading.
yes
Configuration
MV UnifiedPOS Guide 12
Following are the attributes supported by ConnectionType:
Attributes Possible Values Default values
type TCP/IP - Reader is connected
via LAN.
SERIAL - Reader is connected
via Serial port.
SERIAL
host IP address of the device – It is
required if the device is
connected via TCP/IP.
port TCP/IP port number - if the
reader is connected via
TCP/IP.
com1, com2, etc. - if the reader
is connected via SERIAL.
com1
baud Required if the reader is
connected via the Serial port. 115200
password Device password for
administrative access. sirit
Other than the above mentioned attributes, any device specific properties can be specified as name-value
pairs within the Property element. These will be used by the device driver. The property name has to
match the device-specified property name.
Following are the attributes supported by Property:
Attributes Description
name Name of the property
value Value of the property
4.1.2 PluginLibrary
There can be one or more PluginLibrary elements defined in the XML file.
Following are the possible attributes of PluginType:
Attributes Description
assembly Plug-in assembly dll
class Class to be invoked for plug-in
pluginID Unique number
pluginType DIRECT_IO - plug-in for DirectIO API call
command mapping.
RFID_NOTIFY - plug-in for Read notification
WRITE_ACCESS – plug-in for write access.
Configuration
MV UnifiedPOS Guide 13
Attributes Description
active yes or no
NOTE: In case of more than one active=”yes” for same
pluginType, then the first instance will considered for
loading.
MV UnifiedPOS Guide 14
Chapter 5 Application Development
This chapter provides details of the UnifiedPOS Methods, Properties and Events that are supported by
MV Unified POS. Refer to the following for information:
Supported UnifiedPOS Methods
Supported UnifiedPOS Properties
Supported UnifiedPOS Events
This chapter also provides details on the following:
Error Codes (DeviceErrorEvent)
Device State Codes (DeviceStateEvent)
Use Cases
Custom Use Cases (optional)
5.1 Supported UnifiedPOS Methods
Following are the supported UnifiedPOS methods. These are called from the POS application. You can
also refer to UnifiedPOS Retail Peripheral Architecture Version1.13 from http://www.nrf-
arts.org/UnifiedPOS/default.htm for details.
Syntax Description
Open Opens a device for subsequent input/output processing.
Claim Requests exclusive access to the device.
Release Releases exclusive access to the device.
Close Releases the device and its resources.
StartReadTags Performs a continuous polling of tags that meet the
parameterized criteria.
StopReadTags Stops the continuous reading mode.
ReadTags Performs a poll of all the tags within the range that meet the
parameterized criteria.
WriteTagId Over writes a part of or the entire UserData field of a
targeted tag.
DirectIO This event provides a means for a service object to
communicate information in the form of an event to the
application that would not otherwise be supported by other
events or properties defined for the device.
FirstTag Resets the Service’s counter to the first tag in the tag list, and
Application Development
MV UnifiedPOS Guide 15
Syntax Description
copies that tag’s information into the corresponding
properties.
NextTag Moves the Service’s counter to the next tag in the tag list, and
copies that tag’s information into the corresponding
properties.
PreviousTag Moves the Service’s counter to the previous tag in the tag list,
and copies that tag’s information into the corresponding
properties.
5.2 Supported UnifiedPOS Properties
All properties can be accessed with a getter method. For example, the property DeviceEnabled can be
accessed using DeviceEnabled.
Each property that is writable is set with a setter method. For example, the property DeviceEnabled is set
as DeviceEnabled = true.
Following are the supported UnifiedPOS Properties. Refer to UnifiedPOS Retail Peripheral Architecture
Version1.13 from http://www.nrf-arts.org/UnifiedPOS/default.htm for details.
Properties Description Get Set
DeviceEnabled Places the device in an operational
state.
Yes Yes
DataEventEnabled Delivers the DataEvent as soon as
input data is queued.
Yes Yes
TagCount Contains the total number of tags
read by the corresponding read
operation.
Yes No
OutputId Holds the identifier of the most
recently started asynchronous output.
Yes No
CurrentTagId Represents the present tag’s TagID. Yes No
CurrentTagUserData Populates with the data read from the
physical tag.
Yes No
ReadTimeInterval Indicates the minimum time interval
between the tags reads in
milliseconds.
Yes Yes
CapContinuousRead Sets the device to support continuous
reading.
Yes No
Application Development
MV UnifiedPOS Guide 16
Properties Description Get Set
ContinuousReadMode Sets the device in continuous read
mode.
Yes Yes
5.3 Supported UnifiedPOS Events
Following are the supported UnifiedPOS events. Refer to UnifiedPOS Retail Peripheral Architecture
Version1.13 from http://www.nrf-arts.org/UnifiedPOS/default.htm for details.
Event Description
DataEvent Notifies the application that input data from
RFID scanner is available.
DirectIOEvent Provides service information directly to the
application.
StatusUpdateEvent Notifies the application that there is a change in
the power status of an RFID Scanner device.
DeviceErrorEvent Notifies the application that an RFID scanner
device error has been detected and a suitable
response by the application is necessary to
process the error condition.
OutputCompleteEvent Notifies the application that the queued output
request associated with the OutputID attribute
has been completed successfully.
5.4 Error Codes (DeviceErrorEvent)
Following are the Error Codes with the description:
Code Error Description
1000 Incorrect protocol
1001 Antenna not detected
1002 Connect failure
1003 Device not enabled
1004 Read failure
1005 Write Failure
1006 Start Autonomous mode failure
1007 Continuous Read failure
1008 Stop Autonomous mode failure
1009 Digital Output Failure
Application Development
MV UnifiedPOS Guide 17
5.5 Device State Codes (DeviceStateEvent)
Following are the Device State Codes with the description:
Code State Description
0 Online
1 Offline
2 Error
3 Not Connected
4 Not able to Write
5 Normal
5.6 Use Cases
Following are the use cases, which are part of the MV UnifiedPOS standard:
Application Startup
Application Shutdown
Sale Process
Return Process
5.6.1 Application Startup
Following are the call sequences for Application Startup:
1. Call Open
2. Call Claim
3. Set DeviceEnabled=true
4. Register Events (DataEvent, DirectIOEvent, StatusUpdateEvent, DeviceErrorEvent and
OutputcompleteEvent)
5. Set ReadTimerInterval
Application Development
MV UnifiedPOS Guide 18
OperatorPOS
Application
Starts the Application
Call sequence between POS Application and Device Controller
Call sequence during Application Startup
Claim()
SetDeviceEnabled = true
SetDataEventEnabled = true
Open()
Device Controller/
Service Object For
RFID Scanner
UposException on
Error
UposException on
Error
UposException on Error
Register Events (StatusUpdateEvent, DataEvent, ErrorEvent, DirectIOEvent, OutputCompleteEvent)
Message To User on Successful
application Startup
Set ReadTimerInterval
UposException on Error
UposException on Error
Figure 1 : Application Startup
MV UnifiedPOS Guide 19
5.6.2 Application Shutdown
Following are the call sequences for Application Shutdown:
1. Call StopReadTags
2. Unregister Events
3. Call Release
4. Call Close
Application Development
MV UnifiedPOS Guide 20
OperatorPOS
Application
Stops the Application
Call sequence between POS Application and Device Controller
Call sequence during Application Shutdown
Release()
Message To User on Successful
application Shutdown
Device Controller/
Service Object For
RFID Scanner
UposException on Error
UposException on Error
Unregister Events (StatusUpdateEvent, DataEvent, ErrorEvent, DirectIOEvent, OutputCompleteEvent)
StopReadTags() – optional call to stop continuous reads
UposException on Error
Close()
Figure 2 : Application Shutdown
Application Development
MV UnifiedPOS Guide 21
5.6.3 Sale Process
The Sale Use Case describes the process where items are taken one at a time and scanned.
Following are the call sequences for the Sale Process:
1. Set DataEventEnabled=true
2. Call StartReadTags
3. OnDataEvent, call getTagCount
4. getCurrentTagID
5. Parse EPC and call WriteTagId with parsed EPC and new. For example: WriteTagId(parsedEPC,
newEPC, timeout, password).
6. getOutputId
7. OnOutputCompleteEvent call nextTag
8. Process all the read tags.
9. Set DataEventEnabled=true to Wait for next EPC notification, or call StopReadTags to end Sale
process
NOTE: Steps 5, 6 and 7 are optional.
Application Development
MV UnifiedPOS Guide 22
OperatorPOS
Application
Call sequence between POS Application and Device Controller
Sequence during Sale process
Device Controller/
Service Object For
RFID Scanner
Notify RFID reads via DataEvent if DataEvent Enabled is set to true
WriteTagID()
Operator starts Sales
transaction
readTag() (in case of one read call )or startReadTags() (in case of continuous) – optional call. If continuous mode is not enabled at startup, need to make this call.
getTagCount()
getCurrentTagID()
Cases where more then one tag in the field - call nextTag()
getOutputID() – optional call. If Application wants status of the WriteTagID use this call.
Operator ends Sales
transaction
Notify OutputCompleteEvent if registered
StopReadTags() – optional call. If want to turn off the RF on the device and Continuous mode is set at start of the transaction
UposException on Error
SetDataEventEnabled = true
Figure 3 : Sale Process
Application Development
MV UnifiedPOS Guide 23
5.6.4 Return Process
The return process is for one item at a time. During this process the tag is attached to the item and also
written.
Following are the call sequences for the Return Process:
1. Set DataEventEnabled=true
2. Call StartReadTags
3. OnDataEvent, call getTagCount
4. getCurrentTagID
5. Parse EPC and call WriteTagId with parsed EPC and new EPC.
For example: WriteTagId(parsedEPC, newEPC, timeout, password).
6. getOutputId
7. OnOutputCompleteEvent call nextTag
8. Process all the read tags.
9. Set DataEventEnabled=true to Wait for next EPC notification, or call StopReadTags to end Return
process.
Application Development
MV UnifiedPOS Guide 24
OperatorPOS
Application
Call sequence between POS Application and Device Controller
Sequence during Return process
Device Controller/
Service Object For
RFID Scanner
Notify RFID reads via DataEvent if DataEvent Enabled is set to true
WriteTagID()
Operator starts Return
transaction
readTag() (in case of one read call )or startReadTags() (in case of continuous) – optional call. If continuous mode is not enabled at startup, need to make this call.
getTagCount()
getCurrentTagID()
Cases where more then one tag in the field - call nextTag()
getOutputID() – optional call. If Application wants status of the WriteTagID use this call.
Operator ends Return
transaction
Notify OutputCompleteEvent if registered
StopReadTags() – optional call. If want to turn off the RF on the device and Continuous mode is set at start of the transaction
UposException on Error
SetDataEventEnabled = true
Figure 4 : Return Process
Application Development
MV UnifiedPOS Guide 25
5.7 Custom Use Cases (optional)
Following are custom functionalities, implemented as plug-ins and are not part of the MV UnifiedPOS:
Sale with Detacher
Return with Detacher
5.7.1 Sale with Detacher
Following are the call sequences for Sale with Detacher:
1. Set DataEventEnabled=true
2. Call StartReadTags
3. Parse EPC, OnDirectIOEvent, and call WriteTagId with parsed EPC and new EPC. For example,
WriteTagId(parsedEPC, newEPC, timeout, password). Refer to EPC Read Notification for
information.
4. Get OutputId
5. Call DirectIO(1,4,‛‛), OnOutputCompleteEvent for activating Detacher. OnDeviceErrorEvent an
error will be displayed in case of Write failure. (NOTE: If the 3rd parameter is set to timeout value,
then it is not necessary to make the next call). Refer to Controlling Digital I/O for information.
6. Call DirectIO(0,4,‛‛) to deactivate Detacher.
7. Call DirectIO(1,3,‛‛) to switch on the LED (NOTE: If the 3rd parameter is set to timeout value, then it
is not required to make the next call).
8. Call DirectIO(0,3,‛‛) to switch off the LED.
9. Set DataEventEnabled=true to wait for the next EPC, or call StopReadTags to end the Sale
process.
Application Development
MV UnifiedPOS Guide 26
OperatorPOS
Application
Smart
Detacher
Call sequence between POS Application and Device Controller
Sequence during Sale process
Device Controller/
Service Object For
RFID Scanner
Notify RFID read status via DataEvent if DataEvent Enabled is set to true
RFID tag reads
Write New TagID
WriteTagID()
User gets notified the result of the operation and proceeds to next item
Operator places RFID tagged Item on Smart Detacher
Operator starts Sales
transaction
startReadTags()
Notify RFID tags via DirectIOEvent handler
Set DataEventEnabled to true for Next Item
getOutputID() – optional call. If Application wants status of the WriteTagID use this call.
Operator ends Sales
transaction
Notify OutputCompleteEvent if registered
Create OutputCompleteEvent
StopReadTags()
UposException on ErrorReader puts off RF
DirectIO() to specify about Detacher’s and LED operation
Set DataEventEnabled to true
Send I/O (light and magnetic devices) signal to Detacher
Figure 5 : Sale with Detacher
Application Development
MV UnifiedPOS Guide 27
5.7.2 Return with Detacher
Following are the call sequences for Return with Detacher:
1. Call StartReadTags
2. Set DataEventEnabled=true
3. Parse EPC OnDirectIOEvent and call WriteTagId with parsed EPC and new EPC (product code
nullified). For example, WriteTagId(parsedEPC, newEPC, timeout, password). Refer to EPC Read
Notification for information.
4. Get OutputId
5. Call DirectIO(1,3,‛‛) OnOutputCompleteEvent to switch on the LED signal. OnDeviceErrorEvent
an error will be displayed in case of Write failure. (NOTE: If the 3rd parameter is set to timeout value,
then it is not required to make the next call). Refer to Controlling Digital I/O for information.
6. Call DirectIO(0,3,‛‛) to switch off the LED.
7. Set DataEventEnabled=true, to Wait for next EPC, or call StopReadTags to end Return process.
Application Development
MV UnifiedPOS Guide 28
OperatorPOS
Application
Smart
Detacher
Call sequence between POS Application and Device Controller
Sequence during Return process
Device Controller/
Service Object For
RFID Scanner
Operator attaches the new RFID tag to the item which is returned
Operator places nullified (Inditex req) RFID tag on Smart Detacher after barcode scan
Operator starts Return
transaction
Operator ends return
transactionStopReadTags()
UposException on Error Reader puts off RF
Notify RFID read status via DataEvent if DataEvent Enabled is set to true
RFID tag reads
Write New TagID
WriteTagID()
startReadTags()
Notify RFID tags via DirectIOEvent handler
Set DataEventEnabled to true for Next Item
getOutputID() – optional call. If Application wants status of the WriteTagID use this call.
Notify OutputCompleteEvent if registered
DirectIO() to specify about Detacher’s and LED operation
Send I/O (light and magnetic devices) signal to Detacher
Set DataEventEnabled to true
Figure 6 : Return with Detacher
MV UnifiedPOS Guide 29
Appendix
A.1 Controlling Digital I/O
The Digital I/O functionality of the Reader and the Detacher is implemented as a plug-in.
The Digital I/O API Syntax is as follows:
Microsoft.PointOfService.DirectIOData DirectIO(int command, int data, object
obj)
Arguments Possible Values
command 1 - ON signal to Output device
0 - OFF signal to Output device
data (digital I/O output connections) 1 or 2 or 3 or 4 in case of Sirit device
obj (time in milliseconds to maintain the state) If set to null or empty string, the state will not
change until the next state is passed.
Int value, for example, 1000 implies to stay in
state for 1000ms.
Comma separated string can be used for
flickering \ flashing. Format for flicker:
‚totalDuration,flickerInterval‛. Flicker interval 0
means, no flicker.
Following is an example for I/O calls:
Example Description
DirectIO(1,1,null) Output device connected to port 1 will turn On.
DirectIO(1,1,1000) Output device connected to port 1 will turn On
and after 1000ms (1 second), it will turn off.
DirectIO(1,1,‛5000,500‛) Output device connected to port 1 will flicker
for 5000ms (5 seconds) at 500ms (0.5 second
interval).
Following is an example in case of using a detacher:
DirectIO(1,4,5000) – The Detacher connected to port 4 will be On and after 5000ms it will turn Off. The
Detacher will detach while the device is On.
Appendix
MV UnifiedPOS Guide 30
A.2 EPC Read Notification
Custom EPC read notification is implemented as a plug-in:
EPC read event will be notified through DirectIOEvent as Microsoft.PointOfService.BaseServiceObjects.RFIDTag[].
By default Read EPCs can be accessed by CurrentTagID with the help of FirstTag, NextTag,
PreviousTag APIs and TagCount property.
Set DataEventEnabled to true in the application to get the next EPC reads. None of the reads will
be notified to either the application or EventQueue. Once the DataEvent is sent to the application,
it resets to false.
Top Related