Win32APIを使ってCOMポート(シリアルポート)で通信を行う実験。
-
複数のコマンドをやり取りするときは、以下のようにする
- COMポートを最初に一回開く
- コマンドの送信、受信を行う
- 送受信が終わったら、最後にCOMポートを閉じる
-
COMポートの開閉を頻繁に行わないほうがよい
- 相手のデバイスの準備が追い付かず、送信・受信を行ったときにエラーを起こす場合がある
- WriteFile、ReadFile後のGetLastError()で995が来てたらその辺が怪しい
-
なにかのデバイスをシリアル通信で操作するときに、 コマンド送信→あちらからの応答を受信→コマンド送信→あちらからの応答を受信→・・・
という手続きが決まっているような場合は、非同期でやり取りせず、同期の送信・受信で、 送ったら受信待ちに入り、受信したら次を送る、とやるのがよい。
(非同期でも当然実装可能なのだが、同期よりもコードが少々複雑になるので、簡単なものであれば、そこまでする必要なしと考える)