From fd22724c2eff0e1aacfa5a371fdbec843c1701a9 Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Sat, 26 Oct 2013 09:44:34 +0000 Subject: [PATCH] autocreate: added Firmata code from CaptBlaubaer/ntruchsess git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@4114 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_autocreate.pm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/fhem/FHEM/98_autocreate.pm b/fhem/FHEM/98_autocreate.pm index 7e3c1fae7..f83113ad3 100644 --- a/fhem/FHEM/98_autocreate.pm +++ b/fhem/FHEM/98_autocreate.pm @@ -356,6 +356,15 @@ my @usbtable = ( response => "^\x06.*", define => "ZWDongle_PARAM ZWDongle DEVICE\@115200", }, + { NAME => "FRM", + matchList => ["cu.usbserial(.*)", "cu.usbmodem(.*)", + "ttyUSB(.*)", "ttyACM(.*)", "ttyAMA(.*)"], + DeviceName=> "DEVICE\@57600", + init => pack("H*", "F9"), # Reset + timeout => 5.0, # StandardFirmata blink takes time + request => pack("H*", "F079F7"), # Query firmware version and filename START_SYSEX (0xF0), queryFirmware (0x79), END_SYSEX (0xF7) + response => "^\xF0\x79(.*)\xF7", # Response Sysex xF0 x78 (2 Byte version) (n Byte filename) Endsysex xF7 + define => "FRM_PARAM FRM DEVICE\@57600", }, ); @@ -418,7 +427,7 @@ CommandUsb($$) if($defs{$d}{DeviceName} && $defs{$d}{DeviceName} =~ m/$dev/ && $defs{$d}{FD}) { - $msg = "already used by the $d fhem device"; + $msg = "already used by the fhem device $d"; Log3 undef, 4, $msg; $ret .= $msg . "\n"; goto NEXTDEVICE; } @@ -439,7 +448,7 @@ CommandUsb($$) # Send reset (optional) if(defined($thash->{init})) { DevIo_SimpleWrite($hash, $thash->{init}, 0); - DevIo_TimeoutRead($hash, 0.5); + DevIo_TimeoutRead($hash, $thash->{timeout} ? $thash->{timeout}:0.5); } # Clear the USB buffer