状態表示画面に、印刷停止ボタンを追加した。
ソースコードは、github側に更新済み。
画面の内容
印刷中は、上記の様にステータスがBuildingになる。この状態で、停止ボタンを押せるようにした。
停止ボタンは、内蔵カメラの画像の下に配置。
ボタンを押すことで、確認画面を出すので、OKを押すことで、印刷停止コマンドがAdventurer3に発行される。
ただ、OKボタンが押されてから、実際に印刷停止コマンドが送信されるまで結構時間がかかっている。この理由についてはまだ不明。
そのため、何度も停止ボタンを押す羽目になってしまった。
そこで、実際の停止コマンドが送付されるまで、ボタンの表示を変えて、押せないようにしておいた。
プログラムの構造
今回追加したのは、サーバー側でGコードを実行するWebAPI。
@bp.route('/gcode', methods=['POST'])
def gcode():
"""Gコードを実行する"""
if bp.monitor != None and bp.monitor.is_alive():
var = request.json
retBody = {
"ret": bp.monitor.gcode(var['gcode'])
}
else:
retBody = {
"ret" : "ng"
}
return make_response(jsonify(retBody))
クライアント側では、ボタンを押したときにM26
のGコードを送付するようにしてある。
そのため、1行のGコードであれば、このWebApiでクライアント側のコードで、Adventurer3の制御が可能になる。
次のステップは
ルーター内側でAdventurer3を制御するものはできたので、今度は外側からAdventurer3を制御できる仕組みづくりをしていきたい。それにより、外出していても何時でも印刷している状況を確認し、もじゃもじゃ状態になっていたらいち早くAdventurer3を止めることができるようになる。
コメント