Quantcast
Channel: Windows Embedded POSReady and POS for .NET Blog
Viewing all 35 articles
Browse latest View live

Problems with Motorola/Symbol Scanner? Here are a few things to check.

$
0
0

If you are trying to use a Motorola/Symbol scanner with POS for .NET, and you encounter issues, here are a few things to check:

1.       Make sure that the scanner is configured properly.  For scanners such as the 2208 or LS1900 series, it should be configured as “IBM HAND-HELD USB”.  You can configure the scanner by using the configuration barcodes provided with the scanner.  First scan “SET DEFAULTS” followed by “IBM HAND-HELD USB.”  In this configuration, the scanner will function as a USB Human Input Device (HID) instead of as emulating a keyboard.

2.       If using the scanner with the legacy OPOS service objects provided by Motorola, install the service objects and make sure you select the correct device in your application (such as STI_USBSCANNER).  See Step 3.

3.        If using the scanner with the legacy OPOS service object provided by Motorola, always install the Common Control Objects afterwards.  It turns out that Motorola will install a custom control object over any existing control objects already installed, yet the current version of the Motorola control object (STI OPSO 1.5) which is included in the latest installer for the service object (version 3.24) does not appear to support late binding.   Thus, you should always install a control object that does support late binding (such as the CCO) after installing the Motorola service object.  Hopefully, this issue will be corrected soon. WARNING:  some of the scanners with a manufacture date between April and May of 2008 may have compatibly issues with HID input.  If your scanner was manufactured between these dates, there is a firmware update available from Motorola that should correct this issue.

4.       If you want to test the scanner with Plug-n-Play  in a non-production environment, you may use the example service object included in the SDK by adding the following XML to your control configurations folder:

<PointOfServiceConfig Version="1.0">

        <ServiceObject Type="Scanner" Name="Example Scanner">

                <HardwareId From="HID\Vid_05e0&amp;Pid_1300" To="HID\Vid_05e0&amp;Pid_1300" />

        </ServiceObject>

</PointOfServiceConfig>

 

Currently, native .NET service objects are not available from the manufacture for this scanner, thus features such as plug-n-play are not supported at this time.  While it is possible to configure the scanners to work with the example service object in order to achieve plug-n-play capabilities, this is not recommended in a production environment.  Other scanners are available that provide native service objects and Plug-n-Play support.

 


Useful Resources for Developers

$
0
0

POS for .NET v1.12 Updated with Improved Plug and Play Support

$
0
0

POS for .NET v1.12 Updated with Improved Plug and Play Support

Among other new features, the POS for .NET v1.12 update provides improved Plug and Play support for service object developers. The previous Plug and Play model only worked with devices that were recognized by the Windows® Plug and Play subsystem. Several device types do not fall in this category, such as some Smart Card, Biometrics, and Bluetooth devices.

 

In order to provide Plug and Play functionality to these devices, a new means of support was added to POS for .NET 1.12.  This support includes exposing two new interfaces to service object developers, IDeviceEnumeration and IDeviceEnumerationPnP. 

 

See thte attached docment for more details.

 

-- Sylvester

Supported Device Categories

$
0
0

POS for .NET v1.12 support all 36 device categories included in the Unified POS specification as of version 1.12.    IHV may develop a native .NET service object for any of the following device categories:

·         Belt

·         Bill Acceptor

·         Bill Dispenser

·         Biometrics

·         Bump Bar

·         Cash Changer

·         Cash Drawer*

·         CAT

·         Check Scanner*

·         Coin Acceptor

·         Coin Dispenser

·         Electronic Journal

·         Electronic Value RW

·         Fiscal Printer

·         Gate

·         Hard Totals

·         Image Scanner

·         Item Dispenser

·         Keylock

·         Lights

·         Line Display*

·         MICR

·         Motion Sensor

·         MSR*

·         PIN Pad*

·         Point Card RW

·         POS Keyboard*

·         POS Printer*

·         Remote Order Display

·         RFID Scanner*

·         Scale

·         Barcode Scanner*

·         Signature Capture

·         Smart Card RW

·         Tone Indicator

In addition, base classes are provided which greatly simplify the development of .NET service objects for the nine (9) categories marked with the asterisk (*) above. 

POS for .NET includes support for legacy OPOS service objects for the following device categories:

·         Cash Drawer

·         CAT

·         Check Scanner

·         Coin Dispenser

·         Keylock

·         Line Display

·         MICR

·         MSR

·         PIN Pad

·         POS Keyboard

·         POS Power

·         POS Printer

·         Scale

·         Barcode Scanner

·         Signature Capture

·         Tone Indicator

Finally, the SDK provides device simulators and sample code that can be used during development and testing for the following device categories:

·         Cash Drawer

·         Check Scanner

·         Keylock

·         Line Display

·         MSR

·         PIN Pad

·         POS Keyboard

·         POS Printer

·         Barcode Scanner

  - Sylvester

Managment tools may require WMI Namespace to be recreated after SP3 update

$
0
0

If you use the management tools that are dependent upon WMI (such as posdm.exe), the WMI namespaces may need to be recreated after significant OS updates (such as applying SP3).  A temporary fix, can be done by choosing the repair option from the installer; however, the recommended fix, in order to avoid future reoccurrences, is to use mofcomp as described in the attached document.

   - Sylvester

Microsoft POS for .NET will be demonstrated in the ARTS Pavilion at NRF

$
0
0

Microsoft will demonstrate how you can create an optimum checkout experience by mixing and matching devices for convenience and speed using UnifiedPOS based POS for .Net at the ARTS Pavilion at NRF.   Come join us at the ARTS Pavilion booth where you can see demonstrations of POS for .NET with the latest devices and device capabilities.  We will show how to use POS for .NET to interface with devices such as Biometric reader, secure MSR, RFID.  In addition, the demonstration will be performed on POSReady 2009, the newest operating system supported by POS for .NET.  Stop by the booth to meet with developers and to learn more about POS for .NET.

 

   - Sylvester

POS for .NET Forum

$
0
0

Microsoft is proud to announce the availability of the POS for .NET forum.  This forum is intended to provide an opportunity for .NET developers to share their knowledge and experiences as they leverage the power of POS for .NET.  In order to help foster greater awareness by the .NET developer community of the options for interfacing with POS peripheral devices, this forum has been created under the .NET Developer Forums.  Developers and end-users who previously used the Microsoft.public.windows.embedded.pointofservice newsgroup are encouraged to check-out the new forum!

 

The forum may be accessed via a web browser at: http://social.msdn.microsoft.com/Forums/en-US/posfordotnet/

 

 

   - Sylvester

Setting the BinaryConversions property for Legacy OPOS service objects

$
0
0

Microsoft’s POS for .NET supports both native .NET service objects and legacy OPOS service objects which are based upon OLE technology.  Normally, POS for .NET interfaces with the legacy devices without any issues and this is done without any interaction or knowledge required by the application.  However, there are some rare instances where an application may need to know if the service object is based upon OPOS or .NET.  For example, in the rare cases where the OPOS service object requires that the BinaryConversion property be set to a value other than the default the application would need to know the type of service object that it is working with.

 

Because the BinaryConversion property is specific only to OPOS devices within the standard, it is not exposed by .NET service objects.  However, one can still access this property when working with legacy OPOS service objects when this is required by the service object.  This can be done by casting the service object returned by the POSExplorer to: ILegacyControlObject.  Using the cast type, one can then get and set the BinaryConversion property and other OPOS specific properties.

The default value for the BinaryConversion property is None.  However some devices, such as the Ingenico Signature Capture (SigCap) device, may require that the value be set to Nibble or Decimal.  In such cases, the application would need to cast the device returned by the POSExplorer to ILegacyControlObject and then set the BinaryConversion property to the desired value (such as Nibble).

 

To learn more about the BinaryConversion property or any other variations of the standard that are specific to OPOS based service object, see page A-24 of Appendix A of the UnifiedPOS standard specification which is freely available at:  http://www.nrf-arts.org/UnifiedPOS/default.htm.  The help documentation included with the POS for .NET SDK also has some helpful information.


Interfacing with Biometric Devices from POS applications

$
0
0

Support for Biometric devices (such as fingerprint readers) was added to the Unified POS specification and incorporated into Microsoft’s POS for .NET in version 1.10.  This device category allows applications to interface with such devices and is helpful in capturing and verifying biometric data (such as a finger print).  This blog will attempt to describe one possible way to interface with this device using POS for .NET.  As always, the developer should first carefully read and understand the Unified POS specification for this device category before attempting to interface with the device (See chapter 5 of Unified POS specification v1.13).  Also, before you interface with a physical device, you must install a .NET Service Object for the device (contact the hardware vendor to get the .NET service object).  Note that legacy OPOS based service objects are not supported for this device category, one must have a .NET Service Object for this device.

 

First, an application will want to know what biometric devices are available.  This can be done using the PosExplorer class.  For example, to get an ArrayList of all Biometric devices, one would do the following:

 

      // Create an instance of an explorer synchronizes events to the main form's thread.

      explorer = newPosExplorer(this);

 

      // Create a list of all available biometric devices and bind them to the list box

      biometricList = newArrayList(explorer.GetDevices(DeviceType.Biometrics));

 

Next, an application may want to register for the DeviceAddedEvent and the DeviceRemovedEvent.  Doing so will allow the application to respond to plug-n-play events for the device.  Once the application has a device, it will need to do the normal open, claim, and enable as well as subscribe to the required events.  This can be done as follows:

 

      // Create an instance of the device, open and claim it.

      activeBiometricDevice = (Biometrics)explorer.CreateInstance(selectedDevice);

      activeBiometricDevice.Open();

      activeBiometricDevice.Claim(1000);

 

      // Enable the device, subscribe to date events,  and enable data events

      activeBiometricDevice.DeviceEnabled = true;

      activeBiometricDevice.DataEvent += newDataEventHandler(activeDevice_DataEvent);

      activeBiometricDevice.ErrorEvent += newDeviceErrorEventHandler(activeBiometric_ErrorEvent);

      activeBiometricDevice.DataEventEnabled = true;

      activeBiometricDevice.StatusUpdateEvent += newStatusUpdateEventHandler(BiometricsStatusUpdateEvent);

 

The above snippet will open, claim, and enable the device.  It will then subscribe to desired events and will enable data events.  Once this is done one can use the device as desired.   Typically, one will use the beginEnrollCapture() method in order to capture biometric data for a given user.  This method customarily results in a series of biometric data captures aggregated together returned in the final form of a BIR (see “beginEnrollCapture” method in the UPOS specification for more detail).   Status update events may be provided to instruct the user what actions are required during this process.  Status information may include indications such as:

 

·         StatusSensorReady – typically indicates that the device is ready for the user to swipe their finger or provide other biometric data

·         StatusSensorComplete – indicates that the biometric data has been captured

·         StatusMoveSlower – Indicates that the user needs to move slower

·         Etc.

 

After issuing a beginEnrollCapture method one will wish to save the data in the BiometricsInformationRecord property that is available after a data event.  This data is associated with the user providing the biometric input and will be used to identify the person when attempting to verify the user.   In order to identify a person, one needs to issue a BeginVerifyCapture command to the device.  Again Status update events may be provided as well as a data event (if desired, one can  end the operation by issuing an EndCapture command).  In response to the data event, the application can then pass a list of BiometricsInformationRecord data to the service object via the IdentifyMatch() method to determine if the biometric data provided by the user matches any contained within the list.  This can be done as follows:

 

List<BiometricsInformationRecord> birs = /* Your list of BIR data */

 

int[] order =

activeBiometricDevice.IdentifyMatch(50, 0, true,

activeBiometricDevice.BiometricsInformationRecord /* current biometric data to match */,

birs /* list of biometric data to check for match*/ );

 

Where order[] is a list that identifies all users where the biometric data provided matches within the criteria range specified.   Well, that is pretty much all that is needed in order to get biometric data from a user (in the form of a BIR) and then to later verify that the biometric data matches a previously provided BIR.

Update for POS for .NET 1.12 is Now Available

$
0
0

A new update for Microsoft® POS for .NET 1.12 Runtime and SDK is now available on the ECE site. This update includes:

  • 980087 -  This update for Microsoft® POS for .NET 1.12 corrects situations where POS for .NET fails claims for a device that is already claimed by another account via an Argument exception instead of a POS exception

If you have questions on accessing the ECE, please email MS Mobile & Embedded Communications Feedback & Support, ECE@microsoft.com.

Thanks,

- Lynda

Graphical Implementation of POSDM.EXE

$
0
0

Sean Liming (Managing Director of SJJ Embedded Micro Solutions and a Microsoft MVP) has recently released a utility that helps simplify the management of service objects within POS for .NET applications. The Service Object Manager (SOM) utility is a graphical implementation of the POSDM command line utility provided with POS for .NET. It performs the same command set functionality as POSDM.EXE, allowing you to setup and manage service objects on systems locally or remotely.

You can download this tool for free on his website at: http://www.seanliming.com/WEPOS.html.

Thanks Sean!

- Shayna

New Version of POS for .NET Announced

$
0
0

At the National Retail Federation show in New York City on Jan 15th we announced plans to release our next version of POS for .NET version 1.11 later this quarter, with support for new device classes including Biometrics, Electronic Journal, Bill Acceptor, Image Scanner and more. POS for .NET supports the Unified POS v1.11 specification ratified at the NRF show, including standard changes for ClearInput, SmartCard and Printer base classes. POS for .NET is a class library which provides .NET applications with a simple and consistent interface for communicating with Point of Service (POS) peripheral devices, and is used by embedded vendors to write software components, or service objects, for their devices, and enables Plug and Play functionality for Windows Embedded for Point of Service customers.

- David

POS for .NET 1.11 Releases!!!

$
0
0

At the National Retail Federation show in New York City on Jan 15th we announced plans to release our next version of POS for .NET, and we're happy to announce that it's available today!!

http://www.microsoft.com/downloads/details.aspx?FamilyID=8F06B072-06C1-4A4A-A128-83B8A651A25A&displaylang=en

POS for .NET version 1.11 is Microsoft's implementation of the industry's Unified Point of Service (UPOS) version 1.11 standards, for the .NET platform.   UPOS is the standards body that specifies the behavior of retail peripherals.  POS for .NET version 1.11 is backward-compatible with existing implementations of UPOS on the Microsoft Windows platform, named OLE for Point of Service, or OPOS.  

So what's new and exciting about version 1.11?

  • Support for version 1.11 of the UPOS specification
  • Added device classes for Biometrics, Electronic Journal, Bill Acceptor, Bill Dispenser, Coin Acceptor, and Image Scanner
  • Supports the Unified POS v1.11 specification standard changes for ClearInput, SmartCard and Printer base classes
  • Supported on Windows XP Pro, WEPOS, Vista Business, and Vista Enterprise
  • Based on the .NET Framework version 2.0
  • Microsoft Update support
  • SDK User Reference Guide

The development team worked very hard on this release and we are excited to make it available to our customers. Please let us know what you think via the comments feature!

This announcement is timely, as we are seeing significant industry support from our Retail OEM, IHV, and ISV partners.  To date, more than 60 partners have developed Windows Embedded for Point of Service and/or POS for .NET compatible solutions.   Additionally, we currently have over 50 partners working on new Windows Embedded for Point of Service / POS for .NET compatible solutions, giving customers a breadth of point of service solutions to choose from.  This includes solutions from POS suppliers, peripheral suppliers and POS application vendors including 360Commerce, BSQUARE, Citizen Systems, Dell, Epicor/CRS, HP, IBM, MICROS, NCR, Sygate, Symbol, M-Systems, Retalix, Wincor-Nixdorf, Fujitsu Transaction Solutions, NEC, Seiko Epson, Star Micronics, Toshiba.

More recently, at the National Retail Federation Tradeshow in New York, Microsoft partners announced their support for the next version of POS for .NET and Windows Embedded for Point of Service.  These partners included:

  • AuthenTec - offering a biometric solution based on Microsoft's next release of Point of Service for .NET version 1.11 
  • Hand Held Products - offering a Handheld scanner solution based on Microsoft's next release of Point of Service for .NET version 1.11
  • Protech Systems -  offering a Windows Embedded for Point of Service-based POS hardware solution
  • Posiflex - offering a Windows Embedded for Point of Service-based POS hardware solution, with support for POS for .NET

Thanks again to the whole product team for making this release happen!

- Shayna

MSDN Chat Transcript Posted

$
0
0

For those of you that might have missed our January MSDN chat, the transcript is now available for viewing here: http://msdn.microsoft.com/chats/transcripts/mobileembedded/07_0130_msdn_xpembed.aspx.

Thank you to everyone that joined in on the chat!  We had a great mix of questions about XP Embedded, WEPOS and POS for .NET.  We had about 25 customers in attendance, and approximately 30 experts available to answer questions. We'll look at scheduling another chat in the next few months. Please let us know if you have any suggestions for specific topics to cover! Next time we'll see if we can get more customers than experts J

- Shayna

POS for .NET v1.11 and Previous Version Availability

$
0
0

With the release of POS for .NET v1.11, the original version (POS for .NET v1.0) is no longer available for download. Because of POS for .NET v1.11 is backward compatible, we will be removing POS for .NET v1.10 as well. It is our intention to wait three months from the release date of version 1.11 before removing version 1.10, which would be May 2007. Please let us know if you have any questions or concerns.

- Gina


Channel 9 Video on WEPOS and POS for .NET

$
0
0

While I was randomly searching MSDN for some WEPOS information to give to a customer, I came across an old Channel 9 video with our very own Craig Jensen – Software Design Engineer on the Vertical Industry team. For those of you not familiar with Channel 9, it's one of the great community sites off of MSDN and they go around and catch real Microsoft employees in their offices and have them talk about what they are working on. This particular recording was done by Mike Hall shortly after our team released WEPOS 1.1 in March 2006. It's a great overview of WEPOS and POS for .NET, and Craig even shows how easy it is to write a simple application using POS for .NET to connect to various peripherals.

The video runs about 40 minutes long, and even has a guest appearance by our Product Unit Manager! Check it out at: http://channel9.msdn.com/ShowPost.aspx?PostID=170635#170635.

I'm going to work with the rest of the team to see if we can get some more content like this created for our latest product versions. Let us know what you think and if this is helpful!

- Shayna

Issues with Epson Service Objects and .NET 2.0?

$
0
0

There have been numerous posts on the WEPOS newsgroup about various problems with the Epson service objects when running on .NET 2.0 so I'd like to let everyone know that Epson has posted an updated version of their OPOS ADK for .NET that supports POS for .NET 1.1/UPOS 1.9. I've installed it and it seems to work well with Visual Studio 2005 and the 2.0 version of the .NET framework. The new ADK can be downloaded from Epson's site at http://www.epsonexpert.com.

NOTE: One issue I ran into is that Epson seems to require POS for .NET 1.1 and will not install if POS for .NET 1.11 is installed. A simple work-around is to uninstall POS for .NET 1.11, install POS for .NET 1.1, and then install the Epson ADK and upgrade to POS for .NET 1.11.

- Craig

New POS for .NET v1.11 Documentation

$
0
0

The latest POS for .NET v1.11 SDK documentation was just posted on MSDN! You can check it out here: http://msdn2.microsoft.com/en-us/library/bb429024.aspx.

The new device classes that were added include:

  • BillAcceptor
  • BillDispenser
  • Biometrics
  • CoinAcceptor
  • ElectronicJournal
  • ImageScanner

Additional updates are listed in the "What's New" section.

You can find the POS for .NET 1.11 download here: http://www.microsoft.com/downloads/details.aspx?familyid=8F06B072-06C1-4A4A-A128-83B8A651A25A&displaylang=en.

Enjoy!
- Cathy

Epson Check Health Utility crashes when using POS for .NET 1.11

$
0
0

We’ve heard several reports of customers with concerns regarding the Epson OPOS ADK for .NET when used in conjunction with POS for .NET 1.11. Specifically, the Epson Check Health Utility produces the following error when run with POS for .NET 1.11:

CheckHealthTest.exe – Common Language Runtime Debugging Services
Application has generated an exception that could not be handled.
Process id=0xbec (6052), Thread id=0xbf0 (3056)
Click OK to terminate, Cancel to debug.

It appears that the Epson CheckHealthTest.exe application is compiled against the 1.x version of the .NET Framework and the POS for .NET 1.11 libraries are compiled against the .NET 2.0 Framework. When the Epson application starts up it loads the .NET 1.1 framework and then attempts to load the POS for .NET binaries which fail because they require the .NET 2.0 framework (only one version of the .NET Framework can be loaded in a process).

The fix is to create a .config file for the Epson application so that it loads to .NET 2.0 Framework when it starts. A sample config file is below. The config file must be named ‘CheckHealthTest.exe.config’ and must be located in the same directory as ‘CheckHealthTest.exe’.

<?xml version ="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>

You can find more details about this topic in the POS for .NET 1.11 Release Notes (see the .NET Framework Compatibility Issues section).

This code sample is subject to the terms of the Microsoft Limited Permissive License (Ms – LPL).  If you do not agree to these terms, do not use the code.

- Shayna

New WEPOS & POS for .NET Training Course

$
0
0

SJJ Embedded Micro Solutions, one of our Windows Embedded Partners, announced that they have put together a new training course:  “Introduction to Windows Embedded for Point of Service / POS for .NET”.  Their webpage states that "the course covers the fundamentals and features of WEPOS and POS for .NET."  And that there is a specific "focus on POS for .NET 1.11 with support for C# and VB.NET developers."

It is a one day course with dates already scheduled on September 21st and November 2nd.  Check out more details here.

If you know of any other courses or trainings covering WEPOS or POS for .NET in your area, please let us know so we can help spread the word!

- Shayna

Viewing all 35 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>