NAME

Device::RFXCOM::RX - Module to support RFXCOM RF receiver

VERSION

version 1.163170

SYNOPSIS

# for a USB-based device
my $rx = Device::RFXCOM::RX->new(device => '/dev/ttyUSB0');

$|=1; # don't buffer output

# simple interface to read received data
my $timeout = 10; # 10 seconds
while (my $data = $rx->read($timeout)) {
  print $data->summary,"\n" unless ($data->duplicate);
}

# for a networked device
$rx = Device::RFXCOM::RX->new(device => '10.0.0.1:10001');

DESCRIPTION

Module to decode messages from an RFXCOM RF receiver.

IMPORTANT: This API is still subject to change.

METHODS

new(%parameters)

This constructor returns a new RFXCOM RF receiver object. The supported parameters are:

device

The name of the device to connect to. The value can be a tty device name or hostname:port for a TCP-based RFXCOM receiver.

The default is /dev/rfxcom-rx in anticipation of a scenario where a udev rule has been used to identify the USB tty device for the device. For example, a file might be created in /etc/udev/rules.d/91-rfxcom with a line like:

SUBSYSTEM=="tty", SYSFS{idProduct}=="6001", SYSFS{idVendor}=="0403", SYSFS{serial}=="AnnnnABC", NAME="rfxcom-rx"

where the serial number attribute is obtained from the output from:

udevinfo -a -p `udevinfo -q path -n /dev/ttyUSB0` | \
  sed -e'/ATTRS{serial}/!d;q'
init_callback

This parameter can be set to a callback to be called when the device initialization has been completed.

read($timeout)

This method blocks until a new message has been received by the device. When a message is received a data structure is returned that represents the data received.

IMPORTANT: This API is still subject to change.

read_one(\$buffer)

This method attempts to remove a single RF message from the buffer passed in via the scalar reference. When a message is removed a data structure is returned that represents the data received. If insufficient data is available then undef is returned. If a duplicate message is received then 0 is returned.

IMPORTANT: This API is still subject to change.

THANKS

Special thanks to RFXCOM, http://www.rfxcom.com/, for their excellent documentation and for giving me permission to use it to help me write this code. I own a number of their products and highly recommend them.

SEE ALSO

RFXCOM website: http://www.rfxcom.com/

AUTHOR

Mark Hindess <soft-cpan@temporalanomaly.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Mark Hindess.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.