Datenübertragung mit dem Casio FX-880P

Programme laden und speichern

Mit dem folgenden C-Programm ist es möglich, per LOAD und SAVE Programme über die serielle Schnittstelle auf einen Linuxrechner zu übertragen.
Ein Problem dabei ist, dass dem Casio EOF's offensichtlich fremd sind, und somit weder der Casio beim LOAD, noch der Empfänger beim SAVE wissen, wann die Übertragung abgeschlossen ist. Beim SAVE behelfe ich mir mit einem kleinen Trick: Wenn beim Empfang ein Timeout auftritt, nimmt das Programm an, die Übertragung sei beendet (und fast immer stimmt das auch).

Daten aus eigenen Programmen übertragen

Das oben schon erwähnte Problem, dass der RS-232 Port des Casio FX-880P nicht 8-Bit-clean ist, besteht natürlich auch hierbei. Zur Übertragung von binären Daten müssten diese also, z.B. per base64 Kodierung, in ASCII-kompatible Zeichen übersetzt werden. Ich entschied mich aus Geschwindigkeitsgründen dafür, jedes Zeichen als HexCode zu übertragen, da der Casio die Umwandlung eines Zeichen von/nach Hex halbwegs schnell bewältigt (im Gegensatz z.B. zur base64 Kodierung).
Das Kommunikationsprogramm auf Casio Seite ist absichtlich sehr minimalistisch gehalten, um nicht viel tippen zu müssen.
Das Programm wird einfach auf dem Casio gestartet und wartet dann auf Befehle vom Hostrechner (über RS-232).

Der Sourcecode des Linuxprogrammes ist verschollen, aber ein kurzes Beispiel gibt es hier. Besonders schön ist es nicht, aber es funktioniert. Das Programm entsprechend zu ändern oder zu ergänzen sollte nicht allzu schwer sein.


HTML und Idee von blip@osiris.localnet