Last active
April 13, 2016 03:07
Star
You must be signed in to star a gist
GPIO class for the Omega by Onion using php.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @Author: Chris McCaslin | |
* @Date: 4/8/2016 | |
* @Orignal-Php Idealist: https://github.com/ringmaster/GPIOHelperPHP/ (Good idea, But I don't like reinventing the wheel why recode fast-gpio with php?) | |
* @Update: 4/12/2016 Added SetFlow, and GetDirection still need to write documentation on these methods. | |
*/ | |
class OmegaPHP | |
{ | |
const HIGH = 1, LOW = 0; | |
/** | |
* @MethodName: SetPin | |
* @Arg $pin The pin to be 'set' | |
* @Arg $value The value you want the pin to be set to ie. 1,0,HIGH,LOW | |
*/ | |
public function SetPin($pin, $value) | |
{ | |
if(strcasecmp($value,"HIGH") == 0) | |
{ | |
$value = self::HIGH; | |
}elseif (strcasecmp($value,"LOW") == 0) //I wanted the HIGH, LOW constant I have with Arduino. | |
{ | |
$value = self::LOW; | |
} | |
exec("fast-gpio set $pin $value 2>&1", $output); | |
return explode(': ',$output[0])[1]; | |
} | |
/** | |
* @MethodName: ReadPin | |
* @Arg $pin The pin to be 'read' | |
*/ | |
public function ReadPin($pin) | |
{ | |
exec("fast-gpio read $pin 2>&1", $output); | |
return explode(': ',$output[0])[1]; | |
} | |
/** | |
* @MethodName: SetPWM | |
* @Arg $pin The pin to be 'set' | |
* @Arg $hZ The value you want for frequency set in hertz. | |
* @Arg $dutyCyclePercent The Duty Cycle Percent | |
*/ | |
public function SetPWM($pin, $hZ, $dutyCyclePercent) | |
{ | |
exec("fast-gpio pwm $pin $hZ $dutyCyclePercent 2>&1", $output); | |
return explode(': ',$output[0])[1]; | |
} | |
//TODO: Document function | |
public function SetFlow($pin,$direction) | |
{ | |
$ins = array("IN","INPUT"); | |
$outs = array("OUT","OUTPUT"); | |
foreach ($ins as $o) // IN | |
{ | |
if(strcasecmp($direction,$o) == 0) | |
{ | |
exec("fast-gpio set-input $pin 2>&1", $output); | |
return explode(': ',$output[0])[1]; | |
} | |
} | |
foreach ($outs as $o) // OUT | |
{ | |
if(strcasecmp($direction,$o) == 0) | |
{ | |
exec("fast-gpio set-outout $pin 2>&1", $output); | |
return explode(': ',$output[0])[1]; | |
} | |
} | |
return "0x0"; | |
} | |
//TODO: Document function | |
public function GetDirection($pin) | |
{ | |
exec("fast-gpio get-direction $pin 2>&1", $output); | |
return explode(': ',$output[0])[1]; | |
} | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment