卒論研究項目案/汎用リモートコントローラシステム/AF_IRDA メモ

-http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdnce21/htm/comm_mod.asp
-http://www.calsoft-japan.com/techcenter/network/infrared.html


http://bbs.wince.ne.jp/ch1/mqbbs.cgi?MODE=MSG&NUM=4280&FILE=bbs.log.43

WinNT4+eMobeddedVC++で
WinCE2.1.1(テリオスHC-AJ2)用のアプリを開発しています。

CE同士の赤外線通信でIrSOCKは使えるのでしょうか?
(IPアドレスはどうなるんでしょう??)

CreateFile()でCOM3:経由で通信することはできたのですが、
IrSOCKでできるのかが分かりません。
ヘルプを見た感じではサンプルも載っているのでできると思うのですが
socket(AF_IRDA, SOCK_STREAM, NULL)でINVALID_SOCKETが帰ってきてしまいます。
WSAGetLastError()でエラーコードをチェックすると10047でした。
TCP/IPのドライバ(?)をインストール(??)すればOKというものなのでしょうか??

@nifty FIRDA SUBSYSの岡田です。
>WSAGetLastError()でエラーコードをチェックすると10047でした。
ご存知でしょうが、IrSockもWinSockもエラー値は同じです。
アドレスファミリがサポートされていないというエラーです。
>TCP/IPのドライバ(?)をインストール(??)すればOKというものなのでしょうか??
アスキーのWindowsCEプログラマーズガイドを読まれていると思いますが、そういう問題ではなく、SOCKADDR を0,0,0,0にしてみて下さい。


最近IrSOCKを使い始めて、まだ勉強中なのですが…。
1度目の接続を終了(closesocket())させてないから
とかではないですか?

ぴょん吉2号です。
いつも皆さんの意見を参考にさせてもらってます。

現在、IrSockを使ってファイルをコピーするAPLを作成
しようとしたのですが、getsockoptで1度目は、正しく
相手側のデバイス情報が取得できるのですが、2度目以降
取得ができません。

ソース (途中省略)

int GetFile() {
	c_sock = socket(AF_IRDA,SOCK_STREAM,0);
	for(i=0;i<5;i++){ // 500ms毎に最大5回まで検索する
		memset(cDevice,0,sizeof(cDevice));
		rc = getsockopt(c_sock,SOL_IRLMP,IRLMP_ENUMDEVICES,
		cDevice,&nSize);> pDL = (DEVICELIST *)cDevice;
		if (pDL->numDevice) break;
	}
	if (pDL->numDevice == 0) {
		closesocket(c_sock); // 2度目はここでreturnされる
		return;
	}
}

基本的にWindowsCE本のサンプルコードを参考にしたはず
なのですが、どなたかご存知の方がいたら、教えてください。


卒論研究項目案/汎用リモートコントローラシステム?

LastModified:2004/09/10 08:23.15

トップ 差分 一覧 ソース 検索 RSS ログイン