POS Device utilization exaples and questions
- Hi All,
I have few doubts regarding POS Device usage with OPOS.
Currantly I am using List of POS Devices are
a. Printer ----EPSON Printer (TM-T88IV) Model (not usb device)
b. LineDisplay/PoleDisplay -----POSIFLEX (PD-300) (not usb, i.e COM Port)
my questions are
1. Do I need to install the software for Printer and Line Diplay to use.
2. Where wolud I get the service objects for these devices. (from vendor of the devices, which we purchaged ?)
3. How would I Create a New Service Object for Printer/Line Dispaly/any other POS Device ? please post Sample code in C#.
Thanks in advance.
Answers
- The idea of the UPOS specification is to write one application that supports multiple devices. At least that is the idea. The Service Object / OPOS driver acts like a middle layer seperating the application from the hardware. The idea behind the specification is if the hardware changes, all one has to do is replace the service object / OPOS driver (and possible configuration setup) and the application can access the new device.
You can get samples as part of my book: http://www.sjjmicro.com/WEPOS.html
Other information can be found here: http://www.seanliming.com/WEPOS.html
-Sean
www.sjjmicro.com / www.seanliming.com, Book Author - XP Embedded Advanced, XPe Supplemental Toolkit, WEPOS / POS for .NET Step-by-Step- Marked As Answer byYortAnswererFriday, October 30, 2009 3:32 AM
- Hi,
1. Yes and no... with any OPOS/Pos .Net device you need to install the service objects. With the Epson printers you also need to install their SetupPOS program so you can configure the service object so it will run correctly.
2. Yes, service objects are typically provided by the manufacturers of a device, since service objects are the bits that contain the device specific code and the manufacturers know their own devices best and therefore best suited to building the service objects. The Epson service objects and SetupPOS application can be obtained from www.epsonexpert.com under the Application Development -> OPOS section. You will need to register to download those. For other manufacturers, the service objects should either be provided with the hardware, available for download from their website, or available if you contact their support departments. Some pre-built POS systems such as the HPR3000 and 5000 come with OPOS service objects pre-installed.
3. This is not an easy question to answer. First of all, it's highly unlikely you will be able to build a service object for a printer yourself in any sort of economic way... Pos Printer devices are one of the more complex devices to write service objects for, and there are a lot of features to support. You also need a good low-level knowledge of the specific device you are writing service objects for. In general, my advice for printers is don't write your own service object unless you are actually producing your own printer. Line Display's may be somewhat simpler, depending on what features you support, but again they're not a particularly simple device. There are samples available from Microsoft for building a service object for a Barcode Scanner, which is a fairly simple device, and I think Sean Liming's website (www.seanliming.com) has a sample cash drawer service object... cash drawers are one of the simplest device classes, especially if you don't support status notification, and so it's pretty easy to write a service object for them.- Marked As Answer byYortAnswererFriday, October 30, 2009 3:32 AM
Hi Yort,
Thanks for your reply. In addition to that can you please clarify these questions also?
As you answered my previous questions, still need clarifications
1. OPOS/Pos .Net device need to install the service objects[ if this is the case then what is the meaning of OPOS Standards]
2. If suppose my customer may want to use any other type of POS Devices (not Epson Printer, not vendor specific) with my current POS application, then how would the POS Printer interact with my application. (I provided Hardware configurations screen to my end user in such a way that end user can configure any type POS device with Ports/ USB).
3. Can you please post sample code (C#/VB.NET) to get the hardware id/Product Id for a POS Device which is connected to a machine through (COM/Parallel Ports or USB).
Thanks in Advance.- Marked As Answer byBaditala Friday, October 30, 2009 9:07 AM
- Hi,
Sean's answer is correct. The answer to your question #1 is the same as answer to #2... the point of the UPOS standard (which OPOS and Pos .Net are implementations of) is to insulate you from vendor specific devices... in theory, if your application talks to OPOS or Pos .Net then it will work with any device that has a service object, all your customer needs to do is install and configure the service object, no changes are needed to your application.
This works better in theory than in practice, but it does work mostly in practical situations too so long as you are careful, follow all the rules and do some testing yourself.
I don't have any code retrieve hardware Id's from devices, and it may well be different for each type of device. You can retrieve some of that info from service objects at runtime using Pos .Net, just use the PosExplorer object to get the list of installed devices and then check the properties of each DeviceInfo object returned. That's as much info as I know how to get.
If you get the Pos .Net SDK and the Epson samples and spend some time reading/looking at them, this will probably make more sense to you.- Marked As Answer byBaditala Friday, October 30, 2009 9:07 AM
- Take a look at Sean's and Yort's reply.1. Unified POS is a layered architecture. The IHV's that support this standard should provide either an OPOS (based older OLE technology) or POS for .NET Service Object (based on .NET technology). You need to install the service objects for the devices that you will interface with. Also, for OPOS based devices, you need to install one additional layer, called the Control Object. Most people use the freely available "Common Control Object" (http://monroecs.com/oposccos.htm) for this and many IHVs will install this for you. POS for .NET supports both native .NET Service Objects as well as legacy OPOS service objects for many different device categories.2. The idea behind UPOS is device independence. In general, an application that is UPOS compliant will, will work with any compatible device.3. This is not required for applications that are based upon UPOS. If you are developing an app based upon POS for .NET the PosExplorer() class will give you the info you need. If you are developing an unmanaged app then you will need to look into the registry for OPOS device.
- Marked As Answer bySylvester-MSFTMSFT, ModeratorFriday, October 30, 2009 3:24 AM
All Replies
- Hi,
1. Yes and no... with any OPOS/Pos .Net device you need to install the service objects. With the Epson printers you also need to install their SetupPOS program so you can configure the service object so it will run correctly.
2. Yes, service objects are typically provided by the manufacturers of a device, since service objects are the bits that contain the device specific code and the manufacturers know their own devices best and therefore best suited to building the service objects. The Epson service objects and SetupPOS application can be obtained from www.epsonexpert.com under the Application Development -> OPOS section. You will need to register to download those. For other manufacturers, the service objects should either be provided with the hardware, available for download from their website, or available if you contact their support departments. Some pre-built POS systems such as the HPR3000 and 5000 come with OPOS service objects pre-installed.
3. This is not an easy question to answer. First of all, it's highly unlikely you will be able to build a service object for a printer yourself in any sort of economic way... Pos Printer devices are one of the more complex devices to write service objects for, and there are a lot of features to support. You also need a good low-level knowledge of the specific device you are writing service objects for. In general, my advice for printers is don't write your own service object unless you are actually producing your own printer. Line Display's may be somewhat simpler, depending on what features you support, but again they're not a particularly simple device. There are samples available from Microsoft for building a service object for a Barcode Scanner, which is a fairly simple device, and I think Sean Liming's website (www.seanliming.com) has a sample cash drawer service object... cash drawers are one of the simplest device classes, especially if you don't support status notification, and so it's pretty easy to write a service object for them.- Marked As Answer byYortAnswererFriday, October 30, 2009 3:32 AM
Hi Yort,
Thanks for your reply. In addition to that can you please clarify these questions also?
As you answered my previous questions, still need clarifications
1. OPOS/Pos .Net device need to install the service objects[ if this is the case then what is the meaning of OPOS Standards]
2. If suppose my customer may want to use any other type of POS Devices (not Epson Printer, not vendor specific) with my current POS application, then how would the POS Printer interact with my application. (I provided Hardware configurations screen to my end user in such a way that end user can configure any type POS device with Ports/ USB).
3. Can you please post sample code (C#/VB.NET) to get the hardware id/Product Id for a POS Device which is connected to a machine through (COM/Parallel Ports or USB).
Thanks in Advance.- Marked As Answer byBaditala Friday, October 30, 2009 9:07 AM
- The idea of the UPOS specification is to write one application that supports multiple devices. At least that is the idea. The Service Object / OPOS driver acts like a middle layer seperating the application from the hardware. The idea behind the specification is if the hardware changes, all one has to do is replace the service object / OPOS driver (and possible configuration setup) and the application can access the new device.
You can get samples as part of my book: http://www.sjjmicro.com/WEPOS.html
Other information can be found here: http://www.seanliming.com/WEPOS.html
-Sean
www.sjjmicro.com / www.seanliming.com, Book Author - XP Embedded Advanced, XPe Supplemental Toolkit, WEPOS / POS for .NET Step-by-Step- Marked As Answer byYortAnswererFriday, October 30, 2009 3:32 AM
- Hi,
Sean's answer is correct. The answer to your question #1 is the same as answer to #2... the point of the UPOS standard (which OPOS and Pos .Net are implementations of) is to insulate you from vendor specific devices... in theory, if your application talks to OPOS or Pos .Net then it will work with any device that has a service object, all your customer needs to do is install and configure the service object, no changes are needed to your application.
This works better in theory than in practice, but it does work mostly in practical situations too so long as you are careful, follow all the rules and do some testing yourself.
I don't have any code retrieve hardware Id's from devices, and it may well be different for each type of device. You can retrieve some of that info from service objects at runtime using Pos .Net, just use the PosExplorer object to get the list of installed devices and then check the properties of each DeviceInfo object returned. That's as much info as I know how to get.
If you get the Pos .Net SDK and the Epson samples and spend some time reading/looking at them, this will probably make more sense to you.- Marked As Answer byBaditala Friday, October 30, 2009 9:07 AM
- Take a look at Sean's and Yort's reply.1. Unified POS is a layered architecture. The IHV's that support this standard should provide either an OPOS (based older OLE technology) or POS for .NET Service Object (based on .NET technology). You need to install the service objects for the devices that you will interface with. Also, for OPOS based devices, you need to install one additional layer, called the Control Object. Most people use the freely available "Common Control Object" (http://monroecs.com/oposccos.htm) for this and many IHVs will install this for you. POS for .NET supports both native .NET Service Objects as well as legacy OPOS service objects for many different device categories.2. The idea behind UPOS is device independence. In general, an application that is UPOS compliant will, will work with any compatible device.3. This is not required for applications that are based upon UPOS. If you are developing an app based upon POS for .NET the PosExplorer() class will give you the info you need. If you are developing an unmanaged app then you will need to look into the registry for OPOS device.
- Marked As Answer bySylvester-MSFTMSFT, ModeratorFriday, October 30, 2009 3:24 AM


