htons

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo harrylask,

Wie setzt man diese Funktion ein, in der Hilfe gibt es leider keine Beispiele,
Wäre dir sehr dankbar, wenn du mir da vielleicht ein bisschen weiterhelfen könntest,

Vielen Dank,

lg
 
Danke für deine Antworten,
das mit den Little und den Big endian ist mir schon klar, ich hab da in der letzten Zeit ziemlich viel "umgeschissen" um die richtige Reihenfolge zu bekommen,
ich habs halt mit dem memcpy gemacht und da bin ich auf diese Methode gestossen, was ja eigentlich die bessere Möglichkeit ist, oder was sagst du dazu,
ich hab halt geschaut, ob es sich um ein SG3 oder ein SG4Target handelt und hab dann je nachdem die Bytes umherkopiert,

schönen Tag noch,

lg
 
Hallo Harry,

Ich möchte einen Task schreiben, den ich für ein SG3 und ein SG4 Target hernehmen kann, wenn ich ein SG4 Target habe, dann muss ich ja das untere Byte und das obere Byte vertauschen, und deshalb ist mir die Funktion htons in den Sinn gekommen, da ich sehr viel in C++ programmiere und es dort eben diese Funktion zum Vertauschen gibt,
Bis jetzt habe ich mit der Funktion memset gearbeitet aber mir scheint, dass es mit htons etwas leichter bzw. übersichtlicher geht,

Was sagst du dazu?

lg
 
Hallo Hannes,

Ungetestet

Code:
  char Data[6]; /* Empfangspuffer oder wie auch immer */
  UINT X;
  UDINT Y;

#ifdef __i386__
  X=(Data[1] << 8) | Data[0];
  Y=(Data[5] << 24) | (Data[4] << 16) | (Data[3] << 8) | Data[2];
#else
  X=*(UINT*)&Data[0];
  Y=*(UDINT*)&Data[2];
#endif

so in etwa?

... Funktion memset gearbeitet aber mir scheint, dass es mit htons ...

memset und htons? Die eine Funktion setzt einen Speicherbereich die andere swappt, wie willst du die eine mit der anderen ersetzen, die tun doch nicht dasselbe, auch nicht im entgegengesetztem Sinne.

Grüsse, harrylask
 
Zuviel Werbung?
-> Hier kostenlos registrieren
naja mit memcpy muss ichs jetzt gleich richtig reinkopieren,
ich hätte eher die Idee gehabt, dass ich mir ein Array mache und egal ob SG3 oder SG4 -> ich kopiert mal rein und wenns ein SG4 Target ist, dass swappe ich das Ganze,
aber ich werds mal so lassen,

Eine andere Frage hätte ich noch,
wenn ich schreibe:
einArray[2] = &Struktur.Attribut;

ist das für ein SPS- programm ok oder sollte man das anders machen??
 
Zurück
Oben