-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update 00_Signalduino.pm: Halbe letzte Bits bei MS rekonstruieren #491
Conversation
Bei MS-Daten kann es sein, dass das letzte Bit nur teilweise in dem Datensatz repräsentiert ist. Sollte sich in diesem Fall aus dem letzten Zeichen und den Protokolldefinitionen One und Zero eine eindeutige Zuordnung ergeben, so wird diese Zuordnung dekodiert
Danke für den PR. Ich schau ihn mir an und werde bei Fragen etwas kommentieren |
$endPatternLookupHash{substr($pstr,0,length($pstr)-1)}="0" ; | ||
#SIGNALduino_Log3 $name, 4, "$name: Sync 0 ".$pstr." -> ".substr($pstr,0,length($pstr)-1)." eingetragen"; | ||
} else { | ||
delete $endPatternLookupHash{substr($pstr,0,length($pstr)-1)}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wen 0 und 1 die gleiche Sequez bis zum vorletzten haben, dann kann man 0 bzw. 1 nicht bestimmen. Deshalb löschst Du hier den Eintrag.
Habe ich das richtig verstanden`?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Genau. Da ich in Perl nicht zu Hause bin hoffe ich, das die Lösung so ok ist. Allerdings kann ich mit dieser Methode den Zweig für float nicht lösen.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alles gut. Um float würde ich mir keine all zu großen Gedanken machen.
Was meint ihr. Für mich sieht das nach eine validen Lösung aus, |
Welche Fälle sollen damit abgedeckt werden. |
Hallo, wir haben einen erneuten Fall von der Problematik bei dem Protokoll von Jarolift. Hier ist es auf jedenfall so, das wir das letzte Bit nicht stur setzen können auf 1 oder 0, weil es mal so mal so ist. @sidey79 hast du dir darüber schon Gedanken gemacht wie wir dies übernehmen? Diesen PR oder eine Lösung welche bei MS und bei MU "zusammen" funktioniert. |
Könnte das Verfahren nicht auch bei MU funktionieren? |
Ich schätze es aktuell so ein, dass es dort auch funktionieren sollte. Vielleicht spielen aber ein paar Details nicht mit. |
@sidey79 @Ralf9 @MoskitoHorst .... oder nutzt nun jeder seine eigene Variante smile |
Ich brauche "meine" Lösung nicht. Bin schon stolz, dass mein erster Versuch in Perl so weit gekommen ist und gehe auf eure Lösung, sobald die ins Update kommt. Wie man bei Git dann den PR wieder zurückzieht muss ich erst lernen. |
Wie auch immer das ganze ausgeht. Du hast uns einen guten Hinweis geliefert. Deine Lösung ist auf jeden Fall irgendwie enthalten. Eventuell nur mit anderen code Zeilen :) |
included PR #491 from MoskitoHorst
Ich habe deine Anpassungen in #494 eingebaut. Daher schließe ich diesen PR. Deine commits bleiben dadurch erhalten. |
* Update 00_Signalduino.pm: Bei MS-Daten kann es sein, dass das letzte Bit nur teilweise in dem Datensatz repräsentiert ist. Sollte sich in diesem Fall aus dem letzten Zeichen und den Protokolldefinitionen One und Zero eine eindeutige Zuordnung ergeben, so wird diese Zuordnung dekodiert Bei MU-Nachrichten kann es vorkommen, daß die zweite Hälfte des letzten Bits fehlt. Wenn in der Protokolldefinition "reconstructBit => 1" steht, dann wird das letzte Bit rekonstruiert. new sub SIGNALduino_FillPatternLookupTable to fill lookup tables Parse_MS optimized: Längenprüfung optimiert. - Die Prüfung auf length_min am Anfang ist nun einfacher und genauer. - Die Längenprüfung ist nun vor dem padding. debug und log Ausgaben ergänzt. modulematch replaced with sub SIGNALduino_moduleMatch included PR #491 from MoskitoHorst * test/test_MS_1-definition.txt added Tests with and withoud reconsruct bit * test/test_MS_2-definition.txt - Load test Data from test/test_loadprotohash-ok.hash - Read test input and results from hash - test min, max length with and without reconstructBit changed substr to much faster chop and replace length min/max check with SIGNALduino_TestLength
Bei MS-Daten kann es sein, dass das letzte Bit nur teilweise in dem Datensatz repräsentiert ist. Sollte sich in diesem Fall aus dem letzten Zeichen und den Protokolldefinitionen One und Zero eine eindeutige Zuordnung ergeben, so wird diese Zuordnung dekodiert
What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
What is the current behavior? (You can also link to an open issue here)
What is the new behavior (if this is a feature change)?
Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
Other information: