Taschenrechner

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

Taschenrechner

Beitragvon Kay » 24.08.2011, 20:15

Hallo CHDK-Freunde,

ich möchte euch meine kleine Erweiterung vorstellen, ein kleiner Taschenrechner geschreiben in C. Gerechnet wird durchgehend mit Double, bei der Ausgabe musste ich etwas improvisieren, da %f bei sprintf nicht zu Verfügung steht.
Der Code steht selbstverständlich unter der GPL, wie es hier ja erwünscht ist.
Da ich mehr ein Hobbyprogrammierer bin, hoffe ich, dass der Code ist nicht zu furchtbar geworden.

Zu den Funktionen, er rechnet leider nur linear, also eine Operation nach der anderen, eine Speichermöglichkeit fehlt.
Ich hatte Pläne den Rechner auf die Umgekehrte Polnische Notation umzustellen, leider musste ich es aus Zeitmangel zurückstellen.

Getestet habe ich alles nur auf meiner A480 mit dem Kompiler GCC 4.5.2 .

Die Kommentierung und die Variablennamen sind größtenteils auf Deutsch verfasst, für das internationale Publikum ist der Code deswegen leider ehr ungeeignet. Leider ist mein Englisch aber ziemlich schlecht, so dass ich auf eine Englische Schreibweise verzichtet habe.

http://kayg.amarunet.de/code/gui_calc.h
http://kayg.amarunet.de/code/gui_calc.c

Mit freundlichen Grüßen

Kay
Kay
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 3
Registriert: 23.08.2011, 23:44
Kamera(s): A480

Re: Taschenrechner

Beitragvon msl » 24.08.2011, 23:07

Hallo und herzlich willkommen hier im Forum.

Das ist ein interessantes Projekt, was du da begonnen hast.

Sicherlich wäre es hilfreich, die komplette Einbindung in CHDK möglichst als Patch bereitzustellen. Dann könnten wenigstens alle diejenigen testen, die mit der CHDK-Shell selbst compilieren. Die wenigsten werden wissen, wie man deinen Rechner in das CHDK integriert.

Ich könnte mir vorstellen, dass man so ein Projekt ähnlich wie andere Module optional einbindet. Dann kann das Rechner-Modul bei Bedarf mit compiliert werden.

Das allgemeine Interesse an einer Rechnerfunktion wird sich aber in Grenzen halten. Das hat schon ein Lua-Skript in dieser Richtung gezeigt.

Gruß msl
■ "Hey you, don't tell me there's no hope at all. Together we stand, divided we fall."CHDK inside FAQCHDK-Neuigkeiten auf Twitter
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4501
Bilder: 271
Registriert: 22.02.2008, 12:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: Taschenrechner

Beitragvon Kay » 28.08.2011, 22:43

Hallo msl,

das LUA-Skript kenne ich und fand es auch gut, allerdings fand ich die Darstellungsmöglichkeiten mit Skripten etwas eingeschränkt. Programmiert habe ich es auch mehr um mich etwas mit der Softwareentwicklung in Bezug auf das CHDK vertraut zu machen. (die Neugierde halt) Dass das Interesse ehr gering sein wird, dachte ich mir schon.

Bei der Einbindung bin ich nach dieser Anleitung vorgegangen (für andere Interessenten) : viewtopic.php?p=14275#p14275

Bezüglich des Patches, ich kenne mich da leider gar nicht aus, gibt es da ein kleines Tut oder etwas vergleichbares? Habe auf die Schnelle nichts gefunden.

Das mit der optionalen Einbindung wäre auch nett, welche Anforderungen muss der Code dabei genügen?

Gruß Kay
Kay
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 3
Registriert: 23.08.2011, 23:44
Kamera(s): A480

Re: Taschenrechner

Beitragvon msl » 28.08.2011, 23:18

Hallo Kay,

eine Patch- oder Diff-Datei beinhaltet die Unterschiede zweier Versionen. Die Erzeugung hängt stark von der verwendeten Software ab. Die einfachste Möglichkeit wäre, mit der CHDK-Shell zu arbeiten. Unter ""Source Tools" sind entsprechende Funktionen zur Erzeugung von Patch/Diff-Dateien und das Einlesen von Patch/Diff-Dateien zu finden.

Umfangreichere Möglichkeiten ergeben sich mit einer Subversionskontroll-Software wie Tortoise. Eine Installation lohnt sich aber nur, wenn man im größeren Umfang an einem Projekt arbeitet.

Die Header- und Programmdatei sind soweit ok. Was fehlt, sind die Einbindungen in gui.c (Menüeintrag, gui_mode u.s.w.) und in core/Makefile sowie alle optionalen Festlegungen. Schau dir das Kalender-Modul an. So wie dieses Spiel eingebunden wurde, muss auch dein Rechner eingeführt werden. Den Quellcode dazu kannst du mit Doxygen verfolgen.

Gruß msl
■ "Hey you, don't tell me there's no hope at all. Together we stand, divided we fall."CHDK inside FAQCHDK-Neuigkeiten auf Twitter
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4501
Bilder: 271
Registriert: 22.02.2008, 12:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: Taschenrechner

Beitragvon msl » 29.08.2011, 13:51

Hallo Kay,

noch ein Nachtrag, nach dem ich nun dein Rechner-Modul getestet habe.

Der Rechner funktioniert soweit gut. Was mich stört, ist die ungenügende Fehlerbehandlung (illegale Operationen und Überlauf). Rein optisch könnte man evt. noch etwas Platz zwischen dem eigentlichen Rechner und der Titelleiste einfügen. Ansonsten finde ich den Rechner sehr brauchbar. =D>

Anbei eine Patchdatei, die alle notwendigen Einträge zu optionalen Einbindung in CHDK-DE enthält.

Gruß msl
Dateianhänge
chdk-de_calc.patch
Patch zum einfügen eines Taschenrechners in CHDK-DE
(19.24 KiB) 58-mal heruntergeladen
■ "Hey you, don't tell me there's no hope at all. Together we stand, divided we fall."CHDK inside FAQCHDK-Neuigkeiten auf Twitter
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4501
Bilder: 271
Registriert: 22.02.2008, 12:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: Taschenrechner

Beitragvon Kay » 31.08.2011, 15:48

Hallo msl,

danke für die positive Rückmeldung und für das erstellen des Patches. Das mit der Fehlerbehandlung werde ich mir demnächst mal vornehmen. UI-Desing ist leider nicht meine Stärke, ich werde aber mal schauen ob ich das noch etwas verbessern kann.

Gruß Kay
Kay
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 3
Registriert: 23.08.2011, 23:44
Kamera(s): A480


Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast