Auf der Suche nach einer Möglichkeit, externe Programme aus TwoNav-menüs heraus aufzurufen bin ich auf einmal über etwas gestolpert:
Compescript
In diesem Blog erläutert der Autor, wie man via Scriptaufruf von CGPSL die Erstellung von OSM-Maps in CGPSL automatisieren kann.
Compescript-cgs
Garmin fenix 7X und epix Gen 2 im Test
Der Schwerpunkt dieses Tests und Vergleichs der Garmin Fenix 7X Solar und Garmin Epix Gen 2 liegt auf den Sensoren wie Höhenmesser, Positionsbestimmung und Herzfrequenz. Was unterscheidet die beiden GPS-Outdoor-Smartwatches? Und wie gut ist die Taschenlampe der Fenix 7X für den Outdoorbereich?
Hier geht es zum Test der Outdoor-Smartwatches ...
-
-
-
Derselbe Blog aber ein anderer Eintrag zu Compescript listet sämtliche Funktionen auf, die sich auch in den Menüs verbauen lassen. Jetzt kann ich endlich (fast) alles personalisieren. Interessant z.B. 758 Play, damit müßten sich eigentlich Aufrufe von externen Programmen ins Menü basteln lassen.
-
Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank... -
Der Aufruf ist nicht das Problem.
Die gegebenenfalls notwendige Parameterübergabe schon. -
Da hänge ich auch gerade fest.
Kann über einen Wegpunkt für den Loox die Helligkeitssteuerung aufrufen, nicht aber über ein Menü. Ach wär das schön gewesen! -
<Item toolgroup="24" name="{H967}">
<Submenu>
<Item command="702" name="{H7}"/>
<Item command="405" name="{H14}"/>
<Item command="342" name="{H971}"/>
<Item command="2462" name="Recalculate"/>
<Item command="561" name="ScreenRotate degrees" param="WindowsScreenRotation"/>
<Item command="561" name="{H1003}" param="map_settings"/>
<Item command="561" name="{H990}" param="fieldsnbuttons"/>
<Item command="12" name="{G86}"/>
<Item command="554" name="custom" param="SD card\Tools\meinprogramm.exe"/>
</Submenu>
</Item>Mit dem roten Eintrag habe ich einen "Button" in meinem Custom-Werkzeugbutton-Menu auf der Kartenseite eingefügt, welcher meinprogramm.exe ausführt.
Was mir wie gesagt nicht gelungen ist, ist es dem aufgerufenen Programm als Parameter z.B. eine zu öffnendes Objekt mitzugeben.Hinweis: ich habe das nur am Sportiva getestet. Andere Geräte/Platformen mögen sich da anders verhalten
-
Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank... -
Wenn Dein Aufruf geht, ist die Parameterübergabe kein Problem, da kann man Mortscript zwischenschalten. Irgendwo hatte ich mal ein Mortscript zur Parameterübergabe geschrieben. Soll ich das Raussuchen?
-
Es geht!
Herzlichen Dank, jetzt hab ich endlich eine ordentliche integrierte Helligkeitsregelung.
Gruß Uwe -
Richtig mit mortskript sollte das gehen.
Das habe ich allerdings nicht weiterverfolgt, da wenn man es nicht ständig gebraucht dann doch etwas viel Zeit braucht mich jedes Mal aufs neue einzuarbeiten.
Wenn du über das Skript stolperst, wäre es in der Tat nett wenn du es zur Verfügung stellen könntest. -
Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank... -
Ich weiß nicht ob das weiterhilft.
Anbei 3 Scripts und die Mortscriptvariante mit der die damals liefen.
Parametertest selbst ist ein Script zum Auslesen von übergebenen Parametern (Test). Ist schon ein Weilchen her, das ich da fit drin war. -
Da ich gern Sachen automatisiere habe ich mir die Scriptsprache noch einmal vorgenommen.
Ziel war es, WPT-Dateien, die einem Muster entsprachen, automatisch in BWPT umzuwandeln.Dieses Skript macht das schon ganz gut. // deaktiviert übrigens die Zeile
Zitat
//CompeGPS.CloseAll();
list = CompeGPS.DirScan ("E:\\Dateien\\Caching\\TwoNav\\_*.wpt");
n = list.Count();
for (i=0;i<n;i=i+1){
wptname = list.Elem(i);
wpts = CompeGPS.Open (wptname);
wptname.Replace(".wpt",".bwpt");
wpts.SaveAs(wptname);
// wptname.Replace(".bwpt",".wpt");
// CompeGPS.Exec(598,wptname);
wpts.Close();
};
CompeGPS.Quit();Leider klappt das Löschen der WPT-Dateien am Ende nicht ohne Eingriff, da Compe hier eine Nachfrage einprogrammiert hat. Daher habe ich die Zeilen, die für ein Löschen der WPT-Dateien verantwortlich sind, auskommentiert:
Zitat
// wptname.Replace(".bwpt",".wpt");
// CompeGPS.Exec(598,wptname);NACHTRAG:
Der Aufruf über eine entsprechende BAT-Datei unter Windows könnte übrigens so aussehen:Zitat"D:\Programme\CompeGPS Land\compegpsland.exe" "D:\Programme\CompeGPS Land\scripts\Waypoint_load_and_Save_as_BWPT.cgs"
if not errorlevel 1 del E:\Dateien\Caching\TwoNav\_*.wpt:
-
Leider klappt das Löschen der WPT-Dateien am Ende nicht ohne Eingriff, da Compe hier eine Nachfrage einprogrammiert hat.//CompeGPS.CloseAll();
list = CompeGPS.DirScan ("e:\\GPS_Daten\\wpt2bwpt\\*.wpt");
n = list.Count();
for (i=0;i<n;i=i+1){
wptname = list.Elem(i);
wpts = CompeGPS.Open (wptname);
wptname.Replace(".wpt",".bwpt");
wpts.SaveAs(wptname);
wptname.Replace(".bwpt",".wpt");
CompeGPS.Delete(wptname);
wpts.Close();
};
//CompeGPS.Quit();so gehts es auch ohne Abfrage;)
-
Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank... -
Danke, das war es. Nun geht es auch besser aus GSAK heraus. Im Nachhinein betrachtet erscheint das ja auch logisch. Hast Du das einfach ausprobiert oder gibt es Dokumente außer dem ominösen spanischen Compesciptmanual, wo ein wenig mehr am Schleier des Mysterium gezupft wird?
Gruß, Uwe -
Hi Uwe,
ich habe einfach mal ein paar naheliegende Begriffe ausprobiert.
Was ist an dem Manual ominös?. Es handelt sich dabei um eine Doku von der Compepage.
Mehr habe ich selbst nicht gefunden.
Allenfalls in den Skriptdateien mit denen aus CGPSl die Website aufgerufen wird finden sich hier und da noch ein paar Kommandos. -
Was ist an dem Manual ominös?. Es handelt sich dabei um eine Doku von der Compepage.Als Doku finde ich es recht unzureichend. Noch nicht einmal der Delete-Befehl ist drin. Es macht Appetit auf viel mehr. Glücklicherweise gibt es ja in CGPSL den Scriptdebugger, der zumindest ein wenig die Probiererei erleichtert. Ich hatte zum Beispiel arge Probleme beim Abspeichern mit Wildcard (_*.bwpt) obwohl die dokumentiert sind. Daher auch die Trickserei mit Rename.
Ist aber auf jeden Fall eine tolle Sache. Während ich früher beim Export von Geocaches aus GSAK noch mehrere händische Schritte unternehmen mußte, um am Ende die fertige bwpt aufs Gerät schieben zu können, klappt das jetzt komplett ohne mein Zutun. CGPSL läßt sich sogar mehrfach zur selben Zeit aufrufen und wartet geduldig bei der Erstellung der bwpt, bis die Grundinitialisierung (Erstellung der "main" des ersten bwpt) abgeschlossen ist, ohne mit sich selbst in Konflikt zu kommen.
Gruss, Uwe -
Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank... -
Hi Uwe,
ich habe mal nachgefragt und weder gibt es eine aktuellere Version noch wird es wohl eine auf absehbare Zeit wenn denn überhaupt geben.
Das Dokument ist zwar zugänglich aber eigentlich nur für den internen Gebrauch gedacht gewesen. -
Danke Gert, auch wenn die Antwort wirklich unbefriedigend ist. Ich habe versucht im Compeforum diesbezüglich einen Thread zu starten aber ich hänge irgendwie fest in der Admin-Zustimmungs-Warteschleife.
Das nervt gewaltig und der Admin wurde auch schon darüber informiert (über 2 Wochen Wartezeit [bei einem anderen Thema] killt jeden Wunsch sich aktiv zu beteiligen). -
Ich wollte diesen Thread hier nutzen, um Erfahrung mit Compescript und ein paar Compescripts zu sammeln. Das folgende Scripte öffnet alle GeoTiff-Dateien in einem definierten Verzeichnis und fügt sie dann zu einer Rmap zusammen.
Code
Alles anzeigen// Open the Tiff-maps. CompeGPS.CloseAll(); list = CompeGPS.DirScan ("D:\\Projekt\\Denmark\\Test\\*.tif"); n = list.Count(); for (i=0;i<n;i=i+1){ mapname = list.Elem(i); CompeGPS.Open(mapname); }; //UnifyMaps Maps - selbes Ergebnis wie Menü Join Maps [CompeGPS.Exec(317)] aber fehlerfrei // params: Name imp,Name bmp,Maßstab(m/pixel) 0=Maßstab der größten Map -1=aktueller Zoom,Compression (nur ecw),einschließen anderer geöffneter Dateien (wpts,tracks,etc).[0/1] CompeGPS.UnifyMaps ("D:\\Projekt\\Denmark\\Test","D:\\Projekt\\Denmark\\Test.rmap",0,20,0);
Achtung:
Leider ist der Befehl CompeGPS.UnifyMaps nicht sauber programmiert. Folgende Einschränkungen konnte ich eruieren:
1) Imp-Name muß angegeben werden, wird als Imp-Name "" angegeben, ist die erstellte rmap nicht lesbar.
2) Wird beim Imp-Namen der Rmap-Name ohne Endung angegeben, wird keine Imp erstellt und die erstellte Rmap ist gültig.
3) Wird beim Imp-Name die Endung imp angegeben, dann wird eine Imp-Datei erstellt. Die automatisch erstellte Imp-Datei ist aber ungültig, da hier im Feld:
der Imp-Name und nicht der Rmap-Name eingetragen wird
(Im Beispiel steht dort:
anstelle von:
Daraus resultiert eine Fehlermeldung am Ende des Scripts. -
Datenschutz ist uns & Euch wichtig, daher verzichten wir auf Bannerwerbung & Web-Analysetools! Um das Forum zu unterstützen bitten wir Euch über diesen Link: bei Amazon zu bestellen....
Für Euch ist das nur ein Klick, uns hilft es das Forum langfristig und werbefrei für Euch zu betreiben! Vielen vielen Dank... -
Hier einmal ein Beispiel zum Zuordnen von Höhendaten zu Wegpunkten und Umwandeln einer wpt-Datei in eine bwpt-Datei:
Ziel:
Öffnen der wpt Datei, Zoom auf die Wegpunkte, automatisches Öffnen der dazugehörigen Reliefdatei, automatisches Auslesen der Höhenwerte und Zuordnen zu den einzelnen Wegpunkten, automatisches Speichern im bwpt-Format:Zitat
CompeGPS.Exec(403);//close waypoints
wptname = "E:\\Dateien\\Caching\\TwoNav\\Germany\\Test.wpt";
wpts = CompeGPS.Open (wptname);
CompeGPS.ZoomTo(wpts,10);//zoom to waypoints
CompeGPS.Exec(651);//find best relief here
CompeGPS.Exec(405,wptname);//open waypointlist
CompeGPS.Exec(412);//calculate altitude
wptname.Replace(".wpt",".bwpt");
wpts.SaveAs(wptname);
wptname.Replace(".bwpt",".wpt");
wpts.Close();
//this is the end;Was nicht einwandfrei klappt:
ZitatCompeGPS.Exec(405,wptname);//open waypointlist
Scheinbar übernimmt CGPSL nicht den zugeordneten Wepunktnamen. Es klappt hier nur, wenn nur eine Wegpunktdatei geöffnet ist, daher am Anfang:ZitatCompeGPS.Exec(403);//close waypoints
Edit: Getestet unter CGPSL 7.7.2
-
Da ich eine Weile über die Umwandlung von Stringwerten in Integer nachgrübeln mußte, hier mal ein Script als Beispiel:
Zitat
trackname = "D:\\CGPSLTEST\\20171118_102404_running.tcx";
trk = CompeGPS.Open(trackname);
str2=(trk.GetPropertyStr(153,1,0));
movetime=(trk.GetPropertyStr(162,0,0));
movetimelength=movetime.strlen();
hours=movetime.SubString(0,1);
minutes=movetime.SubString(3,4);
seconds=movetime.SubString(6,7);
time=seconds.atoi()+minutes.atoi()*60+hours.atoi()*3600;
meanspeed=str2.atoi()*3.6/time;
str1="Compare calculation:";
str1<< ("\n") << ("\n");
str1<< ("Compe has calculated:");
str1<< ("\n");
str1<< (CompeGPS.PropertyName(227));
str1<< (" = ");
str1<< (trk.GetPropertyStr(227,0,1));
str1<< ("\n");
str1<< ("\n");
str1<< ("Self calculated:");
str1<< ("\n");
str1<< (CompeGPS.PropertyName(227));
str1<< (" = ");
str1<< (meanspeed);
str1<< (" km")<<("/")<<("h");
CompeGPS.MessageBox(str1);