Bin auf der Suche nach der Umrechnung der HEX-Darstellung in das Gruppenadressen-Format.
Meine defines sehen so aus:
define EIB_1064 KNX 1064:dpt1
und werden nach dem/den letzten updates von 10_KNX.pm nicht mehr akzeptiert. Wenn ich das richtig verstanden haben, muss ich entweder die Gruppenadresse angeben (also hier 1/0/100) oder als fünstelliges HEX, also
define EIB_1064 KNX 01064 dpt1
richtig? Deshalb wollte ich mal wissen, wie man aus der HEX Darstellung die Gruppenadressen-Darstellung ableitet ... ;)
So :-)
#Private function to convert GAD from hex to readable version
#############################
sub
KNX_hexToName ($)
{
my $v = shift;
#old syntax
#my $p1 = hex(substr($v,0,1));
#my $p2 = hex(substr($v,1,1));
#my $p3 = hex(substr($v,2,2));
#new syntax for extended adressing
my $p1 = hex(substr($v,0,2));
my $p2 = hex(substr($v,2,1));
my $p3 = hex(substr($v,3,2));
my $r = sprintf("%d/%d/%d", $p1,$p2,$p3);
return $r;
}
Anhand Deines Beispiels 01064:
01 = 0x1 = 1
0 = 0x0 = 0
64 = 0x64 = 100
--> 1/0/100