WM_SetMPData

構文

#include <nitro/wm.h>

WMErrCode WM_SetMPData(
        WMCallbackFunc  callback ,
        const u16*      sendData ,
        u16             sendDataSize ,
        u16             tmptt ,
        u16             pollbmp
);

引数

callback 非同期処理が完了した時に呼び出されるコールバック関数を指定します。
このコールバックは割り込みハンドラ内から呼び出されます。
sendData 送信予約するデータへのポインタを指定します。
このデータの実体は強制的にキャッシュストアされる点に注意して下さい。
sendDataSize 送信予約するデータのサイズを指定します。
tmptt 互換性のために残された引数で現在は無視されます。
pollbmp 送信先子機のAIDを示すビットマップを指定します。(親機のみ有効)

返り値

WMErrCode列挙型の処理結果を返します。

説明

MPで送信するデータをセットします。WMがMP_PARENTステートもしくはMP_CHILDステートの場合に実行可能です。
APIの戻り値がWM_ERRCODE_OPERATINGであった場合、MPにてデータ送信処理が完了した後にコールバックが発生します。コールバックが呼び出されるまでは引数sendDataの指しているバッファを書き換えてはいけません。他の無線APIの非同期関数と異なり、コールバックを待たずにこのAPIを連続して呼び出した際にcallbackにそれぞれ異なる関数ポインタを指定しても、正常に処理されます。 但しコールバックを待たずに連続して呼び出せる回数は10回までという制限があり、10回を越えて連続で呼び出すとこのAPIはエラーを返します。

このAPIは過去との互換性のために残されており、WM_SetMPDataToPort( )の引数portにWM_PORT_RAWDATA、prioにWM_PRIORITY_NORMALを指定した呼び出しと同等です。

注意

引数に渡したデータ(sendData) は内部で強制的にキャッシュストアされます。キャッシュのトラブルを回避するには、32バイト境界に揃ったデータを渡す必要があります。
注意点などの詳細は「ワイヤレス通信ライブラリ解説 (AboutWirelessManager.pdf)」を参照してください。

参照

WM_StartMP, WM_EndMP, WM_SetMPDataToPort, WM_SetPortCallback

履歴

2008/12/17 引数に渡したデータが内部で強制的にキャッシュストアされる点について注意を追記
2005/07/08 非同期に連続して呼び出すことができる制限回数を追記
2005/06/08 コールバックが割り込みハンドラから呼び出される旨を補足
2004/10/22 返り値の型を変更
2004/09/25 説明の加筆・修正
2004/08/02 構造体名の統一
2004/07/29 説明の追加等
2004/07/23 初版