PXML Dateiformat Definition


EvilDragon

Administrator
Staff member
Joined
Mar 4, 2003
Messages
29,986
Age
46
Location
Ingolstadt
Hi,

ich hab mal kurz die Definition des PXML-Dateiformates veröffentlicht.

Was zum Henker ist PXML?
PXML ist eine Datei welche bei jedem Pandora-Programm mitgeliefert werden sollte. Sie enthält verschiedenste Infos über ein Spiel oder Tool, z.B. den Namen, Beschreibung, Screenshot, Icon, Kategorie, Dateizuordnung, etc.

Jede GUI oder Explorer für den Pandora sollte diesen Standard unterstützen um die Verwendung der Pandora für den normalen Benutzer so einfach wie möglich zu halten.

Hier sind die Vorteile dieses Systems:
  • Spiele / Programme können in normalen ZIP-Archiven verteilt werden
  • Spiele / Programme können entweder von Hand heruntergeladen und irgendwo auf der SD Karte entpackt werden - oder vollautomatisch von einem Paketmanager auf der Pandora (dieser kann auch automatisch die Verzeichnisse auf der SD-Karte strukturieren um die Karte sortiert zu halten)
  • Man muss keine Spiele / Programme mehr von Hand in die GUI aufnemen: Sie werden automatisch in der richtigen Kategorie / Unterkategorie angezeigt.
  • Man kann Verzeichnisse auf der SD-Karte umbenennen oder verschieben - die GUI zeigt sie trotzdem richtig an startet sie weiterhin problemlos.
  • Um etwas zu deinstallieren muss einfach das Verzeichnis gelöscht werden.
  • Wenn man eine neue GUI testen möchte, muss man nichts einrichten: Solange diese PXML-Dateien unterstützt, sind alle Programme automatisch richtig einsortiert.
  • Automatische Dateizuordnungen

Dies hier gilt für Programme, die vom Benutzer installiert werden. Die Firmware mitsamt Updates wird ein standard Linux-Packagemanagement verwenden.

Die PXML-Definition (auf Englisch) gibts hier.

Fragen, Anmerkungen, Vorschläge? Sind jederzeit willkommen :)
 
Sehr schön! Grosses Lob an die Devs bitte! :wink:

Danke an ED und craigix und die anderen fünf das ihr euch solche Mühe gebt. Ihr verdient den Dank.


Ich bin dafür das wir alle eine Kleinigkeit an ED spenden wenn die ersten Pandoras verkauft sind ... nur so aus Dankbarkeit und zum Erhalt des Forums....

mfg
tom
 
Ich würde noch zwei punkte einführen:
a) eine unique ID, die von irgendeiner zentralen Stelle vergeben werden
b) Dependencies, hier könnte man dann die unique IDs eingeben, die das Programm braucht zum starten
dann kann der Paketmanager auch immer schön rumnörgeln wenn irgendwas fehlt ;)
Man könnte dann irgendwo aufschlüsseln welche unique ID zu welchem Programm gehört oder man verpackt das in einer extra Datei für den Paketmanager.
 
r2d2 said:
Ich würde noch zwei punkte einführen:
a) eine unique ID, die von irgendeiner zentralen Stelle vergeben werden
b) Dependencies, hier könnte man dann die unique IDs eingeben, die das Programm braucht zum starten
dann kann der Paketmanager auch immer schön rumnörgeln wenn irgendwas fehlt ;)
Man könnte dann irgendwo aufschlüsseln welche unique ID zu welchem Programm gehört oder man verpackt das in einer extra Datei für den Paketmanager.

das wäre eine idee, aber ich würde eher alles ins paket packen, was man braucht. ok, das würde evtl zu unnötigen speicherplatz verbrauch führen. aber, so muss man sich den kram nicht zusammen suchen....
 
Erscheint mir auch sehr praktisch und sinnvoll mit diesen Dateien. Hab auch schon kurz die Dokumentation überflogen. So eine PXML-Datei kann man relativ einfach mit einem normalen Texteditor erstellen ja? Wenn ich auch für die Pandora nochmal ein kleines Spielchen schreibe, dann wäre es sozusagen "nett", wenn ich dazu auch eine PXML-Datei gebe, verstehe ich das richtig? :wink:
 
Die Datei läßt sich mit einem Texteditor editieren, ja.
Ich will, aber auch ein Win / Linux / MacOS Tool schreiben, welches die Datei automatisch erstellen kann.

Dependencies sind hier NICHT nötig, da die Programme nur die Libraries dynamisch linken sollen, die in der Firmware mit integriert sind.
Alle wichtigen Sachen werden in der Firmware integriert sein (sie wird ja auch erweitert), so dass die meisten Programme mit dynamisch gelinkten Libraries auskommen. Statisch linken muss man nur, wenn man extrem seltene Libraries nutzt. Oder man integriert diese einfach mit im Archiv ;)
 
Was passiert eigentlich bei Konflikten? Also ich starte den Browser der 600Mhz verlangt und danach den MP3-Player, der denkt, das System käme mit 10Mhz aus? Oder sich 7 Programme um die Endung TXT streiten?
Sind in "Cathegory" Alias-Namen? Oder hat man am Ende "Spiele","Games","Jeux" etc.?
Und wie wäre es zur Übersicht "title", "association" und "description" zu Gruppieren?
 
Ich wuerde das der GUI ueberlassen. Unbekannte Kategorie: Nachfrage, ob die angelegt werden soll oder der neue Name ein Alias fuer eine bestehende Kategorie ist. Sprich:
Games = Games; Spiele; Jeux; Spiiele etc.

Klingt auf jedenfall nicht uebel. Ich bin jetzt so langsam doch hin und hergerissen zwischen Pandora und Wiz :)
 
Die Kategorieren sollte echt jedes GUI für sich selbst festlegene.
Und das mit der Taktrate läst sich ganz einfach lösen,
das System Taktet einfach in der gerade höchst benötigten Taktrate. Also wenn man 3 Programme offen hat, 2 sind mit 400 mhz und eines mit 700 mhz angegeben, so wird der Prozessor auf 700 getaktet.
mfg
xoquox

P.S. Die Taktraten würde ich als festen Zahlenwert machen, also zB 1-10 so ist dann zb 1 = 200mhz und 10=900mhz, nicht das dann beim einen in der pxml datei 450mhz stehen und beim nächsten 436mhz.
 
xoquox said:
Die Kategorieren sollte echt jedes GUI für sich selbst festlegene.

Das kann die GUI ja machen - sie kann die Kategorien ja ignorieren.
Würde ich aber nicht empfehlen - woher soll die GUI denn z.B. wissen, wenn Du 40 Spiele z.B. auf die Karte kopierst, in welche Kategorien sie diese einsortieren soll? Soll die bei jedem Spiel einzeln nachfragen?
Dann kann ich Dir garantieren, dass nicht viele Standardbenutzer diese GUI nutzen würden...
Und das mit der Taktrate läst sich ganz einfach lösen,
das System Taktet einfach in der gerade höchst benötigten Taktrate. Also wenn man 3 Programme offen hat, 2 sind mit 400 mhz und eines mit 700 mhz angegeben, so wird der Prozessor auf 700 getaktet.

P.S. Die Taktraten würde ich als festen Zahlenwert machen, also zB 1-10 so ist dann zb 1 = 200mhz und 10=900mhz, nicht das dann beim einen in der pxml datei 450mhz stehen und beim nächsten 436mhz.

Die Taktraten sind eigentlich nur relevant, wenn ein Programm im Exklusiv-Modus (also nicht Multitasking) läuft.
Im Multi-/ oder Semitasking-Modus sollte die CPU sowieso dynamisch nach Leistung arbeiten.

BTW: Es sind noch ein paar unschöne nicht XML-Kompatible Standards drin (wurde ich auf gp32x.com hingewiesen).
Diese werden auch noch ausgebessert :)
 
Wie wäre es wenn in der Datei noch eine URL zu eventuell aktualisierten Programmversionen zu finden ist? So könnte man ganz einfach automatisch überprüfen lassen ob es Updates zu den Programmen bzw. Spielen gibt und diese ggf. sogar automatisch installieren.
 
Das klingt ja als ob das Pandora-System wirklich Idiotensicher wird - Fantastisch!
Ist doch klar, das ich so etwas liebe!!! ;-)

Aber ich hab da eine Menge Fragen zum PXML:

Was ist, wenn ein Projekt mehrere Entwickler hat. Kann man der PXML dann mehrere Autoren nennen? In welcher Reihenfolge sollte man die nennen, der Letzt aktive Entwickler zuletzt oder zuerst? Oder bietet so ein Verzeichnis/Programm-Verweis leider nur die Möglichkeit einen einzigen Autoren zu besitzen?

Die Idee mit der Eindeutigen Id. finde ich interessant, doch so eine art EAN würde zuviel Verwaltungsaufwand bedeuten. Doch so etwas sollte doch auch einfach über Name+Version und zusäzlicher Prüf-Summe (CRC32, MD5 ?) vollkommen ohne notwendige Zentrale klar kommen -oder?
Wobei ich eine Prüfsumme in der XML zu jeder Datei im Archiv/Verzeichnis für absolut Gewinnbringende Option halte. Dann weiß die GUI, ob die Beschreibung wirklich 100% zum aktuellen Verzeichniszustand paßt, oder vielleicht aber nur noch ein Glücklicher Zufalls wäre, wenn's noch paßt. Die PXML könnte dann im Falle eines Updates auch dazu herangezogen werden, das nur die Dateien heruntergeladen werden, die wirklich ersetzt werden müssen... - nicht Wahr?

Wenn der Autor die Möglichkeit sieht, sein Programm in mehrere Kategorien (oder Themen) zu zuordnen, kann er auch mittels der PXML der GUI zweit und dritt vorschläge unterbreiten? Vielleicht gibt die GUI auch die Möglichkeit her, Programme mit diesen TAGs entsprechend in Such-Listen zusammenzustellen, wodurch also einige Programme dann in mehreren Themenbereichen auftauchen... - oder läßt sich ein Programm wirklich nur einem Thema zu ordnen?
Übrigens erwarte ich schon von einer guten GUI, das man dort noch einmal selbst bestimmen kann, in welcher Liste welches Programm wiederzufinden ist - das versteht sich doch beinahe von selbst - nicht?

Welches Format sollte ein Icon haben? Vermutlich PNG...? Aber welche Pixelgröße? Nur eine oder doch ein paar mehr verschiedene Auflösungen? Steht diese dann in der PXML-Datei oder muß die GUI erst das Icon-Verzeichnis oder wie man auch immer mehre Icons organisiert selbst untersuchen!?

Und zuletzt und am Wichtigsten:
Wenn man Ed und den Entwicklern etwas Spendet, bekommen die dann Ärger mit dem Finanzamt? Oder gilt das Projekt bereits als Allgemein nützliche Hilfsorganisation, und das ganze ist sogar schon von den Steuern absetzbar?
 
Mae said:
Wenn der Autor die Möglichkeit sieht, sein Programm in mehrere Kategorien (oder Themen) zu zuordnen, kann er auch mittels der PXML der GUI zweit und dritt vorschläge unterbreiten? Vielleicht gibt die GUI auch die Möglichkeit her, Programme mit diesen TAGs entsprechend in Such-Listen zusammenzustellen, wodurch also einige Programme dann in mehreren Themenbereichen auftauchen... - oder läßt sich ein Programm wirklich nur einem Thema zu ordnen?
würd mich auch freuen, wenn das machbar wäre
 
Hmm... Soll das XML nicht einfach nur Meta-Informationen zu einem Spiel bereitstellen, und _keine_ Paketverwaltung sein? Auch die Frage, in welcher Reihenfolge Entwickler genannt werden sollen ist mir nicht ganz schluessig :huh:
 
eworm said:
Wie wäre es wenn in der Datei noch eine URL zu eventuell aktualisierten Programmversionen zu finden ist? So könnte man ganz einfach automatisch überprüfen lassen ob es Updates zu den Programmen bzw. Spielen gibt und diese ggf. sogar automatisch installieren.

Das soll zentral über unser Archiv abgewickelt werden. Sonst haben wir das gleiche wie damals beim gp32: Die Programmierer hören mit ihrere Seite auf und dann findet das Programm nicht mal mehr die Seite..
 
"PXML"? ich erinnere mich an ne Diskussion im englischen Thread wo über ein mögliches Kürzel für diese Art von Dateien diskutiert wurde. Ich selber fand den ".PWN" Vorschlag (für ausführbare Pandora Dateien) als Endung Geil. :lol:

Auf jeden Fall ist diese Art der Archivierung und Verwaltung von Programmen ne tolle Sache. Viel einheitlicher und genormter als das GP2X Programm-Chaos.
 
purestrain said:
Hmm... Soll das XML nicht einfach nur Meta-Informationen zu einem Spiel bereitstellen, und _keine_ Paketverwaltung sein? Auch die Frage, in welcher Reihenfolge Entwickler genannt werden sollen ist mir nicht ganz schluessig :huh:

Nur Meta-Informationen zu einem Spiel.
Paketverwaltung würde zum Einen eine Menge Flexibilität nehmen und macht Probleme, wenn die SD-Karte neu formatiert wird, etc.

Paketverwaltung passiert NUR im NAND für die Firmware, alles andere soll mit entpacken und kopieren gehen. Ohne irgendwelche Datenbankeinträge, etc.
 
EvilDragon said:
eworm said:
Wie wäre es wenn in der Datei noch eine URL zu eventuell aktualisierten Programmversionen zu finden ist? So könnte man ganz einfach automatisch überprüfen lassen ob es Updates zu den Programmen bzw. Spielen gibt und diese ggf. sogar automatisch installieren.

Das soll zentral über unser Archiv abgewickelt werden. Sonst haben wir das gleiche wie damals beim gp32: Die Programmierer hören mit ihrere Seite auf und dann findet das Programm nicht mal mehr die Seite..

Ok, ist ja nicht verkehrt das zentral im Archiv zu machen. Viel wichtiger finde ich aber ob das in irgend einer Form automatisch passieren kann. Ich habe keine Lust dazu mich regelmäßig durch das Archiv zu klicken um zu schauen was sich geändert hat.
 
Back
Top