# WMGetWirelessCounterCallback

## Definition

  `#include <nitro/wm.h>`

      typedef struct WMGetWirelessCounterCallback
      {
          u16     apiid;
          u16     errcode;
          u16     wlCmdID;
          u16     wlResult;
          u32     TX_Success;
          u32     TX_Failed;
          u32     TX_Retry;
          u32     TX_AckError;
          u32     TX_Unicast;
          u32     TX_Multicast;
          u32     TX_WEP;
          u32     TX_Beacon;
          u32     RX_RTS;
          u32     RX_Fragment;
          u32     RX_Unicast;
          u32     RX_Multicast;
          u32     RX_WEP;
          u32     RX_Beacon;
          u32     RX_FCSError;
          u32     RX_DuplicateError;
          u32     RX_MPDuplicateError;
          u32     RX_ICVError;
          u32     RX_FrameCtrlError;
          u32     RX_LengthError;
          u32     RX_PLCPError;
          u32     RX_BufferOverflowError;
          u32     RX_PathError;
          u32     RX_RateError;
          u32     RX_FCSOK;
          u32     TX_MP;
          u32     TX_KeyData;
          u32     TX_NullKey;
          u32     RX_MP;
          u32     RX_MPACK;
          u32     MPKeyResponseError[15];
      } WMGetWirelessCounterCallback;

## Elements

`apiid` | ID of the API that acts as the source for the callback generation. It is equivalent to the `WMApiid` enumerated type. Fixed here by `WM_APIID_GET_W_COUNTER`.
`errcode` | Result of the asynchronous process. It is equivalent to the `WMErrCode` enumerated type.
`wlCmdID` | If `errcode` is `WM_ERRCODE_FAILED`, this function will store the ID of the command that was in error in the wireless firmware.
`wlResult` | If `errcode` is `WM_ERRCODE_FAILED`, this function will store the code was the source of the error in the wireless firmware.
`TX_Success` | Number of times that the function was able to send normally.
`TX_Failed` | Number of times that the function failed to send normally.
`TX_Retry` | Number of times that the function retried.
`TX_AckError` | Number of times the function was unable to receive the desired ACK frame.
`TX_Unicast` | Number of Unicast address frames that were sent normally.
`TX_Multicast` | Number of Multicast address frames that were sent normally.
`TX_WEP` | Number of code frames that were sent normally.
`TX_Beacon` | Number of Beacon frames that were sent normally.
`RX_RTS` | Number of times the function received RTS and performed CTS response. (See note.)
`RX_Fragment` | Number of times fragmented frames were received.
`RX_Unicast` | Number of times Unicast address frames were received.
`RX_Multicast` | Number of times Multicast address frames were received.
`RX_WEP` | Number of times code frames were received that could be decoded normally. (See note.)
`RX_Beacon` | Number of times that beacon frames were received.
`RX_FCSError` | Number of times FCS errors occurred. (See note.)
`RX_DuplicateError` | Number of occurrences of duplication errors. (See note.)
`RX_MPDuplicateError` | Number of occurrences of MP frame duplication errors. (See note.)
`RX_ICVError` | Number of occurrences of ICV errors. (See note.)
`RX_FrameCtrlError` | Number of times frames having illegal `FrameCtrl` were received. (See note.)
`RX_LengthError` | Number of times frames shorter or longer than the set length were received. (See note.)
`RX_PLCPError` | Number of occurrences of CRC errors of the PLCP. (See note.)
`RX_BufferOverflowError` | Number of times the receive buffer overflowed. (See note.)
`RX_PathError` | Number of occurrences of errors in the receive block. (See note.)
`RX_RateError` | Number of times frames with illegal receive rates were received. (See note.)
`RX_FCSOK` | Number of times a frame with a normal FCS was received. (See note.)
`TX_MP` | Number of times an MP frame was sent.
`TX_KeyData` | Number of times MP-KeyData frames were sent.
`TX_NullKey` | Number of times MP-NullKey frames were sent.
`RX_MP` | Number of times normal MP frames were received.
`RX_MPACK` | Number of times normal MPACK frames were received.
`MPKeyResponseError` | Number of times each child did not respond normally to Key requests.

Note: Sometimes a value does not meet the actual total results due to the possibility that the counter in hardware may be cleared unexpectedly.

## Description

This structure is passed to the callback function for the `WM_GetWirelessCounter` function.

## Revision History

2005/11/11 Added a note.
2004/08/11 Initial version.

CONFIDENTIAL