先日、K 様よりの情報で、fx-CG50 向けの Python Extra というものを知り、この程、ようやく試用してみまして、その第一印象を記しておきます。
ref. Releases - Lephenixnoir/PythonExtra - Forge de Planète Casio
https://git.planet-casio.com/Lephenixnoir/PythonExtra/releases
まず、導入の方法としましては、fx-CG50 の Flash メモリーの root 階層に PythonExtra.g3a と modules ディレクトリを放り込んでやります。examples ディレクトリの中身はサンプルコードが収録されているので、余裕があったら入れておくと良さそうです。
PythonExtra.g1a の方は、おそらく Graph 35+E II, fx-9750GIII, fx-9860GIII とかのものらしく、まだ、入れていないので、よう判りません。
導入後、menu キーを押すと、PythonExtra のアイコンが表示されます。これを選択して EXE キーを押せば、Python Extra が動きます。
F1, F2 キーに、[FILES], [SHELL] が割り当てられています。
- [FILES] を押すと、ファイル一覧が表示され、
- [SHELL] を押すと、Python shell が開きます
Python Extra 自体は ver 0.3 との事で、まだ改良する点があるらしく、コードエディタは用意されていない様です。
[FILES] を押してファイル一覧から、python コードのファイルを選択し、EXE キーを押すと、そのコードを評価する様ですが、exmaples のスクリプトは、階層が root にないからか、import する module が見つからない、というエラーを出す場合があります。
これは、import する modules フォルダが内部的に相対 path のため、エラーになっているような感触です。
そこで、exmaples ディレクトリのサンプルコードを、最初から root フォルダに配置しておけば良さそうです。
コードエディタがないのですが、では、どうしましょう ?
- fx-CG50 の 内蔵 Python のエディタを使う
- PCでfx-CG50 のフォルダを開いて、PCで編集する
という手段が考えられます。
ファイル一覧で、python スクリプトを選択し、EXE キーを押すと、その python スクリプトが評価され、shell 画面に移行します。
右下に小さなアイコン状のインジケーターがあります。これは、キーボードの Alpha Lock 状態を示している様です。
いくつか、サンプルコードを実行してみましたが、結構早い様な印象でした。
また、fx-CG50 の System API を独自に呼び出す gint module があり、色々と興味深い動きを書き出せる感触です。
簡単なコードを用意できると良いのですが、まだ不慣れな所があり、そこまでには至らずとも、以前に作成した biomorph のコード biom.py を Python Extra で動かしてみました。
https://akatuki-724.blogspot.com/2024/09/fx-cg50-biomorph.html
当初は、TypeError: 'module' object isn't callable というエラーで実行できなかったのですが、色々といじっている内に、ようやく動くように変更できました。
File から実行する場合、そのスクリプトは「実行される」形式でないとならないらしいのです。
biom.py には、biom() という関数を呼ぶ記述が入っておらず、単純に関数定義を記述しているだけです。
Python Extra では、こうしたファイルを評価し、shell で 関数名を入力すると、上記のエラーが発生する様です。
そこで、 biom.py の末尾に、biom() を実行する、という記述を付け足す事で解決出来ます。
更に、Python Extra では、実行終了時に画面の保持をする機能がないので、スクリプトの方で対応しないとなりません。
最終的に、biom.py の末尾に、つぎの記述を付け足します。
biom()
import gint
gint.getkey()
これで一応は、biom.py を Python Extra で実行する事が出来るのですが、実際に実行してみると、CASIO Python と比較して、つぎの差異がありました。
- Python Extra の方が、実行速度が遅かった
- Python Extra では、フルスクリーンで画像表示できる (画面の枠などが出ない)
- Python Extra には、自前の cmath module があるみたい
システム向きのAPI が用意されているので、プログラムの幅は広がりそうです。
また、現在は、beta 段階 (ver. 0.3) であり、不具合が残っている様です。
Python Extra で、キーボードハンドラを独自に設定しているからではないか、と思うのですが、fx-CG50 がハイバネーション (電源を切って、永らく置いておくと、RAMの内容をFlashメモリに自動で退避するのですネ) から復帰した際、復帰するポインタが参照できないみたいで、Menu キーで別アプリに切り替える事ができなくなるという事象がありました。
こうなると、リセット・ボタンを押すしかありません。
以上、ファースト・インプレッションという名前の「つまみ食い」レポートでした !
かなり面白そうな環境です。Flash メモリに余裕があったら、お試し戴きたく。
0 件のコメント:
コメントを投稿