マックで RCB-3HV のモーション・シナリオを再生する MotionPlayer をリリースしました。これは以前書いていた RCBCommander の名前を変更した物です。近藤科学さんからリリースされているプログラムと同じ名前もどうかと。だいたい機能が違うし。で、変更しました。
添付ドキュメントにも書いていますが、現状では USB アダプタで使用しているチップのウェブサイトからライブラリをダウンロードしてインストールする必要が有ります。普通にファイルをコピーするだけなら良いのですが unix のコマンドを使う必要が有るので、詳しくない人には難しいかも。
将来的にはドライバを作成してインストーラ形式が良いと思ってはいるのですが、ドライバがねぇ。
NSComboBox
今回初めて NSComboBox を使ったのですが、値を取得するのにちょっと手こずってしまいました。例によって数が 24 個も有るので IB では設定せず(コピペすれば良いじゃぁ無いかと言う意見もありますが)プログラムから Delegate で設定したまでは良かったのです。選択した値を少し変更する必要が有るので NSComboBox を使ったので、その選択して変更した値を取得するには??メソッドを探してテストしてみても怒られるし。うーん、そうだ! NSComboBox もコントロールなので stringValue とかで良いかも、と思いテストすると、取得出来ました。まぁ情けないと言えばそうなんですが、index がゼロのオブジェクトの値を取得するのかも、とか思ってしまったのが敗因でした。
ビビリながらテスト?
今までのソフトで有れば特に気にする事も無くテスト&デバッグ出来たのですが。今回はそうはいかない様です。と言うか、変なデータを書き込んで KHR-1HV のマイコンやサーボが壊れるかもしれないし、まぁマイコンの方はソフトなので大丈夫だと思いますが。ボタンをぽちっ、サーボがギャー!、煙がもくもく、なんて事が起こると思うとマウスを持つ手に妙な汗が。。。
内部だけの処理で未実装なのは Link と Convert くらいになりました。無線関係は私が持ってないので後回しです、テスト環境が整えば作成する予定。純正の無線の代わりに PS2 のワイヤレスコントローラを使いたいと思っているのですが、その場合どうしてもさけられない物が1個。ワイヤレスコントローラの受信機と RCB-3HV の間を取り持つ処理をする”物”。PIC を使用して作成する(この場合初期投資が必要)のが一番安いと思われるのですが、PIC ライターとかを購入すると純正の無線装置と同じくらいの金額になる予想です。うーん、悩ましい。
モーションの編集でコンパイル?
モーションの編集で「コンパイル」と言うボタンが有るのですが、不思議でした。単に設定した値を羅列するだけだと思っていたからです。実際一つのモーションで色々な姿勢を設定して繋いでそれらの値を出力するだけだと「コンパイル」と言うより「コンバート」の方が近い気がします。しかし、条件に依ってジャンプしたり分岐処理が発生します。と言う事はプログラムで自動的に無条件ジャンプや終了のコードを出力してやる必要が有ります。その為、どの姿勢にジャンプするのかは分かりますが自動で出力したコードの為の飛び先変更や無条件ジャンプの飛び先を探す必要が有ります。うーむ、これはコンパイラーやアセンブラなどで行う名前解決と似ているなぁと。ボタンも「コンパイル」で良かったんだなぁ、と。改めて思うのでした。
現在はこんな感じです。
MotionEditor 開発状況
書いても書いても終わりません。当初は USB アダプターと RCB-3HV との通信に時間が掛かるだろうと予想していたのですが、何のことはなく設定画面が沢山有るし、サーボの数が24個有るので大変です。こういう時 IB の GUI で画面を作成するのは面倒ですねぇ。プログラムだと基本の1個を書いておけばループを回すだけなので。
モーションのオブジェクトで有る POS , SET , CMP , MIX ですが、現在は POS のみ出来てます。配置、ドラッグ、削除、はまぁ出来たのですが結線自体は出来ているのですが破線の描画が変です。今回はベジェを使って描画していますがベジェって開始と終わりの位置が異なる場合勝手に線を描画するのでしょうか?なんかそんな感じなんです。破線が破線にならない、オブジェクトを移動すると破線に見える時もある、調査は後回し。
元の HeartToHeart が Windows のアプリっぽいのでマック作法に出来る限り変換。パラメータ等の値を設定するウインドウでウインドウを閉じると設定されるってどうよ、って感じなので。キャンセルしたい時は無いのか、と聞きたい。OK キャンセルボタンが有るウインドウも有るのですが。
現在はこんな感じです。出来てない機能も有る、アイコンは未だ作成していないので文字だけ。