MOBILE COMPUTER WITH MODULAR / COMPANION SCAN ENGINE UNIT
20210150167 · 2021-05-20
Assignee
Inventors
- Carlo Bellettini (Ferrara, IT)
- Piero F.P. Regard (S. Lazzaro di Saveno, IT)
- Davide Bottazzi (Bologna, IT)
Cpc classification
International classification
G06K7/14
PHYSICS
Abstract
A system and method of scanning a machine-readable indicia may include, in response to determining that the scan engine module is in an engaged state and electrically connected to a computer, communicating the decoded data to the computer via a wired communications channel. Otherwise, in response to determining that the scan engine module is in a released state and wirelessly connected to the computer, communicate the decoded data to the computer via a wireless communications channel. The scan engine module may be configured to operate autonomously from the mobile computer to be able to scan machine-readable indicia, decode the machine-readable indicia to generate decoded data, and store the decoded data. In response to the machine-readable indicia being electrically connected to the mobile computer, the machine-readable indicia may be batched uploaded to the mobile computer.
Claims
1. A mobile computer system, comprising: a mobile computer including: a first housing; a first electrical connector disposed on the first housing; a first processor in electrical communication with the first electrical connector; a first non-transitory memory in electrical communication with the first processor and configured to store data; a first antenna; first input/output (I/O) electronics in electrical communication with the first processor and the first antenna, and configured to communicate over respective communications channels via the first electrical connector and the first antenna; and a releasable scan engine module including: a second housing; a second electrical connector adapted to form an electrical connection with the first electrical connector when the removable scan engine module is in an engaged state with the mobile computer; a second processor in electrical communication with the second electrical connector; a second non-transitory memory in electrical communication with the second processor and configured to store data; a second antenna; second I/O electronics in communication with the second processor, and configured to communicate data over respective communications channels via the second electrical connector and the second antenna; and an optical sensor configured to capture image signals representative of the machine-readable indicia, the second processor being configured to decode the captured image signals and to produce decoded data represented by the machine-readable indicia.
2. The mobile computer system according to claim 1, wherein the first and second processors are configured to communicate via the first and second electrical connectors when in physical and electrical contact with one another when the releasable scan engine module is in an attached state.
3. The mobile computer system according to claim 1, wherein the first and second processors are configured to automatically communicate via the first and second antennas when the releasable scan engine module is in a released state such that the first and second electrical connectors are physically and electrically separated from one another.
4. The mobile computer system according to claim 1, further comprising an illuminator configured to illuminate the machine-readable indicia to be read by the removable scan engine module.
5. The mobile computer system according to claim 1, wherein the removable scan engine module further includes a rechargeable battery that, when the first and second electrical connectors are connected to one another, is recharged by the mobile computer.
6. The mobile computer system according to claim 1, wherein the releasable scan engine module is configurable to operate in either a live mode or a batch scan mode when detached from the mobile computer.
7. The mobile computer system according to claim 1, wherein the releasable scan engine module, in being configured in a single scan mode, is configured to; scan the machine-readable indicia; decode the machine-readable indicia to generate decoded data represented by the machine-readable indicia; and automatically communicate the decoded data via the second antenna over a wireless communications channel to the first antenna for the first processor to store the decoded data in the first non-transitory memory.
8. The mobile computer system according to claim 1, wherein the first housing defines a cavity within which the releasable scan engine module is removably attachable, and to enable the first and second connectors to be in electrical contact with one another.
9. The mobile computer system according to claim 1, wherein in response to the first and second connectors being connected to one another, the first processor is configured to download multiple decoded data of machine-readable indicia that that was batch scanned by the releasable scan engine.
10. The mobile computer system according to claim 9, wherein the first processor is configured to poll the second processor to cause the first processor to download the multiple decoded data of machine-readable indicia.
11.-16. (canceled)
17. A mobile computer system comprising: a mobile computer; and a releasable scan engine module configured to operate autonomously from the mobile computer in scanning and decoding machine-readable indicia, the mobile computer being configured to automatically identify the releasable scan engine module via a wired communications channel and a wireless communications channel, wherein the releasable scan engine module is configured to automatically communicate with the mobile computer in either a connected state or released state to enable the scan engine module to: scan a machine-readable indicia; decode the machine-readable indicia to generate decoded data represented by the machine-readable indicia; determine if the releasable scan engine module is in communication with the mobile computer, and if so, communicate the decoded data to the mobile computer via the wired communications channel, otherwise, determine if the releasable scan engine module is in communication with the mobile computer via the wireless communications channel, and if so, communicate the decoded data via the wireless communications channel to the mobile computer, otherwise, determine if the releasable scan engine module is not in communication with the mobile computer via the wireless communications channel, and if so, store the decoded data into a non-transitory memory.
18. A mobile computer system comprising: a mobile computer; and a releasable scan engine module configured to operate autonomously from the mobile computer in scanning and decoding machine-readable indicia, the mobile computer being configured to automatically identify the releasable scan engine module via a wired communications channel and a wireless communications channel, wherein the mobile computer is further configured with an electrical connector to which a reciprocal electrical connector on the releasable scan engine module is configured to physically and electrically connect, and in response to being physically and electrically connected, the releasable scan engine module being configured to upload a batch of decoded data representative of a plurality of machine-readable indicia decoded by the releasable scan engine module when in a released state.
19. A mobile computer system comprising: a mobile computer including an electrical connector disposed on a housing thereof; a releasable scan engine module configured to operate autonomously from the mobile computer in scanning and decoding machine-readable indicia, the mobile computer being configured to automatically identify the releasable scan engine module via a wired communications channel and a wireless communications channel; and a holder configured with an electrical connector that physically and electrically connects to the electrical connector of the mobile computer, the holder being configured to enable the releasable scan engine module to indirectly electrically connect to the electrical connector of the mobile computer when the releasable scan engine is in an engaged state with the holder.
20. A mobile computer system comprising: a mobile computer; and a releasable scan engine module configured to operate autonomously from the mobile computer in scanning and decoding machine-readable indicia, the mobile computer being configured to automatically identify the releasable scan engine module via a wired communications channel and a wireless communications channel, wherein the mobile computer is further configured to automatically identify the releasable scan engine with a setting having at least one parameter in a configuration file of the mobile computer such that the releasable scan engine module is automatically identified, thereby allowing the user to wirelessly use the releasable scan engine module without having to perform a manual registration of the releasable scan engine module and mobile computer.
21. The mobile computer system of claim 1, wherein the mobile computer is a vehicle mounted mobile computer.
22. The mobile computer system of claim 1, wherein the releasable scan engine is configured to transmit an image of the machine-readable indicia to the mobile computer.
23. The mobile computer system of claim 22, wherein the mobile computer is further configured to transmit the image to remote cloud services configured to perform further analysis on the image.
24. The mobile computer system of claim 22, wherein the image is transmitted from the releasable scan engine to the mobile computer responsive to an unsuccessful decoding by the releasable scan engine.
25. The mobile computer system of claim 22, wherein the mobile computer is configured to perform decoding of the machine-readable indicate from the image and transmit releasable scan engine is configured to transmit a confirmation of the decoding to the releasable scan engine.
26. The mobile computer system of claim 1, wherein the second housing of the releasable scan engine module is configured as a wearable device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Illustrative embodiments of the present invention are described in detail below with reference to the attached drawing figures, which are incorporated by reference herein and wherein:
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
DETAILED DESCRIPTION OF THE DRAWINGS
[0021] With regard to
[0022] In operation, with the scan engine module 104 being either directly or indirectly physically and electrically connected to the mobile computer 102, control of the scan engine module 104 may be managed directly from the mobile computer 102. To initiate a scanning operation, a physical button on any of the mobile computer 102, scan engine module 104, or a virtual button on an electronic display of the mobile computer 102 may be activated by a user. A resulting decoded code (i.e., information or data represented by the machine-readable indicia) from the scan may be displayed on the electronic display of the mobile computer 102. Also the scan engine module 104 may have a display for use in displaying control features and/or data, such as decoded data represented by a machine-readable indicia. Other functions that use the decoded code or data may be performed by the mobile computer 102, as well.
[0023] With regard to
[0024] In operation, with the scan engine module 104 being removed from being directly or indirectly physically and electrically connected to mobile computer 102, the scanning operation may be managed from the scan engine module 104. The scanning operation may be started or triggered by an operator activating (e.g., pressing) the physical button 120 or any other scan trigger mechanism of the module 104. In an alternative embodiment, an alternative trigger action, such as a gesture (e.g., certain preset movement) with the module 104, may be performed to initiate a scan operation by the scan engine module 104.
[0025] The scan engine module 104 may be configured in one of three optional modes, including (i) a batch mode, (ii) a “live” mode, or (iii) a live mode and batch feedback mode. In the live mode, the mobile computer 102 may be configured to control the scan engine module 104 as if the mobile computer 102 and scan engine module 104 were in electrical connection with one another. In the batch mode, the mobile computer 102 may be configured to control the scan engine module 104 when the scan engine module 104 is placed in electrical connection with the mobile computer 102. Communication of the decoded data between the scan engine module 104 and the mobile computer 102 may be performed. The resulting decoded data representative of the scanned codes or machine-readable indicia may be communicated to the mobile computer 102 individually or in a batch of multiple decoded data or codes depending on the mode in which the scan engine module 104 is set. It should be understood that the releasable scan engine module 104 may be automatically set based on being in wireless communication with the mobile computer 102 or not. Alternatively, the user may override the autonomous setting of the module 104.
[0026] With regard to
[0027] With regard to
[0028] With regard to
[0029] The releasable scan engine 404 may be physically and electrically connected to the mobile computer via electrical connectors 420a and 420b (collectively 420) adapted to connect with one another. The electrical connections 420 may utilize any connector configuration, either standard or proprietary. The releasable scan engine module 404 may be releasably connected to the mobile computer 402 through use of quick disconnect hardware (see for example,
[0030] The releasable scan engine module 404 is shown to communicate data 422a to the processor 406 in the engaged state (i.e., when releasably physically and electrically connected) with the mobile computer 402, and to communicate data 422b via a bi-directional wireless communications channel 424 when the releasable scan engine module 404 is in a released state (i.e., when not releasably physically and electrically connected to the mobile computer 402).
[0031] The releasable scan engine module 404 may include a processor 426 that executes software 428 so as to perform the functionality of the scan engine module 404 as further provided herein. The processor 426 may be in communication with a non-transitory memory 430 and configured to store data and software. An illumination device 432 may include a bright light to illuminate a machine-readable indicia. The processor 426 may further be in communication with I/O electronics 434 configured to communicate data over the wireless communications channel 424 and with the mobile computer 402 via electrical connectors 420b and 420a. An image sensor 436 may be configured to receive illumination signals when an operator is using the releasable scan engine module 404 in either the retained or released state to capture images of machine-readable indicia. The image sensor 436 may be configured to capture images and/or light pulses, if using a laser scanner. The illuminator 432 may further or alternatively be configured with a laser to perform laser scanning, as understood in the art.
[0032] The scan engine module 404 may further be configured with optics that are used to illuminate light an image scene onto the image sensor 436. In an embodiment, optics and lights, such as an aiming light or light guides to help a user to better aim the releasable scan engine module 404 in scanning a machine-readable indicia, may be provided. In an embodiment, the optics 438 may include an illuminator that produces a light indicator that may be turned on to indicate whether the module 404 correctly or incorrectly decodes a machine-readable indicia. The optics may include optics for light beams that exit the module 404 and that enter the module to be incident on the image sensor 436.
[0033] An electronic display 440 may be configured to display data for an operator to view and/or establish settings for the releasable scan engine module 404. The module 404 may further include a battery 442, such as a rechargeable battery, that is used to power electric devices on the module 404. To charge the rechargeable battery 442, power from the mobile computer 402 may be delivered to the module 404.
[0034] The module 404 may further be configured with an accelerometer or angle switch, for example, that turns on the scan engine module 404 when rotated by 90 degrees, for example, to replicate starting a car. Still yet, a microphone may be included with the module 404 to enable an operator to provide voice commands that the processor of the module may identify and follow. The module 404 may further be configured to provide haptic feedback (e.g., vibrator) and/or visual feedback (e.g. LED(s)) to assist the user to perform scanning operations. Still yet, the module 404 may include a speaker to provide audible output and/or small electronic display, possible textual.
[0035] The decoded data may be communicated via the wireless communications channel 424 by the processor 426 via the I/O electronics 434 and antenna 444. A hard-button 446 may be provided for the operator to press to cause the image sensor 436 to capture an image of the machine-readable indicia. In an embodiment, in response to the user pressing the button 446, a signal may be communicated to the processor 426, which may trigger the image sensor 436 to capture an image, and further causing the processor to decode image data and to generate decoded data representative of information encoded in the machine-readable indicia. The illuminator 432 and/or optics/lights 438 may additionally be activated in response to the hard-button 446 being pressed or otherwise activated. As further described herein, the processor may be configured by the software 428 to either communicate the decoded data back to the mobile computer 402 or store of the decoded data in the memory 430 in a batch mode until the releasable scan engine module 404 is placed back into an engaged state (i.e., reconnected) with the mobile computer 402. As an alternative to the hard-button 446, alternative scan triggers may be provided, such as a touch soft-button, gestures sensed by one or more accelerometers (not shown), microphone (not shown) used to receive vocal commands along with a processor (or the processor 426) that transcribes the voice commands to text for processing, and/or other trigger mechanism.
[0036] In an embodiment, the module 404 may capture and send captured images. The mobile computer 402 may be configured to update software and/or firmware of the module 404. The data communications may range from a few KB to several MBs of data. In the event that engine module is not able to correctly decode the machine-readable indicia, the module 404 may save the image, and then send, to the mobile computer 402, the scanned image either wirelessly or when physically connected or docked to the mobile computer 402. The scanned image may be analyzed further by the processor 406 of the mobile computer 402, thereby taking advantage of potentially more powerful computing resources of the processor 406 of the mobile computer 402 over the processor 426 of the releasable scan engine module 404. In an embodiment, the scanned image may be analyzed further by remote cloud services, such as in the case that the mobile computer 402 may remotely connect to cloud services. If, for example, a certainty of decoding parameter is below a certain value (e.g., below 90%), the processor 426 may communicate captured image data of the machine-readable indicia to receive a confirmation of the decoded data either real-time or non-real-time.
[0037] With regard to
[0038] If, at step 506, the determination is that the scan engine module is not electrically connected to the parent unit, then a determination at step 510 may be made as to whether the scan engine module is wirelessly connected to the parent unit. If so, then at step 512, the decoded data may be individually or batch uploaded via a wireless communications channel to the parent unit. If, at step 510, it is determined that the releasable scan engine module is not wirelessly connected to the parent unit, then the process may return to step 502 to enable the releasable scan engine module to continue being used to scan machine-readable indicia, and upload the decoded data of the machine-readable indicia to the parent unit depending on the connection and communication states as provided in steps 506 and 510.
[0039] In an embodiment, if the scan engine module is unused for a certain period of time, the scan engine module can also sleep automatically. In an embodiment, an number of trigger actions may wake up the scan engine module, which may also cause the scan engine module to pair with the mobile computer, if still available. Otherwise, if the scan engine module does not pair up with a local mobile computer, the scan engine module may operate in batch mode. The scan engine module may also wake up when attached to mobile computer, which may trigger the pairing procedure to enable the scan engine module to perform a batch download, for example, or otherwise be available for a user to use in scanning machine-readable indicia. In an embodiment, the mobile computer and/or releasable scan engine module may be configure with “find my parent”/“find my child” functions.
[0040] With regard to
[0041] With regard to
[0042] Release buttons 718a and 718b (collectively 718) may be configured to provide a quick attach/detach (quick connect/release) of the scan engine module 704 from the holder 706. In operation, a user may press or slide one or both of the release buttons 718, thereby enabling the scan engine module 704 to be released from the holder 706. The use of two release buttons 718 may help to reduce the chance of the releasable scan engine module 704 from inadvertently detaching from the holder 706, but one or more than two release buttons or other mechanisms may alternatively be utilized.
[0043] In an alternative embodiment, magnets may be used to releasably engage and disengage the scan engine module 704 with the mobile computer 702, holder 706 with the mobile computer 702, and/or module 704 with the holder 706. In an embodiment, a mechanical slider may be used to securely fasten the module 706 with the mobile computer 702 and/or holder 706.
[0044] As shown in
[0045] With regard to
[0046] As shown in
[0047] With regard to
[0048] In summary, the module 704 may be lightweight (e.g., a few ounces), ergonomic (e.g., easily and comfortably fits within a human hand), and optionally wearable. In terms of being wearable, a strap or other fastener to support the module 704 on a human body or clothing may be utilized. In an embodiment, a holder (not shown) configured to be worn on a human body or clothing that is also configured to releasably engage the module 704 may be utilized. In an embodiment, the module 704 may be configured with a lanyard, ring-like feature to enable wearing, and/or have a flat or shaped metallic surface to match some magnetic wearable companion, such as a bracelet. The module 704 may be physically robust to avoid damage in the event of being dropped.
[0049] With regard to
[0050] The releasable scan engine module may be configured to be shared among different and possibly heterogeneous mobile computers that are configured to physically and communicatively support the releasable scan engine module. For example, if a user uses the releasable scan engine module with a first mobile computer and then transitions to a second mobile computer (e.g., vehicle-mounted mobile computer), then the same releasable scan engine module may be used with both mobile computers.
[0051] With regard to
[0052] With regard to
[0053] At step 1004, a determination may be made as to whether a new electrical connection of the scan engine module is identified. The new electrical connection may be identified when the releasable scan engine module is directly or indirectly physically and electrically releasably connected to the mobile computer. In the releasable scan engine module being physically and electrically releasably connected to the mobile computer, electrical conductors may be used to enable electrical signals to be communicated between the processors of the releasable scan engine module and mobile computer. In an embodiment, the electrical conductors may extend from the processor of the mobile computer to a connector on the housing of the mobile computer, while electrical conductors may also extend from the processor of the releasable scan engine module to a connector on the housing thereof. When the respective electrical conductors are either directly or indirectly in electrical contact with one another, the determination at step 1004 is YES.
[0054] At step 1006, decoded machine-readable indicia data may be polled and/or received in either single or batch communications. In an embodiment, the mobile computer may poll the releasable scan engine module in response to detecting that the releasable scan engine module is either directly or indirectly electrically connected to the mobile computer at step 1004. The detection may include determining a model of the module (e.g., 1D, 2D, etc.). The decoded data may be uploaded from the releasable scan engine module in a single mode (i.e., one at a time) or batch mode (i.e., multiple at a time) depending on a setting of either or both the mobile computer and the releasable scan engine module.
[0055] At step 1008, a determination may be made as to whether the releasable scan engine module is in a scan data mode. If so, then the releasable scan engine module may be triggered by the user to capture and decode images of machine-readable indicia repeatedly while connected to the mobile computer at steps 1006 and 1008. Otherwise, if the releasable scan engine module is not determined to be in the scan data mode at step 1008, then the process 1000 may return to step 1004 to wait until the releasable scan engine module releasably reconnects with the mobile computer after being released therefrom. It should be understood that the process provided in
[0056] One embodiment of a method of scanning a machine-readable indicia may include, in response to determining that the scan engine module is in an engaged state and electrically connected to a computer, communicating the decoded data to the computer via a wired communications channel. Otherwise, in response to determining that the scan engine module is in a released state and wirelessly connected to the computer, communicate the decoded data to the computer via a wireless communications channel.
[0057] In response to determining that the scan engine module is in a released state and not wirelessly connected to the computer, the decoded data may be stored in a non-transitory memory. In response to the scan engine module being electrically connected to the mobile computer, the decoded data may be communicated to the mobile computer via the wired communications channel.
[0058] While the scan engine module is in a released state, the scan engine module may be enabled to scan at least one second machine-readable indicia, decode the second machine-readable indicia(s) to generate at least one second decoded data, and store the second decoded data in a non-transitory memory of the scan engine module. In response to the scan engine module being electrically connected to the mobile computer, the stored decoded data may be communicated or uploaded via the electrical communications channel. In an embodiment, the scan engine module automatically wirelessly synchronized with the mobile computer.
[0059] In an embodiment, the process may further include capturing an image of the machine-readable indicia in response to determining that the scan engine module failed to decode a machine-readable indicia. Alternatively, an image of the machine-readable indicia may be captured with every scan. The image of the machine-readable indicia may be communicated to the mobile computer for decoding thereby. Such a process may be used to take advantage of potentially higher computing power than available on the scan engine module.
[0060] One embodiment of a mobile computer system may include a mobile computer, and a releasable scan engine module configured to operate autonomously from the mobile computer in scanning and decoding machine-readable indicia. The mobile computer may be configured to automatically identify the releasable scan engine module via a wired communications channel and a wireless communications channel.
[0061] The releasable scan engine module may be configured to automatically communicate with the mobile computer in either a connected state or released state to enable the scan engine module to (i) scan a machine-readable indicia, (ii) decode the machine-readable indicia to generate decoded data represented by the machine-readable indicia, (iii) (a) determine if the releasable scan engine module is in communication with the mobile computer, and if so, communicate the decoded data to the mobile computer via the wired communications channel, (b) otherwise, determine if the releasable scan engine module is in communication with the mobile computer via the wireless communications channel, and if so, communicate the decoded data via the wireless communications channel to the mobile computer, (c) otherwise, determine if the releasable scan engine module is not in communication with the mobile computer via the wireless communications channel, and if so, store the decoded data into a non-transitory memory.
[0062] The mobile computer may further be configured with an electrical connector to which a reciprocal electrical connector on the releasable scan engine module is configured to physically and electrically connect, and in response to being physically and electrically connected, the releasable scan engine module being configured to upload a batch of decoded data representative of a plurality of machine-readable indicia decoded by the releasable scan engine module when in a released state.
[0063] The mobile computer may further be configured with an electrical connector disposed on a housing thereof, and a holder may be configured with an electrical connector that physically and electrically connects to the electrical connector of the mobile computer. The holder may be configured to enable the releasable scan engine module to indirectly electrically connect to the electrical connector of the mobile computer when the releasable scan engine is in an engaged state with the holder.
[0064] The mobile computer may further be configured to automatically identify a releasable scan engine with a setting having at least one parameter in a configuration file of the mobile computer such that the releasable scan engine module is automatically identified, thereby allowing the user to wirelessly use the releasable scan engine module without having to perform a manual registration of the releasable scan engine module and mobile computer.
[0065] The foregoing method descriptions and the process flow diagrams are provided merely as illustrative examples and are not intended to require or imply that the steps of the various embodiments must be performed in the order presented. As will be appreciated by one of skill in the art, the steps in the foregoing embodiments may be performed in any order. Words such as “then,” “next,” etc. are not intended to limit the order of the steps; these words are simply used to guide the reader through the description of the methods. Although process flow diagrams may describe the operations as a sequential process, many of the operations may be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function or the main function.
[0066] The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed here may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
[0067] Embodiments implemented in computer software may be implemented in software, firmware, middleware, microcode, hardware description languages, or any combination thereof. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to and/or in communication with another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
[0068] The actual software code or specialized control hardware used to implement these systems and methods is not limiting of the invention. Thus, the operation and behavior of the systems and methods were described without reference to the specific software code being understood that software and control hardware can be designed to implement the systems and methods based on the description here.
[0069] When implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable or processor-readable storage medium. The steps of a method or algorithm disclosed here may be embodied in a processor-executable software module which may reside on a computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable media includes both computer storage media and tangible storage media that facilitate transfer of a computer program from one place to another. A non-transitory processor-readable storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such non-transitory processor-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other tangible storage medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer or processor. Disk and disc, as used here, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a non-transitory processor-readable medium and/or computer-readable medium, which may be incorporated into a computer program product.
[0070] The previous description is of a preferred embodiment for implementing the invention, and the scope of the invention should not necessarily be limited by this description. The scope of the present invention is instead defined by the following claims.