#1 [↑][↓] 23-05-2012 19:17:18

David W.
Membre
Lieu : Haguenau - LFSH
Inscription : 15-03-2008
Renommée :   22 
Site Web

[FSX] Compilation de jauge XML

Bonsoir,

En parcourant le SDK, je suis tombé sur la compilation de jauge en fichier SPB (Sim-Prop Binary), l'avantage d'avoir une jauge XML en binaire; voir ex. ci-dessous:

Creating an SPB file
XML gauges, Missions and some Autogen files can either be in XML or SPB (Sim-Prop Binary) format. If an XML version of a file is found in the same folder as an SPB file, the SPB file will be loaded in preference to the XML file as the binary format is faster to load that its XML equivalent. Because of this it makes sense to move an SPB file out of the folder where editing work is being done on its XML equivalent.

Source: http://msdn.microsoft.com/en-us/library/cc526953.aspx (Voir en bas de page)

926372Sanstitre.jpg

Alors j'ai aucun problème à créer un fichier SPB en partant de fichier XML présent dans le répertoire "..SDK\Mission Creation Kit\Mission Samples\Tutorials" (fichier pour la création de Missions FSX) mais alors pour des jauges, j'ai cette erreur (Les chemins complets ont été volontairement supprimés):

>simpropcompiler 2spb -symbols "...\propdefs\*.xml" "...\gauge_test.xml" gauge_test.spb

Microsoft Corp. SimProp data file compiler and converter 10.0.61637.0 (FSX-Xpack.20070926-1421)
Copyright ® Microsoft Corporation. All rights reserved. Copyright ® Microsoft Corporation. All rights reserved.
...\gauge_test.xml(1) : error 83600FB7: AceXML Parser Error : 'Gauge' -
...\gauge_test.xml(0) : error 83600fb7 : Read failed.

Le code de la jauge:

<Gauge Name="test_1" Version="1.0">
	<Image Name="gauge_test.bmp" />
	<Element>
		<Position X="2" Y="10"/>
			<Text X="146" Y="24" Length="20" Font="Courier New" Adjust="Left" Color="Red" Bright="Yes">
			<String>%((L:GTX_327_key_8, bool))%!d!</String>
		</Text>
	</Element>
</Gauge>

Puis j'ai vu qu'il y avait du "charset" j'ai donc rajouté ceci "<?xml version="1.0" encoding="UTF-8"?>" mais la encore rien n'y fait toujours la même erreur :(

Si quelqu'un a des idées, il est le bienvenue wink

Hors ligne

#2 [↑][↓] 23-05-2012 20:00:53

FlipFlap
Membre
Inscription : 13-03-2008

Re : [FSX] Compilation de jauge XML

Bonsoir

voir réponse de "l'autre côté" ... wink

Hors ligne

#3 [↑][↓] 23-05-2012 20:06:32

David W.
Membre
Lieu : Haguenau - LFSH
Inscription : 15-03-2008
Renommée :   22 
Site Web

Re : [FSX] Compilation de jauge XML

Retour de l'autre côté :)

Merci FlipFlap !!

Hors ligne

#4 [↑][↓] 11-08-2012 10:11:20

David W.
Membre
Lieu : Haguenau - LFSH
Inscription : 15-03-2008
Renommée :   22 
Site Web

Re : [FSX] Compilation de jauge XML

Je viens de comprendre le problème, j'utilise du code XML venant de FS9. Il est donc impossible de parser le document. Du coup, je dois revoir les codes XML créer pour qu'ils soient au standard FSX (Documentation SDK).

Maintenant, en réalisant la compilation sur ce bout de code:

<?xml version="1.0" encoding="UTF-8"?>

<SimBase.Document
        Type="AceXML"
        version="1,0"
        id="Test_SPB">
    <Descr>Testing compil SPB file</Descr>
    <SimGauge.Gauge id="Gauge">
        <FloatPosition>0.000,0.000</FloatPosition>
        <Size>100,110</Size>
		    <Element id="Polygon_Test">
            <FloatPosition>50.000,60.000</FloatPosition>
            <Polygon id="Polygon">
                <Axis>50.000,60.000</Axis>
                <FillColor>red</FillColor>
                <LineWidth>1</LineWidth>
                <LineColor>red</LineColor>
                <Point id="Point">
                    <FloatPosition>48.000,62.000</FloatPosition>
                </Point>
                <Point id="Point">
                    <FloatPosition>50.000,12.000</FloatPosition>
                </Point>
                <Point id="Point">
                    <FloatPosition>52.000,62.000</FloatPosition>
                </Point>
            </Polygon>
		</Element>
    </SimGauge.Gauge>
</SimBase.Document>

J'ouvre avec "Microsoft Aces Resource Editor" puis "File > Export Document..." en prenant soin de définir le fichier *.SPB

947221601.jpg

Je me retrouve avec ceci, c'est compilé et impossible à remanier:

802082471.jpg

Et ma jauge fonctionnel sous FSX:

744917351.jpg

Et Blop !

Vais pouvoir me garantir une petite protection du code XML en plus d'améliorer les performances de cette dernière :)

Hors ligne

#5 [↑][↓] 02-06-2016 09:36:05

JRdE
Membre
Lieu : Perpignan
Inscription : 11-12-2010
Renommée :   

Re : [FSX] Compilation de jauge XML

Bonjour,
je n'ai pas bien compris dans ces posts certaines de choses dont vous parliez :
- qu'est-ce que "l'autre côté" ?
- quel est l'en-tête " normal" d'une gauge XML FSX, ou bien, et ce serait une réponse plus intéressante pour moi, où peut on-trouver un mode d'emploi ou une aide de ace.exe, l'éditeur de ressources ?

Merci de vos réponses. si vous vous en souvenez...  c'est loin, 2012, et il y a eu la fin du monde depuis !


Jean, LFMP - ATIS 04 68 63 75 12
Hydravions, tagazous au raz-du-gazon, dans les gorges et sous les ponts,
Explorations lointaines, et Coups d'Etats

Hors ligne

#6 [↑][↓] 02-06-2016 11:08:24

Lagaffe
Membre
Lieu : LFPO / retraité
Inscription : 13-03-2008

Re : [FSX] Compilation de jauge XML

Bonjour,

De l'autre côté signifie qu'à l'epoque David avait ouvert 2 post et l'autre côté désiganit le send post.

Ace Ressources Manager, me semble-t il est dans le SDK.

Pour ce qui est de l'entête XML, cela se rapporte à la ligne suivante:

<?xml version="1.0" encoding="UTF-8"?>

Néanmoins, la syntaxe XML utilisée pourdécrire une jauge FSX et une gauge FS9 sont différentes:
pour FS9:

<Gauge Name="test_1" Version="1.0">
    <Image Name="gauge_test.bmp" />
    <Element>
        <Position X="2" Y="10"/>
            <Text X="146" Y="24" Length="20" Font="Courier New" Adjust="Left" Color="Red" Bright="Yes">
            <String>%((L:GTX_327_key_8, bool))%!d!</String>
        </Text>
    </Element>
</Gauge>

pour FSX:

<SimBase.Document
        Type="AceXML"
        version="1,0"
        id="Test_SPB">
    <Descr>Testing compil SPB file</Descr>
    <SimGauge.Gauge id="Gauge">
        <FloatPosition>0.000,0.000</FloatPosition>
        <Size>100,110</Size>
            <Element id="Polygon_Test">
            <FloatPosition>50.000,60.000</FloatPosition>
            <Polygon id="Polygon">
                <Axis>50.000,60.000</Axis>
                <FillColor>red</FillColor>
                <LineWidth>1</LineWidth>
                <LineColor>red</LineColor>
                <Point id="Point">
                    <FloatPosition>48.000,62.000</FloatPosition>
                </Point>
                <Point id="Point">
                    <FloatPosition>50.000,12.000</FloatPosition>
                </Point>
                <Point id="Point">
                    <FloatPosition>52.000,62.000</FloatPosition>
                </Point>
            </Polygon>
        </Element>
    </SimGauge.Gauge>
</SimBase.Document>


@+ Didier
mini-Logo-Beaver-small.jpg
W10 Pro 64b Build 22H2 - Boitier HAF 932 - Z390 STRIX-F - 9900K - 2x16 Go - NVidia 3060 Ti 8 Go - Alim Corsair 800W - Ecran 34" - NVidia Studio ready 536.23
P3D v5.4 = http://www.pilote-virtuel.com/img/members/53/P3Dv5HF-Reglages-A.jpg - MSFS Deluxe/STORE - X-Plane 12B

En ligne

#7 [↑][↓] 02-06-2016 13:57:49

Fdd_fr
Membre
Lieu : entre LFPG et LFPO
Inscription : 22-03-2011
Renommée :   57 
Site Web

Re : [FSX] Compilation de jauge XML

Si tu veux compiler en SPB pour proteger ta gauge, il me semble avoir lu quelque part que c'était peine perdue, car il existe des softs qui peuvent décompiler.

A vérifier, mais je pense que cela doit être vrai, sinon, beaucoup d'auteurs de gauges compileraient en SPB pour éviter de se faire copier...

[large]Edit :[/large]

Voilà, il s'appelle "spb2xml.exe"


Et pour la parfaite compatibilité de ton fichier XML, pense qu'il faut ajouter 3 caractères "invisibles" en entête de fichier pour qu'il soit un vrai fichier XML (header de la norme XML) :

les caractères 239, 187 et 191. (EF BB BF en héxadécimal si tu les rajoute avec un éditeur Hexa)

Dernière modification par Fdd_fr (02-06-2016 14:04:02)


Base de donnée SID/STAR FreeNav DB Group
Mon site photo
Win XP32 tweaké - I7 2700K@4,7Ghz - 4Go RAM - 3 SSD - 2 Velociraptors - 5 DD classiques - Nvidia 560 GTI - Ecran 26" 1920x1200 - FSX+ASE2012+pas mal de FTX et d'aéroports.

Hors ligne

#8 [↑][↓] 02-06-2016 17:55:16

FlipFlap
Membre
Inscription : 13-03-2008

Re : [FSX] Compilation de jauge XML

L'autre côté c'était par ici.

Hors ligne

#9 [↑][↓] 02-06-2016 19:01:47

David W.
Membre
Lieu : Haguenau - LFSH
Inscription : 15-03-2008
Renommée :   22 
Site Web

Re : [FSX] Compilation de jauge XML

A l'époque, la volonté de convertir une jauge XML était effectivement une manière de "protéger" mes créations. Nous sommes d'accord que cela devient vite obsolète à mesure que des logiciels peuvent "décompiler" les fichiers SPB.

A noter qu'il y a avait un avantage sur le temps de chargement de la jauge. Le format SPB étant du binaire, il n'y a pas de parser qui augmente le temps de chargement. La encore vous me direz qu'avec les machines d'aujourd'hui, c'est l'ordre de quelques millisecondes de gagnés. Cela se trouve ridicule, mais sur d'ancienne machine cela vaut peut-être le coups.

Et dernier point, j'aime avant tout fouiner les recoins du SDK. Et ainsi voir le résultat de cette conversion SPB wink

Sinon je n'avais pas connaissance des trois caractères dans les fichiers XML. Serais-tu m'en dire plus Fdd_fr à se propos ?

Hors ligne

#10 [↑][↓] 03-06-2016 08:53:11

Fdd_fr
Membre
Lieu : entre LFPG et LFPO
Inscription : 22-03-2011
Renommée :   57 
Site Web

Re : [FSX] Compilation de jauge XML

Bien sur. Tu peux voir ici ces 3 caractères en entête de fichier :

335735Image1.jpg

Ouvre avec un éditeur hexadécimal un fichier Plan de vol de FSX ou une gauge XML fournit avec FSX et tu les verras.

La plupart des formats de fichiers possèdent un "header" qui permet leurs identification par les logiciels, sans avoir besoin pour cela de connaitre forcément l'extension du fichiers.

Ces headers sont constitués d'une suite de caractères toujours identique pour un format déterminés. C'est la carte d'identité du fichier.

Par exemple, un fichier JPG commence toujours par les 4 caractères suivants : ÿØÿà

Et bien un fihier XML doit toujours commencer par les 3 caractères  qui sont en fait les caractères  239, 187 et 191.

Ces caractères étant supérieur à 127, il ne sont pas afficher dans un éditeur de texte norme ASCII.

Si tu crée  un fichier XML avec un logiciel dédié, alors celui-ci implémentera automatiquement ce header. Mais si comme moi tu écris tes gauges avec Notepad++, alors il faut les ajouter manuellement car un éditeur de texte ne les insère pas automatiquement.

Même si dans le cas de FS, cela ne sert probablement à rien, je préfère respecter la norme car cela ne coute rien et comme j'avais écris une gauge qui met à jour le fichier plan de vol de FSX quand on ajoute ou supprime des waypoints d'un plan de vol, je préferai respecter la norme, car déjà que FSX balance un message d'erreur bidon quand on modifie le fichier plan de vol...je voulais absolument faire du 100% conforme laugh

Voici par exemple un exemple pour crée l'entête d'un fichier XML plan de vol avec une gauge :

(L:Make_Backup_FPLN,bool) 0 == if{
                                    'Path_FSX_documents' (>C:XMLVARS:SearchVarName,string) (C:XMLVARS:StringValue,string) s0
                                    'VarFlightPlanNameFile' (>C:XMLVARS:SearchVarName,string) (C:XMLVARS:StringValue,string) scat (>C:LOGGER:openWrite)
                                    }
                                els{
                                    'Path_FSX_documents' (>C:XMLVARS:SearchVarName,string) (C:XMLVARS:StringValue,string) s0
                                    'VarFlightPlanNameFile' (>C:XMLVARS:SearchVarName,string) (C:XMLVARS:StringValue,string) scat
                                    '.FD-FMC_Backup' scat (>C:LOGGER:openWrite)
                                    }
239 chr 187 chr scat 191 chr scat '&lt;?xml version="1.0" encoding="UTF-8"?&gt;' scat (>C:LOGGER:String)
'' (>C:LOGGER:String)
'&lt;SimBase.Document Type="AceXML" version="1,0"&gt;' (>C:LOGGER:String)
'    &lt;Descr&gt;AceXML Document&lt;/Descr&gt;' (>C:LOGGER:String)
'    &lt;FlightPlan.FlightPlan&gt;' (>C:LOGGER:String)
'        &lt;Title&gt;' (C:fs9gps:FlightPlanTitle,string) scat '&lt;/Title&gt;' scat (>C:LOGGER:String)
(C:fs9gps:FlightPlanFlightPlanType,enum) 0 == if{ '        &lt;FPType&gt;NONE&lt;/FPType&gt;' (>C:LOGGER:String) }
(C:fs9gps:FlightPlanFlightPlanType,enum) 1 == if{ '        &lt;FPType&gt;VFR&lt;/FPType&gt;' (>C:LOGGER:String) }
(C:fs9gps:FlightPlanFlightPlanType,enum) 2 == if{ '        &lt;FPType&gt;IFR&lt;/FPType&gt;' (>C:LOGGER:String) }
(C:fs9gps:FlightPlanRouteType,enum) 1 == if{ '        &lt;RouteType&gt;VOR&lt;/RouteType&gt;' (>C:LOGGER:String) }
(C:fs9gps:FlightPlanRouteType,enum) 2 == if{ '        &lt;RouteType&gt;LowAlt&lt;/RouteType&gt;' (>C:LOGGER:String) }
(C:fs9gps:FlightPlanRouteType,enum) 3 == if{ '        &lt;RouteType&gt;HighAlt&lt;/RouteType&gt;' (>C:LOGGER:String) }
'        &lt;CruisingAlt&gt;' (C:fs9gps:FlightPlanCruisingAltitude,Feet) scat '&lt;/CruisingAlt&gt;' scat (>C:LOGGER:String)
'        &lt;DepartureID&gt;' (C:fs9gps:FlightPlanDepartureAirportIdent,string) scat '&lt;/DepartureID&gt;' scat (>C:LOGGER:String)

.../...

Dernière modification par Fdd_fr (03-06-2016 08:59:51)


Base de donnée SID/STAR FreeNav DB Group
Mon site photo
Win XP32 tweaké - I7 2700K@4,7Ghz - 4Go RAM - 3 SSD - 2 Velociraptors - 5 DD classiques - Nvidia 560 GTI - Ecran 26" 1920x1200 - FSX+ASE2012+pas mal de FTX et d'aéroports.

Hors ligne

#11 [↑][↓] 04-06-2016 23:07:35

RBLeDoC
Membre
Lieu : Marseille
Inscription : 16-03-2008
Renommée :   

Re : [FSX] Compilation de jauge XML

David W bien connu pour son obsession et phobie de se faire pirater !

La meilleure façon de protéger ses créations c'est de les garder pour soi

RBLeDoC solv_gif=D=D

Dernière modification par RBLeDoC (04-06-2016 23:08:09)

Hors ligne

#12 [↑][↓] 05-06-2016 10:41:18

Fdd_fr
Membre
Lieu : entre LFPG et LFPO
Inscription : 22-03-2011
Renommée :   57 
Site Web

Re : [FSX] Compilation de jauge XML

Il ne faut pas psychoser avec le piratage; Seules les gauges simples, généralement uniquement graphique peuvent être facilement copier.

Dès que tu as une gauge, avec des algorithmes faisant appel à pas mal de variables "L:" qui interagissent entre plusieurs fichiers XML, cela devient mission impossible pour quelqu'un de copier une partie du code, car il ne peut pas s'y retrouver dans les tenants et aboutissants.

OU cela demanderaient tellement de temps que la personne ira plus vite à écrire toute seule son propre code laugh


Base de donnée SID/STAR FreeNav DB Group
Mon site photo
Win XP32 tweaké - I7 2700K@4,7Ghz - 4Go RAM - 3 SSD - 2 Velociraptors - 5 DD classiques - Nvidia 560 GTI - Ecran 26" 1920x1200 - FSX+ASE2012+pas mal de FTX et d'aéroports.

Hors ligne

#13 [↑][↓] 05-06-2016 11:27:23

RBLeDoC
Membre
Lieu : Marseille
Inscription : 16-03-2008
Renommée :   

Re : [FSX] Compilation de jauge XML

Tout a fait sur la même ligne de pensée que Fdd_fr.
J'ajouterais que quelle que soit l’œuvre créée, c'est comme un gâteau mille-feuilles ou seule la dernière couche est vraiment sa propre création, les autres couches sont issues de  la création d'autres auteurs. Cela est valable pour toutes les activités humaines, sciences ou arts. Imaginons un monde ou depuis sa création chaque humain serait resté isolé dans sa seule expérience et découverte....on serait probablement aujourd'hui encore dans l'ère préhistorique!

A+ solv_gif=D=D

Hors ligne

Pied de page des forums