手の受信に成功

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ポートが複数あるマシンはクロスケーブルでつないで一台でも通信できるみたいですね。
相手番で考えるソフトはダメですが、普通の対戦ソフトなら一台でも対戦できるみたい。