From: Dobrica Pavlinusic Date: Fri, 17 Jun 2016 14:53:05 +0000 (+0200) Subject: rewrite to enable usage as module X-Git-Url: http://git.rot13.org/?p=x300-pci;a=commitdiff_plain;h=9b45526967cc5df60def49b87648d012053e5c71 rewrite to enable usage as module --- diff --git a/gpio.pl b/gpio.pl index ed000c9..a701ce9 100755 --- a/gpio.pl +++ b/gpio.pl @@ -2,16 +2,18 @@ use warnings; use strict; +package gpio; + use Data::Dump qw(dump); my @last; +my $mode; -while(1) { +sub pins { my @pcf = `gpio -x pcf8591:120:0x48 readall`; my @gpio = `gpio -g readall`; my $i = 0; -my $mode; foreach (@gpio) { chomp; @@ -52,6 +54,8 @@ foreach (@gpio) { #warn "# mode = ", dump($mode); +} #/gpio + sub pin2dir { my $pin = shift; my ($p) = grep { /$pin/ } keys %$mode; @@ -60,20 +64,28 @@ warn dump($p); warn "# pin2dir $pin = $dir\n"; return $dir; } - -my $cmd = ; -chomp $cmd; -if ( $cmd =~ m/^(\d+)$/ ) { - my $pin = $1; - system "gpio -g mode $pin out" unless pin2dir($pin) =~ m/OUT/i; - - my $v = `gpio -g read $pin`; - warn "# pin $pin ", $v; - $v ^= 1; - system "gpio -g write $pin $v"; +sub cmd { + my $cmd = shift; + chomp $cmd; + if ( $cmd =~ m/^(\d+)$/ ) { + my $pin = $1; + system "gpio -g mode $pin out" unless pin2dir($pin) =~ m/OUT/i; + + my $v = `gpio -g read $pin`; + warn "# pin $pin ", $v; + $v ^= 1; + system "gpio -g write $pin $v"; + } } +package main; + +return 1 if caller; # used as module -} #/while +while(1) { + gpio::pins(); + my $cmd = ; + gpio::cmd($cmd); +}