From 23479c7a3661b736aa7c1b366a48e30c64bc8555 Mon Sep 17 00:00:00 2001 From: justme1968 Date: Fri, 26 Jul 2013 11:57:56 +0000 Subject: [PATCH] allow register names instead of register id for regSet and regGet of system registers git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@3507 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/34_SWAP.pm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/fhem/FHEM/34_SWAP.pm b/fhem/FHEM/34_SWAP.pm index 4241749ce..832946763 100755 --- a/fhem/FHEM/34_SWAP.pm +++ b/fhem/FHEM/34_SWAP.pm @@ -363,6 +363,16 @@ SWAP_Set($@) return "\"set $name $cmd\" needs one argument" if( $cnt < 2 && ( $cmd eq 'regGet' ) ); return "\"set $name $cmd\" needs two arguments" if( $cnt < 3 && ( $cmd eq 'regSet' ) ); + if( ($cmd eq "regSet" || $cmd eq "regGet") && $arg !~ m/^[\da-f]{2}(\.([\da-f]+))?$/i ) { + foreach my $reg ( sort { $a <=> $b } keys ( %default_registers ) ) { + my $register = $default_registers{$reg}; + if( $register->{name} =~ m/^$arg$/i ) { + $arg = sprintf("%02X", $reg); + last; + } + } + } + if( $cmd eq "regSet" ) { $arg =~ m/^([\da-f]{2})(\.([\da-f]+))?$/i; return "$arg is not a valid register name for $cmd" if( !defined($1) ); @@ -993,11 +1003,13 @@ SWAP_Attr(@) Set