|
@@ -96,84 +96,84 @@ if (basename($0) =~ /PROJECTOR/i) {
|
|
|
$CRLF = "\r";
|
|
$CRLF = "\r";
|
|
|
$DELIMITER = "\r";
|
|
$DELIMITER = "\r";
|
|
|
%CMDS = (
|
|
%CMDS = (
|
|
|
- 'INIT' => 'RSPW1 ',
|
|
|
|
|
- 'ON' => 'POWR1 ',
|
|
|
|
|
- 'OFF' => 'POWR0 ',
|
|
|
|
|
- 'STATUS' => 'POWR? ',
|
|
|
|
|
- 'MUTE' => 'MUTE1 ',
|
|
|
|
|
- 'UNMUTE' => 'MUTE2 ',
|
|
|
|
|
- 'INPUT' => 'IAVD? ',
|
|
|
|
|
- 'TV' => 'ITVD0 ',
|
|
|
|
|
- 'PLEX' => 'IAVD7 ',
|
|
|
|
|
- 'VOL' => 'VOLM? ',
|
|
|
|
|
- 'CH+' => 'CHUP1 ',
|
|
|
|
|
- 'CH-' => 'CHDW1 ',
|
|
|
|
|
- 'CC' => 'CLCP1 ',
|
|
|
|
|
- 'VOL0' => 'VOLM0 ',
|
|
|
|
|
- 'VOL1' => 'VOLM1 ',
|
|
|
|
|
- 'VOL2' => 'VOLM2 ',
|
|
|
|
|
- 'VOL3' => 'VOLM3 ',
|
|
|
|
|
- 'VOL4' => 'VOLM4 ',
|
|
|
|
|
- 'VOL5' => 'VOLM5 ',
|
|
|
|
|
- 'VOL6' => 'VOLM6 ',
|
|
|
|
|
- 'VOL7' => 'VOLM7 ',
|
|
|
|
|
- 'VOL8' => 'VOLM8 ',
|
|
|
|
|
- 'VOL9' => 'VOLM9 ',
|
|
|
|
|
- 'VOL10' => 'VOLM10 ',
|
|
|
|
|
- 'VOL11' => 'VOLM11 ',
|
|
|
|
|
- 'VOL12' => 'VOLM12 ',
|
|
|
|
|
- 'VOL13' => 'VOLM13 ',
|
|
|
|
|
- 'VOL14' => 'VOLM14 ',
|
|
|
|
|
- 'VOL15' => 'VOLM15 ',
|
|
|
|
|
- 'VOL16' => 'VOLM16 ',
|
|
|
|
|
- 'VOL17' => 'VOLM17 ',
|
|
|
|
|
- 'VOL18' => 'VOLM18 ',
|
|
|
|
|
- 'VOL19' => 'VOLM19 ',
|
|
|
|
|
- 'VOL20' => 'VOLM20 ',
|
|
|
|
|
- 'VOL21' => 'VOLM21 ',
|
|
|
|
|
- 'VOL22' => 'VOLM22 ',
|
|
|
|
|
- 'VOL23' => 'VOLM23 ',
|
|
|
|
|
- 'VOL24' => 'VOLM24 ',
|
|
|
|
|
- 'VOL25' => 'VOLM25 ',
|
|
|
|
|
- 'VOL26' => 'VOLM26 ',
|
|
|
|
|
- 'VOL27' => 'VOLM27 ',
|
|
|
|
|
- 'VOL28' => 'VOLM28 ',
|
|
|
|
|
- 'VOL29' => 'VOLM29 ',
|
|
|
|
|
- 'VOL30' => 'VOLM30 ',
|
|
|
|
|
- 'VOL31' => 'VOLM31 ',
|
|
|
|
|
- 'VOL32' => 'VOLM32 ',
|
|
|
|
|
- 'VOL33' => 'VOLM33 ',
|
|
|
|
|
- 'VOL34' => 'VOLM34 ',
|
|
|
|
|
- 'VOL35' => 'VOLM35 ',
|
|
|
|
|
- 'VOL36' => 'VOLM36 ',
|
|
|
|
|
- 'VOL37' => 'VOLM37 ',
|
|
|
|
|
- 'VOL38' => 'VOLM38 ',
|
|
|
|
|
- 'VOL39' => 'VOLM39 ',
|
|
|
|
|
- 'VOL40' => 'VOLM40 ',
|
|
|
|
|
- 'VOL41' => 'VOLM41 ',
|
|
|
|
|
- 'VOL42' => 'VOLM42 ',
|
|
|
|
|
- 'VOL43' => 'VOLM43 ',
|
|
|
|
|
- 'VOL44' => 'VOLM44 ',
|
|
|
|
|
- 'VOL45' => 'VOLM45 ',
|
|
|
|
|
- 'VOL46' => 'VOLM46 ',
|
|
|
|
|
- 'VOL47' => 'VOLM47 ',
|
|
|
|
|
- 'VOL48' => 'VOLM48 ',
|
|
|
|
|
- 'VOL49' => 'VOLM49 ',
|
|
|
|
|
- 'VOL50' => 'VOLM50 ',
|
|
|
|
|
- 'VOL51' => 'VOLM51 ',
|
|
|
|
|
- 'VOL52' => 'VOLM52 ',
|
|
|
|
|
- 'VOL53' => 'VOLM53 ',
|
|
|
|
|
- 'VOL54' => 'VOLM54 ',
|
|
|
|
|
- 'VOL55' => 'VOLM55 ',
|
|
|
|
|
- 'VOL56' => 'VOLM56 ',
|
|
|
|
|
- 'VOL57' => 'VOLM57 ',
|
|
|
|
|
- 'VOL58' => 'VOLM58 ',
|
|
|
|
|
- 'VOL59' => 'VOLM59 ',
|
|
|
|
|
- 'VOL60' => 'VOLM60 ',
|
|
|
|
|
|
|
+ 'INIT' => 'RSPW1 ',
|
|
|
|
|
+ 'ON' => 'POWR1 ',
|
|
|
|
|
+ 'OFF' => 'POWR0 ',
|
|
|
|
|
+ 'STATUS' => 'POWR? ',
|
|
|
|
|
+ 'MUTE' => 'MUTE1 ',
|
|
|
|
|
+ 'UNMUTE' => 'MUTE2 ',
|
|
|
|
|
+ 'INPUT' => 'IAVD? ',
|
|
|
|
|
+ 'TV' => 'ITVD0 ',
|
|
|
|
|
+ 'PLEX' => 'IAVD7 ',
|
|
|
|
|
+ 'VOL' => 'VOLM? ',
|
|
|
|
|
+ 'CH+' => 'CHUP1 ',
|
|
|
|
|
+ 'CH-' => 'CHDW1 ',
|
|
|
|
|
+ 'CC' => 'CLCP1 ',
|
|
|
|
|
+ 'VOL0' => 'VOLM0 ',
|
|
|
|
|
+ 'VOL1' => 'VOLM1 ',
|
|
|
|
|
+ 'VOL2' => 'VOLM2 ',
|
|
|
|
|
+ 'VOL3' => 'VOLM3 ',
|
|
|
|
|
+ 'VOL4' => 'VOLM4 ',
|
|
|
|
|
+ 'VOL5' => 'VOLM5 ',
|
|
|
|
|
+ 'VOL6' => 'VOLM6 ',
|
|
|
|
|
+ 'VOL7' => 'VOLM7 ',
|
|
|
|
|
+ 'VOL8' => 'VOLM8 ',
|
|
|
|
|
+ 'VOL9' => 'VOLM9 ',
|
|
|
|
|
+ 'VOL10' => 'VOLM10 ',
|
|
|
|
|
+ 'VOL11' => 'VOLM11 ',
|
|
|
|
|
+ 'VOL12' => 'VOLM12 ',
|
|
|
|
|
+ 'VOL13' => 'VOLM13 ',
|
|
|
|
|
+ 'VOL14' => 'VOLM14 ',
|
|
|
|
|
+ 'VOL15' => 'VOLM15 ',
|
|
|
|
|
+ 'VOL16' => 'VOLM16 ',
|
|
|
|
|
+ 'VOL17' => 'VOLM17 ',
|
|
|
|
|
+ 'VOL18' => 'VOLM18 ',
|
|
|
|
|
+ 'VOL19' => 'VOLM19 ',
|
|
|
|
|
+ 'VOL20' => 'VOLM20 ',
|
|
|
|
|
+ 'VOL21' => 'VOLM21 ',
|
|
|
|
|
+ 'VOL22' => 'VOLM22 ',
|
|
|
|
|
+ 'VOL23' => 'VOLM23 ',
|
|
|
|
|
+ 'VOL24' => 'VOLM24 ',
|
|
|
|
|
+ 'VOL25' => 'VOLM25 ',
|
|
|
|
|
+ 'VOL26' => 'VOLM26 ',
|
|
|
|
|
+ 'VOL27' => 'VOLM27 ',
|
|
|
|
|
+ 'VOL28' => 'VOLM28 ',
|
|
|
|
|
+ 'VOL29' => 'VOLM29 ',
|
|
|
|
|
+ 'VOL30' => 'VOLM30 ',
|
|
|
|
|
+ 'VOL31' => 'VOLM31 ',
|
|
|
|
|
+ 'VOL32' => 'VOLM32 ',
|
|
|
|
|
+ 'VOL33' => 'VOLM33 ',
|
|
|
|
|
+ 'VOL34' => 'VOLM34 ',
|
|
|
|
|
+ 'VOL35' => 'VOLM35 ',
|
|
|
|
|
+ 'VOL36' => 'VOLM36 ',
|
|
|
|
|
+ 'VOL37' => 'VOLM37 ',
|
|
|
|
|
+ 'VOL38' => 'VOLM38 ',
|
|
|
|
|
+ 'VOL39' => 'VOLM39 ',
|
|
|
|
|
+ 'VOL40' => 'VOLM40 ',
|
|
|
|
|
+ 'VOL41' => 'VOLM41 ',
|
|
|
|
|
+ 'VOL42' => 'VOLM42 ',
|
|
|
|
|
+ 'VOL43' => 'VOLM43 ',
|
|
|
|
|
+ 'VOL44' => 'VOLM44 ',
|
|
|
|
|
+ 'VOL45' => 'VOLM45 ',
|
|
|
|
|
+ 'VOL46' => 'VOLM46 ',
|
|
|
|
|
+ 'VOL47' => 'VOLM47 ',
|
|
|
|
|
+ 'VOL48' => 'VOLM48 ',
|
|
|
|
|
+ 'VOL49' => 'VOLM49 ',
|
|
|
|
|
+ 'VOL50' => 'VOLM50 ',
|
|
|
|
|
+ 'VOL51' => 'VOLM51 ',
|
|
|
|
|
+ 'VOL52' => 'VOLM52 ',
|
|
|
|
|
+ 'VOL53' => 'VOLM53 ',
|
|
|
|
|
+ 'VOL54' => 'VOLM54 ',
|
|
|
|
|
+ 'VOL55' => 'VOLM55 ',
|
|
|
|
|
+ 'VOL56' => 'VOLM56 ',
|
|
|
|
|
+ 'VOL57' => 'VOLM57 ',
|
|
|
|
|
+ 'VOL58' => 'VOLM58 ',
|
|
|
|
|
+ 'VOL59' => 'VOLM59 ',
|
|
|
|
|
+ 'VOL60' => 'VOLM60 ',
|
|
|
);
|
|
);
|
|
|
%STATUS_CMDS = (
|
|
%STATUS_CMDS = (
|
|
|
- 'STATUS' => { 'MATCH' => [ qr/\d/, qr/1/ ] },
|
|
|
|
|
- 'VOL' => { 'EVAL' => [ qr/\d/, '' ] },
|
|
|
|
|
|
|
+ 'STATUS' => { 'MATCH' => [ qr/\d/, qr/1/ ] },
|
|
|
|
|
+ 'VOL' => { 'EVAL' => [ qr/\d/, '' ] },
|
|
|
'INPUT' => { 'EVAL' => [ qr/(\d|ERR)/, 'if ($a =~ /7/i) { $a = "PLEX" } elsif ($a =~ /\d/i) { $a = "OTHER" } else { $a = "TV" }' ] },
|
|
'INPUT' => { 'EVAL' => [ qr/(\d|ERR)/, 'if ($a =~ /7/i) { $a = "PLEX" } elsif ($a =~ /\d/i) { $a = "OTHER" } else { $a = "TV" }' ] },
|
|
|
);
|
|
);
|
|
|
} else {
|
|
} else {
|
|
@@ -316,8 +316,8 @@ while (1) {
|
|
|
my $result = sendQuery($port, $CMDS{$cmd});
|
|
my $result = sendQuery($port, $CMDS{$cmd});
|
|
|
|
|
|
|
|
# On read error wait a short while for the device to recover
|
|
# On read error wait a short while for the device to recover
|
|
|
- if (!defined($result) || $result eq '' || ! ($result =~ /[[:print:]]/)) {
|
|
|
|
|
- print STDERR 'Read error. Delaying ' . ( 4 * $DELAY ) . " seconds\n";
|
|
|
|
|
|
|
+ if (!defined($result) || $result eq '' || !($result =~ /[[:print:]]/)) {
|
|
|
|
|
+ print STDERR 'Read error. Delaying ' . (4 * $DELAY) . " seconds\n";
|
|
|
sleep(4 * $DELAY);
|
|
sleep(4 * $DELAY);
|
|
|
next;
|
|
next;
|
|
|
}
|
|
}
|