Difference between revisions of "Install central"
m (→Install xPL central device) |
(→Launch the xPL central device at startup) |
||
Line 55: | Line 55: | ||
= Launch the xPL central device at startup = | = Launch the xPL central device at startup = | ||
− | The xPL | + | The xPL central device is to be launched after the xPL hub. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== Ubuntu == | == Ubuntu == | ||
− | On Ubuntu, the xPL | + | On Ubuntu, the xPL central device starts-up once <code>xpl-hub_started</code> has been emitted. |
− | + | ||
− | Edit <code>/etc/init/xpl- | + | Edit <code>/etc/init/xpl-central.conf</code>: |
################################################################################ | ################################################################################ | ||
− | # xPL | + | # xPL central message parser |
# | # | ||
− | description "xPL | + | description "xPL central message parser" |
version "1.0" | version "1.0" | ||
author "Francois Corthay" | author "Francois Corthay" | ||
Line 80: | Line 73: | ||
# | # | ||
env SCRIPTS_DIR='/home/control/Documents/Controls' | env SCRIPTS_DIR='/home/control/Documents/Controls' | ||
− | env SCRIPT_NAME='xpl- | + | env SCRIPT_NAME='xpl-central.pl' |
− | env PARAMETERS='-n | + | env PARAMETERS='-n home' |
#------------------------------------------------------------------------------- | #------------------------------------------------------------------------------- | ||
Line 90: | Line 83: | ||
respawn | respawn | ||
setuid control | setuid control | ||
− | setgid | + | setgid users |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
#------------------------------------------------------------------------------- | #------------------------------------------------------------------------------- | ||
Line 106: | Line 92: | ||
Start the device and test it: | Start the device and test it: | ||
su root | su root | ||
− | service xpl- | + | service xpl-central start |
− | service xpl- | + | service xpl-central status |
SCRIPTS_BASE_DIR=/home/control/Documents/Controls | SCRIPTS_BASE_DIR=/home/control/Documents/Controls | ||
Line 116: | Line 102: | ||
== Mac OS == | == Mac OS == | ||
− | On Mac OS, the xPL | + | On Mac OS, the xPL central device starts-up later than the hub. |
− | Edit <code>/Library/LaunchDaemons/xpl- | + | Edit <code>/Library/LaunchDaemons/xpl-central.plist</code>: |
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
Line 124: | Line 110: | ||
<dict> | <dict> | ||
<key>Label</key> | <key>Label</key> | ||
− | <string>xPL | + | <string>xPL central message parser</string> |
<key>OnDemand</key> | <key>OnDemand</key> | ||
<false/> | <false/> | ||
Line 131: | Line 117: | ||
<key>ProgramArguments</key> | <key>ProgramArguments</key> | ||
<array> | <array> | ||
− | <string>/Users/control/Documents/Controls/xpl- | + | <string>/Users/control/Documents/Controls/xpl-central.pl</string> |
<string>-n</string> | <string>-n</string> | ||
− | <string> | + | <string>lounge</string> |
<string>-w</string> | <string>-w</string> | ||
<string>25</string> | <string>25</string> | ||
− | <string>- | + | <string>-a</string> |
− | <string> | + | <string>/Users/control/Documents/Controls/centralActions.xml</string> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</array> | </array> | ||
</dict> | </dict> | ||
Line 155: | Line 130: | ||
Start the device and test it: | Start the device and test it: | ||
su root | su root | ||
− | launchctl load /Library/LaunchDaemons/xpl- | + | launchctl load /Library/LaunchDaemons/xpl-central.plist |
SCRIPTS_BASE_DIR=/Users/control/Documents/Controls | SCRIPTS_BASE_DIR=/Users/control/Documents/Controls |
Revision as of 18:24, 30 March 2014
The central xPL device can be compared to a central station. It monitors all xPL messages and can trigger other messages based on a set of rules stored in an XML file.
Before all,make sure you have installed an xPL hub.
Contents
Install xPL central device
Install XML::Simple
:
su perl -MFile::Find=find -MFile::Spec::Functions -Tlw -e 'find { wanted => sub { print canonpath $_ if /\.pm\z/ }, no_chdir => 1 }, @INC' 2> /dev/null | grep -i XML perl -MCPAN -e "install 'XML::Simple'" exit
If XML::SAX::Expat
doesn't install properly and blocks the installation of XML::Simple
, try:
su apt-get install libxml-sax-expat-incremental-perl ln -s /usr/share/perl5/XML/SAX/ParserDetails.ini /usr/local/share/perl/5.14.2/XML/SAX/ParserDetails.ini perl -MCPAN -e "install 'XML::Simple'" exit
Download the xPL central device script.
Move the script to xPL scripts directory:
SCRIPTS_BASE_DIR=/home/control/Documents/Controls mv xpl-central.pl $SCRIPTS_BASE_DIR chown control:users $SCRIPTS_BASE_DIR/*.pl chmod 775 $SCRIPTS_BASE_DIR/*.pl
Test xPL central device
Test it on a BeagleBone:
su control SCRIPTS_BASE_DIR=/home/control/Documents/Controls $SCRIPTS_BASE_DIR/xpl-central.pl -h $SCRIPTS_BASE_DIR/xpl-central.pl -v -n test
Open a 2nd terminal window (on any machine with xPL installed) and monitor the xPL protocol:
SCRIPTS_BASE_DIR=/home/control/Documents/Controls $SCRIPTS_BASE_DIR/xpl-monitor.pl -vf
The monitor should echo the serial port incoming messages.
Open another terminal and send a message to the serial port:
su control SCRIPTS_BASE_DIR=/home/control/Documents/Controls $SCRIPTS_BASE_DIR/xpl-send.pl -v -t cmnd -d dspc-serPort.test -c serPort.basic command='hello world'
Launch the xPL central device at startup
The xPL central device is to be launched after the xPL hub.
Ubuntu
On Ubuntu, the xPL central device starts-up once xpl-hub_started
has been emitted.
Edit /etc/init/xpl-central.conf
:
################################################################################ # xPL central message parser # description "xPL central message parser" version "1.0" author "Francois Corthay" #------------------------------------------------------------------------------- # Configuration variables # env SCRIPTS_DIR='/home/control/Documents/Controls' env SCRIPT_NAME='xpl-central.pl' env PARAMETERS='-n home' #------------------------------------------------------------------------------- # Start and stop conditions # start on xpl-hub_started stop on shutdown respawn setuid control setgid users #------------------------------------------------------------------------------- # Start daemon # exec $SCRIPTS_DIR/$SCRIPT_NAME $PARAMETERS
Start the device and test it:
su root service xpl-central start service xpl-central status SCRIPTS_BASE_DIR=/home/control/Documents/Controls $SCRIPTS_BASE_DIR/xpl-send.pl -v -t cmnd -d dspc-serPort.eib -c serPort.basic command='gci' $SCRIPTS_BASE_DIR/xpl-send.pl -v -t cmnd -d dspc-serPort.eib -c serPort.basic command='dts \$15' $SCRIPTS_BASE_DIR/xpl-send.pl -v -t cmnd -d dspc-serPort.eib -c serPort.basic command='tds (1/1/1) 1'
Mac OS
On Mac OS, the xPL central device starts-up later than the hub.
Edit /Library/LaunchDaemons/xpl-central.plist
:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>xPL central message parser</string> <key>OnDemand</key> <false/> <key>UserName</key> <string>control</string> <key>ProgramArguments</key> <array> <string>/Users/control/Documents/Controls/xpl-central.pl</string> <string>-n</string> <string>lounge</string> <string>-w</string> <string>25</string> <string>-a</string> <string>/Users/control/Documents/Controls/centralActions.xml</string> </array> </dict> </plist>
Start the device and test it:
su root launchctl load /Library/LaunchDaemons/xpl-central.plist SCRIPTS_BASE_DIR=/Users/control/Documents/Controls $SCRIPTS_BASE_DIR/xpl-send.pl -v -t cmnd -d dspc-serPort.eib -c serPort.basic command='gci' $SCRIPTS_BASE_DIR/xpl-send.pl -v -t cmnd -d dspc-serPort.eib -c serPort.basic command='dts \$15' $SCRIPTS_BASE_DIR/xpl-send.pl -v -t cmnd -d dspc-serPort.eib -c serPort.basic command='tds (1/1/1) 1'