Managing data communication between a peripheral device and a host

Information

  • Patent Grant
  • 8868803
  • Patent Number
    8,868,803
  • Date Filed
    Wednesday, August 28, 2013
    11 years ago
  • Date Issued
    Tuesday, October 21, 2014
    10 years ago
Abstract
Management of data communication between a peripheral device and host computer system is provided. A peripheral device exposes to a host computer system multiple interfaces for data communication between the peripheral device and the host computer system. The multiple interfaces are exposed over a single physical interface between the peripheral device and the host computer system, for communicating data between the peripheral device and multiple applications executing on the host computer system. The multiple interfaces can include a data collection interface facilitating collection of data from the peripheral device by an application of the multiple applications executing on the host computer system.
Description
FIELD OF THE INVENTION

The invention relates to data communication and more particularly to management of data communication between a host computer system and peripheral device in communication with the host computer system.


BACKGROUND OF THE INVENTION

Many types of peripheral devices connect to a host computer system on which one or more applications execute. Those who manage deployment of peripheral devices, for instance a business entity that owns point-of-sale systems comprising host computer systems attached to barcode scanning peripheral devices, routinely face the need to manage their deployed peripheral devices. Peripheral devices connect to host computer system using a variety of wired and/or wireless communication interfaces, including a wired Universal Serial Bus interface. Typically, peripheral devices utilizing a Universal Serial Bus connection expose a single Universal Serial Bus interface to the host computer. This single interface is commonly owned by a Line of Business application on the host computer, which, in the example involving a barcode scanner peripheral device, typically performs data collection from the scanner. Alternatively, if the scanner device is capable of exposing more than one interface across a physical interface connection, a problem arises when another utility or application desires to manage the scanner over the existing interface since typically none of the interfaces are intended to act as a secondary channel (back door) for scanner device management purposes. Such managing becomes challenging absent interference with normal scanner operation and performance expected by the Line of Business application. For instance, the Line of Business application would release the interface, freeing the interface for a management application to user the scanner, which can be impractical, problematic, and inefficient.


SUMMARY OF THE INVENTION

The shortcomings of the prior art are overcome and additional advantages are provided through a method of managing data communication between a peripheral device and a host computer system, which method includes, for instance, a method for managing data communication between a peripheral device and a host computer system, the method comprising: exposing to the host computer system, by a processor of the peripheral device, multiple interfaces for data communication between the peripheral device and the host computer system, the multiple interfaces being exposed over a single physical interface between the peripheral device and the host computer system, the multiple interfaces for communicating data between the peripheral device and multiple applications executing on the host computer system, wherein the multiple interfaces comprise a data collection interface facilitating collection of data from the peripheral device by an application of the multiple applications executing on the host computer system.


Additional features and advantages are realized through the concepts of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.





BRIEF DESCRIPTION OF THE DRAWINGS

The features described herein can be better understood with reference to the drawings described below. The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention. In the drawings, like numerals are used to indicate like parts throughout the various views.



FIG. 1 depicts one embodiment of a host computer system in communication with a peripheral device, in accordance with one or more aspects of the present invention;



FIG. 2 depicts further details of a peripheral device, in accordance with one or more aspects of the present invention;



FIG. 3 depicts further details of a host computer system in communication with a peripheral device, in accordance with one or more aspects of the present invention;



FIG. 4 depicts one example of a process for managing data communication between a peripheral device and host computer system, in accordance with one or more aspects of the present invention; and



FIG. 5 depicts one embodiment of a computer program product to incorporate one or more aspects of the present invention.





DETAILED DESCRIPTION OF THE INVENTION


FIG. 1 depicts one embodiment of a host computer system in communication with a peripheral device, in accordance with one or more aspects of the present invention. In FIG. 1, peripheral device 100 communicates with host computer system 110 across communications link 108. Communications link can be any appropriate wired or wireless communication channel that supports analog or digital communication of data between peripheral device 100 and host 110. A non-limiting list of example communication links includes Universal Serial Bus, Wi-Fi™, and Bluetooth™ connections.


By way of specific example, peripheral device 100 is an encoded information reading terminal comprising a processor 102 (such as a CPU) and one or more encoded information reading device 104. Encoded information reading device 104 can be provided, e.g. by a bar code reading device, an RFID reading device, and a card reading device. Encoded information reading device 104 can be operative to output one or more of a decoded message decoded from raw signal or a raw signal comprising an encoded message. Shown in the block view as being provided by a separate unit external to processor 102 processing functionality of encoded information device 104 can be provided by processor 102. In operation of peripheral device 100, image signals can be read out of encoded information reading device 104 and stored into a volatile or non-volatile memory (not pictured), such as random access memory, read only memory, or any other type of storage memory. Processor 102 can be adapted to perform various algorithms including reading out image data stored in memory and/or algorithms supporting communication of data across communications link 108 via one or more I/O component(s) 106.


Host 110 similarly includes I/O component(s) 112. I/O components include one or more physical interfaces for communicating data to/from peripheral device 100. These interfaces comprise one or more hardware components. In the example of a Universal Serial Bus communications link, a supporting physical interface comprises a Universal Serial Bus port, as an example.


Host 110 also includes processor 114 (such as a CPU) and memory 116. Memory 116 can include one or more volatile or non-volatile memories of one or more types, such as random access memory, read only memory, or any other type of storage memory, such as a hard disk drive.


Further details of a peripheral device in accordance with one or more aspects of the present invention are described with reference to FIG. 2. In FIG. 2, peripheral device 200 includes processor 102 and encoded information reading device 104, as in FIG. 1. Additionally, peripheral device 200 includes a Universal Serial Bus physical interface 206. Typically, Universal Serial Bus physical interface 206 would present one interface for communication with an external device, such as a host computer. In accordance with one or more aspects of the present invention, one or more additional interfaces are created in physical interface 206 for presentation across, e.g., a single Universal Serial Bus physical communication link, such as a Universal Serial Bus Cable. An additional interface includes a dedicated management interface through which device management can be performed in parallel with a data collection processes. Thus, in FIG. 2, physical interface 206 includes a first interface 206a and a second interface 206b. While only two interfaces are depicted within physical interface 206 in FIG. 2, it should be understood that the number of interfaces presented within physical interface 206 could be any number of interfaces.


First interface 206a can be dedicated to device management, that is, it can be dedicated to data communication between one or more management applications on a host computer communicating with peripheral device 200. In this manner, data communications between the one or more management applications are received by peripheral device 200 via first interface 206a. Meanwhile, second interface 206b can be a data collection interface dedicated to communication between peripheral device 200 and another application on a host computer, such as a line of business application executing thereon for data collection. This facilitates both device management and data collection in parallel by separate applications executing on the host computer, without affecting performance or expected operation of the applications, thus simplifying the hardware and software components necessary to achieve this functionality. Further details of a host computer system in communication with a peripheral device in accordance with one or more aspects of the present invention are depicted in and described with reference to FIG. 3.


In FIG. 3, host 310 includes processor 314 and memory 316. Host 320 also includes physical interface 312, comprising one or more hardware components, for communicating data to/from peripheral device 300. In this example, communications link 308 comprises a Universal Serial Bus communications link, and supporting physical interface 312 includes a Universal Serial Bus port.


As is understood by those having ordinary skill in the art, a processor can be configured to execute instructions of a program. Common such programs are an operating system and applications which run on the operating system from memory. In FIG. 3, processor 314 executes operating system 318 and applications 320a and 320b from memory 316. Application 320b comprises a line of business application. A line of business (LOB), in general, is a group of one or more related applications or modules which service a business need. In the context of host-peripheral device communication, a line of business application may be responsible for sending data to and/or receiving data from a peripheral device. In the specific example of a barcode scanner, the line of business application can execute on the host machine and accept from the peripheral device decoded data which is read-out from an encoded image (such as a barcode) using the peripheral device.


Application 320a in FIG. 3 comprises a management application. Management application 320a supports device management of a peripheral device, such as peripheral device 300. Examples of device management include performance of a firmware upgrade of the firmware of peripheral device 300, and performance of a reconfiguration of peripheral device 300, such as a reconfiguration to adjust one or more operating parameters of peripheral device 300.


In the example of FIG. 3, peripheral device 300 behaves as a Universal Serial Bus composite device listing multiple logical interfaces. Responsive to receiving a host enumeration command from host 310, peripheral device 300 responds by listing a dedicated management interface (306a) of a predefined type to facilitate management of peripheral device 300, and listing a line of business interface (306b) for data communication with line of business application 320b of host 310. Dedicated management interface 306a can be of a specific type that host operating system 318 matches to a preinstalled device driver, so that no custom driver for dedicated management interface 306a is needed. As those having ordinary skill in the art will recognize, device drivers for interfaces 306a and 306b enable host operating system 318 to recognize interfaces 306a and 306b exposed by peripheral device 300 to host 310 across communication link 308. Operating system 318 can then expose these interfaces to line of business application 320b and management application 320a executing on host 310.


In one embodiment, dedicated management interface 306a can be a Universal Serial Bus Human Interface Device (USB HID) class interface, for instance a barcode scanner interface, but with a non-standard usage page number that is not appealing to line of business application 320b as a data collection option. By using a non-standard page number (in this example), line of business application 320b will ignore the interface. Using a non-standard page number is just one way of using a non-standard configuration in order to cause line of business application 320b to ignore management interface 306a; there are many other ways of varying this configuration to expose management interface 306a in such as way that is it not appealing to line of business application 320b.


In operation, dedicated management interface 306a can receive special treatment from both management application 320a running on host 310 and from the firmware (not pictured) of peripheral device 300. For instance, on the host side, management application 320a can be configured to recognize management interface 306a, and be able to connect to it, enabling data communication between management application 320a and management interface 306a of peripheral device 300.


On the peripheral device side, commands received from host 310 through dedicated management interface 306a can be replied-to (from peripheral device 300 to host 310) using dedicated management interface 306a, rather than using another interface, such as line of business interface 306b. The opposite is also true: commands received from host 310 through line of business interface 306b can be replied-to using line of business interface 306b. Peripheral device 300 is therefore aware of which interface was the interface though which a command was received and is configured to reply to host 310 using that interface, so that the reply reaches the appropriate host application. This also enables peripheral device 300 to recognize unique commands when coming through dedicated management interface 306a, which may not be valid over line of business interface 306b.


Additionally, peripheral device 300 can send custom unsolicited notifications (i.e.: bar code reading statistics, low battery notifications, etc) over dedicated management interface 306a. These notifications can be provided across management interface 306a and not across line of business interface 306b, if so desired.


Peripheral device 300 can prioritize data communication through the different interfaces. For instance, in case multiple commands arrive concurrently over different interfaces, from applications on the host, peripheral device 300 can give priority to one of the interfaces over the other interface(s). As an example, the peripheral device can give priority to execute data collection events (e.g.: reading a barcode) on line of business interface 306b, so that the application performance of the data collection application (line of business application 320b on host 310) in not affected. Additionally, the peripheral device can be configured to always finish the execution of a request before processing a new request on the same or different interface (i.e.: adhere to the transaction concept to guarantee consistency of data). In this case, the new request, received during execution of a previously received request, may still be accepted and placed in a queue.


In a further enhancement, peripheral device 300 can be selectively configured for exclusive use of any one or more of the multiple interfaces to the host computer system. For instance, peripheral device 300 can include a special operation mode where the dedicated management interface becomes exclusive until the peripheral device is configured otherwise. There are various ways of achieving this including, but not limited to: signaling the host operating system that the other interface(s) are busy, temporarily blocking or placing on hold the other interface(s), or by queuing requests. Alternatively or additionally, the peripheral device could temporarily expose only one interface, such as the dedicated management interface, for exclusive use thereof It may be important, in these scenarios to avoid reporting an error condition from the other applications, for instance the line of business application. This exclusive use of only the dedicated management interface can be enabled to facilitate performance of a firmware upgrade or peripheral device reconfiguration, as examples. By exclusively using the management interface, without having to worry about the other interface(s), the peripheral device can pay full attention to the particular management operation being requested, without interruption, and enabling it to dedicate the necessary hardware resources of the peripheral device (CPU, memory, etc) to the particular task. This can be advantageous in that, for limited-resource peripheral devices, communication errors are less frequent since the peripheral device is not stressed by trying to process requests on all interfaces.



FIG. 4 depicts an example of a process for managing data communication between a peripheral device and host computer system, in accordance with one or more aspects of the present invention. The process begins by exposing multiple interfaces of a peripheral device to a host computer system (402). In one example, this is performed responsive to a host enumeration request by a host computer system. Next, peripheral device receives one or more commands from the host computer system across one or more of the multiple interfaces (404). The peripheral device can perform one or more operations responsive to receiving the one or more commands. Then, the peripheral device responds to the received command(s) across an appropriate interface of the multiple interfaces (406). As discussed above, an appropriate interface for responding to a command can be the interface through which the command was received. In this manner, requests received across a management interface of the multiple interfaces can be responded-to using the management interface, so that the proper management application executing on the host receives the response. Additionally, the peripheral device can optionally send one or more notifications to a management application of the host computer system across the management interface of the multiple interfaces (408).


Aspects of the present invention provide the existence of a dedicated interface with potentially special treatment by the peripheral device and the host computer. Aspects of the present invention can be applied to any type of interface used by a peripheral device, and thus can be applied to other types of interfaces (including those that are not physically limited to be a single interface), for instance Bluetooth™, WiFi™, or ZigBee interfaces.


As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.


Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.


Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.


Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).


Referring now to FIG. 5, in one example, a computer program product 500 includes, for instance, one or more computer readable media 502 to store computer readable program code means or logic 504 thereon to provide and facilitate one or more aspects of the present invention.


Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.


These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.


The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.


The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.


Further, a data processing system suitable for storing and/or executing program code is usable that includes at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements include, for instance, local memory employed during actual execution of the program code, bulk storage, and cache memory which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.


Input/Output or I/O devices (including, but not limited to, keyboards, displays, pointing devices, DASD, tape, CDs, DVDs, thumb drives and other memory media, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the available types of network adapters.


The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising”, when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components and/or groups thereof


The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below, if any, are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.


A small sample of methods that are described herein is as follows:

  • A1. A method for managing data communication between a peripheral device and a host computer system, the method comprising: exposing to the host computer system, by a processor of the peripheral device, multiple interfaces for data communication between the peripheral device and the host computer system, the multiple interfaces being exposed over a single physical interface between the peripheral device and the host computer system, the multiple interfaces for communicating data between the peripheral device and multiple applications executing on the host computer system, wherein the multiple interfaces comprise a dedicated management interface facilitating management of the peripheral device by a management application of the multiple applications executing on the host computer system.
  • A2. The method of A1, wherein the multiple interfaces further comprise a line of business interface for data communication between the peripheral device and a line of business application of the multiple applications, and wherein the dedicated management interface and the line of business interface are exposed separately to the host computer system to facilitate peripheral device management across the dedicated management interface in parallel with data collection across the line of business interface by the line of business application.
  • A3. The method of A1, wherein the single physical interface comprises a Universal Serial Bus interface.
  • A4. The method of A3, wherein the peripheral device behaves as a Universal Serial Bus composite device exposing the multiple interfaces responsive to a Universal Serial Bus host enumeration request.
  • A5. The method of A1, wherein the dedicated management interface comprises a Universal Serial Bus Human Interface Device class interface, wherein the peripheral device exposes the Universal Serial Bus Human Interface Device class interface as having a non-standard configuration so as to be ignored by a line of business application of the multiple applications executing on the host computer system.
  • A6. The method of A5, wherein the non-standard configuration comprises a non-standard usage page number of the Universal Serial Bus Human Interface Device class interface.
  • A7. The method of A1, further comprising receiving commands by the peripheral device from the host computer system across the multiple interfaces and responding to the received commands, wherein the peripheral device, in responding to a command, responds to the command across a same interface of the multiple interfaces through which the command was received from the host computer.
  • A8. The method of A7, wherein the peripheral device is configured to give priority to one interface of the multiple interfaces, responsive to contemporaneously receiving more than one command across more than one interface of the multiple interfaces.
  • A9. The method of A8, wherein priority is given to a data collection interface of the multiple interfaces over the dedicated management interface of the multiple interfaces, the data collection interface collecting barcode data for provision to a line of business application of the multiple applications executing on the host computer system.
  • A10. The method of A1, further comprising sending one or more notifications over the dedicated management interface to the host computer system, wherein the one or more notifications are not made available across the other interfaces of the multiple interfaces.
  • A11. The method of A10, wherein the one or more notifications comprise bar code reading statistics.
  • A12. The method of A10, wherein the one or more notifications comprise a low battery notification
  • A13. The method of A1, wherein the peripheral device is selectably configurable to exclusively use of one interface of the multiple interfaces to facilitate performance of at least one of: a firmware upgrade, or a peripheral device reconfiguration.
  • A14. The method of A13, wherein exclusive use of one interface of the multiple interfaces comprises one of temporarily blocking requests through other interfaces of the multiple interfaces through the period of exclusive use of the one interface, or temporarily queuing requests through other interfaces of the multiple interfaces through the period of exclusive use of the one interface.
  • A15. The method of A1, wherein the peripheral device is selectably configurable to expose any one or more of the multiple interfaces to the host computer system.
  • A16. The method of A15, wherein the peripheral device is selectably configurable toexpose only the dedicated management interface to facilitate performance of at least one of: a firmware upgrade, or a peripheral device reconfiguration.
  • A17. The method of A1, wherein the peripheral device is configurable to recognize commands received through the dedicated management interface as being valid, wherein the commands are not recognized as being valid if received through other interfaces of the multiple interfaces.
  • A18. The method of A1, wherein the single physical interface comprises at least one of: a Bluetooth interface, a WiFi interface, or a ZigBee interface.
  • A19. The method of A1, wherein the peripheral device comprises an encoded information reading device configured to output a decoded message, wherein data communicated between the peripheral device and the host computer system comprises the decoded message and wherein the decoded message is communicated to a line of business application of the multiple applications executing on the host computer system.


While the present invention has been described with reference to a number of specific embodiments, it will be understood that the true spirit and scope of the invention should be determined only with respect to claims that can be supported by the present specification. Further, while in numerous cases herein wherein systems and apparatuses and methods are described as having a certain number of elements it will be understood that such systems, apparatuses and methods can be practiced with fewer than or greater than the mentioned certain number of elements. Also, while a number of particular embodiments have been described, it will be understood that features and aspects that have been described with reference to each particular embodiment can be used with each remaining particularly described embodiment.

Claims
  • 1. A method for managing data communication between a peripheral device and a host computer system, the method comprising: exposing to the host computer system, by a processor of the peripheral device, multiple interfaces for data communication between the peripheral device and the host computer system, the multiple interfaces being exposed over a single physical interface between the peripheral device and the host computer system, the multiple interfaces for communicating data between the peripheral device and multiple applications executing on the host computer system, wherein the multiple interfaces comprise a data collection interface facilitating collection of data from the peripheral device by an application of the multiple applications executing on the host computer system;wherein the data collection interface collects barcode data for provision to the application of the multiple applications executing on the host computer system.
  • 2. The method of claim 1, wherein the data collection interface comprises a line of business interface for data communication between the peripheral device and a line of business application of the multiple applications.
  • 3. The method of claim 1, wherein the single physical interface comprises a Universal Serial Bus interface.
  • 4. The method of claim 3, wherein the peripheral device behaves as a Universal Serial Bus composite device exposing the multiple interfaces responsive to a Universal Serial Bus host enumeration request.
  • 5. The method of claim 1, wherein at least one interface of the multiple interfaces comprises a Universal Serial Bus Human Interface Device class interface, wherein the peripheral device exposes the Universal Serial Bus Human Interface Device class interface as having a non-standard configuration so as to be ignored by the application of the multiple applications executing on the host computer system.
  • 6. The method of claim 5, wherein the non-standard configuration comprises a non-standard usage page number of the Universal Serial Bus Human Interface Device class interface.
  • 7. The method of claim 1, further comprising receiving commands by the peripheral device from the host computer system across the multiple interfaces and responding to the received commands, wherein the peripheral device, in responding to a command, responds to the command across a same interface of the multiple interfaces through which the command was received from the host computer.
  • 8. The method of claim 7, wherein the peripheral device is configured to give priority to one interface of the multiple interfaces, responsive to contemporaneously receiving more than one command across more than one interface of the multiple interfaces.
  • 9. The method of claim 8, wherein priority is given to the data collection interface of the multiple interfaces over at least one other interface of the multiple interfaces.
  • 10. The method of claim 1, wherein the peripheral device is selectably configurable to exclusively use of one interface of the multiple interfaces to facilitate performance of at least one of: a firmware upgrade, or a peripheral device reconfiguration.
  • 11. The method of claim 10, wherein exclusive use of one interface of the multiple interfaces comprises one of temporarily blocking requests through other interfaces of the multiple interfaces through the period of exclusive use of the one interface, or temporarily queuing requests through other interfaces of the multiple interfaces through the period of exclusive use of the one interface.
  • 12. The method of claim 1, wherein the peripheral device is selectably configurable to expose any one or more of the multiple interfaces to the host computer system.
  • 13. The method of claim 1, wherein the peripheral device is configurable to recognize commands received through another interface of the multiple interfaces as being valid, wherein the commands are not recognized as being valid if received through the data collection interface.
  • 14. The method of claim 1, wherein the single physical interface comprises at least one of: a Bluetooth interface, a WiFi interface, or a ZigBee interface.
  • 15. The method of claim 1, wherein the peripheral device comprises an encoded information reading device configured to output a decoded message, wherein data communicated from the peripheral device to the application comprises the decoded message.
CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. Ser. No. 13/267,338, entitled “DEVICE MANAGEMENT USING A DEDICATED MANAGEMENT INTERFACE,” filed Oct. 6, 2011, which is hereby incorporated herein by reference in its entirety.

US Referenced Citations (372)
Number Name Date Kind
5109486 Seymour Apr 1992 A
5261044 Dev et al. Nov 1993 A
5402316 Volz et al. Mar 1995 A
5463742 Kobayashi Oct 1995 A
5504921 Dev et al. Apr 1996 A
5546145 Bernardi et al. Aug 1996 A
5552959 Penniman et al. Sep 1996 A
5579001 Dempsey et al. Nov 1996 A
5579529 Terrell et al. Nov 1996 A
5579775 Dempsey et al. Dec 1996 A
5587560 Crooks et al. Dec 1996 A
5615625 Cassidy et al. Apr 1997 A
5640953 Bishop et al. Jun 1997 A
5655081 Bonnell et al. Aug 1997 A
5687734 Dempsey et al. Nov 1997 A
5724509 Starkweather et al. Mar 1998 A
5752917 Fuchs May 1998 A
5774793 Cooper et al. Jun 1998 A
5793967 Simciak et al. Aug 1998 A
5798951 Cho et al. Aug 1998 A
5805442 Crater et al. Sep 1998 A
5815735 Baker Sep 1998 A
5819110 Motoyama Oct 1998 A
5825617 Kochis et al. Oct 1998 A
5835733 Walsh et al. Nov 1998 A
5848253 Walsh et al. Dec 1998 A
5862349 Cho et al. Jan 1999 A
5867714 Todd et al. Feb 1999 A
5875312 Walsh et al. Feb 1999 A
5878256 Bealkowski et al. Mar 1999 A
5889964 Cho et al. Mar 1999 A
5921459 Heraly et al. Jul 1999 A
5931909 Taylor Aug 1999 A
5935244 Swamy et al. Aug 1999 A
5941965 Moroz et al. Aug 1999 A
5961337 Kordes Oct 1999 A
5978591 Bartholomew et al. Nov 1999 A
6032202 Lea et al. Feb 2000 A
6037788 Krajec et al. Mar 2000 A
6049454 Howell et al. Apr 2000 A
6070012 Eitner et al. May 2000 A
6085244 Wookey Jul 2000 A
6088752 Ahern Jul 2000 A
6091602 Helot Jul 2000 A
6098097 Dean et al. Aug 2000 A
6108717 Kimura et al. Aug 2000 A
6109039 Hougham et al. Aug 2000 A
6142593 Kim et al. Nov 2000 A
6151643 Cheng et al. Nov 2000 A
6158430 Pfeiffer et al. Dec 2000 A
6160719 May et al. Dec 2000 A
6161133 Kikinis Dec 2000 A
6171559 Sanders et al. Jan 2001 B1
6188572 Liao et al. Feb 2001 B1
6195265 Choi et al. Feb 2001 B1
6199108 Casey et al. Mar 2001 B1
6202209 Bartholomew et al. Mar 2001 B1
6226739 Eagle May 2001 B1
6240297 Jadoul et al. May 2001 B1
6247074 Shin et al. Jun 2001 B1
6256691 Moroz et al. Jul 2001 B1
6267475 Lee et al. Jul 2001 B1
6279059 Ludtke et al. Aug 2001 B1
6279154 Davis Aug 2001 B1
6285911 Watts, Jr. et al. Sep 2001 B1
6297963 Fogle Oct 2001 B1
6301106 Helot et al. Oct 2001 B1
6311321 Agnihotri et al. Oct 2001 B1
6324692 Fiske Nov 2001 B1
6330597 Collin et al. Dec 2001 B2
6341274 Leon Jan 2002 B1
6341320 Watts, Jr. et al. Jan 2002 B1
6360362 Fichtner et al. Mar 2002 B1
6378128 Edelstein et al. Apr 2002 B1
6407335 Franklin-Lees et al. Jun 2002 B1
6407915 Derocher et al. Jun 2002 B1
6425126 Branson et al. Jul 2002 B1
6442639 McElhattan et al. Aug 2002 B1
6452325 Dupont Sep 2002 B1
6457076 Cheng et al. Sep 2002 B1
6461181 Goh et al. Oct 2002 B1
6467088 alSafadi et al. Oct 2002 B1
6477588 Yerazunis et al. Nov 2002 B1
6484315 Ziese Nov 2002 B1
6489932 Chitturi et al. Dec 2002 B1
6505121 Russell Jan 2003 B1
6506009 Nulman et al. Jan 2003 B1
6511031 Lin Jan 2003 B2
6519143 Goko et al. Feb 2003 B1
6539358 Coon et al. Mar 2003 B1
6542943 Cheng et al. Apr 2003 B2
6558049 Shin May 2003 B1
6560643 Shepherd et al. May 2003 B1
6560660 Flanagin May 2003 B1
6584336 Ali et al. Jun 2003 B1
6584499 Jantz et al. Jun 2003 B1
6587874 Golla et al. Jul 2003 B1
6593528 Franklin-Lees et al. Jul 2003 B2
6594534 Crowell Jul 2003 B1
6606678 Nakamura et al. Aug 2003 B1
6614979 Bourdeau et al. Sep 2003 B2
6615405 Goldman et al. Sep 2003 B1
6628517 Helot et al. Sep 2003 B1
6633482 Rode Oct 2003 B2
6658659 Hiller et al. Dec 2003 B2
6668296 Dougherty et al. Dec 2003 B1
6683786 Yin et al. Jan 2004 B2
6684241 Sandick et al. Jan 2004 B1
6697032 Chitturi et al. Feb 2004 B2
6722192 Benedict et al. Apr 2004 B2
6725260 Philyaw Apr 2004 B1
6725281 Zintel et al. Apr 2004 B1
6728956 Ono et al. Apr 2004 B2
6742025 Jennery et al. May 2004 B2
6751681 Torli et al. Jun 2004 B2
6754723 Kato et al. Jun 2004 B2
6760761 Sciacca Jul 2004 B1
6763403 Cheng et al. Jul 2004 B2
6766175 Uchiyama Jul 2004 B2
6766956 Boylan, III et al. Jul 2004 B1
6770028 Ali et al. Aug 2004 B1
6772264 Dayan et al. Aug 2004 B1
6778824 Wonak et al. Aug 2004 B2
6779068 Kim et al. Aug 2004 B2
6784855 Matthews et al. Aug 2004 B2
6806813 Cheng et al. Oct 2004 B1
6832082 Ramaswamy et al. Dec 2004 B1
6832373 O'Neill Dec 2004 B2
6833787 Levi Dec 2004 B1
6833989 Helot et al. Dec 2004 B2
6850158 Williams Feb 2005 B1
6854112 Crespo et al. Feb 2005 B2
6857013 Ramberg et al. Feb 2005 B2
6863210 Becker et al. Mar 2005 B2
6864891 Myers Mar 2005 B2
6868468 Boz et al. Mar 2005 B2
6886104 McClurg et al. Apr 2005 B1
6889263 Motoyama May 2005 B2
6895261 Palamides May 2005 B1
6895445 Ying et al. May 2005 B2
6898080 Yin et al. May 2005 B2
6904457 Goodman Jun 2005 B2
6907603 Scott Jun 2005 B2
6915514 Machida et al. Jul 2005 B1
6920631 Delo Jul 2005 B2
6928493 Motoyama Aug 2005 B2
6944854 Kehne et al. Sep 2005 B2
6944858 Luu Sep 2005 B2
6954142 Lieberman et al. Oct 2005 B2
6955517 Nulman et al. Oct 2005 B2
6959172 Becker et al. Oct 2005 B2
6961586 Barbosa et al. Nov 2005 B2
6966058 Earl et al. Nov 2005 B2
6968550 Branson et al. Nov 2005 B2
6970952 Motoyama Nov 2005 B2
6973799 Kuehl et al. Dec 2005 B2
6976062 Denby et al. Dec 2005 B1
6981086 Wetzel et al. Dec 2005 B2
6987988 Uchiyama Jan 2006 B2
6990549 Main et al. Jan 2006 B2
6990660 Moshir et al. Jan 2006 B2
6993615 Falcon Jan 2006 B2
6993760 Peev et al. Jan 2006 B2
6996634 Herrod et al. Feb 2006 B1
6999898 King et al. Feb 2006 B2
7000228 Mortazavi Feb 2006 B2
7003560 Mullen et al. Feb 2006 B1
7013331 Das Mar 2006 B2
7020571 Lee et al. Mar 2006 B2
7024189 Wonak et al. Apr 2006 B2
7039688 Matsuda et al. May 2006 B2
7043537 Pratt May 2006 B1
7054423 Nebiker et al. May 2006 B2
7054977 Kadambi et al. May 2006 B2
7069006 Wonak Jun 2006 B2
7072675 Kanakubo Jul 2006 B1
7076536 Chiloyan et al. Jul 2006 B2
7080371 Arnaiz et al. Jul 2006 B1
7085805 Ruberg et al. Aug 2006 B1
7085824 Forth et al. Aug 2006 B2
7086049 Goodman Aug 2006 B2
7089551 Fordemwalt et al. Aug 2006 B2
7099152 Gasbarro et al. Aug 2006 B2
7100271 Baulier et al. Sep 2006 B2
7107380 Mohan Sep 2006 B1
7111055 Falkner Sep 2006 B2
7114021 Seshadri Sep 2006 B2
7117239 Hansen Oct 2006 B1
7117286 Falcon Oct 2006 B2
7130896 Engel et al. Oct 2006 B2
7133939 Desal et al. Nov 2006 B1
7149792 Hansen et al. Dec 2006 B1
7159016 Baker Jan 2007 B2
7185014 Hansen Feb 2007 B1
7188160 Champagne et al. Mar 2007 B2
7188171 Srinivasan et al. Mar 2007 B2
7191435 Lau et al. Mar 2007 B2
7194526 Kanemitsu Mar 2007 B2
7209971 Dabagh et al. Apr 2007 B1
7216343 Das et al. May 2007 B2
7272711 Suda et al. Sep 2007 B2
7289995 Motoyama et al. Oct 2007 B2
7290258 Steeb et al. Oct 2007 B2
7316013 Kawano et al. Jan 2008 B2
7409478 Kreiner et al. Aug 2008 B2
7725627 Crain, II et al. May 2010 B2
7743174 Remaker et al. Jun 2010 B2
7843915 Kashyap Nov 2010 B2
7857222 Kosecki et al. Dec 2010 B2
7966622 Purser et al. Jun 2011 B1
7996896 Durie Aug 2011 B2
8000266 Bulusu et al. Aug 2011 B2
8025233 Kosecki et al. Sep 2011 B2
8297508 Kosecki et al. Oct 2012 B2
20010042112 Slivka et al. Nov 2001 A1
20020073304 Marsh et al. Jun 2002 A1
20020083160 Middleton Jun 2002 A1
20020086703 Dimenstein et al. Jul 2002 A1
20020087392 Stevens Jul 2002 A1
20020087668 San Martin et al. Jul 2002 A1
20020087960 Hisatake Jul 2002 A1
20020092008 Kehne et al. Jul 2002 A1
20020092013 Delo Jul 2002 A1
20020094208 Palumbo Jul 2002 A1
20020095484 Pagani et al. Jul 2002 A1
20020100036 Moshir et al. Jul 2002 A1
20020109665 Matthews et al. Aug 2002 A1
20020129350 Wang et al. Sep 2002 A1
20020129355 Velten et al. Sep 2002 A1
20020147974 Wookey Oct 2002 A1
20020184349 Manukyan Dec 2002 A1
20020184350 Chen Dec 2002 A1
20020187024 Nulman Dec 2002 A1
20020191940 Bourdeau Dec 2002 A1
20020198969 Engel et al. Dec 2002 A1
20030018694 Chen et al. Jan 2003 A1
20030031539 Nulman et al. Feb 2003 A1
20030046675 Cheng et al. Mar 2003 A1
20030051235 Simpson Mar 2003 A1
20030059022 Nebiker et al. Mar 2003 A1
20030084436 Berger et al. May 2003 A1
20030088651 Wilson May 2003 A1
20030097427 Parry May 2003 A1
20030111245 Haggerty Jun 2003 A1
20030154471 Teachman et al. Aug 2003 A1
20030188306 Harris et al. Oct 2003 A1
20030198015 Vogt Oct 2003 A1
20030217357 Parry Nov 2003 A1
20030217358 Thurston et al. Nov 2003 A1
20030221190 Deshpande et al. Nov 2003 A1
20030225939 Ying et al. Dec 2003 A1
20040002943 Merrill et al. Jan 2004 A1
20040015949 Taylor Jan 2004 A1
20040020974 Becker et al. Feb 2004 A1
20040024933 Billington et al. Feb 2004 A1
20040049233 Edwards Mar 2004 A1
20040050247 Topping Mar 2004 A1
20040078502 Hsin et al. Apr 2004 A1
20040083471 Nam et al. Apr 2004 A1
20040098571 Falcon May 2004 A1
20040103172 Chen et al. May 2004 A1
20040123281 Olrik et al. Jun 2004 A1
20040127210 Shostak Jul 2004 A1
20040139757 Kuehl et al. Jul 2004 A1
20040143032 Auschra et al. Jul 2004 A1
20040148600 Hoshino Jul 2004 A1
20040154014 Bunger Aug 2004 A1
20040168167 Ono Aug 2004 A1
20040176072 Gellens Sep 2004 A1
20040177380 Hamel et al. Sep 2004 A1
20040181593 Kanojia et al. Sep 2004 A1
20040192329 Barbosa et al. Sep 2004 A1
20040199615 Philyaw Oct 2004 A1
20040205709 Hiltgen et al. Oct 2004 A1
20040210897 Brockway et al. Oct 2004 A1
20040212822 Schinner Oct 2004 A1
20040216099 Okita et al. Oct 2004 A1
20040235532 Matthews et al. Nov 2004 A1
20040243991 Gustafson et al. Dec 2004 A1
20040243995 Sheehy Dec 2004 A1
20040255023 Motoyama et al. Dec 2004 A1
20040268340 Steeb et al. Dec 2004 A1
20050044544 Slivka et al. Feb 2005 A1
20050050538 Kawamata et al. Mar 2005 A1
20050052156 Liebenow Mar 2005 A1
20050060862 Baulier Mar 2005 A1
20050065822 Ying et al. Mar 2005 A1
20050086328 Landram et al. Apr 2005 A1
20050093821 Massie et al. May 2005 A1
20050097543 Hirayama May 2005 A1
20050097544 Kim May 2005 A1
20050108700 Chen et al. May 2005 A1
20050132348 Meulemans et al. Jun 2005 A1
20050132349 Roberts et al. Jun 2005 A1
20050132350 Markley et al. Jun 2005 A1
20050132351 Randall et al. Jun 2005 A1
20050144612 Wang et al. Jun 2005 A1
20050144614 Moslander et al. Jun 2005 A1
20050159847 Shah et al. Jul 2005 A1
20050204353 Ji Sep 2005 A1
20050210458 Moriyama et al. Sep 2005 A1
20050210459 Henderson et al. Sep 2005 A1
20050210466 Carter et al. Sep 2005 A1
20050223372 Borchers Oct 2005 A1
20050223373 Gage et al. Oct 2005 A1
20050229171 Henry et al. Oct 2005 A1
20050235076 Winarski et al. Oct 2005 A1
20050246703 Ahonen Nov 2005 A1
20050251799 Wang Nov 2005 A1
20050254776 Morrison et al. Nov 2005 A1
20050257205 Costea et al. Nov 2005 A1
20050257209 Adams et al. Nov 2005 A1
20050273229 Steinmeier et al. Dec 2005 A1
20050278001 Qin et al. Dec 2005 A1
20060010437 Marolia Jan 2006 A1
20060013646 Baulier et al. Jan 2006 A1
20060029489 Nulman et al. Feb 2006 A1
20060031617 Falcon Feb 2006 A1
20060031828 Won et al. Feb 2006 A1
20060041881 Adkasthala Feb 2006 A1
20060049677 Lawrence et al. Mar 2006 A1
20060069813 Biamonte et al. Mar 2006 A1
20060070055 Hodder et al. Mar 2006 A1
20060082965 Walker et al. Apr 2006 A1
20060106965 Falcon May 2006 A1
20060130037 Mackay Jun 2006 A1
20060132964 Lau et al. Jun 2006 A1
20060136893 Blossom et al. Jun 2006 A1
20060142129 Siaperas Jun 2006 A1
20060149321 Merry et al. Jul 2006 A1
20060149322 Merry et al. Jul 2006 A1
20060149323 Merry et al. Jul 2006 A1
20060150177 Liu et al. Jul 2006 A1
20060156302 Yamamoto et al. Jul 2006 A1
20060168578 Vorlicek Jul 2006 A1
20060168581 Goger et al. Jul 2006 A1
20060172873 Beard Aug 2006 A1
20060179431 Devanathan et al. Aug 2006 A1
20060200812 Mizutani et al. Sep 2006 A1
20060206888 Mavrinac et al. Sep 2006 A1
20060218545 Taguchi Sep 2006 A1
20060236518 Baulier Oct 2006 A1
20060238384 Hess et al. Oct 2006 A1
20060248522 Lakshminarayanan et al. Nov 2006 A1
20060248524 Seely Nov 2006 A1
20070006207 Appaji Jan 2007 A1
20070006213 Shahidzadeh et al. Jan 2007 A1
20070006214 Dubal et al. Jan 2007 A1
20070038990 White et al. Feb 2007 A1
20070055969 Yang Mar 2007 A1
20070055970 Sakuda et al. Mar 2007 A1
20070074201 Lee Mar 2007 A1
20070083630 Roth et al. Apr 2007 A1
20070169073 O'Neill et al. Jul 2007 A1
20070169089 Bantz et al. Jul 2007 A1
20070169090 Kang Jul 2007 A1
20070169092 Lee Jul 2007 A1
20070169093 Logan et al. Jul 2007 A1
20070174834 Purkeypile et al. Jul 2007 A1
20070220505 Bukovec et al. Sep 2007 A1
20070234331 Schow et al. Oct 2007 A1
20070245333 Ferlitsch Oct 2007 A1
20080071963 Chow et al. Mar 2008 A1
20090045922 Kosecki et al. Feb 2009 A1
20090132737 Huang et al. May 2009 A1
20090328075 Herskedal et al. Dec 2009 A1
20100095019 Hannel et al. Apr 2010 A1
20100268857 Bauman et al. Oct 2010 A1
20110090057 Kosecki et al. Apr 2011 A1
20120000984 Kosecki et al. Jan 2012 A1
20130013936 Lin et al. Jan 2013 A1
20130091310 Caballero Apr 2013 A1
Foreign Referenced Citations (2)
Number Date Country
WO0217073 Feb 2002 WO
WO2005033964 Apr 2005 WO
Non-Patent Literature Citations (3)
Entry
Apr. 2, 2013 Office Action in U.S. Appl. No. 13/267,342.
Jul. 2, 2013 Amendment After Allowance filed in U.S. Appl. No. 13/267,342.
Jul. 2, 2013 Notice of Allowance and Issue Fee Due.
Related Publications (1)
Number Date Country
20130346651 A1 Dec 2013 US
Divisions (1)
Number Date Country
Parent 13267338 Oct 2011 US
Child 14012256 US