LaserFreak Forum
ILDA Parser
ILDA Parser
Hallo zusammen,
möchte folgendes realisieren: Eine vorhandene ILDA-Datei mit einem C# Programm auslesen. Problem: der notwendige "ILDA-Parser" fehlt mir. Könnte mir eventuell einer helfen, oder eine gute Internetseite vorschlagen, wo ich den ILDA-Standard erblicken kann. Wenn ich nämlich eine ILDA-Datei mit dem Texteditor öffne, kommen nur komische Ziffern und ich kann nichts erkennen.
Bitte um kurze Rückmeldungen!
MfG
Tobias
möchte folgendes realisieren: Eine vorhandene ILDA-Datei mit einem C# Programm auslesen. Problem: der notwendige "ILDA-Parser" fehlt mir. Könnte mir eventuell einer helfen, oder eine gute Internetseite vorschlagen, wo ich den ILDA-Standard erblicken kann. Wenn ich nämlich eine ILDA-Datei mit dem Texteditor öffne, kommen nur komische Ziffern und ich kann nichts erkennen.
Bitte um kurze Rückmeldungen!
MfG
Tobias
- lightwave
- Beiträge: 1953
- Registriert: Sa 13 Jul, 2002 12:00 pm
- Do you already have Laser-Equipment?: diverse Gas-, DPSS-, Diodenlaser, vers. Scanningsysteme, 3 Selbstbauprojektoren, USB+Netzwerk-DACs, HE-Laserscan
normale Beiträge sind schwarz/weiß
Moderation ist bunt - Wohnort: Bad Aibling // (D-Bayern)
Re: ILDA Parser
Halo Tobias,
erste Ergebnisseite bei google "ilda file format":
http://paulbourke.net/dataformats/ilda/
https://www.ilda.com/resources/Standard ... rev011.pdf
Hilft?
erste Ergebnisseite bei google "ilda file format":
http://paulbourke.net/dataformats/ilda/
https://www.ilda.com/resources/Standard ... rev011.pdf
Hilft?
- random
- Beiträge: 2153
- Registriert: Fr 03 Aug, 2001 12:00 pm
- Do you already have Laser-Equipment?: Dynamics, Easy-/NetLase, NetLaseLC
Some devices that emit light. - Wohnort: München - 85540 Haar
- Kontaktdaten:
Re: ILDA Parser
Du warst doch auch schon um µC Forum unterwegs, hast mittlerweile genug Tipps zusammen? Schon erste Ergebnisse?
Grün ist blauer als Rot...
NetLase-LC Firmware.
NetLase-LC Firmware.
-
- Beiträge: 20
- Registriert: Mi 26 Apr, 2017 5:43 pm
- Do you already have Laser-Equipment?: 5 Watt RGB
Re: ILDA Parser
Suche einfach nach dem JAVA Package nl.sijpesteijn.ilda . Dann hast Du genau was Du benötigst
Musst natürlich dann noch den JAVA Code nach C# umschreiben, obwohl dafür gibt es auch Converter.
VG
Thomas
Musst natürlich dann noch den JAVA Code nach C# umschreiben, obwohl dafür gibt es auch Converter.
VG
Thomas
- random
- Beiträge: 2153
- Registriert: Fr 03 Aug, 2001 12:00 pm
- Do you already have Laser-Equipment?: Dynamics, Easy-/NetLase, NetLaseLC
Some devices that emit light. - Wohnort: München - 85540 Haar
- Kontaktdaten:
Re: ILDA Parser
Oh backe, was ein Monster. In C ist das wesentlich einfacher.
Ich empfehle, das ILDA Format in nested struct/union Schablonen zu verpacken, sind nur ne Hand voll Zeilen. Der Streamreader buffert immer vielfache der ILDA Pakete, und castet die Schablonen auf den Readpointer. Dann einfach die Member auslesen. Klingt kompliziert, ist aber supereinfach, und man spart sich das byteweise Durchgehen.
Vor allem braucht man überhaupt kein malloc/new, was die Sache effizient macht. So nen ILDA reader bekommt man - gut lesbar - auf 200 Zeilen code plus 100 Zeilen für die Schablonen.
Tipp (einfach so runtergeschrieben aus dem ILDA Manual):
Code: Alles auswählen
typedef _PACKED struct { // 1..32
_PACKED union {
unsigned char buf[32]; // 32 byte
_PACKED struct {
_PACKED union {
char key[4]; // 1..4 "ILDA"
unsigned int keyNum;
_PACKED struct {
char key1;
char key2;
char key3;
char key4;
};
};
char ZERO0; // 5
char ZERO1; // 6
char ZERO2; // 7
char formatCode; // 8 Format Code
_PACKED union {
char frameName[8]; // 9..16 Frame Name
char paletteName[8]; // 9..16 Palette Name
};
char companyName[8]; // 9..16 Frame Name
_PACKED union {
short totalPoints; // 25..26 Total points
short totalColors; // 25..26 Total colors
};
_PACKED union {
short frameNumber; // 27..28 Frame Number
short paletteNumber; // 27..28 Palette Number
};
short totalFrames; // 29..30 Total Frames
char scannerHead; // 31 Scanner Head
char future; // 32 Reserved for future use
};
};
} ILDA_Header_t;
ILDA_Header_t *ILDA_Header = (ILDA_Header_t *) GetNextBuf(readPos);
Code: Alles auswählen
if(ILDA_Header->keyNum != 0x41444C49) // Error in "ILDA" key
...
__asm("revsh point.x, ILDA_Format->ILDA_Format0.x");
__asm("revsh point.y, ILDA_Format->ILDA_Format0.y");
Anm.: Die structs sind natürlich dicht, das "packed" nur dient dazu, dass der Compiler nicht auf dumme Gedanken kommt, da wir ja die Serialisierung benötigen. Gibt so schöne Sachen wie padding, verschieben, zerreissen etc. So kann ein Compiler eine Struktur nicht als base+offset, sondern überall vertreut im Speicher ablegen, wenn er das für sinnvoll erachtet. Sollte hier normalerweise auch ohne PACKED nicht passieren, da ja das buffer array in der gleichen union steckt.
Grün ist blauer als Rot...
NetLase-LC Firmware.
NetLase-LC Firmware.
-
- Beiträge: 20
- Registriert: Mi 26 Apr, 2017 5:43 pm
- Do you already have Laser-Equipment?: 5 Watt RGB
Re: ILDA Parser
Im Prinzip gebe ich Dir da zu 100% recht. Für Echtzeitstreaming mag das Performanceargument stimmen. Aber um offline eine ILDA Datei zuschreiben, kann man sich auch gekapselter Klassen bedienen. Meine Sachen die ich entwickele basieren zu 99% aus Java und 1% aus C Code, an den Stellen wo es an einer sehr engen Schnittstelle perfromancekritisch wird. Klar kann ich auch alles in Assembler oder C machen. Es geht bei einer objektorientierten Sprache wie Java in erster Linie um Produktivität und Fehlerfreiheit(nullpointer, garbage collction e.t.c.). Dabei kommt JAVA mit den neuen JIT-JVM schon sehr weit an die Geschwindigkeit von C heran. Und es ist hat sich etabliert für vieles klar abgekapselte Klassen zu benutzen. Auch wenn die einzelnen Klassen etwas Code Overhead haben, ist die Benutzung der Klassen dafür später viel übersichtlicher zu handeln.
liebe Grüße
Thomas
- adminoli
- Beiträge: 3950
- Registriert: Mi 04 Okt, 2006 11:37 am
- Do you already have Laser-Equipment?: Dynamics und diverse Projektoren
- Wohnort: nähe Schweinfurt/Würzburg, Bayern, Franken
Re: ILDA Parser
Java und Performance? Das ist ein Oxymoron!
-
- Beiträge: 20
- Registriert: Mi 26 Apr, 2017 5:43 pm
- Do you already have Laser-Equipment?: 5 Watt RGB
Re: ILDA Parser
Es sind etwa 70 % gegenüber C++. Ja in vielen Sachen ist JAVA langsamer als C/C++. Hängt aber alles sehr vom Anwendungsfall ab.
Nach meinen Messungen starteten und liefen die Java-Versionen anfangs langsamer. Für Szenarien mit kurzer Laufzeit und wenn nur die Ausführungszeit im Mittelpunkt steht, wäre C/C++ vorzuziehen.
Aber dank der Just-In-Time-Optimierungen wurden die Java-Versionen im Laufe der Zeit schneller. In länger andauernden Szenarien werden sie sogar schneller fertig als die C/C++-Versionen, weil dann der Maschinencode an die aktuelle Situation angepasst und neu (JIT) kompiliert wird.
Nach meinen Messungen starteten und liefen die Java-Versionen anfangs langsamer. Für Szenarien mit kurzer Laufzeit und wenn nur die Ausführungszeit im Mittelpunkt steht, wäre C/C++ vorzuziehen.
Aber dank der Just-In-Time-Optimierungen wurden die Java-Versionen im Laufe der Zeit schneller. In länger andauernden Szenarien werden sie sogar schneller fertig als die C/C++-Versionen, weil dann der Maschinencode an die aktuelle Situation angepasst und neu (JIT) kompiliert wird.
- random
- Beiträge: 2153
- Registriert: Fr 03 Aug, 2001 12:00 pm
- Do you already have Laser-Equipment?: Dynamics, Easy-/NetLase, NetLaseLC
Some devices that emit light. - Wohnort: München - 85540 Haar
- Kontaktdaten:
Re: ILDA Parser
Das würde ich gerne verstehen, wie ein JAVA (JIT-) compiliertes Programm besser sein kann als ein gut geschriebenes C oder C++ Programm
Aber langsam wirds off-topic
Grün ist blauer als Rot...
NetLase-LC Firmware.
NetLase-LC Firmware.
- random
- Beiträge: 2153
- Registriert: Fr 03 Aug, 2001 12:00 pm
- Do you already have Laser-Equipment?: Dynamics, Easy-/NetLase, NetLaseLC
Some devices that emit light. - Wohnort: München - 85540 Haar
- Kontaktdaten:
Re: ILDA Parser
Wie (er-)gehts dem TO mittlerweile? Schon was geschafft?
Grün ist blauer als Rot...
NetLase-LC Firmware.
NetLase-LC Firmware.
-
- Beiträge: 20
- Registriert: Mi 26 Apr, 2017 5:43 pm
- Do you already have Laser-Equipment?: 5 Watt RGB
Re: ILDA Parser
- adminoli
- Beiträge: 3950
- Registriert: Mi 04 Okt, 2006 11:37 am
- Do you already have Laser-Equipment?: Dynamics und diverse Projektoren
- Wohnort: nähe Schweinfurt/Würzburg, Bayern, Franken
Re: ILDA Parser
Java ist für mich wie früher Basic. Man benötigt immer einen Interpreter. Mit der Performance verhält es sich dadurch ähnlich.
Das Argument für Java ist halt immer: "Läuft überall", aber halt überall schlecht.
Außerdem ist JAVA seit einiger Zeit kostenpflichtig. Wenn du JAVA auf deinem Computer installierst und Unternehmer bist,
und kein Abo-Modell wählst, dann befindest du dich schon in der Illegalität.
Und Java (Oracle) kann teuer werden: Das Lizenzabonnement beginnt bei 2,13 € pro Nutzer bzw. 21,30 € pro Prozessor im Monat.
Das Argument für Java ist halt immer: "Läuft überall", aber halt überall schlecht.
Außerdem ist JAVA seit einiger Zeit kostenpflichtig. Wenn du JAVA auf deinem Computer installierst und Unternehmer bist,
und kein Abo-Modell wählst, dann befindest du dich schon in der Illegalität.
Und Java (Oracle) kann teuer werden: Das Lizenzabonnement beginnt bei 2,13 € pro Nutzer bzw. 21,30 € pro Prozessor im Monat.
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste