Entwickler-Ecke
Sonstiges (Delphi) - hexwert immer addieren, mit was?
oOXTCOo - So 12.07.09 14:40
Titel: hexwert immer addieren, mit was?
hallo!
ich habe folgenedes problem...
ich muss für einen f-bus frame immer zu einen hexwert einen hexwert addieren, ich denke das soll die größe des zu lesenden blocks darstellen.
wie kann ich mir jetzt die differenz ausrechnen, damit ich weiß mich welchen wert immer addiert wurde?
so sehen die frames aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| 4B 13 17 00 00 00 00 00 00 00 00 00 ED 23 7E 4B 13 17 00 02 00 00 00 01 00 00 00 39 34 7E 4B 13 17 00 02 00 00 00 02 00 00 00 F4 11 7E 4B 13 17 00 02 00 00 00 03 00 00 00 4F 0D 7E 4B 13 17 00 02 00 00 00 04 00 00 00 6E 5A 7E 4B 13 17 00 02 00 00 00 05 00 00 00 D5 46 7E 4B 13 17 00 02 00 00 00 06 00 00 00 18 63 7E 4B 13 17 00 02 00 00 00 07 00 00 00 A3 7F 7E 4B 13 17 00 02 00 00 00 08 00 00 00 5A CD 7E 4B 13 17 00 02 00 00 00 09 00 00 00 E1 D1 7E 4B 13 17 00 02 00 00 00 0A 00 00 00 2C F4 7E 4B 13 17 00 02 00 00 00 0B 00 00 00 97 E8 7E 4B 13 17 00 02 00 00 00 0C 00 00 00 B6 BF 7E 4B 13 17 00 02 00 00 00 0D 00 00 00 0D A3 7E 4B 13 17 00 02 00 00 00 0E 00 00 00 C0 86 7E 4B 13 17 00 02 00 00 00 0F 00 00 00 7B 9A 7E 4B 13 17 00 02 00 00 00 10 00 00 00 23 EB 7E 4B 13 17 00 02 00 00 00 11 00 00 00 98 F7 7E |
läuft bis über 4000 commands...
das sind die gemeinten hexwerte:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| ED 23 39 34 F4 11 4F 0D 6E 5A D5 46 18 63 A3 7F |
wie kann ich jetzt den hexwert erfahren, der benutzt wurde um zb von "ED 23" auf "39 34" zu kommen...? ich weiß das immer mit dem selben hexwert addiert wird, doch wie errechne ich den wert damit ich die schleife machen kann die mir dann die 4000 commands erstellt?
start mit:
ED 23 + fraglicher hexwert = 39 34
39 34 + fraglicher hexwert = F4 11
F4 11 + fraglicher hexwert = 4F 0D
usw... den fraglichen hexwert muss ich wissen...
bitte um hilfe!
danke...
grüße
hari
Moderiert von
Narses: Titel geändert.
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
jaenicke - So 12.07.09 14:44
Du kannst einen String mit einem Hexwert mit StrToInt in eine Zahl umwandeln und normal damit rechnen. Du musst nur vor den String noch ein '$' schreiben vorher.
oOXTCOo - So 12.07.09 14:46
jaenicke hat folgendes geschrieben : |
| Du kannst einen String mit einem Hexwert mit StrToInt in eine Zahl umwandeln und normal damit rechnen. Du musst nur vor den String noch ein '$' schreiben vorher. |
ja die funktion habe ich am laufen...
hatte es schonmal für ein anderes prorgamm geschrieben, diese schleife verwende ich jetzt, nur weis ich nicht mehr wie ich den wert mit dem addiert wird heraus bekomme...
oder meist du, ich kann einfach beide hexwerte zu dezimal wandeln und dann subdrahieren und bekomme dann die diffrenez? die different dann wieder zurück nach hex und ich hab sie?
ich müsste ja auch direkt in hex subdrahieren können und dann direkt den hexwert bekommen oder?
ich teste das mal...
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
jaenicke - So 12.07.09 14:53
Richtig. Du könntest natürlich die Subtraktion auch manuell mit den hexadezimalen Buchstaben machen.
oOXTCOo - So 12.07.09 15:08
jaenicke hat folgendes geschrieben : |
| Richtig. Du könntest natürlich die Subtraktion auch manuell mit den hexadezimalen Buchstaben machen. |
klappt nicht, komme nie auf dem nächsten wert des fbus frames...
komisch...
ED23 - 3934 = B3EF <<< sollte dann die differenz sein
wenn ich jetzt versuche auf 3934 zu kommen passiert das:
ED23 + B3EF = A113 sollte aber 3934 sein ?!?
ach... minus rechnen! dann komm ich drauf...
ED23 - B3EF = 3934
das dürfte rückwerts laufen mit diesem f-bus frame...
nein denkfehler, dann passt das nächste ergebnis wieder nicht :(
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
jaenicke - So 12.07.09 15:12
oOXTCOo hat folgendes geschrieben : |
| ED23 - 3934 = B3EF <<< sollte dann die differenz sein |
Ist sie doch auch. :gruebel:
Normale Subtraktion, da kommt das doch exakt raus.
oOXTCOo - So 12.07.09 15:15
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
ja aber die selbe summe muss ja dann wieder mit dem nächsten das: F4 11 ergebnis liefern...?
---
Moderiert von
Narses: Beiträge zusammengefasst---
ich komm einfach nicht drauf... hat wer eine idee?
Xentar - So 12.07.09 16:01
Ich versteh das Problem nicht.
Du möchtest von ED 23 auf 39 34 kommen, korrekt?
3934 - ed23 = 4c11
ed23 + 4c11 = 3934
?
oOXTCOo - So 12.07.09 16:30
Xentar hat folgendes geschrieben : |
Ich versteh das Problem nicht.
Du möchtest von ED 23 auf 39 34 kommen, korrekt?
3934 - ed23 = 4c11
ed23 + 4c11 = 3934
? |
ja genau, und dann von 3934 weiter zu F4 11 und davon weiter 6E 5A ...
damit ich in einer schleife diese fbus frames bauen kann... es durchläuft zb 4000 mal die schleife und bei jedem durchlauf wird am anfang die sequence nummer (das funktioniert ja) verändert und der zeite wert ist diese eben.
wenns nur ein paar wären würde ichs einfach so wie sie sind nehmen, aber es sind über 4000 solche frames...
ich hatte das schonmal gebraucht, da musst ich einfach nur einen hexwert addieren, das klappt hier aber nicht... :(
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
Xentar - So 12.07.09 16:45
Ich versteh das Problem immer noch nicht.
Warum klappt es hier nicht, einfach einen Hexwert zu addieren? Musst dann natürlich den Übertrag wegschmeißen, aber sonst passt das doch.
Ist doch simpelste Addition / Subtraktion.
von 3934 -> F411 wären es BADD, von F411 -> 6e5a = 7a49 usw.
oOXTCOo - So 12.07.09 16:52
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
nein, es muss ja ein fixer wert sein, denn ich immer wieder addiere...
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| ED 23 + 4C11 = 39 34 + 4C11 = 8578 sollte aber F411 sein F4 11 4F 0D 6E 5A D5 46 18 63 A3 7F |
es soll so funktionieren:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| for I:=0 to 4999 do begin
Value1:=Value1+Value2;
memo1.lines.add('4B 13 17 00 02 00 00 00 '+SEQUENCE+' 00 00 00 '+ inttostr(Value1)+' 7E');
end; |
vereinfacht geschrieben, statt ins memo werden die werte in den buffer geschrieben und dann zum gerät gesendet, dann wird von der antwort des gerätes das ack frame gesendet, und dann wieder der nächste frame...
die hexwerte die ich brauche müssen dann immer den nächsten wert für den nächsten frame ergeben, sonst passt das ergebnis nicht bzw. nimmt das gerät das ich ansteuere den frame nicht an...
ich kann damit den speicher meines gerätes auslesen, der aber sehr gross ist und zirka 4000 frames braucht bis der speicher komplett ausgelesen ist...
ich hatte das gleich prinzip mal für nokia geräte gemacht womit man den permanent memory auslesen konnte, da funktionierte es haar genauso, nur das es mit addieren super funktioniert hat, aber hier weiß ich nicht wie ich immer auf die nächste summe komme...
es kann ja auch sein das mal mehr mal weniger frames gebaut werden müssen je nachdem wie gross der speicher ist den ich auslesen möchte...
hoffe ich habs jetzt verständlich rüber gebracht...
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
Xentar - So 12.07.09 16:58
Ach, jetzt versteh ich. Sorry, denkfehler.
Es soll also immer mit dem gleichen Wert addiert werden, und nicht jedesmal neu berechnet?
Dann würd ich fast sagen: geht nicht.
Wie wir ja nun schon herausgefunden haben, sind die Abstände zwischen den Werten unterschiedlich groß.
Sicher, dass das so funktioniert? Gibt doch bestimmt ne Protokoll Spezifikation oder sowas.
oOXTCOo - So 12.07.09 17:01
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
ja genau ;)
die befürchtung habe ich auch, aber irgendwie muss es gehen, ich habe das fbus frame gesnifft und im programm kann man einstellen von wo bis wo man auslesen möchte, der frame muss sich doch irgendwie zusammensätzten lassen?
also du meinst das es einen algo dafür geben muss? wie gesagt bei nokia geräten ist es einfach $08 immer dazu und es passt... ich werde mal den prorgammierer von qmat anschreiben, möglicherweise gibt er mir ja einen tipp...
danke trotzdem für deine hilfe, wenn dir nochwas einfallen sollte...
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
Xentar - So 12.07.09 17:04
Frag den Hersteller des Gerätes, ob das Protokoll öffentlich ist, bzw. frag mal ne Suchmaschine, ob andere Leute schonmal mit diesem Gerät rumgespielt haben.
oOXTCOo - So 12.07.09 17:08
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
habe ich schon, ist ein qualcomm chip eines usb modems... dessen efs müsste ich auslesen.
mein programm funktiniert zwar, da ich für jede firmware nun den passenden frame rausgesucht habe, ich wollte es aber so machen, so dass programm für firmware updates gerüstet ist, und einfach den komplett efs ausliest, den ich dann auswerten kann und die gewünschte position dann suchen kann.
im moment lade ich genau den teil zur passenden firmware raus und werte diesen aus, das ist aber sehr mühsam und es gibt zick firmware versionen...
das bedeutet kommt eine neue firmware raus, muss ich das programm wieder erweitern, würde ich den kompletten efs lesen können, habe ich 100% die gewünschte position drinn die ich dann nur aus dem buffer raus suchen müsste...
mir fällt da nochwas ein, ich muss mir das mal in ascii ansehen... vieleicht werden gar keine zahlen addiert, vieleicht sind es einfach nur buchstaben und es geht nach bestimmte ascii zeichen, da es doch at commands sind und keine fbus frames eigentlich...
in ascii siehts auch nach nix aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| K...........í#~. K...........94~. K...........ô.~. K...........O.~. K...........nZ~. K...........ÕF~. K............c~. K...........£.~. K...........ZÍ~. K...........áÑ~. K...........,ô~. K...........—è~. K...........¶¿~. K............£~. |
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt und nachfolgenden, leeren Beitrag gelöscht.
Xentar - So 12.07.09 18:26
Einen Post nachträglich unkenntlich machen, ist nicht gerade "nett"..
Hatte den noch lesen können. War eine Vermutung, dass es sich bei den Werten um eine CRC handelt.
Ob das stimmt, kann ich nicht genau sagen. Hab grad keine Lust, das nachzubauen, wäre aber auch möglich.
Für Delphi gibt es fertige Funktionen, um die CRC zu berechnen. Kansnte ja mal suchen und ausprobieren.
oOXTCOo - Mo 13.07.09 11:58
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
ich hatte den post unleserlich gemacht, da ich vom programmierer den richitigen tipp bekommen habe und meiner flasch war... war also keine böse absicht...
ist ein crc16 ... ich habe glaube ich einen falschen crc geposted, und habe dann den richitgen gefunden, darum habe ich ihn sofort gelöscht... ums genau zu sagen: CRC16 CCITT habe mir noch nicht angeshene was da der unterschied ist...?
das sollte der richitge sein (hoffe ich):
Delphi-Quelltext
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:
| WORD crc16_table2[CRC_TAB_SIZE] = ;
WORD crc_16_l_step2(WORD crc, byte data)
DWORD CSerial::CalcCRC16(byte* buf_ptr, DWORD len, BOOL value) |
habt ihr sowas fertig im forum?
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
Tastaro - Mo 13.07.09 14:27
Edit: Um Verwirrung zu vermeiden entfernt.
Beste Grüße
Gammatester - Mo 13.07.09 15:01
Und was soll die Unit uCrc hier? Die crc16-Funktionen sind doch 'CRC-16/ZMODEM'. Beispielsweise liefert Deine Unit den Wert $66DC für den ersten Datensatz (statt $23ED)!
Gammatester
Gammatester - Mo 13.07.09 15:50
Hier Beispielcode mit Testwerten und -Ausgabe. Man beachte das die CRC-Werte als word ausgegeben werden, in den Originaldaten sind sie als Einzelbytes (Low/High) gegeben:
Delphi-Quelltext
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:
| program t_x25;
{$ifdef win32} {$apptype console} {$endif}
uses mem_util,crcmodel,crcm_cat;
const tvs: array[1..18] of string = ( '4B1317000000000000000000', '4B1317000200000001000000', '4B1317000200000002000000', '4B1317000200000003000000', '4B1317000200000004000000', '4B1317000200000005000000', '4B1317000200000006000000', '4B1317000200000007000000', '4B1317000200000008000000', '4B1317000200000009000000', '4B131700020000000A000000', '4B131700020000000B000000', '4B131700020000000C000000', '4B131700020000000D000000', '4B131700020000000E000000', '4B131700020000000F000000', '4B1317000200000010000000', '4B1317000200000011000000');
var ctx: TCRC_ctx; crc: longint; buf: array[0..100] of byte; i,L: word; begin cm_Create(CRC16_X25,nil,ctx); for i:=1 to 18 do begin Hex2Mem(tvs[i], @buf, sizeof(buf), L); cm_Full(ctx, CRC, @buf, L); writeln(ctx.name,'(',HexStr(@buf, L),')=$',HexWord(CRC)); end; end. |
Ausgabe:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| CRC-16/X-25(4b1317000000000000000000)=$23ed CRC-16/X-25(4b1317000200000001000000)=$3439 CRC-16/X-25(4b1317000200000002000000)=$11f4 CRC-16/X-25(4b1317000200000003000000)=$0d4f CRC-16/X-25(4b1317000200000004000000)=$5a6e CRC-16/X-25(4b1317000200000005000000)=$46d5 CRC-16/X-25(4b1317000200000006000000)=$6318 CRC-16/X-25(4b1317000200000007000000)=$7fa3 CRC-16/X-25(4b1317000200000008000000)=$cd5a CRC-16/X-25(4b1317000200000009000000)=$d1e1 CRC-16/X-25(4b131700020000000a000000)=$f42c CRC-16/X-25(4b131700020000000b000000)=$e897 CRC-16/X-25(4b131700020000000c000000)=$bfb6 CRC-16/X-25(4b131700020000000d000000)=$a30d CRC-16/X-25(4b131700020000000e000000)=$86c0 CRC-16/X-25(4b131700020000000f000000)=$9a7b CRC-16/X-25(4b1317000200000010000000)=$eb23 CRC-16/X-25(4b1317000200000011000000)=$f798 |
Gammatester
Tastaro - Mo 13.07.09 15:50
Gammatester hat folgendes geschrieben : |
Und was soll die Unit uCrc hier? Die crc16-Funktionen sind doch 'CRC-16/ZMODEM'. Beispielsweise liefert Deine Unit den Wert $66DC für den ersten Datensatz (statt $23ED)!
Gammatester |
Hast recht. Hab nicht richtig geguckt. Sorry.
oOXTCOo - Mo 13.07.09 23:38
ach super, danke!
ich werde das gleich morgen testen, bin leider bis jetzt noch nicht dazu gekommen...
danke danke danke! :)
oOXTCOo - So 19.07.09 20:22
Gammatester hat folgendes geschrieben : |
Hier Beispielcode mit Testwerten und -Ausgabe. Man beachte das die CRC-Werte als word ausgegeben werden, in den Originaldaten sind sie als Einzelbytes (Low/High) gegeben:
Delphi-Quelltext 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:
| program t_x25;
{$ifdef win32} {$apptype console} {$endif}
uses mem_util,crcmodel,crcm_cat;
const tvs: array[1..18] of string = ( '4B1317000000000000000000', '4B1317000200000001000000', '4B1317000200000002000000', '4B1317000200000003000000', '4B1317000200000004000000', '4B1317000200000005000000', '4B1317000200000006000000', '4B1317000200000007000000', '4B1317000200000008000000', '4B1317000200000009000000', '4B131700020000000A000000', '4B131700020000000B000000', '4B131700020000000C000000', '4B131700020000000D000000', '4B131700020000000E000000', '4B131700020000000F000000', '4B1317000200000010000000', '4B1317000200000011000000');
var ctx: TCRC_ctx; crc: longint; buf: array[0..100] of byte; i,L: word; begin cm_Create(CRC16_X25,nil,ctx); for i:=1 to 18 do begin Hex2Mem(tvs[i], @buf, sizeof(buf), L); cm_Full(ctx, CRC, @buf, L); writeln(ctx.name,'(',HexStr(@buf, L),')=$',HexWord(CRC)); end; end. |
Ausgabe:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| CRC-16/X-25(4b1317000000000000000000)=$23ed CRC-16/X-25(4b1317000200000001000000)=$3439 CRC-16/X-25(4b1317000200000002000000)=$11f4 CRC-16/X-25(4b1317000200000003000000)=$0d4f CRC-16/X-25(4b1317000200000004000000)=$5a6e CRC-16/X-25(4b1317000200000005000000)=$46d5 CRC-16/X-25(4b1317000200000006000000)=$6318 CRC-16/X-25(4b1317000200000007000000)=$7fa3 CRC-16/X-25(4b1317000200000008000000)=$cd5a CRC-16/X-25(4b1317000200000009000000)=$d1e1 CRC-16/X-25(4b131700020000000a000000)=$f42c CRC-16/X-25(4b131700020000000b000000)=$e897 CRC-16/X-25(4b131700020000000c000000)=$bfb6 CRC-16/X-25(4b131700020000000d000000)=$a30d CRC-16/X-25(4b131700020000000e000000)=$86c0 CRC-16/X-25(4b131700020000000f000000)=$9a7b CRC-16/X-25(4b1317000200000010000000)=$eb23 CRC-16/X-25(4b1317000200000011000000)=$f798 |
Gammatester |
ich bekomm da immer eine fehlermeldung (messagebox) "I/O error 105" was mache ich falsch?
oOXTCOo - So 19.07.09 21:20
okay, super es funktioniert!!!
23ed
3439
11f4
0d4f
5a6e
46d5
6318
7fa3
cd5a
d1e1
f42c
e897
bfb6
a30d
86c0
9a7b
eb23
f798
DANKE!
oOXTCOo - So 19.07.09 22:19
sorry doppelposts...
mir ist noch aufgefallen das die crc endsumme vertauscht werden muss...
so sieht nun mein fertiges ergebnis aus:
Delphi-Quelltext
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: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256:
| 4B1317000000000000000000ED237E 4B131700020000000100000039347E 4B1317000200000002000000f4117E 4B13170002000000030000004f0d7E 4B13170002000000040000006e5a7E 4B1317000200000005000000d5467E 4B131700020000000600000018637E 4B1317000200000007000000a37f7E 4B13170002000000080000005acd7E 4B1317000200000009000000e1d17E 4B131700020000000A0000002cf47E 4B131700020000000B00000097e87E 4B131700020000000C000000b6bf7E 4B131700020000000D0000000da37E 4B131700020000000E000000c0867E 4B131700020000000F0000007b9a7E 4B131700020000001000000023eb7E 4B131700020000001100000098f77E 4B131700020000001200000055d27E 4B1317000200000013000000eece7E 4B1317000200000014000000cf997E 4B131700020000001500000074857E 4B1317000200000016000000b9a07E 4B131700020000001700000002bc7E 4B1317000200000018000000fb0e7E 4B131700020000001900000040127E 4B131700020000001A0000008d377E 4B131700020000001B000000362b7E 4B131700020000001C000000177c7E 4B131700020000001D000000ac607E 4B131700020000001E00000061457E 4B131700020000001F000000da597E 4B1317000200000020000000d1a77E 4B13170002000000210000006abb7E 4B1317000200000022000000a79e7E 4B13170002000000230000001c827E 4B13170002000000240000003dd57E 4B131700020000002500000086c97E 4B13170002000000260000004bec7E 4B1317000200000027000000f0f07E 4B131700020000002800000009427E 4B1317000200000029000000b25e7E 4B131700020000002A0000007f7b7E 4B131700020000002B000000c4677E 4B131700020000002C000000e5307E 4B131700020000002D0000005e2c7E 4B131700020000002E00000093097E 4B131700020000002F00000028157E 4B131700020000003000000070647E 4B1317000200000031000000cb787E 4B1317000200000032000000065d7E 4B1317000200000033000000bd417E 4B13170002000000340000009c167E 4B1317000200000035000000270a7E 4B1317000200000036000000ea2f7E 4B131700020000003700000051337E 4B1317000200000038000000a8817E 4B1317000200000039000000139d7E 4B131700020000003A000000deb87E 4B131700020000003B00000065a47E 4B131700020000003C00000044f37E 4B131700020000003D000000ffef7E 4B131700020000003E00000032ca7E 4B131700020000003F00000089d67E 4B1317000200000040000000353e7E 4B13170002000000410000008e227E 4B131700020000004200000043077E 4B1317000200000043000000f81b7E 4B1317000200000044000000d94c7E 4B131700020000004500000062507E 4B1317000200000046000000af757E 4B131700020000004700000014697E 4B1317000200000048000000eddb7E 4B131700020000004900000056c77E 4B131700020000004A0000009be27E 4B131700020000004B00000020fe7E 4B131700020000004C00000001a97E 4B131700020000004D000000bab57E 4B131700020000004E00000077907E 4B131700020000004F000000cc8c7E 4B131700020000005000000094fd7E 4B13170002000000510000002fe17E 4B1317000200000052000000e2c47E 4B131700020000005300000059d87E 4B1317000200000054000000788f7E 4B1317000200000055000000c3937E 4B13170002000000560000000eb67E 4B1317000200000057000000b5aa7E 4B13170002000000580000004c187E 4B1317000200000059000000f7047E 4B131700020000005A0000003a217E 4B131700020000005B000000813d7E 4B131700020000005C000000a06a7E 4B131700020000005D0000001b767E 4B131700020000005E000000d6537E 4B131700020000005F0000006d4f7E 4B131700020000006000000066b17E 4B1317000200000061000000ddad7E 4B131700020000006200000010887E 4B1317000200000063000000ab947E 4B13170002000000640000008ac37E 4B131700020000006500000031df7E 4B1317000200000066000000fcfa7E 4B131700020000006700000047e67E 4B1317000200000068000000be547E 4B131700020000006900000005487E 4B131700020000006A000000c86d7E 4B131700020000006B00000073717E 4B131700020000006C00000052267E 4B131700020000006D000000e93a7E 4B131700020000006E000000241f7E 4B131700020000006F0000009f037E 4B1317000200000070000000c7727E 4B13170002000000710000007c6e7E 4B1317000200000072000000b14b7E 4B13170002000000730000000a577E 4B13170002000000740000002b007E 4B1317000200000075000000901c7E 4B13170002000000760000005d397E 4B1317000200000077000000e6257E 4B13170002000000780000001f977E 4B1317000200000079000000a48b7E 4B131700020000007A00000069ae7E 4B131700020000007B000000d2b27E 4B131700020000007C000000f3e57E 4B131700020000007D00000048f97E 4B131700020000007E00000085dc7E 4B131700020000007F0000003ec07E 4B1317000200000080000000ec057E 4B131700020000008100000057197E 4B13170002000000820000009a3c7E 4B131700020000008300000021207E 4B131700020000008400000000777E 4B1317000200000085000000bb6b7E 4B1317000200000086000000764e7E 4B1317000200000087000000cd527E 4B131700020000008800000034e07E 4B13170002000000890000008ffc7E 4B131700020000008A00000042d97E 4B131700020000008B000000f9c57E 4B131700020000008C000000d8927E 4B131700020000008D000000638e7E 4B131700020000008E000000aeab7E 4B131700020000008F00000015b77E 4B13170002000000900000004dc67E 4B1317000200000091000000f6da7E 4B13170002000000920000003bff7E 4B131700020000009300000080e37E 4B1317000200000094000000a1b47E 4B13170002000000950000001aa87E 4B1317000200000096000000d78d7E 4B13170002000000970000006c917E 4B131700020000009800000095237E 4B13170002000000990000002e3f7E 4B131700020000009A000000e31a7E 4B131700020000009B00000058067E 4B131700020000009C00000079517E 4B131700020000009D000000c24d7E 4B131700020000009E0000000f687E 4B131700020000009F000000b4747E 4B13170002000000A0000000bf8a7E 4B13170002000000A100000004967E 4B13170002000000A2000000c9b37E 4B13170002000000A300000072af7E 4B13170002000000A400000053f87E 4B13170002000000A5000000e8e47E 4B13170002000000A600000025c17E 4B13170002000000A70000009edd7E 4B13170002000000A8000000676f7E 4B13170002000000A9000000dc737E 4B13170002000000AA00000011567E 4B13170002000000AB000000aa4a7E 4B13170002000000AC0000008b1d7E 4B13170002000000AD00000030017E 4B13170002000000AE000000fd247E 4B13170002000000AF00000046387E 4B13170002000000B00000001e497E 4B13170002000000B1000000a5557E 4B13170002000000B200000068707E 4B13170002000000B3000000d36c7E 4B13170002000000B4000000f23b7E 4B13170002000000B500000049277E 4B13170002000000B600000084027E 4B13170002000000B70000003f1e7E 4B13170002000000B8000000c6ac7E 4B13170002000000B90000007db07E 4B13170002000000BA000000b0957E 4B13170002000000BB0000000b897E 4B13170002000000BC0000002ade7E 4B13170002000000BD00000091c27E 4B13170002000000BE0000005ce77E 4B13170002000000BF000000e7fb7E 4B13170002000000C00000005b137E 4B13170002000000C1000000e00f7E 4B13170002000000C20000002d2a7E 4B13170002000000C300000096367E 4B13170002000000C4000000b7617E 4B13170002000000C50000000c7d7E 4B13170002000000C6000000c1587E 4B13170002000000C70000007a447E 4B13170002000000C800000083f67E 4B13170002000000C900000038ea7E 4B13170002000000CA000000f5cf7E 4B13170002000000CB0000004ed37E 4B13170002000000CC0000006f847E 4B13170002000000CD000000d4987E 4B13170002000000CE00000019bd7E 4B13170002000000CF000000a2a17E 4B13170002000000D0000000fad07E 4B13170002000000D100000041cc7E 4B13170002000000D20000008ce97E 4B13170002000000D300000037f57E 4B13170002000000D400000016a27E 4B13170002000000D5000000adbe7E 4B13170002000000D6000000609b7E 4B13170002000000D7000000db877E 4B13170002000000D800000022357E 4B13170002000000D900000099297E 4B13170002000000DA000000540c7E 4B13170002000000DB000000ef107E 4B13170002000000DC000000ce477E 4B13170002000000DD000000755b7E 4B13170002000000DE000000b87e7E 4B13170002000000DF00000003627E 4B13170002000000E0000000089c7E 4B13170002000000E1000000b3807E 4B13170002000000E20000007ea57E 4B13170002000000E3000000c5b97E 4B13170002000000E4000000e4ee7E 4B13170002000000E50000005ff27E 4B13170002000000E600000092d77E 4B13170002000000E700000029cb7E 4B13170002000000E8000000d0797E 4B13170002000000E90000006b657E 4B13170002000000EA000000a6407E 4B13170002000000EB0000001d5c7E 4B13170002000000EC0000003c0b7E 4B13170002000000ED00000087177E 4B13170002000000EE0000004a327E 4B13170002000000EF000000f12e7E 4B13170002000000F0000000a95f7E 4B13170002000000F100000012437E 4B13170002000000F2000000df667E 4B13170002000000F3000000647a7E 4B13170002000000F4000000452d7E 4B13170002000000F5000000fe317E 4B13170002000000F600000033147E 4B13170002000000F700000088087E 4B13170002000000F800000071ba7E 4B13170002000000F9000000caa67E 4B13170002000000FA00000007837E 4B13170002000000FB000000bc9f7E 4B13170002000000FC0000009dc87E 4B13170002000000FD00000026d47E 4B13170002000000FE000000ebf17E 4B13170002000000FF00000050ed7E |
Gammatester - So 19.07.09 22:47
Das liegt daran, daß in den Daten die 16-Bit-Werte als einzelne Bytes dargestellt werden. Bei Ausgabe als Word sieht es so aus, als wenn die Bytes verdreht sind. Bei Delphi/Windows gilt Little-Endian, Du kannst deshalb die Bytes von CRC einzeln mit (CRC and $FF) und (CRC shr 8 and $FF) oder lo(CRC) und hi(CRC).
Gammatester
oOXTCOo - Mo 20.07.09 10:58
Gammatester hat folgendes geschrieben : |
Das liegt daran, daß in den Daten die 16-Bit-Werte als einzelne Bytes dargestellt werden. Bei Ausgabe als Word sieht es so aus, als wenn die Bytes verdreht sind. Bei Delphi/Windows gilt Little-Endian, Du kannst deshalb die Bytes von CRC einzeln mit (CRC and $FF) und (CRC shr 8 and $FF) oder lo(CRC) und hi(CRC).
Gammatester |
achso, dann ists klar.
ich habs jetzt einfach so gelöst das ich es als word ausgeben lasse und dann einfach vertausche und wieder als word ausgebe.
danke.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!