MachiKania type P ver 1.4 を公開
2024年2月16日
MachiKania type P の ver 1.4 を公開しました。
公式ページはこちら。
GitHub リリースページはこちら。
ReadMeに記載した更新履歴は、次の通りです。
ファイルマネージャーの同梱と、ファイル一覧の機能向上
今回の目玉機能は、ファイルマネージャーを同梱した事です。これにより、スタンドアローン機としての最低限の機能は、ほぼそろった事になります。PC と連携しなくても MachiKania のみで、一通りの事は出来るようになったと思います。ファイルマネージャーはサンプルプログラムとして、「FILEMAN.BAS」の名で保存されていますので、選択して実行してください。なお、ファイルマネージャーは USB キーボード版で利用できます。
また、ファイル一覧表示の際に、ファイル名順やファイル作成時刻順で表示できるようになりました。今までは、MMC/SDカードに保存のファイル数が多くなると、目的のファイルを見つけ出すのに苦労しましたが、そういった苦労なしで見つけることができるようになりました。加えて、ファイル作成時刻を閲覧する事も出来るようになりました。
auxcode機能
MachiKania で、C で書いたコードを実行する方法として、今まで2つの方法を提供してきました(方法1、方法2)。これらの方法では、クラスファイルを作成することができるので、いったんクラス化してしまえば、BASIC プログラムから取り込んで呼び出すことが可能です。ただ、クラス化するにあたって色々とコツが必要で、場合によってはうまくクラス化できないようなケースもあります。
そこで、MachiKania をソースコードからビルドする際に、補助機能を追加してビルドする事で、さまざまな種類の C コードを取り込めるようにしました。「auxcode」と名付けた機能が、それです。
ver 1.4 以降の MachiKania のソースコードには、「auxcode」という名のディレクトリーがあります(GitHub 該当ページはこちら)。デフォルトでは「auxcode.c」と「auxcode.cmake」の2つのファイルがありますが、これを書き換えた後に、MachiKania 全体をビルドすれば、補助機能が追加された MachiKania ができます。次のレポジトリーが、一例です。
https://github.com/kmorimatsu/hm01b0_machikania
これは、HM01B0 カメラを MachiKania で使うためのものです。このレポジトリーにある「auxcode」ディレクりーを MachiKania ソースコードに上書き保存してビルドすると、HM01B0 カメラに対応した MachiKania が作成されます。実行すると「HM01B0_INIT」「HM01B0_CAPTURE」「HM01B0_DRAW」「HM01B0_REG_WRITE」の4つの命令が追加で使えるようになり、それらを用いて HM01B0 カメラを制御したり画面に映像を表示したりできるようになります。
今後、MachiKania の新しいバージョンが公開された際にも、「auxcode」を新しいバージョンのソースコードにコピーしてビルドしなおすことで、将来のバージョンにも対応できます。「auxcode」の書き方は、HM01B0 の例を参考にしてください。リクエストがあれば、書き方についてもブログ記事を書くかもしれません。
追加のクラスライブラリー
BUTTON, GEN3O, QRCODE, TSC2046 の4つのクラスを、クラスライブラリーに追加しました。それぞれ、
・BUTTON は、6つあるボタンの読み取りを容易にする
・GEN3O は、CKNJ16 より大きなサイズのフォントを表示する
・QRCODE は、文字通り QRCODE を画面に表示する
・TSC2046 は、タッチパネルを利用する
際に、便利に使えるものです。今後も、クラスライブラリーを充実させていく予定です。
公式ページはこちら。
GitHub リリースページはこちら。
ReadMeに記載した更新履歴は、次の通りです。
Phyllosoma 1.40/KM-1505 (2024.2.17) ・サンプルプログラムに、FILEMAN.BAS(ファイルマネージャー)を追加。 ・クラスライブラリーに、BUTTON(ボタン操作), GEN3O(源ノ角ゴシック表示), QRCODE(QRCODE表示), TSC2046(タッチパネル操作)を追加。 ・液晶を使わない場合に、SPI命令でspi1を使う事を可能にした。 ・PUTBMP命令で、横幅が長い画像を表示する際の不具合を修正。 ・ファイル一覧表示の際、ファイル更新日時の表示を可能にした。 ・ファイル一覧表示の際の、ファイル名・ファイル更新日時による表示順に対応。 ・ILI9488液晶で縦置の際の表示不具合を修正。 ・FRENAME, MKDIR命令及びFRENAME(), MKDIR()関数の追加。 ・補助コード(auxcode)を追加できる機能を実装
ファイルマネージャーの同梱と、ファイル一覧の機能向上
今回の目玉機能は、ファイルマネージャーを同梱した事です。これにより、スタンドアローン機としての最低限の機能は、ほぼそろった事になります。PC と連携しなくても MachiKania のみで、一通りの事は出来るようになったと思います。ファイルマネージャーはサンプルプログラムとして、「FILEMAN.BAS」の名で保存されていますので、選択して実行してください。なお、ファイルマネージャーは USB キーボード版で利用できます。
また、ファイル一覧表示の際に、ファイル名順やファイル作成時刻順で表示できるようになりました。今までは、MMC/SDカードに保存のファイル数が多くなると、目的のファイルを見つけ出すのに苦労しましたが、そういった苦労なしで見つけることができるようになりました。加えて、ファイル作成時刻を閲覧する事も出来るようになりました。
auxcode機能
MachiKania で、C で書いたコードを実行する方法として、今まで2つの方法を提供してきました(方法1、方法2)。これらの方法では、クラスファイルを作成することができるので、いったんクラス化してしまえば、BASIC プログラムから取り込んで呼び出すことが可能です。ただ、クラス化するにあたって色々とコツが必要で、場合によってはうまくクラス化できないようなケースもあります。
そこで、MachiKania をソースコードからビルドする際に、補助機能を追加してビルドする事で、さまざまな種類の C コードを取り込めるようにしました。「auxcode」と名付けた機能が、それです。
ver 1.4 以降の MachiKania のソースコードには、「auxcode」という名のディレクトリーがあります(GitHub 該当ページはこちら)。デフォルトでは「auxcode.c」と「auxcode.cmake」の2つのファイルがありますが、これを書き換えた後に、MachiKania 全体をビルドすれば、補助機能が追加された MachiKania ができます。次のレポジトリーが、一例です。
https://github.com/kmorimatsu/hm01b0_machikania
これは、HM01B0 カメラを MachiKania で使うためのものです。このレポジトリーにある「auxcode」ディレクりーを MachiKania ソースコードに上書き保存してビルドすると、HM01B0 カメラに対応した MachiKania が作成されます。実行すると「HM01B0_INIT」「HM01B0_CAPTURE」「HM01B0_DRAW」「HM01B0_REG_WRITE」の4つの命令が追加で使えるようになり、それらを用いて HM01B0 カメラを制御したり画面に映像を表示したりできるようになります。
今後、MachiKania の新しいバージョンが公開された際にも、「auxcode」を新しいバージョンのソースコードにコピーしてビルドしなおすことで、将来のバージョンにも対応できます。「auxcode」の書き方は、HM01B0 の例を参考にしてください。リクエストがあれば、書き方についてもブログ記事を書くかもしれません。
追加のクラスライブラリー
BUTTON, GEN3O, QRCODE, TSC2046 の4つのクラスを、クラスライブラリーに追加しました。それぞれ、
・BUTTON は、6つあるボタンの読み取りを容易にする
・GEN3O は、CKNJ16 より大きなサイズのフォントを表示する
・QRCODE は、文字通り QRCODE を画面に表示する
・TSC2046 は、タッチパネルを利用する
際に、便利に使えるものです。今後も、クラスライブラリーを充実させていく予定です。
コメント
t.yano (2024年3月23日 05:04:24)
恥ずかしながら質問が1つ。一般的なBASICに搭載されている、TIME$,DATE$等はないのでしょうか?
Katsumi (2024年3月26日 12:19:59)
yanoさん、こんにちは
代替として、STRFTIME$()関数を使ってください。リアルタイムクロックの設定は、Raspberry Pi Pico Wを使う(NTPサーバーから現在時刻を自動取得)か、SETTIME ステートメントで現在時刻を設定するかの、どちらかが必要です。
STRFTIM$()の第一引数については、documentフォルダーのstrftime.htmlに英語での記述があります。一般的なC言語のstrftime()と同じものです。
代替として、STRFTIME$()関数を使ってください。リアルタイムクロックの設定は、Raspberry Pi Pico Wを使う(NTPサーバーから現在時刻を自動取得)か、SETTIME ステートメントで現在時刻を設定するかの、どちらかが必要です。
STRFTIM$()の第一引数については、documentフォルダーのstrftime.htmlに英語での記述があります。一般的なC言語のstrftime()と同じものです。