MyNixOS website logo
Description

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].

Metadata

Version

0.1.1.0

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows