# WMErrCode

## 定義

  `#include <nitro/wm.h>`

      typedef enum WMErrCode
      {
          WM_ERRCODE_SUCCESS            = 0 ,
          WM_ERRCODE_FAILED             = 1 ,
          WM_ERRCODE_OPERATING          = 2 ,
          WM_ERRCODE_ILLEGAL_STATE      = 3 ,
          WM_ERRCODE_WM_DISABLE         = 4 ,
          WM_ERRCODE_NO_KEYSET          = 5 ,
          WM_ERRCODE_NO_DATASET         = 5 ,
          WM_ERRCODE_INVALID_PARAM      = 6 ,
          WM_ERRCODE_NO_CHILD           = 7 ,
          WM_ERRCODE_FIFO_ERROR         = 8 ,
          WM_ERRCODE_TIMEOUT            = 9 ,
          WM_ERRCODE_SEND_QUEUE_FULL    = 10 ,
          WM_ERRCODE_NO_ENTRY           = 11 ,
          WM_ERRCODE_OVER_MAX_ENTRY     = 12 ,
          WM_ERRCODE_INVALID_POLLBITMAP = 13 ,
          WM_ERRCODE_NO_DATA            = 14 ,
          WM_ERRCODE_SEND_FAILED        = 15 ,

      } WMErrCode;

## 要素

WM_ERRCODE_SUCCESS | 処理が正常に完了したことを示します。
WM_ERRCODE_FAILED | 無線ファームウェアからエラー応答が返された場合に発生します。
WM_ERRCODE_OPERATING | 非同期的な処理が正常に開始されたことを示します。
WM_ERRCODE_ILLEGAL_STATE | WM内部状態により処理が実行できなかったことを示します。
WM_ERRCODE_WM_DISABLE | WMが初期化前であるため、処理を実行不能であることを示します。 また、無線通信を禁止されている本体で処理を実行しようとした場合にもこの返り値となります。
WM_ERRCODE_NO_KEYSET | キーシェアリングにおいて、共有が完了し、読み出し可能になっているキーセットが存在していないことを示します。 通信は正常に続いていますので、致命的エラーとして扱わないようにしてください。
WM_ERRCODE_NO_DATASET | データシェアリングにおいて、共有が完了し、読み出し可能になっているデータセットが存在していないことを示します。 通信は正常に続いていますので、致命的エラーとして扱わないようにしてください。
WM_ERRCODE_INVALID_PARAM | 関数に指定するパラメータが不正であった場合に発生します。
WM_ERRCODE_NO_CHILD | 子機が１台も接続されていないので、親機として通信する相手がいないことを示します。 処理は正常に続いていますので、致命的エラーとして扱わないようにしてください。
WM_ERRCODE_FIFO_ERROR | ARM7とのFIFOを介した通信に失敗した場合と、ARM7内の作業用FIFOが溢れた場合に発生します。
WM_ERRCODE_TIMEOUT | MP通信の確認応答が一定期間受信できない場合に発生します。 通信は正常に続いていますので、致命的エラーとして扱わないようにしてください。
WM_ERRCODE_SEND_QUEUE_FULL | ポートの送信キューが一杯で送信に失敗したことを示します。 通信は正常に続いていますので、致命的エラーとして扱わないようにしてください。
WM_ERRCODE_NO_ENTRY | 子機からの接続時に、エントリーが打ち切られていた為に親機に接続拒否されたことを示します。
WM_ERRCODE_OVER_MAX_ENTRY | 子機からの接続時に、最大接続子機台数を越えた為に親機に接続拒否されたことを示します。 WM_StartConnect( )のコールバックでは、いったん `WM_ERRCODE_SUCCESS` の通知がされたあとに、 改めてこのエラー値の通知が来る場合があります。
WM_ERRCODE_INVALID_POLLBITMAP | 子機が受信したMP通信のpoll bitmapに自分が含まれていなかったことを示します。 通信は正常に続いていますので、致命的エラーとして扱わないようにしてください。
WM_ERRCODE_NO_DATA | 本来ならあるべきデータがないことを示します。子機が受信したMP通信にヘッダすら乗っていなかった場合に返ります。 現在の実装においては、ライブラリが想定通りに動作している限り、返ることがないエラー値です。
WM_ERRCODE_SEND_FAILED | MP通信にて親機と子機の送受信シーケンスが失敗したことを示します。 通信は正常に続いていますので、致命的エラーとして扱わないようにしてください。

## 説明

WM操作関数に共通の処理結果を示す列挙型です。 非同期処理関数のコールバック関数に渡される各構造体の`errcode`メンバにも共通に使用されます。

これらの値の中には、致命的エラーとして扱うべきものとそうでないものがあります。 各関数やコールバックから受け取るエラーコードと、それをどのように扱うべきかについては、「ワイヤレス通信ライブラリ解説」中の「ワイヤレス通信ライブラリから返されるエラーコード一覧」を参照してください。

## 履歴

2007/11/13 致命的エラーとして扱ってはいけないエラー値についての記述を追記
2007/07/18 ワイヤレス通信ライブラリ解説についての記述を追記
2004/11/02 仕様追加に伴う追記
2004/08/20 エントリー制御仕様の追加に伴う追記
2004/08/11 WM仕様追加に伴う追記
2004/07/29 初版