# WMStartMPCallback

## C Specification

  `#include <nitro/wm.h>`

      typedef struct WMstartMPCallback
      {
          u16          apiid;
          u16          errcode;
          u16          state;
          u8           reserved[2];
          WMMpRecvBuf* recvBuf;
          u16          timeStamp;
          u16          rate_rssi;
          u16          destAdrs[3];
          u16          srcAdrs[3];
          u16          seqNum;
          u16          tmptt;
          u16          pollbmp;
          u16          reserved2;

      } WMStartMPCallback;

## Description

The structure that is passed to the callback function that is called by `WM_StartMP`.

## Arguments

`apiid` | Specifies the ID of the API that has become the callback generation source. The same as the `WMApiid` enumerated type. Here, it is fixed as `WM_APIID_START_MP`.
`errcode` | Specifies the asynchronous process results. The same as the `WMErrCode` enumerated type.
`state` | If `errcode` is `WM_ERRCODE_SUCCESS`, the `WM Cause Code` that generated the callback will be stored. There are three causes: `WM_STATECODE_MP_START, WM_STATECODE_MPEND_IND, WM_STATECODE_MP_IND, and WM_STATECODE_MPACK_IND`.
`recvBuf` | If `state` is `WM_STATECODE_MPEND_IND`, or `WM_STATECODE_MP_IND` a pointer to the receive data storage destination will be stored. The receive buffer specified in `WM_StartMP` is handled as a double buffer. This indicates which of the buffers will be the first data storage destination. Notice that when a machine accepts data as a parent, this will be a pointer to the `WMMpRecvHeader` type.

`timeStamp
rate_rssi
destAdrs
srcAdrs
seqNum
tmptt
pollbmp
`

When the state is `WM_STATECODE_MPACK_IND`, each of the arguments stores the information on the MP communication that was performed.

## Revision History

08/11/2001 Added members to be stored at the time of MP completion callback.
08/02/2004 Standardized structure names
07/29/2004 Initial Version