手の受信に成功
CSAのサイトにある通信プロトコルサンプルを見て、
http://www.computer-shogi.org/protocol/source_win_e.html
http://www.computer-shogi.org/protocol/
RS232Cのシリアル通信部分を製作中。
無料であるvc++2005 express editionで、COMポートをたたくプログラムが使えるのか?
を調べるのが面倒で、今まで先送りしていたが、案ずるより生むが易しでした。
すでにポートの初期化、リード、センドは、サンプルがあるので動けば簡単。
Mr. Yoshimuraとあるので、このコードは永世名人を作られている吉村さんの手によるものと思われる。
ライブラリはサンプルを流用で、
うちのvc2005expressは、windows.hをインクルードするとコンパイルできました。
標準ではおそらく含まれないですが、Platform SDKを入れてるので使えるんだと思います(SDKも無料です)
#include <stdio.h> #include <stdlib.h> #include <windows.h> static HANDLE hCom; extern int RS_init(); extern int RS_read(unsigned char *c); extern void RS_send(unsigned char c); extern void RS_close(); void main() { if( RS_init()!=0 ) { printf("error");exit(1); } unsigned char c; for(;;) { if( RS_read(&c)==1 ) printf("%c",c); } RS_close(); }
見ても仕方ありませんが(・∀・)
C:\>rs +7776FU
礒部将棋から手が送られてきました。
RS-232CというのはCOMポートが複数あるマシンはクロスケーブルでつないで一台でも通信できるみたいですね。
相手番で考えるソフトはダメですが、普通の対戦ソフトなら一台でも対戦できるみたい。