2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-23 14:46:24 +00:00

DevIo.pm: allow setting of serial parameters (Forum #38242)

git-svn-id: https://svn.fhem.de/fhem/trunk@8790 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2015-06-21 08:42:13 +00:00
parent a12818f945
commit 86d6f31ad2

View File

@ -182,6 +182,15 @@ DevIo_OpenDev($$$)
my $po;
my $baudrate;
($dev, $baudrate) = split("@", $dev);
my ($databits, $parity, $stopbits) = (8, 'none', 1);
if($baudrate =~ m/(\d+)(,([78])(,([NEO])(,([012]))?)?)?/) {
$baudrate = $1 if(defined($1));
$databits = $3 if(defined($3));
$parity = 'odd' if(defined($5) && $5 eq 'O');
$parity = 'even' if(defined($5) && $5 eq 'E');
$stopbits = $7 if(defined($7));
}
if($hash->{DevIoJustClosed}) {
delete $hash->{DevIoJustClosed};
@ -302,12 +311,13 @@ DevIo_OpenDev($$$)
if($baudrate) {
$po->reset_error();
Log3 $name, 3, "Setting $name baudrate to $baudrate"
if(!$hash->{DevioText});
my $p = ($parity eq "none" ? "N" : ($parity eq "odd" ? "O" : "E"));
Log3 $name, 3, "Setting $name serial parameters to ".
"$baudrate,$databits,$p,$stopbits" if(!$hash->{DevioText});
$po->baudrate($baudrate);
$po->databits(8);
$po->parity('none');
$po->stopbits(1);
$po->databits($databits);
$po->parity($parity);
$po->stopbits($stopbits);
$po->handshake('none');
# This part is for some Linux kernel versions whih has strange default