Adventurer3の制御7.1

Adventurer3の制御5を一部機能制限したもののPython版を公開。

ソースは、Githubのこちらに。

使い方

ソースをダウンロードしたら、Console.pyを、Adventurer3のIPアドレスを引数に起動することで、動作する。

利用可能なコマンドは、p、s、jobstop、qの4種類。ファイル転送して印刷を開始するコマンドは、まだ移植していない。

またAdventurer3のIPを自動検索する機能も入れていない。

コードの説明

Adventurer3/Controller.py

Adventurer3との通信部分をクラスにまとめたもの。

C#で作成したもののうち、ファイル転送部分のみを外して、Python側に移植した。

Adventurer3のIPアドレスは、コンストラクタで渡している。

れほど難しいコードではないので、新たにコマンドを追加することも可能。

もし、利用する場合は、上位側で直接Sendで直接コマンドを送る様にするのではなく、こちらにメソッドを拡張子、Sendを隠蔽したほうが、その後のコードのメンテナンスも楽かもしれない。

Console.py

Controllerオブジェクトの管理と、UI部分を詰め込んだもの。

C#版では、Adventurer3とは接続しっぱなしにしている。そのため、こちら側では、Adventurer3からタイムアウトにならないタイミングでステータス取得コマンドを送っていた。これを実現するため、非同期処理にしたり、接続が解除された場合の特殊処理をしていたのだが、Python版は今のところ常時接続する必要はないと感じているため、Adventurer3へコマンドを送信するときに都度、接続・解除するようにしている。

Adventurer3との通信部分のコードの書き方は以下のようにしてある。

if self.adv3.Start():
    self.adv3.UpdateStatus()
    self.adv3.End()
    print(self.adv3.GetStatus())

次にやること

Pythonの環境はWindows上のVisual Studioで構築した関係、まだRaspberry Piでこのコードは動かしていない。

次は、Raspberry Pi上で、上記コードが動作するのかの確認と、動作確認を踏まえたうえでRaspberry PiをWebサーバーにしてWebで制御ができないか検証していきたい。

コメント

タイトルとURLをコピーしました