Ist ein Grid-Wechsel innerhalb eines Skripts möglich?

CHDK-Skripte, CHDK-Entwicklung, PC-Zusatzprogramme, Informationen für Tüftler

Ist ein Grid-Wechsel innerhalb eines Skripts möglich?

Beitragvon Sinter » 18.03.2010, 14:50

Hallo,

gibt es eine Möglichkeit, innerhalb eines Lua-Skriptes einen sichtbaren Grid-Refresh zu machen, um ein Grid zu wechseln?

Wenn man während eines laufenden Skriptes die Konsole betrachtet, dann sieht es für mich aus, als würden die Grid-Linien auf der Konsole und auf den den CHDK-Anzeigefeldern flimmern, bzw. wiederkehrend neu auf das Display geschrieben. Aber wenn man im Skript einen aktiven Gridfile mittels rename durch einen anderen ersetzt, ändert sich auf dem Display nichts.

Kennt vielleicht jemand einen anderen Weg, mit bestehenden Mitteln einen Grid-Refresh innerhalb eines Skriptes zu erzielen/auszulösen, bzw. auf andere Weise den angezeigten Grid zu wechseln?

Viele Grüße,
Sinter
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Beitragvon msl » 18.03.2010, 15:04

Hallo Sinter,

ich glaube, mit einer ähnlichen Fragestellung hast Du bei den Kurven angefangen. :D

Grid-Dateien könntest Du also genau so wechseln, wie es naddel mit den Kurven gemacht hat. Das Skript ließe sich bestimmt relativ einfach anpassen.

Das Flimmern bekommst Du weg, indem Du das automatische Redraw der Konsole mit set_console_autoredraw() ausschaltest. Bedenke aber, dass für ein neue Print-Anweisung ein Redraw benötigt wird.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Die kleinen Fragen habe es manchmal in sich :-)

Beitragvon Sinter » 18.03.2010, 15:30

Hallo msl,

jaja, ich immer mit meinen Fragen durch die Hintertüre. Schon wieder beginnt etwas mit einer kleinen, vielleicht sogar etwas unsinnig wirkenden Frage, die zunächst zum Kopfschütteln verleitet... :D

Das Wechseln von in einer Datei hinterlegten Daten ist sicherlich auf die bewährten Arten möglich. Mir geht es indes explizit darum, dass während (!) eines laufenden Skripts, ein angezeigter (alter) Grid noch während des laufenden Skripts sichtbar (!) durch andere Gridlinien ersetzt werden kann, und das Skript auch danach noch (mit angezeigtem neuen Grid) weiterlaufen kann.

Die Griddaten zu wechseln würde ja funktionieren, ich suche sozusagen nur noch ein Grid-Redrawoder Grid-Refresh. Aber ob das mit CHDK-Mitteln möglich ist, weiß ich nicht abzuschätzen.

Viele Grüße,
Sinter
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Beitragvon msl » 18.03.2010, 15:38

Hallo Sinter,

aus dem Hut kann ich nicht sagen, ob bei einem Wechsel der Grid-Datei diese automatisch neu gezeichnet wird. Das ließe sich nur experimentell ermitteln. Und das wäre ein sehr aufwändiges Experiment. Aber wie ich Dich kenne, wirst Du da nicht eher locker lassen, bis auch dieser Umstand geklärt ist.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon CHDKLover » 18.03.2010, 15:52

Hallo Jungs,
ihr schon wieder :D.
Nur wenn ein neues Grid-File geladen wird, wird die Datei eingelesen und analysiert (Es wird eine Liste mit den einzelnen Geometrien erstellt). Diese Liste wird dann bei jedem refresh abgearbeitet. Ein einfaches Austauschen der Dateien bewirkt somit nichts. Es muss dann nochmal explizit geladen werden. grid_lines_load(const char *fn)

CHDKLover
Zuletzt geändert von CHDKLover am 18.03.2010, 16:30, insgesamt 1-mal geändert.
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 18:25
Wohnort: Dresden
Kamera(s): a610 100e

Lösungssuche

Beitragvon Sinter » 18.03.2010, 16:26

Hallo,

ein Experiment hatte ich bereits vor einigen Tagen gemacht, mit rename die Fileinhalte verschoben. Aber auf dem Display hat sich leider nichts gerührt. Grid blieb unverändert.

Ich könnte vielleicht noch bei Gelegenheit probieren, ob ein Konsolen-Redraw als Nebenwirkung gleichzeitig ein Grid-Redraw provoziert.

Aber CHDKLover scheint schon wieder eine Lösung zu haben. :-)
grid_lines_load(const char *fn)
ist aber vermutlich noch kein existierende Lua-Befehl, sondern könnte irgendwo im Hintergrund zur Verfügung stehen?

Viele Grüße,
Sinter
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Beitragvon msl » 18.03.2010, 16:57

Hallo,

um Missverständnisse aus den Weg zu räumen, grid_lines_load(const char *fn) ist die Funktion im CHDK, die die Grid-Anzeige startet.

Das soll heißen, ein Austausch der Grid-Dateien hat in diesem Fall kein Erfolg, weil die Grid-Anzeige intern gepuffert wird.

Sicherlich könnte man irgendwie eine Lua-Funktion daraus basteln. Da müsste dann aber schon ein allgemeines Interesse bestehen. Wir müssen etwas sorgsam mit den CHDK-Ressourcen umgehen. Die sind nicht unerschöpflich - leider.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Ist glücklicherweise selbst für mich nicht so dringlich

Beitragvon Sinter » 18.03.2010, 17:19

Hallo msl,

kein Problem wenn das mit dem Gridwechsel zurückgestellt ist. Für mich ist das nicht so dringlich und vorerst komme ich auch ohne diese Funktionalität aus. Das ist jetzt kein wirklicher Rückschlag.

Viele Grüße,
Sinter
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Gridwechsel

Beitragvon naddel » 18.03.2010, 18:53

Hallo Sinter,

soviel ich weiß macht console_Redraw einen kompletten Bildschirm refresh.
Wenn Du also den file umbenennst, per Tastendrucken im Skript das Grid aus- und danach wieder
einschaltest und ein console_redraw hinterherschiebst könnte es gehen. Es wäre aber auf jeden Fall
ziemlich Kammeraabhängig. Nächste Woche bekomm ich hoffentlich meine S2 wieder und kann dann auch testen.

Gruß naddel
S2 1.00f mit aktueller DE Version
Benutzeravatar
naddel
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 156
Registriert: 26.01.2009, 19:42
Kamera(s): G3 s2 ixusii

Das werde ich demnächst auprobieren

Beitragvon Sinter » 22.03.2010, 13:12

Hallo Naddel,

vielen Dank für Deinen Hinweis. Deine ideenreichen Schachzüge sind immer wieder ein Genuss, wie man sich vielleicht doch noch an den Grenzen der CHDK-Möglichkeiten bewegen kann. Deinen Tipp werde ich bei Gelegenheit in den nächsten Tagen ausprobieren, auch wenn wir befürchten müssen, die Sache sei sehr kameraabhängig. Einen Versuch ist es wert. Vielleicht klappt es ja tatsächlich.

Viele Grüße,
Sinter
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Ein weiterer Versuch gescheitert

Beitragvon Sinter » 25.03.2010, 13:43

Hallo,

ein zusätzliches console_redraw nach einem Grid-File-Rename hat bei mir nichts bewirkt. Wie ich zusätzlich noch das CHDK-Grid ein- und ausschalten kann, weiß ich nicht. Umschalten vom Originalgrid könnte vielleicht noch über Klicksimulation gelingen, aber wenn ich mich nicht täusche, so sind Original-Grid und CHDK-Grids unabhängig voneinander.

Viele Grüße,
Sinter
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Beitragvon CHDKLover » 25.03.2010, 14:45

Hallo Sinter,
ein rename wird nichts bringen. Da die CHDK-Grinds einmal eingelesen werden und dann im Speicher gehalten werden. Du musst diesen Speicher leeren, und das kann zur Zeit nur das CHDK-Selbst (kein Skript).
Sollte es für viele Interessant sein, währe es auch möglich einen entsprechenden Skriptbefehl zu erstellen.
Sinter hat geschrieben:sind Original-Grid und CHDK-Grids unabhängig voneinander

da hast du natürlich Recht. Die Original-Grids kann auch das CHDK von hause aus nicht abschalten.

CHDKLover
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 18:25
Wohnort: Dresden
Kamera(s): a610 100e

Grenzen

Beitragvon Sinter » 25.03.2010, 15:25

Hallo CHDKLover,

es sieht aus, als gibt es mit den derzeit verfügbaren Mitteln keinen eleganten Trick 17, um als Nebenwirkung beiläufig ein CHDK-Grid zu wechseln. Extra einen eigenen Befehl zu schaffen halte ich derzeit ebenfalls noch nicht für sinnvoll. Ich hatte vielmehr auf irgendeine bestehende offene Lücke in CDHK gehofft, die bereits heute einen Wechsel ermöglichen würde, ganz ohne neuen Befehl. Euch Profis fällt ja öfter ein genialer Schachzug ein, um beinahe Wunder zu bewirken. Aber manchmal setzt die Realität die Grenzen.

Viele Grüße,
Sinter
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München


Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

cron