[Haskell-cafe] [ANN] mercury-api- (for RFID readers)

Patrick Pelletier code at funwithsoftware.org
Mon Jun 5 23:25:29 UTC 2017


This package is a Haskell binding to the "Mercury API" C API for 
ThingMagic RFID readers.  It is especially geared toward the SparkFun 
Simultaneous RFID Reader board, which uses ThingMagic's M6e Nano module, 
but it should work with other ThingMagic readers. (Though currently, 
only support for serial readers is compiled in.) Most of the function 
and type names are the same as their counterparts in the C API, with the 
TMR_ prefix dropped.  For more in-depth, language-independent 
documentation of Mercury API, see Mercury API Programmers Guide, 
available from the "Manuals & Firmware" page, below.

This package includes a copy of the Mercury API C library, so no 
external libraries are necessary.  Several small bug fixes have been 
applied to the included version of the library.  (I have submitted these 
patches upstream, but I don't know if or when they will be included in 
the official version.)

The Haskell binding doesn't support background reads.  I recommend that 
you just spawn a new Haskell thread and do foreground reads instead.

Currently, only support for the serial reader is compiled in, but it 
probably wouldn't be too hard to enable LLRP support.  (I don't have any 
way to test LLRP, however, as the M6e Nano doesn't support it.)

On Mac OS X, be sure to use the serial device that starts with 
"/dev/cu.", not the serial device that starts with "/dev/tty.".

Only some parameters and some tagops are currently supported in the 
Haskell binding.  (There are a lot of them, and I only implemented the 
ones I needed.)  If you need support for additional parameters or 
tagops, please file an issue in GitHub and I will add them.

I have tested this package on Linux, Mac OS X, and Windows, using the 
SparkFun board.

Additional resources:

SparkFun Simultaneous RFID Reader: https://www.sparkfun.com/products/14066
ThingMagic Manuals & Firmware: 

More information about the Haskell-Cafe mailing list