Nl/Terrasync: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 134: Line 134:


=== Hoe werkt het ===
=== Hoe werkt het ===
De HTTP terrascenery server bevat alle bekende bestanden die nodig zijn voor scenery, georganiseerd in de bekende directory-structuur (/Modellen, /Objects, /Terrain en /Airports) met al hun subdirectories. De inhoud van de map /Models bijvoorbeeld vind je hier: http://flightgear.sourceforge.net/scenery/Models/. Iedere map bevat een (verborgen) bestand genaamd .dirindex (bijv.  http://flightgear.sourceforge.net/scenery/Models/.dirindex). dat de inhoud van die map beschrijft door het overzicht van alle bestanden, submappen en checksums van de de bestanden en hun submappen' .dirindex files. Het terrasync. py script doet (vereenvoudigd) het volgende:
De HTTP terrascenery server bevat alle bestanden die nodig zijn voor scenery, georganiseerd in de bekende directory-structuur (/Modellen/Objects/Terrain en /Airports) met al hun subdirectories. De inhoud van de map /Models bijvoorbeeld vind je hier: http://flightgear.sourceforge.net/scenery/Models/. Iedere map bevat een (verborgen) bestand genaamd .dirindex (bijv.  http://flightgear.sourceforge.net/scenery/Models/.dirindex) dat de inhoud van die map beschrijft door het overzicht van alle bestanden, submappen en checksums van de de bestanden en hun submappen' .dirindex files. Het terrasync.py script doet (vereenvoudigd) het volgende:


* a) download het bestand bij de root (hoogste niveau) van de scenery-url (http://flightgear.sourceforge.net/scenery/.dirindex)
* a) download het bestand bij de root (hoogste niveau) van de scenery-url (http://flightgear.sourceforge.net/scenery/.dirindex)
* b) gaat een submap in die in de. dirindex is opgenomen
* b) gaat een submap in die in de .dirindex is opgenomen
* c) vergelijkt de sha1sum van de in de lijst opgenomen bestanden met de lokale kopie en downloadt bestanden indien ze niet overeenkomen
* c) vergelijkt de sha1sum van de in de lijst opgenomen bestanden met de lokale kopie en downloadt bestanden indien ze niet overeenkomen
* d) met de in de lijst opgenomen subdirectories en herhaalt deze stappen voor de volgende mappen als bedoeld in b).
* d) met de in de lijst opgenomen subdirectories en herhaalt deze stappen voor de volgende mappen als bedoeld in b).


Zelfs als alle scenerybestanden op de server aanwezig zijn, zijn er in eerste instantie nog ca. 40.000 .dirindexbestanden die ontbreken op jouw harde schijf en het downloaden zal uren duren. Om de procedure te versnellen, zodra je alle .dirindex bestanden lokaal hebt, kun je terrasync. py uitvoeren met de optie --quick. Dit zal terrasync. py vertellen om de berekende sha1sum van elk .dirindex bestand op jouw harde schijf te vergelijken met dat in de entry in de bovenliggende directories. dirindex. Als je een up-to-date mirror gebruikt zal deze vrij snel zijn omdat alleen de root. dirindex gedownload moet worden. Latere updates met de optie --quick  zullen ook zeer snel zijn, omdat alleen de bijgewerkte bestanden worden gedownload evenals de .dirindex bestanden van de bovenliggende mappen tot aan de hoofdmap.
Zelfs als alle scenerybestanden op de server aanwezig zijn, ontbreken nog zo'n 40.000 .dirindexbestanden op jouw harde schijf en het downloaden ervan zal meerdere uren duren. Om de procedure te versnellen, nadat je alle .dirindex bestanden lokaal hebt, kun je terrasync. py uitvoeren met de optie --quick. Dit zal terrasync. py opdragen om de berekende sha1sum van elk .dirindex bestand op jouw harde schijf te vergelijken met het overzicht in de bovenliggende directories .dirindex. ''Als je een bijgewerkte mirror hebt zal dit vrij snel gaan omdat alleen de root. dirindex gedownload moet worden. Latere updates met de optie --quick  zullen ook zeer snel gaan, omdat alleen de bijgewerkte bestanden worden gedownload evenals de .dirindex bestanden van de bovenliggende mappen tot aan de hoofdmap.''


Tot nu toe hebben we bestanden aan jouw harde schijf toegevoegd, maar hoe zit het met bestanden die van de server zijn verwijderd? Het script benadert ze meestal niet tenzij u aan de opdrachtregel de optie --remove-orphan toevoegt. Door dit te doen, vraagt u terrasync.py om alle bestanden (niet mappen) te verwijderen die in een subdirectory bestaan maar niet in het corresponderende. dirindex worden genoemd.
Tot nu toe hebben we alleen bestanden aan jouw harde schijf toegevoegd, maar hoe zit het met bestanden die van de server zijn verwijderd? Het script doet daar over het algemeen niets mee, tenzij je aan de opdrachtregel de optie --remove-orphan toevoegt. Door dit te doen, vraag je terrasync.py om alle bestanden (geen mappen) te verwijderen die in een subdirectory staan maar niet in het corresponderende .dirindex worden genoemd.


Als je niet alles in jouw huidige werkdirectory wilt downloaden, voeg dan --target=/map/bestand toe aan jouw opdrachtregel. Dit beschrijft vrijwel alles wat terrasync. py doet. Hieronder volgen enkele voorbeelden voor het gebruik:
Als je niet alles naar jouw huidige werkdirectory wilt downloaden, voeg dan --target=/map/bestand toe aan jouw opdrachtregel. Dit beschrijft vrijwel alles wat terrasync. py doet. Hieronder volgen enkele voorbeelden voor het gebruik:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Line 161: Line 161:
</syntaxhighlight>
</syntaxhighlight>


Schakelen tussen SVN en HTTP terrasync is slechts een kwestie van het instellen van een opstart-eigenschap. De opdracht --prop: string: /sim/terrasync/http-server=automatisch maakt een keuze voor de HTTP, het niet opnemen van deze opdracht zal leiden tot het gebruik van de SVN-repository. De code lijkt robuust genoeg om heen en weer te kunnen schakelen tussen zonder verlies van data.<ref>{{cite web
Schakelen tussen SVN en HTTP terrasync is slechts een kwestie van het instellen van een opstart-eigenschap. De opdracht <code>--prop:string:/sim/terrasync/http-server=automatic</code> maakt een keuze voor HTTP, het niet opnemen van deze opdracht zal leiden tot het gebruik van de SVN-methode. De code lijkt robuust genoeg om heen en terug te kunnen schakelen tussen zonder verlies van data.<ref>{{cite web
   |url    =  https://sourceforge.net/p/flightgear/mailman/message/35082702/  
   |url    =  https://sourceforge.net/p/flightgear/mailman/message/35082702/  
   |title  =  <nowiki> Re: [Flightgear-devel] Enable terrasync/http by default </nowiki>  
   |title  =  <nowiki> Re: [Flightgear-devel] Enable terrasync/http by default </nowiki>  
Line 183: Line 183:


=== FlightGear 3.0 en latere versies ===
=== FlightGear 3.0 en latere versies ===
Vanaf de release FlightGear 3.0 is TerraSync aanzienlijk veranderd. Standaard, wanneer ingeschakeld met <code>--enable-terrasync</code><ref name="enabling-TerraSync-with-specific-launchers>In FGRun, this can be done via the appropriate checkbox on the last page. In FFGo, just uncomment the <code>--enable-terrasync</code> option from the default configuration in the Options Window (the “big window” on the left, below the aircraft list).</ref> downloadt TerraSync nu naar downloaden_dir/TerraSync, waar download_dir de downloadmap van FlightGear is.
Vanaf FlightGear 3.0 is TerraSync aanzienlijk veranderd. Standaard, wanneer het is ingeschakeld met <code>--enable-terrasync</code><ref name="enabling-TerraSync-with-specific-launchers>In FGRun, this can be done via the appropriate checkbox on the last page. In FFGo, just uncomment the <code>--enable-terrasync</code> option from the default configuration in the Options Window (the “big window” on the left, below the aircraft list).</ref> downloadt TerraSync nu naar <i>download_dir</i>/TerraSync, waarbij <i>download_dir</i> de downloadmap van FlightGear is.


De downloadmap van FlightGear kan expliciet worden ingesteld met behulp van de optie FlightGear's <code>--download-dir</code> op de [[Command_line_options]], anders wordt de standaardoptie gebruikt:
De downloadmap van FlightGear kan expliciet worden ingesteld met behulp van de optie FlightGear's <code>--download-dir</code> op de [[Command_line_options]], anders wordt de standaardoptie gebruikt:
Line 199: Line 199:


=== FlightGear 2.4 t/m versie 2.12 ===
=== FlightGear 2.4 t/m versie 2.12 ===
Vanaf FlightGear 2.4 is TerraSync geïntegreerd in het normale FlightGear menu, onder <tt>Omgeving > Scenery Download</tt> > Downloaden. Je kunt ook kiezen voor "Download scenery on the fly" in de GUI. Wees er wel op attent dat als je jouw vliegtuig wil laten starten in een nieuw gebied, waar je nog geen landschap van hebt gedownload, jouw vliegtuig eerst in het water kan lijken te staan totdat er voldoende landschap is gedownload. Via menu <tt>Omgeving > Scenery Download</tt> en "Manual Refresh" (Handmatig vernieuwen) kun je kiezen voor scenery-updates.
Vanaf FlightGear 2.4 is TerraSync geïntegreerd in het normale FlightGear menu, onder <tt>Omgeving > Scenery Download</tt> > Downloaden. Je kunt ook kiezen voor "Download scenery on the fly" in de GUI. Wees er wel op attent dat als je jouw vliegtuig wil laten starten in een nieuw gebied, waar je nog geen landschap van hebt gedownload, jouw vliegtuig bij de start in het water kan lijken te staan totdat er voldoende landschap is gedownload. Via menu <tt>Omgeving > Scenery Download</tt> en "Manual Refresh" (Handmatig vernieuwen) kun je kiezen voor scenery-updates.


=== POSIX (Portable Operating-System Interface) -conforme commandoregel ===
=== POSIX (Portable Operating-System Interface) -conforme commandoregel ===
Start TerraSync:
Start TerraSync:
  <code>% nice terrasync -p 5500 -S -d "$HOME/fgfsScenery"</code>
  <code>% nice terrasync -p 5500 -S -d "$HOME/fgfsScenery"</code>
De -S optie maakt dat terrasync het SVN-protocol zal gebruiken om gegevens op te halen. Als je die optie weglaat zal terrasync in plaats daarvan het programma rsync gebruiken (maar dat moet dan wel op jouw systeem geïnstalleerd zijn).
De -S optie maakt dat terrasync het SVN-protocol zal gebruiken om gegevens op te halen. Als je die optie weglaat zal terrasync in plaats daarvan het programma rsync gebruiken (maar dat moet dan wel op jouw systeem geïnstalleerd zijn).


Start FlightGear:
Start FlightGear:
Line 212: Line 212:


=== [[FGRun]] in FlightGear 2.2.0 ===
=== [[FGRun]] in FlightGear 2.2.0 ===
# Controleer na het starten van FGRun of je je in het eerste scherm bevindt waar je directories kunt instellen. Eén keer "Terug" vanaf de vliegtuigkeuzepagina. U bent nu op de "Path" -pagina.
# Controleer na het starten van FGRun of je je in het eerste scherm bevindt waar je directories kunt instellen. Eén keer "Terug" vanaf de vliegtuigkeuzepagina. Je bent nu op de "Path" -pagina.
# Naast [[$FG_SCENERY|FG_SCENERY]] kun je een lijst met scenery directories aanmaken. Selecteer de lijn die TerraSync zal gebruiken en druk rechts op de knop "TerraSync directory". Op de geselecteerde regel verschijnt een kleine "T" die aangeeft dat deze is ingesteld als TerraSync-direcotry.
# Naast [[$FG_SCENERY|FG_SCENERY]] kun je een lijst met scenery directories aanmaken. Selecteer de lijn die TerraSync zal gebruiken en druk rechts op de knop "TerraSync directory". Op de geselecteerde regel verschijnt een kleine "T" die aangeeft dat deze is ingesteld als TerraSync-directory.
#* De directories worden van boven naar beneden geladen, dus zorg ervoor dat TerraSync bovenaan staat (tenzij je terrasync en scenes uit een andere directory wilt "passeren"). Wanneer twee directories landschappen bevatten voor dezelfde regio, zal FlightGear de scenery uit de directory halen die hoger in de lijst staat.
#* De directories worden van boven naar beneden geladen, dus zorg ervoor dat TerraSync bovenaan staat (tenzij je terrasync gegevens uit een andere directory wil laten prevaleren). Wanneer twee directories landschappen bevatten voor dezelfde regio, zal FlightGear de scenery uit de directory halen die hoger in de lijst staat.
# Ga tenslotte naar het laatste scherm. Daar moet je TerraSync activeren zoals in de volgende screenshot wordt getoond. Nu moet TerraSync werken.<br />[[File:TerraSync 2.png|500px]]
# Ga tenslotte naar het laatste scherm. Daar moet je TerraSync activeren zoals in de volgende screenshot wordt getoond. Nu moet TerraSync werken.<br />[[File:TerraSync 2.png|500px]]


''Opmerking: Houd er rekening mee dat de firewall dit kan blokkeren zodra je het de eerste keer gebruikt; sta de firewall toe dat TerraSync de poort gebruikt.''
''Opmerking: Houd er rekening mee dat de firewall dit kan blokkeren zodra je het de eerste keer gebruikt; sta de firewall toe dat TerraSync de getoonde poort gebruikt.''


=== [[FGRun]] in FlightGear 1.9.1 ===
=== [[FGRun]] in FlightGear 1.9.1 ===
# Controleer na het starten van FGRun of je je in het eerste scherm bevindt, waar je directories kunt instellen. Eén keer "Terug" vanaf de vliegtuigkeuzepagina. Je bent nu hier:<br/>[[File:TerraSync 1.png|500px]]
# Controleer na het starten van FGRun of je je in het eerste scherm bevindt, waar je de directories kunt instellen. Eén keer "Terug" vanaf de vliegtuigkeuzepagina. Je bent nu hier:<br/>[[File:TerraSync 1.png|500px]]


# Selecteer de bestemmingsmap voor alle bestanden die door terrasync worden gedownload. Meestal bestaat de map <code>[[$FG_ROOT]]\terrasync</code> al en hoef je deze alleen aan de lijst toe te voegen (zoals in het bovenstaande voorbeeld). Zorg ervoor dat het '''boven''' uw standaard scenery map zit (hier is dat <code>FlightGear191\scenery</code>) en alle andere mappen waarop de map terrasync voorrang moet hebben. Wanneer twee directories informatie bevatten voor dezelfde regio, zal FlightGear de informatie uit de directory kiezen die hoger in de lijst staat. Zorg er onder Linux voor dat de directory niet alleen een T heeft, maar dat het ook de bovenste map is.
# Selecteer de bestemmingsmap voor alle bestanden die door terrasync worden gedownload. Meestal bestaat de map <code>[[$FG_ROOT]]\terrasync</code> al en hoef je deze alleen aan de lijst toe te voegen (zoals in het bovenstaande voorbeeld). Zorg ervoor dat het '''boven''' uw standaard scenery map zit (hier is dat <code>FlightGear191\scenery</code>) en alle andere mappen waarop de map terrasync voorrang moet hebben. Wanneer twee directories informatie bevatten voor dezelfde regio, zal FlightGear de informatie uit de directory kiezen die hoger in de lijst staat. Zorg er onder Linux voor dat de directory niet alleen een T heeft, maar dat het ook de bovenste map is.
# Om TerraSync te laten weten waar de gedownloade bestanden moeten worden opgeslagen, moet je het programma aangeven welke map de bestemmingsmap is. In bovenstaand voorbeeld is het de 3e in de lijst.
# Om TerraSync te laten weten waar de gedownloade bestanden moeten worden opgeslagen, moet je het programma aangeven welke map de doelmap is. In bovenstaand voorbeeld is het de 3e regel in de lijst.
# Ga tenslotte naar het laatste scherm. Daar moet je TerraSync activeren zoals in het volgende screenshot. Nu zou TerraSync moeten werken.<br />[[File:TerraSync 2.png|500px]]
# Ga tenslotte naar het laatste scherm. Daar moet je TerraSync activeren zoals in het volgende screenshot. Nu zou TerraSync moeten werken.<br />[[File:TerraSync 2.png|500px]]


''Opmerking: Houd er rekening mee dat de firewall dit kan blokkeren zodra je het de eerste keer gebruikt; sta de firewall toe dat TerraSync de poort gebruikt.''
''Opmerking: Houd er rekening mee dat de firewall dit kan blokkeren zodra je het de eerste keer gebruikt; sta de firewall toe dat TerraSync de getoonde poort gebruikt.''


== probleemoplossing ==
== probleemoplossing ==
=== foutieve en onleesbare bestanden of mappen ===
=== foutieve en onleesbare bestanden of mappen ===
Als je op de commandline (zwart dialoogvenster) een fout krijgt, vergelijkbaar met het volgende:
Het is mogelijk dat je op de commandline (zwart dialoogvenster) een fout krijgt, vergelijkbaar met het volgende:


  Airports/L ... failed:
  Airports/L ... failed:
  Can't move 'C:\FlightGear\terrasync\Airports\L\E\.svn\tmp\entries' to 'C:\FlightGear\terrasync\Airports\L\E\.svn\entries': The file or directory is corrupted and unreadable.
  Can't move 'C:\FlightGear\terrasync\Airports\L\E\.svn\tmp\entries' to 'C:\FlightGear\terrasync\Airports\L\E\.svn\entries': The file or directory is corrupted and unreadable.


en eventueel verschijnt de volgende popup:
terwijl eventueel de volgende popup verschijnt:


[[File:TerraSync Taskbar Error.png]]
[[File:TerraSync Taskbar Error.png]]
Line 242: Line 242:
Je kunt de fout waarschijnlijk verhelpen door naar Windows 7 Home Premium Service Pack 1 te upgraden.
Je kunt de fout waarschijnlijk verhelpen door naar Windows 7 Home Premium Service Pack 1 te upgraden.


=== Onberijkbare vliegveldmappen ===
=== Onbereikbare vliegveldmappen ===
Je krijgt een fout die aangeeft dat de map met vliegvelden onbereikbaar is,  terwijl TerraSync draait.
Terwijl TerraSync draait kun je een foutmelding krijgen die aangeeft dat de map met vliegvelden onbereikbaar is.


  Working copy 'D:\Program Files\FlightGear 2.4.0\terrasync\Airports\K' locked
  Working copy 'D:\Program Files\FlightGear 2.4.0\terrasync\Airports\K' locked
Line 250: Line 250:


==== Oplossing ====
==== Oplossing ====
Zoek in de TerraSync-map naar bestanden met de naam lock en verwijder deze. Ze moeten automatisch worden verwijderd wanneer TerraSync wordt geupdate, maar soms mislukt dat.
Zoek in de TerraSync-map naar bestanden met de naam <tt>lock</tt> en verwijder deze. Ze zouden automatisch moeten worden verwijderd wanneer TerraSync wordt geupdate, maar soms lukt dat niet.


=== Kon bestand niet verwijderen ===
=== Kon bestand niet verwijderen ===
539

edits

Navigation menu