Wenn ich es jetzt richtig verstanden habe, werden in data[x] und data [x+1] grundlegend verschiedene Arten von Daten abgespeichert, nämlich in data[x] daten, und Data[x+1] irgend eine Art von Index. SO GEHT ES EINFACH NICHT!
Ja das hast du richtig verstanden.
Also ich versuche es mal zu erklären...
Ziel ist es, eine darstellung wie diese zu erzeugen:
http://home.netcom.com/~chip.f/viterbi/figs/ce_td.gif
Dazu verwende ich ein Image auf welches ich mit canvas zeichne.
Meine Hardware liest 50'000 mal ein ob es eine 1 oder eine 0 ist also oben oder unten. Ungeachtet dessen was es den nun ist,
werden diese 50'000 bytes übertragen. Ein byte entspricht binär 8 zuständen also zb 1001 1010 deshalb auch 8 kanäle.
Nun muss ich überprüfen wo in den 50'000 bytes eine änderung stattgefunden hat. Dazu wandle ich von Dezimal nach binär damit ich
jeden kanal "sehe" ob er 1 oder 0 war. speichere ich das abbild in einem array
Move(temp_data[0], old_data[0], Length(temp_data)); //Array kopieren
Danach mache ich die Dezimal -> Binär wandlung mit dem nächsten byte
temp_data[0] := Store_Buffer[i] mod 2;
und speichere
das ergebnis also die binär zahl in einem array.
Anschliessend vergleiche ich jede Binärstelle mit dem vorhergehenden wert. Wenn nun eine 1 anstelle der 0 steht, so weiss ich das sich der zustand damals an der leitung der hardware geändert hat.
Also speichere ich in das array data1 (für kanal 1) die änderung und damit ich weiss wo auf dem diagram speichere ich noch den index der 50'000 daten.
Dieser ist ja proportional zur zeit und gibt mir anschliessend die position wo ich den den strich nach oben oder unten zeichnen muss....
Hoffe es ist nun verständlich