Python driver for Microscan barcode scanners
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/microscan
tests
.gitignore
.travis.yml
LICENSE
MANIFEST.IN
README.md
requirements.txt
setup.py

README.md

microscan-driver

Build Status PyPI version

Python driver for Microscan barcode readers

The author of this software is not affiliated with Microscan Systems Inc.

"Microscan" and "MS3" are trademarks of Microscan Systems Inc. and are used in this software and its accompanying documentation to the benefit of the trademark owner, with no intention of infringement.

How to install

Clone this git repository or download the repository as a zip package and extract. Then, from the root folder of the repository, run

$ python setup.py install

Depending on your setup and environment, you might want to consider doing so inside a virtualenv.

This package only has a single requirement (which is automatically installed when running the above command): The pyserial library provides access to the serial port and is implemented in pure Python. In other words: This driver does not use any C extensions and should work in many Python implementations.

How to run unit tests

From the root folder of the repo, run:

$ python -m unittest

No additional dependencies are required.

Supported devices

Currently, this library aims to implement all features documented in the MS3device user manual (with exceptions listed below).

Not (yet) supported features

Specific Settings

The configuration settings listed below are not currently implemented in this library:

  • For the Host Port Protocol setting, the values "Multidrop", "User Defined", and "User Defined Multidrop"
  • Matchcode (all functionality described in chapter 7 of the user manual)
  • Configuration settings for the Codabar, Interleaved2Of5, and Pharmacode symbologies

A workaround for applications that require these features, is to send the corresponding configuration strings directly using the MicroscanDriver.write() method, for example, to only output symbol data on match, but as soon as data is available:

driver = MicroscanDriver('COM3')
driver.write(b'<K705,1,0>')
driver.close()

General Functionality

No sanity checking is performed on the combinations of settings in a configuration. Only individual settings and their subsettings are (to limited degree) validated against the specification.