The present invention relates to a bar code reading device for reading 1d or 2d bar code symbols. The bar code reading device, in one embodiment, can receive a command to disable symbology reading. In another embodiment, a bar code reading device can have a timercount and an image memory. In one embodiment, a bar code reading device can be configured to read bar code symbols of more than one bar code symbology.
|
1. A method for operating a hand held bar code reader for decoding either a 1d or 2d bar code symbol:
(a) providing a timercount memory space for storing timercount data;
(b) providing an image memory space for storing bit image representation data;
(c) moving said hand held bar code reader across said 1d or 2d bar code symbol while imaging a succession of 1d slices thereof;
(d) storing a bit image representation of each slice into said image memory space;
(e) examining image data of said image memory space after storage of each bit image representation to determine if the image memory space includes representation of a 2d finder pattern;
(f) if a 2d finder pattern is found at step (e), storing a predetermined number of additional slice bit image representations into said image memory space, the predetermined number being a number sufficient to assure that a symbol representation of sufficient size to allow decoding is stored in said image memory space.
7. A method for operating a bar code reader for decoding either a 1D or 2D bar code symbol:
(a) providing a timercount memory space for storing timercount data;
(b) providing an image memory space for storing bit image representation data;
(c) imaging a succession of 1d slices of said 1d or 2d bar code symbol while providing relative movement between the 1d or 2d bar code symbol and said bar code reader;
(d) storing a bit image representation of each slice into said image memory space;
(e) examining image data of said image memory space after storage of each bit image representation to determine if the image memory space includes representation of a 2d finder pattern;
(f) if a 2d finder pattern is found at step (e), storing a predetermined number of additional slice bit image representations into said image memory space, the predetermined number being a number sufficient to assure that a symbol representation of sufficient size to allow decoding is stored in said image memory space.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. The method of
14. The method of
|
The present application is a divisional of U.S. patent application Ser. No. 11/413,128, filed Apr. 27, 2006, incorporated by reference, which is a divisional of U.S. patent application Ser. No. 09/385,597, incorporated by reference, filed Aug. 30, 1999, (now U.S. Pat. No. 7,387,253) which is a continuation-in-part of U.S. patent application Ser. No. 08/839,020 filed Apr. 23, 1997, incorporated by reference, (now U.S. Pat. No. 5,965,863) which is a continuation-in-part of U.S. patent application Ser. No. 08/697,913, incorporated by reference, filed Sep. 3, 1996, (now U.S. Pat. No. 5,900,613); the aforesaid U.S. patent application Ser. No. 08/839,020 filed Apr. 23, 1997 also being a continuation-in-part of U.S. patent application Ser. No. 08/504,643, incorporated herein by reference, filed Jul. 20, 1995, (now U.S. Pat. No. 5,773,806); the aforesaid U.S. patent application Ser. No. 08/697,913 filed Sep. 3, 1996 being a continuation-in-part of U.S. patent application Ser. No. 08/504,643 filed Jul. 20, 1995, (now U.S. Pat. No. 5,773,806), and a continuation-in-part of U.S. patent application Ser. No. 08/441,446, incorporated herein by reference, filed May 15, 1995, (now U.S. Pat. No. 5,591,956), and a continuation-in-part of U.S. patent application Ser. No. 08/371,037 filed Jan. 10, 1995, (now abandoned); the aforesaid U.S. patent application Ser. No. 08/697,913, filed Sep. 3, 1996, also being a continuation-in-part of U.S. patent application Ser. No. 08/516,185, incorporated herein by reference, filed Aug. 18, 1995, (now abandoned) which is a continuation-in-part of U.S. patent application Ser. No. 08/205,539, incorporated herein by reference, filed Mar. 4, 1994, (now U.S. Pat. No. 5,463,214). The aforementioned U.S. patent application Ser. No. 11/413,128, filed Apr. 27, 2006 is also a divisional of U.S. patent application Ser. No. 10/227,889, filed Aug. 26, 2002 which is a divisional of U.S. patent application Ser. No. 09/385,597, filed Aug. 30, 1999, which is a continuation-in-part of U.S. patent application Ser. No. 08/839,020 filed Apr. 23, 1997, (now U.S. Pat. No. 5,965,863) which is a continuation-in-part of U.S. patent application Ser. No. 08/697,913, filed Sep. 3, 1996, (now U.S. Pat. No. 5,900,613).
The present invention relates to bar code reading devices, and is directed more particularly to bar code reading devices for reading 1D or 2D bar code symbols.
One-dimensional optical bar code readers are well known in the art. Examples of such readers include readers of the SCANTEAM® 3000 Series manufactured by Welch Allyn, Inc. Such readers include processing circuits that are able to read one-dimensional (1D) linear bar code symbologies, such as the UPC/EAN code, Code 39, etc., that are widely used in supermarkets. Such 1D linear symbologies are characterized by data that is encoded along a single axis, in the widths of bars and spaces, so that such symbols can be read from a single scan along that axis, provided that the symbol is imaged with a sufficiently high resolution along that axis.
In order to allow the encoding of larger amounts of data in a single bar code symbol, a number of 1D stacked bar code symbologies have been developed, including Code 49, as described in U.S. Pat. No. 4,794,239 (Allais), and PDF417, as described in U.S. Pat. No. 5,340,786 (Pavlidis, et al). Stacked symbols partition the encoded data into multiple rows, each including a respective 1D bar code pattern, all or most all of which must be scanned and decoded, then linked together to form a complete message. Scanning still requires relatively high resolution in one dimension only, but multiple linear scans are needed to read the whole symbol.
A third class of bar code symbologies, known as two-dimensional (2D) matrix symbologies, have been developed which offer orientation-free scanning and greater data densities and capacities than their 1D counterparts. Two-dimensional matrix codes encode data as dark or light data elements within a regular polygonal matrix, accompanied by graphical finder, orientation and reference structures. When scanning 2D matrix codes, the horizontal and vertical relationships of the data elements are recorded with about equal resolution.
Other objects and advantages will be apparent from the following description and drawings, in which:
[Beginning of an excerpt from the referenced U.S. patent application Ser. No. 08/516,185, filed Aug. 18, 1995].
For a better understanding of these and other objects, reference is made to the detailed description which is to be read in conjunction with the following drawings, wherein:
[End of an excerpt from the referenced U.S. patent application Ser. No. 08/516,185, filed Aug. 18, 1995].
[Beginning of an excerpt from the referenced U.S. patent application Ser. No. 08/205,539, filed Mar. 4, 1994].
For a better understanding of these and other objects, reference is made to the detailed description which is to be read in conjunction with the following Drawing, wherein:
[End of an excerpt from the referenced U.S. patent application Ser. No. 08/205,539, filed Mar. 4, 1994].
[Beginning of an excerpt from the referenced U.S. patent application Ser. No. 08/504,643, filed Jul. 20, 1995].
[End of an excerpt from the referenced U.S. patent application Ser. No. 08/504,643, filed Jul. 20, 1995].
Referring to
Referring first to
Optical reader 10 of
More particularly, processor 42 is preferably a general purpose, off-the-shelf VLSI integrated circuit microprocessor which has overall control of the circuitry of
The actual division of labor between processors 42 and 44 will naturally depend on the type of off-the-shelf microprocessors that are available, the type of image sensor which is used, the rate at which image data is output by imaging assembly 30, etc. There is nothing in principle, however, that requires that any particular division of labor be made between processors 42 and 44, or even that such a division be made at all. This is because special purpose processor 44 may be eliminated entirely if general purpose processor 42 is fast enough and powerful enough to perform all of the functions contemplated. It will, therefore, be understood that neither the number of processors used, nor the division of labor there between, is of any fundamental significance.
With processor architectures of the type shown in
Referring to
One specific practical example of an optical reader of the type shown in
COMPONENT TABLE - FIG. 2
Block Diagram Item
Manufacturer/Part Number
Image Sensor 32-2
VVL 1060B+
Prog. Gate Array 44-2
Actel 814V40A
Microprocessor 42-2
IDT 3081
EROM 46-2
Intel 28F400VB-B60
RAM 45-2
Toshiba TC51V4265DFT-60
Referring to
One specific practical example of an optical reader of the type shown in
COMPONENT TABLE - FIG. 3
Block Diagram Item
Manufacturer/Part Number
Image Sensor 32-3
Toshiba 1201
Prog. Gate Array 44-3
Welch Allyn 21203276-01
Microprocessor 42-3
Motorola HC11
EROM 46-3
Atmel AT 29C257
RAM 45-3
Sony CXK 5864-BM-10LL
Significantly, the above-mentioned structural correspondences between
The reader structures shown in
Examples of types of housings which may be employed to house elements of the reader apparatus shown in
Main Program
The overall operation of the reader of
Referring to
The parameter table, which is preferably stored in EROM 46, specifies the values of the parameters that define the mode in which the reader will operate. Examples of these parameters include the size and the frame rate of the image sensor, the codes that will be enabled during autodiscrimination, the I/O communication protocols, beeper pitch or volume, among others. The default values of these parameters are those which will be used if the user or an externally generated reprogramming command does not specify other values, and correspond to a combination of parameters which are suitable for use under most operating conditions. The different parameters that may be used, and the affect that they have on the operation of the reader will be discussed in detail later.
After the reader has been initialized, the processor proceeds to blocks 625 and 627, which call for it to capture and attempt to decode an image of the target symbol. This involves the performance of a number of related steps, the particulars of which are determined by the parameters of the parameter table. Included among these steps are a scanning subroutine which specifies the address space or spaces in which scan data will be stored and whether scanning is to be continuous (e.g., at a full video rate, such as 30 frames per second), or discontinuous (e.g., with pauses related to the current state of the trigger). The operation of the decoding routine, which is executed in a user or factory selectable relationship to the scanning routine, is governed by parameters which control the codes which are enabled for processing as a part of the autodiscrimination process, whether decoding is to be continuous or discontinuous, etc. As will be explained more fully later, permitted combinations of scanning and decoding parameters together define the scanning-decoding relationships or modes which the reader will use.
After exiting block 627, the processor is directed to block 630 which, if the decoding attempt was not successful, is directed back to block 625 unless the trigger has been released (block 635) or unless reprogramming request has been received (block 640), or unless a stop or no-repeat request is called for by the current operating mode of the reader (block 642). The loop defined by blocks 625-642 will be the path repeatedly followed by the processor when autodiscrimination sequences are performed unsuccessfully, and no menuing or programming changes are called for, and no stop request is in effect. If this loop is interrupted by the user's release of the trigger, or by a successful decode, or by a reprogram request, or by a stop request, the reader will be directed by block 635 to stop and wait in a low power state until further processing is called for.
In the above-described loop, block 642 serves the function of stopping the repetitive scanning and decoding of the target symbol in those scanning-decoding modes or under those conditions in which a repetition of scanning and/or decoding is not called for. In the One Shot mode, for example, scanning and decoding are discontinued after one decoding attempt, whether or not that attempt is successful, without regard to the state of the trigger. Similarly, in the Repeat Until Stopped mode, scanning and decoding may be discontinued either by command, via block 642, or by the release of the trigger via block 635. Thus, block 642 comprises at least a part of the means by which the reader gives effect to the scanning-decoding parameters of the parameter table.
If block 630 indicates that the last decoding attempt was successful, the processor is directed to a block 645 which calls for a determination of whether the result of the decoding indicates that the decoded symbol was or was not a menu symbol. This determination may be made on the basis of results of the decoding, because all menu symbols are encoded with data that identifies them as such during decoding. If the decoded symbol is not a menu symbol, it is known that the symbol contained data that is to be output by the reader. In the latter event, the processor is directed to block 646, which causes it to output the data and, proceed to block 647.
Block 647, like block 642, comprises part of the means by which the reader gives effect to the scanning-decoding modes called for by the parameter table. In particular, if decoding is successful (block 630) and has been output (block 646), block 647 discontinues scanning and decoding if the Repeat Until Done mode is in effect. If any other mode is in effect, scanning and decoding will continue unless blocks 635, 640 or 642 call for a different result.
If the decoded symbol is a menu symbol, block 645 directs the processor to perform the menuing routine called for by block 660 before returning to block 635. As will be explained more fully later in connection with
While reprogramming request block 640 has been described as being located between blocks 635 and 625, it actually preferably represents an externally generated interrupt request that may occur at any time that the reader is operating. Such a request may, for example, be initiated by a local host processor via one of I/O devices 37, 37′ or 37.″ It may also be initiated by a remotely located processor, via one of the latter I/O devices, through a suitable transmission line or computer network, as shown in
Menuing
The menuing feature will now be described with reference to
Turning first to
Menu word 650 begins with a first one-byte product identification (ID) code field 650-1 that identifies the type and/or model number of the reader. If the decoded product ID code indicates that it is compatible with the menuing program, execution of the menuing program continues normally. If it is not, the processor is caused to exit the menuing routine without making any menu specified changes.
The next field 650-2 of menu word 650 specifies the op code thereof in terms of a number from 0 to 7. This field specifies the operation to be performed by the menu word. The meanings of these different op codes are listed in
Specifically, the vector processing operations comprise selectable menu routines. Vectors to these routines can be stored in a vector table. The contents of data field 650-3, “offset,” is an index to the vector table relative to the base address thereof. If the offset field includes 10 bits, and only five of these bits are used as an index, then 32 different vector values will be possible. In this case the remaining 5 bits may be used for data.
The vector processing operations are preferably made selectable to a user by including respective menu bar code symbols in tables in the User's Manual of the reader. The user may then select the desired vector routine by imaging the appropriate symbol. The manner in which such a table is used will be described later in connection with
Among the vector processing operations which may be selected under op code 0 are the following. Operation A1 calls for the reader to output, i.e., display or print, via the local host processor, or via an on-reader LCD display, the identity of the version of the software currently being used by the reader. Operation A2 calls for the reader to output the current contents of the parameter table. Operation A3 calls for the reader to output the code options that are enabled, e.g., the types of symbols that the reader is to attempt to decode during the autodiscrimination process and whether or not a “multiple symbols option” has been enabled. Other options may also be defined as desired.
Operation A4 is a particularly powerful and desirable vector processing operation which causes the printer of the local host processor to print a menu bar code symbol that contains all of the information necessary to instruct another reader how it must be programmed if it is to operate in the same manner as the current reader. This, in turn, enables the user to quickly set up the same (or another) reader to operate in a manner that would otherwise require the user to manually select an entire sequence of parameter table values. If it is used to set up other readers, the process of using such a menuing bar code symbol may be thought of as a “cloning” procedure, since it allows a multiplicity of readers to be identically configured.
The type of bar code symbol in which the parameter table is printed must naturally be in a bar code symbology in which the reader is able to both encode (or write) data and decode (or read) data. Because the parameter table has a data content which may be too high to be encoded in many 1D symbologies, the menu symbol encoding the parameter table is preferably encoded in a 2D bar code symbol. One 2D symbology which is particularly suitable for use in encoding a menu bar code symbol of the subject type is that developed by Welch Allyn, Inc. and referred to as the “Aztec” symbology. The manner in which data is encoded in accordance with the Aztec symbology is described in detail in copending, commonly assigned U.S. Pat. No. 5,591,956, which is hereby expressly incorporated herein by reference.
In addition to op code 0, menu word 650 also makes available op codes 1-7, as shown in
Referring to
The parameter table is used to specify the operating options that are made subject to the control of the user. Representative groups of such options are shown as headings A-E of
The inclusion of user selectable code options as part of the menuing process has a significant affect on the overall data throughput rate of the reader, i.e., on the time necessary to decode a symbol whose symbology is not known in advance. If, for example, it is known that none of the symbols to be read during a series of readings comprise 1D symbols of any type, or any subset of 1D symbols such as Codabar, Code 39 or Code 128, code options allow a user to direct that any attempt to decode an unknown symbology according to these symbologies is to be skipped, thereby shortening the total time necessary for the processor to decode the unknown symbol according to the symbology which it does use. This skipping also reduces the chances of a misread. If, on the other hand, it is known that all of the symbols to be read during a series of reading operations are of one type, such as Interleaved 2 of 5, all 2D decoding programs and all the decoding programs for 1D symbologies other than interleaved 2 of 5 may be disabled, thereby limiting all decoding attempts to a single 1D symbology. Thus, the menuing process allows the autodiscrimination process to be optimized so as to achieve the highest possible data throughput rate.
A second important group of options provided by the menuing process are those that are labeled as “Scanning-Decoding” Options under heading C of
Also included among the scanning-decoding modes are the tracking modes listed under headings C4-C6 of
The availability of the SOD, SS and DOD tracking modes among the scanning-decoding options that may be selected during the factory programming of the reader is beneficial since it allows the data throughput rate of the reader to be optimized in view of the amount of memory that is available within the reader. At the same time, because operation in all of these modes may be disabled during operation in the One Shot, Repeat Until Done, or Repeat Until Stopped modes, the reader is able to operate in accordance with the non-tracking variants of these modes when such operation is preferred. One condition under which such operation may be preferred is one in which scanning while decoding is slow as a result of the time sharing of a bus. Thus, the reader combines flexibility of use with time-optimized use of the scanning and memory resources of the reader.
As will be explained more fully later, the RUD and RUS modes may be used either with or without one of the above-described tracking modes. This is because repetition is a necessary but not a sufficient precondition to the use of the tracking modes. Accordingly, if the RUD or RUS mode is not used in conjunction with a tracking mode it will comprise a non-tracking mode. If the RUD or RUS mode is used in conjunction with a tracking mode it will comprise a tracking mode.
Other groups of options that are provided by the menuing feature include those that are set aside under headings A, D and E of
Similarly, heading D is associated with parameter table addresses that correspond to various miscellaneous operating options that may be selected by the user. Included among these options are D1 which enables/disables the beeper and allows the volume thereof to be adjusted, D2 which enables/disables the use of an aiming LED, and D3 which enables/disables the provision of aural feedback to the user, among others. An example of a reader which provides aural feedback is described in U.S. Pat. No. 5,420,409.
Heading E is associated with parameter table addresses that correspond to various transmission options that may be selected by the user. Included among these options are E1 and E2, which enable/disable the outputting of check characters or checksum data with decoded data, and E3 which enable data edit options such as adding a carriage return and/or a line feed and/or other ASCII characters to the decoding data. Options E1 and E2 are useful, for example, in the localization and identification of hardware or software failures during the servicing of the reader. Option E3 is useful in placing decoded data in a form suitable for use with an application program.
Heading F is associated with parameter table addresses that correspond to various message editing commands for editing the form of characters in a decoded message. These commands may be, for example, search and replace commands (option F1), commands to insert characters (option F2), commands to delete characters from a decoded message (option F3), or other commands.
Heading G, meanwhile, is associated with parameter table addresses that correspond to commands for adding prefixes or suffixes, of a selectable character length, to a decoded message. Prefixes and suffixes are added to messages so that the host processor can identify the source of, or other characteristics of received messages. Option G1 allows addition of a prefix to a decoded message while option G2 allows addition of a suffix to a decoded message.
In view of the foregoing, it will be seen that the menuing process provides a wide range of user selectable functions and modes that allow the reader to be tailored to a user's specific application and/or preferences. Among these, the code options and the scanning-decoding options in particular, allow a user to reconfigure the operation of the reader in ways that have not heretofore been possible and thereby substantially increase the flexibility and overall data throughput rate of readers.
The manner in which the reader can be updated to accomplish the above-described results will now be described with reference to the flow chart of
If the menu message contains an op code, and the op code is other than 0, the processor is directed, via block 820, to a block 825. The latter block causes it to make the parameter table changes called for by the op code and the associated offset and data fields, sets a “flash” flag to indicate that changes have been made and then proceeds to block 850. This has the effect of implementing the user selected changes in the menuing options discussed previously in connection with
If the menu message contains an op code of 0, the processor is directed, via block 820, to a block 830. The latter block causes the processor to perform the vector processing operation indicated by the remainder of the message. This operation will comprise one of the operations discussed previously in connection with items A1-A4 of
In view of the foregoing, it will be seen that, when the processor arrives at block 850 it will have taken all required numerical data, performed all required parameter table modifications, or performed all required vector processing operations. As will now be explained, the remainder of the flow chart of
If, on arriving at block 850, the processor finds that the “flash” flag has not been set, it knows that the contents of the parameter table have not been changed and, consequently, that no updated copy thereof needs to be stored in EROM 46. Under this condition, the processor is directed to simply return to the main program of
In accordance with block 855, the processor is instructed to copy from EROM 46 to RAM 45, the program instructions (flash routine) necessary to copy the parameter table from RAM to EROM. The copying of the flash routine to RAM is necessary because the EROM cannot be written to when the apparatus is reading or operating from the EROM. Once the flash routine has been copied to RAM 45, the processor is directed to jump to RAM to begin executing that routine. As it does so it is directed, via block 860, to erase the old (unchanged) parameter table from EROM 46. Per block 865, it then copies new (changed) parameter table from RAM 45 to EROM 46. Once this has been done, the processor is directed back to the main program of
Referring to
Referring to
The fact that the above-discussed examples of menu selections make use of menu symbols that use the Aztec 2D symbology is not essential. Other 2D or 1D menu symbol symbologies could also have been used, if desired, as will be seen from the following discussion of
Referring to
Referring to
Because fuller information concerning the menu options contemplated, and their uses is contained in the User's Manual for the above-identified readers, these menu options will not be discussed further herein.
Reprogramming
In accordance with another feature of the apparatus, the reader may be reprogrammed to operate in accordance with an entirely new application program. This means that the reader may not only be provided with a new or updated decoding program, or a new parameter table, it may also be provided with one or both of a new menuing routine and a new main program. As a result, a reader may be effectively reconfigured as a new reader, with new capabilities and features, as often as necessary to keep it up to date with the latest developments in optical reader technology. Advantageously, this reprogramming may be accomplished either locally as, for example, by a local host processor equipped with a diskette or CD-ROM drive, or remotely by a distant processor that is coupled to the reader via a suitable telephone or other transmission line or via a computer network or bulletin board.
The reprogramming feature will now be described with reference to the system block diagram of
If the new reader program is available locally as, for example, on a diskette or CD-ROM, it may be loaded into reader 10 or 10′ using a suitable drive unit 920, under the control of a keyboard 925 and the reprogramming routine shown in
The manner in which the reader may be made to perform any of a variety of different externally specified functions, including reprogramming itself, will now be described with reference to the flow charts of
Turning first to
Once the BBOOTT command has been received and acted on, the processor enters a loading loop including blocks 1007 through 1020. This loading loop causes the processor to load a program into RAM, one line at a time, in conformity with any suitable communication protocol, until the last line of code is detected via block 1020. When the latter has occurred, the processor is directed to block 1025, which causes it to jump to the newly received program and to begin executing the same before returning to the main program.
Referring to
On executing the reprogramming flow chart of
If the processor has not exited the reprogramming routine of
If, however, any line of data has not been successfully stored, block 1075 will direct the processor to a block 1080 which causes it to output an error message and exit the program. If the latter occurs, the reprogramming routine as a whole must be repeated. If the latter does not occur, the above-described process will continue line-after-line, block-after-block, until the entire file has been successfully transferred.
In view of the foregoing, it will be seen that the effect of the reprogramming routine of
With the use of the above-described reprogramming feature, the reader may be kept current with the latest available programs that are suitable for use therewith. A user at local processor 900 may, for example, communicate with remote processor 950, via keyboard 925, and determine if new programmable features are available. If they are, he may obtain them from the remote process and download them locally, or request that the remote processor download them directly to the reader. Alternatively, the remote processor may initiate the reprogramming of the reader independently as, for example, pursuant to a service contract or updating service. It will be understood that all such embodiments are within contemplation.
Local Host and Reader System Operations
As has been described hereinabove, reprogramming of a reader may be accomplished with use of a local host processor. This section describes additional features of a system comprising a local host processor 900 and a reader 10, and more particularly describes features and additional system operations that are realized by various interactions between host processor 900 and reader 10, and in certain applications by a host processor 900 that is not in communication with a reader 10.
A flow diagram illustrating the primary program for operating a local host processor for use in controlling a reader is shown in
A flow diagram illustrating a subprogram for reprogramming of a reader 10 by control of a local host processor is shown in
At block 1110 host processor 900 displays a main reprogramming screen on display monitor 930. The main reprogramming screen prompts a user to designate a source for an operating program. The source designated is typically a bulk storage device such as a hard or floppy disk drive but also may be, for example, a RAM or ROM storage device. When the source is selected, host processor 900 displays on display monitor 930 indicators of the operating programs, or files, that are available in the storage device source selected (block 1114) and a user selects one of the operating programs. Some available operating programs comprise entire main programs and entire parameter tables for loading into reader, whereas other available operating programs include only parameter tables which may be customized parameter tables created by a user during execution of a parameter table editing subprogram.
When a user selects a source for an operating program, and selects a desired operating program, downloading of the operating program proceeds. At block 1116 host processor determines whether a reader is connected to the host processor communications link, normally by serially transmitting a device detection command to a reader, which has been previously programmed to transmit an acknowledge response message on the reception of a detection command.
If a reader is connected to host processor 900 then host processor at block 1118 sends an identification command to reader 10 which is previously programmed to transmit an identification response on the reception of an identification command. After receiving the identification response and comparing the response to the selected operating program at block 1120 processor at block 1122 determines whether the reader is of a type which is compatible with the selected operating program. An operating program is compatible with a reader in communication with host processor if the operating program is specifically adapted for that reader's unique hardware configuration. Bar code readers of various types have different hardware components including different memory devices, image sensors, input/output devices, and other components. The selected operating program must be in form enabling it to communicate with the particular hardware components of the presently connected reader.
If the selected operating program is compatible with the present reader, the host processor at block 1126 determines if the operating program is a parameter-only type operating program or an operating program that comprises a main program and a parameter table. This determination can be made, for example, by reading the contents of a DOC type file which is made to be read by processor 900 when an operating program is read, and which is made to include an identifier as to whether the operating program is of a type which includes a main program and parameter table; by reading the contents of a predetermined address of the operating program which is made to include an identifier as to the type of operating program; or by reading predetermined addresses of an operating program designated for storing a main program and basing the determination on whether instructions are present in the designate addresses.
A memory map for a typical operating program is shown in
When host processor 900 determines at step 1126 that the selected operating program includes a main program then program control proceeds to step 1 130 wherein processor transmits the contents of the selected operating program into EROM 46 of reader 10. If host processor 900 determines at block 1126 that the selected operating program is a parameter only type operating program then host processor 900 first queries EROM 46 to determine the begin and end address locations of the parameter table of the operating program currently stored in EROM. To this end host processor 900 at block 1130 polls the contents of a vector pointer table 1134 in predetermined address locations of EROM. Described previously herein vector pointer table 1134 comprises the beginning and end addresses of the parameter table. After vector pointer table is polled, host processor 900 stores the address location of the present parameter table, modifies the parameter table address of the selected parameter-only operating table in accordance with the parameter table addresses of the existing parameter table (block 1136) and writes the contents of the parameter table address locations of the modified parameter-only type operating program into EROM 46 (block 1140).
If processor 900 determines at block 1126 that the selected operating program is of the type having a main program and a parameter table, then processor 900 at block 1144 prompts the user whether the user would like to save the contents of a parameter table of the operating program currently stored in EROM 46 of reader 10; that is, utilize the parameters of the current operating program in the operation of a reader that is programmed to have a new main program. If the user responds affirmatively, then processor 900 reads the contents of the existing parameter table (block 1150) after first polling the vector pointer table and then writes, at block 1152, the contents of the existing parameter table in a predetermined holding address location of a storage device associated with processor 900 or reader 10.
The selected operating table is then written into EROM 46 at block 1140, line by line, until loading is complete. If the user had requested at block 1144 to save the contents of the original parameter table (a determination made at block 1153), then processor 900 writes the contents of the parameter table stored in a holding address location to the appropriate parameter address locations of EROM at block 1154, after determining the address locations of the parameter table at block 1156. Referring again to the primary host processor program shown in
As discussed previously with reference to
A flow diagram for a parameter table editing subprogram is shown with reference to
In the embodiment shown, the parameter table editing subprogram is configured by default to edit the existing parameter table stored in EROM of the connected reader if a reader is present. It will be recognized, however, that the editing subprogram can also be configured to query the user as to whether the user wishes to edit the parameter table currently stored in reader EROM 46, or another candidate parameter table typically stored in a bulk storage device associated with processor 900.
If a reader is not in communication with processor 900, continuing with reference to the flow diagram shown, then processor at block 1168 prompts the user to select a reader for which the user wishes to edit a parameter table and once a type of reader is selected, a default parameter table associated with that reader type is written in to a temporary storage device of processor 900 typically provided by a RAM device.
At the termination of block 1168 or block 1166 if a reader is connected, a parameter configuration screen is displayed to a user, at block 1169, an exemplary embodiment of which is shown in
Until an output option is selected, the user typically edits various parameters the user wishes to change as shown in blocks 1170 and 1172. Selection of one parameter type option, e.g. code or symbology option parameter 1174 causes a secondary editing screen to appear allowing editing of parameters of the selected parameter type. When editing pertaining to one or several parameter types is complete then program reverts back to parameter configuration screen at block 1169, allowing user to select an output option.
If a user selects the write output option (block 1176), the edited parameter table is written to, or downloaded to reader EROM in the fashion described previously with reference to block 1140 of
Another output option available to a user is to compare two or more parameter tables. If this option is selected (block 1184) then the user is requested at block 1186 to select parameter tables from memory locations (which may be memory location associated with processor 900 or with reader 10). When parameter tables have been selected, processor 900 at block 1186 compares the selected parameter tables. In general, the comparison is carried out by a compare function applied after an offset between the files is accounted for. Processor 900 then outputs the results of the comparison at block 1188, typically by displaying the comparison results on screen 930, or printing the comparison results using printer 940.
One specialized output option allows the user to create programming menu symbols whose general features have described with reference to
When a menu symbol output option is selected at block 1189, processor 900 determines at block 1202, by reading a reader identifier, whether the reader designated for receipt of the edited parameter table includes a one dimensional (1D) or two-dimensional (2D) image sensor.
If the reader includes a one dimensional image sensor, then processor 900 creates a series of linear bar codes which may be used for reprogramming several readers. Specifically, if the designated reader includes a one dimensional image sensor then processor 900 at block 1204 creates a first linear menu symbol adapted to generate an instruction causing the reader reading the symbol to change parameter table values of the reader's EROM to default values. Then, at block 1206 processor 900 creates a distinct linear programming menu symbol for each parameter of the parameter table that is changed during the editing process from a default value. An important feature is described with reference to block 1208. When the series of menu symbols is created, the created symbols may be printed on paper by printer 940 according to a conventional protocol, or else displayed on display device 930, typically a CRT monitor. The term created symbols herein refers to binary encoded data stored in a memory space which result in an actual symbol being output when the data is written to a display device or printer. An unlimited number of bar code readers may be reprogrammed by reading the menu symbols that are displayed on the display device 930. Displaying the created menu symbols on a display device allows rapid output of created symbols and eliminates the need to supply a paper substrate each time a menu symbol is output.
If the reader designated for reprogramming includes a 2D image sensor, then processor 900 at block 1210 need only create one 2D menu symbol in order to cause reprogramming of the designated reader in accordance with the changes made to a parameter table even in the case where multiple changes to the parameter table are made. This is so because an increased number of instructions may be encoded in a symbol of a 2D symbology type.
Another subprogram which may be selected from a subprogram option screen displayed at block 1102 is a subprogram for simulating the result of applying editing commands to a decoded message. As discussed previously, editing commands may be applied to decoded messages by entry of the commands to a parameter table in parameter table addresses corresponding to heading H of
An exemplary flow diagram for an editing command simulation subprogram is shown in
When the commands are entered, processor 900 applies the commands entered at block 1218 to the unedited test message at blocks 1220, 1222, and 1224 if all are applicable. When editing is complete processor 900 outputs the result of applying the editing commands, at block 1226, typically by displaying the edited message on display screen 930.
At block 1228 processor queries the user as to whether the user wishes to save the editing commands which resulted in the edited message being displayed or otherwise output at block 1226. If the user elects to save the editing commands, then processor 900 at block 1230 writes the commands to a predetermined command save memory location associated with processor 900. When the parameter table editing subprogram described with reference to
In addition to being adapted to download new or modified operating programs to reader 10, processor 900 which as shown in
Processor 900 and reader 10 can also be complementarily arranged so that, on receipt of a user activated command, processor 900 transmits to reader 10 a component control instruction which is executed by reader 10 substantially on receipt thereof to transmit data which is stored in memory 45 or in another memory device associated with reader 10 such as a long-term nonvolatile memory device. For example, a component control instruction received from processor 900 may be executed by reader 10 to upload from reader 10 to processor 900 image data that is stored in a specific memory location of reader memory 45 such as a reader memory location that stores the most recently captured image data captured by reader. Processor 900 may subsequently display such uploaded image data on display 930. Other component control instructions which may be transmitted from processor 900 to reader 10 for substantially on-receipt execution by reader processor 40 are instructions which, for example, cause predetermined indicia to be displayed by reader display 56, or which cause processor 40 to capture, by appropriate control over image sensor 32, a single frame of image data corresponding to the scene presently in the field of view of reader 10 in memory 45 or in another memory device.
It will be understood that certain component control instructions require that reader processor 40 execute a series of instruction steps, or repetitive instruction steps to cooperatively control more than one reader component. For example, a component control instruction commanding an optical reader to capture an image normally requires that processor 40 execute a series of instruction steps involving control of such components as LEDs 22, components of the imaging assembly, and memory 45.
A modified reader operating program that adapts a reader to receive component control instructions from an external local host processor for substantially on-receipt execution by reader 10 is shown in
Scanning-Decoding/Autodiscrimination
The scanning-decoding and autodiscrimination features, and their relationships to the above-described menuing and reprogramming features, will now be described with reference to FIGS. 6 and 12-18. More particularly, the combined operation of these features will be discussed in connection with
Turning first to the main program of
In those embodiments or modes in which the multiple symbols option is enabled, the processor assumes that more than one symbol is present in the image data. Under this condition, if decoding is successful, the processor continues to loop back to block 627 to make additional decoding attempts, unless stopped by one of blocks 635 or 642. In this case, however, the “yes” output of block 643 is selected, preventing additional images from being captured.
When the processor begins executing its scanning-decoding program, it first determines from the parameter table which scanning-decoding option or combination of options is to be used. It will then be directed to an autodiscrimination routine that is configured to execute that routine in accordance with the selected scanning-decoding option or options.
At start up, the parameter table maybe set up so that operation in the One Shot scanning-decoding mode is established as a default condition. Alternatively, the parameter table may be set up so that the RUD or RUS scanning-decoding mode is established as a default condition. Since the One Shot mode is inherently a non-tracking mode, its selection as a default mode implies that none of the tracking modes is selected. Since the RUD and RUS modes can be used either with or without one of the three tracking modes, its selection as a default parameter may or may not be associated with one of the three tracking modes, depending upon how the reader is programmed at the time of manufacture.
Tracking Options
The differences between the three tracking modes are best understood with reference to
Scanning of indicia can take place under either of two generalized conditions, depending upon the decoding load presented by the indicia. Under light decoding loads, shown in
Under heavy decoding loads, however, prior art methods do not allow sufficient time for decoding. Thus, as shown in
In the embodiment disclosed in prior copending application Ser. No. 08/205,539, now issued as U.S. Pat. No. 5,463,214, this problem is solved by modifying the reader in a way that allows the scanning process to be suspended and restarted as required to prevent the decoding process from falling so far behind the scanning process that data overflows the memory and is lost. This embodiment is referred to herein as the “Scan on Demand” or SOD tracking mode. This solution to the problem may be understood with reference to
Referring to
More particularly,
Referring to
More particularly,
Referring to
More particularly,
The mode illustrated in
The modes illustrated in
The fact that some embodiments use 1D image sensors while others use 2D image sensors should not be taken to mean that embodiments which use 1D image sensors can only read 1D symbols or that embodiments which use 2D image sensors can only read 2D symbols. This is because techniques exist for using either type of image sensor to read both 1D and 2D symbols. It will therefore be understood that the present reader is not restricted to use with any one type of image sensor or to any one type of bar code or other optically encoded symbol.
Referring to
Locations SS and SE of memory M2 are updated in the course of a series of scans so that they always identify or otherwise point to the address of the beginning and ending of the most recently produced complete block of scan data. As a result, when the decoding circuitry is ready to decode the most recently produced complete block of scan data, it need only refer to locations SS and SE to obtain information as to where to begin and end decoding. Before decoding begins, the contents of locations SS and SE are written into locations DS (Decode Start) and DE (Decode End) so that locations SS and SE can continue to be updated while decoding proceeds on the basis of the contents of locations DS and DE. In the preferred embodiment, the decoding circuitry is programmed to mark these beginning addresses as “invalid” (for example, by changing its sign) after it is acquired. Since the decoding processor is programmed to decode only “valid” data, this assures that it can decode a single block of scan data only once.
Referring to
Similarly, location CD may be used as a pointer which identifies the memory space where the current decode is being undertaken. Finally, location ND may be used as a pointer which identifies where the next available image is for decoding purposes.
Under ordinary circumstances, three scan data memory spaces will be sufficient to keep the decoding activity of the reader fully occupied and current. This is because the tracking method allows the skipping over of old blocks of scan data as necessary for the decoder to remain occupied and current. If the decoding load becomes extremely heavy, however, it is possible that more old blocks of scan data are skipped over than is advisable. In such instances, it may be desirable to increase the number of memory spaces from 3 to N, where N may be 4 or even more, and to use more than one decoding circuit. If such an increased number of memories and decoders is used, blocks of scan data may be distributed among the memories according to a simple sequential rule and kept track of by increasing the number of bits in the pointers of memory space MP. In addition, the decoding circuits may be assigned to the then most current complete block of scan data as they become free. It will be understood that all such numbers of memory spaces and decoding circuits and the associated tracking procedure are within contemplation.
Referring to
In view of the foregoing, it will be seen that the scanning and decoding processes may have a selectable one of any of a plurality of different relationships with one another, some of these relationships being tracking relationships and some being non-tracking relationships. The menuing feature allows a user to select that operating mode, whether or not tracking, which gives the best overall data throughput rate in view of the user's then current objectives.
(B) Autodiscrimination/Code Options
The manner in which the code options called for by the parameter table are implemented in conjunction with the autodiscrimination feature, will now be described with reference to the flow charts of
In order to gain an understanding as a whole, it should be borne in mind that the above-described relationships between the decoding and menuing processes exist as a subset of an even more complex set of relationships that include the tracking and multiple symbols features. When, for example, a portion of the flow chart of
In principle, at least, each one of the possible combinations of the above-described options may be represented in a complete and separate flow chart and described as such. Because adopting the latter approach would obscure rather than clarify, the present application will describe these combinations simultaneously in terms of a representative flow chart, with different options being described potential variants of that representative flow chart.
Turning first to the flow chart of
If the reader includes a 2D image sensor, this image data will have been scanned as a 2D image while the reader is held substantially stationary with respect to its target. If the reader includes a 1D image sensor this image data will have been scanned as a series of 1D images while the reader is being moved asynchronously across the target in the manner described in copending commonly assigned U.S. patent application Ser. No. 08/504,643, now U.S. Pat. No. 5,773,806 which is expressly incorporated herein by reference.
On encountering block 1605, the processor is directed to calculate the “activities” of selected image data elements. The “activity” of a point P as used herein comprises a measure of the rate of change of the image data over a small two dimensional portion of the region surrounding point P. This activity is preferably calculated along any two arbitrarily selected directions which are mutually perpendicular to one another, as shown by the lines parallel to directions X and Y of
In the preferred embodiment, an activity profile of the image data is constructed on the basis of only a selected, relatively small number of image data elements that are distributed across the field of view that corresponds to the stored image data. Using a relatively small number of data elements is desirable to increase the speed at which the symbol may be imaged. These selected points may be selected as the points which lie at the intersections of an X-Y sampling grid such as that shown in
When the processor has determined the activities of the selected image data points, it is directed to block 1610, which causes it to look for candidate bar code symbols by identifying regions of high activity. This is conveniently done by determining which sets of image data points have activities that exceed a predetermined activity threshold value. A simplified, one-dimensional representation of this step is illustrated in
In embodiments which are adapted to find and decode all of the symbols that occur in fields of view that include a plurality of bar code symbols, (i.e., embodiments in which the multiple symbols option is enabled), the result of the step called for by block 1610 is the identification of a plurality of candidate symbol regions (CSRs), any one or more of which may be a bar code symbol. Whether or not they are bar code symbols is determined on the basis of whether they are decodable. As will be explained more fully later, if the multiple symbols option is not enabled, the processor may be instructed to select one of the CSRs according to a suitable selection rule, such as the largest CSR first, the CSR nearest the center of the field of view first, the CSR with the highest total activity first, etc., and then attempt to decode only that symbol and stop, whether or not a symbol has been decoded. Alternatively, as a further option, the processor may be instructed to attempt to decode each CSR in turn until one of them is successfully decoded, and then stop. If the multiple symbols option is enabled, the processor will process all of the CSRs, in turn, according to a suitable priority rule, and continue to do so until all of the CSRs have been either decoded or have been determined to be undecodable.
Once all CSRs have been located, the processor is directed to block 1615, which calls for it to select the then largest (or most centrally located) as yet unexamined CSR for further processing, and then proceed to block 1620. The latter block then causes the processor to find the centroid or center of gravity of that CSR, before proceeding to block 1625. An example of such a centroid is labeled C in
On encountering block 1625, the processor is directed to examine the selected CSR by defining various exploratory scan lines there through, determining the activity profile of the CSR along those scan lines, and selecting the scan line having the highest total activity. In the case of a 1D bar code symbol, this will be the direction most nearly perpendicular to the direction of the bars, i.e., the optimum reading direction for a 1D symbol.
On exiting block 1625, the processor encounters blocks 1630 and 1635. The first of these sets a scan line counter to zero; the second defines an initial, working scan line through the centroid in the previously determined direction of highest activity. The result of this operation is the definition, in the image data space representation of the CSR, of a working scan line such as SC=0 in
Once the initial scan line has been defined, the processor is directed by block 1640 to calculate, by interpolation from the image data of the CSR, the values of sampling points that lie along this scan line. This means that, for each sampling point on the initial scan line, the processor will calculate what brightness the sampling point would have if its brightness were calculated on the basis of the weighted brightness contributions of the four nearest measured image data points of the CSR. These contributions are illustrated by the dotted lines which join the sample point SP of
Once the above-described scan line data have been calculated, the processor is directed to block 1645, which calls for it to binarize the scan line data, i.e., convert it to a two-state representation of the data which can be processed as a candidate for 1D decoding. One such representation is commonly known as a timercount representation. One particularly advantageous procedure for accomplishing this binarization process is disclosed in U.S. Pat. No. 5,286,960, which is hereby incorporated herein by reference.
On exiting block 1645, the processor will be in possession of a potentially decodable two-state 1D representation of the CSR. It then attempts to decode this representation, as called for by block 1650. This attempted decoding will comprise the trial application to the representation of one 1D decoding program after another until the latter is either decoded or determined to be undecodable. Because decoding procedures of the latter type are known to those skilled in the art, they will not be discussed in detail herein.
As the 1D autodiscrimination process is completed, the processor is directed to decision block 1655 which causes it to continue along one of two different paths, depending on whether or not decoding was successful. If it was not successful, the processor will be caused to loop back to block 1635, via blocks 1660 and 1665, where it will be caused to generate a new working scan line that is parallel to initial scan line SC=0, but that passes above or below centroid C. This looping back step may be repeated many times, depending on the “spacing” of the new scan lines, until the entire CSR has been examined for decodable 1D data. If the entire CSR has been scanned and there has been no successful decode, the processor is directed to exit the just-described loop via block 1670. As used herein, the term “parallel” is used in its broad sense to refer to scan lines or paths which are similarly distorted (e.g., curvilinear) as a result of foreshortening effects or as a result of being imaged from a non-planar surface. Since compensating for such distorting effects is known, as indicated, for example, by U.S. Pat. No. 5,396,054, it will not be discussed in detail herein.
Block 1670 serves to direct the processor back to block 1615 to repeat the above-described selection, scanning and binarizing steps for the next unexamined CSR, if one is present. If another CSR is not present, or if the processor's program calls for an attempt to decode only one CSR, block 1670 causes the processor to exit the flow chart of
If the processing of the first CSR has resulted in a successful decode, block 1655 directs the processor to block 1675, which causes it to determine whether the decoded data indicates that the CSR contains a 1D stacked symbol, such as a PDF417 symbol. One example of such a symbol is shown in
If, on encountering block 1675, the decoded data indicates that the CSR contains a 1D stacked symbol, the above-described processing is modified by providing for the repetition of the scanning-digitizing process, beginning with block 1635. This is accomplished by blocks 1684, 1686 and 1688 in a manner that will be apparent to those skilled in the art. Significantly, by beginning the repeating of the process at block 1635, all additional scan lines defined via the latter path will be parallel to the first decodable scan line, as required by a 1D stacked symbol, at least in the broad sense discussed earlier.
In view of the foregoing, it will be seen that, depending on the number of CSRs that have been found in the stored image data, and on the enablement of the multiple symbols option, the flow chart of the embodiment shown in
As will be explained more fully in connection with
Referring to
The flow chart of
Once the image data has been binarized, the processor continues on to block 1810, which causes it to identify and locate all of the 2D finder patterns that appear in the field of view of the image data. This is preferably accomplished by examining all of the candidate 2D finder patterns (CFPs) that are present and identifying them by type, i.e., identifying whether they are bullseye type finder patterns, waistband type finder patterns or peripheral type finder patterns. An example of a bullseye type finder pattern is shown in the central portion of the 2D bar code symbol of
Particularly advantageous for purposes, however, is bullseye type finder finding algorithm of the type that may be used both with 2D symbologies, such as MaxiCode, that have bullseye finder patterns that include concentric rings and with 2D symbologies, such as Aztec, that have bullseye finder patterns that include concentric polygons. A finder finding algorithm of the latter type is described in copending, commonly assigned U.S. patent application Ser. No. 08/504,643, which has been incorporated herein by reference. The Aztec 2D bar code symbology itself is fully described in U.S. patent application Ser. No. 08/441,446, which has also been incorporated herein by reference.
Once all of the finder patterns have been located and their types have been determined, the processor is directed to decision block 1815. This block affords the processor an opportunity to exit the flow chart of
If a finder pattern has been found and typed, the processor is directed to block 1825. This block causes the processor to select for decoding the bar code symbol whose finder is closest to the center of the field of view of the image data. Optionally, the processor may be instructed to find the largest 2D bar code symbol that uses a particular 2D symbology or the 2D bar code symbol using a particular 2D symbology which is closest to the center of the field of view of the image data. The “closest-to-the-center” option is ordinarily preferred since a centrally located symbol is likely to be a symbol, such as a menu symbol, at which the user is deliberately aiming the reader. Once this selection has been made, the processor attempts to decode that symbol, as called for by block 1830. If this decoding attempt is successful, as determined by decision block 1835, the resulting data may be stored for outputting in accordance with block 648 of the main program of
If the user has elected not to use the multiple symbols option, block 1845 may direct the processor to exit the flow chart of
If the user has elected to use the multiple symbols option, block 1845 will direct the processor back to block 1825 to process the next 2D symbol, i.e., the symbol whose CFR is next closest to the center of the field of view. The above described attempted decoding and storing (or outputting) steps will then be repeated, one CFR after another, until there are no more symbols which have usable finder patterns. Finally, when all symbols having usable finder patterns have been either decoded or found to be undecodable, the processor will exit the flow chart of
In view of the foregoing, it will be seen that, depending on the number of identifiable CFRs that have been found in the stored, digitized image, and on the enablement of the multiple symbols option, the 2D autodiscrimination routine shown in
For the sake of clarity, the foregoing descriptions of the 1D and 2D phases of the 1D/2D autodiscrimination process have been described separately, without discussing the combined or overall effect of the code options and scanning-decoding options discussed earlier in connection with
On entering the flow chart of
If all 1D codes have been disabled, the processor is directed directly to block 230, thereby skipping block 2009 in its entirety. Then, unless all 2D codes have also been disabled (per block 2029), it proceeds to block 2035 to begin the autodiscrimination process described in connection with
In view of the foregoing, it will be seen that the 1D/2D autodiscrimination process may be practiced in many different ways, depending upon the menuing options that have been chosen by the user. Among these menuing options, the code options increase the data throughput rate of the reader by assuring that the processor does not waste time trying to autodiscriminate and decode symbols which it has been told are not present, or are not of interest. The scan tracking options also increase the data throughput rate of the reader by assuring that the scanning and decoding phases of read operations both operate, to the extent possible in view of the then current decoding load and decoding options, at a 100% utilization rate. Even the multiple symbols option also increases the data throughput rate of the reader by either discontinuing the reading of symbols that are not centered and therefore not of interest or speeding up the processing of multiple symbols that are of interest. Thus, for a processor with a given performance rating and a set of decoding programs of given length, the apparatus assures a higher overall data throughput rate than has heretofore been possible.
[Beginning of an excerpt from the referenced U.S. patent application Ser. No. 08/516,185, filed Aug. 18, 1995].
Referring to
Reader 2009 also includes scanning control and decoding circuitry which preferably comprises a programmed microcomputer 2029 together with a DMA controller 2032. In operation, microcomputer 2029 controls the operation of scanning section 2011 and decodes the data produced thereby in accordance with a program stored in a ROM 2050. DMA controller 2032 assists microcomputer 2029 by taking over there from the task of receiving digitized video data produced by scanning section 2011 and directing this data through a bus interface 2046 and a bus 2047 to a RAM 2048. DMA controller 2032 may also include circuitry which performs a variety of other support and housekeeping functions for microcomputer 2029 and in this way allows the latter to devote more time to decoding activities and thereby increase the data throughput rate for the reader as a whole. If desired, these functions may be integrated into a single application specific integrated circuit (ASIC). One example of an ASIC of this type is commercially available from Welch Allyn, Inc., Skaneateles Falls, N. Y. under the part number designation 21203276-01.
Operation of scanning section 2011 is controlled by a trigger 2028, which can be a manual trigger, or an automatic trigger that responds to the presence of indicia. Trigger 2028 is coupled to microcomputer 2029 via an I/O port section 2033. Microcomputer 2029 outputs a scan enable signal on a line 2034 responsive to the trigger 2028 to turn on scanning section 2011 and begin scanning target symbol 2016. Control signals are output on a line 2036 to control clock generator 2038 which in turn provide suitable enabling signals for illuminator 2012 and clock signals 2042 for image sensor 2022 as required for the proper operation thereof. Clock generator 2038, is also arranged to generate a scan interrupt (or end of scan) signal which is applied as an input to I/O port 2033 via conductor 2039 to provide microcomputer 2029 with information that indicates the times at which each block of scan data ends.
Microcomputer 2029 may also be provided with a UART 2052 and an auxiliary I/O port section 2054 for connecting communications devices (not shown) to the reader. Representative of such devices are a keyboard when the scanner is employed in a wedge configuration, a telecommunications network, and other devices as may be required for a given application of the system.
A typical scan cycle for the reader of
Referring to
Unlike currently available 1D image sensors, some 2D image sensors include much of the control and clock generating circuitry necessary to control their operation. In the reader of
Because 2D image sensors produce video output signals that include data for a number of different horizontal rows of the symbols imaged thereby, and are designed to be used without regard to the orientation of the symbol with respect thereto, their outputs are more usefully processed and stored as bit mapped or bit image representations of symbols than as timercount representations thereof. As a result, DMA controller 2032′ of the embodiment of
With the embodiment of
In order to avoid unnecessary repetition, the terms “scan” and “block of scan data” as used herein will be understood to refer to both of the above-described types of scans generically where the context permits, or non-generically to one or the other of these types of scans where the context indicates that only one or the other is being referred to. For example, the descriptions of
Scanning of indicia can take place under either of two generalized conditions, depending upon the decoding load presented by the indicia. Under light decoding loads, shown in
Under heavy decoding loads, however, prior art methods do not allow sufficient time for decoding. Thus, as shown in
In the embodiment disclosed in prior U.S. Pat. No. 5,463,214, this problem is solved by modifying the reader in a way that allows the scanning process to be suspended and restarted as required to prevent the decoding process from falling so far behind the scanning process that data overflows the memory and is lost. This solution to the problem may be understood with reference to
Referring to
More particularly,
Referring to
More particularly,
Referring to
More particularly,
The embodiment illustrated in
The embodiments illustrated in
The fact that some embodiments use 1D image sensors while others use 2D image sensors should not be taken to mean that embodiments which use 1D image sensors can only read 1D symbols or that embodiments which use 2D image sensors can only read 2D symbols. This is because techniques exist for using either type of image sensor to read both 1D and 2D symbols. It will therefore be understood that the present reader is not restricted to use with any one type of image sensor or to any one type of bar code or other optically encoded symbol.
Referring to
As will be explained more fully in connection with the flow charts of
Referring to
Similarly, location CD may be used as a pointer which identifies the memory space where the current decode is being undertaken. Finally, location ND may be used as a pointer which identifies where the next available image is for decoding purposes.
Under ordinary circumstances, three scan data memory spaces will be sufficient to keep the decoding activity of the reader fully occupied and current. This is because the tracking method allows the skipping over of old blocks of scan data as necessary for the decoder to remain occupied and current. If the decoding load becomes extremely heavy, however, it is possible that more old blocks of scan data are skipped over than is advisable. In such instances, it may be desirable to increase the number of memory spaces from 3 to N, where N may be 4 or even more, and to use more than one decoding circuit. If such an increased number of memories and decoders is used, blocks of scan data may be distributed among the memories according to a simple sequential rule and kept track of by increasing the number of bits in the pointers of memory space MP. In addition, the decoding circuits may be assigned to the then most current complete block of scan data as they become free. It will be understood that all such numbers of memory spaces and decoding circuits and the associated tracking procedure are within contemplation.
The manner in which the circuits of
Referring to
Referring to
Such decoding routine is used to decode scan data produced by the above described scanning process and will now be described with reference to the flow chart of
Once the processor has completed the above-described steps, it proceeds with decoding, as called for by block 2730. If decoding is successful (block 2735), the decoded message is output, as called for by block 2740, and, if scanning is still being called for by block 22715, the processor proceeds to block 2720 to commence another decode cycle. If decoding was not successful, no message is output and the processor is looped back to block 2715 to see if scanning is still being called for. Since, as explained earlier, scanning takes less time than decoding under heavy decoding loads, there will ordinarily be no operating condition under which the decoder must wait for further valid data. Thus, the operation depicted in the flow charts of
While, for the sake of clarity, the flow charts of
Referring to
The scanning hardware at block 2810 causes a signal, Start of Scan Interrupt, which indicates that a scan is commencing and which is captured by the Microprocessor. The scanning hardware then proceeds to block 2810 to illuminate the image. Next, the scanning hardware at block 2820 scans the image sensor and stores its contents in the memory space pointed to by NS. After exiting block 2820, the hardware causes a signal, End of Scan Interrupt, which indicates that a scan has been completed and which is captured by the Microprocessor. After block 2825, the scanning operation loops back to the beginning of the scanning operation at block 2800 and proceeds to acquire more images unless disabled by the Microprocessor.
Referring to
Again referring to
It is the above interrupt routines in conjunction with blocks 2905, 2925 and 2935 of the decoding process which manipulate the memory pointers to inform the decoding routine of the most recent image to decode and embody the loose linkage between the scanning hardware and the decoding routine undertaken by the Microprocessor. These interrupt and memory pointer routines are independent of any memory constraints such that they work equally well with two, three or more memory spaces. Simultaneously and independent of these above functions, the processor undertakes the decoding of the most recent block of scan data.
Referring now to
After setting the various pointers, the processor at block 2910 enables the scanning hardware at block 2800 to proceed with acquiring images. At block 2915, the processor again checks to see if scanning is still called for. If not, the processor proceeds to block 2950 and disables the scanning hardware. When scanning is enabled, the processor waits at block 2920 and examines ND to see if it contains a valid address, i.e., to see if there is an image which is ready to be decoded. This wait interval may correspond to time intervals Ts0, Ts1, etc. in
Once decoding is complete, at block 2940 a determination is made as to whether decoding was successful. If decoding was successful, the decoded message is output as called for by block 2945 and, if scanning is still being called for (block 2915), the processor loops back to blocks 2915 and 2920 to wait to begin another decoding cycle. If decoding was not successful, block 2940 causes the processor to loop back for a new decoding cycle without outputting any data message. In either case, if scanning is no longer required, the processor proceeds to block 2950 and disables the scanning hardware.
As explained in connection with the embodiment of
While this invention has been explained with reference to the structure disclosed herein, it is not confined to the details set forth and this application is intended to cover any modifications and changes as may come within the scope of the following claims:
[End of an excerpt from the referenced U.S. patent application Ser. No. 08/516,185, filed Aug. 18, 1995]
[Beginning of an excerpt of U.S. patent application Ser. No. 08/205,539, filed Mar. 4, 1994].
Turning now to the Drawing and particularly,
Operation of the scanning section 3011 is controlled by a trigger 3028, which can be a manual trigger, or an automatic trigger that responds to the presence of indicia. The trigger 3028 is coupled to the microcomputer 3030 via an I/O port section 3032. The microcomputer asserts an enable signal 3034 responsive to the trigger 3028 to turn on the illuminator 3012 and the image sensor 3022. Control signals 3036 are provided for clock generators 3038 that provide suitable enabling signals for the illuminator 3012, and clock signals 3042 for the image sensor 3022 as are required for the operation of a CCD device.
The microcomputer is provided with a timer and DMA controller 3044. The video signal is conducted through a bus interface 3046 onto bus 3049, and then stored as data at an address in a RAM 3048, the transfer mediated by the DMA controller 3044. The stored data is representative of the optical pattern of the indicia on the target 3016. While DMA access to the RAM is preferred for rapidity of operation, other memory addressing techniques can be also used. Other conventional provisions include a UART 3052 and an auxiliary I/O port section 3054 for connecting communications devices (not shown) to the scanner. Representative of such devices are a keyboard when the scanner is employed in a wedge configuration, a telecommunications network, and other devices as may be required for a given application of the system.
A ROM 3050 contains system programs, and may also contain a program for decoding the data stored in the RAM 3048. Of course the program could equivalently reside in RAM 3048, and be loaded therein from a secondary memory storage (not shown), or via communications interface 3056.
In this particular embodiment as shown, the decoder is integrated into the scanner, although it could also be external thereto.
A typical scan cycle for a CCD scanner is shown in
The time between successive leading and trailing edges of the video out signal 3120 is then timed using the microprocessor clock counts 3125 as reference. Next the information is then stored in memory 3130.
Scanning of indicia can take place under either of two generalized conditions with respect to the information load presented by the indicia. These are there being a light load of information or a heavy load thereof. The situation is set forth in
However, under a heavy information load it can be seen that the prior art methods 3140 did not allow sufficient time for decoding. Thus, for the method illustrated, after scan1 3141 is completed scan2 3142 is initiated immediately before the decoding of scan1 3143. Scan2 3142 is completed while decode1 3143 is still in progress and so scan3 3144 is initiated. The decoding process falls further and further behind the scanning process until some point where memory is filled and information must be discarded.
This contrasts with the heavy information load handling of the instant scanner 3160. Again scan1 3161 obtains and stores information in memory. Then scan2 3162 is initiated immediately before the decoding of scan1 3165 is begun. However when scan2 3162 is terminated, the decode 3163 is not yet completed. Therefore the scanner is halted at 3170 and only restarted at 3171 to perform scan3 3164 when the decode of scan1 3163 is completed. Of course immediately after scan3 3164 is initiated, so is the decoding of scan2 3165.
First a determination is made as to whether the present scan is complete 3205. This is accomplished via a signal from the scanner to the microprocessor informing the microprocessor that the scan is complete. The signal may either be initiated by the scanner or be a response to a query signal from the microprocessor. Once the scan is complete, and the information garnered from the scan has been placed in RAM memory, then in the preferred embodiment the last memory location containing information from the previous scan is marked in step 3208. This can be done using timing information with respect to the last scan. In this embodiment memory is handled as a circular queue (with each region logically successive to both the prior and subsequent regions of memory) so as to maximize the use of memory, as only the amount needed for each scan is used by it. However storage of the information can take place using two predetermined blocks of memory where each block is of sufficient size to accommodate the greatest possible information obtainable from a single scan. The information from the scan may have been transferred to memory by any of the techniques that are well known in the art such as, for example, direct memory access.
A new scan is then initiated in step 3209 and thereafter the microprocessor begins, in step 3210, decoding the results from the prior scan that are already completely stored in memory. A determination is then made under microprocessor control in step 3212 as to whether the symbol decoding is successful. This query breaks into two parts: first has the decoding been completed and second has the last collection of information been decoded so as to obtain a valid symbol? If the decoding is not complete then no new scan is initiated until such time as it is complete--that is initiation of scanning will be prevented. If however the decoding is complete but does not yield a valid results, then the information will have to be discarded and the system will return to wait for the present scan to be completed.
If, on the other hand, a valid decode has been accomplished, then a determination will be made in step 3215, again under microprocessor control, as to whether the entire group of scans has successfully decoded a complete symbol or informational grouping. If not, the system will wait for the completion of the current scan. If so, then in step 3218 the completed group of scans comprising a message will be processed and/or output as directed by the microprocessor using the peripherals which are attached to the system. The process will then end in step 3020 by either having the power disconnected or the button or trigger for illumination released.
It can be seen that information is decoded at a rate that keeps up with the scanning process so that no discarding of stored information due to memory constraints is ever necessary.
While this invention has been explained with reference to the structure disclosed herein, it is not confined to the details set forth and this application is intended to cover any modifications and changes as may come within the scope of the following claims:
[End of an excerpt of U.S. patent application Ser. No. 08/205,539, filed Mar. 4, 1994].
[Beginning of an excerpt from the referenced U.S. patent application Ser. No. 08/504,643, filed Jul. 20, 1995].
Referring to
The bar code reader includes an illumination system which may comprise a plurality of 660 nm light emitting diodes 16 that illuminate a narrow strip or slice of a bar code symbol 4018. Reader 4010 also includes focusing optics 4019 which may be of the type described in U.S. Pat. No. 5,291,008, which is assigned to the assignee, and incorporated herein by reference. Focusing optics 4019 causes light returning from the bar code symbol along a receive path 4014 to be focused or imaged upon a 1D image sensor 4017 which may be of the charge coupled type. Sensor 4017 develops analog signals that represent the optically readable content of a complete slice of the bar code symbol. These analog signals are supplied to signal processing circuit 4020, which provides signal conditioning and digitization, using a high frequency timing signal or clock received over a clock input line 4023. Digitization is accomplished using an analog reconstruction circuit which is disclosed in U.S. Pat. No. 5,294,783, of common assignee herewith, and also incorporated herein by reference. The resulting video signal representation of the imaged slice is supplied via an output line 4025 to programmed control circuitry 4030 of
Programmed control circuit 4030 performs various tasks necessary to the operation of the reader. It includes a central processing unit 4040 which may comprise a Motorola MC68HC11 microcontroller/microprocessor and has an address space of 64 Kbytes. This microprocessor includes serial and parallel I/O, interrupt logic, an oscillator, and clock logic. Microprocessor 4040 is also provided access to an 8 Kbyte static random access memory (SRAM) 4042 and a 32 Kbyte read only program memory (PEROM) 4045. The capabilities of microprocessor 4040 are enhanced by a multifunctional application specific integrated circuit (ASIC) 4035 which may be of the type sold under the product designation 21203276-01 by Welch Allyn, Inc. As shown in
The timing of the circuitry of
SRAM 4042—a 70 ns, 8K×8 CMOS RAM sold by Sony Corp. under the product designation CXK5864BM-70L.
PEROM 4045—a 90 ns ROM sold by ATMEL under the product designation AT29C256-9.
Regarding the above mentioned modifications, the use of a higher timing signal frequency is the most important and the remaining modifications are made to assure reliable operation of the circuitry at this higher frequency.
Firmware resident in the PEROM 4045 contains the stored program for microprocessor 4040. Portions of the program realized in the PEROM 4045 are conventional, and allow the bar code reader 4010 to function as a conventional autodiscriminating reader for linear bar code symbologies. Broadly speaking, firmware 4060 includes 4 main program segments as shown in
Decoding functions, indicated by reference numeral 4064, are accomplished in several stages. First a preliminary examination for the presence of a 1D bar code symbol is performed. If a 1D linear symbol is found, an attempt is made to decode the symbol with reference to the timercount representations of the slices until decoding is successful, one timercount representation of the symbol often being sufficient for this purpose. If further representations indicate that a stacked 1D stacked symbol is found, this procedure is repeated until all rows of the symbol have been successfully decoded. If it is determined that the symbol is a 2D symbol, the symbol is examined with reference to successive bit representations of the imaged slices, which are stored in SRAM 4042 substantially in real time. As this is occurring the representations are examined to identify the type and location of the finder pattern therefor. The identification is facilitated by the fact that the simultaneous availability of a number of bit representations allows the recognition of data structures such as finders which cannot be recognized and identified from a single bit representation. Once the latter have been determined, additional bit representations are stored until there have been stored a number of such representations which is sufficient to make possible the decoding of the symbol. The stored 2D image may then be decoded using a decoding algorithm of a type appropriate to the symbology used to encode the symbol.
In operation, a user will normally depress a trigger 4012 (or set the unit to automatic scan mode) and sweep the scanner over the image one or more times until the audio alert (e.g., a “beep”) is heard and the decoded information is output. Alternatively, the user might manually specify whether 1D and 2D codes are to be read, or this could be determined automatically by the reader.
The menu functions, indicated by reference numeral 4066, are routines called in response to decoding special bar code symbols, so-called bar code “menus” that set non-volatile bits or values within a designated configuration region of the PEROM 4045, thus governing various operating characteristics of the bar code reader 4010, such as scan rate, beeper volume, mode of operation (manual or auto-trigger), enablement of decoding of particular bar code symbologies, etc.
Communications functions 4068 service the hardware and include protocols needed to deliver scanned data to an attached device. The bar code reader 4010 can support a number of communications protocols and interfaces, including laser output, OCIA, OCR, RS-232, various commercial terminals and keyboard wedges.
Except for the above-discussed modifications to the circuitry and programming of the reader, reader 4010 is of a type that is commercially available to and understood by those skilled in the art. Accordingly, the circuitry shown in
Referring to
In the preferred embodiment, second memory space 4042B is used on a first in-first out basis to receive and store successive timercount representations of the slices of the bar code symbol which are imaged as reader 4010 is manually moved across a bar code symbol. In the case of 2D symbols, this movement may be asynchronous and may be in any direction, provided that enough of the symbol can be imaged along that direction to make decoding possible. In the case of 1D symbols, this movement may also be asynchronous, but must be within a range of directions that allows each code bar of the symbol to be included within the timercount representation. The numbers which are included in each timercount representation comprise the number of timing pulses which have occurred at the times when the video signal from signal processing circuit 4020 undergoes transitions from 1's to 0's or vice-versa. An illustration of how the data from a video signal for an imaged slice is converted to a timercount representation thereof, and then stored in timercount memory 4042B is shown in
Similarly, first or image memory space 4042A is used on a first in-first out basis to receive and store successive bit representations of the slices of the bar code symbol which are imaged as reader 10 is manually moved across a bar code symbol. These bit representations contain substantially the same information as the timercount representations thereof, although in a different format, the conversion of one format to the other being possible with the use of known conversion algorithms. In the preferred embodiment, the bit representation of each slice is derived from the corresponding timercount representation thereof by the use of such an algorithm, as suggested by
In the preferred embodiment, which is based on a modified 1D reader, the above-described conversion of the timercount representation to the corresponding bit representation is performed by microprocessor 4040, while the storing of the timercount and bit representations is handled by the timer and DMA subunit of ASIC 4035. With a total of only 8 Kilobytes of storage space in SRAM 4042, the amount of memory space that is available for storing the bit image is limited to about 3.7 K. As a result, the bit image produced by the embodiment of
Bit representations 4081, 4082, and 4083 of
As the bit representations of symbol 4080 are imaged and stored, they are analyzed (as will be described below) to see if the finder pattern has been located. If the 2D symbol uses the Aztec symbology, this finder pattern will include the set of nested or concentric black and white squares labeled 4085 in
If image memory space 4042A is too small for the above-described reorganization, a similar result may be achieved by transferring the image to the timercount memory as a complete unit with all parts of the image including the finder located on the same side of the pointer of the timercount memory. While such a transfer involves the overwriting of data previously stored in the timercount memory, such overwriting is not a problem since the data stored in the timercount memory is then no longer needed.
It will be understood that the above-described reorganization of the captured image of a bar code symbol is a desirable but not essential part of the present reader. This is because a reorganization of this type is necessary or desirable with some decoding algorithms, but unimportant with others. Whether or not such a reorganization is necessary or even beneficial is also dependent upon the type of finder pattern that is used in the bar code symbol. Thus, the present reader contemplates a reorganization of the captured image of the symbol in those cases where such a reorganization is necessary or beneficial to decoding, but no reorganization in those cases where it is not necessary or beneficial.
As will be explained more fully presently, the above-described image capture process takes place within the framework of an image analysis or typing process that involves a series of attempts to decode the unknown symbol as a 1D linear or 1D stacked symbol and, if it cannot do so, a series of attempts to identify a 2D finder and then decode the symbol using the identified finder. The image analysis process as a whole is best visualized with reference to the flow chart of
The above-summarized image analysis framework will now be described with reference to
Block 4200, which will be described more fully in connection with
If the reader cannot decode the symbol or otherwise produce a complete message, block 4112 directs the reader to block 4300, which represents the steps necessary to decode a 2D symbol of any of a variety of types. This is done because one reason why no data was ready (block 4112) may be that the symbol is not a 1D symbol, i.e., is a 2D symbol. Whether or not that is actually the case at that time remains to be determined. This is because the reason why there was no “Data Ready” may be that the symbol was damaged or was a 1D symbol read from an unpermitted direction. Thus, block 4300 gives the reader a chance to decode the symbol as a 2D symbol before allowing it to give up and return to its wait state.
Upon completing the steps called for by block 4300, the reader determines if a decodable message is ready (block 4116) and, if so, outputs its data and returns to its wait state. If a decodable message is not ready, it may be because more of the 2D symbol needs to be imaged before decoding can occur. As a result, the reader is directed back to block 4106 to repeat the above-described analysis process for additional scan slices until a complete decoded message is ready and then outputs the message and returns to its wait state.
In view of the foregoing, it will be seen that the analysis process shown in the flow chart of
Referring to
Because 1D autodiscriminating algorithms (i.e., algorithms which are capable of differentiating between and then decoding any of a variety of different subtypes of 1D linear symbols) are well known in the art, the steps involved in carrying out the actions called for by blocks 4202 through 4210 of
Referring to
The examination of the sets of bit representations for the type of finder (if any) that is present preferably involves the application of a process of elimination which uses the same algorithms which are used by conventional readers to located their finders. The waistband type finder used with the Code One symbology may, for example, be found using the algorithm described in “Uniform Symbology Specification Code One”, published by AIM USA Technology Group, under publication no. TSC 059. Similarly, the peripheral type finder used with the Data Matrix symbology may be found using the algorithm recommended by its originator, and the circular central type finder used by the Maxi Code symbology may be found using the algorithm recommended by its originator. In the case of the Aztec symbology, a particularly advantageous algorithm for finding the finder has been developed which also works well with symbols using other types of central finders such as Maxicode. Because a description of the latter algorithm is not as yet publicly available, a description thereof will now be provided.
With finder patterns of the central type the bits of successive slices are examined to find a small “island” (black region) within a larger “lake” (white region), within an island, within a lake, etc. This is done by determining how isolated each pixel is from the top and sides of an image, by which measure the center of any bull's-eye stands out plainly. An explanation of a quick scanning algorithm for finding such a bull's-eye structure will now be given.
The following algorithm, presented descriptively and in C code to be more easily understood by a computer programmer, locates a point of high “isolation”—e.g., the center of a bull's-eye—in a stored image. First assume that a fully contrasted image of “n” pixels wide of the 2D bar code is stored in the array I[x][y] where 0≦x<n and each element I[x][y] is valued either 0 (for white) or 1 (for black). This can be either a single image frame (0≦y<m) from a 2D sensor or a continuously acquired image (0≦=y<??) rolling off a 1D sensor that moves in relation to the target.
A “level” array L[x] “n” values wide is first established, where L is an unsigned integer. L is initialized to the values of the top row in I as follows:
for (x=0; x<n; x++)L[x]=I[x][0];
Subsequent rows of the image are processed in sequence
by bi-directional scans through L as follows:
for (y=1; y<m; y++)
{
Working first left-to-right, the left-most L is set equal to the left-most I value in that row, then each subsequent L[x] is set to: (a) the lesser of its current value (from the row above) or its left-hand neighbor, and then (b) plus one if needed to make the new L and its corresponding I both even or odd. This can be represented mathematically in C code as follows.
L[0] = I[0][y];
for (x = 1; x < n−1; x++)
{ if (L[x−1] <L[x]) L [x] = L[x−1];
if ((L[x] {circumflex over ( )} I[x][y])%2 = = 1) L[x] = L[x] + 1;
}
Working then back right-to-left, the right-most L is set equal to the right-most I, then subsequent L's are reduced by 2 (1 or more times) if they exceed their right-hand neighbor by 2 (1 or more times):
L[n−1] = I[n−1][y];
for (x = n−2; x >= 0; x− −)
{ while (L[x] >= L[x+1] + 2) L[x] = L[x] − 2;
}
As the process is repeated with data from each subsequent scan, from row to row the L values will start to reflect how isolated any image region is from its top and sides. After processing a row through part of a bull's-eye, the sequence of L values in its vicinity will look something like:
The “finder (or bull's-eye) located” criterion may be characterized as 4 or more consecutive increases in isolation value followed by 4 or more consecutive decreases. The highest values mark the center of the “bull's eye.” Scanning through L with a simple state machine (probably as part of the right-to-left scan above but shown here as a separate operation) detects this condition:
state = peakx = 0;
for (x = n−1; x ≧ 0; x− −)
{ switch(state) {
case 0:
case 1:
case 2:
case 3: if (L[x] < L[x+1]) state = 0;
if (L[x] > L[x+1]) { peakx = x; state++; } break;
case 4: if (L[x] > L[x+1]) peakx = x;
if (L[x] < L[x +1]) state ++; break;
case 5:
case 6:
case 7: if (L[x] > L[x+1]) state = 0;
if (L[x] < L[x+1]) state++; break ;
default:
}
}
If this scan through L ends with “state”=8, then the point I [peakx][y] is a candidate bullseye center. The true center of the bull's-eye will have the highest level of isolation, so the search will continue for the possibility of a candidate having a higher level of L. If a variable peakl is initialized to zero at the top of the scan, then the candidate bull's-eye center location can be logged by:
if ((state = = 8) && (L[peakx] > peakI))
{ peakI = L[peakx]; eyex = peakx; eyey = y;
}
}
When an entire image has been scanned, then a non-zero “peak1” indicates a bull's-eye was found adjoining pixel 1[eyex] [eyey]. Alternately, in the case of a continuously flowing image, acquisition should be terminated a suitable number of rows (e.g., half the size of the image buffer) past the most recent updating of “peak1”. This is the number “N” referred to in connection with block 308 above. The current reader utilizes the second acquisition method, by choosing to terminate acquisition N scans after the most recent updating of “peak1”. Analysis continues, allowing for a higher peak1, and therefore a more likely candidate for the bull's-eye center to be found subsequently. When all imaged slices have been stored and the finder has been located, the symbol is then ready for decoding with reference to the finder.
While the present invention has been particularly shown and described with reference to the embodiments illustrated in the drawing, one skilled in the art will understand that various changes in detail may be effected therein without departing from the spirit and scope as recited by the claims.
[End of an excerpt of U.S. patent application Ser. No. 08/504,643, filed Jul. 20, 1995].
There is provided an optical scanning and decoding apparatus and method, suitable for use with bar code readers, bar code scanning engines, and portable data terminals (PDTs), which combines improved scanning-decoding and autodiscrimination features in the context of an apparatus and method which also provides improved menuing and reprogramming features.
In accordance with the menuing feature, there is provided an improved apparatus and method which enables a user to determine the current operating mode of an optical reading apparatus, and to rapidly and conveniently change that operating mode to optimize it for operation under then current conditions. The menuing feature, for example, enables the user, via a machine readable table of pre-recorded menu symbols, to command the reader to communicate with a host processor using one of a number of protocols, to command the reader to format the decoded output according to host processor requirements, or to command the reader to report to the host processor any of a plurality of types of information about the current operating state of the reader, such as the version of software then being used, the code options that are then being used, and even a complete listing of the reader's parameter table. If a suitable printer is available, the complete status of a first reader may be output as a machine readable menu symbol that other, similarly equipped readers may read and use to reconfigure themselves for operation in the same manner as the first reader.
In accordance with the reprogramming feature, there is provided an improved apparatus and method by which an optical reader may be reprogrammed from a source external to the reading apparatus, with or without the participation of a user. This external source may be either on-site, i.e., located at the same local facility as the reader, or off-site, i.e., located at a remote facility that is coupled to the local facility only via a transmission line or computer network. When actuated, the reprogramming feature enables a reader to reprogram itself, either in whole or in part, and thereby become able to operate with operating software of the latest type. Depending on the application, the reprogramming of the reader may be initiated either by a host processor external to the reader, as by a command issued via the reader's communication port, or by a user initiated command issued as a part of the above-mentioned menuing process.
In accordance with another aspect of the reprogramming feature, a local host processor may be configured to carry out reprogramming of an optical reader or another type of portable data terminal. In a reprogramming subroutine a local host processor can be made, at the selection of a user, to replace an entire main program and parameter table of a reader, or else one of either a main program or a parameter table of an operating program individually.
In accordance with another subprogram of a local host processor, the local host processor can be made to edit a parameter table. When this subprogram is selected the user may either edit the parameter table that is stored in a memory device of the reader or else edit a parameter table stored in a memory device in communication with the local host processor. After editing, the user may write the edited parameter table to the reader's memory device, write the edited parameter to a bulk storage device for later use, or print or display the edited parameter table.
In accordance with another aspect, an optical reader may be made to receive a component control instruction from an external source host processor which is transmitted in response to a user input command received at the external source host processor to control an optical reader. In accordance with this aspect, the optical reader is made to execute a component control instruction substantially on-receipt thereof. In one embodiment, execution by an optical reader of a component control instruction has the same effect as a reader trigger being manually pulled.
There is also provided an optical scanning and decoding apparatus and method which includes improved scanning-decoding and autodiscrimination features, either or both of which may be used in conjunction with, and/or under the control of, the above-described menuing and reprogramming features. In other words, the autodiscrimination feature is made available to the user on a menu selectable or reprogrammable basis to speed up and/or update the decoding phase of the scanning and decoding process. Together, these features enable the reading apparatus to read and decode a wide range of optically encoded data symbols at an improved data throughput rate.
When a reader is one in which the scan engine cannot be readily started and stopped, or in which such starts and stops impose unacceptable delays or produce user perceptible flicker, the reader preferably operates in one of the tracking relationships described in previously mentioned copending application Ser. No. 08/914,883, now U.S. Pat. No. 5,942,741, incorporated herein by reference. One of these tracking relationships is a Skip Scan tracking relationship in which the results of one or more scans may be skipped over entirely in favor of more recently produced scan results. Another is a Decode On Demand tracking relationship in which decoding is suspended briefly as necessary to allow a scan then in progress to be completed. The latter relationship is ordinarily not preferred, but is still useful when the reader is such that its scan memory is able to store only two complete blocks of scan data.
When the reader is one in which the scan engine can readily be stopped, the present reader may operate in the tracking relationship described in previously mentioned U.S. Pat. No. 5,463,214. With this, “Scan On Demand” tracking relationship, scanning is suspended briefly as necessary to prevent scanning and decoding from becoming uncorrelated with one another.
In the preferred embodiment, the reader includes an algorithm that is able to accommodate any of the above-described scanning-decoding relationships, among others. Which of them is actually used will vary from reader to reader depending upon the size and type of memory and the type of scan engine used thereby, and may be changed from time to time.
There is also contemplated and provided for at least one scanning-decoding relationship which does not fall within the meaning of the above-defined tracking relationships. One of these non-tracking relationships is a “One Shot” relationship or mode in which a single scan is followed by a single decoding attempt and then a stoppage. Such scanning-decoding events may be initiated by respective single actuations of a manual trigger. Because of its inherently discontinuous nature, the use of the One Shot mode implies the non-use of any of the above-mentioned tracking modes.
Two other such scanning-decoding relationships are referred to herein as the “Repeat Until Done” relationship or mode and the “Repeat Until Stopped” relationship or mode. With the Repeat Until Done relationship, scanning and decoding operations follow one after another until a successful decode occurs, and are then discontinued. With the Repeat Until Stopped relationship, scanning and decoding operations follow one after another and continue, even after sets of decoded data are stored or output, until instructed to stop by the release of the trigger or by the readers' program. Because of their repetitive nature, the use of Repeat Until Done and Repeat Until Stopped modes are usable both in conjunction with the above-described tracking modes and independently of those tracking modes. As a result, the Repeat Until Done and Repeat Until Stopped modes may be implemented as user selectable non-tracking relationships or as tracking relationships.
In embodiments that use the autodiscrimination feature, there is provided a method and apparatus by which a plurality of different symbols of a multiplicity of different types may be scanned and decoded in a manner that is optimized for a particular application, on either a menu selectable or a reprogrammable basis. When all of the symbols to be autodiscriminated are known to be 1D symbols, for example, the data throughput rate may be increased by structuring the autodiscrimination feature so that no attempt is made to decode 2D symbols, or vice versa. When, on the other hand, the symbols to be autodiscriminated are known to all be of (or all not to be of) a few types, whether 1D or 2D, the data throughput rate may be increased by structuring the autodiscrimination feature so that all but a few (or only a few) 1D and/or 2D symbologies are disabled, i.e., so that no attempt is made to decode them. Other possible autodiscrimination options include not decoding or not outputting data for symbols that encode messages that are too long or too short to be of interest in a particular application. Any of these options may be chosen and changed as necessary to achieve the highest possible data throughput rate.
Because of the large number of different combinations of distinct operational states that are made possible thereby, the apparatus and method will be seen to have a protean quality that not only makes it usable in a large number of different applications, but also enables it to continue to remain so usable as new functions, new bar code symbologies and new and updated decoding programs are developed in the future.
[Beginning of an excerpt from the referenced U.S. patent application Ser. No. 08/516,185, filed Aug. 18, 1995].
There is provided an improved method and apparatus for scanning and decoding optical patterns at high data throughput rates without a corresponding reduction in read accuracy.
In prior U.S. Pat. No. 5,463,214, which is hereby expressly incorporated herein by reference, there is disclosed an embodiment in which high data throughput rates are achieved by operating the decoding circuitry of the scanner on a substantially continuous basis, i.e., at a 100% utilization rate, and by utilizing scanning circuitry that can be stopped and started substantially instantaneously as necessary to coordinate the scanning and decoding phases of the reading process. Because this embodiment is described and claimed in said prior U.S. patent, it will not be discussed in detail herein.
There are disclosed embodiments in which high data throughput rates are achieved by operating the scanning circuitry of the reader on a substantially continuous basis, i.e., at an approximately 100% utilization rate, and by utilizing decoding circuitry which operates so as to maintain a “tracking” relationship between the scanning and decoding phases of the reading process. This tracking relationship is characterized not by an inflexibly maintained lockstep synchronism between the scanning and decoding operations, but rather by a loosely maintained linkage between the decoding operation and the most recent scan data produced by the scanning operation.
Significantly, this tracking relationship between the scanning and decoding operations has been found to be compatible with the complete and accurate decoding of optically encoded patterns. This result is possible because patterns, such as 2D bar code symbols, which have a relatively high data content which often include both vertical redundancy and error checking bits which make it possible for the symbol to be fully decoded even if part of that symbol is skipped or unreadable. This property is utilized by skipping over those blocks or units of scan data which, though complete, have been superseded by a more recent block of scan data. Stated differently, although the loose tracking used may result in some loss of scan data, that loss takes place in favor of more current scan data which, even if incomplete, permits a symbol to be fully decoded.
In a first embodiment, both the scanning and decoding phases of the reading process proceed without interruption. In embodiments of this type a relatively large number of blocks of scan data are stored in and/or shifted through a relatively large memory space. As this occurs, address information (e.g. address pointers) which is indicative of the beginnings and endings of the scan blocks are updated, substantially in real time, so that the reader can at all times keep “track” of which block of scan data is the most recently completed block. Then, as each decoding cycle is completed, it is immediately followed by another decoding cycle which begins at the beginning of the most recently completed block of scan data, skipping over any then older blocks of scan data. In this way, both the scanning and decoding operations take place at a substantially 100% utilization rate, thereby assuring a high data throughput rate.
In a second embodiment, the scanning and decoding phases of the reading process preferably (but not necessarily) proceed without interruption. In embodiments of this type blocks of scan data are stored in two or more sequentially selected memory spaces, having a predetermined size, scan data for each newly begun scan being written over the scan data in the memory space with the then oldest complete block of scan data. As this occurs, the memory space with the then most current block of scan data may be identified using an address pointer which directs the reader to one of the known scan data starting addresses.
Either of the two above-described embodiments may be practiced using either a 1D image sensor or a 2D image sensor, such as an image sensor of the charge coupled or CCD type. In the case of bar code symbols, this is true whether the bar code symbols are 1D symbols or 2D symbols. This does not, however, mean that embodiments which use 1D image sensors have the same memory requirements as those which use 2D image sensors.
In the case of embodiments which use a 2D image sensor, both 1D and 2D bar code symbols may be captured and stored in a single step, full frame imaging operation while the sensor is held stationary with respect to the symbol. A method and apparatus for capturing and storing 1D and 2D bar code symbols in this manner is shown and described in commonly assigned copending U.S. patent application entitled “Optical Reader Having Improved Interactive Image Sensing and Control Circuitry”, Ser. No. 08/441,447, filed May 15, 1995. With embodiments of this type, the memory requirements are relatively large.
In the preferred embodiments, the beginnings and endings of each block of scan data are fixed with a high degree of precision by using interrupt signals such as start and/or end of scan signals which are derived directly or indirectly from the timing signals that control the imaging activity of the image sensors. Because these timing signals are ultimately derived from a highly stable source, such as a crystal oscillator, and are synchronized with the imaging activity of the image sensor, they allow blocks of scan data to be easily and accurately located. In addition, since scanning takes place without interruption (except when the scanning function is not called for), a single interrupt signal may be used to locate both the end of one block of scan data and the beginning of the next. As a result, the embodiment not only accurately locates each individual block of scan data, it also accurately locates the boundaries between adjacent blocks of scan data.
[End of an excerpt from the referenced U.S. patent application Ser. No. 08/516,185, filed Aug. 18, 1995].
[Beginning of an excerpt from the referenced U.S. patent application Ser. No. 08/205,539, filed Mar. 4, 1994].
It is therefore a primary object to provide optimal throughput in decoded-output optical scanners.
It is another object to provide optimal throughput in optical scanners that can be stopped and started instantaneously.
It is still another object to provide optimal throughput in CCD based optical scanners.
It is a further to provide optimal throughput in CCD based bar-code scanners.
It is still a further object to provide optimal throughput in two-dimensional CCD based bar-code scanners.
It is yet another object to provide a decoded-output optical scanner where the scanning function waits until decoding of an earlier scan has been completed.
These and other objects are attained by a method of improving throughput in a scanner whose scanning action is capable of being stopped and started instantly, comprising the steps of A) storing results of a first scan of a target containing indicia in a first region of a memory and B) upon determining that the first scan is complete 1) decoding results of the first scan 2) initiating a second or subsequent scan 3) storing results of the second scan of the target containing indicia in a second region of a memory, and 4) awaiting completion of the decoding before initiating an additional scan.
[End of an excerpt from the referenced U.S. patent application Ser. No. 08/205,539, filed Mar. 4, 1994].
[Beginning of an excerpt from the referenced U.S. patent application Ser. No. 08/504,643, filed Jul. 20, 1995].
There is provided an improved bar code reader which uses a 1D image sensor and yet which is able to read both 1D and 2D bar code symbols. This bar code reader is specially adapted to practice a novel method for one dimensionally and asynchronously imaging a bar code symbol, and acquiring and storing a digital representation of one or more imaged slices thereof. In the case of 1D linear symbols or 1D stacked symbols, these one or more digital representations preferably comprise “timercount” representations of the imaged slices, i.e., representations which record the occurrence times of the transitions occurring within the slices. These slices preferably extend across all of the code bars of each row of the symbol and have a resolution which is sufficient to permit the information encoded in the symbol to be accurately decoded.
In the case of 2D matrix symbols, these digital representations comprise “bit image” or “bit mapped” representations of the imaged slices, i.e., representations which record the locations of each data element or bit of the imaged slice. When a plurality of successive bit image representations (hereafter often abbreviated to “bit representations”) are considered together, they together comprise a stored representation in which the bits making up the symbol are stored or mapped in memory space in a way that is closely related to the way in which the bits making up the symbol are positioned in the physical space of the printed symbol. Because of this close relationship, the bit representation, once acquired and stored, can be used and decoded in much the same way as a 2D image which has been acquired and stored by a 2D bar code reader, once its finder pattern has been identified and located.
Significantly, the reader may be used with both 1D and 2D bar code symbols, provided that it is equipped with software that enables it to distinguish between the various types of bar code symbologies that may be used. In the case of distinguishing between 1D and 2D symbols, this comprises software which enables the reader to distinguish between 1D bar code symbols and 2D bar code symbols and, if it is a 1D symbol, to decode the symbol using one or more timercount representations thereof. In the case of distinguishing between the various kinds of 2D symbols, this comprises software which enables the reader to successively test for the presence of the finder patterns that are characteristic of the different 2D bar code symbologies and, when the finder pattern has been identified, to decode the symbol using the stored bit representations thereof. The accomplishment of these two results is facilitated by the fact that the reader generates both timercount and bit representations of the symbol substantially simultaneously and in real time.
As will be explained more fully presently, one important advantage is its ability to determine, solely from information contained in a succession of imaged slices or scans, when to stop acquiring data from the 2D symbol. The present reader accomplishes this by examining the bit representations of successive imaged slices, substantially in real time, for indications of the presence of the types of finders that are used with 2D bar code symbologies. Among these finders are “peripheral” type finders, such as those used with the DataMatrix symbology, “waistband” type finders such as those used with the Code One symbology, and “central” or “bullseye” type finders, such as those used by the Maxicode and Aztec symbologies. The last mentioned symbology is described in copending U.S. patent application Ser. No. 08/441,446, filed May 15, 1995, entitled “Two Dimensional Data Encoding Structure and Symbology For Use With Optical Readers”.
With “bullseye” type symbologies, the presence of the central finder is indicated by the emergence of easily recognized numerical patterns that are derived from the above-mentioned succession of bit representations using a new finder identifying algorithm to be described hereinafter. With the “peripheral” and “waistband” type finders, the finders may be identified by means of the known finder identifying algorithms for the DataMatrix and Code One symbologies. If symbols with more than one type of finder are being autodiscriminated, these finder identifying algorithms may be applied alternatively and successively, i.e., as candidate algorithms, until one actually succeeds, and makes decoding possible.
In the preferred embodiment of the method, advantage is taken of the fact that many 1D bar code readers already include programmed control circuitry which operates in conjunction with a fixed frequency timing signal to convert the video signal for a 1D slice of the symbol into a “timercount” representation thereof. These timercount representations of the symbol are produced for each successive slice of the symbol, substantially in real time, as the reader is moved manually across the symbol. As this occurs these timercount representations are stored in successive locations of a timercount memory space. At approximately the same time, these timercount representations are converted to the corresponding bit representations, using a simple well-known conversion algorithm and then stored in an image memory space. In this way, the method takes the fullest possible advantage of existing capabilities of existing 1D bar code readers to enable the reader to distinguish between and then decode both 1D and 2D symbols. It will be understood, however, that, if taking advantage of existing bar code reader capabilities is not important, the reader may be designed so that the timercount and bit image signals are generated simultaneously and independently.
In the event that it is known that the reader will be used to read only 2D bar code symbols, the inclusion in the method (or apparatus) of steps (or circuitry) that are used to identify and process 1D bar code symbols is unnecessary. It will therefore be understood that, in embodiments of the latter type, the generation of timercount representations becomes optional, being included or not included depending upon whether or not it is useful in generating the bit representations used with 2D bar code symbols. In embodiments of the latter type, there may also be eliminated those steps or program segments that are directed only to the identification and processing of 1D bar code symbols.
In accordance with a secondary feature, digital representations are stored in both of the above-mentioned memories, substantially in real time, on a first in-first out basis, with representations of old slices being shifted through the memory (or at least with respect to an address pointer) as representations of new slices are stored. On reaching the end of the memory space, representations of old slices are re-entered at the beginning of the memory space. As a result, the two memory spaces contain two circulating representations of the symbol being read, one a timercount representation and one a bit representation. Sets of newly received timercount representations are examined as they occur and, if they indicate the presence of a 1D symbol, are decoded at once. If this decoding does not succeed, indicating that a 2D symbol may be present, the bit representations are examined to determine if a finder can be identified and located. Once the finder is identified and located, the portion of the symbol that is then being imaged is known. The finding of this finder may then be used to continue the imaging of the symbol until there are enough stored representations of the symbol to allow the latter to be decoded.
Thereafter, optionally, the bit representations may be reorganized (e.g. rewritten in a different order or re-addressed) so that both the individual data bits and the finder pattern are located in their true relative positions with respect to one another. If the image memory space is too small for this to be done within the image memory, the reorganization may take place in the course of transferring the bit representation from the image memory to the timercount memory. In either case, the resulting bit image will be in condition for decoding using the decoding algorithm that is associated with the symbology indicated by the type of finder that has been found.
In an apparatus aspect there is contemplated a 1D bar code reader which is in many respects similar to existing 1D bar code readers, except that its timing, memory structure and programming has been altered in a way that allows it to be used in accordance with the above summarized method. More particularly, the apparatus may comprise a 1D bar code reader which has been modified to increase its clock rate by an amount sufficient to enable it to be used to image many successive slices of the symbol as it is moved there across. In addition, the memory structure of the reader is modified to make the above-mentioned memory spaces available for use in storing and shifting the timercount and bit representations which are associated with these slices. Finally, the programming of the reader is modified to coordinate the generation and storage of the latter representations, to differentiate between 1D and 2D bar code symbologies and, if a 2D symbology is used, to identify the symbology on the basis of the type of finder that is used, and then discontinue the imaging of the symbol after there has been stored a number of digital representations which is sufficient for decoding purposes. (It should be noted in the last mentioned connection that, because error correction data is encoded in 2D bar code symbols along with message data, it is often possible to fully decode a message even though a part of the symbol is missing.) Because the functions of these modifications have already been discussed in connection with the foregoing summary of the method, they will not be repeated here.
Other objects and advantages will be apparent from the following description and drawings. [End of an excerpt from the referenced U.S. patent application Ser. No. 08/504,643, filed Jul. 20, 1995].
While the present invention has necessarily been described with reference to a number of specific embodiments, it will be understood that the time spirit and scope of the present invention should be determined only with reference to the following claims.
Longacre, Jr., Andrew, Hussey, Robert M., Koziol, Thomas J., Ehrhart, Michael A.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
3582884, | |||
3663762, | |||
3684868, | |||
3723970, | |||
3906166, | |||
4004237, | May 01 1970 | Harris Corporation | System for communication and navigation |
4041391, | Dec 30 1975 | The United States of America as represented by the Administrator of the | Pseudo noise code and data transmission method and apparatus |
4075461, | May 03 1976 | SWEDA INTERNATIONAL, INC , SELLER , A CORP OF NEVADA | UPC symbol decoding system |
4097847, | Jul 10 1972 | SCAN-OPTICS, LLC | Multi-font optical character recognition apparatus |
4114155, | Jul 30 1976 | Cincinnati Electronics Corporation | Position determining apparatus and method |
4164628, | Jun 06 1977 | ITT Corporation | Processor for multiple, continuous, spread spectrum signals |
4210802, | Jul 26 1977 | Nippondenso Co., Ltd. | Bar code scanner |
4251798, | May 31 1978 | SYMBOL TECHNOLOGIES, INC , A CORP OF DELAWARE | Portable laser scanning arrangement for and method of evaluating and validating bar code symbols |
4289957, | Apr 19 1978 | La Telemecanique Electrique | Reading stroke codes |
4291410, | Oct 24 1979 | Rockwell International Corporation | Multipath diversity spread spectrum receiver |
4315245, | Apr 05 1978 | Sumitomo Electric Industries, Ltd. | Optical information reading device |
4387297, | Feb 29 1980 | SYMBOL TECHNOLOGIES, INC , A CORP OF DELAWARE | Portable laser scanning system and scanning methods |
4418277, | Nov 19 1980 | PHARMAZENT INDUSTRIEBETEILIGUNGS-UND DATENVERARBEITUNGS-AG | Apparatus for collecting, transmitting and processing data stored in code, preferably in bar code |
4435822, | May 19 1982 | Sperry Corporation | Coherent spread spectrum receiving apparatus |
4445118, | May 22 1981 | The United States of America as represented by the Administrator of the | Navigation system and method |
4488678, | Jun 11 1981 | TOKYO ELECTRIC CO , LTD | Method and apparatus for reading a bar code |
4488679, | Nov 01 1982 | Western Publishing Company, Inc. | Code and reading system |
4500776, | Nov 08 1982 | Method and apparatus for remotely reading and decoding bar codes | |
4538060, | May 31 1982 | Nippondenso Co., Ltd. | Optical reading apparatus having a reading sensor of electronic scanning type |
4541462, | Dec 10 1982 | IRO AKTIEBOLAG, ALSO KNOWN AS IRO AB | Weft yarn storing, feeding and measuring device, preferably for jet weaving machines |
4542528, | Apr 09 1981 | SIEMENS-NIXDORF INFORMATION SYSTEMS, INC , A CORP OF MA | OCR and bar code reader with optimized sensor |
4561089, | Mar 23 1984 | Sangamo Weston, Inc. | Correlation detectors for use in direct sequence spread spectrum signal receiver |
4570057, | Dec 28 1981 | Intermec IP CORP | Instant portable bar code reader |
4610359, | Feb 23 1983 | Telefunken Systemtechnik GmbH | Method for recognizing and sorting articles |
4628532, | Jul 14 1983 | SCAN-OPTICS, LLC | Alphanumeric handprint recognition |
4634850, | Oct 12 1983 | Lasercard Corporation | Quad density optical data system |
4636624, | Jan 10 1983 | Minolta Camera Kabushiki Kaisha | Focus detecting device for use with cameras |
4639932, | Aug 29 1985 | L-3 Communications Corporation | Clock rate spread spectrum |
4644523, | Mar 23 1984 | WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT | System for improving signal-to-noise ratio in a direct sequence spread spectrum signal receiver |
4646353, | Mar 25 1983 | Stork Screens B.V. | Method for checking patterns and apparatus to carry out such method |
4653076, | Mar 23 1984 | WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT | Timing signal correction system for use in direct sequence spread signal receiver |
4654514, | Sep 10 1984 | Texas Instruments Incorporated | Product information system using hand-held unit with code reader |
4686363, | Jan 21 1986 | Printware, Inc. | Self-resonant scanner biasing system |
4690530, | Nov 26 1984 | Minolta Camera Kabushiki Kaisha | Camera with release control and automatic film sensitivity setting |
4710817, | Dec 26 1984 | Nippon Hoso Kyokai | Solid state image sensor |
4721849, | Oct 02 1985 | Videx, Inc. | Portable programmable optical code reader |
4731525, | Jun 17 1983 | Data Information Management Systems, Inc. | Modular microprocessor-based system for printing and reading school attendance recordkeeping codes on forms |
4757057, | Aug 09 1977 | Pharmacia & Upjohn Aktiebolag | Oligo-heteropolysaccharides having a heparin-like activity method for their preparation and pharmaceutical compositions based thereon |
4758717, | Jan 25 1982 | SYMBOL TECHNOLOGIES, INC , A CORP OF DELAWARE | Narrow-bodied, single-and twin-windowed portable laser scanning head for reading bar code symbols |
4760248, | Feb 28 1985 | SYMBOL TECHNOLOGIES, INC , A CORP OF DELAWARE | Portable laser diode scanning head |
4761544, | Nov 15 1985 | Hewlett-Packard Company | Means and method of scaling time interval measurements from an optical bar code scanner to improve decoder efficiency |
4774715, | Mar 11 1987 | Cisco Technology, Inc | Device for demodulating a spread spectrum signal |
4782220, | Sep 29 1986 | MARS, INCORPORATED; MARS, INCORPORATED, 1651 OLD MEADOW ROAD, MCLEAN, VA 22102 A CORP OF DE | Method and apparatus for bar code data autodiscrimination |
4785463, | Sep 03 1985 | MOTOROLA, INC , A CORP OF DELAWARE | Digital global positioning system receiver |
4791446, | Feb 14 1986 | Minolta Camera Kabushiki Kaisha | Light measuring device |
4794239, | Oct 13 1987 | Intermec IP Corporation | Multitrack bar code and associated decoding method |
4807202, | Apr 17 1986 | SYSTEM ENGINEERING STRATEGIES SES , A CALIFORNIA GENERAL PARTNERSHIP; DEALEJANDRO, JOSEPH I ; CHERRI, ALLAN; BORROR, DANIEL R | Visual environment simulator for mobile viewer |
4807256, | Dec 23 1985 | Texas Instruments Incorporated | Global position system receiver |
4818856, | Nov 06 1985 | NIPPONDENSO CO , LTD | Optical information reading apparatus |
4825057, | Feb 28 1985 | Symbol Technologies, Inc. | Portable laser diode scanning head |
4825058, | Oct 14 1986 | PHONE TEL COMMUNICATIONS, INC | Bar code reader configuration and control using a bar code menu to directly access memory |
4835713, | Aug 06 1985 | Pitney Bowes Inc. | Postage meter with coded graphic information in the indicia |
4837414, | Apr 23 1986 | Sharp Kabushiki Kaisha | Oven with electronic remote controller |
4841132, | Jul 21 1986 | MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD | Program recording scheduling apparatus using an optical reader |
4841544, | May 14 1987 | CHARLES STARK DRAPER LABORATORY, INC , THE | Digital direct sequence spread spectrum receiver |
4861972, | Nov 05 1987 | PSC SCANNING, INC | Bar code scanner and method of programming |
4864302, | Feb 13 1984 | Data entry systems for converting an analog instrument to machine-readability | |
4866257, | Nov 19 1987 | PSC SCANNING, INC | Bar code scanner and method |
4868375, | Aug 22 1988 | NCR Corporation | Method for changing the functions of a bar code reader |
4874936, | Apr 08 1988 | UNITED PARCEL SERVICE OF AMERICA, INC , A DE CORP | Hexagonal, information encoding article, process and system |
4877949, | Aug 08 1986 | Intermec IP CORP | Hand-held instant bar code reader system with automated focus based on distance measurements |
4889977, | Dec 21 1987 | SOUTHWESTERN BELL TELEPHONE COMPANY, A CORP OF MO | Method of identifying the disposition of plug-in units at a warehouse |
4893333, | Mar 14 1989 | CARDIFF SOFTWARE, INC | Interactive facsimile system and method of information retrieval |
4896029, | Apr 08 1988 | United Parcel Service of America, Inc.; United Parcel Service of America, Inc | Polygonal information encoding article, process and system |
4901073, | Dec 04 1986 | Regent of the University of California | Encoder for measuring the absolute position of moving elements |
4906830, | Feb 12 1988 | ALPS Electric Co., Ltd. | Bar-code remote-control device |
4908500, | Jun 29 1987 | Campagnie Generale D'Automatisme CGa-HBS | System for automatically reading indentification data disposed on a vehicle |
4924474, | Feb 10 1988 | MITSUBISHI DENKI KABUSHIKI KAISHA, NO 2-3, MARUNOUCHI 2-CHOME, CHIYODA-KU, TOKYO, JAPAN | Laser device with high oscillation efficiency |
4924482, | Jan 22 1987 | NITTO KOHKI CO , LTD | Data-transmitting apparatus |
4931828, | Dec 18 1987 | MINOLTA CAMERA KABUSHIKI KAISHA, OSAKA KOKUSAI BUILDING, 2-30, AZUCHI-MACHI, HIGASHI-KU, OSAKA-SHI, OSAKA, JAPAN, A CORP OF JAPAN | Reader-printer |
4945216, | Nov 06 1985 | Sharp Kabushiki Kaisha | Wireless bar code reader |
4964167, | Jul 15 1987 | Matsushita Electric Works, Ltd | Apparatus for generating synthesized voice from text |
4973829, | Nov 22 1988 | Eastman Kodak Company | Bar code reading method |
4988010, | Aug 10 1989 | ADAMS, BRUCE L , 18 HOLMEHILL LANE, ROSELAND, NJ 07068 | Compartmentalized trash container |
4988852, | Jul 05 1988 | Intermec Corporation | Bar code reader |
5010241, | Jan 12 1989 | AVAGO TECHNOLOGIES ECBU IP SINGAPORE PTE LTD | Sensor array and illumination system for a large depth-of-field bar code scanner |
5019699, | Aug 31 1988 | Intermec IP CORP | Hand-held optical character reader with means for instantaneously reading information from a predetermined area at an optical sensing area |
5023922, | Jun 07 1985 | INTERNATIONAL VERIFACT INC | Optical character reader |
5046066, | Feb 09 1987 | Cisco Technology, Inc | Wireless local area network |
5101406, | Aug 28 1989 | Cisco Technology, Inc | Wireless communications system |
5113445, | Jul 09 1990 | Symbol Technologies Inc. | System for encoding data in machine readable graphic form |
5120943, | Jun 19 1989 | Wandel & Goltermann GmbH & Co. | Method of and apparatus for setting a measuring instrument |
5138140, | Aug 22 1990 | Symbol Technologies, Inc. | Signature capture using electro-optical scanning |
5153418, | Oct 30 1990 | Omniplanar, Inc. | Multiple resolution machine readable symbols |
5153421, | Nov 04 1991 | Xerox Corporation | Architecture for analog and digital image sensor arrays |
5155343, | Mar 28 1990 | OMNIPLANAR, INC , A CORP OF NJ | Omnidirectional bar code reader with method and apparatus for detecting and scanning a bar code symbol |
5157687, | Jun 29 1989 | Symbol Technologies, Inc. | Packet data communication network |
5157773, | Mar 14 1986 | Canon Kabushiki Kaisha | Image data output apparatus |
5159635, | Jul 09 1990 | Symbol Technologies, Inc. | System for encoding data in machine readable graphic form |
5175420, | Mar 20 1991 | Bar code scanner having a light source/photodetector movable in a raster pattern | |
5180904, | Jan 25 1982 | Symbol Technologies, Inc. | Bar code scanner with automatic de-activation of scan upon bar code recognition |
5185514, | Sep 19 1991 | NCR Corporation | Programmable apparatus and method for optical scanners |
5189292, | Oct 30 1990 | Omniplanar, Inc. | Finder pattern for optically encoded machine readable symbols |
5196684, | Mar 25 1991 | Opticon, Inc. | Method and apparatus for improving the throughput of a CCD bar code scanner/decoder |
5196686, | Nov 22 1989 | NCR Corporation | Checkout system with inlaid checkout counter keypad |
5206881, | Apr 15 1992 | Cisco Technology, Inc | Wireless local area network |
5208449, | Sep 09 1991 | DATALOGIC MOBILE, INC | Portable transaction terminal |
5212369, | Jan 25 1990 | Gemplus Card International | Method of loading applications programs into a memory card reader having a microprocessor, and a system for implementing the method |
5212777, | Nov 17 1989 | TEXAS INSTRUMENTS INCORPORATED, A CORP OF DE | Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation |
5216233, | Mar 09 1989 | Intermec IP CORP | Versatile RF terminal-scanner system |
5218191, | Dec 28 1981 | Intermec IP CORP | Instant portable bar code reader |
5223701, | Oct 30 1990 | Ommiplanar Inc. | System method and apparatus using multiple resolution machine readable symbols |
5231293, | Oct 31 1991 | Welch Allyn Data Collection, Inc | Bar code reading instrument which prompts operator to scan bar codes properly |
5233169, | Oct 31 1991 | Welch Allyn Data Collection, Inc | Uniport interface for a bar code reading instrument |
5235167, | Oct 21 1989 | Symbol Technologies, Inc. | Laser scanning system and scanning method for reading bar codes |
5237161, | Jun 05 1991 | PSC INC , A NEW YORK CORPORATION | System for automatically reading symbols, such as bar codes, on objects which are placed in the detection zone of a symbol reading unit, such as a bar code scanner |
5241164, | Jan 05 1990 | Symbol Technologies, Inc. | Method of decoding bar code symbols from partial scans |
5243655, | Jan 05 1990 | Symbol Technologies Inc. | System for encoding and decoding data in machine readable graphic form |
5245695, | Jun 12 1991 | Microchip Technology Incorporated | Fuzzy microcontroller |
5247166, | May 31 1991 | GTECH Rhode Island Corporation | Form reader with linear CCD scanner and drum feed |
5250792, | Feb 28 1985 | Symbol Technologies, Inc. | Portable laser diode scanning head |
5262623, | Sep 04 1991 | Omniplanar, Inc. | Method and apparatus for distinguishing a preferred bar code or the like |
5262626, | Dec 06 1989 | Symbol Technologies, Inc. | Decoding bar codes from multiple scans using element replacement |
5262871, | Nov 13 1989 | Innolux Corporation | Multiple resolution image sensor |
5266787, | Jan 11 1991 | SYMBOL TECHNOLOGIES, INC , | Laser scanner using two scan motors independently controlled by a single signal |
5272323, | Nov 22 1989 | Symbol Technologies, Inc. | Digitizer for barcode scanner |
5274567, | Dec 27 1990 | NCR Corporation | Table top image based document processing machine and methods of processing documents |
5276315, | May 14 1992 | UNITED PARCEL SERVICE OF AMERICA, INC , A DELAWARE CORP | Method and apparatus for processing low resolution images of degraded bar code symbols |
5276400, | Sep 23 1989 | VLSI VISION LTD | Test circuit for imaging sensing integrated circuits |
5278398, | Jan 05 1990 | Symbol Technologies, Inc. | Decoding bar code symbols by determining the best alignment of partial scans |
5286960, | Nov 04 1991 | Welch Allyn Data Collection, Inc | Method of programmable digitization and bar code scanning apparatus employing same |
5291008, | Jan 10 1992 | Welch Allyn Data Collection, Inc | Optical assembly and apparatus employing same using an aspherical lens and an aperture stop |
5291009, | Feb 27 1992 | Symbol Technologies, Inc | Optical scanning head |
5291564, | Jul 11 1991 | United Parcel Service of America | System and method for acquiring an optical target |
5294783, | Jan 10 1992 | Welch Allyn Data Collection, Inc | Analog reconstruction circuit and bar code reading apparatus employing same |
5296689, | Feb 28 1992 | PSC SCANNING, INC | Aiming beam system for optical data reading device |
5296690, | Mar 28 1991 | Omniplanar, Inc. | System for locating and determining the orientation of bar codes in a two-dimensional image |
5304786, | Jan 05 1990 | SYMBOL TECHNOLOGIES, INC , A CORP OF DELAWARE | High density two-dimensional bar code symbol |
5304787, | Jun 01 1993 | Symbol Technologies, Inc | Locating 2-D bar codes |
5308962, | Nov 01 1991 | HAND HELD PRODUCTS, INC | Reduced power scanner for reading indicia |
5308966, | Aug 08 1986 | Intermec IP CORP | Hand-held instant bar code reader having automatic focus control for operation over a range of distances |
5311001, | Sep 13 1991 | Symbol Technologies, Inc. | Analog waveform decoder utilizing histogram of edge sizes |
5317136, | Dec 20 1990 | NIPPONDENSO CO , LTD | Information reading device which controls communication interrupt signal from a host system |
5319185, | Jul 24 1991 | NIPPONDENSO CO , LTD | Small-size hand-supported bar code reader |
5324924, | May 11 1992 | Symbol Technologies, Inc. | Bar code decoder with changeable working ranges |
5331176, | Apr 10 1992 | VCODE HOLDINGS, INC | Hand held two dimensional symbol reader with a symbol illumination window |
5343026, | Mar 26 1991 | HITACHI-OMRON TERMINAL SOLUTIONS CORP | Magnetic card reader/writer with selectable frequencies relative to motor speed for variable recording densities |
5343028, | Aug 10 1992 | United Parcel Service of America, Inc. | Method and apparatus for detecting and decoding bar code symbols using two-dimensional digital pixel images |
5345266, | Oct 23 1989 | VLSI Vision Limited | Matrix array image sensor chip |
5347113, | Mar 22 1993 | PSC SCANNING, INC | Multiple-interface selection system for computer peripherals |
5347114, | Oct 25 1991 | Olympus Optical Co., Ltd. | Bar code symbol reading apparatus |
5349172, | Feb 27 1992 | Symbol Technologies, Inc | Optical scanning head |
5354977, | Oct 02 1992 | Symbol Technologies, Inc | Optical scanning head |
5365048, | Feb 20 1992 | Olympus Optical Co., Ltd. | Bar code symbol reading apparatus with double-reading preventing function |
5378881, | May 29 1992 | Olympus Optical Co., Ltd. | Bar code reader for accurately reading two-dimensional bar code images |
5378883, | Jul 19 1991 | Omniplanar Inc. | Omnidirectional wide range hand held bar code reader |
5386410, | Jun 12 1990 | Olympus Optical Co., Ltd. | Optical recording medium and recording and reproducing apparatus of the same |
5389917, | Feb 17 1993 | PSC, Inc. | Lapel data entry terminal |
5392447, | Jan 10 1992 | Eastman Kodak Compay | Image-based electronic pocket organizer with integral scanning unit |
5396054, | Mar 01 1989 | Symbol Technologies, Inc. | Bar code reader using scanned memory array |
5401949, | Jun 12 1991 | Microchip Technology Incorporated | Fuzzy logic barcode reader |
5404004, | Apr 20 1992 | Fujitsu Limited | Bar code reader having N counters and N-1 composers |
5406063, | May 07 1993 | Symbol Technologies, Inc | Hand-held data scanner having adjustable keyboard panel |
5410141, | Jun 07 1989 | Intermec Technologies Corporation | Hand-held data capture system with interchangable modules |
5412197, | Jan 29 1993 | United Parcel Service of America, Inc. | Method and apparatus for decoding bar code symbols using gradient signals |
5414251, | Mar 12 1992 | Intermec IP CORP | Reader for decoding two-dimensional optical information |
5418357, | Jun 22 1992 | Matsushita Electric Industrial Co., Ltd. | Bar-code reader permitting selective use of a whole or a part of an image sensor |
5418862, | Aug 10 1992 | United Parcel Service of America | Method and apparatus for detecting artifact corners in two-dimensional images |
5420409, | Oct 18 1993 | Welch Allyn Data Collection, Inc | Bar code scanner providing aural feedback |
5422470, | Aug 31 1992 | Olympus Optical Co., Ltd. | Symbol information reading apparatus |
5422744, | Jun 12 1992 | Symbol Technologies, Inc. | Bar code incorporated into holographic display |
5425051, | Nov 09 1992 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Radio frequency communication network having adaptive parameters |
5428211, | May 02 1994 | United Parcel Service of America, Inc | Postnet bar code decoder |
5428212, | Dec 21 1992 | Asahi Kogaku Kogyo Kabushiki Kaisha | Encoded symbol reader |
5430283, | Sep 10 1992 | Olympus Optical Co., Ltd. | Bar-code symbol reading apparatus |
5430286, | Jan 17 1992 | HAND HELD PRODUCTS, INC | Intimate source and detector and apparatus employing same |
5438636, | May 14 1992 | United Parcel Service of America, Inc. | Apparatus for simultaneously convolving multiple digital binary images using a single convolver with a binary mask to determine pixel densities |
5440111, | Feb 07 1991 | PSC, Inc. | Optical system for scanning and reading barcodes with manually controlled scan beam length |
5442164, | Sep 02 1992 | Olympus Optical Co., Ltd. | Bar code reader for reading two-dimensional bar codes by using length information derived from a sensed signal |
5444231, | Jul 13 1992 | Symbol Technologies, Inc. | Bar code scan stitching |
5446271, | Aug 06 1993 | PSC SCANNING, INC | Omnidirectional scanning method and apparatus |
5457308, | Sep 14 1993 | Symbol Technologies, Inc. | Bar code scan stitching |
5461425, | Feb 15 1994 | Stanford University | CMOS image sensor with pixel level A/D conversion |
5463214, | Mar 04 1994 | HAND HELD PRODUCTS, INC | Apparatus for optimizing throughput in decoded-output scanners and method of using same |
5465207, | Jan 31 1989 | Intermec IP CORP | Vehicle data system |
5466921, | Aug 26 1988 | ACCU-SORT SYSTEMS, INC | Scanner to combine partial fragments of a complete code |
5471515, | Jan 28 1994 | California Institute of Technology | Active pixel sensor with intra-pixel charge transfer |
5471592, | Nov 17 1989 | Texas Instruments Incorporated | Multi-processor with crossbar link of processors and memories and method of operation |
5473148, | Aug 11 1993 | Olympus Optical Co., Ltd. | Barcode symbol reading system capable of shortening time for reading and decoding |
5477042, | Jun 01 1993 | Symbol Technologies, Inc | 2-D bar code scanner/decoder having a redundancy canceller |
5478997, | Oct 21 1988 | Symbol Technologies, Inc | Symbol scanning system and method having adaptive pattern generation |
5478999, | Aug 10 1992 | United Parcel Service of America, Inc. | Method and apparatus for decoding bar code symbols along search steps |
5479515, | May 11 1994 | HAND HELD PRODUCTS, INC | One-dimensional bar code symbology and method of using same |
5481101, | Dec 10 1993 | Teiryo Sangyo Co., Ltd. | Two dimensional code data reading apparatus and method |
5481103, | Jul 26 1994 | Symbol Technologies, Inc | Packet bar code with data sequence encoded in address/data packets |
5483676, | Aug 04 1988 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Mobile radio data communication system and method |
5484994, | Oct 18 1993 | Symbol Technologies, Inc | Optical scanning head with improved resolution |
5485369, | Sep 28 1993 | United Parcel Service of America, Inc; UNITED PARCEL SERVICE DEUTSCHLAND INC | Logistics system for automating tansportation of goods |
5487115, | May 14 1992 | United Parcel Service | Method and apparatus for determining the fine angular orientation of bar code symbols in two-dimensional CCD images |
5488223, | Sep 13 1994 | Intermec IP Corporation | System and method for automatic selection of printer control parameters |
5489769, | May 26 1992 | Olympus Optical Co., Ltd. | Symbol information reading apparatus |
5491471, | Oct 23 1991 | Access control system where the card controls the transmission format of the card reader | |
5493108, | Oct 14 1992 | PSC SCANNING, INC | Method and apparatus for recognizing and assembling optical code information from partially scanned segments |
5495097, | Sep 14 1993 | Symbol Technologies, Inc. | Plurality of scan units with scan stitching |
5504367, | Mar 21 1994 | Intermec IP Corporation | Symbology reader illumination system |
5504524, | Oct 13 1994 | VLSI Vision Limited; VLSI VISION LIMITED AVIATION HOUSE, 31 PINKHILL | Method and apparatus for controlling color balance of a video signal |
5504746, | Oct 01 1991 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Radio frequency local area network |
5510604, | |||
5510606, | |||
5512739, | Mar 28 1990 | Omniplanar, Inc. | Dual processor omnidirectional bar code reader with dual memory for bar code location and orientation |
5519199, | Dec 20 1993 | Fujitsu Limited | Method and apparatus for detecting and storing bar bode data and re-detecting undetected data |
5521366, | Jul 26 1994 | Symbol Technologies, Inc | Dataform readers having controlled and overlapped exposure integration periods |
5524068, | Aug 21 1992 | United Parcel Service of America, Inc. | Method and apparatus for finding areas of interest in images |
5525787, | Nov 11 1991 | Olympus Optical Co., Ltd. | Symbol information reading apparatus |
5528621, | Jun 29 1989 | Symbol Technologies, Inc | Packet data communication system |
5532467, | Feb 27 1992 | Symbol Technologies, Inc | Optical scanning head |
5532692, | Sep 07 1992 | NIPPONDENSO CO , LTD | Communication system |
5537431, | Jun 15 1994 | International Business Machines Corporation | Method and apparatus for bar code reading and decoding |
5539193, | Jun 07 1989 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Modular hand-held data entry system |
5541398, | Oct 24 1989 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Compact hand-held RF data terminal |
5545886, | Mar 13 1990 | Symbol Technologies Inc. | Barcode scanner using an array of light emitting elements which are selectively activated |
5548107, | Aug 26 1988 | ACCU-SORT SYSTEMS, INC | Scanner for reconstructing optical codes from a plurality of code fragments |
5548108, | Aug 02 1991 | Intermec IP Corporation | Method and apparatus for scanning symbols |
5550364, | Mar 21 1994 | Intermec IP Corporation | Method and apparatus for spotter beam formation using a partitioned optical element |
5550366, | Jun 20 1994 | MOTOROLA SOLUTIONS, INC | Optical scanner with automatic activation |
5552989, | Oct 30 1991 | AX DEVELOPMENT KG LIMITED LIABILITY COMPANY | Portable digital map reader |
5557095, | May 10 1993 | PSC Inc. | System for enabling decoding of bar code and other symbols with a digital microcomputer connected via the input/output port thereof to the scanner |
5563399, | Sep 15 1994 | Symbol Technologies, Inc | Bar code decoding with dynamically loadable data character sets |
5565699, | Jul 22 1993 | Semiconductor Components Industries, LLC | Semiconductor integrated circuit device |
5568645, | Aug 21 1991 | Intermec Technologies Corporation | Versatile RF data capture system |
5572006, | Jul 26 1994 | Symbol Technologies, Inc | Automatic exposure single frame imaging systems |
5576529, | Oct 08 1986 | INERMEC IP CORP ; Intermec IP CORP | Hand-held optically readable information set reader focus with operation over a range of distances |
5579487, | Oct 02 1992 | Symbol Technologies, Inc | Portable work slate computer with multiple docking positions for interchangeably receiving removable modules |
5581066, | Sep 26 1992 | Fujitsu Limited | Multiple-row bar code reading apparatus |
5590346, | Jul 26 1993 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Antenna cap for computer device utilizing a radio card |
5590356, | Aug 23 1994 | Massachusetts Institute of Technology | Mesh parallel computer architecture apparatus and associated methods |
5591955, | May 11 1993 | Portable data file readers | |
5591956, | May 15 1995 | Welch Allyn Data Collection, Inc | Two dimensional data encoding structure and symbology for use with optical readers |
5594230, | Feb 18 1993 | Intermec IP CORP | Analyzer for bar code readers and decoders |
5594778, | Feb 04 1991 | Motorola, Inc. | Radio telephone operating technique |
5598007, | Mar 21 1994 | Intermec IP Corporation | Symbology reader with fixed focus spotter beam |
5600119, | Oct 21 1988 | Symbol Technologies, Inc. | Dual line laser scanning system and scanning method for reading multidimensional bar codes |
5600121, | Aug 20 1995 | Symbol Technologies, LLC | Optical reader with independent triggering and graphical user interface |
5610387, | May 15 1992 | Symbol Technologies, Inc. | Portable optical scanning system worn by a user for reading indicia of differing light reflectivity |
5610595, | Dec 09 1991 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Packet radio communication system protocol |
5612524, | Nov 25 1987 | VCODE HOLDINGS, INC | Identification symbol system and method with orientation mechanism |
5619192, | Jun 14 1994 | Northrop Grumman Systems Corporation | Apparatus and method for reading utility meters |
5621203, | Sep 25 1992 | Symbol Technologies, Inc | Method and apparatus for reading two-dimensional bar code symbols with an elongated laser line |
5631457, | Aug 17 1994 | Olympus Optical Co., Ltd. | Two-dimensional symbol data read apparatus |
5635697, | Mar 01 1989 | Symbol Technologies, Inc | Method and apparatus for decoding two-dimensional bar code |
5637849, | May 31 1995 | Symbol Technologies, LLC | Maxicode data extraction using spatial domain features |
5640001, | Oct 16 1989 | Intermec IP CORP | Hand-held instant bar code reader having automatic focus control for operation over a range of distances |
5640193, | Aug 15 1994 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | Multimedia service access by reading marks on an object |
5640202, | Apr 26 1994 | Canon Kabushiki Kaisha | Imaging system which changes the frame rate of the image signal |
5640684, | Aug 08 1994 | Nippondenso Co., Ltd. | Radio data communication system comprising a common base radio station and handy radio terminals |
5644601, | Oct 31 1994 | Symbol Technologies, Inc | Method and apparatus for bias suppression in a VCO based FM transmission system |
5646389, | Nov 13 1990 | Symbol Technologies, Inc | Inventory management system using coded re-order information |
5659431, | Oct 23 1995 | Intermec IP CORP | Fixed mount imager using optical module for reading one or two-dimensional symbology data |
5663549, | Mar 13 1990 | Symbol Technologies, Inc | System for reading a symbol by activitating a liquid crystal device to control a scanning path |
5665959, | Jan 13 1995 | The United States of America as represented by the Administrator of the; California Institute of Technology; NATIONAL AERONAUTICS AND SPACE ADMINISTRATION, UNITED STATES OF AMERICA, AS REPRESENTED BY THE ADMINISTRATOR | Solid-state image sensor with focal-plane digital photon-counting pixel array |
5668803, | Jun 29 1989 | Symbol Technologies, Inc | Protocol for packet data communication system |
5672858, | Jun 30 1994 | Symbol Technologies, Inc | Apparatus and method for reading indicia using charge coupled device and scanning laser beam technology |
5684290, | Mar 21 1994 | Intermec IP Corporation | Symbology reader illumination system |
5686715, | Mar 04 1991 | Fujitsu Frontech Limited | Add-on bar-code reading apparatus in a bar-code reader |
5686717, | Jun 06 1989 | Metrologic Instruments, Inc | Bar code symbol reading system with multi-port digital signal decoder |
5689102, | Aug 11 1994 | SCANTECH-ID HOLDING B V | Portable multi-directional bar code scanner |
5691773, | Sep 12 1995 | Symbol Technologies, LLC | Anti-hand-jittering dataform readers and methods |
5698833, | Apr 15 1996 | United Parcel Service of America, Inc. | Omnidirectional barcode locator |
5698835, | Oct 30 1989 | Symbol Technologies, Inc. | Slim scan module with interchangeable X-Y scan element |
5702059, | Oct 31 1994 | Symbol Technologies, Inc | Extended working range dataform reader including fuzzy logic image control circuitry |
5703349, | Oct 18 1995 | Symbol Technologies, LLC | Portable data collection device with two dimensional imaging assembly |
5708680, | May 14 1991 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Network utilizing a controller and base transceivers to route voice packets |
5710417, | Oct 21 1988 | Symbol Technologies, LLC | Bar code reader for reading both one dimensional and two dimensional symbologies with programmable resolution |
5714745, | Feb 26 1996 | Symbol Technologies, Inc | Portable data collection device with color imaging assembly |
5717195, | Mar 05 1996 | Symbol Technologies, LLC | Imaging based slot dataform reader |
5717221, | Jun 30 1994 | Symbol Technologies, Inc. | Multiple laser indicia reader optionally utilizing a charge coupled device (CCD) detector and operating method therefor |
5719385, | Dec 08 1995 | NCR Corporation | Optical scanner having multi-line and single-line scanning modes |
5723823, | Jun 09 1994 | Dell USA, L.P.; DELL USA, L P | Circuit board with enhanced rework configuration |
5723853, | Jan 10 1995 | HAND HELD PRODUCTS, INC | Bar code reader |
5723868, | May 15 1995 | HAND HELD PRODUCTS, INC | Illuminating assembly for use with bar code readers |
5726435, | Mar 14 1995 | Denso Wave Incorporated | Optically readable two-dimensional code and method and apparatus using the same |
5726981, | Dec 21 1995 | Nokia Technologies Oy | Methods for making active channel measurements in a personal base station environment |
5726984, | Jan 31 1989 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Hierarchical data collection network supporting packetized voice communications among wireless terminals and telephones |
5734153, | Feb 28 1985 | Symbol Technologies, Inc. | Hand-held scanning head with aiming beam |
5736726, | Mar 29 1996 | Symbol Technologies, LLC | Portable data collection device having removable handle and battery |
5739518, | May 17 1995 | Symbol Technologies, LLC | Autodiscrimination for dataform decoding and standardized recording |
5744788, | May 11 1988 | Symbol Technologies, Inc. | Voice-activated optical scanning system |
5754587, | Oct 31 1994 | Symbol Technologies, Inc. | Method and apparatus for bias suppression in a VCO based FM transmission system |
5756981, | Feb 27 1992 | Symbol Technologies, Inc | Optical scanner for reading and decoding one- and-two-dimensional symbologies at variable depths of field including memory efficient high speed image processing means and high accuracy image analysis means |
5763864, | Jul 26 1994 | Symbol Technologies, LLC | Dataform reader including dual laser and imaging reading assemblies |
5773806, | Jul 20 1995 | Welch Allyn Data Collection, Inc | Method and apparatus for capturing a decodable representation of a 2D bar code symbol using a hand-held reader having a 1D image sensor |
5773810, | Mar 29 1996 | Welch Allyn Data Collection, Inc | Method for generating real time degree of focus signal for handheld imaging device |
5774357, | Dec 23 1991 | Blanding Hovenweep, LLC; HOFFBERG FAMILY TRUST 1 | Human factored interface incorporating adaptive pattern recognition based controller apparatus |
5780834, | May 14 1996 | Welch Allyn Data Collection, Inc | Imaging and illumination optics assembly |
5783811, | Jun 26 1995 | Symbol Technologies, LLC | Portable data collection device with LED targeting and illumination assembly |
5784102, | May 15 1995 | HAND HELD PRODUCTS, INC | Optical reader having improved interactive image sensing and control circuitry |
5786581, | Feb 07 1991 | PSC Inc. | Optical system for scanning and recording bar codes which is adapted to be configured in a hand held unit |
5786586, | Jan 17 1995 | Welch Allyn Data Collection, Inc | Hand-held optical reader having a detachable lens-guide assembly |
5793903, | Oct 15 1993 | Panasonic Corporation of North America | Multimedia rendering marker and method |
5794145, | Jun 07 1996 | Symbol Technologies, LLC | Mobile device multiband antenna system |
5801371, | Mar 20 1995 | Symbol Technologies, LLC | Optical reader with independent triggering and graphical user interface |
5802179, | May 18 1995 | Sharp Kabushiki Kaisha | Information processor having two-dimensional bar code processing function |
5802344, | Nov 03 1995 | International Business Machines Corporation | Method and apparatus for dynamic segment allocation in log structured arrays |
5804802, | Feb 14 1996 | United Parcel Service of America, Inc | Two-way data communication manager |
5805779, | Mar 27 1992 | PAXAR AMERICAS, INC | Programmable hand held labeler |
5811754, | Jun 02 1994 | Mitsubishi Denki Kabushiki Kaisha | Optical processing method and apparatus for carrying out the same |
5814801, | May 31 1995 | Symbol Technologies, LLC | Maxicode data extraction using spatial domain features exclusive of fourier type domain transfer processing |
5814803, | Dec 23 1994 | PSC SCANNING, INC | Image reader with multi-focus lens |
5815200, | Jul 26 1994 | Symbol Technologies, Inc | Extended working range dataform reader with reduced power consumption |
5815811, | Jun 29 1989 | Symbol Technologies, Inc. | Preemptive roaming in a cellular local area wireless network |
5818023, | Feb 05 1996 | Symbol Technologies, LLC | Portable ID card verification apparatus |
5818528, | Oct 25 1994 | United Parcel Service of America | Automatic electronic camera for label image capture |
5821518, | Oct 25 1994 | United Parcel Service of America, Inc. | Method and apparatus for a portable non-contact label imager |
5821519, | Sep 14 1993 | Symbol Technologies, Inc. | Bar code scan stitching |
5821523, | Mar 12 1992 | Intermec Technologies Corporation | Combined code reader and digital camera using a common photodetector |
5825002, | Sep 05 1996 | Symbol Technologies, LLC | Device and method for secure data updates in a self-checkout system |
5825006, | Mar 04 1994 | Welch Allyn Data Collection, Inc | Optical reader having improved autodiscrimination features |
5831254, | Dec 18 1995 | Welch Allyn Data Collection, Inc | Exposure control apparatus for use with optical readers |
5831674, | Jun 10 1994 | Symbol Technologies, Inc | Oblique access to image data for reading bar codes |
5834749, | Aug 30 1994 | Intermec IP CORP | Optical image capture system for reading targets at oblique angles |
5834754, | Mar 29 1996 | Symbol Technologies, LLC | Portable data collection device with viewing assembly |
5837986, | Jan 05 1990 | Symbol Technologies, Inc. | Modification of software files in a microprocessor-controlled device via two-dimensional bar code symbols |
5837987, | Oct 08 1986 | INERMEC IP CORP ; Intermec IP CORP | Hand-held optically readable character set reader having automatic focus control for operating over a range of distances |
5838720, | Feb 23 1996 | Symbol Technologies, LLC | Transceiver control with sleep mode operation |
5841121, | Aug 31 1988 | Intermec Technologies Corporation | Hand-held optically readable character set reader having automatic focus control for operation over a range of distances |
5841126, | Nov 16 1995 | California Institute of Technology | CMOS active pixel sensor type imaging system on a chip |
5848064, | Aug 07 1996 | Symbol Technologies, Inc | Wireless software upgrades with version control |
5859970, | Aug 27 1996 | Symbol Technologies, LLC | Portable computer with internal ethernet/token ring controller |
5867595, | Jun 15 1994 | Symbol Technologies, Inc | Recognizing dataforms in image areas |
5874722, | Jul 19 1994 | PSC SCANNING, INC | Compact scanner module mountable to pointing instrument |
5875108, | Dec 23 1991 | Microsoft Technology Licensing, LLC | Ergonomic man-machine interface incorporating adaptive pattern recognition based control system |
5877487, | Jun 21 1995 | SUKAI CAPITAL, LLC | Data symbol reading device |
5886338, | Mar 21 1994 | Intermec IP Corporation | Symbology reader illumination system |
5900613, | Mar 04 1994 | HAND HELD PRODUCTS, INC | Optical reader having improved reprogramming features |
5902988, | Mar 12 1992 | Intermec IP CORP | Reader for decoding two-dimensional optically readable information |
5903548, | Dec 19 1996 | General Dynamics Itronix Corporation | Portable electronic communications device having switchable LAN/WAN wireless communications features |
5905251, | Nov 24 1993 | Metrologic Instruments, Inc. | Hand-held portable WWW access terminal with visual display panel and GUI-based WWW browser program integrated with bar code symbol reader in a hand-supportable housing |
5912921, | Aug 20 1997 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Concurrent multiple data rate communications in a wireless local area network |
5914476, | Nov 04 1997 | Welch Allyn Data Collection, Inc | Optical reader configured to accurately and rapidly read multiple symbols |
5917171, | Mar 04 1996 | MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD | Bar code reading apparatus |
5917945, | Jun 15 1994 | Symbol Technologies, LLC | Recognizing dataforms in image areas |
5920059, | Aug 23 1993 | Symbol Technologies, Inc. | Two-dimensional bar code scanner interface |
5920477, | Dec 23 1991 | Blanding Hovenweep, LLC; HOFFBERG FAMILY TRUST 1 | Human factored interface incorporating adaptive pattern recognition based controller apparatus |
5924040, | Nov 20 1996 | CISCO SYSTEMS, INC , A CORPORATION OF CALIFORNIA | Wireless communication system having base station with adjustable power transceiver for locating mobile devices |
5926214, | Sep 12 1996 | VLSI Vision Limited | Camera system and associated method for removing reset noise and fixed offset noise from the output of an active pixel array |
5929418, | Mar 04 1994 | HAND HELD PRODUCTS, INC | Optical reader having improved menuing features |
5932862, | Mar 04 1994 | Welch Allyn Data Collection, Inc | Optical reader having improved scanning-decoding features |
5939697, | Apr 29 1996 | JOST SOLUTIONS LLC | Bar code evaluation system architectures and methods of calibration |
5942740, | Oct 28 1996 | Fujitsu Limited | Method and apparatus for reading bar codes |
5942741, | Mar 04 1994 | HAND HELD PRODUCTS, INC | Apparatus for optimizing throughput in decoded-output scanners and method of using same |
5942743, | Aug 17 1994 | Metrologic Instruments, Inc | Portable automatic hand-supportable omnidirectional laser projection scanner with power conserving control system |
5945660, | Oct 16 1996 | MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD | Communication system for wireless bar code reader |
5946344, | Apr 07 1997 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Multiple-rate direct sequence architecture utilizing a fixed chipping rate and variable spreading code lengths |
5949052, | Oct 17 1997 | Welch Allyn Data Collection, Inc | Object sensor system for stationary position optical reader |
5949054, | Oct 23 1995 | Welch Allyn Data Collection, Inc | Bar code reader for reading high to low contrast bar code symbols |
5949056, | Nov 22 1995 | Intermec IP CORP | Method and apparatus for optically reading an information pattern |
5949057, | Mar 29 1996 | Symbol Technologies, LLC | Portable data collection device with crosshair targeting illumination assembly |
5965863, | Mar 04 1994 | HAND HELD PRODUCTS, INC | Optical reader system comprising local host processor and optical reader |
5973681, | May 31 1996 | Panasonic Intellectual Property Corporation of America | Interactive data communication system with unidirectionally transmitted broadcast wave |
5979757, | Sep 05 1996 | Symbol Technologies, LLC | Method and system for presenting item information using a portable data terminal |
5979763, | Oct 13 1995 | Symbol Technologies, LLC | Sub-pixel dataform reader with dynamic noise margins |
5979768, | Jan 14 1988 | Intermec IP CORP | Enhanced bar code resolution through relative movement of sensor and object |
5984186, | Oct 29 1997 | SICK, INC | CCD-base bar code scanner |
5986297, | May 22 1996 | OmniVision Technologies, Inc | Color active pixel sensor with electronic shuttering, anti-blooming and low cross-talk |
5996895, | Oct 21 1988 | Symbol Technologies, Inc. | Scanning system with adjustable light output and/or scanning angle |
6003008, | Mar 20 1998 | First Data Corporation; The Western Union Company | Point of sale device |
6011880, | Mar 25 1993 | SUKAI CAPITAL, LLC | Digitizing encoded symbol reading device |
6014501, | Mar 28 1996 | Olympus Optical Co., Ltd. | Coded data output apparatus |
6015088, | Nov 05 1996 | HAND HELD PRODUCTS, INC | Decoding of real time video imaging |
6016135, | Oct 09 1991 | Welch Allyn Data Collection, Inc | Bar code reading instrument and selectively orientable graphics display which facilitates the operation of the instrument |
6017496, | Apr 25 1995 | IRORI TECHNOLOGIES, INC | Matrices with memories and uses thereof |
6019286, | Jun 26 1995 | Symbol Technologies, LLC | Portable data collection device with dataform decoding and image capture capability |
6027024, | Aug 19 1994 | Metrologic Instruments, Inc. | Hand-held portable WWW access terminal with visual display panel and GUI-based WWW browser program integrated with bar code symbol reader |
6036094, | Jun 13 1997 | Symbol Technologies, Inc | Hand-held optical scanner for reading two-dimensional bar code symbols and the like |
6045048, | Nov 24 1993 | Metrologi Instruments, Inc. | System and method for composing menus of URL-encoded bar code symbols while surfing the internet using an internet browser program |
6053407, | May 31 1995 | Symbol Technologies, LLC | Maxicode data extraction using spatial domain features |
6056196, | Nov 08 1996 | Denso Corporation | Optical reading apparatus having active and passive power source switching circuitry and a stand thereof |
6060722, | May 15 1995 | Welch Allyn Data Collection, Inc | Optical reader having illumination assembly including improved aiming pattern generator |
6064763, | Jul 26 1996 | Intermec IP Corporation | Time-efficient method of analyzing imaged input data to locate two-dimensional machine-readable symbols or other linear images therein |
6067113, | Sep 12 1996 | VSLI Vision Limited | Offset noise cancellation in array image sensors |
6068188, | Nov 24 1993 | Metrologic Instruments, Inc | System and method for composing menus of URL-encoded bar code symbols while using internet browser program |
6070800, | Dec 10 1996 | Matsushita Electric Industrial Co., Ltd. | Bar code image processing apparatus capable of identifying position and direction of a bar code |
6070801, | Aug 08 1997 | Fujitsu Limited | Bar code reader, bar code reading method and computer readable medium |
6072401, | Dec 10 1991 | TRANSNET CAPITAL FUND LLC | Portable messaging and scheduling device with homebase station |
6082619, | Dec 16 1998 | Matsushita Electric Industrial Co., Ltd. | Method for locating and reading a two-dimensional barcode |
6112992, | Jun 17 1998 | HANGER SOLUTIONS, LLC | Optical code reader and methods and articles therefor |
6119179, | Aug 28 1998 | HIPPO, INC | Telecommunications adapter providing non-repudiable communications log and supplemental power for a portable programmable device |
6119944, | Feb 03 1997 | Symbol Technologies, Inc | Down-loadable hand-held optical reader |
6123264, | Jun 30 1994 | Symbol Technologies, Inc. | Apparatus and method for determining a distance to a target |
6129276, | Jun 26 1996 | Symbol Technologies, LLC | Shopping cart mounted portable data collection device with tethered dataform reader |
6129278, | May 19 1994 | Symbol Technologies, LLC | Detecting image cell position with subpixel accuracy |
6129283, | Feb 27 1997 | Olympus Optical Co., Ltd. | Information reproduction apparatus for optically reading a code pattern from a recording medium and outputting desired information pieces of the read code pattern |
6131048, | Apr 20 1994 | IRONWORKS PATENTS LLC | Communication terminal apparatus and control method thereof |
6142379, | May 15 1992 | Symbol Technologies, Inc. | Compact bar code scanner with scan mirror jointly movable with drive component |
6144848, | Jun 07 1995 | MOCE SOLUTIONS LIMITED LIABILITY COMPANY | Handheld remote computer control and methods for secured interactive real-time telecommunications |
6155343, | Oct 25 1996 | Baker Hughes Incorporated | System for cutting materials in wellbores |
6155488, | Aug 25 1995 | PSC, INC | Optical reader with adaptive exposure control |
6155491, | May 29 1998 | Welch Allyn Data Collection, Inc; GTECH CORPORATION, INC ; OBERTHUR GAMING TECHNOLOGIES | Lottery game ticket processing apparatus |
6157618, | Jan 26 1999 | ZHIGU HOLDINGS LIMITED | Distributed internet user experience monitoring system |
6161760, | Sep 14 1998 | Welch Allyn, Inc | Multiple application multiterminal data collection network |
6170749, | May 31 1995 | Symbol Technologies, LLC | Method of scanning indicia using selective sampling |
6176428, | Apr 07 1999 | Symbol Technologies, LLC | Techniques for reading postal code |
6176429, | Jul 17 1998 | PSC SCANNING, INC | Optical reader with selectable processing characteristics for reading data in multiple formats |
6178426, | Jan 15 1998 | Symbol Technologies, LLC | Apparatus with extended markup language data capture capability |
6179208, | Jan 31 1997 | Symbol Technologies, LLC | Portable data collection device with variable focusing module for optic assembly |
6182897, | May 12 1997 | Metrologic Instruments | Web-enabled system and method for designing and manufacturing laser scanners |
6186404, | May 29 1998 | Welch Allyn Data Collection, Inc; GTech Corporation; OBERTHUR GAMING TECHNOLOGIES | Security document voiding system |
6198948, | Apr 20 1994 | IRONWORKS PATENTS LLC | Communication terminal apparatus and control method thereof |
6199044, | May 27 1998 | Intermec IP Corp. | Universal data input and processing device, such as universal point-of-sale device for inputting and processing bar code symbols, document images, and other data |
6215992, | Jul 29 1997 | DYNAMIC VOICE, LLC | Universal dictation input apparatus and method |
6223988, | Oct 16 1996 | Omniplanar, Inc | Hand-held bar code reader with laser scanning and 2D image capture |
6243447, | May 12 1995 | Symbol Technologies, Inc. | Self-service checkout system utilizing portable communications terminal |
6264105, | Nov 05 1998 | HAND HELD PRODUCTS, INC | Bar code reader configured to read fine print barcode symbols |
6269336, | Jul 24 1998 | Google Technology Holdings LLC | Voice browser for interactive services and methods thereof |
6276605, | Aug 25 1995 | PSC, Inc. | Optical reader with condensed CMOS circuitry |
6286760, | May 17 1994 | METROLOTIC INSTRUMENTS, INC | Automatic hand-supportable laser projection scanner for omni-directional reading of bar code symbols within a narrowly confined scanning volume |
6292181, | Sep 02 1994 | NEC Corporation | Structure and method for controlling a host computer using a remote hand-held interface device |
6293466, | Jan 14 1997 | Matsushita Electric Industrial Co., Ltd. | Bar code image processing apparatus |
6298175, | Oct 17 1997 | Welch Allyn Data Collection, Inc | Object sensor system comprising controlled light source |
6298176, | Oct 17 1997 | HAND HELD PRODUCTS, INC | Symbol-controlled image data reading system |
6321989, | Sep 17 1991 | Metrologic Instruments, Inc. | Method and apparatus for programming system function parameters in programmable code symbol readers |
6321991, | Nov 24 1993 | Metrologic Instruments, Inc. | Web-based television system and method for enabling a viewer to access and display HTML-encoded documents located on the World Wide Web (WWW) by reading bar code symbols printed in a WWW-site guide using a wireless bar-code driven remote control device |
6321992, | Mar 19 1997 | Metrologic Instruments, Inc. | Internet-based system and method for tracking objects bearing URL-encoded bar code symbols |
6325283, | Oct 25 2000 | Computer implemented program for inventory management | |
6329139, | Jun 07 1995 | IRORI TECHNOLOGIES, INC | Automated sorting system for matrices with memory |
6330244, | Sep 05 1996 | Symbol Technologies, LLC | System for digital radio communication between a wireless lan and a PBX |
6331901, | Mar 28 1996 | Olympus Optical Co., Ltd. | Coded data output apparatus |
6332574, | Nov 16 1998 | Denso Corporation | Method of reading bar code |
6340114, | Jun 12 1998 | Symbol Technologies, Inc | Imaging engine and method for code readers |
6345764, | Nov 24 1993 | Metrologic Instruments, Inc. | Hand-held WWW access device with GUI-based www browser program integrated with bar code symbol reader for automatically accessing and displaying HTML-encoded documents by reading bar code symbols |
6347163, | Oct 26 1994 | Symbol Technologies, Inc | System for reading two-dimensional images using ambient and/or projected light |
6347743, | Sep 17 1991 | Metrologic Instruments, Inc. | Method and apparatus for programming functional system parameters in optical bar code scanners |
6360948, | Nov 27 1998 | Denso Corporation | Method of reading two-dimensional code and storage medium thereof |
6366771, | Jun 21 1995 | Symbol Technologies, LLC | Wireless communication network having voice and data communication capability |
6377249, | Nov 12 1997 | Excel Tech | Electronic light pen system |
6389010, | Oct 05 1995 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Hierarchical data collection network supporting packetized voice communications among wireless terminals and telephones |
6398112, | Jun 30 1994 | Symbol Technologies, Inc. | Apparatus and method for reading indicia using charge coupled device and scanning laser beam technology |
6404764, | Sep 09 1998 | Google Technology Holdings LLC | Voice over internet protocol telephone system and method |
6404772, | Jul 27 2000 | Extreme Networks, Inc | Voice and data wireless communications network and method |
6411199, | Aug 21 1998 | PYRAMID ASSOCIATES, INC | Radio frequency identification system |
6412699, | Sep 11 1990 | Metrologic Instruments, Inc. | METHOD OF AND SYSTEM FOR PRODUCING TRANSACTION-ENABLING GRAPHICAL USER INTERFACES AT INTERNET-ENABLED TERMINALS IN RESPONSE TO READING BAR CODE SYMBOLS POINTING TO HTML-ENCODED DOCUMENTS EMBEDDED WITH JAVA-APPLETS AND STORED ON HTTP INFORMATION SERVERS |
6424407, | Mar 09 1998 | OTM TECHNOLOGIES LTD | Optical translation measurement |
6424830, | Jul 26 1994 | Symbol Technologies, Inc | Portable data collection network with telephone and voice mail capability |
6431452, | Jan 31 1997 | Symbol Technologies, LLC | Portable data collection device with variable focusing module for optic assembly |
6452179, | Aug 14 1998 | SPECTRO SCIENTIFIC, INC | On-site analyzer |
6462842, | Oct 06 1998 | National Semiconductor Corporation | Apparatus, method, and computer program for increasing scanner data throughput |
6486911, | Nov 29 1995 | VLSI Vision Limited | Optoelectronic sensor with shuffled readout |
6491223, | Sep 03 1996 | HAND HELD PRODUCTS, INC | Autodiscriminating optical reader |
6493029, | Mar 15 1996 | VLSI Vision Limited | Image restoration method and associated apparatus |
6505778, | Jul 17 1998 | PSC Scanning, Inc. | Optical reader with selectable processing characteristics for reading data in multiple formats |
6507864, | Aug 02 1996 | Symbol Technologies, LLC | Client-server software for controlling data collection device from host computer |
6508404, | Mar 07 1997 | Accu-Sort Systems, Inc. | Symbology scanning system for efficiently locating coded symbologies |
6512218, | Nov 02 1998 | DATALOGIC IP TECH S R L | Device and method for the acquisition and automatic processing of data obtained from optical codes |
6527179, | Jun 30 1999 | Fujitsu Limited | Bar-code reader and controlling method therefor |
6535493, | Jan 15 1998 | Symbol Technologies, LLC | Mobile internet communication protocol |
6539360, | Feb 05 1999 | United Parcel Service of America, Inc. | Special handling processing in a package transportation system |
6539422, | May 04 1998 | Intermec IP CORP | Automatic data collection device having a network communications capability |
6540140, | May 12 1997 | Metrologic Instruments, Inc. | Web-enabled system and method for designing and manufacturing bar code scanners |
6547139, | Jul 10 1998 | Welch Allyn Data Collection, Inc. | Method and apparatus for extending operating range of bar code scanner |
6547142, | May 31 1995 | Symbol Technologies, LLC | Method of scanning indicia using selective sampling |
6552323, | Dec 06 2000 | OmniVision Technologies, Inc | Image sensor with a shared output signal line |
6552746, | Sep 22 1998 | Pixim, Inc. | Apparatus having an image sensor that is variable in spatial resolution and bit resolution and associated method |
6561428, | Oct 17 1997 | HAND HELD PRODUCTS, INC | Imaging device having indicia-controlled image parsing mode |
6565003, | Dec 16 1998 | Matsushita Electric Industrial Co., Ltd. | Method for locating and reading a two-dimensional barcode |
6565005, | Sep 17 1991 | Metrologic Instruments, Inc. | Method and apparatus for programming functional system parameters in optical bar code scanners |
6575367, | Nov 05 1998 | Welch Allyn Data Collection, Inc | Image data binarization methods enabling optical reader to read fine print indicia |
6578766, | Sep 03 1996 | HAND HELD PRODUCTS, INC | Data structure for an optical reader |
6585159, | Nov 02 1999 | Welch Allyn Data Collection, Inc | Indicia sensor system for optical reader |
6600734, | Dec 17 1998 | Extreme Networks, Inc | Apparatus for interfacing a wireless local network and a wired voice telecommunications system |
6606171, | Oct 09 1997 | Howtek, Inc. | Digitizing scanner |
6634558, | Aug 12 1998 | Symbol Technologies, LLC | Optical code reader with hand mounted imager |
6637658, | Jan 22 2001 | HAND HELD PRODUCTS, INC | Optical reader having partial frame operating mode |
6655595, | Nov 05 1998 | HAND HELD PRODUCTS, INC | Bar code reader configured to read fine print bar code symbols |
6665012, | Sep 22 1998 | PIXIM, INC | Process-scalable high spatial resolution and low bit resolution CMOS area image sensor |
6669091, | Aug 26 1988 | Accu-Sort Systems, Inc. | Scanner for and method of repetitively scanning a coded symbology |
6672511, | Jun 03 1996 | Symbol Technologies, LLC | Omnidirectional reading of two-dimensional symbols |
6678412, | Apr 08 1999 | Denso Corporation | Method for detecting a two-dimensional code existing area, method reading two-dimensional code, and a recording medium storing related programs |
6681121, | May 19 1998 | KARMA AUTOMOTIVE, LLC | Circuitry for activating a modem in a cellular telephone |
6685095, | May 05 1998 | PSION INC | Apparatus and method for decoding damaged optical codes |
6698656, | Sep 03 1996 | HAND HELD PRODUCTS, INC | Scanning and decoding control for an optical reader |
6708883, | Apr 08 1977 | Symbol Technologies, Inc. | Apparatus and method for reading indicia using charge coupled device and scanning laser beam technology |
6714239, | Oct 29 1997 | OmniVision Technologies, Inc | Active pixel sensor with programmable color balance |
6714665, | Sep 02 1994 | SRI International | Fully automated iris recognition system utilizing wide and narrow fields of view |
6722569, | Jul 13 2001 | Welch Allyn Data Collection, Inc | Optical reader having a color imager |
6732929, | Jun 07 1999 | Metrologic Instruments, Inc. | Led-based planar light illumination beam generation module employing a focal lens for reducing the image size of the light emmiting surface of the led prior to beam collimation and planarization |
6732930, | Dec 23 1999 | Intermec IP CORP | Optoelectronic device and process for acquiring symbols, such as bar codes, using a two-dimensional sensor |
6736321, | Mar 24 1998 | Metrologic Instruments, Inc | Planar laser illumination and imaging (PLIIM) system employing wavefront control methods for reducing the power of speckle-pattern noise digital images acquired by said system |
6739511, | Jun 07 1999 | Metrologic Instruments, Inc. | METHOD OF SPECKLE-NOISE PATTERN REDUCTION AND APPARATUS THEREFOR BASED ON REDUCING THE TEMPORAL-COHERENCE OF THE PLANAR LASER ILLUMINATION BEAM BEFORE IT ILLUMINATES THE TARGET OBJECT BY APPLYING TEMPORAL PHASE MODULATION TECHNIQUES DURING THE TRANSMISSION OF THE PLIB TOWARDS THE TARGET |
6741335, | Mar 09 1998 | OTM TECHNOLOGIES, LTD | Optical translation measurement |
6742707, | Jun 07 2000 | METROLOGIC INSTRUMENTS, INC , A CORPORATION OF NEW JERSEY | METHOD OF SPECKLE-NOISE PATTERN REDUCTION AND APPARATUS THEREFOR BASED ON REDUCING THE SPATIAL-COHERENCE OF THE PLANAR LASER ILLUMINATION BEAM BEFORE THE BEAM ILLUMINATES THE TARGET OBJECT BY APPLYING SPATIAL PHASE SHIFTING TECHNIQUES DURING THE TRANSMISSION OF THE PLIB THERETOWARDS |
6747692, | Mar 28 1997 | Symbol Technologies, LLC | Portable multipurpose recording terminal and portable network server |
6751352, | May 25 2000 | HEWLETT-PACKARD DEVELOPMENT COMPANY L P | Method and apparatus for generating and decoding a visually significant barcode |
6761317, | Sep 17 1991 | Metrologic Instruments, Inc | Reading bar code symbols using readers having one-way RF signal transmission links with base stations |
6766954, | Jun 15 2001 | Symbol Technologies, LLC | Omnidirectional linear sensor-based code reading engines |
6814290, | Nov 05 1998 | Hand Held Products, Inc. | Method for processing images captured with bar code reader having area image sensor |
6827273, | Nov 24 1993 | Metrologic Instruments, Inc. | Mobile bar code driven information access terminal for remotely accessing package delivery instructions from an internet information server |
6832729, | Mar 23 2001 | Zebra Technologies Corporation | Portable data collection device for reading fluorescent indicia |
6837432, | Mar 24 1998 | Metrologic Instruments, Inc. | METHOD OF AND APPARATUS FOR AUTOMATICALLY CROPPING CAPTURED LINEAR IMAGES OF A MOVING OBJECT PRIOR TO IMAGE PROCESSING USING REGION OF INTEREST (ROI) COORDINATE SPECIFICATIONS CAPTURED BY AN OBJECT PROFILING SUBSYSTEM |
6853293, | May 28 1993 | Symbol Technologies, Inc. | Wearable communication system |
6854649, | Nov 13 2000 | Leuze Electronic GmbH & Co | Optoelectronic device |
6857570, | Jun 07 1999 | Metrologic Instruments, Inc. | METHOD OF SPECKLE-NOISE PATTERN REDUCTION AND APPARATUS THEREFOR BASED ON REDUCING THE TEMPORAL-COHERENCE OF THE PLANAR LASER ILLUMINATION BEAM BEFORE IT ILLUMINATES THE TARGET OBJECT BY APPLYING TEMPORAL FREQUENCY MODULATION TECHNIQUES DURING THE TRANSMISSION OF THE PLIB TOWARDS THE TARGET |
6858159, | Mar 28 2002 | General Electric Company | Titanium-doped hafnium oxide scintillator and method of making the same |
6863216, | Jun 07 1999 | Metrologic Instruments, Inc | METHOD OF SPECKLE-NOISE PATTERN REDUCTION AND APPARATUS THEREFOR BASED ON REDUCING THE SPATIAL-COHERENCE OF THE PLANAR LASER ILLUMINATION BEAM BEFORE IT ILLUMINATES THE TARGET OBJECT BY APPLYING SPATIAL PHASE MODULATION TECHNIQUES DURING THE TRANSMISSION OF THE PLIB TOWARDS THE TARGET |
6942150, | Nov 24 1993 | Metrologic Instruments, Inc. | Web-based mobile information access terminal |
7028901, | Jul 17 2003 | Symbol Technologies, LLC | System and method for reading and decoding optical codes using multiple color illumination |
7077317, | Sep 03 1996 | Hand Held Products, Inc. | Bar code reading apparatus having one-dimensional image sensor and digital digitizer |
7077321, | Mar 04 1994 | HAND HELD PRODUCTS, INC | Portable autodiscriminating optical reader |
7080786, | Mar 04 1994 | HAND HELD PRODUCTS, INC | Optical reader comprising illumination assembly and solid state image sensor |
7104456, | Sep 03 1996 | HAND HELD PRODUCTS, INC | Reprogrammable optical reader |
7124948, | Mar 04 1994 | HAND HELD PRODUCTS, INC | Optical reader processing two-dimensional electronic representations |
7147159, | Mar 04 1994 | HAND HELD PRODUCTS, INC | Optical reader having two-dimensional solid state image sensor and light generator |
7383998, | Sep 03 1996 | Hand Held Products, Inc. | Optical reader system comprising host processor and optical reader |
7398929, | Mar 04 1994 | HAND HELD PRODUCTS, INC | Method and apparatus for reading decodable indicia |
7398930, | Mar 04 1994 | HAND-HELD PRODUCTS, INC | Bar code reading device having image data in plurality of different formats |
7546954, | Mar 04 1994 | HAND HELD PRODUCTS, INC | Bar code reading device for reading 1D or 2D bar code symbols |
20020039099, | |||
20020158127, | |||
20020170970, | |||
20040004128, | |||
20040094627, | |||
20040256464, | |||
20040256465, | |||
20040262393, | |||
20040262394, | |||
20050103851, | |||
20050161511, | |||
20060255150, | |||
20070181693, | |||
20090039163, | |||
20090308927, | |||
EP385478, | |||
EP449634, | |||
EP529876, | |||
EP541292, | |||
EP561334, | |||
EP571892, | |||
EP571913, | |||
EP584559, | |||
EP873013, | |||
EP999514, | |||
JP2000092317, | |||
JP2001080177, | |||
JP5424543, | |||
JP6139398, | |||
JP6162247, | |||
JP6301807, | |||
JP7049922, | |||
JP7065104, | |||
WO9314458, | |||
WO9317397, | |||
WO9318478, | |||
WO9427246, | |||
WO9532580, | |||
WO9708647, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 15 2009 | Hand Held Products, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Date | Maintenance Schedule |
Jun 12 2015 | 4 years fee payment window open |
Dec 12 2015 | 6 months grace period start (w surcharge) |
Jun 12 2016 | patent expiry (for year 4) |
Jun 12 2018 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 12 2019 | 8 years fee payment window open |
Dec 12 2019 | 6 months grace period start (w surcharge) |
Jun 12 2020 | patent expiry (for year 8) |
Jun 12 2022 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 12 2023 | 12 years fee payment window open |
Dec 12 2023 | 6 months grace period start (w surcharge) |
Jun 12 2024 | patent expiry (for year 12) |
Jun 12 2026 | 2 years to revive unintentionally abandoned end. (for year 12) |