USB-I2C変換モジュールを使用することで、実際のデバイスにI2Cコマンドを送信することができます。
コマンドプロンプトで動作。テキストファイルを読み込み、I2Cコマンドを送信します。
JavaScriptからコマンドプロンプトを操作、結果を受け取ることで、レジスタマップのViewerに組み込むことができます。
【ハード】
Sunhayatoの「MM-CP2112A」を使用しました。その他、CP2112を搭載した基板であれば使用できると思います。
Mayhew Labsの「USB to I2C Breakout」は入手方法が分かりませんでしたが、サンプルコードを参考にさせてもらいました。
marutsuの「MFT200XD」も候補でしたが、FT200XDはI2Cスレーブデバイスで、今回の目的には使用できません(買ってから気づきました。。。)
I2Cマスターが必要な場合はFT232Hなどが搭載された基板になります。
Arduino nanoといったマイコンを使えば、もっと安い構成もできると思います。CP2112のメリットは、ファームウェア不要・ドライバ不要で使える点です。
上述したFT232Hなど、CP2112以外にも同様の使い方ができるチップはあるので、また使い勝手を比較してみようと思います。⇒MCP2221A、FT232H_I2C
【コマンド実行例】
オプションを指定してコマンドを実行します。
-r:Readコマンド送信
-w:Writeコマンド送信
-d:デバッグ用(ファイル内容表示)
【入力ファイル例】
「設定ファイル」のSetting.txtと同じフォーマットで入力すればよいです。
Readコマンド送信時はSetの値自体は無視されますが、読み込むバイト数を決めています。
コマンドとしては、TAB区切りだけでなく、空白区切りのファイルでも問題ないです。Nameも省略可。
また、拡張性を考えてAddressとSetが複数バイトでも動作します。例えば、Setを2バイトとし、CRCのチェックサムも送信するといった使い方ができます。
バイト数の最大値は、CP2112の仕様に合わせていますので、そちらを参照ください。