| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | <?php
/**
 * Created by PhpStorm.
 * User: robin
 * Date: 11/24/15
 * Time: 12:49 AM
 */
namespace App\Http\Business\Sensors;
use App\Http\DBO\SensorsValueDbo;
class PiFaceSensor extends AbstractSensor
{
    /**
     * @return SensorsValueDbo
     */
    public function getValue()
    {
        $data = $this->_sensor->getData();
        $device = intval(isset($data['Device']) ? $data['Device'] : 0);
        $pin = intval(isset($data['Pin']) ? $data['Pin'] : 0);
        $trueValue = intval(isset($data['True']) ? $data['True'] : 0);
        $falseValue = intval(isset($data['False']) ? $data['False'] : 0);
        $args = [
            'camotion-piface',
            escapeshellarg('--device=' . $device),
            escapeshellarg('--read=' . $pin)
        ];
        $cli = implode(' ', $args) . ' | grep Pin | grep -Eo "[01]$"';
        $code = 0;
        $output = [];
        exec($cli, $output, $code);
        if ($code != 0) {
            abort(500, "PiFace failed with code " . $code);
        }
        $value = new SensorsValueDbo();
        $value->setValue($output);
        return $value;
    }
}
 |