Plug-and-Play (PnP) is a set of standards that allow for automatic detection and minor configuration of computer devices without user intervention. Point of sale (POS), Object Linking and Embedding for Retail POS (OPOS), and universal point of sale (UPOS) are industry standards for retail and vending technologies used around the world.
Certain examples are described in the following detailed description and in reference to the drawings, in which:
The Universal Point of Sale (UPOS) standard protocol lacks native Plug-and-Play (PnP) support for peripheral devices. Further, most serial peripherals, often used in point of sale equipment, do not support hot docking, or device insertion and removal while energized. For instance, a serial, or RS232, attached device may hang as a result of a disconnect event or reconnect event, and there is no provision on the serial “bus” to reset that peripheral. Additionally, most legacy UPOS drivers will encounter disconnect and reconnect issues. For instance, many Universal Serial Bus (USB) peripheral devices that utilize virtual, a USB to Serial protocol do not support OS generated PnP events at the control layer. Further, some USB human interface device (HID) drivers lack support for device or power removal required to support hot docking for mobile POS devices.
In various examples described herein, support for a PnP functionality is used to support the disconnecting and reconnecting of a peripheral POS device, for example, to allow the docking and undocking of a computer sales device. A PnP control interface may be added to an operating system stack above a UPOS software interface. As used herein, an operating system stack is a sequence of code modules that start at a device interface level, and proceed to an application program level. The code modules are designed to communicate information between the application program level and a POS peripheral device. For example, an entered price for an item may be translated to a command sequence to be sent to a serial receipt printer. In another example, a barcode scanner may translate the lines of a barcode to a binary sequence that is sent to a POS terminal through a serial interface. The binary sequence is received, translated into a numeric value, and provided to an application program by the stack. The application program can then act on the numeric value, for example, looking up a corresponding item and price. Generally, as described, disconnecting or undocking a peripheral POS device will cause the operation of the device, the POS terminal, or both, to fail. This is especially likely if the device is serially connected to the POS terminal, even through a USB to serial convertor. In an example described herein, the PnP control interface detects the loss of communications and saves the current operational state of the UPOS software interface, including any operations that are in progress. The PnP control interface may then perform finalization methods to a list of active peripheral POS devices in a Logical Device Name (LDN) library, for example, removing the name of the disconnected device. Any outstanding processes related to the peripheral POS device that has been disconnected may be terminated.
If the peripheral POS device is reconnected, for example, by being placed in a docking station, the PnP control interface detects that the communications have been reestablished. The PnP control interface can then perform initialization methods to the list of active peripheral POS devices in the LDN library, for example, adding the name of the operational unit back in to the library. The PnP control interface can then restore the state of the UPOS software interface to the state prior to the disconnection, and restart any jobs that were in progress at the time of the disconnect.
The computer device 100 may also include a storage device 110. The storage device 110 may include non-volatile storage devices, such as a solid-state drive, a hard drive, an optical drive, a flash drive, an array of drives, or any combinations thereof. In some examples, the storage device 110 may provide operating memory for the processor, as well as longer term storage of code modules. The storage device 110 may include a number of applications 112 to provide the computer device 100 with POS functionality. For example, the applications 112 can include POS applications, UPOS applications, and OPOS applications used in transactions between retailers and consumers when buying and selling goods and services. The point of sale applications can include features to implement various POS functionality, such as inventory management, customer relationship management (CRM), financials, and warehousing, for example,
The storage device 110 may include a PnP control interface 114 as a control interface layer for PnP devices, including peripheral POS devices, to implement the techniques described herein. For example, the PnP control interface 114 may operate as a control layer below the UPOS software layer of applications 112 to provide hot plug functionality. As used herein, hot plug functionality allows the disconnection and reconnection of devices without requiring reconfiguration, rebooting, or both. Further, the terms “above” and “below” indicate an order that data reaches a software module. The application layer is generally at the highest level. Layers below the application layer are used to translate data from the application into formats that are compatible with other devices, and the lowest level of the software can be a device driver used to place data on a physical interface. The software levels, however, are not limited to these placements, as a software layer, may intercept data and commands intended for other layers.
The PnP control interface 114 allows existing peripheral devices to be used without development and requalification effort. Further, existing PUS device drivers can be used without needing to be replaced. As used herein, existing UPOS device drivers are not PnP aware, e.g., do not detect, or respond to newly connected devices. UPOS device drivers 116 are also stored in the storage device 110. The PnP control interface 114 may be layered between the UPOS device drivers 116 and UPOS application software 112.
The computer device 100 is not necessarily limited to the devices shown in
The processor 102 may be connected through the bus 106 to an input/output (I/O) device interface 118 to connect the computer device 100 to one or more I/O devices 120. The I/O devices 120 may include, for example, a keyboard, a mouse, or a pointing device, wherein the pointing device may include a touchpad or a touchscreen, among others. In some examples, the I/O devices 120 may built-in components of the computer device 100. In some examples, the I/O devices 120 are located externally to the computer device 100. The I/O devices 120 may also include peripheral POS devices, such as peripheral point of sale device 108. In these examples, the I/O device interface 118 may include a serial port, or other serial device interface, such as a USB port, or the other interfaces listed with respect to peripheral interface 104.
The POS platform in retail industries uses a number of hardware devices and software applications depending on individual needs and requirements. Peripheral POS devices can include but are not limited to barcode scanners, radio frequency identification (RFID) devices, POS touchscreen devices, magnetic stripe readers, electronic funds transfer (EFT) modems, digital weighing scales, POS receipt printers, line displays, and cash drawers. A POS terminal, such as a smart electronic cash register, can provide core operational functionality. Some of the example POS applications and peripheral POS devices can be implemented by the computer device 100, while some POS applications and peripheral POS devices can be implemented through or as a particular I/O device 120.
The processor 102 may also be linked through the bus 106 to a display interface 122 to connect the computer device 100 to display devices 124. A display device 124 may be a built-in component of the computer device 100, or connected externally to the computer device 100. The display device 124 may also include a display screen of a smartphone, a computing tablet, a computer monitor, a television, or a projector, among others. In some examples, the display screen may include a touch screen component, for example, a touch-sensitive display. The touch screen component may allow a user to interact directly with the display screen of the display device 124 by touching the display screen with a pointing device, one or more fingers, or a combination of both.
A wireless local area network (WLAN) 126 and a network interface controller (NIC) 128 may also be linked to the processor 102. The WLAN 126 may link the computer device 100 to a network 130 through a radio signal 132. Similarly, the NIC 128 may link the computer device 100 to the network 130 through a physical connection, such as a cable 134. Either network connection 126 or 128 allows the computer device 100 to network with resources, such as the Internet, printers, fax machines, email, instant messaging applications, and with files located on storage servers.
A docking interlace 136 may be used to couple the computer device 100 to a dock, such as a POS terminal dock 138. When placed in the POS terminal dock 138, the computer device 100 may reestablish connections to other peripheral devices, such as printers, modems, keypads, and the like, as described herein. While in the POS terminal dock 138, the computer device 100 may provide the user interface functions. In some implementations, the computer device 136 becomes an attached peripheral device when in the POS terminal dock 138, for example, downloading current purchase information to the POS terminal for completion of a purchase.
The block diagrams of
In some examples, a barcode imaging scanner 212 is connected to, or incorporated into, the mobile computer device 202. The barcode imaging scanner 212 may be used to read Universal Product Code (UPC) barcodes, or similar identification symbols tagged to retail products. A POS application can then access information about the product. The expansion dock 204 or mobile computer device 202 can keep an inventory of the products sold using the barcode identification. A credit card reader 214 can be attached to the expansion dock 204 to access customer credit card or debit card information, or similar financial information that can be read. In some examples, the credit card reader 214 can be coupled directly with the expansion dock 204. The PnP control interface 114 of
The PnP control interface 114 may restore a process of the control layer after each peripheral POS device hot-plug event. For example, when the mobile computer device 202 undocks, the PnP control interface 114 will perform finalization methods to the list of peripherals in the LDN library. This logic will help clear and terminate any active threads, which may be polling for a device that no longer exists or is no longer attached to the mobile computer device 202.
When the mobile computer device 202 is docked, the PnP control interface 114 will perform initialization methods to the list of LDN in the LDN library. This logic will open new threads to initiate communications with peripherals attached to the expansion dock 204 or the POS terminal with the expansion dock 204. For additional UPOS methods, devices, and applications, the PnP control interface 114 may act as a bypass filter. Such a bypass filter can be based, for example, on a control interface that is to redirect the control calls. In some examples, a set or small library transparently intercepts application programming interface (API) calls, and communicates certain parameters to the control layer and device drivers.
The LDN library will contain the list of devices that the PnP control interface 114 can control. The library will be extensible to include unique ID, via a device instance ID, device SN, Mac ID, or the like, to query any particular expansion dock 204. The mobile computer device 202 can be connected to a network 216, and the network can be connected to, for example, servers 218 to send or receive data and instructions. The servers 218 may provide information about products, for example, using the numbers from barcodes. The connection 220 to the network 216 from the mobile computer device 202 may be wireless to allow communications when the mobile computer device 202 is undocked. In some examples, the expansion dock 204 may couple to the network 216, for example, through a wired line 222. The mobile computer device 202 and the expansion dock 204 can implement the method described with respect to
The block diagram of
At block 304, a disconnection event, such as an undocking event, is detected for a peripheral POS device. The method 300 provides a mobile POS solution to incompatibility issues with retail peripherals. An undocking event from a computer expansion dock, or the like, initiates PnP support for peripheral POS devices. The long life cycles of POS systems and peripherals rake incorporating method 300 preferable to upgrading hardware.
At block 306, a POS or UPOS software state is stored, for example, as a checkpoint in storage. A software state is saved by a computer system to oversee the control layer within an UPOS application. A hot-plug control layer is above the UPOS software interface and a particular configuration is saved.
At block 308, finalization techniques are performed to a list of active peripheral POS devices. The finalization techniques include disable, release, and close calls, for devices in a disconnected or undocked state. The call stack is updated, and drivers ensure the UPOS stack retains the point at which each active subroutine should return control when finished executing.
At block 310, outstanding processes for the disconnected peripheral POS device are terminated. Among other things, this ensures that software threads supporting the disconnected peripheral devices will not stop the system, for example, by waiting for a signal from the peripheral. The support for plug and play devices described herein is not limited to disconnecting the POS devices without causing software problems, but may be used to connect and automatically configure POS devices while powered.
At block 402, the peripheral POS device is connected to the computer device, such as the expansion dock. Then at block 404, initialization methods are performed to the list of peripheral POS devices, for example, by the PnP interface. The initialization methods may follow general UPOS practices and include an open call for initiating a thread, a claim call for coupling the thread to an active device, and an enable call for starting the device operations. For example, the initialization method may be part of the UPOS (Unified Point of Service) specification. In this specification, the open call specifies the existence of the device LDN, the claim calls gain exclusive use of the device LDN, and the enable command brings the device to operational state. The method 400 thus detects mobile POS device connection and disconnection events and performs initialization techniques upon reconnection.
At block 406, the full POS software state is restored to operate the same as before the undocking event. The method 400 is useful overcoming stability and security issues as a result of dynamic POS device removal.
The computer-readable media 500 can include a PnP control interface module 506. The PnP control interface module 506 may be act as a control interface layer between device drivers of a computer device and a UPOS software application. The computer-readable media 500 utilizes the PnP control interface module 506 as a bypass for additional UPOS calls. The PnP control interface module 506 communicates directly to a device control driver of the computer device.
The PnP control interface module 506 is to initiate event polling for a hot-dock event. The PnP control interface module 508 can trigger checking a configuration library containing a LDN and a polling ID. In some examples, the event polling is based on a unique ID, and the unique ID can include a device instance ID. In some examples, the event polling is based on a general ID, and the general ID includes a general hub controller shared by multiple computer docking stations.
The computer-readable media 500 can include a device docking module 508. The device docking module 508 identifies that a hot-dock event has occurred. The device docking module 508 can trigger determining whether the particular LDN exists and if the polling ID matches at the PnP control interface module 506. Thus, device docking module 508 can determine an ID for the physical devices that are coupled to the docking module.
The computer-readable media 500 can include a finalization module 510. The finalization module 510 is to perform finalization methods on a device listed in the LDN library upon an undocking detection. The finalization methods proceed when it is determined by the finalization module 510 the LDN exists and polling ID matches.
The computer-readable media 500 can include a termination module 512. The termination module 512 is to terminate any ongoing processes by a peripheral POS device that has been removed from the expansion dock.
The computer-readable media 500 can include an initialization module 514. The initialization module 514 is to perform initialization methods on a device listed in a LDN library upon a docking detection. The initialization methods are to proceed when it is determined by the initialization module 510 whether the LDN exists and the polling ID is a match.
The computer-readable media 500 can include a software recognition module 516. The software recognition module 516 does not require rewriting existing POS drivers or applications. The techniques herein are applicable toward any combination of legacy or PnP-enabled POS drivers. The software recognition module 516 safely restores a UPOS software state to that before the undocking event. The computer-readable media 500 ensures POS software does not require extensive updates to reattach devices when a peripheral POS device is reconnected to an expansion dock.
The block diagram of
While the present techniques may be susceptible to various modifications and alternative forms, the exemplary examples discussed above have, been shown only by way of example. It is to be understood that the technique is not intended to be limited to the particular examples disclosed herein. Indeed, the present techniques include all alternatives, modifications, and equivalents falling within the true spirit and scope of the appended claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2014/048579 | 7/29/2014 | WO | 00 |