Added exceptions to gpio class

This commit is contained in:
Chris 2014-06-12 01:21:08 +02:00
parent 64d338cf90
commit cdb8edd4e0
5 changed files with 26 additions and 4 deletions

3
composer.lock generated
View File

@ -1,7 +1,8 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "6ede4cbc5ab4ef05b58811c306b5376f",
"packages": [

View File

@ -23,7 +23,7 @@ $led = $gpio[0]
->setLabel("red led")
->dumpStatus(true);
$btn = $gpio[1]
$btn1 = $gpio[1]
->setDirection("input")
->setValue(0)
->setEdge("rising")
@ -31,7 +31,7 @@ $btn = $gpio[1]
->setLabel("button 1")
->dumpStatus(true);
$gpio[2]
$btn2 = $gpio[2]
->setDirection("input")
->setValue(0)
->setEdge("rising")

View File

@ -0,0 +1,9 @@
<?php
namespace NoccyLabs\Gpio\Exception;
use NoccyLabs\Gpio\GpioPin;
class HardwareException extends \Exception
{
}

View File

@ -19,6 +19,8 @@
namespace NoccyLabs\Gpio;
use NoccyLabs\Gpio\Exception\HardwareException;
class Gpio implements \ArrayAccess
{
protected $gpio = array();
@ -26,6 +28,16 @@ class Gpio implements \ArrayAccess
/** @var NoccyLabs\Gpio\GpioMapperInterface */
protected $mapper;
public function __construct()
{
if (!file_exists("/sys/gpio")) {
throw new HardwareException("gpio sysfs is not available");
}
if (!is_writable("/sys/gpio/export")) {
throw new HardwareException("gpio sysfs is not writable");
}
}
public function refresh()
{
$read = $this->fd_gpio;

View File

@ -137,7 +137,7 @@ class GpioPin
public function dumpStatus($ansi=false)
{
if ($ansi) {
$status = "\e[43;37;1m GPIO{$this->pin} \e[0m\n";
$status = "\e[44;37;1m GPIO{$this->pin} \e[0m\n";
$direction = "\e[36;1m".
($this->direction=="input"?(CS::chr(0x2190)):(CS::chr(0x2192))).
"\e[0m ".$this->direction;