Thread Kontinuierlich Net-Stream anzeigen (29 answers)
Opened by kami at 2011-11-09 13:05

topeg
 2011-12-01 19:12
#154604 #154604
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
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);
}

View full thread Kontinuierlich Net-Stream anzeigen