osContStartReadData.htm 2.85 KB
<HTML>

<HEAD>

<TITLE>HTML 文書</TITLE>

<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.0j">
</HEAD>

<BODY>

<P>
<B><FONT FACE="Arial">osContStartReadData(3P) <BR>
</FONT></B>
<P>
<B>関数名<BR>
</B>
<P>
osContStartReadData, osContGetReadData
<P>
→ コントローラからのデータの獲得<BR>

<P>
<B>構文<BR>
</B>
<P>
#include &lt;ultra64.h&gt;
<P>
<B>s32 osContStartReadData(OSMesgQueue *mq);</B>
<P>
void osContGetReadData(OSContPad *pad);<BR>

<P>
<B>説明<BR>
</B>
<P>
<B>osContStartReadData</B>コールはコントローラの状態を獲得するためのリードコマンドを発行し、osContGetReadDataコールは3Dスティックとボタンの状態をOSContPad構造体のpadに返します。ユーザーはMAXCONTROLLERS個のOSContPad構造体に十分なメモリブロックをあらかじめ用意しておかなければなりません。メッセージキューmqはOS_EVENT_SIイベントに関連づけられた初期化済みのメッセージ待ち行列でなければなりません。メッセージキューに関しては<A HREF="osSetEventMesg.htm" >osSetEventMesg</A>(3P)を参照してください。リードデータコマンドを発行してからゲームコントローラデータを読み込むのにおよそ2msかかります。したがって、osRecvMesgコールを用いて,このイベントに対して待機しておくようにセットすると良いでしょう。
<BR>

<P>
ジョイスティックデータはsigned charで、-80〜80までの範囲です。ボタンの状態は、下記の定数のORで返ってきます。
<BR>

<PRE WIDTH=132>
START_BUTTON  STARTボタン
A_BUTTON	Aボタン
B_BUTTON	Bボタン
U_CBUTTONS	Cボタンユニット上
D_CBUTTONS	Cボタンユニット下
L_CBUTTONS	Cボタンユニット左
R_CBUTTONS	Cボタンユニット右
U_JPAD		十字キー上
D_JPAD		十字キー下
L_JPAD		十字キー左
R_JPAD		十字キー右
Z_TRIG		Zトリガーボタン
L_TRIG		Lトリガーボタン
R_TRIG		Rトリガーボタン 

</PRE>

<P>
ゲームコントローラからのエラー返値は以下のようになります。 <BR>

<P>
<B>CONT_NO_RESPONSE_ERROR</B>
<P>
コントローラ反応無し
<P>
<B>CONT_OVERRUN_ERROR</B>
<P>
コントローラが本体の転送レートよりも速くデータ送ったときにセットされます。つまり本体はコントローラの値を正しく読めていません。
<BR>

<P>
CONT_OVERRUN_ERRORを検出したときはデータを無視してください。 
<BR>
<BR>
<BR>

<P>
<B><BR>
</B>
<PRE WIDTH=132>
main()
{
	OSMesgQueue intMesgQueue;
	OSMesg intMesgBuf[NUM_MESSAGE];
	OSContStatus sdata[MAXCONTROLLERS];
	OSContPad rdata[MAXCONTROLLERS];

	osCreateMesgQueue(&amp;intMesgQueue, intMesgBuf, NUM_MESSAGE);
	osSetEventMesg(OS_EVENT_SI, &amp;intMesgQueue, dummyMassage);
	osContInit(&amp;intMesgQueue, &amp;pattern, &amp;sdata[0]);
	osContStartReadData(&amp;intMesgQueue);


	osRecvMesg(&amp;intMesgQueue, &amp;actualMesg, OS_MESG_BLOCK);
	osContGetReadData(&amp;rdata[0]);
}

</PRE>

<P>
<B>参照<BR>
</B>
<P>
<A HREF="osContInit.htm">osContInit</A>(3P), <A HREF="osContReset.htm">osContReset</A>(3P),

<P>
<A HREF="osContStartQuery.htm">osContStartQuery</A>(3P), <A HREF="osContSetCh.htm">osContSetCh</A>(3P)
<BR>

</BODY>

</HTML>