Introduction to Microsoft Windows
Embedded for Point of Service (WEPOS) and
Microsoft Point of Service for .NET
Unified Point of Service (UPOS) and Point of
Service (POS) for .NET
POS for .NET Applications
Retail and POS markets widely use Microsoft
operating systems
WEPOS offers a standard platform for the
retail industry, and much more
POS 1.11 SDK on Microsoft.com Downloads
Unified Point Of Service is
Abstract hardware and
software
one application supports
many POS devices of the
same type
No recompile of applications
if hardware fails
Combines OPOS and
JavaPOS specifications
Application
UnifiedPOS
Control Object
UnfiedPOS
Service Object
UnifiedPOS Device
POS Device
UPOS
POS for .NET is a .NET implementation of
UPOS
Plug and Play is at the heart of POS for .NET
Legacy support for OPOS
POS for .NET SDK
Develop POS Applications and service objects
in .NET
Run time for Microsoft Windows XP
Professional, WEPOS, Windows Vista Business,
and Windows Vista Ultimate, 32bit and 64bit
POS for .NET 1.11 supports UPOS v1.11
PosExplorer
Application
Application
InterOp
Service Object
Device
Driver
POS Device
POS for .NET
ActiveX
Control Object
OPOS Driver
Service Object
POS Device
OPOS
PosExplorer enumerates POS devices
Service Object DLLs with the paths listed in the
following registry key:
HKLM\SOFTWARE\POSfor.NET\ControlAssemblies
Configuration XML files for Service Objects
listed in the following registry key:
HKLM\SOFTWARE\POSfor.NET\ControlConfigs
OPOS drivers in the following registry key:
HKLM\SOFTWARE\OLEforRetail\ServiceOPOS
(\<type>\<device>)
Finally, there is a set sequence to
enable/perform action/disable the device
1.
2.
3.
4.
5.
6.
OPEN – Open access to the SO
CLAIM – Get exclusive access to the device
DeviceEnable – Enable the device
Perform device action
DeviceDisable – Disable the device
RELEASE – Release exclusive access to the
device
7. CLOSE – Close access to the device
Each device needs to be handled differently
USB Devices – Implement an
DeviceAddedEvent and DeviceRemovedEvent
Printer and cash drawer sharing the same COM
port – disable/enable to alternate between the
two devices
Poll Display – Initialize on application startup
and never shut down
Scanner – Re-enable device after a DataEvent
One form in a multi-form application controls
the POS devices
Keyboard wedges – Many Bar Code Scanners
and MSR act as keyboard wedges
Devices can be added and removed without
changing the application
No Service Object available for keyboard wedges
Focus must be on the control (Text Box) to
scanned or swipe in data
A POS for .NET’s key feature is data event
handling
Applications
Biometrics
FiscalPrinter
PosPower
Bill Acceptor
HardTotals
PosPrinter
Bill Dispenser
Image Scanner
RemoteOrderDisplay
BumpBar
Keylock
Scale
CashChanger
LineDisplay
Scanner
CashDrawer
Micr
SignatureCapture
Cat
MotionSensor
SmartCardRW
CheckScanner
Msr
ToneIndicator
CoinAcceptor
PinPad
CoinDispenser
PointCardRW
Electronic Journal
PosKeyboard
Typically written by
device manufacturers
and shipped with the
device
May be installed by Inf
or stand alone installer
(drag-and-drop)
Derive from either
Interface, Basic, or
Base class
Scanner
Scanner Service
Object
Device Driver
Scanner Device
POS for .NET SDK comes with two service
objects with source code
Sample Service Objects
USB bar code, Scanners and MSRs
Microsoft.PointOfService.ExampleServiceObjects.dll –.
Posdm.exe command-line tool
Exposes WMI via command line
Manual setup required to address Firewall
WMI Classes (root\MicrosoftPointOfService)
ServiceObject – Information about installed SOs
POSDevice – Information about installed devices
LogicalDevice – Alias for POSDevice
DeviceProperty – name/value pair set on POSDevice
WMI Server Extensions for .NET applications
MMC snap-in coming
All tools support remote management
Performance Monitor Counters
POSDM.EXE
SOManager.exe
Performance Monitor
(ensure POS Perf Counters Service Started)
Check for Application and Service Object
compatibility
POS for .NET 1.11 loads .NET Framework 2.0
POS for .NET 1.1x and older loads .NET
Framework 1.1
POS for .NET version in the registry:
HKLM/Software/POSfor.NET/Setup/ProductVers
ion
Check for Compatibility
Check the versions of SO and applications
POS for .NET
POS for .NET 1.11
(synchronized with
UPOS v1.11
POS for .NET 1.1
(synchronized with
UPOS v1.9)
POS for .NET 1.0
(synchronized with
UPOS v1.8)
Application
Service Object
Compatible
UPOS v1.11
UPOS v1.11
Yes
UPOS v1.11
UPOS v1.8 or v1.9
No
UPOS v1.8 or v1.9
UPOS 1.11
Workaround
required
UPOS v1.8
UPOS v1.8
Yes
UPOS v1.8
UPOS v1.9
Yes
UPOS v1.9
UPOS v1.8
Yes
UPOS v1.9
UPOS v1.9
Yes
UPOS v1.8
UPOS v1.8
Yes
UPOS v1.8
UPOS v1.9
No
UPOS v1.9
UPOS v1.8
No
UPOS v1.9
UPOS v1.9
No
Older POS for .NET applications running
under POS for .NET 1.11 will fail to load
properly
Application will attempt to load .NET
Framework 1.1
Is unable to load POS for .NET 1.11 because
POS for .NET 1.11 needs .NET Framework 2.0
There are a few solutions…
Solutions for older POS for .NET applictions:
1. Uninstall the .NET Framework 1.1 from the machine.
1.
An application built against .NET Framework 1.1 will load the .NET
Framework 2.0 if the .NET Framework 1.1 is not installed.
2. Add a Config file that instructs the application to load the
.NET Framework 2.0 instead of the .NET Framework 1.1
Foo.exe – config file will be Foo.exe.config
Foo.exe.config must be in the same directory as Foo.exe
Foo.exe.config file would look like the following:
<?xml version ="1.0"?><configuration><startup><supportedRuntime version="v2.0.50727"
/></startup></configuration>
3. Recompile the application against the .NET Framework 2.0
POS for .NET is .NET implementation of UPOS
Write applications in Visual C# or Visual Basic .NET
Architect the application to handle multiple devices
Service Objects and managing Service Objects
are at the center of POS for .NET
Visit the Windows Embedded for Point of Service Web page
http://www.microsoft.com/windows/embedded/wepos
Evaluate Windows Embedded for Point of Service 120-day
trial version
http:// www.windowsembeddedkit.com/
Visit WEPOS support page at XPe Center @ seanliming.com
http:// www.seanliming.com
Sign up for the Embedded DevWire
http://msdn.microsoft.com/embedded/community/community/devwire/default.aspx
Engage with Windows Embedded Partners
http://www.mswep.com