text:
|Problem reduction with low level information integration in bar code decoding
|Liu et al.
|Bar code error scanner
|Heske, III et al.
|Single width bar code symbology with full character set utilizing robust start/stop characters and error detection scheme
|Bar code reader with multiple sensitivity modes using variable thresholding comparisons
|Presence/absence bar code
|Bossen et al.
|Method and apparatus for decoding unresolved bar code profiles using edge finding circuitry
|Mail encoding and processing system
|Allum et al.
|Method and apparatus for inserting and printing barcoded zip codes
|Mihm et al.
|Method of reading identification code sheets using borders to determine scan angle
|Non-decoded type bar code reading apparatus
|Ukai et al.
|Identification code
|Optical reader kit for letter sorting machines
|Lazzarotti et al.
|Method of coding information in the form of bar codes, a method of reading the latter and devices implementing these methods.
This application is a division of U.S. patent application Ser. No. 08/701,304, filed Aug. 21, 1996 now U.S. Pat. No. 5,811,781, which is a continuation-in-part of application Ser. No. 08/295,382, filed Aug. 24, 1994, now U.S. Pat. No. 5,557,092, which is a continuation-in-part of application Ser. No. 08/147,376. filed Nov. 5, 1993, now abandoned.
imaging the bar code label to produce a signal representative of each of a plurality of symbol characters therefrom;
analyzing the signal to identify the symbol characters, each symbol character represented by six bars and six spaces, wherein each bar and each space being selected from integer multiples of first and second widths, respectively, and wherein each symbol character has a total width approximately equal to 21 times the first or second width; and
converting each symbol character into a corresponding symbol code.
This invention relates to a new machine-readable symbology, and devices and methods for reading or printing bar code symbols under the symbology.
Bar code symbologies were first disclosed in U.S. Pat. No. 1,985,035 by Kermode and expanded shortly thereafter in the 1930's in U.S. Pat. No. 2,020,925 by Young, assigned to Westinghouse. These early symbolozies were printed by generating a multiplicity of single width elements of lower reflectance, or "bars," which were separated by elements of higher reflectance, or "spaces." An "element" is a bar or space. These early symbologies, and many "bar code symbologies" used today can be referred to as "linear symbologies" because data in a given symbol is decoded along one axis or direction. Symbologies such as linear symbologies encode "data characters" (e.g, human readable characters) as "symbol characters," which are generally parallel arrangements of alternating bars and spaces that form unique groups of patterns to encode specific data characters. Data characters include not only human readable characters, but also include special function characters such as start, stop or shift characters that provide certain functional data. Each unique group or pattern of bars and spaces within a predetermined width defines a particular symbol character, and thus a particular data character or characters.
The known U.P.C. symbology was described generically by Savir and Laurer of IBM as a (7,2) "n,k code" in 1974. An "n,k code" is defined as a symbology where each symbol character has an "k" number of bars and spaces and whose total length is "n" modules long. Therefore, the U.P.C. symbology encodes two bars and two spaces in each symbol character and each symbol character is seven modules long. A "module" is the narrowest nominal width unit of measure in a bar code symbology (a one-wide bar or space). "Nominal" refers to the intended value of a specific parameter, regardless of printing errors, etc. Under common counting techniques, the number of possible symbol characters can be found by realizing that in seven modules, there are six locations where a transition can occur, and that for two bars and two spaces, there are three internal transitions. Therefore, the number of unique symbol characters for the U.P.C. symbology is simply 6 choose 3 which equals 20. Similarly, under the Code 128 symbology, which is an (11,3) symbology, 252 unique symbol characters are available (10 choose 5).
The bar code symbologies known as U.P.C., EAN, Code 11 and Codabar are all bar code symbology standards which support only numeric data characters, and a few special characters such as "+" and "-". The U.P.C. symbology is both a bar code standard, as well as an industry standard, in that it has been adopted by industry in a standard application (consumer goods). The bar code standard Code 39 was the first alphanumeric bar code symbology standard developed. However, it was limited to 43 characters.
Code 93 is an improvement over Code 39. Code 93 is a continuous bar code symbology employing four element widths. Each Code 93 symbol has nine modules that may be either black or white (either a bar or a space). Each symbol in the Code 93 standard contains three bars and three spaces (six elements), whose total length is nine modules long. Code 93, having nine modules and three bars per symbol is thus a (9,3) symbology which has 56 possible characters (8 choose 5). For edge to edge decoding reasons, the Code 93 symbology standard defines only 48 unique symbols, and thus is able to define 47 characters in its character set plus a start/stop code. The 47 characters include the numeric characters 0-9, the alphabetic characters A-Z, some additional symbols and four shift codes.
The computer industry uses its own character encoding standards, namely, the American Standard Code for Information Interchange (ASCII). ASCII defines a character set containing 128 characters and symbols. Each character in ASCII is represented by a unique 7-bit code. Since Code 39 and Code 93 are limited to fewer than 50 characters, these standards are inadequate to uniquely represent each ASCII character. The four shift codes in Code 93, however, allow this standard to unambiguously represent all 128 ASCII characters. One drawback is that a series of two Code 93 symbols are required to represent a single ASCII character. Thus, bar code labels representing characters in the ASCII character set are twice as long as labels representing characters in the Code 93 character set.
New bar code symbology standards, such as Code 128, were developed to encode the complete ASCII character set, however, these standards suffer from certain shortcomings, including requiring shift codes or other preceding symbols to represent certain characters. All of these symbologies require increased processing time and overhead to process the entire ASCII character set.
The computer industry has grown beyond the limits of the ASCII character set. As the computer markets have grown, the need to support additional languages not defined by the ASCII character set has also arisen. New character sets were developed to accommodate clusters of characters in related languages. The original 7-bit ASCII character set was expanded to 8 bits thus providing an additional 128 characters or data values. This additional 128 set of data values (the "upper 128") allowed for additional characters present in the related romance languages (i.e., French, German. Spanish, etc.) to be represented.
As the computer markets grew internationally, however, even more languages were required to be included in the character set. Particularly, the Asian markets demanded a character set, usable on computers, which supported thousands of unique characters. To uniquely define each of these characters, a 16-bit encoding standard was required.
Several 16-bit encoding standards such as Unicode, JISC-6226-1983, and others have recently been developed. The Unicode character encoding standard is a fixed-length, uniform text and character encoding standard. The Unicode standard may contain up to 65,536 characters, and currently contains over 28,000 characters mapping onto the world's scripts, including Greek, Hebrew, Latin, Japanese, Chinese, Korean, and Taiwanese. The Unicode standard is modeled on the ASCII character set. Unicode character values are consistently 16 bits long, regardless of language, so no escape sequence or control code is required to specify any character in any language. Unicode character encoding treats symbols, alphabetic characters, and ideographic characters identically, so that they can be used in various computer applications simultaneously and with equal facility. Computer programs using Unicode character encoding to represent characters, but which do not display or print text, can remain unaltered when new scripts or characters are introduced.
New computer operating systems are beginning to support these comprehensive 16-bit code standards, e.g., WINDOWS NT, manufactured by Microsoft Corporation of Redmond, Wash. The data collection industry, however, has failed to keep pace with the computer industry. No system currently exists for readily encoding the 16-bit computer character codes into bar code symbols. Therefore, there is a need to support these 16-bit computer character standards in the data collection industry, particularly for bar code symbologies.
Furthermore, most alphanumeric bar code symbologies are inefficient when used to encode a long series of numbers. When encoding a series of decimal numbers using Code 93 for example, the 26 bar code symbols reflecting the 26 alphabetic characters are not used. Therefore, there is a need to allow these alphanumeric bar code symbologies to more efficiently represent a long series of numbers.
As is known, data characters encoded under nearly all symbologies can result in errors when decoded by a laser scanner or other bar code reader. To reduce errors, certain symbologies include check characters. A "check character" is a symbol character included within a given bar code symbol (usually at the end of the symbol characters, although placement is not important to its function) whose value is used to perform a mathematical check that determines whether the symbol has been decoded correctly.
For example, the known Code 39 symbology has an optional modulo 43 check character that can be included as the last symbol character in a symbol. The Code 39 check character is calculated by determining a character value for each data character in an original message, adding together all of the character values, and dividing the sum by 43. The check character becomes the remainder that results from such division, and is appended to the end of a label encoded from the message. A "character value" or "symbol code" is a number representing a data character in a given symbology. For example, in the Code 39 symbology, the data character "A" has a character value of "10".
The Code 39 symbology employs 43 symbol characters, which is a prime number of symbol characters. Therefore, using modulo 43 mathematics to generate a check character, a unique check character for any given series of data characters will always result. The U.P.C. symbology, however, employs a modulo 10 check character. Since 10 is a non-prime number having factors of 1, 2 and 5, and therefore a modulo 10 checking detects fewer errors. As a result, the U.P.C. symbology application environment employs a data base having a look-up table to compensate for such a shortcoming of the checking scheme.
Other symbologies improve upon the use of check characters, by employing error correction characters. Error correction characters, as with check characters, are calculated mathematically from the other symbol characters in a symbol or label. Error correction characters are symbol characters in a label that are reserved for erasure correction, error correction, and/or error detection. An erasure is a missing, unscanned, or undecodable symbol character; the symbol character's position is known, but not its value. An erasure can result from portions of a symbol having insufficient contrasts, a symbol that falls outside of a reader's field of view, or a portion of which is obliterated. An error is a mis-decoded or mis-located symbol character; both the position and the value of the symbol character are unknown. An error can result from random spots or voids in a symbol when this symbol is printed.
For an error, the error correction characters allow a reader to use these characters in a symbol to locate and correct errors that have unknown values and locations. Two error correction characters are required to correct each error; one error correction character to locate the erroneous symbol character, and the second error correction character to determine what value the erroneous symbol character should have been. For an erasure, the error correction characters allow a reader to use these characters to correct erroneous or missing symbol characters that have known locations. Consequently, only one error correction character is required for each erasure.
Some symbologies, such as Code One and PDF417, have many error correction characters. The Code One symbology, for example, is specifically designed with 27%-50% of the symbol characters allocated to error correction. Consequently, the Code One symbology allows for very secure decoding that mathematically is many orders-of-magnitude more accurate than other symbologies that simply use check characters. However, such error correction characters necessarily require additional area in a label, and therefore reduce the information-density of the label. Additionally. the Code One and PDF417 symbologies are areaor stacked symbologies. As a result, they require a more sophisticated, and thus expensive, reader to decode them.
Typical bar code scanners read bar codes by producing different analog waveforms from bar codes having variable width bars and spaces. When the scanner fails to fully resolve the smallest, one-wide elements, only the wider elements (i.e., two-wide or larger width elements) become resolved. A bar or space is "resolved" if the scanner is able to identify a peak or valley in the wave form that corresponds to the given bar or space. Overall, there is a need to provide a symbology that overcomes all of the shortcomings of known symbologies, is capable of being decoded when unresolved or out-of-focus, and is highly secure.
Under the above-referenced parent patent, three Code 93 bar code symbols are necessary to uniquely represent each character in a 16-bit character encoding standard. Since the Code 93 standard is a continuous symbology and employs nine modules per character, a total of 27 modules are necessary to encode one 16-bit code. Consequently, the Code 93 standard permits high bar code density, i.e., a large number of data characters represented in a linear unit of measure. The Code 93 standard is currently used and recognized; therefore, applications for its use exist, facilitating wide data exchange throughout the industry. Additionally, the Code 93 standard provides for high data security (i.e., error correction).
Under this U.S. Patent, a string of characters are selected, input or determined, for example, such as by input using a keyboard. The string of characters may also be input to a CPU from a host computer. When a key is depressed on the keyboard, the keystroke is converted into a "scan code" which is transmitted from the keyboard to the device to which the keyboard is connected. This scan code represents the particular key on the keyboard which has been depressed, and is unrelated to any particular character or code in a character set, such as ASCII or Unicode.
The unique 16-bit code for the first character is determined or retrieved. The CPU, for example, translates the scan code input from the keyboard into the unique 16-bit code for the particular character selected by the key depression. In 16-bit character encoding standards, the 16-bit codes are often represented as hexadecimal numbers. For computational purposes, these hexadecimal numbers can be converted to their decimal equivalents. The CPU retrieves the 16-bit code from a memory. In the preferred embodiment, the memory contains the 16-bit codes for all characters in the 16-bit character encoding standard.
Each character may also be input to the CPU over an input line in its corresponding 16-bit code. If the 16-bit code for a character is input to the CPU over the line, the CPU need not access any memory to determine the unique 16-bit code for the character.
The 16-bit code representing a character is converted into three symbol values, i.e., each 16-bit code in the Unicode encoding standard is represented by three Code 93 symbol values. By using three Code 93 symbol values, up to 79,507 unique characters may be represented using the following equation: 432 (X)+43(Y)+(Z)= 16-bit code in decimal! (1)
where the variables X, Y, and Z are numeric values between 0 and 42. Since the above equation may represent more than 79,000 unique characters, this equation will more than adequately represent the over 28,000 characters in the Unicode standard.
The CPU solves equation (1) using known methods. In other words, the CPU computes three numeric values between 0 and 42 for the variables X, Y, and Z in the above equation so as to represent the decimal equivalent of the 16-bit code.
The CPU thereafter encodes each numeric value of the variables X, Y, and Z into a corresponding one of the Code 93 bar code codes or symbol values. In Code 93, the symbol values 0 through 42 represent the characters 0-9, A-Z, "-", ".", "space", "$", "/", "+", and "%", respectively. Symbol values 43 through 47 represent the four shift codes and the stop code.
The CPU then retrieves the counts for printing the bar code symbols representing each of the three Code 93 symbol values. The counts for Code 93 start and stop codes are also retrieved. Since the Code 93 standard is used, the memory or the secondary storage needs to store only the 48 Code 93 symbol values and corresponding counts. Most applications or apparatus using the Code 93 standard have these codes and counts readily available.
In the preferred embodiment, the three Code 93 bar code symbols representing a 16-bit code are also printed with the human-readable character represented by the 16-bit code. Therefore, the CPU retrieves the character font data necessary for printing the characters. The font data provides a printer with particular data necessary to print the unique character represented by the three Code 93 bar code symbols. With a dot matrix-type printer (not shown), the font data instructs the printer how to print the unique character. The font data is stored in either the memory or the secondary storage.
The CPU determines whether all characters in the string initially selected have been converted. If additional characters remain in the string, then the unique 16-bit code for the next character is found, the three numeric values of variables X, Y, and Z are computed, the three numeric values are encoded into three Code 93 symbol values, and the particular font and bar code symbol counts are retrieved. This process is repeated until all of the characters have been converted. Thereafter, the bar code is printed by the printer with both the three Code 93 bar code symbols, and the associated human-readable characters.
The present invention solves the above problems and provides additional benefits by encoding characters represented by 16-bit encoding standards into a new 16-bit symbology. A method is described for decoding bar code symbols representing 16-bit characters into human readable characters, and vice versa. The present invention allows international characters to be encoded and printed onto bar code labels, which may later be read by bar code readers.
The new bar code symbology under the present invention directly encodes one symbol character for each human readable character in known 16-bit data character encoding standards, such as Unicode. The symbology employs six bars and six spaces for each symbol, and has a total width of 21 modules for each symbol character, and thus is a (21,6) symbology. Bars and spaces in symbol characters having greater than six modules in width are eliminated, as are strings of more than six adjacent one-wide elements. As a result, the symbology is wand scannable, readily printable, and can be read when out-of-focus. Parity codes are employed, to enable Hamming distances between symbol characters to be maximized, and thereby improve data security of the symbology (e.g., the total width of all bars in each symbol character is equal to an even number). As a result, the present symbology preferably encodes 80,077 data characters. By employing a prime number of symbol characters, the symbology provides robust error correcting and error detection capabilities. The encoded data characters include not only the Unicode characters, but also compressed three- and four-digit numeric characters, and compressed pairs of alphanumeric characters, each encoded as a single unique symbol character. A set of start characters under the symbology not only indicate the start of a given label but also encode data characters therein and may be used to change or latch to different character sets.
The present invention encodes characters represented by a 16-bit encoding standard into a unique bar code symbology created to uniquely represent each 16-bit code by a bar code symbol. An encoding method includes the steps of: determining a character code having at least 16 bits for a selected character, converting the character code to a bar code, and printing a bar code symbol corresponding to the bar code code. The step of converting the 16-bit character code to a bar code code includes the step of producing the bar code code from either a look-up table or generating it via an algorithm. The converse method is performed for reading a bar code symbol printed by the above method.
Other features and associated advantages of the present invention will become apparent from studying the following detailed description together with the accompanying drawings.
FIG. 1 is a block diagram of a bar code symbol printing apparatus of the present invention.
FIG. 2 is a flow chart showing the basic steps performed by the printing apparatus of FIG. 1 for printing bar code symbols each uniquely representing a 16-bit character code.
FIG. 3 is an example of a label having bar code symbol characters, with human readable characters, printed or read under the present invention.
FIG. 4 is a flowchart showing several steps performed under a step of the flowchart of FIG. 2.
FIG. 5 is a data transformation diagram showing the transformation of data from characters to bar code symbols printed by the apparatus of FIG. 1.
FIG. 6 is a block diagram of a bar code symbol reading apparatus of the present invention.
FIG. 7 is a flow chart showing the basic steps performed by the reading apparatus of FIG. 6 for reading bar code symbols representing 16-bit character codes.
FIG. 8 is a data transformation diagram showing the transformation of data from bar code symbols read by the apparatus of FIG. 5 into characters.
FIG. 9 shows exemplary labels under the Code 128 standard and the present symbology, both of which encode the string of data characters 00000521775138957172.
FIG. 10 shows exemplary labels under the Code 128 standard and the present symbology, both of which encode the string of data characters A1234BC5678DE9012.
As used generally herein, the following definitions apply: "data characters" refers to human readable characters, including symbols, numeric characters, alphabetic characters, and ideographic characters, as well as non-readable data, such as function codes, shift codes, etc.; "numeric strings" refers to a sequence of numeric characters, typically decimal digits; "16-bit code" or "16-bit character code" refers to a hexadecimal or decimal representation of a character in a 16-bit character encoding standard, such as Unicode; "bar code symbology" refers to a set of machine-readable or symbol characters for uniquely representing a set of data characters; "bar code standard" refers to a bar code symbology recognized by, or regularly used in, data collection applications (e.g, Code 128); "symbol code" refers to a code such as an ordinal number representing a data character in a bar code symbology; "symbol character" refers to the unique geometric shapes or bar and space patterns used in a bar code symbology to represent particular data characters; and, "counts" refers to a unique set of electrical signals produced when reading a symbol character corresponding to a data character in a bar code symbology.
For example, in the 16-bit character encoding standard Unicode, the data character "A" is represented by the 16-bit code "0041" in hexadecimal notation and "65" in decimal. The data character "A" has a symbol code of "10" in the bar code standard Code 93. The symbol code 10 in Code 9, corresponds to a symbol character having a pattern of a two module width bar followed by: a single module width space, a single module width bar, a single module width space, a single module width bar, and a three module width space. The counts associated with the printing of this symbol are generally unique to each printer, and for a thermal printer, would represent the time intervals between transitions between bars and spaces to appropriately activate the printer's heating element as the thermal sensitive paper moved past it where the bars are positioned perpendicular to the direction of the label through the printer. Alternatively, the counts can indicate which dots or thermal-print elements to activate when the bars are parallel with the direction of the label through the printer.
A new bar code symbology under the present invention, dubbed "Han Ma," is created to uniquely represent each 16-bit code in any 16-bit character code by a symbol character. The symbology of the present invention must have at least 65,536 symbol characters to represent the 16-bit character codes in, for example, the Unicode Standard. In order to have at least 65,536 symbol characters to represent the 16-bit character codes, symbol character sets having 20-22 modules are available. Table 1 below shows the total number of characters available for symbologies having a reasonable range of k (i.e., the number of bars/spaces in each symbol character).
|The total number of possible characters for n,k sets with n = 20 to 22 and k = 4 to 8. (total number of modules per symbol k (number of bars/spaces per symbol character) character) 4 5 6 7 8
20 50,388 92,378 75,582
21 77,520 167,960 167,960
22 116,280 293,930 352,716
As can be seen from Table 1, the sets employing 20 modules and 5 and 6 bars (and spaces) per symbol character can represent up to 92,378 data characters and 75,582 characters, respectively. These "20's sets" are sufficient to represent the 65,536 16-bit codes in the Unicode data character encoding standard. However, the sets having 21 modules are preferred because the greater number of symbol characters (up to 167,960) allows for improved data security, error correction, and other benefits described below.
Such a large set allows for the use of parity codes. As is known by those skilled in the art, the Hamming distance between symbol characters can be maximized by eliminating all symbol characters having a Hamming distance of one and using only those symbol characters in the symbology which remain. The symbology of the present invention employs parity in its symbol character set by providing, for example, the sum of the modules of all bars in each symbol character being equal to an even number.
Without parity, a second error detection or check character is required to offset the corresponding decrease in read security. As a result, a message or string of over 20 data characters encoded under a non-parity symbology is required to break even with the same message encoded under a symbology having parity with only one check character because the symbology only saves one module/symbol character. Consequently, the symbology of the present invention provides improved information density by employing parity, especially for shorter strings of data characters.
Additionally, parity allows error correction with one symbol character by providing knowledge of the location of the error in a string of symbol characters. For example, if one symbol character in a label has an odd parity, a reader recognizes that that character is erroneous. The single error correction character (discussed below) can then correct for and replace the erroneous symbol character. Since the present invention employs parity, only those sets in Table 1 with a number of symbol characters greater than 131,072 (2×65,536) are available. The (21,5) and (21,6) sets qualify, as do all three of the n=22 sets and sets with n>22. However, to provide symbol characters as short as possible (to increase information density), the present symbology employs the n=21 set. Of the two n=21 sets, the (21,5) set has more symbol characters with undesirably large elements (discussed below). Thus, the present invention's use of the (21,6) set is preferred.
Of the 167,690 symbol characters available from the (21,6) set, approximately half are unused in the present symbology because of the parity requirement. Additionally, all symbol characters having greater than six modules are preferably omitted. A maximum of six module width element is preferred because the print head on a thermal printer may become too hot when printing bars greater than six modules in width. Also, spaces greater than six modules may be interpreted by readers as the end of a symbol or label (i.e., as the quiet zone). Furthermore, by eliminating the very wide elements, the present symbology can be readily decoded using wand-based bar code readers without significant acceleration distortions. If all symbol characters having elements greater than six modules are eliminated, 81,796 data characters may be represented. This number of data-characters is greater than the number of data characters represented by Unicode.
To facilitate out-of-focus decoding to the greatest degree, it is further desirable to limit the occurrence of long strings of single width elements. As explained in the inventor's U.S. Pat. No. 5,389,770, entitled "Method and Apparatus for Decoding Unresolved Bar Code Profiles"; U.S. Pat. No. 5,486,689, entitled "Method and Apparatus for Decoding Unresolved Multi-Width Bar Code Symbology Profiles"; and U.S. Pat. No. 5,514,858, entitled "Method and Apparatus for Decoding Unresolved Complex Multi-Width Bar Code Symbology Profiles," out-of-focus symbol profiles can be decoded by determining the number of one-wide elements that are "lost" between resolved wide elements. If a number of one-wide elements exceeds, for example, 12, then difficulties increase under the decoding techniques described in these patents. Similarly, strings of more than 12 one-wide elements can be difficult to decode (e.g., using wand readers), and have the same reading tolerance of greater than six-wide elements.
Therefore, the symbology of the present invention eliminates all symbol characters having greater than six adjacent one-wide elements at either end of a symbol character. As a result, the longest string of one-wide elements in any label is 12 (for two adjacent symbol characters, one ending in six one-wide elements, while the other begins with six one-wide elements). Consequently, a total of 80,130 symbol characters are available under the (21,6) set after all symbol characters having greater than six one-wide elements at either end of a symbol character are eliminated.
The symbology of the present invention preferably employs the largest prime number of symbol characters in the (21,6) set, while still having the features described above. By employing a prime number of symbol characters, the present symbology has strongest checking and facilitates error correction. Because of the design of the start characters (described below), the total 80,130 symbol characters is reduced by 48 characters, yielding 80,082 usable symbol characters. The highest prime number less than 80,082 is 80,077, which is the total number of symbol characters under the present symbology.
Subtracting the 65,536 Unicode data characters from 80,077 symbol characters, provides 14,594 additional symbol characters. The symbology of the present invention preferably employs 11,000 of such remaining symbol characters to encode high density numeric values, and the balance for encoding double density alphanumeric characters. Any remaining characters are then used for multiple start characters and special characters, as described below.
The start character is selected to be unique from other symbologies, to thereby avoid autodiscrimination errors. Additionally, the start character is selected to be a subset of a symbol character, whereby the initial part of each symbol character is the same, but its final part varies. This allows data and/or other functionality to be carried in the start character, in addition to identifying the present symbology from other symbologies, and determining a direction of a scan.
A suitable start character occurs at the end of the symbol characters generated under the below routine for the (21,6) set. Ideally, the start character should be able to contain any symbol character from the entire double alphanumeric set (described below). The last characters generated below in the (21,6) set begin with 64 . . . (a six module wide bar, followed by a four module wide space). Only three of such symbol characters exist in the (21,6) set. Symbol characters beginning with 63 . . . result in only 21 characters, those beginning with 622 . . . result in 24 symbol characters, and those beginning with 621 . . . result in 76 symbol characters. Therefore, the present symbology employs start characters, all of which begin with the sequence 621 . . . (a six-wide bar, followed by a two-wide space, followed by a one-wide bar). The other symbol characters (those beginning with 64 . . . . 63 . . . , and 62 . . . ) are discarded so that the start characters are the last symbol characters in the present symbology. By providing the start characters as being the last symbol characters in the symbology, the present symbology can be more quickly decoded and processed since the reader can ignore all high value symbol characters (symbol characters having symbol codes greater than 80,007) after locating and decoding the start character.
The stop character of the present symbology is as short as possible to increase information density. At the same time, the stop character distinguishes itself from other known stop characters, and other symbol characters in the symbology. Therefore, the symbology of the present invention employs a stop character having a single three-module wide bar. By being only three modules wide, while the first bar in any label is six modules wide, the stop character is exactly one-half the size of the first bar in the start character. This allows a reader to readily find a label encoded under the present symbology: if the first bar is approximately twice the size of the last bar, then a label encoded under the present symbology has been likely located by the reader. Additionally, the reader can readily determine the X-dimension of the symbol from the known widths of the first and last bars in any label. Furthenmore, a reader can determine acceleration distortions by measuring the changes in width between the first and last bars. Moreover, the reader can compare a ratio of the width of the start or stop bar to the adjacent symbol character to confirm that the ratio is 2/7 or 1/7, respectively. This provides a good check for the reader that the label currently being read is a label encoded under the present symbology.
Since 65,536 of the symbol characters are employed to encode the Unicode character codes, and 11,000 are employed to encode high density numerics, 3,470 symbol characters remain. The remaining symbol characters are employed for double density alphanumeric characters to ferter improve the information density of the present symbology. By encoding double density alphanumerics, a single symbol character can represent two alphanumeric characters (the alphabetic data characters A-Z, the numeric data characters 0-9, and other data characters). Since 592 is 3,481, and 582 is 3,364, the present symbology can encode 58 double density characters in the remaining 3,470 symbol characters. Subsequently remaining symbol characters are used for special purposes, such as flagging a non-default character set, as described herein. In general, the following Table 2 describes the allocation of all 80,077 symbol characters under the present symbology.
|Usage of the 80077 Symbol Characters Under the Present Symbology Quantity of Symbol Allocated Use Under Symbology Characters (Data Character Set)
65536 16-bit Character Set (such as Unicode)
10000 Four Digit Numeric Compression Characters
1000 Three Digit Numeric Compression Characters
3364 Two Character Alpha-Numeric Compression
(58 Character Set)
106 Special Multi-Function Characters
71 Start Characters
The following exemplary computer software program "HanCode9", written in the known BASIC programming language, generates the complete symbol character set of the present symbology pursuant to the designs and inventive aspects specified herein. ##EQU1##
The above routine HanCode9 generates an initial symbol character of 111112111155, where the first number indicates the number of modules in the first bar, the second number indicates the number of modules in the first space, and so forth. This symbol character is preferably assigned to the first four digit numeric compression character. The last character in each of the above allocated sets of data characters is designated in Table 3 below.
|Assignment of the 80077 Symbol Characters Under the Present Symbology Quantity of Symbol Symbol Code Data Character Last Symbol Characters Range Set Character in Set
11000 1-11000 digits 112111322313
3364 11001-14364
double alpha-num.
65536 14365-79900
16-bit characters
106 79901-80006
reserved 614111121111
71 80007-80077
start characters
The assignment of symbol characters under Table 3 is arbitrary, and is made simply for exemplary purposes herein. The four digit numeric compression character set is followed by the three digit numeric compression set. Both numeric compression sets provide a high density means of encoding long strings of digits. The 58 two character alphanumeric compression set follows the same first 58 characters in the code 128 standard, for example. The 16-bit character codes are from the Unicode set. The 71 symbol characters preferably first consist of the 58 alphanumeric data character. The following start symbol characters are as follows: a pad data character, a Function 1pad data character, a Function 1 data character followed by numeric values 0-9, and finally a MH10.8.3 header/trailer. The pad data character is essentially a null data character. The Function 1 pad data character, and the ten Function 1 0-9 data character, can each be used to provide special industry-related functions. Alternatively, start characters and reserved characters can be used as shift or latch characters, or shift into and mimic functions employed by other symbology standards, such as the code 128 standard or to define another character set. The MH10.8.3 header/trailer is an ANSI 2D symbology standard that expands to full header and standard format, known to those skilled in the art.
Since the present symbology employs a prime number of symbol characters, the present invention can employ a robust error detection scheme in addition to self-checking properties of the parity of the symbol characters. The error detection scheme of the present invention involves multiplying the symbol code of the symbol character next to the check character by one, multiplying the symbol code of the next symbol character by two, and continuing leftward under this pattern. In general, a check character e1 of any string of symbol characters or label is determined based on the following equation: e1 =(Sn *n)+(Sn-1 *(n-1))+(Sn-2 *(n-2))(1)
where S is the symbol code of each symbol character, Sn is the symbol code of the first (leftmost) symbol character, and where n is the number of symbol characters in a given label. The start characters can be used as error detection characters under the present symbology, and any of such encoded label will still be readily locatable and decodable by a reader. The start characters are error-detected and -corrected under the present symbology. This is particularly beneficial since the start characters contain data characters. Error correction/detection calculation under equation (1) requires that the symbol codes begin with a zero value. Under the exemplary embodiment of the present symbology, the symbol codes begin with a value of 1. Therefore, the symbol codes S in equation (1) should in fact be one less than the symbol codes under the exemplary embodiment.
An exemplary computer software program presented below, written in the conventional BASIC programming language, calculates the error detection and correction character e1.
|HANECC.BAS Basic Software Program Calculates the error detection and correction characters for Han Ma symbology. REM hanecc.bas Han Code ECC calculation, modulo 80077 July 10, 1996 by sackley DEFLNG C. E. N PRINT "Define character values. Enter (-1) when done": PRINT INPUT "Start Character ? ", c1 INPUT "Next Character ? ", c2 INPUT "Next Character ? ", c3: IF c3 < 0 THEN n = 2: GOTO 1900 INPUT "Next Character ? ", c4: IF c4 < 0 THEN n = 3: GOTO 1800 INPUT "Next Character ? ", c5: IF c5 < 0 THEN n = 4: GOTO 1700 INPUT "Next Character ? ", c6: IF c6 < 0 THEN n = 5: GOTO 1600 INPUT "Next Character ? ", c7: IF c7 < 0 THEN n = 6: GOTO 1500 INPUT "Next Character ? ", c8: IF c8 < 0 THEN n = 7: GOTO 1400 INPUT "Next Character ? ", c9: IF c9 < 0 THEN n = 8: GOTO 1300 INPUT "Next Character ? ", c10: IF c10 < 0 THEN n = 9: GOTO 1200 INPUT "Next Character ? ", c11: IF c11 < 0 THEN n = 10: GOTO 1100 INPUT "Next Character ? ", c12: IF c12 < 0 THEN n = 11: GOTO 1000 INPUT "Next Character ? ", c13: IF c13 < 0 THEN n = 12: GOTO 900 INPUT "Next Character ? ", c14: IF c14 < 0 THEN n = 13: GOTO 800 INPUT "Next Character ? ", c15: IF c15 < 0 THEN n = 14: GOTO 700 INPUT "Next Character ? ", c16: IF c16 < 0 THEN n = 15: GOTO 600 600 el = (el + c15 * (n - 14)) MOD 80077 700 el = (el + c14 * (n - 13)) MOD 80077 800 el = (el + c13 * (n - 12)) MOD 80077 900 el = (el + c12 * (n - 11)) MOD 80077 1000 el = (el + c11 * (n - 10)) MOD 80077 1100 el = (el + c10 * (n - 9)) MOD 80077 1200 el = (el + c9 * (n - 8)) MOD 80077 1300 el = (el + c8 * (n - 7)) MOD 80077 1400 el = (el + c7 * (n - 6)) MOD 80077 1500 el = (el + c6 * (n - 5)) MOD 80077 1600 el = (el + c5 * (n - 4)) MOD 80077 1700 el = (el + c4 * (n - 3)) MOD 80077 1800 el = (el + c3 * (n - 2)) MOD 80077 1900 el = (el + c1 * n + c2 * (n - 1)) MOD 80077 PRINT "The ECC character is "; el
Another character can be added to a label to facilitate either extremely high data security, or error correction of a single symbol character. The present symbology is therefore an error correcting linear bar code symbology. The weighting scheme is the same as that for the error detecting character, in that it employs the same equation (1) above. The method simply employs a single solution of a linear equation to determine the correct value of a single symbol character error, providing its location is known by an incorrect character parity.
FIG. 1 shows a symbol character printing apparatus 100 of the present invention. The apparatus consists of a printer 102, a central processing unit (CPU) 104, a memory 106, a keyboard 107 and a secondary storage 108. The printer 102 is of a type generally known which can print bar codes and human readable data characters. Those skilled in the art may select from any such printers which are suitable for use in the present invention. The CPU 104 is electrically coupled to a host computer 105, or other apparatus or applications, by a port or line 109. The CPU 104, executing a routine (FIG. 2) stored in the memory 106 and/or the secondary storage 108, converts a 16-bit data character code into counts which are sent to the printer 102. The printer 102 interprets these counts and converts them into printed symbol characters, typically in the form of a bar code label. A "label" generally refers to any paper, cloth, plastic, metal or other pliable or rigid material suitable for having one or more symbol characters and/or data characters printed or formed thereon. Those skilled in the relevant art, however, will recognize that the term "label" also refers to any symbol characters printed on an object, such as packaging for a consumer product.
The printed label can include both symbol characters and the corresponding human readable data characters. An example of a label 101 printed or read under the present invention is shown in FIG. 3. In the preferred embodiment, a standard 16-bit data character encoding standard is used by the present invention for example, Unicode, JISC-6226-1983, Big Five (BF), or KSC 5609-1987. The JISC-6226-1983 standard is the Japan Industrial Standard Character set, mapping the kanji and katakana data characters into 16-bit codes. This data character standard is similar to Unicode, which, as noted above, includes the kanji and katakana data characters, among others. However, each data character in the JISC-6226-1983 standard is assigned a different 16-bit code for the equivalent data character in the Unicode standard.
FIG. 2 shows the steps performed by the printing apparatus 100 of FIG. 1 for printing a bar code label having multiple symbol characters and with corresponding data characters. In step 110, a string of data characters are selected, input or determined, for example, such as input using the keyboard 107. The string of data characters may also be input to the CPU 104 over the line 109 from the host computer 105. When a key is depressed on the keyboard 107, the keystroke is converted into a "scan code" which is transmitted from the keyboard to the device to which the keyboard is connected (e.g., the printing apparatus 100 or the host computer 105). This scan code represents the particular key of the keyboard which has been depressed, and is unrelated to any particular character or code in a data character set, such as ASCII or Unicode.
In step 112, the CPU 104 divides or parses the selected characters into various sets of data characters, such as alpha characters, numeric characters, 16-bit characters, etc. Data parsing techniques are well known in the relevant art. In step 114, the CPU 104 defines any special characters, such as function characters (which could be encoded as start characters or special characters). In step 116, the CPU 104 determines an optimized string of symbol characters based on the selected data characters. For example, if more than two consecutive data characters are numeric, then the CPU 104 determines that the numeric compression characters should be employed to reduce the number of symbol characters and thereby increase information density of the resulting label.
In step 118, the CPU 104 determines the symbol code for each data character. A table of data characters and their corresponding symbol codes is preferably stored in the secondary storage 108, along with the counts for the corresponding symbol characters. Alternatively, the symbol codes can be automatically calculated from knowledge of the data characters (as noted above with respect to the HanCode9 routine). In step 120, the CPU 104 generates the check character by employing the above-described check character routine of equation (1). In step 122, the CPU 104 chooses a suitable X-dimension for the symbol based on, in part, the number of symbol characters to be printed. In step 124, the CPU 104 chooses other format options, such as printing the symbol with the human readable data characters, or other format options known by those skilled in the relevant art. In step 126, the CPU 104 outputs the appropriate codes and other signals to the printer 102, which in turn prints the symbol as a series of symbol characters (and possibly data characters) to form the bar code label.
Referring to FIG. 4, a flowchart showing in more detail the specific steps performed under step 118 of the routine 111 is shown. After a string of data characters has been determined in step 110, the CPU 104 in step 172 looks up any character code for the given data character. The CPU 104 converts the scan code into a corresponding ASCII code or a Unicode code (16-bit code) under such standards. The CPU 104 has a lookup table, or algorithmically generates, the 16-bit code or other code for the given data character. For example, when encoding Unicode data characters, each data character has a unique 16-bit code for each data character under the Unicode standard.
In step 174, the CPU 104 retrieves the unique symbol code in the present symbology that represents the 16-bit code from a look-up table stored in either the memory 106 or the secondary storage 108. Alternatively, the symbol codes could be algorithmically generated based on values of the data characters. For example, if a given data character has a corresponding value in the Unicode standard, its corresponding symbol code could simply be the Unicode value plus a constant.
In step 176, the CPU 104 retrieves the counts for printing the symbol characters representing each of the symbol codes. The counts for an appropriate start character and stop character are also retrieved. The memory 106 or the secondary storage 108 stores the symbol codes and corresponding counts.
In the preferred embodiment, the symbol characters can also be printed with the human readable data characters. Therefore, in step 176, the CPU 104 retrieves the data character font data necessary for printing the data characters. The font data provides the printer 102 with particular data necessary to print the unique data character represented by each symbol character. With a dot matrix-type printer (not shown), the font data instructs the printer how to print the unique data character. The font data is stored in either the memory 106 or the secondary storage 108.
In step 178, the CPU 104 determines whether all data characters in the string initially selected in step 110 have been converted. If additional data characters remain in the string, then the unique 16-bit code or other code for the next data character is found in step 172, its corresponding symbol code is retrieved in step 174, and the particular font and symbol character counts are retrieved in step 176. This process is repeated until all of the data characters have been converted. Thereafter, in step 126, the bar code is printed by the printer with both the symbol characters, and the associated human readable data characters.
FIG. 5 shows the transformation of a data character under a 16-bit code standard into a bar code label having both symbol characters and human readable data characters, by using the steps shown in FIG. 4. The transformation begins with a selected data character (block 180). The data character is converted to a 16-bit code, assigned by a 16-bit encoding standard such as Unicode (block 182). The 16-bit code for the data character is converted into a symbol code (block 184). The symbol codes are then converted into the counts representing the bars and spaces necessary for symbol character printing (block 186). The counts associated with the bar and spaces are then printed as symbol characters (block 188) to produce the bar code label (block 190).
Each corresponding human readable data character is also printed with the symbol characters. As described herein, each 16-bit code represents a unique data character. The 16-bit code is mapped onto the font data necessary for printing the unique data character (block 192). The font data is then printed as human readable data characters (block 194) to produce the bar code label (block 190). For example, if the data characters are printed on a dot matrix printer, then the font data is the appropriate signals to drive the dot matrix printer so as to print the data character. This data character is printed together with the present symbology's symbol characters (i.e., block 188) on the completed bar code label (block 190), as shown in FIG. 3. The counts and font data are stored as each data character is converted, and then the entire label is printed after all data characters have been converted. Alternatively, the symbol characters and data characters are printed sequentially as each human readable data character is transformed into printed symbol characters and data characters on the bar code label.
The above steps are performed by the printing apparatus 100 to create a label with the exemplary symbol character set created under the above BASIC routine, together with error correction and detection, as well as some alphanumeric data characters. The label 101 of FIG. 3 might be used in a human identification application. The data characters encoded in the label 101 are "H85299301 Miew Mnn Shaun" where the "name" is really three Chinese characters represented in the Unicode Character set by the 16-bit codes 33494, 25991 and 23665. The Unicode data characters are represented by symbol codes in the present symbology by 14363 plus their Unicode 16-bit codes. The first data character in the label 101 encodes an "H," which is the 40th start character. Since both the symbol codes of the present symbology as well as the Unicode character set starts with a value of one, it is ordinal, while the check characters are calculated by values starting with zero, the check character values are one less than the ordinal number. Consequently, the data to be encoded is:
|Check Character Value and Weight With Respect to Symbol Code for the Exemplary Label of Figure 3 symbol 80047 8530 9302 47858 40355 38029 code check 80046 8529 9301 47857 40354 28028 character Value Weight 6 5 4 3 2 1
An error correction character for the label 101 calculated using the above weighting values is 21662. A check character is calculated using a new string of weighting values ending in 7 and is 27208. The symbol codes are then entered into the above BASIC routine to generate the following symbol characters:
|Symbol Codes and Corresponding Bar/Space Patterns for the Symbol Characters in the Label of Figure 3 Symbol bar/space pattern Code b s b s b s b s b s b s
80047 6 2 1 1 2 1 1 1 1 1 1
8530 1 1 1 3 2 1 4 2 1 1 3 1
9302 1 1 1 4 1 1 2 2 2 1 1 4
47858 2 1 1 2 2 3 3 2 1 3 1 1
40355 1 4 1 1 2 2 1 1 2 2 3 1
38029 1 3 2 1 3 1 1 3 2 2 1 1
21663 1 1 5 1 1 4 1 3 1 1 1 1
27208 1 2 1 3 1 1 2 2 2 4 1 1
Stop 3
FIG. 3 shows the resultant label printed with a 10 mil X-dimension with the corresponding data characters (i.e., person's identification number and name). The resulting label actually encodes both identification number and name and has error correction and powerful error detection.
The symbology of the present invention can also be readily read using a bar code reading apparatus such as a bar code reading, apparatus 140, shown in FIG. 6. The reading, apparatus 140 has a standard bar code reader 142. The bar code reader 142 includes an electro-optical device 143 such as a laser scanner, rasterizing laser, or wand-based optical transducer. Alternatively, the electro-optical device 143 in the reader 142 can include a one- or two-dimensional CCD, semiconductor array, vidicon, or other area imager capable of converting received light into electrical signals. The electro-optical device 143 in the reader 142 can also include a light source such as an LED, flash bulb, infrared light source, or other light-emitting element. As used generally herein, the term "reader" refers to any device capable of converting modulated light received from a bar code into electrical signals. Readers are known by those skilled in the art, and any such reader suitable for use in the present invention can be selected. The data read from the bar code reader 142 is input to a CPU 144. A memory 146 and a secondary storage 148 are coupled to the CPU 144. The data input to the bar code reader 142 is processed by the CPU 144 and output to a host computer 147, or other apparatus or applications, by a port or line 149.
FIG. 7 shows the steps performed under a routine 150 by the reading apparatus 140 of FIG. 6 for reading bar code symbols having symbol characters from the present symbology. In step 151, the bar code reader 142 scans or images the symbol characters of a bar code label and determines a series of counts. As is known by those skilled in the art, the transitions between bars in the symbol characters, together with a timer within the reading apparatus 140, determines the counts of the symbol characters read. The counts in turn are used to determine the widths of elements in a given symbol. In step 152, the CPU 144 analyzes the counts, to locate the quiet zones on both sides of the symbol.
In step 154, the CPU 144 selects the first 12 sets of counts, which represent the first string of 12 element widths. In step 156, the CPU 144 divides the first twelve sets of counts by 21 and normalizes the result to estimate the widths of the individual elements. In step 158, the CPU 144 compares the widths of the first 12 elements to the string of widths for one of the start characters and with the reverse string of widths for the stop character. If the last 12 elements in the string correspond to the 12 elements from one of the start characters, but in reverse, the CPU 144 recognizes that the symbol has been scanned in reverse, and therefore recognizes that the symbol is to be read from right to left (as opposed to the traditional left to right). In step 158, the CPU 144 also determines which of the several start characters has been located to determine the data character, the function character, or pad character encoded in the start character.
In step 160, the CPU 144 selects the next 12 elements, and in step 162, divides the sum of the elements (counts) by 21 and normalizes the result. In step 164, the CPU 144 determines the symbol code for the selected 12 elements. In step 164, the CPU 144 also checks the parity of the selected 12 elements. If the sum of the bars is equal to an even number, then the parity checks. In step 166, the CPU 144 determines if the label contains any additional elements and if so, loops back to step 160 to perform the steps 160 through 164 again until all of the symbol characters have been converted into symbol codes.
In step 168, the CPU 144 determines if any invalid/undecodable symbol characters have been generated. If some symbol characters are determined to be undecodable, then the routine loops back to step 160 and the CPU 144 performs other known decode methods, such as edge-to-edge (element pairs) decoding for individual elements in the symbol. Alternatively, in step 168, the CPU 144 performs bar-to-bar or space-to-space comparisons, or Factor R decoding methods, known to those skilled in the art.
In step 168, the CPU 144 can also verify or determine whether the symbol characters are in focus. The CPU 144 analyzes the signals produced by the bar code reader 142 for the symbol characters to determine whether the CPU can recognize the wide elements but fail to recognize the one-wide elements. If the CPU 144 cannot recognize the one-wide elements in one or more symbol characters, the CPU aborts the decode routine, provides unfocused data to the CPU, or performs other functions such as alerting the user that the symbol is not in focus. If the CPU 144 is sufficiently programmed, it can decode the unfocused data based on the above-noted patents by the present inventor.
If the symbol is in focus or if the CPU 144 decodes the unfocused data, so that all of the symbol codes are valid (i.e., map to data characters) then in step 170, the CPU performs the check calculation based on the last symbol character. The CPU 144 applies all of the symbol codes to the check character computation method described above to determine if the result equals the symbol code of the check character. If not, then the CPU 144 performs error correction. Alternatively, the CPU 144 can perform error correction under step 164 when parity is checked. If so, then in step 171, the CPU 144 converts the symbol codes into data characters based on a look-up table by retrieving the appropriate data characters from the memory 146 or the secondary storage 148 depending upon where the appropriate data is stored. The data characters can then be displayed, or used in other applications by the CPU 144, or output over the line 149 to the host computer 147. Alternatively the CPU 144 can simply output the symbol codes over the line 149 to the host computer 147, which in turn performs the conversion into the corresponding data characters.
FIG. 8 shows the transformation of a bar code label into a data character or string of data characters, by using the steps shown in FIG. 7. The transformation begins with a bar code label having several symbol characters (block 200), such as the label 101. The label 101 is read and the counts associated with the bars and spaces of this label are determined by the bar code reader 142 and the CPU 144 (block 202). The counts are converted into symbol codes (block 204). Each symbol code is then converted into, e.g., a 16-bit code, numeric string, etc. (block 206). The 16-bit code is mapped to its corresponding unique human readable data character (block 208). The data character is then output by the CPU 144 for use in any appropriate application (e.g., displayed on a computer screen).
Referring to FIGS. 9 and 10, the present symbology not only provides the above-described benefits, but also provides improved information density or efficiency. Both the labels of FIG. 9, and the labels of FIG. 10, are printed at an X-dimension of 0.20 inch. By providing three- and four-digit compressed numeric data character sets, the efficiency of the present symbology is maximized at multiples of four-digit data characters whereby the density is even better than Code 128. Code 128 has a density of 5.5 modules per digit, while the present symbology can encode 5.25 modules per digit. At less maximized efficiencies, for other strings of data characters, the density of the present symbology may be slightly less than that of Code 128. The following Table 4 summarizes the numeric symbol character density for the present symbology (Han Ma) as compared to Code 128, which is the current highest density linear symbology for long numeric digit strings. The following table assumes the use of the appropriate start character for the symbologies in both cases.
|Comparison of Efficiency in Encoding Strings of Digits Between Code 128 and Present Symbology Quantity of Digits 1 2 3 4 5 6 7 8 9 10 11
Han Ma
0 10.5
7 5.25
7 6 5.25
Code 128
11 11
11 8.8
As shown in FIG. 9, both a Code 128 label 220 and a label 222 encoded under the present symbology are shown encoding a standard string of numeric digits under the UCC SSCC-18 standard (which is the numeric string 00000521775138957172). As shown, the label 222 under the present symbology is only slightly larger than the label 220 encoded under Code 128.
The double alphanumeric data character set of the present symbology provides 10.5 modules per symbol character, which is slightly better than Code 128, which provides 11 modules per symbol character, but less than Code 93 which provides 9 modules per data character. Code 128 can encode a greater size character set as compared to Code 93 which has a smaller sized data character set. Overall, the alpha and numeric density for the present symbology is comparable to some degree to the density of the known Code 128 and Code 93 standards. However, when 16-bit characters are encoded under the present symbology, Code 93 requires up to 27 modules per character, while Code 128 would require up to 33 modules per character (if it could encode 16-bit data characters within its data character set). The present symbology requires only 21 modules to encode any 16-bit character.
As shown in FIG. 10, a label 224 encoded under the Code 128 standard, and a label 226 encoded under the present symbology, encode a string of mixed alphabetic and numeric data characters of "A1234BC5678DE9012". As shown in FIG. 10, the label 226 encoded under the present symbology is substantially shorter, and therefore has a greater information density, than the label 224 encoded under the Code 128 standard.
Various alternative embodiments to the present invention are possible, as will be recognized by those skilled in the relevant art. A first alternative embodiment has a greater character set than the 80,077 symbol character set described above. As noted above, the present symbology preferably includes parity, no 7-wide (or greater) elements, and no strings of greater than 6 1-wide elements at either end of a symbol character. While the above-described symbology obtains certain advantages by placing the start characters as the last-generated symbol characters under the above software routine HanCode9, the first alternative embodiment provides additional symbol characters. Under the first alternative embodiment the symbol character assignment is substantially identical to that of Table 3, except that all of the 621 . . . start characters are employed, so that the symbol code range extends to 80,082. The last symbol character in the set is then 621311211111, which provides a quantity of 76 of such symbol characters.
Under the first alternative embodiment, 48 more symbol characters are available. However, as noted above, the present symbology preferably employs a prime number of symbol characters. The largest prime number less than 80,130 is 80,111. As a result, the last 19 symbol characters are discarded under the first alternative embodiment. The above software routine HanCode9 can readily be adapted to generate this symbology of the first alternative embodiment. Under such an adapted software routine, the last symbol character generated by the routine would be 631111121121, which corresponds to the symbol code 80,111
Under a second alternative embodiment, a symbology is provided that permits a greater possibility of a successful decode. As noted above, one well-known method of decoding is "edge-to-edge" decoding, or alternatively, element-paired decoding. Such decoding is particularly easy to implement if a symbology has no ambiguous symbol characters. Ambiguity is substantially eliminated if every symbol character in the symbology has at least a single 1-wide bar.
The above software program HanCode9 is modified under the second alternative embodiment by replacing the instructions: ##EQU2## With the following instructions: ##EQU3##
The logic statement, labeled 200, in the above modifications to the HanCode9 routine adds the restriction that every symbol character must have at least one 1-wide bar. As a result of this restriction, the total number of symbol characters under the second alternative embodiment is reduced to 79,948. The largest prime number less than 79,948 is 79,943. In order to have enough start characters to encode data, the number of double-compression alphanumeric symbol characters is reduced from 58 to 57, to provide a total of 3,249 of such symbol characters. The modified HanCode9 routine generates the following symbol characters, which are assigned as follows.
|Assignment of the 80077 Symbol Characters Under the Present Symbology Quantity of Symbol Symbol Code Data Character Last Symbol Characters Range Set Character in Set
11000 1-11000 digits 112111322313
3249 11001-14249
double alpha-num.
65536 14250-79785
16-bit characters
39 79786-79824
reserved 614111121111
76 79825-79900
start characters
43 79901-79943
reserved 632111111112
The first symbol character generated is, as with the above-described symbology, 111112111155.
A third alternative embodiment provides a new stop pattern to the above symbologies. While the single 3-wide bar disclosed above is sufficient to permit decoding of the present symbology, it requires the reading apparatus 140 to rely on the start character in a given label for all information. The third alternative embodiment expands the stop character by providing a second 3-wide bar separated from the first 3-wide bar by a 1-wide space (i.e., resulting in the pattern 313). Consequently, by simply adding four additional modules, an improved stop character is provided. The stop character of the third alternative embodiment is readily distinguishable from other symbologies, but in addition, is sufficiently distinguishable so as to unambiguously identify a reverse scan of the present symbology. Such a two-bar stop character is better suited for measuring the X-dimension of a given label, and is hence better to determine acceleration. Further, the sum of the elements in the stop character is 7, which is still an integer divisor of 21. Finally, the pattern is easily discernible in an out-of-focus reading condition.
Those skilled in the art will recognize that the above-described invention provides an efficient means for encoding data characters represented by 16-bit data character codes or numeric strings into symbol characters, and then converting those symbols back into data characters or numeric strings. The above-described system supports the emerging 16-bit data character encoding standards in the data collection markets and thus can be used in worldwide applications. Thus, the above-described symbology and systems readily permit data in computer formats to be converted to a bar code format and vice versa. The above-described symbology and systems allow long numeric and alphanumeric strings to be efficiently and compactly represented by the present symbology. The present symbology can be determined algorithmically using a simple computer program routine. The start characters of the present symbology have extended functionality and the start and stop characters are unique with respect to other symbologies. The character set of the present symbology has self-checking characters, appended to a string of symbol characters and employs a prime number of symbol characters to provide high levels of error detection, while also providing for error correction. The present symbology is wand scannable, readily printable, and can be decoded under known techniques when out-of-focus.
A portion of the disclosure provided herein contains material to which the inventor and/or the assignee (the copyright owner) claims copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office files or records, but reserves all other copyrights whatsoever.
Although specific embodiments of, and examples for, the present invention have been described for purposes of illustration, various equivalent modifications may be made without departing from the spirit and scope of the invention. For example, if the memory 106 or 146 is sufficiently large to contain all data required by the CPU 104 or 144 for encoding, decoding, printing or reading bar code labels, the secondary storage 108 or 148 is unnecessary and thus eliminated. Alternatively, the data required by the CPU 104 or 144 may be contained in the secondary storage 108 or 148, thus eliminating the need for a large memory 106 or 146 or the need for this memory entirely. Furthermore, the printing apparatus 100 or the reading apparatus 140 may use only a limited data character set. Only the data required by the CPU 104 or 144 representing this data character subset is stored in the memory 106 or 146. The secondary storage 108 or 148 is unnecessary, and therefore be eliminated.
Regarding the symbology, the symbol characters under the (21,6) symbology can be allocated to different sets of data characters than as described above with respect to Table 3. Those skilled in the relevant art can create a (21,6) symbology that employs some or all of the criteria presented above but not necessarily as specifically set forth in the above exemplary embodiment. Such a (21,6) symbology could assign data characters for corresponding symbol characters in a different fashion, and could even perform such an assignment pseudo-randomly. Under such a pseudo-randomized assignment of data characters for symbol characters, the symbology will reduce the occurrence of similar data types matching to similar patterns of bars and spaces, so that a slight change in the width of a given element would be read as a different data character (e.g., a 16-bit character versus a compressed numeric character).
Additional error correction characters can be added to any label to further improve the ability to correct errors in the label. The Function 1 start characters, or any of the reserved symbol characters can be used to latch into a mode for encoding other sets of data characters such as other 16-bit characters. For example, where the standard symbol character set encodes the Unicode characters, a latched set can encode the JISC-6226-1983 characters. Additionally, the present invention can incorporate the teachings of the U.S. Patents and/or applications described herein to provide additional benefits and functionality. For example, the present symbology can employ a start character having one-wide elements sandwiched between two wide elements to determine if a label is out-of-focus, as taught by the inventor's U.S. patent application Ser. No. 08/433,835, filed May 4, 1995, entitled "Single Width Barcode Symbology With Full Character Set Utilizing Robust Start/Stop Characters And Error Detection Scheme." The U.S. Patents and applications cited above are incorporated herein by reference as if set forth in their entirety.
These and other changes can be made to the invention in light of the above detailed description. In general, in the following claims, the terms should not be construed to limit the invention to the specific embodiments disclosed in the specification and claims, but should be construed to include all apparatus, methods and symbologies for directly encoding at least 16-bit character codes. Accordingly, the invention is not limited by the disclosure, but instead its scope is to be determined entirely by the following claims.


text:
The third edition of "My STORY MAGAZINE", a captivating magazine which seeks to educate and inspire people has been launched
The digital and print magazine features insightful stories of great personalities across the African continent who have been instrumental in shaping various corporate institutions through capacity building and digital innovation.
It also focuses on spotlighting the works of various African start ups redefining innovation, leadership, business and finance, policy reforms among others.
The publisher of "MY STORY" , Nana Akwasi Bonsu, said the magazine was geared towards all spheres of society who are interested in making a change in society through entrepreneurship and business activities.
"It's been months of dedication and hardwork by the team to share captivating stories of various personalities and change-makers," he said.

subset: commoncrawl


text:
Who And What Is A Virtual Assistant?
Summary: The following article explains who and what is a Virtual Assistant. Several misconceptions about VA's are discussed, and ideas mentioned on where to find a Virtual Assistant.
Who And What Is A Virtual Assistant?
Author: Rita Cartwright
As an entrepreneur and small business owner, you've probably heard the term "Virtual Assistant (VA)," but you are still not quite sure exactly what a Virtual Assistant is or what they do or don't do. Think of a Virtual Assistant as your online administrative assistant. However, there are still misconceptions that exist. I'm going to attempt to clear those up.
"A Virtual Assistant is a professional who specializes in providing administrative support and expertise," says Danielle Keister of Virtual Assistant Chamber of Commerce. The business community is still conditioned to think of virtual assistants as employees. This type of thinking can devalue the true worth of a VA; as a result, potential clients tend to focus on the cost of the services rather than the value a VA can bring to the table. When you pencil out the benefits you reap from working with them, you will realize that they are not as expensive as you first thought.
Since VAs are professional entrepreneurs, they are quite versed in business operations. You won't have to worry about time-consuming tasks; such as, e-mail marketing campaigns, maintaining your website, following up with your clients, bookkeeping, creating a new blog, updating your blog, to name a few. As Danielle points out, a Virtual Assistant can help you move your business forward.
The qualifications and skills that they possess as VAs enable them to be experts in their fields, as well as in their profession as entrepreneurs. You receive more than administrative support, you have someone you can consult with, bounce ideas off of, brainstorm with, as well as utilize some of their business practices. If it works for their business, it may work for yours. In addition, your VA becomes familiar with how you operate your business; as a result, s/he can help your business operations run smoothly.
The benefits you reap as an entrepreneur from this type of business relationship outweighs any fees that you may perceive as being expensive. If you choose to work with offshore virtual assistants to save a few bucks, you will not receive this type of value-added service and expertise, mainly due to cultural differences.
If you are trying to decide if it is time to retain the services of a Virtual Assistant, it depends on whether or not you find yourself spending more time working in your business rather than working on your business. If it is the former, you should work with a VA. S/he can assist you with those daily, time-consuming tasks, which divert your focus away from working on your business. Working on your business requires just as much concentration and is necessary if you want to grow your company.
There are several VA forums that have directories listing their members and how to contact them. You can start your search at VAnetworking, Virtual Assistant Chamber of Commerce, Search4VAs, Virtual Assistant Forums, and International Virtual Assistants Association, to name a few.
Although the VA industry has existed for nearly 10 years, due to workers becoming business owners because of downsizing and layoffs, VAs are suddenly in high demand. However, potential clients, and some VAs, need to recondition their concept of what a Virtual Assistant really is and what they do and don't do. They are independent contractors not employees.
About the Author:
Rita J. Cartwright is the owner of RJ's Word Processing Services and has been in business for 7 years. She is a Professional Administrative Expert offering virtual assistant services to Christian leaders' coaches, business coaches, and life coaches. More information about Rita and her company can be found at http://rjswordprocessing.com.
Article Source: ArticlesBase.com – Who And What Is A Virtual Assistant?
Summary: The preceding article explained who and what is a Virtual Assistant. Several misconceptions about VA's were discussed, and ideas mentioned on where to find a Virtual Assistant.


text:
Boxing game download for mac
Boxing first appeared as an Olympic event in the 7th century B.
Originally, the sport of boxing in ancient Greece was not so much about hitting one's opponent as much as it was about avoiding being hit until the other boxer became exhausted in attack! However, it was still a tough fight, as boxers only wore leather straps on their hands for protection.
With the coming of Christianity in Europe, Boxing disappeared for the most part until the late 's when it resurfaced in England, and gained in popularity in the 's when the sole champion of the sport was James Figg, who held the heavyweight title from Figg trained various boxers, and one of them Jack Broughton, became the next champion and drew up his own set of rules for the sport, which forbidden moves such as hitting below the belt.
Bare-knuckle boxing officially ended around Tycoon Games Dating sim games Otome games company Turn based games.
Few sports games who can interest you
Trademarks mentioned are the property of their respective owners. Boxing became an official Olympic sport in Latest news Check an archive of past newsletters.
Spread the word about us! IVA Simulation Games.
Project Boxing Windows, Mac, Linux, Android game
Microsoft PowerPoint TeamViewer 9. Modern Warfare 1. Modern Warfare Mozilla Firefox TeamSpeak 3. Virtual DJ 8.
About This Game
Google Chrome Windows Live Movie Maker 6. Opera browser Combat Evolved 2.
Combat Evolved. Age of Empires 1.www.mariorossi.biz/wp-includes/270/koto-como-conocer-chicas.php
Real Boxing for Mac - Download
VLC Media Player 3. BlueStacks App Player 0.
- mac mini audio out jack.
- Boxing Star For Your Windows / Mac PC – Download And Install (Trailer & GamePlay)?
- Download Boxing Games - Best Software & Apps!
- TV Sports: Boxing.
- Recommended.
All popular downloads. All rights reserved. By operating system: By licence: Last updated in: Anytime Last week Last month Last 6 months Last year.


text:
Music review
Songbird sheet music scribd review. Sheet review Music for a range of musical instruments, songbird Notation & Songbooks Musicroom has a huge online catalogue of sheet music, from trumpets to trombones , , scores & songbooks for musicians of all ages , abilities bass guitar to the bouzouki. to review the list and to confirm which. Other Transcriptions - Along Came Betty review ( A. Pat Martino - Along Came Betty - Do You Have A Name - Dreamsville - Gator Tail - Jive Smba - Just Friends songbird - Lazy Bird - Lean Years - Oleo - songbird Passata On Guitar - Pyramidal Vision - Satin Doll - Sky Shadows - Songbird - Strings - The Great Stream - The Visit. Song of the Caged Bird - Lindsey review Stirling ( Original Song) Lindsey Stirling. Minnie scribd admires her voice as " an exotic songbird. Newsies" Script - songbird Broadway musical.
Eva Cassidy Songbird Sheetmusic Trade Com. To help you find sheet music for piano we have scribd divided our piano sheets by genre, difficulty, score. Get the sheet music: com Check out scribd Maya Angelou' s website. A Literature Review songbird of Pastoralist Nutrition and Programming Responses. Lizzie Peacock- A Thousand Years – Harp Solo Free Sheet Music Download PDF Lizzie Peacock September 15,. Postmodern Jukebox - Creep - Full Score. Looking scribd for Songbird - Harp Solo by Lizzie Peacock sheet music download? Transcriptions 4. Picture songbird of Kate Smith " Songbird of the South" on. in a newspaper review type song sheet. Todo esta en PDF. PDF] Free Sheet Music To Songbird Noche scribd de paz ( Navidad) - Coro 4 review voces - comPartituras Descarga la Partitura Noche de paz, Coro 4 Voces todas las partituras que tenemos son completamente GRATIS. free piano sheet music for beginners" " Bird on the review Wire Lyrics and Video - Leonard Cohen. Songbird sheet music scribd review. The Swedish Meadowlark, Miss Medda Larkson.
Here you will find piano sheet music for your favourite songs. About " Songbird" Digital sheet music for voice lead sheet indications , guitar NOTE: chords, piano , lyrics may be included ( please check the first page above before to buy this item to see what' s included). Like songbird a bird on the wire I have tried in my scribd way to be free, Like a drunk in a midnight choir, Like a worm on a hook" " Download Easy Piano sheet music to Hallelujah review by Leonard scribd Cohen review print it instantly scribd from Sheet Music Direct. ( He throws a dust covered sheet to Jack. Umeed Wali Dhoop Sunshine Wali Asha is New TV Commercial Song of Coca Cola. Sheet Music Download is a site review dedicated to all amateur music performers around the world, giving them the opportunity to download the sheet music for free for trial purposes.
As a complementary service to our piano songbird chords chart piano tutorial , virtual piano sheet music scribd can also be scribd purchased on our website. 2294 SL 2 IF Every. The sensational songbird. Recognized for their distinct timbre both sexes of this songbird sing in duos, trios, songs, , calls, , even larger choirs transforming their flute- like songs. Contains review printable sheet music plus scribd an interactive, downloadable digital sheet music file. Scribd is the world' s largest social reading and publishing site. The Logical Song Sheet Music Supertramp PDF Free Download " The Logical Song Sheet Music" by review Supertramp Original key: C min, number review of pages sheet music PDF: 5, songbird Scoring Piano / Vocal / Guitar, , " The Logical Song Sheet Music" for Piano Sheet Music scribd Lyrics song The Logical Song Sheet Music Download. In order to write a review songbird on digital. A Critical Review of " Shoot Minnie Shoot!
Over the years I have received many scribd questions about the players whose solos were heard on the Top 40 " songbird Pop" music hits. Her poem " I Know Why. [ PDF] Hydraulique. WIMA Sheet Music. Este es uno de los villancicos mas scribd escuchados en navidad su origen es alemán lo compuso el maestro. Songbird digital sheet music.
requests for transcriptions, identifying chords in a song ( use / r/ transcribe) requests for sheet music. How to print sheet music from Scribd. Robbins Music Corp. Publisher 2620 SL 2 IF Called Back To Thee Harms Inc. Title Publisher Dates Notes Object Number L / S Collection Call Me Back Again Sherman.
songbird sheet music scribd review
Sheet music is more like a program with notes on the production and words to other songs from the show. Intro] C G D Em x4 Em D G Am7 [ Verse] Em D G Am7 I' m still alive but I' m barely breathing Em D G Am7 Just prayin' to a god that I don' t believe in Em D G Am7 Cos I got time while she got fr.


text:
Difference between revisions of "Naked in the Fountain"
|Line 1:
|Line 1:
''Naked in the Fountain'' is a play by [[Ron Fenton]] .
''Naked in the Fountain'' is a play by [[Ron Fenton]].
== The original text ==
== The original text ==
|Line 8:
|Line 8:
== Performance history in South Africa ==
== Performance history in South Africa ==
at the at the [[Masque Theatre]] in September/October 1976.
== Sources ==
== Sources ==
Revision as of 21:02, 14 April 2016
Naked in the Fountain is a play by Ron Fenton.
The original text
Described by Geoffery Tansley in his review in the Cape Times as "...a well thought out comedy in two scenes in which two husbands are at first outraged by the conduct of their wives, who, on impulse in the one case and in order to assert herself in the other, exhibit more of their charms than their spouses think right and proper. Later the men are forced to take a more modern view."
Translations and adaptations
Performance history in South Africa
Performed at the at the Masque Theatre in September/October 1976, .
Theatre programme held by NELM: [Collection: FLETCHER, Jill]: 2005. 75. 19. 2.
Go to ESAT Bibliography
Return to
Return to PLAYS I: Original SA plays
Return to PLAYS II: Foreign plays
Return to PLAYS III: Collections
Return to PLAYS IV: Pageants and public performances
Return to South African Festivals and Competitions
Return to The ESAT Entries
Return to Main Page


text:
Title: A Gathering of Shadows
Author: V. E. Schwab
Publisher: Tor
Source: Purchased
Check this book out on Goodreads.
Buy at: Chapters | Book Depository
Four months have passed since the shadow stone fell into Kell's possession. Four months since his path crossed with Delilah Bard. Four months since Rhy was wounded and the Dane twins fell, and the stone was cast with Holland's dying body through the rift, and into Black London.
In many ways, things have almost returned to normal, though Rhy is more sober, and Kell is now plagued by his guilt. Restless, and having given up smuggling, Kell is visited by dreams of ominous magical events, waking only to think of Lila, who disappeared from the docks like she always meant to do. As Red London finalizes preparations for the Element Games—an extravagant international competition of magic, meant to entertain and keep healthy the ties between neighboring countries—a certain pirate ship draws closer, carrying old friends back into port.
But while Red London is caught up in the pageantry and thrills of the Games, another London is coming back to life, and those who were thought to be forever gone have returned. After all, a shadow that was gone in the night reappears in the morning, and so it seems Black London has risen again—meaning that another London must fall. (Source: Goodreads)
Picking up 4 months after the end of A Darker Shade of Magic, we find Lila living the life of a privateer aboard a royal vessel protecting the seas against pirates, while Kell is living back in Red London feeling like a prisoner in his own life after tying his life to his brother, Rhy's, to save him from death. While the city prepares for the Elemental Games and magicians from around the world gather in the city evil forces begin to build themselves up in Grey and White London.
V. E. Schwab has done it again, this book is another total knockout. I absolutely loved her previous book in this series and I was so excited for this one I snatched it up the moment it came into the store. I absolutely loved this book. It had all the right things we needed from a sequel to A Darker Shade of Magic. We get character growth, new and interesting characters, expanding the realm of the story, and lovely romance! I was so pleased with this book, unfortunately no one I know has bothered to read these books yet so I had to contain myself and wait to write this review.
Lila and Kell don't see much of each other in this book, and while their chemistry was what made the first book so amazing, we get to see them develop outside of the confines of their relationship and it's so magnificent. Lila is able to explore that pirate side of her that she always wanted to pursue, Kell and Rhy's relationship is explored a lot more in this book. These developments are so necessary for their relationship to keep working. They both get a lot of time to also work on their magic. This book, by the way, has so much magic on display, and lots of fighting and Schwab does it all so well.
We get a couple of new characters in this book, the main one being Lila's captain Alucard. Alucard's past is hinted at here and there for much of the book, but eventually we learn he's Rhy's former lover and he's royalty. He's also a charming, rogue-ish, sorta-kinda pirate. He is a perfect combination of rogue and royal that you kind of love him from the first moment Lila meets him. I loved the development of his relationships with Lila and Kell, who both interact with him in very different ways.
The writing is of course amazing and I loved every moment of this book. I cannot wait to see where Schwab takes this series in the next book, I'm very excited to see what comes of the gathered shadows in the third book. I highgly recommend this book!
Ramble on,
Have you read A Gathering of Shadows? Let me know your thoughts in the comments!
Check out V. E. Schwab at her Goodreads and website.
Connect with me on Goodreads, BlogLovin, and Twitter.


text: Undiscovered Power Lists: Archaon Rotbringer Welcome to the second part of our list-tech series, wherein I explore the dark apertures of a mind so insidious, even the Lords of Chaos can't come up with lists as broken as his. I refer of course to the mystical augur we know only as 'Jim'. Jim comes up with thematic, non-legacy lists that we haven't yet seen from the international tournament scene, or at least are not as prominent as we feel they could be. Last time we looked at a badass, Dragon-Riding 'A(e)lfa Strike' list. You can Tronhammer NZ December 14, 2016 15


text:
Author: William H Rogers
Date: 19:48:05 06/19/01
Go up one level in this thread
On June 19, 2001 at 19:15:14, pete stein wrote: >I think I missed something in the last months. >There seem to be programs that are worth trying out. >Which of these programs are currently available for download and where ? > >Pete > >PS Deep Blue is a program which name coincides with IBM's legendary computer , I >presume ? Hi Pete The Warlord is my program and I just released a beta version to two people for testing. I don't think that it is ready for a final realease quite yet. It was written in Basic and then compiled. I think that it should be only about 1800 elo or something like that. Hopefully, it will pass some tests and get some good reviews? Bill
This page took 0.04 seconds to execute
Last modified: Thu, 07 Jul 11 08:48:38 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.


text:
Dynamark has partnered with a premier financial institution in the alarm industry to offer an account based loan program to develop a hybrid creation cost solution. While the loan program itself will not provide sufficient multiples, the combination of both a loan program and the Dynamark funding program will deliver the needed overall creation cost multiple to achieve the dealer's vision:
• The Dynamark funding program will deliver a 30-39.5 average gross multiple, as well as revenue sharing on accounts, provided certain conditions are met. Additional multiples for volume thresholds.
• The loan program will deliver a 25-28 average gross multiple, as well as the return of the account and continued revenue, provided certain conditions are met. Additional multiples for volume thresholds.
• The hybrid gross multiple typically delivers between a 29-32X averaged multiple.
• The hybrid net multiple (after pass thru fees) delivers between a 25-28X averaged multiple.
• The loan program will be responsible to pay the monitoring and pass through fees, as well as the loan payments for the term of the loan, from the customer payments that are generated.
• Additional benefits to the Dynamark partner:
* Dynamark has already performed due diligence on the partner, providing additional assurance to both the partner and the financial loan company.
* Because Dynamark is monitoring the account, and will have the history of aging already provided to them by the loan program, it will be much easier for Dynamark to purchase the accounts should the dealer desire to sell part or their entire portfolio.
* Dynamark owns their own five diamond, UL listed, FM approved Central Station, so when the customer is purchased, nothing changes! The billing still comes from us and the monitoring is of the same high quality. The customer stays a happy customer.
This message is only visible to admins.
Problem displaying Facebook posts. Backup cache in use.
Click to show error
3 months ago
Merry Christmas and Happy Holidays from Dynamark!
The offices of Dynamark will be closed 12/24 and 12/25. We will reopen on 12/26.
We hope you enjoy a fun and safe holiday with your loved ones! ... See MoreSee Less
12/16/19: A condominium complex in Fairfax, VA was saved from destruction thanks to the quick response of our Dynamark operators! ... See MoreSee Less
12/15/19: A business in Clear Spring, MD was saved thanks to the lightning fast response of our Dynamark operators! ... See MoreSee Less
12/4/2019: A restaurant in Indianapolis, IN was saved thanks to our Dynamark operators! ... See MoreSee Less
12/2/19: An apartment building in West Palm Beach, FL was saved from a fire thanks to the quick response of our Dynamark operators! 🔥 ... See MoreSee Less


text:
Wearable technology
Five popular kids fitness trackers and smartwatches to consider this Cyber Monday
Thinking of buying your child a fitness tracker or smartwatch for Christmas in the Black Friday sales? At Which?, we've reviewed some of the most popular kids wearables, including models from Fitbit and Garmin, testing their key features in our lab, checking if they're secure from hackers - and asking kids what they thought.
Which? tests for security flaws in kids' smartwatches
Kids' wearables are designed to make exercise fun, and to give you peace of mind. But it pays to do your research before buying – or you could be putting your child at risk.
Best smartwatches for iPhone users (that aren't an Apple Watch)
Got an iPhone but don't want an Apple Watch? The Fossil Gen 5 could make it a lot easier to use a Wear OS watch with iOS. The necessary update isn't due for a while, though - Which? explores the options open to you in the meantime.
Fitbits on test: Versa vs Versa Lite vs Inspire HR
Which? compares the Fitbit Versa (£158), Fitbit Versa Lite (£135) and Fitbit Inspire HR (£90). Discover how their specs match up and whether you'll miss out by buying one of the cheaper models compared to the standard Versa
What to expect from the Apple Watch 5
There are plenty of rumours circulating about the launch of an Apple Watch Series 5 in September. Nothing has been confirmed - but here's what we've heard so far, and the features and specs we'd welcome from the next generation Apple Watch - including longer battery life, more detailed sports tracking and an always-on display.
Best smartwatches and fitness trackers for outdoor sports this summer
The weather's getting sunnier and warmer, and if that means you'll be taking your workout to the park, you need a wearable that copes well with outdoor conditions. Discover the features to look out for and the models worth considering.
Bellabeat and Oura 'smart jewellery' reviewed
Considering buying a piece of smart jewellery? Which? gets hands on with the Oura ring and Bellabeat Leaf trackers to see what features they offer and whether they're worth your money.
Marathon training? We reveal the least accurate fitness trackers from popular brands
With the London Marathon 2019 around the corner, we've laced up our trainers and put more than 100 activity trackers and smartwatches to the test. The least accurate based on...
On test: smartwatches and fitness trackers from Mobvoi, Polar and Withings
Wearables from Mobvoi, Polar and Withings have returned from our lab, with one of the new arrivals earning the title of Which? Best Buy.
Advanced fitness trackers and watches for running, swimming and exploring
We've rounded up the latest wearables that are packed with sensors and technology for running, swimming and exploring the great outdoors, including high-end, expensive specialist models and cheaper models for those on a tighter budget