diff options
Diffstat (limited to 'tkr-utils/tkr-chansel')
| -rwxr-xr-x | tkr-utils/tkr-chansel | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tkr-utils/tkr-chansel b/tkr-utils/tkr-chansel new file mode 100755 index 0000000..11adc9f --- /dev/null +++ b/tkr-utils/tkr-chansel @@ -0,0 +1,53 @@ +#!/usr/bin/perl + +use strict; +use Data::Dumper qw(Dumper); + +# See Kenwood TKR Manual Page 53 Table 20-3 +my %tkrchansel = ( + '1' => { '1' => '0', '2' => '1', '3' => '1', '4' => '1' }, + '2' => { '1' => '1', '2' => '0', '3' => '1', '4' => '1' }, + '3' => { '1' => '0', '2' => '0', '3' => '1', '4' => '1' }, + '4' => { '1' => '1', '2' => '1', '3' => '0', '4' => '1' }, + '5' => { '1' => '0', '2' => '1', '3' => '0', '4' => '1' }, + '6' => { '1' => '1', '2' => '0', '3' => '0', '4' => '1' }, + '7' => { '1' => '0', '2' => '0', '3' => '0', '4' => '1' }, + '8' => { '1' => '1', '2' => '1', '3' => '1', '4' => '0' }, + '9' => { '1' => '0', '2' => '1', '3' => '1', '4' => '0' }, + '10' => { '1' => '1', '2' => '0', '3' => '1', '4' => '0' }, + '11' => { '1' => '0', '2' => '0', '3' => '1', '4' => '0' }, + '12' => { '1' => '1', '2' => '1', '3' => '0', '4' => '0' }, + '13' => { '1' => '0', '2' => '1', '3' => '0', '4' => '0' }, + '14' => { '1' => '1', '2' => '0', '3' => '0', '4' => '0' }, + '15' => { '1' => '0', '2' => '0', '3' => '0', '4' => '0' }, + '16' => { '1' => '1', '2' => '1', '3' => '1', '4' => '1' }, +); + +my ($chan) = @ARGV; + +if( ! defined($chan) ){ + print STDERR "Usage: tkr-chansel CHANNUM\n"; + exit 1; +} + +if($chan =~ m/\D/ || $chan < 1 || $chan > 16){ + print STDERR "Usage: tkr-chansel CHANNUM\n"; + print STDERR "CHANNUM must be between 1 and 16\n"; + exit 1; +} + +for( my $i = 3; $i <= 6; $i++ ){ + `gpio mode $i output`; + `gpio write $i 0`; +} + +for( my $pin = 3; $pin <= 6; $pin++ ){ + my $cmd = sprintf( + "gpio write %i %i", + $pin, + $tkrchansel{$chan}{$pin - 2} + ); + system($cmd); +} + +exit 0; |
