123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // Encoding documentation
- // https://en.wikipedia.org/wiki/MSI_Barcode#Character_set_and_binary_lookup
- import Barcode from "../Barcode.js";
- class MSI extends Barcode{
- constructor(data, options){
- super(data, options);
- }
- encode(){
- // Start bits
- var ret = "110";
- for(var i = 0; i < this.data.length; i++){
- // Convert the character to binary (always 4 binary digits)
- var digit = parseInt(this.data[i]);
- var bin = digit.toString(2);
- bin = addZeroes(bin, 4 - bin.length);
- // Add 100 for every zero and 110 for every 1
- for(var b = 0; b < bin.length; b++){
- ret += bin[b] == "0" ? "100" : "110";
- }
- }
- // End bits
- ret += "1001";
- return {
- data: ret,
- text: this.text
- };
- }
- valid(){
- return this.data.search(/^[0-9]+$/) !== -1;
- }
- }
- function addZeroes(number, n){
- for(var i = 0; i < n; i++){
- number = "0" + number;
- }
- return number;
- }
- export default MSI;
|