mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-21 07:56:03 +00:00
OWX_SER: fix pt_execute correctly handling undefined $writedata and $numread
git-svn-id: https://svn.fhem.de/fhem/trunk@5854 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
21aae23fb5
commit
a05199420b
@ -148,7 +148,7 @@ sub pt_alarms () {
|
|||||||
########################################################################################
|
########################################################################################
|
||||||
|
|
||||||
sub pt_execute($$$$$$$) {
|
sub pt_execute($$$$$$$) {
|
||||||
my ($thread, $self, $hash, $context, $reset, $address, $writedata, $numread) = @_;
|
my ($thread, $self, $hash, $context, $reset, $dev, $writedata, $numread) = @_;
|
||||||
|
|
||||||
PT_BEGIN($thread);
|
PT_BEGIN($thread);
|
||||||
|
|
||||||
@ -160,13 +160,10 @@ sub pt_execute($$$$$$$) {
|
|||||||
|
|
||||||
$self->reset() if ($reset);
|
$self->reset() if ($reset);
|
||||||
|
|
||||||
my $dev = $address;
|
$writedata = "" unless defined $writedata;
|
||||||
my $data = $writedata;
|
|
||||||
|
|
||||||
my $select;
|
my $select;
|
||||||
my $res2 = "";
|
|
||||||
my ($i,$j,$k);
|
|
||||||
|
|
||||||
#-- has match ROM part
|
#-- has match ROM part
|
||||||
if( $dev ){# command => EXECUTE,
|
if( $dev ){# command => EXECUTE,
|
||||||
# context => $context,
|
# context => $context,
|
||||||
@ -188,13 +185,13 @@ sub pt_execute($$$$$$$) {
|
|||||||
for(my $i=0;$i<8;$i++){
|
for(my $i=0;$i<8;$i++){
|
||||||
$rom_id[$i]=hex(substr($dev,2*$i,2));
|
$rom_id[$i]=hex(substr($dev,2*$i,2));
|
||||||
}
|
}
|
||||||
$select=sprintf("\x55%c%c%c%c%c%c%c%c",@rom_id).$data;
|
$select=sprintf("\x55%c%c%c%c%c%c%c%c",@rom_id).$writedata;
|
||||||
#-- has no match ROM part, issue skip ROM command (0xCC:)
|
#-- has no match ROM part, issue skip ROM command (0xCC:)
|
||||||
} else {
|
} else {
|
||||||
$select="\xCC".$data;
|
$select="\xCC".$writedata;
|
||||||
}
|
}
|
||||||
#-- has receive data part
|
#-- has receive data part
|
||||||
if( $numread >0 ){
|
if( $numread ){
|
||||||
#$numread += length($data);
|
#$numread += length($data);
|
||||||
for( my $i=0;$i<$numread;$i++){
|
for( my $i=0;$i<$numread;$i++){
|
||||||
$select .= "\xFF";
|
$select .= "\xFF";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user