Code readers - QR-code, barcode and PDF417

Introduction
Code types
2D / matrix barcodes
1D / linear barcodes


Introduction

MachineSense offers a Web-Assembly (WASM) component with a set of APIs that can be used to read QR-codes, barcodes and PDF417 codes.

This sub-system is usually used to create powerful mobile (web)apps that can read codes from live camera feed. Such applications include inventory management, parcel delivery, ticketing, etc.

MachineSense WASM component will read all of the below mentioned types of codes. Because it is browser-embeddable, it is highly portable and can be used both in desktop- and mobile implementations.
The fact that it's written in C++ and compiled to WASM makes it very fast and efficient, and it can be used in real-time applications, such as live camera feed. It performs many internal transformations per second, ensuring quick and reliable data reading.

Code types

All barcodes fall under two basic cathegories: 1D (linear) and 2D (matrix) type of codes. MachineSense WASM component will read all common / standard types of codes, in both categories.

1D barcodes (linear barcodes) represent the data (alphanumeric) by use of various spacing and widths of parallel lines. Most traditional and best recognized barcode types are UPC and EAN codes, which are used in retail industry, to identify products.

2D barcodes (matrix barcodes) encode the data on both axes, vertically and horizontally. They are more complex than 1D barcodes, and can store more data. Most common 2D barcodes are QR-codes and PDF417 codes. They are newer than 1D barcodes, and are used in many industries, from retail to logistics, to healthcare, to travel, etc. However, those are also very-well known and recognized by general public, and are used in many mobile apps, for example, to store contact information, to store links to websites, etc.

Here are some of the most recognizable barcode types that MachineSense WASM component can read:

2D / matrix barcodes:

QR (Quick Response) codes are mostly used as marketing tools to link to web-based information, but can contain quite complex data-structures, including multi-layered contact information, additional information, and even images.
MachineSense facilitates even encrypted QR-codes, which are used in many industries, such as banking, healthcare, etc.
Most basic example of a QR-code:
QR-code

PDF417 code can be found in many types of identification documents such as boarding passes, driver's licenses, and even personal ID-cards in some countries.
However, it's use is not limited to identification, and is quite wide, providing all types of information, from contact information, to product information, etc.
Most basic example of a PDF417 code:
PDF417-code

Data matrix code is one of the most popular 2D code-types. It is square and can encode quite large amounts of information, in small space. It is quite popular in electronics and health-care, for example.
Data matrix codes require advanced scanners (differing from hardware-scanners for 1D codes), usually implemented as mobile-phone apps, and MachineSense WASM component is ideal for such implementations. Because of data-complexity, internal processing/extraction is needed and for such use, nowadays, our customers prefer mobile apps, with precision of good mobile cameras, and MachineSense WASM component is ideal for such implementations.
Most basic example of a Data matrix code:
Data matrix code

1D / linear barcodes

As mentioned - 1D barcodes are representing linear strings of characters (alphanumeric), designated to represent all types of information. Typically it is used because it speeds up the process or registering a step in life of a product or service because it allows for automation in such process, by using barcode scanners. There are many physical (hardware-based) barcode scanners available on the market, but MachineSense WASM component is ideal for mobile apps.

You would want to consider using a mobile barcode scanner app becaue it's widely available with your employees, because it's always there, and especially because it can perform some additional (or even necessary) processing and pre-processing. Handheld hardware scanners send information as-is to your servers, while mobile apps can preprocess and format the data in a much more convenient and efficient way, before sending it to your servers.

Here are the examples of 1D/linear barcode types:

EAN
EAN code
UPC
UPC code
code39
Code39
code128
Code128
ITF
Interleaved 2 of 5