Custom_Frameの扱いを変更しようと考えた
『PIC_coloの手引き』(こんな奴↓)にPIC_coloの操作手順をまとめようとしています。
基板とソフトウェアだけ配布しても使って頂けないことは明白なので、頑張って作るしかないのですが作業はなかなか進みません。しかも、構想がぶれて書き直しになることも度々あります。今もCustom_Frameの扱いに関して変更しようと考え始めました。
これまでCustom_Frameは、アプリケーション・プログラムのユーザ・インターフェースと位置づけ、ユーザがカスタマイズして使うものと考えていました。例えば、PIC_colo_Thereminのデバッグ用Custom_Frameはこんな感じです。
Blink(Lチカ)ではCustom_Frameを非表示にして、PIC_coloコンソールで行う変数操作機能を紹介しようとは考えていたのですが、その操作がなんともまどろっこしい・・・
「これを嬉々として行うのは作った本人だけ何じゃないの?」
手引きに手順を記述して初めて気づきました。orz
Custom_Frameには、ユーザがアプリケーションを作るときの手助けとなるように変数操作機能(get_varコマンドとset_varコマンド)が用意されています。これを使った変数操作機能を紹介した方が良いのではないか?
サンプル・プログラム共通で使うCommon_Frameを設るとか・・・
そんなことを思いついて、早速試して見ました。
(1)Sendウィンドウに”get_var blink_interval”と書いてSendボタンを押す。(2)Recieveウィンドウに”0a"(10)が表示される。
(3)Sendウィンドウを”set_var blink_interval 05”に書き換えてSendボタンを押す。(4)Recieveウィンドウに”complete"が書き足され、Lチカの周期が1秒から0.5秒に
変わる。
うん、この方がず~っと良い!
組み込む機能は要検討ですが、サンプル・プログラムはCommon_Frameを利用する方針に変更します。
PIC_coloの機能がまた一歩前進して、PIC_coloの手引きの完成はまた一歩後退しました。orz
PIC_coloとPIC_colo_Theremin
Maker Faire Tokyo 2018への出展を目指して、開発を続けてきたPIC_coloとPIC_colo_Thereminの目鼻が付いてきました。
まだ、色々課題を抱えていますが何とか形になりそうです。
to
FusionPCBにアクセス出来なく成った
FusionPCB(↓)にアクセスしようとすると・・・
「安全な接続ができませんでした・・・・・・ への接続中にエラーが発生しました。 SSL peer cannot verify your certificate. エラーコード: SSL_ERROR_BAD_CERT_ALERT」と表示されアクセス出来ません。www.seeedstudio.com
やむなく、PIC_colo用のユニバーサル基板はelecrow(↓)に発注しました。
Elecrow.com® Custom PCB Assembly, Fabrication and DIY Electronics
FusionPCBには色々サポートしてもらっているので、次の基板は是非FusionPCBにお願いしたいと思い、SSL_ERROR_BAD_CERT_ALERTの対策を調べてみました。
しかし、googleで検索を掛けて出てきた対策(about:configにアクセスして設定値を変更するとか、特定サイトのSSL証明のチェックを無効にするとか)を試してみたのですが改善しません。orz
認証関連の不具合全般に検索範囲を広げ、あれこれ調べてみると・・・
「%APPDATA%¥Mozilla¥Firefox¥Profiles¥以下にあるcert8.dbを削除する」という対策(↓)に行き着きました。
Deleting Cert8.db for Firefox - IS&T Contributions - Hermes
SSL_ERROR_BAD_CERT_ALERTに関する対策では無かったのですが、認証関連のデータを初期化する方法らしいので藁をも掴む気持ちで試して見ると・・・
ビンゴ~~
ようやくFusionPCBに接続することが出来るようになりました。
やれやれ
ーーーーーーーーーーーーーーーーーーーーーーーーーー
実際に削除したのは以下の二つです。
%APPDATA%¥Mozilla¥Firefox¥Profiles¥amgibljy.default¥cert8.db
%APPDATA%¥Mozilla¥Firefox¥Profiles¥ amgibljy.default¥cert9.db
Firefoxを再起動するとcert8.dbとcert9.dbが新たに作り直され、FusionPCBに接続出来ました。詳しいメカニズムを理解してやったことではないので、この方法を試すのは自己責任でお願いします。
先のサイトにも以下のような注意書きが記されています。
Make sure you've tried other alternatives before deleting cert8.db.
Pic_coloにRESETモニタ機能を加えた
User_Frameが良い感じに動き出した
先日、User_FrameからPICのメモリやレジスタに直接アクセスできるように仕様変更したのですが、良い感じに動き出しました。
(DAC_ADC用のUser Frame)
以下のコマンドを中段のText_Areaに書き込み、Sendボタンをクリックすると、結果が下段のText_Areaに表示されます。
get_var 変数名
set_var 変数名 書き込みデータ
get_reg レジスタ名
set_reg レジスタ名 書き込みデータ
TextAreaを介さずコマンド・バッファに直接コマンドを書き込めば、ユーザ・アプリケーションから簡単にPICを操作できます。
配列なども扱えるともっと使いやすくなりますが、Pic_coloコンソールで行う変数の表示/編集機能との使い分けが課題になりそうです。
Pic_coloの仕様を変更することにした
Pic_coloには自由にカスタマイズできるユーザ・フレームが用意されています。
ユーザ・フレーム表示のON/OFFは、Setting==>Other==>CustomWindowをクリックして切り替えます。
(背景が水色のウィンドウがデフォールトのユーザ・フレームです)
ユーザ・アプリケーションは、ユーザ・フレームとPICプログラム間でデータを送受することになるのですが・・・
このデータ送受を、Pic_coloコンソール(JAVAプログラム)とPic_coloデバッガ(PICプログラム)間で行うUART通信で、カプセル化して中継しようと考えて(<==未だ実装していなかった)いました。いよいよ、ユーザ・フレームとPICプログラム間のデータ送受を組み込もうとして、ユーザ・アプリケーションにとってデータ通信というのは手段にすぎないということに気付きました。
通信文字列を組み立て、それを解釈実行して、応答文字列を組み立て・・・
そんなことをやるよりも、データはPICのメモリやレジスタ上にあるのですから、それを直接読み書きする方がずっと簡単です。Pic_coloに組み込んであるPICの変数やレジスタをRead/Writeする機能をユーザ・フレームから呼び出せれば良いのです。
これは良いことを思いつきました。
新年、最初のヒットです!