CUL/RAW: ohne Zeilenumbruch?

Begonnen von habichthugo, 21 Oktober 2014, 13:26:03

Vorheriges Thema - Nächstes Thema

habichthugo

Ich weiss nicht so recht, wo ich das Thema unterbringen soll...
Ich arbeite gerade an einem neuen Perl-Modul für FHEM. Als Basis bzw. zu Orientierung habe ich 00_cul.pm auserkoren. Zu CUL_Read($) habe ich ein Verständnisproblem:
762 sub
763 CUL_Read($)
764 {
765   my ($hash) = @_;
766
767   my $buf = DevIo_SimpleRead($hash);
768   return "" if(!defined($buf));
769   my $name = $hash->{NAME};
770
771   my $culdata = $hash->{PARTIAL};
772   Log3 $name, 5, "CUL/RAW: $culdata/$buf";
773   $culdata .= $buf;
774
775   while($culdata =~ m/\n/) {
776     my $rmsg;
777     ($rmsg,$culdata) = split("\n", $culdata, 2);
778     $rmsg =~ s/\r//;
779     CUL_Parse($hash, $hash, $name, $rmsg) if($rmsg);
780   }
781   $hash->{PARTIAL} = $culdata;
782 }

Das Log3 (Zeile 772) produziert im original CUL-Modul nur einzeilige Log-Einträge. In meiner Ableitung habe ich aber i.d.R. noch eine Leerzeile dahinter. Da am Ende ja $buf, mit ungefiltertem Ergebnis von DevIo_SimpleRead, ausgegeben wird, müsste das doch eigentlich bei CUL auch so sein? Die Abarbeitung (ab Zeile 775) erfolgt ja offenbar auch erst, sobald ein Zeilenumbruch gefunden wird...
CUL (CC1101-USB-Lite module-V3) + 4*fht80b; SIGNALduino + x Funksteckd.; HM-LGW-O-TW-W-EU + 11*HM-LC-Bl1PBU-FM Rollladenaktor + 1*HM-LC-Sw1PBU-FM Lichtschalter + 2*HM-RC-12-W + 3* HM-CC-RT-DN Heizkörpertherm. + 2*HM-TC-IT-WM-W-EU Wandtherm.; HM-MOD-RPI-PCB Funkmodul; Pi OS Lite 64 (Bookworm); Pi 3B+

habichthugo

Ok, ist der gleiche Käse beim CUL wie bei mir (HChh):

2014.10.23 17:40:20 5: CUL/RAW: /T4D0600B60016

2014.10.23 17:40:20 4: CUL_Parse: MyCUL T4D0600B60016 -63
2014.10.23 17:40:20 5: MyCUL dispatch 810c04xx0909a0014d060000b600
2014.10.23 17:40:20 4: FHT FHT_Wohnzimmer actuator: 0%
2014.10.23 17:40:20 5: Triggering FHT_Wohnzimmer (1 changes)
2014.10.23 17:40:20 5: Notify loop for FHT_Wohnzimmer actuator: 0%
2014.10.23 17:40:25 5: CUL/RAW: /T2B1A00B60011

2014.10.23 17:40:25 4: CUL_Parse: MyCUL T2B1A00B60011 -65.5
2014.10.23 17:40:25 5: MyCUL dispatch 810c04xx0909a0012b1a0000b600
2014.10.23 17:40:25 4: FHT FHT_xxx actuator: 0%
2014.10.23 17:40:25 5: Triggering FHT_xxx (1 changes)
2014.10.23 17:40:25 5: Notify loop for FHT_Astrid actuator: 0%
2014.10.23 17:40:28 3: HChh/RAW: /DS28244E9430034=20.94;

2014.10.23 17:40:28 3: HChh received: DS28244E9430034=20.94;

Ist das echt sinnvoll, die Zeilenumbrüche mit ins Log zu schreiben? Sollten die nicht gefiltert werden?
CUL (CC1101-USB-Lite module-V3) + 4*fht80b; SIGNALduino + x Funksteckd.; HM-LGW-O-TW-W-EU + 11*HM-LC-Bl1PBU-FM Rollladenaktor + 1*HM-LC-Sw1PBU-FM Lichtschalter + 2*HM-RC-12-W + 3* HM-CC-RT-DN Heizkörpertherm. + 2*HM-TC-IT-WM-W-EU Wandtherm.; HM-MOD-RPI-PCB Funkmodul; Pi OS Lite 64 (Bookworm); Pi 3B+