Thread Kontinuierlich Net-Stream anzeigen
(29 answers)
Opened by kami at 2011-11-09 13:05
Ich finde den Code grausam.
Aber hier 1:1 in Perl: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 use HTML::Entities; use MIME::Base64; ... my %data; my %deviceconf; ... if (substr($v,0,2) eq "L:") { $data{"meta"}{"DevCount"}=5; substr($v,0,2,''); my $str = decode_base64($v); my $pos = 0; for my $j (1..$data{"meta"}{"DevCount"}) { my %hilf; # versteh ich nicht. Hier sind nur Zahlen enthalten # keine Ahnung warum hier htmlentities drüber läuft $hilf{"ReadLength"} = htmlentities(ord(substr($str,$pos,1))); $pos += 1; for my $i ($pos..(2+$pos)) { $hilf{"RFAdress"} .= dechex2( substr( $str,$i,1 ) ); $pos += 5; $hilf{"Data2"} .= decbin8( substr( $str,$pos,1 ) ).""; $deviceconf{$hilf{"RFAdress"}}{"LowBatt"} = substr($hilf{"Data2"},0,1); $pos += 1; if($hilf{"ReadLength"} == 11) { $pos += 1; $deviceconf{$hilf{"RFAdress"}}{"Temperature"} = (ord(substr($str,$pos,1))/2).""; $pos += 4; } my $val=substr($hilf{"Data2"},6,2) if($val eq "00") { $deviceconf{$hilf{"RFAdress"}}{"Mode"} = "auto"; } elsif($val eq "01") { $deviceconf{$hilf{"RFAdress"}}{"Mode"} = "manu"; } elsif($val eq "10") { $deviceconf{$hilf{"RFAdress"}}{"Mode"} = "vacation"; } elsif($val eq "11") { $deviceconf{$hilf{"RFAdress"}}{"Mode"} = "boost"; } } } } ... sub htmlentities { my $str=shift; return encode_entities($str); } # kombination aus str_pad, decbin und ord sub decbin8 { my $str=shift; return unpack('B8',$str); } # kombination aus str_pad, dechex und ord sub dechex2 { my $str=shift; return unpack('H2',$str); } |