NAME
Device::RFXCOM::RX - Module to support RFXCOM RF receiver
VERSION
version 1.142010
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.