WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Keyboard emulation system providing audible feedback without a built-in transducer    
United States Patent5034598   
Link to this pagehttp://www.wikipatents.com/5034598.html
Inventor(s)Poland; McKee D. (Portola Valley, CA)
AbstractThe system unit of an IBM compatible personal computer generates a distinctive audible "Beep" signal from the system unit's own sound transducer in response to the successful decode of a barcode label in a keyboard emulation data collection device such as a barcode reader. To initiate the generation of such a Beep by the system unit, the keyboard emulation system simulates a benign error condition which does not affect the operation of any application programs resident in the system unit and which does not require any modifications to the operating system or any special device drivers for its proper operation. The successful collection of encoded character data and transmission of that data to the keyboard port of a host computer by a relatively unsophisticated operator is further enhanced by built-in logic for reliably and simply deducing which keyboard communication protocol from several candidates is currently in use and for deducing the status of the computer's Caps Lock flag by eliciting a Reset Status Indicators command from the system unit. If the Caps Lock flag is in its shifted state, all case sensitive data is automatically transposed so that it will be correctly interpreted.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Inventor     Poland; McKee D. (Portola Valley, CA)
Owner/Assignee     Hewlett-Packard Company (Palo Alto, CA)
Patent assignment
All assignments
Publication Date     July 23, 1991
Application Number     07/458,955
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     December 29, 1989
US Classification     235/435 235/439 235/462.15 341/13 341/26 341/27 341/31
Int'l Classification     G06K 007/00 H03K 017/94 G06F 007/00 G09G 003/02
Examiner     Levy; Stuart S.
Assistant Examiner     Sikorski; Edward H.
Attorney/Law Firm    
Address
Parent Case    
Priority Data    
USPTO Field of Search     235/419 235/472 235/462 235/439 235/472 340/502 340/707 341/13 341/14 341/20 341/26 341/27 341/31 364/709.01 364/709.02 364/709.06 364/709.09 364/709.11 364/237.85
Patent Tags     keyboard emulation providing audible feedback without built-in transducer
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4937778
Wolf
710/67
Jun,1990

[0 after 0 votes]
4920488
Filley
705/28
Apr,1990

[0 after 0 votes]
4894522
Elliott
235/462.15
Jan,1990

[0 after 0 votes]
4864302
Bowers
341/13
Sep,1989

[0 after 0 votes]
4861972
Elliott
235/462.15
Aug,1989

[0 after 0 votes]
4825058
Poland
235/462.01
Apr,1989

[0 after 0 votes]
4804949
Faulkerson
345/166
Feb,1989

[0 after 0 votes]
4761544
Poland
235/462.18
Aug,1988

[0 after 0 votes]
4481412
Fields
235/462.49
Nov,1984

[0 after 0 votes]
4470038
Amano
341/26
Sep,1984

[0 after 0 votes]
4423319
Jacobsen
235/472.03
Dec,1983

[0 after 0 votes]
4418277
Tremmel
235/472.02
Nov,1983

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. For use with a computer system unit or computer terminal unit comprising a keyboard port and a sound transducer and utilizing a predetermined keyboard communication protocol for inputting data from a keyboard unit via the keyboard port as a sequence of keyscan codes, the protocol including provision for signifying at least one predetermined benign error condition within the keyboard unit which causes an audible error signal to be generated by said sound transducer, a keyboard emulator comprising:

input means for converting a machine-readable symbol into a digital representation of a message comprising one or more character codes;

output means responsive to the input means for:

a) translating said character codes into keyscan codes;

b) emulating said predetermined benign error condition by including at least one special error code with said keyscan codes whenever said input means successfully translates said machine-readable symbol into a corresponding sequence of character codes, said special error code having no effect on the processing of said keyscan codes by the computer when said keyscan codes are transmitted to said keyboard port; and

c) transmitting said keyscan codes and special error code to said keyboard port in accordance with said keyboard communication protocol, whereby whenever the input means converts a machine-readable symbol and corresponding keyscan codes and special error code are transmitted to the keyboard port of the computer from the output means, the computer will produce an audible error signal.

2. The keyboard emulator of claim 1 wherein

said keyboard emulator is an elongated contact-type barcode reader which does not contain any sound transducer.

3. The keyboard emulator of claim 1 wherein

said benign error condition is emulated by transmitting a predetermined keyscan code to said system or terminal unit, and

said system or terminal unit is programmed to cause said sound transducer to generate an audible error signal whenever said predetermined keyscan code is received at said keyboard port.

4. The keyboard emulator of claim 3 wherein said computer is an IBM PC compatible computer which in its standard configuration generates an audible "Beep" in response to a keyscan code of "FFH" and said benign error condition is signified by at least one such "FFH" keyscan code.

5. The keyboard emulator of claim 3 wherein said computer is an IBM PC compatible computer which in its standard configuration generates an audible "Beep" in response to a keyscan code of "00H" and said benign error condition is signified by at least one such "00H" keyscan code.

6. The keyboard emulator of claim 3 wherein

said machine-readable symbol includes a portion which is converted and translated into said predetermined keyscan code.

7. The keyboard emulator of claim 6 wherein

said symbol is encoded as one or more characters of a Code 128 barcode and said portion is preceded and followed by a predetermined Code 128 function code.

8. The keyboard emulator of claim 6 wherein

said keyboard emulator is an elongated wand which does not contain any sound transducers, and

said computer system or terminal unit contains an internal sound transducer means programmed to generate an audible "Beep" in response to said predetermined keyscan code.

9. The keyboard emulator of claim 1 further comprising

status means responsive to a status command from the computer for deducing status of a shift state status flag, and

transposing means responsive to the deducing means and the input means for transposing shift states of predetermined keyboard characters prior to encoding by the output means whenever said shift state status flag is in an activated state.

10. The keyboard emulator of claim 9 wherein the keyboard is a Mode 2 IBM compatible keyboard, the system unit or terminal unit is an IBM AT or PS/2 compatible system unit,

the status means transmits a predetermined status change keyscan code prior to each transmission of a decoded and converted message to the computer, and

said status command is a Reset Status Indicators command transmitted by the system unit to the keyboard unit in response to said predetermined status change keyscan code.

11. The keyboard emulator of claim 10 wherein

said predetermined keyboard keys are alphabetic keys, and

said predetermined status change keyscan code is a Caps Lock keyscan code.

12. The keyboard emulator of claim 11 wherein

the status means transmits a second said Caps Lock keyscan code subsequent to each said transmission to return the shift state status flag to its state prior to said transmission.

13. The keyboard emulator of claim 1, further comprising:

verification means for verifying whether the message is a legal message;

header means for generating a "good read" message header comprising at least one predetermined keyscan code signifying said benign error condition; and

communication means responsive to the verification means and the header means for transmitting the legal message header and the keyscan codes corresponding to the legal message to the keyboard port in accordance with the predetermined keyboard communication protocol.

14. The keyboard emulator of claim 13 wherein

said verification means further comprises misread detector means for detecting a "no-read" condition signifying that the machine readable symbol being processed by the input means could not be converted into a legal message and

said communication means transmits a "no-read" message in response thereto.

15. The keyboard emulator of claim 14 wherein

said "no-read" message comprises at least two said predetermined keyscan codes, and

said "good read" message header and said "no-read" message cause the computer to produce different respective audible responses.

16. The keyboard emulator of claim 13 wherein said computer is an IBM PC compatible computer which in its standard configuration generates an audible "Beep" in response to a keyscan code of "FFH" and said benign error condition is signified by at least one such "FFH" keyscan code.

17. The keyboard emulator of claim 13 wherein said computer is an IBM PC compatible computer which in its standard configuration generates an audible "Beep" in response to a keyscan code of "00H" and said benign error condition is signified by at least one such "00H" keyscan code.

18. The keyboard emulator of claim 13 further comprising

mode means for determining whether said keyboard communication protocol is a particular predetermined protocol.

19. The keyboard emulator of claim 18 wherein said header means and said communication means are responsive to said mode means.

20. The keyboard emulator of claim 18 wherein

said particular predetermined protocol is an IBM compatible Mode 2 protocol,

said emulator is being used as a replacement for said keyboard unit, and

said mode means further comprises

sending means for causing the emulator to send a Mode 2 Basic Assurance Test Completion code and

deducing means for determining whether the system unit's response to the Mode 2 Basic Assurance Test Completion code is in accordance with said IBM compatible Mode 2 protocol.

21. The keyboard emulator of claim 18 wherein

said particular predetermined protocol is an IBM compatible Mode 2 protocol,

said emulator is being used concurrently with said keyboard unit, and

said mode means further comprises

monitoring means for causing the emulator to eavesdrop on transmissions between the keyboard unit and the system unit until a Basic Assurance Test Completion code is detected and

deducing means for determining whether the Basic Assurance Test Completion code is in accordance with said IBM compatible Mode 2 protocol.

22. The keyboard emulator of claim 13 further comprising

status means responsive to a status command from the computer for deducing status of a shift state status flag, and

transposing means responsive to the deducing means and the input means for transposing shift states of predetermined keyboard characters prior to encoding by the output means whenever said shift state status flag is in an activated state.

23. The keyboard emulator of claim 22 wherein

the keyboard is a Mode 2 IBM compatible keyboard,

the system unit or terminal unit is an IBM AT or PS/2 compatible system unit,

the status means transmits a predetermined status change keyscan code prior to each transmission of a decoded and converted message to the computer, and

said status command is a Reset Status Indicators command transmitted by the system unit to the keyboard unit in response to said predetermined status change keyscan code.

24. The keyboard emulator of claim 23 wherein

said predetermined keyboard keys are alphabetic keys, and

said predetermined status change keyscan code is a Caps Lock keyscan code.

25. The keyboard emulator of claim 24 wherein

the status means transmits a second said Caps Lock keyscan code subsequent to each said transmission to return the shift state status flag to its state prior to said transmission.

26. The keyboard emulator of claim 1 further comprising mode means for determining whether said keyboard communication protocol is a particular predetermined protocol.

27. The keyboard emulator of claim 26 wherein said particular predetermined protocol is an IBM compatible Mode 2 protocol;

said emulator is being used as a replacement for said keyboard unit, and

said mode mans further comprises

sending means for causing the emulator to send a Mode 2 Basic Assurance Test Completion code and

deducing means for determining whether the system unit's response to eh Mode 2 Basic Assurance Test Completion code is in accordance with said IBM compatible Mode 2 protocol.

28. The keyboard emulator of claim 26 wherein said particular predetermined protocol is an IBM compatible Mode 2 protocol,

said emulator is being used concurrently with said keyboard unit, and

said mode mans further comprises

monitoring means for causing the emulator to eavesdrop on transmissions between the keyboard unit and the system unit until a Basic Assurance Test Completion code is detected and

deducing means for determining whether the Basic Assurance Test Completion code is in accordance with said IBM compatible Mode 2 protocol.

29. For use with a computer system unit or computer terminal comprising a keyboard port and utilizing an IBM compatible Mode 2 keyboard communication protocol for inputting data from a keyboard unit via the keyboard port as a sequence of keyscan codes, a keyboard emulator comprising:

input means for converting a machine-readable symbol into a digital representation of a message comprising one or more character codes;

output means responsive to the input means for transmitting said message to said keyboard port in accordance with said keyboard communication protocol as a corresponding sequence of keyscan codes;

status means for

transmitting a predetermined status change keyscan code prior to each transmission of a decoded and converted message, and

for deducing status of a shift state status flag from a Reset Status Indicators command transmitted to the keyboard unit in response to said predetermined status change keyscan code; and

transposing means responsive to the deducing means and the input means for transposing shift states of predetermined keyboard characters prior to encoding by the output means whenever said shift state status flag is in an activated state.

30. The keyboard emulator of claim 29 wherein

said predetermined keyboard keys are alphabetic keys, and

said predetermined status change keyscan code is a Caps Lock keyscan code.

31. The keyboard emulator of claim 30 wherein

the status means transmits a second said Caps Lock keyscan code subsequent to each said transmission to return the shift state status flag to its state prior to said transmission.

32. The keyboard emulator of claim 29 wherein

said particular predetermined protocol is an IBM compatible Mode 2 protocol,

said emulator is being used as a replacement for said keyboard unit, and

said emulator further comprises

sending means for causing the emulator to send a Mode 2 Basic Assurance Test Completion code and

mode means for determining whether the system unit's response to the Mode 2 Basic Assurance Test Completion code is in accordance with said IBM compatible Mode 2 protocol.

33. The keyboard emulator of claim 29 wherein

said particular predetermined protocol is an IBM compatible Mode 2 protocol,

said emulator is being used concurrently with said keyboard unit, and

said emulator further comprises

monitoring means for causing the emulator to eavesdrop on transmissions between the keyboard unit and the system unit until a Basic Assurance Test completion code is detected and

mode means for determining whether the Basic Assurance Test Completion code is in accordance with said IBM compatible Mode 2 protocol.
 Description Submit all comments and votes
 


FIELD OF INVENTION

The present invention relates to a keyboard emulator type of data collection device, and more particularly to improvements in the operator interface thereof whereby the operator is assured of the successful collection of encoded character data and transmission of that data to the keyboard port of a host computer even if the operator is not viewing the decoded data as it is processed by the computer.

BACKGROUND OF THE INVENTION

A keyboard is an example of a manual data collection device for a computer system. Typically, an operator depresses keys similar to those of a typewriter or an adding machine, and the individual keystrokes are sequentially converted by built-in switches and logic circuitry within the keyboard unit into a sequence of keyscan codes, each corresponding to the actuation of a key on the keyboard. The sequence of keyscan codes is thereafter converted into a corresponding sequence of alphanumeric (e.g., A-Z, a-z, 0-9), symbol (e.g., !, @, #, $, %) and/or function (e.g., [enter], [backspace], etc) character codes. A commonly used set of such character codes is the 7-bit ASCII (American Standard Code for Information Interchange) code, which also exists in various "extended" 8-bit versions.

In many small computer systems, including the ubiquitous "IBM-compatible personal computer", a keyboard unit transmits keyscan codes to a system unit via a keyboard port, and the system unit converts the keyscan codes to character codes which serve as input data to various user-oriented applications programs. Two sets of such keyscan codes are in common use, a "Code 1" code set typically associated with the original IBM PC and characterized by only 10 function keys and an integrated numeric/cursor keypad, and a "Code 2" code set associated with the IBM AT and characterized by 12 function keys and dedicated cursor keys.

In such a system, a programmed microprocessor inside the keyboard unit performs a number of functions, including self-test, scans the individual keys to determine their respective states, generates a keyscan code each time one of the keys changes state ("make" or "break"), stores up to 16 keyscan codes in a buffer, and transfers each keyscan code from the buffer to the system unit in accordance with a defined hand-shake protocol. Two such IBM compatible protocols are in common use, which will be referred to herein as "Mode 1" (typically associated with the IBM PC XT) and "Mode 2" (typically associated with the IBM PC AT and the IBM PS/2).

The system unit's operating system software and hardware, typically including Basic Input Output System (BIOS) firmware provided by the computer manufacturer, then converts the keyscan code signal appearing at the keyboard port into a corresponding sequence of character codes and/or status flags in a form usable by the application programs. In particular, a keyboard I/O driver (or a special purpose driver included as part of a particular application program) handles the "hand-shake" protocol used to transfer keyscan data from the keyboard unit to the computer, defines which keys are given the attributes of typematic, shift, toggle, and/or control, and updates one or more shift state flags used to process the next incoming keyscan code. The actual code and protocol used will depend on the type of computer: The most common types of keyboards are the 84 key keyboard typically used with the IBM PC XT (Code 1) and the "enhanced" 101/102 key keyboard typically associated with the IBM PC AT (Code 2). These two computer types are normally associated respectively with the two aforementioned protocols (Mode 1 and Mode 2); however, as exemplified by certain of the IBM PS/2 personal computers, it is also possible to use a Code 1 code set with a Mode 2 protocol, although most PS/2 models use the Mode 2/Code 2 combination. (In fact, the IBM PS/2 system units are typically programmed to accommodate both the Code 1 and the Code 2 keyscan code sets, as well with a third keyscan code set, known as "Code 3").

When using such an arrangement of keyboard unit and system unit, the operator may press and release the keys faster than the corresponding keyscan codes can be read (and processed into character codes) by the system unit. If the rate at which keyscan codes are entered into the keyboard buffer exceeds the rate at which the keyscan codes are removed from the buffer for transmission, the result will be a "keyboard buffer overflow" condition, which is signified to the system unit of IBM compatible computers by a special keyscan code. The system unit BIOS reacts to this special keyscan code by executing a "Beep" routine, which activates a small loudspeaker or other sound transducer inside the system unit, and thus provides the operator with an audible warning. A similar situation will also be true for the keyboards connected not directly to a system unit, but rather to a terminal connected to a remote host computer, in which case either the remote computer or built in logic within the terminal will detect a benign keyboard error condition and cause a sound transducer inside the terminal to generate a distinctive Beep. It should be noted that the keyboard buffer overflow condition is "benign" in the sense that it has no adverse influence on the operation of the computer system unit (or computer terminal), and the normal operation of the computer continues, but accompanied by an audible signal which alerts the operator to a possible corruption of input data from the keyboard.

Other data collection devices usable with computer systems and computer terminals include contact barcode readers, non-contact (e.g. laser) barcode readers, magnetic stripe readers, electrical multimeters, OCR scanners, and electronic weighing scales.

To accommodate these other types of data input devices (as well as variety of other input and output devices) a small computer typically is also provided with a serial port and the necessary software and hardware to read and write ASCII data to and from the serial port.

A keyboard emulation device may be defined as a data collection device which transmits data to a computer as keyscan codes through the computer's keyboard I/O port, but which obtains the data from a source other than actuation of physical keys on a keyboard unit by an operator. It translates the data it collects into a format acceptable to the computer operating system and transmits the data through the keyboard port according to the standard protocol for the keyboard I/O channel.

Application software created for use with manual keyboard input will thus also work with a keyboard emulator type of data collection device without any modifications to either the application program or the computer operating system. The keyboard emulator can complement or replace the keyboard unit for a given application, allowing efficient data entry. Normally, the keyboard emulator physically connects between the existing keyboard unit and computer, allowing the keyboard unit to remain active in the system, but inserting its own data into the I/O channel when data collection occurs, which may be termed a "T-connector" Mode. A "Keyboard Replacement" Mode is also possible, wherein the keyboard emulator is the only device connected to a particular keyboard port and takes over responsibility for all functions at that port. A particularly important category of keyboard emulation deVices, at least from a commercial point of view, are devices which may be plugged directly into the keyboard port of an "IBM-PC compatible" personal computer without any modifications to the system unit or to any of software used therewith.

Regardless of whether the data originates from a keyboard, from a keyboard emulation device, or from another type of data collection device, it is preferable to provide the operator with visual and/or audible feedback. One example of such feedback is the display of the characters on the computer's video monitor as they are being input from the keyboard. In addition, keyboard units are frequently provided with mechanical or electrical means to generate an audible "click" each time a key is depressed, which provides an audible form of operator feedback. In the case of ASCII data which is input via a serial port, appropriate operator feedback is sometimes provided by means of a special software driver or application program that produces the desired feedback when it detects transmission of ASCII data.

Although the ASCII character set includes a "Bell" character (ASCII 007.sub.10) which typically causes the MS-DOS operating system to generate a Beep (using the computer's built-in sound transducer) if echoed to the display device, many software programs either ignore the Bell character or treat it as just another displayable symbol ( or G). Using a special driver or application program with a keyboard emulation device is especially undesirable because it defeats its primary advantage, which is software transparency. Rather than relying on special application programs and/or device drivers (with their attendant potential incompatibility problems) to properly interpret a special control character as audible feedback, it has thus become common to provide data collection devices (other than keyboards) with a dedicated sound transducer to provide audible feedback each time the input device is activated by the operator and completes a successful operation (such as reading a barcode or other machine readable data compatible with the device). In the case of a data collection device that is intended for use with the serial port of the system unit, this may be accomplished by means of an optional module between the data collection device and the computer's serial input, which is designed to monitor the data line from the input device and produces an audible tone whenever data is being transmitted.

Prior art keyboard emulation systems often employed a sound transducer to provide audible feedback to the user or operator in the form of a beeper module. The beeper module was designed as an integral part of the keyboard emulation system; however, it added cost and bulk to the system, resulted in a product that was inconvenient to hold and/or utilized a separate chassis for the electronics (which was less desirable from an ergonomic point of view), and, since openings in the system package are needed to allow the sound to escape efficiently, compromised the mechanical integrity and sealing of the keyboard emulation system.

When inputting data both from the keyboard and from the data collection device using barcode data in accordance with a symbology (such as Code 128) that has distinct representations for upper and lower case alphabets, it is necessary to verify that any "Caps Lock" key on the associated keyboard had not been left in its "on" state before data was transmitted by the keyboard emulator to the computer. The operator could accomplish this by visually examining a "Caps Lock" indicator on the keyboard or computer screen or by visually examining the input data as displayed on the computer screen. Alternatively, some data collection devices were able to compensate for a set shift state flag automatically, presumably by monitoring all transmissions from the keyboard for Caps Lock and/or Shift keyscan codes, from which it would then be possible to deduce the current state of the shift state flag; however, such an "open loop" solution was inherently unreliable and interfered with the optimal utilization of the emulator's processing capacity.

SUMMARY OF THE INVENTION

A presently preferred embodiment of the invention consists of a method and related apparatus for scanning a barcode symbol into a legal sequence of bars and spaces that may be decoded into a valid sequence of character codes and transmitted as a sequence of keyscan codes in such a way that the keyscan code sequence will be properly decoded by the computer back into the same valid sequence of character codes represented by the originally scanned barcode symbol, without requiring the operator to visually examine the data as it is processed by the computer.

In accordance with a first aspect of the invention, the computer's system unit generates a distinctive audible signal from the system unit's own sound transducer in response to the successful decode of a barcode label in a keyboard emulation barcode reader. To initiate the generation of such a Beep by the system unit, the keyboard emulation system simulates an error condition which does not affect the operation of any application programs and which does not require any modifications to the operating system or any special device drivers for its proper operation.

In the particular case of IBM-compatible personal computers, there are typically two special keyscan codes for indicating a benign error condition that will initiate the generation of the desired Beep, but not otherwise interfere with the computer's normal processing of data: 00H and FFH (the H signifies a number in hexadecimal notation). These particular keyscan codes do not actually correspond to keys on the IBM keyboard, but may signify one of two keyboard errors to BIOS: the overflow of the keyboard unit's internal buffer or a key detection error. Standard versions of BIOS respond by simply discarding the error keyscan code and generating a Beep, and thus the error is "benign" in so far as it has no effect on the normal operation of the computer or on any application program. The sound of such a Beep and the firmware and hardware actually used to generate it may vary amongst models of PC's, but, by the very definition of "IBM compatible" the action taken by the computer's BIOS is consistent. The keyboard emulator system thus is able to provide the operator with an audible confirmation of a successful data collection operation by merely simulating an error in the input process to which the system responds by sounding a Beep to alert the operator to an input error condition that normally would require operator attention. Moreover, since the system unit already includes the necessary sound transducer hardware and firmware to alert the operator in the event such an error occurs, a keyboard emulator system constructed in accordance with the teachings of the present invention no longer needs its own dedicated sound transducer and associated drivers to provide the operator with audible confirmation of a successful read; for the great majority of application programs, this is accomplished regardless of what application programs are actually running and without any modification to the system unit or any of its operating system software.

In one particular embodiment, the keyboard emulator is adapted to interpret specially encoded bar codes printed in a standard symbology such as Code 128, such that sequences of characters within the symbology are mapped to keyscan codes, including the above-mentioned error keyscan code. Since the decoded information is transmitted to the system unit only if it has been successfully read and decoded, it is merely necessary to add the particular keyscan code signifying a keyboard error on the label which will be scanned by the data entry device in order to provide the operator with audible confirmation each time the label is successfully read during a subsequent data collection operation.

In another embodiment having more general applicability, the keyboard emulator system assembles the successfully collected data into a message which additionally incorporates the special keyscan code, for example, in a header that is attached at the beginning of each transmission of data to the system unit. In this case, no special decoding and conversion of barcode data to keyscan codes is necessary. The special keyscan code is merely appended as the decoded barcode ASCII characters are converted to a stream of keyscan codes.

In accordance with a second but related aspect of the invention, when used with an IBM PC AT or other IBM Mode 2 compatible system unit, the keyboard emulator uses the IBM compatible Mode 2 protocol "Reset Status Indicators" command to obtain current keyboard status information maintained by the system unit, including the state of the Caps Lock flag, so that if necessary that flag may be reset to a predetermined "off" state prior to transmitting any keyscan codes; alternatively the keyscan codes may be "preshifted" before transmission. As a result, there is no need for the operator to visually verify that the character data from the keyboard emulator have not been inadvertently shifted by the computer's operating system before being made available to any resident application program.

Preferably, the keyboard emulator includes means for automatically detecting when a particular keyboard communication protocol is in use (for example Mode 2 protocol used by the IBM PC AT and IBM PS/2), and, unless a specific protocol has been preconfigured by the user, uses that information to establish how the scan data is to be translated and transmitted to the computer and/or if and how to determine the current keyboard status information maintained by the computer.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features and advantages of the present invention will be appreciated as the same becomes better understood by reference to the following detailed description when considered in connection the accompanying drawings, wherein:

FIG. 1 shows a presently preferred embodiment of the invention in actual use with a barcode reader as its data collection device;

FIG. 2 is a block diagram of the major components shown in FIG. 1;

FIG. 3 is a circuit diagram of the switching circuitry for temporarily isolating the communications module shown in block form in FIG. 2 from any attached keyboard;

FIG. 4 is a flow diagram of the operation of the communication module during initialization;

FIGS. 5A and 5B respectively are flow diagrams of the operation of the communication module following a successful or unsuccessful scan attempt by the barcode reader; and

FIG. 6 is a flow diagram of the emulation of upper and lower case characters when using a Mode 2 keyboard protocol.

DETAILED DESCRIPTION

FIG. 1 shows a presently preferred embodiment of the invention in the form of a wand shaped self-contained barcode scanning unit 10 which has a cable 12 terminated by a T-connector 14 for interfacing the wand with the computer's system unit 16 and its keyboard unit 18 via cable 20.

The wand 10 preferably is about 160 mm long and about 23 mm in diameter, and is shaped so as to be conveniently held in one hand of an operator. At the end 22 remote from the cable 12, there is provided a transparent window 24 which is slid across the label 26 bearing the code which is to be read. The wand 10 transmits data to the computer's system unit 16 only after a barcode 26 has been scanned, and provides an otherwise transparent interface between the computer's keyboard and system units. The aforementioned Keyboard Replacement mode is a possible alternate for the T-Connector mode shown in FIG. 1; in that case no keyboard unit 18 is plugged into the T-connector 14 and only the wand 10 is thus connected to the keyboard port 28 of the system unit 16.

Referring to FIG. 2, which is a block diagram of the major components shown in FIG. 1, it should be noted that the keyboard unit 18 is unchanged from what is conventionally used with the a typical small computer such as an IBM PC-compatible personal computer and the keyboard unit is thus represented in simple block form. The same is true for the computer system unit 16; however, a keyscan conversion means (BIOS keyboard interrupt service routine 30) and a keyboard buffer overflow means (for example, error entry point K62 and associated loudspeaker or other sound transducer 32) have been separately shown, since the functional and structural relationship of these otherwise conventional components with the various components internal to the keyboard emulation system 10 is an important aspect of the invention.

The wand 10 is a derivative of a barcode reader sold by Hewlett Packard under the trademark SmartWand and documented in various Hewlett Packard publications, including the "HP SmartWand Programmable Contact Bar Code Reader Technical Data Sheet" dated January 1988 and the "HP SmartWand Users Manual for HBCR-8XXX Series" dated July 1987. Wand 10 comprises a conventional optoelectronic sensor head 34 which may used to scan various types of barcodes, including Code 39, Extended Code 39, Interleaved 2 of 5, UPC/EAN/JAN, Codabar, Code 128, Code 11, and MSI Code. The wand 10 also comprises an Intel 8051 family (or equivalent) microcontroller 36 operating under the control of a time interval acquisition module 38, a number of decoding modules 40, a code-converting module 42, and an initialization/communication module 44. The various modules are in the form of firmware fixed in a ROM; non-volatile memory 46 is used to store configuration data; a temporary store 48 is also provided for the data being processed by the above mentioned modules.

The digital microcontroller 36 is interfaced to the optoelectronic sensor head 34 via a conventional threshold detector circuit 50; microcontroller 36 is also interfaced to the signals present on cable 12 and T-connector 14 via an appropriate switchable electrical interface 52, as will be described in more detail hereinafter with respect to FIG. 3. Moreover, the above mentioned electronic and electro-optical components and subsystems inside the wand 10 all draw their power from the system unit 16 via the c