GoPal 4 Gyrosimulation: Unterschied zwischen den Versionen

Aus GoPalWiki
Wechseln zu: Navigation, Suche
K (Weblinks: {{adsense}} entfernt)
 
(42 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:GoPal 4 x Skinning]]
 
  
Gyro_Sim Funktion
+
__TOC__
 +
== Gyro-Sim Funktion einbauen in den Skin (480x272) ==
  
In der PFSkin oben unter Bitmaps zuerst folgende Einträge hinzufügen
+
In der PFSkin oben unter '''Bitmaps''' zuerst folgende Einträge hinzufügen
  
 
         420: PPSkin\GyroGps.png;  //added
 
         420: PPSkin\GyroGps.png;  //added
Zeile 10: Zeile 10:
 
         423: PPSkin\RunderButton.png;  //added
 
         423: PPSkin\RunderButton.png;  //added
 
         428: PPSkin\gyro_nav_start.png;  //added
 
         428: PPSkin\gyro_nav_start.png;  //added
 +
        436: PPSkin\Simu_Aktiv.png; // added
  
Nun im Abschnitt „Route_options“ folgendes einfügen am ende:
+
Nun im Abschnitt „'''Route_options'''“ folgendes einfügen am Ende:
  
 
                 Gyro_Button   
 
                 Gyro_Button   
Zeile 25: Zeile 26:
 
                 }
 
                 }
  
 
+
Als nächstes im Abschnitt „'''mapview'''“ folgendes einfügen
Als nächstes im Abschnitt „mapview“ folgendes einfügen
 
  
 
ziemlich am Anfang des Abschnitts nach „panel“
 
ziemlich am Anfang des Abschnitts nach „panel“
  
Container_gyro_button
+
                Container_gyro_button
{
+
                {
Class: SkinContainer;
+
                        Class: SkinContainer;
Form: SF_gyro_button;
+
                        Form: SF_gyro_button;
}
+
                }
  
 
ganz am Ende des Abschnitts direkt vor „mapview_splitscreen“:
 
ganz am Ende des Abschnitts direkt vor „mapview_splitscreen“:
  
Container_gyro
+
                Container_gyro
{
+
                {
Class: SkinContainer;
+
                        Class: SkinContainer;
Form: SF_gyro;
+
                        Form: SF_gyro;
}
+
                }
 +
 
 +
die selben Eintrage erstellt ihr im Abschnitt „'''mapview_splitscreen'''“ und „'''TurnByTurn'''“
 +
 
 +
Als nächstes fügt ihr folgende Einträge ganz unten an die PFSkin mit an:
 +
 
 +
        SF_gyro_button
 +
        {
 +
                // SkinElementModelCoder
 +
                Class: SkinContainer;
 +
                Coordinates: 0,0,480,272;
 +
                TapMode: TapThrough;
 +
                //Layer: OnTop;
 +
                // FormModelCoder
 +
                DynamicFormX: 0;
 +
                DynamicFormY: 0;
 +
                DynamicFormWidth: 50;
 +
                DynamicFormHeight: 50;
 +
                // SkinContainerModelCoder
 +
                // SkinScrollbarOwnerModelCoder
 +
 
 +
Hinweis: Solltet ihr ein Navi mit Telefonfunktion haben, müsst ihr diese 2 Buttons nach unten verschieben, da sonst der Dailer Button unsere überlagert.
 +
 
 +
                GyroAktivierung
 +
                {
 +
                        Class: LauncherButton;
 +
                        Coordinates: 0,96,56,60;
 +
                        Enabled: 423,0,0,40,40,6,10,255,0,255;
 +
                        Pushed: 423,0,0,40,40,6,10,255,0,255;
 +
                        Icon: 421,0,0,22,22,16,19;
 +
                        PYOffset: 2;
 +
                        BGMode: Transparent;
 +
                        launch: "$KOORD_PFAD$";
 +
                        params: "window=0 RegKeyMode=2 SendKey=\0x73\c-200,280,20\0x72\| RegKey=Software\Navirunner,Autogyros";
 +
                }
 +
 +
                GyroAnzeige
 +
                {
 +
                        Class: LaunchFromRegistryButton;
 +
                        Coordinates: 0,96,56,60;
 +
                        Enabled: 423,0,0,40,40,6,10,255,0,255;
 +
                        Pushed: 423,0,0,40,40,6,10,255,0,255;
 +
                        Icon: 422,0,0,30,30,12,15,255,0,255;
 +
                        Navigatable: no;
 +
                        TapMode: TapThrough;
 +
                        BGMode: transparent;
 +
                        Registry: "HKCU,Software\Navirunner,Autogyros";
 +
                        HideOnNonExistentRegistryEntry: yo;
 +
                }
 +
        }
 +
 +
        SF_gyro
 +
        {
 +
                // SkinElementModelCoder
 +
                Class: SkinContainer;
 +
                Coordinates: 0,0,480,272;
 +
                TapMode: TapThrough;
 +
                Layer: OnTop;
 +
                // FormModelCoder
 +
                DynamicFormX: 0;
 +
                DynamicFormY: 0;
 +
                DynamicFormWidth: 50;
 +
                DynamicFormHeight: 50;
 +
                // SkinContainerModelCoder
 +
                // SkinScrollbarOwnerModelCoder
 +
                Button_Stop
 +
                {
 +
                        Class: PushButton;
 +
                        Layer: OnTop;
 +
                        Navigatable: no;
 +
                        Coordinates: 120,0,3,3;
 +
                        Enabled: 0,0,0,3,3,0,0;
 +
                        Pushed: 0,0,0,5,5,0,0;
 +
                        PressedEvent: 12;
 +
                }
 +
                Button_Start
 +
                {
 +
                        Class: PushButton;
 +
                        Coordinates: 130,0,3,3;
 +
                        Layer: OnTop;
 +
                        Navigatable: no;
 +
                        Enabled: 0,0,0,3,3,0,0;
 +
                        Pushed: 0,0,0,5,5,0,0;
 +
                        PressedEvent: 11;
 +
                }
 +
                Button_Start
 +
                {
 +
                        Class: PushButton;
 +
                        Coordinates: 140,0,5,5;
 +
                        Layer: OnTop;
 +
                        Navigatable: no;
 +
                        Enabled: 0,0,0,3,3,0,0;
 +
                        Pushed: 0,0,0,5,5,0,0;
 +
                        PressedEvent: 39;
 +
                }
 +
                Button_Stop
 +
                {
 +
                        Class: PushButton;
 +
                        Layer: OnTop;
 +
                        Navigatable: no;
 +
                        Coordinates: 150,0,5,5;
 +
                        Enabled: 0,0,0,3,3,0,0;
 +
                        Pushed: 0,0,0,5,5,0,0;
 +
                        PressedEvent: 40;
 +
                }
 +
 +
                gyro_gps_button
 +
                {
 +
                        Class: NStateButton;
 +
                        Coordinates: 479,220,2,2;
 +
                        Layer: OnTop;
 +
                        Navigatable: no;
 +
                        // NStateButtonModelCoder
 +
                        States: 14;
 +
                        StateChangeOnTap: disable;
 +
                        Icon1: 420,0,0,1,1,0,0,255,0,255;
 +
                        Icon2: 420,0,0,1,1,0,0,255,0,255;
 +
                        Icon3: 420,0,0,1,1,0,0,255,0,255;
 +
                        Icon4: 420,0,0,1,1,0,0,255,0,255;
 +
                        Icon5: 0,0,2,1,1,0,0,255,0,255;
 +
                        Icon6: 0,0,2,1,1,0,0,255,0,255;
 +
                        Icon7: 0,0,4,1,1,0,0,255,0,255;
 +
                        Icon8: 0,0,4,1,1,0,0,255,0,255;
 +
                        Icon9: 0,0,4,1,1,0,0,255,0,255;
 +
                        Icon10: 0,0,6,1,1,0,0,255,0,255;
 +
                        Icon11: 0,0,6,1,1,0,0,255,0,255;
 +
                        Icon12: 0,0,6,1,1,0,0,255,0,255;
 +
                        Icon13: 0,0,6,1,1,0,0,255,0,255;
 +
                        Icon14: 0,0,6,1,1,0,0,255,0,255;
 +
                        MinValue: -1;
 +
                        MaxValue: 12;
 +
                        CurrentValue#DP: 65544;    //_OUT_POS_SATELLITES
 +
                }
 +
 +
                Simu_Aktiv_button
 +
                {
 +
                        Class: SkinIcon;
 +
                        Coordinates: 479,218,2,2;
 +
                        Layer: OnTop;
 +
                        Navigatable: no;
 +
                        BitmapReference: 436,0,0,1,1,0,0;
 +
                        Visibility#DP: 3801124;   
 +
                }
 +
      }
 +
 
 +
somit sind alle notwendigen Änderungen in der PFSkin vorhanden.
  
die selben Eintrage erstellt ihr im Abschnitt „mapview_splitscreen“ und „TurnByTurn“
+
Jetzt müsst ihr noch in der „'''PFSpecial.skn'''“ dies einfügen am besten ans Ende!<br>
 +
Achtet dabei aber auf den korrekten Pfad.
  
 +
Defines
 +
{
 +
  KOORD_PFAD: "\Storage Card\programme\koord465.exe";
 +
  MORT_PFAD: "\Storage Card\progamme\MortScript";
 +
}
  
Als nächstes fügt ihr folgende Einträge ganz unten an die PFSkin mit an:
+
In der Funktion „'''System'''“ fügt ihr noch bei „'''GlobalHK:'''“ diese 2 "Hardwaretasten-Events" mit ein.
  
SF_gyro_button
+
  F3@ThrowEvent.2621443,F4@ThrowEvent.2490403
{
 
// SkinElementModelCoder
 
Class: SkinContainer;
 
Coordinates: 0,0,480,272;
 
TapMode: TapThrough;
 
//Layer: OnTop;
 
  
// FormModelCoder
+
damit wären die Änderungen abgeschlossen.
DynamicFormX: 0;
 
DynamicFormY: 0;
 
DynamicFormWidth: 50;
 
DynamicFormHeight: 50;
 
  
// SkinContainerModelCoder
+
Zusätzlich braucht ihr noch 2 Programme: MortScript und Koord465
  
// SkinScrollbarOwnerModelCoder
+
Nun müsst ihr noch: <BR/>
 +
#[[Media:Gyrosimdateien.zip|Diese]] Datei downloaden und entpacken  und die PNGs in den Ordner MFD\navigation\Skin480x272\PPSkin einfügen.<br>Alternativ könnt ihr auch [[Media:Gyro_tunnel.png|diese Grafik]] verwenden. Ihr müsst dann aber euren Code dementsprechend anpassen.
 +
#das Mortscript in den Ordner MFD\programme\mortscript einfügen,
 +
#die geänderte PFSkin wieder auf das Navi kopieren in den Ordner MFD\ navigation\Skin480x272,
 +
#einen [[SoftReset]] machen und die Navigation starten.
 +
Jetzt habt ihr in der Karte den Gyro Button und könnt diesen an und aus schalten. <BR/>
  
GyroAktivierung
+
Viel Spass damit.
{
 
Class: LauncherButton;
 
Coordinates: 0,96,56,60;
 
Enabled: 423,0,0,40,40,6,10,255,0,255;
 
Pushed: 423,0,0,40,40,6,10,255,0,255;
 
Icon: 421,0,0,22,22,16,19;
 
PYOffset: 2;
 
BGMode: Transparent;
 
launch: "$KOORD_PFAD$";
 
params: "window=0 RegKeyMode=2 SendKey=\0x73\c-200,280,20\0x72\| RegKey=Software\Navirunner,Autogyros";
 
}
 
GyroAnzeige
 
{
 
Class: LaunchFromRegistryButton;
 
Coordinates: 0,96,56,60;
 
Enabled: 423,0,0,40,40,6,10,255,0,255;
 
Pushed: 423,0,0,40,40,6,10,255,0,255;
 
Icon: 422,0,0,30,30,12,15,255,0,255;
 
//Layer: OnTop;
 
Navigatable: no;
 
TapMode: TapThrough;
 
BGMode: transparent;
 
Registry: "HKCU,Software\Navirunner,Autogyros";
 
HideOnNonExistentRegistryEntry: yo;
 
}
 
  
}
+
== Gyro-Sim Funktion einbauen in den Skin (320x240) ==
SF_gyro
+
In der PFSkin oben unter '''Bitmaps''' zuerst folgende Einträge hinzufügen
{
 
// SkinElementModelCoder
 
Class: SkinContainer;
 
Coordinates: 0,0,480,272;
 
TapMode: TapThrough;
 
Layer: OnTop;
 
  
// FormModelCoder
+
        420: PPSkin\GyroGps.png;  //added
DynamicFormX: 0;
+
        421: PPSkin\gyros_inaktiv.png; //added
DynamicFormY: 0;
+
        422: PPSkin\gyros_aktiv.png; //added
DynamicFormWidth: 50;
+
        423: PPSkin\RunderButton.png; //added
DynamicFormHeight: 50;
+
        428: PPSkin\gyro_nav_start.png; //added
 +
        436: PPSkin\Simu_Aktiv.png; // added
  
// SkinContainerModelCoder
+
Nun im Abschnitt „'''Route_options'''“ folgendes einfügen am Ende:
  
// SkinScrollbarOwnerModelCoder
+
                Gyro_Button 
 +
                {
 +
                      Class: LauncherButton;
 +
                      Coordinates: 300,5,10,10;
 +
                      Navigatable: no;
 +
                      Layer: OnTop;
 +
                      launch: $MORT_PFAD$\NR_gyrostart.exe;
 +
                      Enabled: 0,0,0,200,20,0,0,255,0,255;
 +
                      Pushed: 0,0,40,200,20,2,2,255,0,255;
 +
                      Icon: 0,0,0,30,30,5,5,255,0,255;
 +
                }
  
 +
Als nächstes im Abschnitt „'''mapview'''“ folgendes einfügen:
  
Button_Stop
+
ziemlich am Anfang des Abschnitts nach „panel“
{
 
Class: PushButton;
 
Layer: OnTop;
 
Navigatable: no;
 
Coordinates: 120,0,3,3;
 
Enabled: 0,0,0,3,3,0,0;
 
Pushed: 0,0,0,5,5,0,0;
 
PressedEvent: 12;
 
}
 
Button_Start
 
{
 
Class: PushButton;
 
Coordinates: 130,0,3,3;
 
Layer: OnTop;
 
Navigatable: no;
 
Enabled: 0,0,0,3,3,0,0;
 
Pushed: 0,0,0,5,5,0,0;
 
PressedEvent: 11;
 
}
 
Button_Start
 
{
 
Class: PushButton;
 
Coordinates: 140,0,5,5;
 
Layer: OnTop;
 
Navigatable: no;
 
Enabled: 0,0,0,3,3,0,0;
 
Pushed: 0,0,0,5,5,0,0;
 
PressedEvent: 39;
 
}
 
  
Button_Stop
+
                Container_gyro_button
{
+
                {
Class: PushButton;
+
                        Class: SkinContainer;
Layer: OnTop;
+
                        Form: SF_gyro_button;
Navigatable: no;
+
                }
Coordinates: 150,0,5,5;
 
Enabled: 0,0,0,3,3,0,0;
 
Pushed: 0,0,0,5,5,0,0;
 
PressedEvent: 40;
 
}
 
gyro_gps_button
 
{
 
Class: NStateButton;
 
Coordinates: 479,220,2,2;
 
Layer: OnTop;
 
Navigatable: no;
 
  
// NStateButtonModelCoder
+
ganz am Ende des Abschnitts direkt vor „mapview_splitscreen“:
States: 14;
+
 
StateChangeOnTap: disable;
+
                Container_gyro
Icon1: 420,0,0,1,1,0,0,255,0,255;
+
                {
Icon2: 420,0,0,1,1,0,0,255,0,255;
+
                        Class: SkinContainer;
Icon3: 420,0,0,1,1,0,0,255,0,255;
+
                        Form: SF_gyro;
Icon4: 420,0,0,1,1,0,0,255,0,255;
+
                }
Icon5: 0,0,2,1,1,0,0,255,0,255;
+
 
Icon6: 0,0,2,1,1,0,0,255,0,255;
+
die selben Eintrage erstellt im Abschnitt „'''mapview_splitscreen'''“ (vor"MapAreaView") und „'''TurnByTurn''' (nach "panel")“
Icon7: 0,0,4,1,1,0,0,255,0,255;
+
 
Icon8: 0,0,4,1,1,0,0,255,0,255;
+
Als nächstes fügt ihr folgende Einträge ganz unten an die PFSkin mit an:
Icon9: 0,0,4,1,1,0,0,255,0,255;
+
 
Icon10: 0,0,6,1,1,0,0,255,0,255;
+
      SF_gyro_button
Icon11: 0,0,6,1,1,0,0,255,0,255;
+
      {
Icon12: 0,0,6,1,1,0,0,255,0,255;
+
              // SkinElementModelCoder
Icon13: 0,0,6,1,1,0,0,255,0,255;
+
              Class: SkinContainer;
Icon14: 0,0,6,1,1,0,0,255,0,255;
+
              Coordinates: 0,0,320,240;
MinValue: -1;
+
              TapMode: TapThrough;
MaxValue: 12;
+
              Layer: OnTop;
CurrentValue#DP: 65544;    //_OUT_POS_SATELLITES
+
              // FormModelCoder
}
+
              DynamicFormX: 0;
Simu_Aktiv_button
+
              DynamicFormY: 0;
{
+
              DynamicFormWidth: 50;
Class: SkinIcon;
+
              DynamicFormHeight: 50;
Coordinates: 479,218,2,2;
+
              // SkinContainerModelCoder
Layer: OnTop;
+
              // SkinScrollbarOwnerModelCoder
Navigatable: no;
+
BitmapReference: 436,0,0,1,1,0,0;
+
              GyroAktivierung
Visibility#DP: 3801124;  
+
              {
}
+
                      Class: LauncherButton;
}
+
                      Coordinates: 0,85,56,60;
 +
                      Enabled: 423,0,0,40,40,6,10,255,0,255;
 +
                      Pushed: 423,0,0,40,40,6,10,255,0,255;
 +
                      Icon: 421,0,0,23,23,12,16,255,0,255;
 +
                      PYOffset: 2;
 +
                      BGMode: Transparent;
 +
                      launch: "$KOORD_PFAD$";
 +
                      params: "window=0 RegKeyMode=2 SendKey=\0x73\c-200,305,10\0x72\| RegKey=Software\Navirunner,Autogyros";
 +
                }
 +
 +
              GyroAnzeige
 +
              {
 +
                      Class: LaunchFromRegistryButton;
 +
                      Coordinates: 0,85,56,60;
 +
                      Enabled: 423,0,0,40,40,6,10,255,0,255;
 +
                      Pushed: 423,0,0,40,40,6,10,255,0,255;
 +
                      Icon: 422,0,0,23,23,12,16,255,0,255;
 +
                      Layer: OnTop;
 +
                      Navigatable: no;
 +
                      TapMode: TapThrough;
 +
                      BGMode: transparent;
 +
                      Registry: "HKCU,Software\Navirunner,Autogyros";
 +
                      HideOnNonExistentRegistryEntry: yo;
 +
              }
 +
        }
 +
 +
        SF_gyro
 +
        {
 +
              // SkinElementModelCoder
 +
              Class: SkinContainer;
 +
              Coordinates: 0,0,320,240;
 +
              TapMode: TapThrough;
 +
              Layer: OnTop;
 +
              // FormModelCoder
 +
              DynamicFormX: 0;
 +
              DynamicFormY: 0;
 +
              DynamicFormWidth: 50;
 +
              DynamicFormHeight: 50;
 +
              // SkinContainerModelCoder
 +
              // SkinScrollbarOwnerModelCoder
 +
              Button_Stop
 +
              {
 +
                      Class: PushButton;
 +
                      Layer: OnTop;
 +
                      Navigatable: no;
 +
                      Coordinates: 100,0,3,3;
 +
                      Enabled: 0,0,0,3,3,0,0;
 +
                      Pushed: 0,0,0,5,5,0,0;
 +
                      PressedEvent: 12;
 +
              }
 +
              Button_Start
 +
              {
 +
                      Class: PushButton;
 +
                      Coordinates: 110,0,3,3;
 +
                      Layer: OnTop;
 +
                      Navigatable: no;
 +
                      Enabled: 0,0,0,3,3,0,0;
 +
                      Pushed: 0,0,0,5,5,0,0;
 +
                      PressedEvent: 11;
 +
              }
 +
              Button_Start
 +
              {
 +
                      Class: PushButton;
 +
                      Coordinates: 120,0,5,5;
 +
                      Layer: OnTop;
 +
                      Navigatable: no;
 +
                      Enabled: 0,0,0,3,3,0,0;
 +
                      Pushed: 0,0,0,5,5,0,0;
 +
                      PressedEvent: 39;
 +
              }
 +
              Button_Stop
 +
              {
 +
                      Class: PushButton;
 +
                      Layer: OnTop;
 +
                      Navigatable: no;
 +
                      Coordinates: 130,0,5,5;
 +
                      Enabled: 0,0,0,3,3,0,0;
 +
                      Pushed: 0,0,0,5,5,0,0;
 +
                      PressedEvent: 40;
 +
              }
 +
 +
              gyro_gps_button
 +
              {
 +
                      Class: NStateButton;
 +
                      Coordinates: 319,198,2,2;
 +
                      Layer: OnTop;
 +
                      Navigatable: no;
 +
                      // NStateButtonModelCoder
 +
                      States: 14;
 +
                      StateChangeOnTap: disable;
 +
                      Icon1: 420,0,0,1,1,0,0,255,0,255;
 +
                      Icon2: 420,0,0,1,1,0,0,255,0,255;
 +
                      Icon3: 420,0,0,1,1,0,0,255,0,255;
 +
                      Icon4: 420,0,0,1,1,0,0,255,0,255;
 +
                      Icon5: 0,0,2,1,1,0,0,255,0,255;
 +
                      Icon6: 0,0,2,1,1,0,0,255,0,255;
 +
                      Icon7: 0,0,4,1,1,0,0,255,0,255;
 +
                      Icon8: 0,0,4,1,1,0,0,255,0,255;
 +
                      Icon9: 0,0,4,1,1,0,0,255,0,255;
 +
                      Icon10: 0,0,6,1,1,0,0,255,0,255;
 +
                      Icon11: 0,0,6,1,1,0,0,255,0,255;
 +
                      Icon12: 0,0,6,1,1,0,0,255,0,255;
 +
                      Icon13: 0,0,6,1,1,0,0,255,0,255;
 +
                      Icon14: 0,0,6,1,1,0,0,255,0,255;
 +
                      MinValue: -1;
 +
                      MaxValue: 12;
 +
                      CurrentValue#DP: 65544;    //_OUT_POS_SATELLITES
 +
              }
 +
 +
              Simu_Aktiv_button
 +
              {
 +
                      Class: SkinIcon;
 +
                      Coordinates: 319,196,2,2;
 +
                      Layer: OnTop;
 +
                      Navigatable: no;
 +
                      BitmapReference: 436,0,0,1,1,0,0;
 +
                      Visibility#DP: 3801124;
 +
              }
 +
      }
  
 
somit sind alle notwendigen Änderungen in der PFSkin vorhanden.
 
somit sind alle notwendigen Änderungen in der PFSkin vorhanden.
  
Nun müst ihr noch die PNGs in den Ordner MFD\navigation\Skin480x272\PPSkin einfügen und das Mortscript in den Ordner MFD\programme\mortscript und die geänderte PFSkin wieder auf das Navi kopieren in den Ordner MFD\ navigation\Skin480x272. Jetzt noch einen Softreset machen und die Navigation starten.
+
Nun müsst ihr noch:
Jetzt habt ihr in der Karte den Gyro Button und könnt diesen an und aus schalten.
+
#[[Media:Gyros320x240.zip|Diese]] Datei downloaden und entpacken ,
 +
#die PNGs in den Ordner MFD\navigation\Skin320x240\PPSkin einfügen,
 +
#das Mortscript in den Ordner MFD\programme\mortscript einfügen,
 +
#die geänderte PFSkin wieder auf das Navi kopieren in den Ordner MFD\ navigation\Skin320x240,
 +
#einen [[SoftReset]] machen und die Navigation starten.
 +
Jetzt habt ihr in der Karte den Gyro-Button und könnt diesen an und aus schalten.
 +
 
 +
== Weblinks ==
  
Viel Spass damit.
+
[http://www.gopal-navigator.de/viewtopic.php?p=30225#30225 Diskussions-Thread im Forum dazu]
 +
 
 +
[[Kategorie:GoPal 4.x Skinning]]

Aktuelle Version vom 12. Januar 2020, 17:02 Uhr

Gyro-Sim Funktion einbauen in den Skin (480x272)

In der PFSkin oben unter Bitmaps zuerst folgende Einträge hinzufügen

       420: PPSkin\GyroGps.png;  //added
       421: PPSkin\gyros_inaktiv.png;  //added
       422: PPSkin\gyros_aktiv.png;  //added
       423: PPSkin\RunderButton.png;  //added
       428: PPSkin\gyro_nav_start.png;  //added
       436: PPSkin\Simu_Aktiv.png; // added

Nun im Abschnitt „Route_options“ folgendes einfügen am Ende:

               Gyro_Button  
               {
                       Class: LauncherButton;
                       Coordinates: 275,15,10,10;
                       Navigatable: no;
                       Layer: OnTop;
                       launch: $MORT_PFAD$\NR_gyrostart.exe;
                       Enabled: 0,0,0,200,20,0,0,255,0,255;
                       Pushed: 0,0,40,200,20,2,2,255,0,255;
                       Icon: 0,0,0,30,30,5,5,255,0,255;
                }

Als nächstes im Abschnitt „mapview“ folgendes einfügen

ziemlich am Anfang des Abschnitts nach „panel“

               Container_gyro_button
               {
                       Class: SkinContainer;
                       Form: SF_gyro_button;
               }

ganz am Ende des Abschnitts direkt vor „mapview_splitscreen“:

               Container_gyro
               {
                       Class: SkinContainer;
                       Form: SF_gyro;
               }

die selben Eintrage erstellt ihr im Abschnitt „mapview_splitscreen“ und „TurnByTurn

Als nächstes fügt ihr folgende Einträge ganz unten an die PFSkin mit an:

       SF_gyro_button
       {
               // SkinElementModelCoder
               Class: SkinContainer;
               Coordinates: 0,0,480,272;
               TapMode: TapThrough;
               //Layer: OnTop;
               // FormModelCoder
               DynamicFormX: 0;
               DynamicFormY: 0;
               DynamicFormWidth: 50;
               DynamicFormHeight: 50;
               // SkinContainerModelCoder
               // SkinScrollbarOwnerModelCoder

Hinweis: Solltet ihr ein Navi mit Telefonfunktion haben, müsst ihr diese 2 Buttons nach unten verschieben, da sonst der Dailer Button unsere überlagert.

               GyroAktivierung 
               {
                       Class: LauncherButton;
                       Coordinates: 0,96,56,60;
                       Enabled: 423,0,0,40,40,6,10,255,0,255;
                       Pushed: 423,0,0,40,40,6,10,255,0,255;
                       Icon: 421,0,0,22,22,16,19;
                       PYOffset: 2;
                       BGMode: Transparent; 
                       launch: "$KOORD_PFAD$";
                       params: "window=0 RegKeyMode=2 SendKey=\0x73\c-200,280,20\0x72\| RegKey=Software\Navirunner,Autogyros";
               }

               GyroAnzeige 
               {
                       Class: LaunchFromRegistryButton;
                       Coordinates: 0,96,56,60;
                       Enabled: 423,0,0,40,40,6,10,255,0,255;
                       Pushed: 423,0,0,40,40,6,10,255,0,255;
                       Icon: 422,0,0,30,30,12,15,255,0,255;
                       Navigatable: no;
                       TapMode: TapThrough;
                       BGMode: transparent;
                       Registry: "HKCU,Software\Navirunner,Autogyros";
                       HideOnNonExistentRegistryEntry: yo;
               }
       }
	
       SF_gyro
       {
               // SkinElementModelCoder
               Class: SkinContainer;
               Coordinates: 0,0,480,272;
               TapMode: TapThrough;
               Layer: OnTop;
               // FormModelCoder
               DynamicFormX: 0;
               DynamicFormY: 0;
               DynamicFormWidth: 50;
               DynamicFormHeight: 50;
               // SkinContainerModelCoder
               // SkinScrollbarOwnerModelCoder
               Button_Stop
               {
                       Class: PushButton;
                       Layer: OnTop;
                       Navigatable: no;
                       Coordinates: 120,0,3,3;
                       Enabled: 0,0,0,3,3,0,0;
                       Pushed: 0,0,0,5,5,0,0;
                       PressedEvent: 12;
               }
               Button_Start
               {
                       Class: PushButton;
                       Coordinates: 130,0,3,3;
                       Layer: OnTop;
                       Navigatable: no;
                       Enabled: 0,0,0,3,3,0,0;
                       Pushed: 0,0,0,5,5,0,0;
                       PressedEvent: 11;
               }
               Button_Start
               {
                       Class: PushButton;
                       Coordinates: 140,0,5,5;
                       Layer: OnTop;
                       Navigatable: no;
                       Enabled: 0,0,0,3,3,0,0;
                       Pushed: 0,0,0,5,5,0,0;
                       PressedEvent: 39;
               }
               Button_Stop
               {
                       Class: PushButton;
                       Layer: OnTop;
                       Navigatable: no;
                       Coordinates: 150,0,5,5;
                       Enabled: 0,0,0,3,3,0,0;
                       Pushed: 0,0,0,5,5,0,0;
                       PressedEvent: 40;
               }

               gyro_gps_button
               {
                       Class: NStateButton;
                       Coordinates: 479,220,2,2;
                       Layer: OnTop;
                       Navigatable: no;
                       // NStateButtonModelCoder
                       States: 14;
                       StateChangeOnTap: disable;
                       Icon1: 420,0,0,1,1,0,0,255,0,255;
                       Icon2: 420,0,0,1,1,0,0,255,0,255;
                       Icon3: 420,0,0,1,1,0,0,255,0,255;
                       Icon4: 420,0,0,1,1,0,0,255,0,255;
                       Icon5: 0,0,2,1,1,0,0,255,0,255;
                       Icon6: 0,0,2,1,1,0,0,255,0,255;
                       Icon7: 0,0,4,1,1,0,0,255,0,255;
                       Icon8: 0,0,4,1,1,0,0,255,0,255;
                       Icon9: 0,0,4,1,1,0,0,255,0,255;
                       Icon10: 0,0,6,1,1,0,0,255,0,255;
                       Icon11: 0,0,6,1,1,0,0,255,0,255;
                       Icon12: 0,0,6,1,1,0,0,255,0,255;
                       Icon13: 0,0,6,1,1,0,0,255,0,255;
                       Icon14: 0,0,6,1,1,0,0,255,0,255;
                       MinValue: -1;
                       MaxValue: 12;
                       CurrentValue#DP: 65544;    //_OUT_POS_SATELLITES
               }

               Simu_Aktiv_button
               {
                       Class: SkinIcon;
                       Coordinates: 479,218,2,2;
                       Layer: OnTop;
                       Navigatable: no;
                       BitmapReference: 436,0,0,1,1,0,0;
                       Visibility#DP: 3801124;    
               }
     }

somit sind alle notwendigen Änderungen in der PFSkin vorhanden.

Jetzt müsst ihr noch in der „PFSpecial.skn“ dies einfügen am besten ans Ende!
Achtet dabei aber auf den korrekten Pfad.

Defines
{
  KOORD_PFAD: "\Storage Card\programme\koord465.exe";
  MORT_PFAD: "\Storage Card\progamme\MortScript";
}

In der Funktion „System“ fügt ihr noch bei „GlobalHK:“ diese 2 "Hardwaretasten-Events" mit ein.

 F3@ThrowEvent.2621443,F4@ThrowEvent.2490403

damit wären die Änderungen abgeschlossen.

Zusätzlich braucht ihr noch 2 Programme: MortScript und Koord465

Nun müsst ihr noch:

  1. Diese Datei downloaden und entpacken und die PNGs in den Ordner MFD\navigation\Skin480x272\PPSkin einfügen.
    Alternativ könnt ihr auch diese Grafik verwenden. Ihr müsst dann aber euren Code dementsprechend anpassen.
  2. das Mortscript in den Ordner MFD\programme\mortscript einfügen,
  3. die geänderte PFSkin wieder auf das Navi kopieren in den Ordner MFD\ navigation\Skin480x272,
  4. einen SoftReset machen und die Navigation starten.

Jetzt habt ihr in der Karte den Gyro Button und könnt diesen an und aus schalten.

Viel Spass damit.

Gyro-Sim Funktion einbauen in den Skin (320x240)

In der PFSkin oben unter Bitmaps zuerst folgende Einträge hinzufügen

       420: PPSkin\GyroGps.png;  //added
       421: PPSkin\gyros_inaktiv.png;  //added
       422: PPSkin\gyros_aktiv.png;  //added
       423: PPSkin\RunderButton.png;  //added
       428: PPSkin\gyro_nav_start.png;  //added
       436: PPSkin\Simu_Aktiv.png; // added

Nun im Abschnitt „Route_options“ folgendes einfügen am Ende:

               Gyro_Button  
               {
                      Class: LauncherButton;
                      Coordinates: 300,5,10,10;
                      Navigatable: no; 
                      Layer: OnTop;
                      launch: $MORT_PFAD$\NR_gyrostart.exe;
                      Enabled: 0,0,0,200,20,0,0,255,0,255;
                      Pushed: 0,0,40,200,20,2,2,255,0,255;
                      Icon: 0,0,0,30,30,5,5,255,0,255;
               }

Als nächstes im Abschnitt „mapview“ folgendes einfügen:

ziemlich am Anfang des Abschnitts nach „panel“

               Container_gyro_button
               {
                       Class: SkinContainer;
                       Form: SF_gyro_button;
               }

ganz am Ende des Abschnitts direkt vor „mapview_splitscreen“:

               Container_gyro
               {
                       Class: SkinContainer;
                       Form: SF_gyro;
               }

die selben Eintrage erstellt im Abschnitt „mapview_splitscreen“ (vor"MapAreaView") und „TurnByTurn (nach "panel")“

Als nächstes fügt ihr folgende Einträge ganz unten an die PFSkin mit an:

     SF_gyro_button
     {
              // SkinElementModelCoder
              Class: SkinContainer;
              Coordinates: 0,0,320,240;
              TapMode: TapThrough;
              Layer: OnTop;
              // FormModelCoder
              DynamicFormX: 0;
              DynamicFormY: 0;
              DynamicFormWidth: 50;
              DynamicFormHeight: 50;
              // SkinContainerModelCoder
              // SkinScrollbarOwnerModelCoder

              GyroAktivierung 
              {
                      Class: LauncherButton;
                      Coordinates: 0,85,56,60;
                      Enabled: 423,0,0,40,40,6,10,255,0,255;
                      Pushed: 423,0,0,40,40,6,10,255,0,255;
                      Icon: 421,0,0,23,23,12,16,255,0,255;
                      PYOffset: 2;
                      BGMode: Transparent; 
                      launch: "$KOORD_PFAD$";
                      params: "window=0 RegKeyMode=2 SendKey=\0x73\c-200,305,10\0x72\| RegKey=Software\Navirunner,Autogyros";
               }

              GyroAnzeige 
              {
                      Class: LaunchFromRegistryButton;
                      Coordinates: 0,85,56,60;
                      Enabled: 423,0,0,40,40,6,10,255,0,255;
                      Pushed: 423,0,0,40,40,6,10,255,0,255;
                      Icon: 422,0,0,23,23,12,16,255,0,255;
                      Layer: OnTop;
                      Navigatable: no;
                      TapMode: TapThrough;
                      BGMode: transparent;
                      Registry: "HKCU,Software\Navirunner,Autogyros";
                      HideOnNonExistentRegistryEntry: yo;
              }
       }

       SF_gyro
       {
              // SkinElementModelCoder
              Class: SkinContainer;
              Coordinates: 0,0,320,240;
              TapMode: TapThrough;
              Layer: OnTop;
              // FormModelCoder
              DynamicFormX: 0;
              DynamicFormY: 0;
              DynamicFormWidth: 50;
              DynamicFormHeight: 50;
              // SkinContainerModelCoder
              // SkinScrollbarOwnerModelCoder
              Button_Stop
              {
                      Class: PushButton;
                      Layer: OnTop;
                      Navigatable: no;
                      Coordinates: 100,0,3,3;
                      Enabled: 0,0,0,3,3,0,0;
                      Pushed: 0,0,0,5,5,0,0;
                      PressedEvent: 12;
              }
              Button_Start
              {
                      Class: PushButton;
                      Coordinates: 110,0,3,3;
                      Layer: OnTop;
                      Navigatable: no;
                      Enabled: 0,0,0,3,3,0,0;
                      Pushed: 0,0,0,5,5,0,0;
                      PressedEvent: 11;
              }
              Button_Start
              {
                      Class: PushButton;
                      Coordinates: 120,0,5,5;
                      Layer: OnTop;
                      Navigatable: no;
                      Enabled: 0,0,0,3,3,0,0;
                      Pushed: 0,0,0,5,5,0,0;
                      PressedEvent: 39;
              }
              Button_Stop
              {
                      Class: PushButton;
                      Layer: OnTop;
                      Navigatable: no;
                      Coordinates: 130,0,5,5;
                      Enabled: 0,0,0,3,3,0,0;
                      Pushed: 0,0,0,5,5,0,0;
                      PressedEvent: 40;
              }

              gyro_gps_button
              {
                      Class: NStateButton;
                      Coordinates: 319,198,2,2;
                      Layer: OnTop;
                      Navigatable: no;
                      // NStateButtonModelCoder
                      States: 14;
                      StateChangeOnTap: disable;
                      Icon1: 420,0,0,1,1,0,0,255,0,255;
                      Icon2: 420,0,0,1,1,0,0,255,0,255;
                      Icon3: 420,0,0,1,1,0,0,255,0,255;
                      Icon4: 420,0,0,1,1,0,0,255,0,255;
                      Icon5: 0,0,2,1,1,0,0,255,0,255;
                      Icon6: 0,0,2,1,1,0,0,255,0,255;
                      Icon7: 0,0,4,1,1,0,0,255,0,255;
                      Icon8: 0,0,4,1,1,0,0,255,0,255;
                      Icon9: 0,0,4,1,1,0,0,255,0,255;
                      Icon10: 0,0,6,1,1,0,0,255,0,255;
                      Icon11: 0,0,6,1,1,0,0,255,0,255;
                      Icon12: 0,0,6,1,1,0,0,255,0,255;
                      Icon13: 0,0,6,1,1,0,0,255,0,255;
                      Icon14: 0,0,6,1,1,0,0,255,0,255;
                      MinValue: -1;
                      MaxValue: 12;
                      CurrentValue#DP: 65544;    //_OUT_POS_SATELLITES
              }

              Simu_Aktiv_button
              {
                      Class: SkinIcon;
                      Coordinates: 319,196,2,2;
                      Layer: OnTop;
                      Navigatable: no;
                      BitmapReference: 436,0,0,1,1,0,0;
                      Visibility#DP: 3801124;
              }
     }

somit sind alle notwendigen Änderungen in der PFSkin vorhanden.

Nun müsst ihr noch:

  1. Diese Datei downloaden und entpacken ,
  2. die PNGs in den Ordner MFD\navigation\Skin320x240\PPSkin einfügen,
  3. das Mortscript in den Ordner MFD\programme\mortscript einfügen,
  4. die geänderte PFSkin wieder auf das Navi kopieren in den Ordner MFD\ navigation\Skin320x240,
  5. einen SoftReset machen und die Navigation starten.

Jetzt habt ihr in der Karte den Gyro-Button und könnt diesen an und aus schalten.

Weblinks

Diskussions-Thread im Forum dazu