#!/usr/bin/perl
use warnings;
use strict;
+use autodie;
package gpio;
my @last;
my $mode;
+my $bcm_desc;
+foreach my $pin_file ( glob 'pins/bcm-*.tsv' ) {
+ open(my $fh, '<', $pin_file);
+ while(<$fh>) {
+ chomp;
+ my ($pin,$desc) = split(/\t+/,$_,2);
+ $bcm_desc->{$pin} = $desc;
+ }
+ close($fh);
+ warn "# $pin_file ",dump($bcm_desc);
+}
+
sub pins {
my @pcf = `gpio -x pcf8591:120:0x48 readall`;
my @l = split(/\|/, $line);
my @o = split(/\|/, $last[$i] || '');
$last[$i] = $line;
- $i++;
if ( $#l >= 9 ) {
no warnings;
+
+ $l[2] = sprintf "%-" . length($l[2]) . 's', ($bcm_desc->{ $1 }||$l[2]) if $l[1] =~ m/(\d+)/;
+ $l[8] = sprintf "%" . length($l[8]) . 's', ($bcm_desc->{ $1 }||$l[8]) if $l[9] =~ m/(\d+)/;
+
$mode->{ $l[1] } = [ $l[4] + 0, $l[2], $l[3] ];
$mode->{ $l[9] } = [ $l[6] + 0, $l[8], $l[7] ];
$mode->{ $l[11] } = [ $l[12], $l[13] ] if $l[13];
- #warn "## l = ",dump(@l);
+ #warn "## l = ",dump(@l) if $i > 2 && $i < 5;
}
foreach my $i ( 0 .. $#l ) {
$l[$i] = "\e[33;7;1m$l[$i]\e[0m" if $l[$i] ne $o[$i];
}
- $line = join('|', @l) . "|";
}
+ $line = join('|', @l) . "|";
print "$line\n";
+ $i++;
}
#warn "# mode = ", dump($mode);