Cleanup and bugfixes

Former-commit-id: 8622ff7fb963eb7c52e816f1c779e9e9869ece53
This commit is contained in:
brindosch 2016-03-11 19:06:26 +01:00
parent d97d31fe3d
commit 385d5a896d
12 changed files with 32 additions and 163 deletions

View File

@ -16,7 +16,7 @@ export NATIVE_BUILD_DIR="$HYPERION_DIR/build"
export TARGET_BUILD_DIR=HYPERION_DIR="$HYPERION_DIR/build-rpi"
# install required packages
sudo apt-get install git rsync cmake build-essential libQt4-dev libusb-1.0-0-dev python-dev
sudo apt-get install git rsync cmake build-essential libQt4-dev libusb-1.0-0-dev python-dev libxrender-dev
sudo apt-get install git rsync cmake ia32-libs protobuf-compiler
# On newer version of Ubuntu (and maybe other distros) the ia32-libs is not available, the following

8
ISSUE_TEMPLATE Normal file
View File

@ -0,0 +1,8 @@
**Please provide some information that we could help as fast as possible.
Please check the wiki in case your problem is already known/feature requested.**
**1.** Used hardware and sofware (Wetek,RPi1,Rpi2,... Ubuntu 14.04(64bit),OSX,OpenELEC,OSMC,XBian,...)
**2.** Your LED device and additional hardware (if used) (WS2801,APA102,WS2812B,... connected through (direct,arduino uno,...))
**3.** Please upload your Hyperion log to pastebin.com and insert the link. Have a look at the wiki how you get one.
**4.** Please upload your "Hyperion Configuration File" to www.jsoneditoronline.org and insert the link.

4
PULL_REQUEST_TEMPLATE Normal file
View File

@ -0,0 +1,4 @@
**1.** Tell us something about your changes.
**2.** If this changes affect the .conf file. Please provide the changed section
**3.** Reference a issue (optional)

View File

@ -8,10 +8,4 @@ stop on (runlevel [!2345])
respawn
pre-start script
#comment out the following 2 lines for x32/64
modprobe spidev
/usr/bin/gpio2spi
end script
exec /usr/bin/hyperiond /etc/hyperion.config.json

View File

@ -1,13 +1,19 @@
// Automatically generated configuration file for 'Hyperion daemon'
// Generated by: HyperCon (The Hyperion deamon configuration file builder
// Generated by: HyperCon (The Hyperion deamon configuration file builder)
// Created with HyperCon V1.00.0 (11.03.2016)
{
/// Device configuration contains the following fields:
/// * 'name' : The user friendly name of the device (only used for display purposes)
/// * 'type' : The type of the device or leds (known types for now are
/// APA102, Adalight, AmbiLed, Atmo, Hyperion-USBASP-WS2801, Hyperion-USBASP-WS2812, Lightberry, Lightpack, LPD6803, LPD8806, Multi-Lightpack, P9813, Paintpack, PhilipsHUE, PiBlaster, SEDU, Test, ThinkerForge, TPM2, WS2801, WS2812b, None)
/// APA102, Adalight, AdalightAPA102, AmbiLed, Atmo, Hyperion-USBASP-WS2801, Hyperion-USBASP-WS2812, Lightberry, Lightpack, LPD6803, LPD8806, Multi-Lightpack, P9813, Paintpack, PhilipsHUE, PiBlaster, SEDU, Test, ThinkerForge, TPM2, WS2801, WS2812b, None)
/// * [device type specific configuration]
/// * 'colorOrder' : The order of the color bytes ('rgb', 'rbg', 'bgr', etc.).
///
/// * 'Specific of Philips Hue:
/// * 'username' : The name of user registred on the Philips Hue Bridge
/// * 'switchOffOnBlack': Define if Hue light switch off when black is detected
/// * 'transitiontime' : Set the time of transition between color of Hue light
"device" :
{
"name" : "MyPi",
@ -108,7 +114,7 @@
/// * color : Set static color after boot -> set effect to "" (empty) and input the values [R,G,B] and set duration_ms NOT to 0 (use 1) instead
/// * effect : The effect selected as 'boot sequence'
/// * duration_ms : The duration of the selected effect (0=endless)
/// * priority : The priority of the selected effect/static color (default=0)
/// * priority : The priority of the selected effect/static color (default=990) HINT: lower value result in HIGHER priority!
"effects" :
{
"paths" :
@ -141,11 +147,14 @@
/// * width : The width of the grabbed frames [pixels]
/// * height : The height of the grabbed frames [pixels]
/// * frequency_Hz : The frequency of the frame grab [Hz]
/// * priority : The priority of the frame-gabber (Default=900) HINT: lower value result in HIGHER priority!
/// * ATTENTION : Power-of-Two resolution is not supported and leads to unexpected behaviour!
"framegrabber" :
{
"width" : 80,
"height" : 45,
"frequency_Hz" : 10.0
"frequency_Hz" : 10.0,
"priority" : 900
},
/// The configuration of the Kodi connection used to enable and disable the frame-grabber. Contains the following fields:
@ -184,10 +193,12 @@
},
/// The configuration of the boblight server which enables the boblight remote interface
/// * port : Port at which the boblight server is started
/// * port : Port at which the boblight server is started
/// * priority: Priority of the boblight server (Default=900) HINT: lower value result in HIGHER priority!
// "boblightServer" :
// {
// "port" : 19333
// "port" : 19333,
// "priority" : 900
// },
/// Configuration for the embedded V4L2 grabber

View File

@ -1 +0,0 @@
0074a4390b1d8d0c87488a3e7a13ec372786d140

View File

@ -1,17 +0,0 @@
## Hyperion daemon
description "hyperion"
author "poljvd & tvdzwan"
start on (runlevel [2345])
stop on (runlevel [!2345])
respawn
pre-start script
modprobe spidev
/usr/bin/gpio2spi
end script
exec /usr/bin/hyperiond /etc/hyperion.config.json

View File

@ -1,16 +0,0 @@
## Hyperion daemon
description "hyperion"
author "poljvd & tvdzwan"
start on (runlevel [2345])
stop on (runlevel [!2345])
respawn
pre-start script
modprobe spi-bcm2708
end script
exec /usr/bin/hyperiond /etc/hyperion.config.json

View File

@ -1,114 +0,0 @@
#!/bin/sh
# Script for downloading and installing the latest Hyperion release
# Make sure /sbin is on the path (for service to find sub scripts)
PATH="/sbin:$PATH"
# Find out if we are on OpenElec
OS_OPENELEC=`cat /etc/issue | grep -m 1 OpenELEC | wc -l`
# Find out if its an imx6 device
CPU_RPI=`cat /proc/cpuinfo | grep RPI | wc -l`
CPU_IMX6=`cat /proc/cpuinfo | grep i.MX6 | wc -l`
CPU_WETEK=`cat /proc/cpuinfo | grep Amlogic | wc -l`
CPU_X64=`uname -m | grep x86_64 | wc -l`
CPU_X32=`uname -m | grep x86_32 | wc -l`
# Check that we have a known configuration
if [[ $CPU_RPI -ne 1 && $CPU_IMX6 -ne 1 && $CPU_WETEK -ne 1 && $CPU_X64 -ne 1 && $CPU_X32 -ne 1 ]]; then
echo 'CPU information does not match any known releases'
exit
fi
# check which init script we should use
USE_INITCTL=`which /sbin/initctl | wc -l`
USE_SERVICE=`which /usr/sbin/service | wc -l`
# Make sure that the boblight daemon is no longer running
BOBLIGHT_PROCNR=$(pidof boblightd | wc -l)
if [ $BOBLIGHT_PROCNR -eq 1 ]; then
echo 'Found running instance of boblight. Please stop boblight via XBMC menu before installing hyperion'
exit
fi
# Stop hyperion daemon if it is running
# Start the hyperion daemon
if [ $USE_INITCTL -eq 1 ]; then
/sbin/initctl stop hyperion
elif [ $USE_SERVICE -eq 1 ]; then
/usr/sbin/service hyperion stop
fi
# Select the appropriate release
HYPERION_ADDRESS=https://raw.githubusercontent.com/tvdzwan/hyperion/master/deploy
if [ $CPU_RPI -eq 1 ]; then
HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_rpi.tar.gz
OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-rpi.tar.gz
elif [ $CPU_IMX6 -eq 1 ]; then
HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_imx6.tar.gz
OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-imx6.tar.gz
elif [ $CPU_WETEK -eq 1 ]; then
HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_wetek.tar.gz
OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-rpi.tar.gz
elif [ $CPU_X64 -eq 1 ]; then
HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_x64.tar.gz
OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-x64.tar.gz
elif [ $CPU_X32 -eq 1 ]; then
HYPERION_RELEASE=$HYPERION_ADDRESS/hyperion_x32.tar.gz
OE_DEPENDECIES=$HYPERION_ADDRESS/hyperion.deps.openelec-x32.tar.gz
else
echo "Target platform unknown"
exit
fi
# Get and extract the Hyperion binaries and effects
echo 'Downloading hyperion'
if [ $OS_OPENELEC -eq 1 ]; then
# OpenELEC has a readonly file system. Use alternative location
curl -L --get $HYPERION_RELEASE | tar -C /storage -xz
curl -L --get $OE_DEPENDECIES | tar -C /storage/hyperion/bin -xz
# modify the default config to have a correct effect path
sed -i 's:/opt:/storage:g' /storage/hyperion/config/hyperion.config.json
# /storage/.config is available as samba share. A symbolic link would not be working
false | cp -i /storage/hyperion/config/hyperion.config.json /storage/.config/hyperion.config.json 2>/dev/null
else
wget $HYPERION_RELEASE -O - | tar -C /opt -xz
# create links to the binaries
ln -fs /opt/hyperion/bin/hyperiond /usr/bin/hyperiond
ln -fs /opt/hyperion/bin/hyperion-remote /usr/bin/hyperion-remote
ln -fs /opt/hyperion/bin/hyperion-v4l2 /usr/bin/hyperion-v4l2
# Copy a link to the hyperion configuration file to /etc
ln -s /opt/hyperion/config/hyperion.config.json /etc/hyperion.config.json
fi
# Copy the service control configuration to /etc/int
if [ $USE_INITCTL -eq 1 ]; then
echo 'Installing initctl script'
wget -N https://raw.githubusercontent.com/tvdzwan/hyperion/master/deploy/hyperion.conf -P /etc/init/
initctl reload-configuration
elif [ $USE_SERVICE -eq 1 ]; then
echo 'Installing startup script in init.d'
# place startup script in init.d and add it to upstart
ln -fs /opt/hyperion/init.d/hyperion.init.sh /etc/init.d/hyperion
chmod +x /etc/init.d/hyperion
update-rc.d hyperion defaults 98 02
elif [ $OS_OPENELEC -eq 1 ]; then
# only add to start script if hyperion is not present yet
if [ `cat /storage/.config/autostart.sh 2>/dev/null | grep hyperiond | wc -l` -eq 0 ]; then
echo 'Adding Hyperion to autostart script'
echo "/storage/hyperion/bin/hyperiond.sh /storage/.config/hyperion.config.json > /dev/null 2>&1 &" >> /storage/.config/autostart.sh
chmod +x /storage/.config/autostart.sh
fi
fi
# Start the hyperion daemon
if [ $USE_INITCTL -eq 1 ]; then
/sbin/initctl start hyperion
elif [ $USE_SERVICE -eq 1 ]; then
/usr/sbin/service hyperion start
fi

View File

@ -175,7 +175,7 @@ LedDevice * LedDeviceFactory::construct(const Json::Value & deviceConfig)
device = deviceLightpack;
}
else if (type == "multi-lightpack")
else if (type == "multi-lightpack" || type == "multi_lightpack")
{
LedDeviceMultiLightpack* deviceLightpack = new LedDeviceMultiLightpack();
deviceLightpack->open();
@ -288,7 +288,7 @@ LedDevice * LedDeviceFactory::construct(const Json::Value & deviceConfig)
#endif
else
{
std::cout << "Unable to create device " << type << std::endl;
std::cout << "Error: Unknown/Unimplemented device " << type << std::endl;
// Unknown / Unimplemented device
}
return device;