Python(Anaconda)を使ってプログラムを作ってみる その9 XY座標動作モニター
の続きです。
引き続き「XY座標動作モニタープログラム」を作成継続中!
今回はシリアル通信でのデータをやり取りするコマンドのフォーマットと通信手順を策定する。
- キャラクタデータでやりとりする。(単にデバッグしやすいため)
- データの終わりはLine Feed(LF)[\n]とする。(c言語使っていたなごりで)
- データの受け渡しは「XY座標動作モニタープログラム」側からの送信に始まり相手からの返信で完了する。
お互いデータの送りっぱなしはしない。返信にはタイムアウト時間を設ける。(通信トラブルがあってもトレースでき原因究明しやすいように。)
(過去の経験でお互いが勝手にデータを送りあうことを許すと原因不明のトラブルが発生しやすいと感じたため。) - 実際にやり取りするコマンド(リクエストとアンサー)
コマンド名称 リクエスト
(PC->CONT)アンサー
(PC<-CONT)備考 現在位置座標取得 XYZ:\n [OK or NG]!XYZ:x,y,z\n 数十ms間隔で繰り返す
先ず「現在位置座標取得」を使ってデータ通信を行うプログラムコードを作成する。
なお、リクエストに応答してくれるデバッグ用のシリアル接続相手先シミレーションプログラムも作成せねばならない。リクエストに対応するアンサーに適当なデータをつけて返してくれるだけのプログラムなのだが必要不可欠な作業なんだよな。これが。
今後必要に応じてシリアル接続相手先とデータのやり取りが必要になった場合は新たにコマンドを増やしていくこととなる。