Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

C++ Uebernahme von Daten aus einem Header in ein Array

copykiller / 22 Antworten / Flachansicht Nickles

Möchte die Daten aus der Datei OV.H auslesen und gewisses Parameter in ein Array übertragen.

Das Array sieht so aus:
myMsg.DATA[0]=0x40;
myMsg.DATA[1]=0x07;
myMsg.DATA[2]=0x20;
myMsg.DATA[3]=0x00;
myMsg.DATA[4]=0x00;
myMsg.DATA[5]=0x00;
myMsg.DATA[6]=0x00;
myMsg.DATA[7]=0x00;

Das OV sieht so aus:

struct ov_eintrag ov[MAX_OV_INDEX] =
{{0, 0, RO, 0, 0, 0, 0},
{0x2007, 0, RWZ, 2, 400, 3200, 2000}, //Maximalstrom
{0x2008, 0, RW, 2, 0xCFC0, 0xFFC0, 0xFFC0}, //Offset Iststrom 1
{0x2009, 0, RW, 2, 800, 1200, 1024}, //Korrektur Iststrom 1

möchte z.B. die Daten 0x2007 gesplittet ins Array [2](20) und [1](07)
die "0" in [3] und die "2000" also "0x7D0" in [5](07) und [4](D0).

Wie mach ich das am einfachsten????

Thx im Voraus

bei Antwort benachrichtigen
mr.escape mr.escape
mr.escape copykiller „habe das mal so versucht for int i 0 i myMsg.DATA 1 ov i .index myMsg.DATA 2 ov...“
Optionen

Das posten von quellcode ist nicht ganz unproblematisch. Immer wenn < im code auftaucht, kann das als beginn eines HTML-tags gedeutet werden. Das kann zu löchern im sourcecode führen.
Deshalb ist es erforderlich, vor dem posten alle < durch &lt; zu ersetzen.
Damit einrückungen sichtbar bleiben, müssen am zeilenanfang die leerzeichen oder tabs durch eine passende anzahl von &nbsp; ersetzt werden.
Aus z.b.
for(i=0;i<MAX_OV_INDEX;i++)
  foo();


wird dann
for(i=0;i&lt;MAX_OV_INDEX;i++)
&nbsp;&nbsp;foo();


ohne diese anpassung käme das raus:
for(i=0;i foo();

Soweit ich es aber aus dem HTML-sourcecode erkennen kann, soll wohl das hier stehen:
for(int i=0;i<MAX_OV_INDEX;i++){ //i gibt den Arrayindex
  myMsg.DATA[1]=ov[i].index;
  myMsg.DATA[2]=ov[i].index >>8;
  myMsg.DATA[3]=ov[i].sub_index;
  myMsg.DATA[4]=ov[i].def_wert;
  myMsg.DATA[5]=ov[i].def_wert >>8;
}

Das bedeutet, dass nacheinander alle ov nach myMsg.DATA[] gefüllt werden, ohne dass dann damit etwas passiert. Das ist vermutlich sehr sehr schnell erledigt, selbst bei etwas größeren werten von MAX_OV_INDEX.
Ich war eigentlich der meinung, es hätte geklappt?
http://www.nickles.de/thread_cache/537887762.html
http://www.nickles.de/thread_cache/537885077.html

mr.escape

"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen