Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Also mit den GET-Befehlen das klappt alles und wie die SET-Befehle sich zusammensetzten ist mir jetzt auch klar,aber:
am ende jedes SET-Befehls ist immer ein "Block Check Count" der die Checksumme ist,oder!? In der Anleitung steht,dass der Quer und Längsparität geprüft wird auf 3bit genaue fehler. Wie finde ich jetzt raus,wie sich der BCC zusammensetzt?
"04 24 20" is klar!
"02" ist für "STX"
"30 31 30" ist der Befehlscode 10,also SET_NOM_TEMP
"3D" entspricht "="
"39 2E 30 30 30 30 30 30" entspricht "9.000000"
"03" ist "ETX"
"18" ist BCC
SET_NOM_TEMP 60
nur das wichtigste: 30 31 30 3D 36 30 2E 30 30 30 30 30 30 03 27
"36 30 2E 30 30 30 30 30 30" ist 60.000000 grad celius
Und als BCC ist diesmal die "27"
Habt ihr vielleicht eine Idee.
LG vom Marzlf9
PS: Eppendorf hat jetzt mal geantwortet und geschrieben,dass eine 32Bit dll in Planung aber noch Zukunftsmusik ist.
' schrieb:aber:
am ende jedes SET-Befehls ist immer ein "Block Check Count" der die Checksumme ist,oder!? In der Anleitung steht,dass der Quer und Längsparität geprüft wird auf 3bit genaue fehler.
In welcher Anleitung steht denn das? In der der verlinkten? Ich hab da aber nichts von gefunden.
Aber du hast recht. Es ist eine Checksumme - so wie RolfK schon angemerkt hat - vorhanden. das ist nämlich die 0x10 im Protokollanalyser nach dem 0x02/0x03-Block !
Zitat:Wie finde ich jetzt raus,wie sich der BCC zusammensetzt?
XOR-Verbindung (oder auch Längsparität genannt) über alle Zeichen im 0x02/0x03-Block - außer 0x02. Wird die XOR-Checksumme des Blockes mit dem BCC-Wert xor-verknüpft, so ist das Ergebnis 0x00.
Zitat:PS: Eppendorf hat jetzt mal geantwortet und geschrieben,dass eine 32Bit dll in Planung aber noch Zukunftsmusik ist.
Das heisst, sie kommt nicht.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
So....das nächste Problem ist aufgetaucht...bzw. mehrere....einige konnte ich lösen,jedoch ist dann die benutzung des Programms eingeschränkt,also:
Wenn ich ein Numeric Feld mache zur eingabe von der Temperatur, "22" und das dann in Hex-string umwandel kommt da eine "16" bzw. wenn ich dann den String in Hex-form anzeigen lasse "3136",ich brauche jedoch "3232".Bei meiner Lösung kommt dann bei "9" als hex "3039" raus,was jedoch dann den BCC beeinflusst und falsch wird.
Das zweite Problem ist,dass der BCC berechnet wird,bei 22grad BCC=21, wenn ich dass dann zum schluss zu einem String verknüpfe,dann wird die "21" als "3231" geschrieben,brauche aber die "21"
Denke mal,dass ist zweimal das gleiche Problem,oder!?
' schrieb:Wenn ich ein Numeric Feld mache zur eingabe von der Temperatur, "22" und das dann in Hex-string umwandel kommt da eine "16" bzw. wenn ich dann den String in Hex-form anzeigen lasse "3136",ich brauche jedoch "3232".
Dafür gibt es die Funktion "Zahl formatieren in String". Der Formatstring lautet "%02d" (oder doch "%02.0d"). Dann wird aus der Zahl 22 die Zeichenkette "22". (Beachte Unterschied "Zahl" und "Zeichenkette").
Zitat:Das zweite Problem ist,dass der BCC berechnet wird,bei 22grad BCC=21, wenn ich dass dann zum schluss zu einem String verknüpfe,dann wird die "21" als "3231" geschrieben,brauche aber die "21"
Dafür gibt es die Funktion "Typwandlung" - oder das Gegenteil von dem, was RoLe zwischen dem String und dem Array-Indizieren reingemacht hat.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).