シリアル通信構想

シリアル通信部の構想がおおよそ固まってきた。
サンプルのシリアル通信クラスは、やはりスレッドを作って受信をやっているようで、受信キューに溜まったら読み込みをしてくれる、様子。
ただし、受信用のメソッドが用意されていないので、どうしてかな?と思ったら、受信したデータを処理するルーチンは実装されていなかった。
これは、ここは自作しなさいよ、ということでしょうな。
ということで、ここに、受信バッファを用意して、受信されてきたものを順次追加していくようにしよう。
バッファはとりあえず256バイト程度の固定値で。
使い方は限定しているから、そんなに無茶なデータも流れないし。
そして、新しく読み込み用のメソッドを追加して、そのバッファからデータを吸い出せるようにする。
読み出す度に、バッファの方は読み出された分を消去して、残りの分を前の方へ詰めていくことにする。
一つ気をつけなくてはいけないのは、1つのバッファを2つ以上のタスクが使うことになるので、セマフォをちゃんと設定してやらないといけないということか。
バッファに書き込もうとするヤツと、バッファを移動させようとするヤツが同時に動いたら、おかしなことになるものね。しかも、その間に受信した分は取りこぼす、とかいうことのないように。
さて、Win32 APIにセマフォの制御はあるのかな?