XBee ZNet 2.5 (ZigBee) wireless modem communications.
A protocol library enabling wireless communications via XBee/XBee-PRO (ZibBee) ZNet 2.5 RF modules.
The library performs binary encoding/decoding, on-the-wire framing, and error checking of control and data API
frames. In other words the library expects to communicate with an XBee modem that has AP parameter = 2, indicating API frames with HDLC-like escape characters. This mode provides for 8-bit transparent operation and is described in Section 6 of ftp://ftp1.digi.com/support/documentation/90000866_C.pdf.
The library code is 100% pure; nothing here depends on the IO monad and no particular modem device is assumed. The code depends on the cereal
package for serialization but is otherwise pretty standard. The test suite is based on QuickCheck
properties.
Overview
This is a Haskell protocol library enabling wireless communications via XBee/XBee-PRO (ZigBee) ZNet 2.5 RF modules.
The library performs binary encoding/decoding, on-the-wire framing, and error checking of control and data "API" frames. In other words the library expects to communicate with an XBee modem that has AP parameter = 2, indicating API frames with HDLC-like escape characters. This mode provides for 8-bit transparent operation and is described in Section 6 of the [XBee ZNet 2.5 Product Manual] (ftp://ftp1.digi.com/support/documentation/90000866_C.pdf).
The library code is 100% pure; nothing here depends on the IO monad and no particular modem device is assumed. The code depends on the cereal package for serialization but is otherwise pretty standard. The test suite is based on QuickCheck properties.
Getting Started
Install with cabal:
cabal install zigbee-znet25
Or clone the master git repository:
git clone git://github.com/djoyner/zigbee-znet25.git
A sample program is included. I've also used the library to communicate with an Arduino-based temperature and power-usage probe.
Author and Maintainer
David Joyner, [email protected].