Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: UDP Empfangen / ArtNet / ArtDMX

  Alt 23. Nov 2007, 11:47
Zitat von ljmarkus:
Mit einem HEX Viewer kann ich dann die richtigen Daten sehen. Nur wie kann ich die jetzt umwandeln und auf gewisse punkte
zugreifen ?
Ganz einfach, die Daten sind in einem String.
Angenommen du sollst an Position 15-16 einen 16 Bit Integer auslesen.
Delphi-Quellcode:
var
  x : string; // die empfangenen Daten
  p : PChar;
  wert : Word;
begin
  x := ...;
  p := PChar(x); // Zeiger auf die Daten
  wert := PWord(p+15)^;
end;
Noch angenehmer wird die Sache, wenn du einen Record hast, der die Datenstruktur repräsentiert.
Delphi-Quellcode:
TArtDMXRequest = packed record
  Version: Word; // die Inhalte sind rein fiktiv
  Counter: DWord;
  ...
end;

var
  request : TArtDMXRequest
  x : string;
begin

  // Sicherheitsprüfung
  if Length(x) < sizeof(request) then
    raise Exception.Create('zu wenig Daten!');

  // Daten vom String auf Record kopieren
  Move(x[1], request, SizeOf(request));
  request.Counter := request.Counter + 1; // Beispiel für Zugriff
Andreas
  Mit Zitat antworten Zitat