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:
parent
a12818f945
commit
86d6f31ad2
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user