NAME
Device::Conrad::RelaisControl - Perl extension for accessing a Conrad Electronic Relaiscard
SYNOPSIS
use Device::Conrad::RelaisControl;
Constructor
$control = new Device::Conrad::RelaisControl("/dev/ttyS0");
Initialization
$control->init;
Portswitching
$control->close(0,1);
$control->open(0,1);
$cardNum = $control->getNumCards();
$card = $control->getCard(0);
$card->ports(255);
$card->close(1);
$card->open(1);
DESCRIPTION
This module provides an abstraction layer for accessing a Conrad Electronic Relaiscard. It acts as a container for several cards (the cards are cascadeable) and controls the communication over the serial port.
Creation
At time of creation of the RelaisControl Object the serial port is initialized. It is the only operation which works without having a card attached to the serial port.
Initialization
The init method communicates with the card(s) in order to figure out out how many cards are attached and what their status is. For every responding card a card object is assigned and is being put on the container list.
Opening and closing ports
As this module is the container for any of the cards you can either switch port via absolute addressing or get a card object from the container and switch via this object.
$control->close(0,1);
will switch port 1 on card 0. The other approach is to get a card instance and operate on this
$card = $control->getCard(0);
$card->close(1);
will get the same result as the command above.
Caution! The close() method activates the port (it closes the relais circuit). While it tend to be confusing I decided to name it this way round. General usage will look like: close(port); wait some time; open(port)
card methods
Only the RelaisCard's close() and open() methods are direct accesible through this module. Instead of delegating every card method i suggest working with the card objects if you need specific functionality.
EXPORT
None by default.
AUTHOR
Norbert Hartl, <noha@cpan.org>
SEE ALSO
Device::Conrad::RelaisCard, Device::Conrad::Frame