CHDK-Forum

Alles rund um das CHDK (Canon Hacker Development Kit),
das Sprungbrett zur semiprofessionellen Fotografie
login.php profile.php?mode=register faq.php http://www.wirklemms.de/chdk/forum/impressum.php memberlist.php search.php http://www.wirklemms.de/chdk/forum/autobuild.php index.php
CHDK-Forum Foren-Übersicht » Code-Ecke » [LUA] print
Neues Thema eröffnen  Neue Antwort erstellen Vorheriges Thema anzeigen :: Nächstes Thema anzeigen 
[LUA] print
BeitragVerfasst am: 23.11.2009, 08:46    Titel: [LUA] print Neue Antwort erstellen Antworten mit Zitat
naddel
CHDK-Begeisterter
CHDK-Begeisterter
Benutzergruppen: 
CHDK-Insider
Anmeldungsdatum: 26.01.2009
Beiträge: 120




Hallo,

weiß jemand warum bei LUA die Stringlänge bei der Ausgabe über print auf 127 Zeichen beschränkt ist?
Oder wie man das umgehen kann?
Bitte keine Antwort wie es passen eh nur 125 auf die Konsole.
Jch habe sie derzeit auf 10 Zeilen eingestellt.

an script_console_draw scheints nicht zu liegen.

Gruß naddel

_________________
S2 1.00f mit aktueller DE Version

Benutzer-Profile anzeigen Alle Beiträge von naddel anzeigen Private Nachricht senden
(Kein Titel)
BeitragVerfasst am: 23.11.2009, 13:40    Titel: (Kein Titel) Neue Antwort erstellen Antworten mit Zitat
msl
CHDK-Legende
CHDK-Legende
Benutzergruppen: 
Scripter
CHDK-Insider
Sachsen
Scripter
Anmeldungsdatum: 22.02.2008
Beiträge: 2412
Wohnort: Leipzig




Hallo naddel,

ich vermute mal, dass das am definierten Puffer liegt. Wenn man die Funktion zurück verfolgt, gibt es im uBasic-Teil die Print-Funktion und für Dich eher interessant im Lua-Teil die Print-Funktion. Der Puffer ist jeweils mit 128 angegeben.

Das Ganze macht ja bei einer Konsolengröße von 5 x 25 auch irgendwo Sinn. Wenn Du natürlich mit 10 Zeilen und Strings in dieser Größenordnung arbeitest, musst Du wahrscheinlich diesen Puffer erhöhen.

Gruß msl

_________________
A720IS CHDK: CHDK-DE PTP-Interface

CHDK-Handbuch | Alles zu CHDK-DE | CHDK inside FAQ

Benutzer-Profile anzeigen Alle Beiträge von msl anzeigen Private Nachricht senden Website dieses Benutzers besuchen
(Kein Titel)
BeitragVerfasst am: 23.11.2009, 14:35    Titel: (Kein Titel) Neue Antwort erstellen Antworten mit Zitat
naddel
CHDK-Begeisterter
CHDK-Begeisterter
Benutzergruppen: 
CHDK-Insider
Anmeldungsdatum: 26.01.2009
Beiträge: 120




Danke

das ist es.
Dann muß ich mir was anderes Überlegen.

Der Hintergrund ist der, daß mein Editor ganz brauchbar läuft.
Es bleiben bei der normalen Konsole aber nur 3 Zeilen für den Text.
Wenn dann 2 Leerzeilen drin sind verliert man gleich die Orientierung.
Also Konsole größer machen.
Bei der Konsolenausgabe stört mich aber das geflacker durch die refreshs nach jedem print.
Also mit einem print die ganze Konsole vollschreiben.
Falls Du mal viel Zeit hast kannst Du das am Taschenrechner ansehen, den habe ich
dahingehend geändert. Man bekommt ein vollkommen statisches Bild, ein Himmel weiter Unterschied.
Einen Updatevermerk habe ich nicht gemacht, da die Rundung nicht richtig funktioniert.
z.B. Kehrwert von Kehrwert 55 = 50 aber bisher hat es keinen gestört.
Ich dachte wart mal eine Rückmeldung ab.

Wo muß ich denn beim Compiler die geänderte script.c hinterlegen
daß ich sie nicht bei jedem Build wieder ändern muß?

Gruß naddel

_________________
S2 1.00f mit aktueller DE Version

Benutzer-Profile anzeigen Alle Beiträge von naddel anzeigen Private Nachricht senden
(Kein Titel)
BeitragVerfasst am: 23.11.2009, 14:55    Titel: (Kein Titel) Neue Antwort erstellen Antworten mit Zitat
msl
CHDK-Legende
CHDK-Legende
Benutzergruppen: 
Scripter
CHDK-Insider
Sachsen
Scripter
Anmeldungsdatum: 22.02.2008
Beiträge: 2412
Wohnort: Leipzig




Das geht nicht so einfach. Du kannst [Source Tools ..] eine Diff-Datei erzeugen. Diese kann dann auch als Patch-Datei in eine neue Version eingepflegt werden. Ich arbeite mit Tortoise-SVN. Da ist die Verwaltung von Arbeitskopien einfacher. Dafür ist aber wiederum zu umfangreich, um nur mal eine Datei auszutauschen. Probier einfach die CHDK-Shell aus.

Zu Deinem Editor-Problem:

CHDKLover hat mal angefangen, eine Lua-Skript-Erweiterung zu schreiben, mit der man die Größe der Konsole variabel verändern kann: http://chdk.kernreaktor.org/mantis/view.php?id=55

Ich weiß jetzt nicht, welche Möglichkeiten Dein Editor bietet, kann mir aber schon vorstellen, dass er sehr sinnvoll und nützlich ist. Da wäre dann sicherlich auch diese Konsolen-Erweiterung sehr hilfreich und sollte vielleicht doch umgesetzt werden.

Gruß msl

_________________
A720IS CHDK: CHDK-DE PTP-Interface

CHDK-Handbuch | Alles zu CHDK-DE | CHDK inside FAQ

Benutzer-Profile anzeigen Alle Beiträge von msl anzeigen Private Nachricht senden Website dieses Benutzers besuchen
(Kein Titel)
BeitragVerfasst am: 25.11.2009, 01:07    Titel: (Kein Titel) Neue Antwort erstellen Antworten mit Zitat
naddel
CHDK-Begeisterter
CHDK-Begeisterter
Benutzergruppen: 
CHDK-Insider
Anmeldungsdatum: 26.01.2009
Beiträge: 120




Hallo msl,

Dieser Ansatz von chdklover ist sehr interessant und geht weit über das hinaus was ich erhofft hätte.

Ziel war
Größe von Konsole über Skript änderbar.
Schriftdatei und womöglich Zeichensatz änderbar.
Schreibposition änderbar.
anscheinend machen die vielen Änderungsmöglichkeiten
Schwierigkeiten bei der Speicherbehandlung.
Aber einzelne Punkte wie die Schreibposition liesen sich leicht ändern indem
die entsprechenden internen Variablen zugänglich gemacht werden.

Da mich hauptsächlich stört, daß man kein stabiles Bild bekommt,
weil die Konsole eben als solche arbeitet. Hatte ich einmal einen anderen
Ansatz ausprobiert der auch funktioniert hat.

Das print schreibt ja in den internen Puffer der Konslole.
Das ändert noch nichts an dem was auf dem Bildschirm erscheint.
Aber nach jedem print wird auch der Puffer mit der Anzeige synchronisiert
was das flackern verursacht.

Durch einen optionalen Parameter an cls hatte ich damals die synchronisation an- und ausgeschaltet.
Bevor man also den Bildschirm voll schreibt macht man
cls(1)
macht seine ganzen Ausgaben wie gewohnt die dann zwar in den Puffer geschrieben aber nicht
angezeigt werden.
Vor dem letzten print schreibt man
dann
cls(0) das die Bildschirmsynchronisation wieder einschaltet
und nach dem letzten print
wird dann der ganze Bildschirm auf einmal auf den aktuellen Stand gebracht.
So ähnlich wie ein flush in einer Datei.
Eine solche Erweiterung von cls dürfte keine Auswirkungen auf die
Funktion alter Skripte haben, kostet kaum Code und möglicherweise auch keine Variable
wenn ein Flag in einer schon vorhandenen Variable genutzt werden kann.
Da sich das Ganze nur auf die Bildschirmanzeige bezieht dürfen auch eventuelle
Umleitungen nicht betroffen sein. Das Skript müsste nur sicher stellen, daß bei einem
Abbruch die normale funktionsweise von cls auf jeden Fall wieder hergestellt wird.

Die Pufferlänge von 127 bei print wäre dann auch ausreichend.
Da die 127 aber offensichtlich auf die ursprüngliche fixe Konsolengröße
5x25 ausgelegt ist sieht es so aus als ob man von Anfang an schon die Möglichkeit
vorgesehen hat die Konsole mit einem Print zu beschreiben.
Mir stellt sich also die Frage hat man die Pufferlänge schlicht übersehen
als man die Möglichkeit geschaffen hat die Konsole zu vergrößern?

Gruß naddel

_________________
S2 1.00f mit aktueller DE Version


Zuletzt bearbeitet von naddel am 25.11.2009, 15:16, insgesamt einmal bearbeitet

Benutzer-Profile anzeigen Alle Beiträge von naddel anzeigen Private Nachricht senden
(Kein Titel)
BeitragVerfasst am: 25.11.2009, 01:30    Titel: (Kein Titel) Neue Antwort erstellen Antworten mit Zitat
msl
CHDK-Legende
CHDK-Legende
Benutzergruppen: 
Scripter
CHDK-Insider
Sachsen
Scripter
Anmeldungsdatum: 22.02.2008
Beiträge: 2412
Wohnort: Leipzig




Hallo naddel,

interessanter Ansatz. Ich denke, Du solltest Dich da mal mit CHDKLover in Verbindung setzen.

Bei einer Veränderung von cls() sollte aber auch bedacht werden, dass dieser Befehl zu den Befehlen gehört, die auch in uBasic verwendet werden. Hier sollte möglichst auf gleiche Syntax geachtet werden.

Übrigens wollte ich noch anmerken, dass das neue statische Erscheinungsbild des Taschenrechners sehr gut gelungen ist.

Gruß msl

_________________
A720IS CHDK: CHDK-DE PTP-Interface

CHDK-Handbuch | Alles zu CHDK-DE | CHDK inside FAQ

Benutzer-Profile anzeigen Alle Beiträge von msl anzeigen Private Nachricht senden Website dieses Benutzers besuchen
[LUA] print
CHDK-Forum Foren-Übersicht » Code-Ecke
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst in diesem Forum keine Dateien anhängen
Du kannst in diesem Forum keine Dateien herunterladen
Alle Zeiten sind GMT + 1 Stunde  
Seite 1 von 1  

  
  
 Neues Thema eröffnen  Neue Antwort erstellen  


CHDK-Forum merken CHDK-Forum news

Powered by phpBB © 2001-2004 phpBB Group
Designed for Trushkin.net | Themes Database
Deutsche Übersetzung von phpBB.de