#include <nitro/wm.h>
WMErrCode WM_SetMPDataToPortEx(
WMCallbackFunc callback ,
void* arg ,
const u16* sendData,
u16 sendDataSize ,
u16 destBitmap ,
u16 port ,
u16 prio
);
callback |
Designates the callback function to call when the asynchronous process completes. This callback is called from within the interrupt handler. |
arg |
User definition data to be passed to the callback function. |
sendData |
Pointer to the data to be send-reserved. Notice that this data entity will be forcibly cached. |
sendDataSize |
The size of the send-reserved data. |
destBitmap |
Bitmap that indicates the AID of the send destination child. (enabled only for the parent). |
port |
The port number that sends data. Use a value from 0-15. |
prio |
Data send priority. Use a value from 0 (highest) through 3 (lowest). |
Returns the results of the WMErrCode
enumerated type process.
Sets the data to be sent to the port that is specified by the MP. This function is only executable when the WM is in either the MP PARENT
or MP CHILD
state. If the return value is WM_ERRCODE_OPERATING
, a callback is generated after the MP completes the data transmission process. Do not rewrite the buffer identified by sendData
until the callback is called. Unlike the asynchronous functions of other wireless APIs, processing continues normally even if different function pointers are specified for callbacks when this API is called repeatedly without waiting for callbacks. However, the limit on consecutive calls without waiting for the callback is 32 times for all priority levels. If called more than 32 times, WM_ERRCODE_SEND_QUEUE_FULL
is returned to the callback and execution fails.
The user definition data that is specified by arg
is passed to the callback identified by arg
in WMPortSendCallback
structure.
The sendData
argument is forcibly stored in the internal cache. To avoid overwriting surrounding memory regions, be sure to pass data that is 32-byte aligned.
See the Wireless Communication Library Manual (AboutWirelessManager.pdf) for additional details.
WM_StartMP
WM_EndMP
WM_SetMPDataToPort
WM_SetPortCallback
WMPort
2009/10/27 Explained how many times the function can be called without waiting for the callback.
2008/12/17 Added a note about the fact that data passed by argument is forcibly stored in a cache internally.
2005/07/08 Added the limit on consecutive asynchronous calls.
2005/06/08 Added the fact that the callback can be called from the interrupt handler.
2005/03/02 Added the range of values that can be specified for the port argument.
2004/10/22 Changed the type of the return value.
2004/09/25 Made additions and revisions to Description.
2004/09/09 Initial version.
CONFIDENTIAL