WDSライブラリ080626版に更新。

WDS_Wrapper追加。
WDSマニュアル_追加。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1730 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2008-06-26 14:13:09 +00:00
parent 8afde386dc
commit f0bf988361
30 changed files with 3902 additions and 57 deletions

View File

@ -1,20 +1,3 @@
/*---------------------------------------------------------------------------*
Project: TwlIPL
File: WDS.c
Copyright 2007 Nintendo. All rights reserved.
These coded instructions, statements, and computer programs contain
proprietary information of Nintendo of America Inc. and/or Nintendo
Company Ltd., and are protected by Federal copyright law. They may
not be disclosed to third parties or copied or duplicated in any form,
in whole or in part, without the prior written consent of Nintendo.
$Date:: $
$Rev$
$Author$
*---------------------------------------------------------------------------*/
//********************************************************************** //**********************************************************************
/** /**
// @file WDS.c // @file WDS.c
@ -25,7 +8,7 @@
// @version 01.00 // @version 01.00
// //
***********************************************************************/ ***********************************************************************/
#include <sysmenu/WDS.h> #include "WDS.h"
#include <nitro/crypto/rc4.h> #include <nitro/crypto/rc4.h>
#ifdef WDS_WITHDWC #ifdef WDS_WITHDWC
#include <dwc.h> #include <dwc.h>
@ -59,22 +42,22 @@ enum
// Structs // Structs
//----------------------------------------------------- //-----------------------------------------------------
/** /**
@brief @brief WDSライブラリのワーク領
*/ */
typedef struct WDSWork typedef struct WDSWork
{ {
u8 wmwork[ WM_SYSTEM_BUF_SIZE ]; ///< WMライブラリ用バッファ u8 wmwork[ WM_SYSTEM_BUF_SIZE ]; ///< WMライブラリ用バッファ
u8 scanbuf[ WDS_SCAN_BUF_SIZE ] ATTRIBUTE_ALIGN(32); ///< スキャンバッファ u8 scanbuf[ WDS_SCAN_BUF_SIZE ] ATTRIBUTE_ALIGN(32); ///< WMライブラリが使用するスキャンバッファ
WMScanExParam scanparam; ///< スキャンパラメータ WMScanExParam scanparam; ///< WMライブラリのスキャンパラメータ
WDSCallbackFunc scancb; ///< スキャン用コールバック WDSCallbackFunc scancb; ///< WMライブラリから呼び出されるコールバック
WDSApInfo apinfo[ WDS_APINFO_MAX ]; ///< スキャン出来たAP情報 WDSApInfo apinfo[ WDS_APINFO_MAX ]; ///< スキャンしたAPビーコンを格納する配列
u16 rssi[ WDS_APINFO_MAX ]; ///< 電波強度 u16 rssi[ WDS_APINFO_MAX ]; ///< 受信したAPビーコンの電波強度を格納する配列
u16 tgid[ WDS_APINFO_MAX ]; ///< 複数のビーコンを受け取った際に識別用に使うTGID u16 tgid[ WDS_APINFO_MAX ]; ///< 複数のビーコンを識別するためのTGIDを格納する配列
s32 apnum; ///< スキャン出来たAP情報数 s32 apnum; ///< スキャン出来たAP情報数
s32 apindex; ///< スキャン出来たAPを配列内のどこに書き込むかのインデックス s32 apindex; ///< スキャン出来たAPを配列内のどこに書き込むかのインデックス
u32 status; ///< ステータス u32 status; ///< WDSライブラリのステータス
MATHCRC16Context crcContext; ///< CRC計算用コンテキスト MATHCRC16Context crcContext; ///< CRC計算用コンテキスト
MATHCRC16Table crcTable; ///< CRC計算用テーブル MATHCRC16Table crcTable; ///< CRC計算用テーブル
} WDSWork; } WDSWork;
//----------------------------------------------------- //-----------------------------------------------------
@ -181,7 +164,9 @@ static void WDSScanCallback( void *arg )
continue; continue;
// デバッグ表示 // デバッグ表示
#ifdef WDS_DEBUGPRINT
OS_TPrintf( "Found AP GGID : %08x TGID : %04x\n", pParam->bssDesc[i]->gameInfo.ggid, pParam->bssDesc[i]->gameInfo.tgid ); OS_TPrintf( "Found AP GGID : %08x TGID : %04x\n", pParam->bssDesc[i]->gameInfo.ggid, pParam->bssDesc[i]->gameInfo.tgid );
#endif
// ビーコン内容をコピーし、暗号化解除 // ビーコン内容をコピーし、暗号化解除
MI_CpuCopy8( pParam->bssDesc[i]->gameInfo.userGameInfo, &gWdsWork->apinfo[gWdsWork->apindex], sizeof(WDSApInfo) ); MI_CpuCopy8( pParam->bssDesc[i]->gameInfo.userGameInfo, &gWdsWork->apinfo[gWdsWork->apindex], sizeof(WDSApInfo) );
@ -198,7 +183,9 @@ static void WDSScanCallback( void *arg )
// 旧バージョンの親機はCRC部分に0x0000を入れているためそれだけは受け入れる // 旧バージョンの親機はCRC部分に0x0000を入れているためそれだけは受け入れる
if( crc != gWdsWork->apinfo[gWdsWork->apindex].crc && gWdsWork->apinfo[gWdsWork->apindex].crc != 0x0000 ) { if( crc != gWdsWork->apinfo[gWdsWork->apindex].crc && gWdsWork->apinfo[gWdsWork->apindex].crc != 0x0000 ) {
#ifdef WDS_DEBUGPRINT
OS_TPrintf( "AP Infomation CRC Error.\n" ); OS_TPrintf( "AP Infomation CRC Error.\n" );
#endif
MI_CpuClear8( &gWdsWork->apinfo[gWdsWork->apindex], sizeof(WDSApInfo) ); MI_CpuClear8( &gWdsWork->apinfo[gWdsWork->apindex], sizeof(WDSApInfo) );
continue; continue;
} }
@ -239,7 +226,7 @@ size_t WDS_GetWorkAreaSize( void )
@param <2> @param <2>
@param <3> WM_InitializeのdmaNoに準ずる引数 @param <3> WM_InitializeのdmaNoに準ずる引数
@return 0 : ( ) @return 0 : ( )
0 : @return 0 :
@note @note
<1> WDS_SYSTEM_BUF_SIZEだけ必要であり <1> WDS_SYSTEM_BUF_SIZEだけ必要であり
32 32
@ -346,14 +333,15 @@ int WDS_End( WDSCallbackFunc callback )
if( callback == NULL ) if( callback == NULL )
return -1; return -1;
// WDS 終了
gWdsWork->status = WDS_STATUS_END;
gWdsWork = NULL;
// WM 終了 // WM 終了
errcode = WM_End( callback ); errcode = WM_End( callback );
if( errcode != WM_ERRCODE_OPERATING ) if( errcode != WM_ERRCODE_OPERATING )
return errcode; return errcode;
// WDS 終了
gWdsWork->status = WDS_STATUS_END;
gWdsWork = NULL;
return 0; return 0;
} }

View File

@ -0,0 +1,892 @@
//**********************************************************************
/**
// @file WDSWrapper.c
// @brief WDSライブラリのラッパー
//
// @author S.Nakata
// @date 2008/06/24
// @version 01.00
//
***********************************************************************/
#include "WDSWrapper.h"
#ifdef WDS_WITHDWC
#include <dwc.h>
#endif
//-----------------------------------------------------
// Structs
//-----------------------------------------------------
/**
@brief WDSラッパーのワーク領域
*/
typedef struct WDSWrapperWork
{
u8 *stack; //!< WDSラッパーが使用するスタック
OSThread thread; //!< WDSラッパーが使用するスレッド構造体
OSMutex mutex; //!< WDSラッパーが使用するmutex
u8 *wdswork; //!< WDSが使用するワークエリア
WDSBriefApInfo briefapinfo[WDS_APINFO_MAX]; //!< WDSラッパーがWDSを使用した結果を格納する領域
int briefapinfonum; //!< WDSラッパーがWDSを使用した結果を格納する領域
WDSWrapperInitializeParam initparam; //!< 初期化時パラメータのコピー
WDSWrapperStateThreadState state; //!< WDSラッパーのステート
OSTick tickstart; //!< 各種時間測定用
BOOL terminate; //!< 解放開始フラグ
BOOL idle; //!< 間欠スキャン中断フラグ
BOOL restart; //!< 間欠スキャン再開フラグ
OSDeliverArgInfo deliverinfo; //!< TWL用アプリ間引数ワークエリア
} WDSWrapperWork;
//-----------------------------------------------------
// Variables
//-----------------------------------------------------
static WDSWrapperWork *g_wdswrapperwork = NULL;
//-----------------------------------------------------
// Internal Functions
//-----------------------------------------------------
static void WDS_WrapperInitialize_CB( void *arg );
static void WDS_WrapperStartScan_CB( void *arg );
static void WDS_WrapperEndScan_CB(void *arg);
static void WDS_WrapperEnd_CB( void *arg );
//--------------------------------------------------------------------------------
/** アクセスポイント情報のデバッグ用表示関数
@param apinfo WDSApInfoへのポインタ
@return
*///------------------------------------------------------------------------------
static void DumpWDSApInfo( WDSApInfo *apinfo )
{
int i;
char buf[256];
// SSID
MI_CpuCopy8( apinfo->ssid, buf, WDS_SSID_BUF_SIZE) ;
buf[WDS_SSID_BUF_SIZE] = 0x00;
OS_TPrintf( "SSID: %s\n", buf );
// APNUM
MI_CpuCopy8( apinfo->apnum, buf, WDS_APNUM_BUF_SIZE) ;
buf[WDS_APNUM_BUF_SIZE] = 0x00;
OS_TPrintf( "APNUM: %s\n", buf );
// CHANNEL
OS_TPrintf( "channel: %d\n", apinfo->channel );
// ENCRYPTFLAG
OS_TPrintf( "encryptmethod: %d\n", apinfo->encryptflag);
// WEPKEY
OS_TPrintf( "WEPKEY: " );
for( i = 0 ; i < WDS_WEPKEY_BUF_SIZE ; i++ )
{
OS_TPrintf( "%02x", apinfo->wepkey[i] );
}
OS_TPrintf( "\n" );
}
//--------------------------------------------------------------------------------
/** スキャン開始前ウェイトステート関数
@param
@return
*///------------------------------------------------------------------------------
static void WDS_WrapperBeforeInitState( void )
{
if( g_wdswrapperwork->restart == TRUE ) {
// 待っている途中だがすぐに受信を開始
g_wdswrapperwork->restart = FALSE;
// 連続スキャン開始時間の記録
g_wdswrapperwork->tickstart = OS_GetTick();
// スキャン開始ステートへ
g_wdswrapperwork->state = WDSWRAPPER_STATE_INIT;
return;
}
else if( g_wdswrapperwork->terminate == TRUE ) {
// すでにWDSが解放されているので直接ステートを変化させる
g_wdswrapperwork->state = WDSWRAPPER_STATE_TERMINATE;
return;
}
else if( g_wdswrapperwork->idle == TRUE ) {
// すでにWDSが解放されているので直接ステートを変化させる
g_wdswrapperwork->state = WDSWRAPPER_STATE_IDLE;
return;
}
// 十分長い時間待ったかを確認
if( g_wdswrapperwork->tickstart + OS_MilliSecondsToTicks( WDSWRAPPER_WAITPERIOD ) < OS_GetTick() ) {
// 連続スキャン開始時間の記録
g_wdswrapperwork->tickstart = OS_GetTick();
// スキャン開始ステートへ
g_wdswrapperwork->state = WDSWRAPPER_STATE_INIT;
}
}
//--------------------------------------------------------------------------------
/** 初期化開始ステート関数
@param
@return
*///------------------------------------------------------------------------------
static void WDS_WrapperInitState( void )
{
WMErrCode err;
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("*** WDS_WrapperInitState\n");
#endif
// 初期化完了待ちステートをあらかじめ設定しておく
g_wdswrapperwork->state = WDSWRAPPER_STATE_WAITINIT;
err = (WMErrCode)WDS_Initialize( g_wdswrapperwork->wdswork, WDS_WrapperInitialize_CB, 0 );
if( err == WM_ERRCODE_SUCCESS || err == WM_ERRCODE_OPERATING ) {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("WDS_Initialize successed\n");
#endif
}
else {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("WDS_Initialize failed\n");
#endif
// 初期化開始に失敗したのでWDSラッパー解放ステートへ
g_wdswrapperwork->state = WDSWRAPPER_STATE_TERMINATE;
}
}
//--------------------------------------------------------------------------------
/** 初期化コールバック関数
@param arg WMCallback型変数へのポインタ
@return
@note
@LI
@LI WDSラッパー解放ステートへ
*///------------------------------------------------------------------------------
static void WDS_WrapperInitialize_CB( void *arg )
{
WMCallback *callback = (WMCallback *)arg;
WDSWrapperCallbackParam param;
// ステート処理と重複処理しないため
OS_LockMutex( &g_wdswrapperwork->mutex );
#ifdef WDSWRAPPER_DEBUGPRINT
OS_TPrintf("WDS_Initialize_CB\n");
#endif
// 返り値に基づいてコールバックパラメータを設定
param.callback = WDSWRAPPER_CALLBACK_INITIALIZE;
if( callback->errcode != WM_ERRCODE_SUCCESS )
param.errcode = WDSWRAPPER_ERRCODE_FAILURE;
else
param.errcode = WDSWRAPPER_ERRCODE_SUCCESS;
// コールバック関数の呼び出し
g_wdswrapperwork->initparam.callback( &param );
// 返り値に基づいてステートを変更
if( callback->errcode != WM_ERRCODE_SUCCESS )
g_wdswrapperwork->state = WDSWRAPPER_STATE_TERMINATE;
else {
// スキャン開始ステートへ
g_wdswrapperwork->state = WDSWRAPPER_STATE_SCAN;
// 連続スキャン開始時間の記録
g_wdswrapperwork->tickstart = OS_GetTick();
}
// ステート処理と重複処理しないため
OS_UnlockMutex( &g_wdswrapperwork->mutex );
}
//--------------------------------------------------------------------------------
/** スキャン開始ステート関数
@param
@return
*///------------------------------------------------------------------------------
static void WDS_WrapperScanState( void )
{
WMErrCode err;
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf( "*** WDS_WrapperScanState\n" );
#endif
// スキャン完了待ちステートへあらかじめ移行しておく
g_wdswrapperwork->state = WDSWRAPPER_STATE_WAITSCAN;
err = (WMErrCode)WDS_StartScan( WDS_WrapperStartScan_CB );
if( err == WM_ERRCODE_SUCCESS ) {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("WDS_StartScan successed\n");
#endif
g_wdswrapperwork->briefapinfonum = 0;
}
else {
// スキャン開始に失敗したのでWDS解放開始ステートへ
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf( "WDS_StartScan failed\n" );
#endif
g_wdswrapperwork->state = WDSWRAPPER_STATE_END;
}
}
//--------------------------------------------------------------------------------
/** スキャン完了待ちステート関数
@param
@return
*///------------------------------------------------------------------------------
static void WDS_WrapperWaitScanState( void )
{
if( g_wdswrapperwork->terminate == TRUE ) {
g_wdswrapperwork->state = WDSWRAPPER_STATE_ENDSCAN;
}
else if( g_wdswrapperwork->idle == TRUE ) {
g_wdswrapperwork->state = WDSWRAPPER_STATE_ENDSCAN;
}
}
//--------------------------------------------------------------------------------
/** スキャン開始コールバック関数
@param arg WMCallback型変数へのポインタ
@return
@note
@LI IDLEかスキャン前ウェイトステートへ
@LI WDSラッパー解放ステートへ
*///------------------------------------------------------------------------------
static void WDS_WrapperStartScan_CB( void *arg )
{
#pragma unused( arg )
#ifdef WDSWRAPPER_DEBUGPRINT
int i;
#endif
WDSWrapperCallbackParam param;
// ステート処理と重複処理しないため
OS_LockMutex( &g_wdswrapperwork->mutex );
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("*** WDS_WrapperStartScan_CB\n");
#endif
// 外部からの停止等の理由でコールバック待ちステートでない場合には何もしない
if( g_wdswrapperwork->state != WDSWRAPPER_STATE_WAITSCAN ) {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("state != WDSWRAPPER_STATE_WAITSCAN\n");
#endif
OS_UnlockMutex( &g_wdswrapperwork->mutex );
return;
}
// スキャン結果を取得する
if( WDS_GetApInfoAll( g_wdswrapperwork->briefapinfo ) != 0 ) {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf( "WDS_GetApInfoAll failed\n" );
#endif
// コールバックパラメータの設定
param.callback = WDSWRAPPER_CALLBACK_STARTSCAN;
param.errcode = WDSWRAPPER_ERRCODE_FAILURE;
// コールバック関数の呼び出し
g_wdswrapperwork->initparam.callback( &param );
// ただちにスキャン停止ステートへ
g_wdswrapperwork->state = WDSWRAPPER_STATE_ENDSCAN;
// 最終的にTERMINATEステートに入るよう設定
g_wdswrapperwork->terminate = TRUE;
// ステート処理と重複処理しないため
OS_UnlockMutex( &g_wdswrapperwork->mutex );
return;
}
else {
// ビーコン数を格納
g_wdswrapperwork->briefapinfonum = WDS_GetApInfoNum();
}
if( g_wdswrapperwork->tickstart + OS_MilliSecondsToTicks( WDSWRAPPER_SCANPERIOD ) < OS_GetTick() ) {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("*** WDS_WrapperCompleteScanState: Scanned more than %u [ms]\n", WDSWRAPPER_SCANPERIOD );
#endif
#ifdef WDSWRAPPER_DEBUGPRINT
// スキャン結果を取得したのでデバッグ表示
for( i = 0 ; i < WDS_APINFO_MAX ; i++ ) {
if( g_wdswrapperwork->briefapinfo[i].isvalid == TRUE ) {
OS_TPrintf( "================================\n" );
OS_TPrintf( "rssi: %d\n", g_wdswrapperwork->briefapinfo[i].rssi );
DumpWDSApInfo( &( g_wdswrapperwork->briefapinfo[i].apinfo ) );
OS_TPrintf( "================================\n" );
}
}
#endif
// コールバックパラメータの設定
param.callback = WDSWRAPPER_CALLBACK_STARTSCAN2;
param.errcode = WDSWRAPPER_ERRCODE_SUCCESS;
// コールバック関数の呼び出し
g_wdswrapperwork->initparam.callback( &param );
// 十分長い時間スキャンしたのでスキャン中断ステートへ
g_wdswrapperwork->state = WDSWRAPPER_STATE_ENDSCAN;
}
else {
// コールバックパラメータの設定
param.callback = WDSWRAPPER_CALLBACK_STARTSCAN;
param.errcode = WDSWRAPPER_ERRCODE_SUCCESS;
// コールバック関数の呼び出し
g_wdswrapperwork->initparam.callback( &param );
// ただちにスキャン開始ステートへ
g_wdswrapperwork->state = WDSWRAPPER_STATE_SCAN;
}
// ステート処理と重複処理しないため
OS_UnlockMutex( &g_wdswrapperwork->mutex );
}
//--------------------------------------------------------------------------------
/** スキャン停止開始ステート関数
@param
@return
*///------------------------------------------------------------------------------
static void WDS_WrapperEndScanState( void )
{
WMErrCode err;
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf( "*** WDS_WrapperEndScanState\n" );
#endif
// スキャン停止待ちステートへあらかじめ移行しておく
g_wdswrapperwork->state = WDSWRAPPER_STATE_WAITENDSCAN;
err = (WMErrCode)WDS_EndScan( WDS_WrapperEndScan_CB );
if( err == WM_ERRCODE_SUCCESS || err == WM_ERRCODE_ILLEGAL_STATE ) {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("WDS_EndScan successed\n");
#endif
// WDS解放ステートへ
g_wdswrapperwork->state = WDSWRAPPER_STATE_END;
}
else if( err == WM_ERRCODE_OPERATING ) {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("WDS_EndScan asynchronously successed\n");
#endif
}
else
{
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("WDS_EndScan failed\n");
#endif
// 再度スキャン停止を試みる
// (これは処理的に無限ループに入る可能性があるのでまずいが、そもそもスキャンが止まっていないとWM_Endもできないので不可避)
g_wdswrapperwork->state = WDSWRAPPER_STATE_ENDSCAN;
}
}
//--------------------------------------------------------------------------------
/** スキャン停止コールバック関数
@param arg WMCallback型変数へのポインタ
@return
@note
@LI WDS解放ステートへ
@LI
*///------------------------------------------------------------------------------
static void WDS_WrapperEndScan_CB(void *arg)
{
WMCallback *callback = (WMCallback *)arg;
// ステート処理と重複処理しないため
OS_LockMutex( &g_wdswrapperwork->mutex );
#ifdef WDSWRAPPER_DEBUGPRINT
OS_TPrintf("WDS_WrapperEndScan_CB\n");
#endif
if( callback->errcode != WM_ERRCODE_SUCCESS ) {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("WDS_EndScan success\n");
#endif
// 再度スキャン停止を試みる
// (これは処理的に無限ループに入る可能性があるのでまずいが、そもそもスキャンが止まっていないとWM_Endもできないので不可避)
g_wdswrapperwork->state = WDSWRAPPER_STATE_ENDSCAN;
}
else {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("WDS_EndScan success\n");
#endif
// スキャン停止完了したら自動的にWDS解放ステートへ
g_wdswrapperwork->state = WDSWRAPPER_STATE_END;
}
// ステート処理と重複処理しないため
OS_UnlockMutex( &g_wdswrapperwork->mutex );
}
//--------------------------------------------------------------------------------
/** 解放開始ステート関数
@param
@return
*///------------------------------------------------------------------------------
static void WDS_WrapperEndState( void )
{
WMErrCode err;
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("*** WDS_WrapperEndState\n");
#endif
// 解放待ちステートへあらかじめ移行しておく
g_wdswrapperwork->state = WDSWRAPPER_STATE_WAITEND;
err = (WMErrCode)WDS_End( WDS_WrapperEnd_CB );
if( err == WM_ERRCODE_SUCCESS ) {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("WDS_End successed\n");
#endif
}
else if( err == WM_ERRCODE_OPERATING ) {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("WDS_End asynchronously successed\n");
#endif
}
else {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_Printf("WDS_End failed\n");
#endif
// 引き続き解放を試みる
g_wdswrapperwork->state = WDSWRAPPER_STATE_END;
}
}
//--------------------------------------------------------------------------------
/** 解放開始コールバック関数
@param arg WMCallback型変数へのポインタ
@return
@note
@LI WDS_Endは常に成功するためIDLEまたは初期化前ウェイトまたはライブラリ解放ステートへ
*///------------------------------------------------------------------------------
static void WDS_WrapperEnd_CB( void *arg )
{
#pragma unused(arg)
WDSWrapperCallbackParam param;
// ステート処理と重複処理しないため
OS_LockMutex( &g_wdswrapperwork->mutex );
#ifdef WDSWRAPPER_DEBUGPRINT
OS_TPrintf("WDS_WrapperEnd_CB\n");
#endif
// WDSを終了したタイミングを記録しておく
g_wdswrapperwork->tickstart = OS_GetTick();
// WDS_End後のステートを各種フラグに基づいて変更
if( g_wdswrapperwork->terminate == TRUE ) {
g_wdswrapperwork->state = WDSWRAPPER_STATE_TERMINATE;
}
else if( g_wdswrapperwork->idle == TRUE ) {
g_wdswrapperwork->state = WDSWRAPPER_STATE_IDLE;
// コールバックパラメータの設定
param.callback = WDSWRAPPER_CALLBACK_STOPSCAN;
param.errcode = WDSWRAPPER_ERRCODE_SUCCESS;
// コールバック関数の呼び出し
g_wdswrapperwork->initparam.callback( &param );
}
else {
g_wdswrapperwork->state = WDSWRAPPER_STATE_BEFOREINIT;
}
// ステート処理と重複処理しないため
OS_UnlockMutex( &g_wdswrapperwork->mutex );
}
//--------------------------------------------------------------------------------
/** アイドルステート関数
@param
@return
*///------------------------------------------------------------------------------
static void WDS_WrapperIdleState( void )
{
if( g_wdswrapperwork->terminate == TRUE ) {
g_wdswrapperwork->state = WDSWRAPPER_STATE_TERMINATE;
}
else if( g_wdswrapperwork->restart == TRUE )
{
g_wdswrapperwork->idle = FALSE;
g_wdswrapperwork->restart = FALSE;
g_wdswrapperwork->state = WDSWRAPPER_STATE_INIT;
}
}
//--------------------------------------------------------------------------------
/** WDSラッパーライブラリが内部で実行するスレッド関数
@param arg NULL
@return
*///------------------------------------------------------------------------------
static void WDS_WrapperThreadFunc( void *arg )
{
#pragma unused( arg )
WDSWrapperCallbackParam param;
// ステートの初期化
g_wdswrapperwork->state = WDSWRAPPER_STATE_INIT;
while( 1 ) {
OS_WaitVBlankIntr();
// ステートにより処理を分岐(ステート処理中はmutexによりlockが行われる)
OS_LockMutex( &g_wdswrapperwork->mutex );
if( g_wdswrapperwork->state == WDSWRAPPER_STATE_TERMINATE )
break;
switch( g_wdswrapperwork->state ) {
case WDSWRAPPER_STATE_BEFOREINIT: WDS_WrapperBeforeInitState(); break;
case WDSWRAPPER_STATE_INIT: WDS_WrapperInitState(); break;
case WDSWRAPPER_STATE_WAITINIT: break;
case WDSWRAPPER_STATE_SCAN: WDS_WrapperScanState(); break;
case WDSWRAPPER_STATE_WAITSCAN: WDS_WrapperWaitScanState(); break;
case WDSWRAPPER_STATE_ENDSCAN: WDS_WrapperEndScanState(); break;
case WDSWRAPPER_STATE_WAITENDSCAN: break;
case WDSWRAPPER_STATE_END: WDS_WrapperEndState(); break;
case WDSWRAPPER_STATE_WAITEND: break;
case WDSWRAPPER_STATE_IDLE: WDS_WrapperIdleState(); break;
case WDSWRAPPER_STATE_TERMINATE: break;
}
OS_UnlockMutex( &g_wdswrapperwork->mutex );
}
// コールバックパラメータの設定
param.callback = WDSWRAPPER_CALLBACK_CLEANUP;
param.errcode = WDSWRAPPER_ERRCODE_SUCCESS;
// コールバック関数の呼び出し
g_wdswrapperwork->initparam.callback( &param );
}
//--------------------------------------------------------------------------------
/** WDSコントロールスレッドデストラクタ
@param arg NULL
@return
*///------------------------------------------------------------------------------
static void WDS_WrapperThreadDestructor( void *arg )
{
#pragma unused( arg )
if( g_wdswrapperwork != NULL ) {
if( g_wdswrapperwork->stack != NULL ) {
g_wdswrapperwork->initparam.free( g_wdswrapperwork->stack );
g_wdswrapperwork->stack = NULL;
}
if( g_wdswrapperwork->wdswork != NULL ) {
g_wdswrapperwork->initparam.free( g_wdswrapperwork->wdswork );
g_wdswrapperwork->wdswork = NULL;
}
g_wdswrapperwork->initparam.free( g_wdswrapperwork );
g_wdswrapperwork = NULL;
}
}
//-----------------------------------------------------
// External Functions
//-----------------------------------------------------
//--------------------------------------------------------------------------------
/**
WDSラッパーライブラリ初期化の非同期処理を開始します<BR>
<BR>
@param param WDSラッパー初期化パラメータ
@return WDSWRAPPER_ERRCODE_SUCCESS:
@return WDSWRAPPER_ERRCODE_INITIALIZED: WDSラッパーライブラリは初期化済み
@return WDSWRAPPER_ERRCODE_FAILURE:
@note
WDSコントロールスレッドは生成直後から間欠スキャンを実行しています
*///------------------------------------------------------------------------------
WDSWrapperErrCode WDS_WrapperInitialize( WDSWrapperInitializeParam param )
{
// 初期化済みをチェック
if( g_wdswrapperwork != NULL )
return WDSWRAPPER_ERRCODE_INITIALIZED;
// パラメータのサニティチェック
if( param.callback == NULL || param.alloc == NULL || param.free == NULL )
return WDSWRAPPER_ERRCODE_FAILURE;
// ワークエリアを初期化
g_wdswrapperwork = param.alloc( sizeof( WDSWrapperWork ) );
if( g_wdswrapperwork == NULL )
goto FAILURE;
MI_CpuClear8( g_wdswrapperwork, sizeof( WDSWrapperWork ) );
// スタック領域・WDSワークエリアの初期化
g_wdswrapperwork->stack = param.alloc( WDSWRAPPER_STACKSIZE );
if( g_wdswrapperwork->stack == NULL )
goto FAILURE;
g_wdswrapperwork->wdswork = param.alloc( WDS_GetWorkAreaSize() );
if( g_wdswrapperwork->wdswork == NULL )
goto FAILURE;
// パラメータのコピー
g_wdswrapperwork->initparam = param;
// mutexの初期化
OS_InitMutex( &g_wdswrapperwork->mutex );
// スレッドの生成
OS_CreateThread( &g_wdswrapperwork->thread,
WDS_WrapperThreadFunc,
NULL,
g_wdswrapperwork->stack + WDSWRAPPER_STACKSIZE,
WDSWRAPPER_STACKSIZE,
g_wdswrapperwork->initparam.threadprio
);
// ワークエリア解放用のスレッドデストラクタを設定
OS_SetThreadDestructor( &g_wdswrapperwork->thread, WDS_WrapperThreadDestructor );
// スレッドの実行
OS_WakeupThreadDirect( &g_wdswrapperwork->thread );
// 初期化成功
return WDSWRAPPER_ERRCODE_SUCCESS;
FAILURE:
if( g_wdswrapperwork != NULL ) {
if( g_wdswrapperwork->stack != NULL ) {
param.free( g_wdswrapperwork->stack );
g_wdswrapperwork->stack = NULL;
}
if( g_wdswrapperwork->wdswork != NULL ) {
param.free( g_wdswrapperwork->wdswork );
g_wdswrapperwork->wdswork = NULL;
}
param.free( g_wdswrapperwork );
g_wdswrapperwork = NULL;
}
return WDSWRAPPER_ERRCODE_FAILURE;
}
//--------------------------------------------------------------------------------
/**
WDSコントロールスレッドを停止しWDSラッパーライブラリを解放します<BR>
<BR>
@param
@return WDSWRAPPER_ERRCODE_SUCCESS WDSラッパー解放を開始
@return WDSWRAPPER_ERRCODE_OPERATING WDSラッパー解放を実行中
@return WDSWRAPPER_ERRCODE_UNINITIALIZED WDSラッパーライブラリが初期化されていない
*///------------------------------------------------------------------------------
WDSWrapperErrCode WDS_WrapperCleanup( void )
{
// 初期化済みをチェック
if( g_wdswrapperwork == NULL )
return WDSWRAPPER_ERRCODE_UNINITIALIZED;
OS_LockMutex( &g_wdswrapperwork->mutex );
// 解放処理実行中をチェック
if( g_wdswrapperwork->terminate == TRUE ) {
OS_UnlockMutex( &g_wdswrapperwork->mutex );
return WDSWRAPPER_ERRCODE_OPERATING;
}
g_wdswrapperwork->terminate = TRUE;
OS_UnlockMutex( &g_wdswrapperwork->mutex );
return WDSWRAPPER_ERRCODE_SUCCESS;
}
//--------------------------------------------------------------------------------
/**
WDSコントロールスレッドのステートを間欠受信状態に変更します<BR>
<BR>
@return WDSWRAPPER_ERRCODE_SUCCESS: ()
@return WDSWRAPPER_ERRCODE_FAILURE: ()
@return WDSWRAPPER_ERRCIDE_OPERATING:
@return WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない
*///------------------------------------------------------------------------------
WDSWrapperErrCode WDS_WrapperStartScan( void )
{
// 初期化済みをチェック
if( g_wdswrapperwork == NULL )
return WDSWRAPPER_ERRCODE_UNINITIALIZED;
OS_LockMutex( &g_wdswrapperwork->mutex );
// ステートがIDLEかBEFOREINITであることを確認
if( g_wdswrapperwork->state != WDSWRAPPER_STATE_IDLE && g_wdswrapperwork->state != WDSWRAPPER_STATE_BEFOREINIT ) {
OS_UnlockMutex( &g_wdswrapperwork->mutex );
return WDSWRAPPER_ERRCODE_FAILURE;
}
// 再スタート処理実行中をチェック
if( g_wdswrapperwork->restart == TRUE ) {
OS_UnlockMutex( &g_wdswrapperwork->mutex );
return WDSWRAPPER_ERRCODE_OPERATING;
}
g_wdswrapperwork->restart = TRUE;
OS_UnlockMutex( &g_wdswrapperwork->mutex );
return WDSWRAPPER_ERRCODE_SUCCESS;
}
//--------------------------------------------------------------------------------
/**
WDSコントロールスレッドのステートを間欠受信停止状態に設定します<BR>
<BR>
@return WDSWRAPPER_ERRCODE_SUCCESS:
@return WDSWRAPPER_ERRCIDE_OPERATING:
@return WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない
@note
20ms程度の時間がかかります
*///------------------------------------------------------------------------------
WDSWrapperErrCode WDS_WrapperStopScan( void )
{
// 初期化済みをチェック
if( g_wdswrapperwork == NULL )
return WDSWRAPPER_ERRCODE_UNINITIALIZED;
OS_LockMutex( &g_wdswrapperwork->mutex );
// 間欠受信停止処理実行中をチェック
if( g_wdswrapperwork->idle == TRUE ) {
OS_UnlockMutex( &g_wdswrapperwork->mutex );
return WDSWRAPPER_ERRCODE_OPERATING;
}
g_wdswrapperwork->idle = TRUE;
OS_UnlockMutex( &g_wdswrapperwork->mutex );
return WDSWRAPPER_ERRCODE_SUCCESS;
}
//--------------------------------------------------------------------------------
/**
@param
@return WDSWRAPPER_ERRCODE_SUCCESS:
@return WDSWRAPPER_ERRCODE_FAILURE:
@return WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない
*///------------------------------------------------------------------------------
WDSWrapperErrCode WDS_WrapperCheckValidBeacon( void )
{
int i;
WDSWrapperErrCode ret = WDSWRAPPER_ERRCODE_FAILURE;
// 初期化済みをチェック
if( g_wdswrapperwork == NULL )
return WDSWRAPPER_ERRCODE_UNINITIALIZED;
OS_LockMutex( &g_wdswrapperwork->mutex );
if( g_wdswrapperwork->briefapinfonum > 0 ) {
for( i = 0; i < g_wdswrapperwork->briefapinfonum; i++ ) {
if( g_wdswrapperwork->briefapinfo[i].isvalid == TRUE ) {
if( g_wdswrapperwork->briefapinfo[i].apinfo.infoflag & WDS_INFOFLAG_NOTIFY ) {
ret = WDSWRAPPER_ERRCODE_SUCCESS;
break;
}
}
}
}
OS_UnlockMutex( &g_wdswrapperwork->mutex );
return ret;
}
//--------------------------------------------------------------------------------
/**
Argument領域にセットします
@param
@return WDSWRAPPER_ERRCODE_SUCCESS: Argument領域にセットされた
@return WDSWRAPPER_ERRCODE_FAILURE: Argument領域にセットできなかった
@return WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない
*///------------------------------------------------------------------------------
WDSWrapperErrCode WDS_WrapperSetArgumentParam( void )
{
int err;
// 初期化済みをチェック
if( g_wdswrapperwork == NULL )
return WDSWRAPPER_ERRCODE_UNINITIALIZED;
// TWL用のArgumentシステムを初期化
OS_InitDeliverArgInfo( &g_wdswrapperwork->deliverinfo, sizeof( g_wdswrapperwork->briefapinfo ) );
// Argument領域に書き込み
err = OS_SetBinaryToDeliverArg( g_wdswrapperwork->briefapinfo, sizeof( g_wdswrapperwork->briefapinfo ) );
if( err != OS_DELIVER_ARG_SUCCESS ) {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_TPrintf( "WDS_WrapperSetArgumentParam: failed %d\n", err );
#endif
return WDSWRAPPER_ERRCODE_FAILURE;
}
err = OS_EncodeDeliverArg();
if( err != OS_DELIVER_ARG_SUCCESS ) {
#ifdef WDSWRAPPER_DEBUGPRINT
OS_TPrintf( "OS_EncodeDeliverArg: failed %d\n", err );
#endif
return WDSWRAPPER_ERRCODE_FAILURE;
}
#ifdef WDSWRAPPER_DEBUGPRINT
OS_TPrintf( "WDS_WrapperSetArgumentParam: success\n" );
#endif
return WDSWRAPPER_ERRCODE_SUCCESS;
}
//--------------------------------------------------------------------------------
/**
WDSコントロールスレッドが実行中か確認します
@param
@return WDSWRAPPER_ERRCODE_SUCCESS: WDSコントロールスレッドが実行中
@return WDSWRAPPER_ERRCODE_FAILURE: WDSコントロールスレッドは停止している
@return WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない
*///------------------------------------------------------------------------------
WDSWrapperErrCode WDS_WrapperCheckThreadRunning( void )
{
// 初期化済みをチェック
if( g_wdswrapperwork == NULL )
return WDSWRAPPER_ERRCODE_UNINITIALIZED;
if( OS_IsThreadTerminated( &g_wdswrapperwork->thread ) == TRUE )
return WDSWRAPPER_ERRCODE_FAILURE;
return WDSWRAPPER_ERRCODE_SUCCESS;
}
//--------------------------------------------------------------------------------
/**
WDSコントロールスレッドが使用しているOSThreadへのポインタを得ます
@param
@return NULL: WDSラッパーライブラリが初期化されていない
@return NULL以外: OSThreadへのポインタ
*///------------------------------------------------------------------------------
OSThread *WDS_WrapperGetOSThread( void )
{
// 初期化済みをチェック
if( g_wdswrapperwork == NULL )
return NULL;
return &g_wdswrapperwork->thread;
}

View File

@ -1,6 +1,6 @@
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■ ■ ■ ■
■ TWLWDSライブラリ 2008/6/11版 ■ ■ TWLWDSライブラリ 2008/6/26版 ■
■ ■ ■ ■
■ ネットワーク開発部からのお知らせ ■ ■ ネットワーク開発部からのお知らせ ■
■ ■ ■ ■
@ -22,9 +22,14 @@
%make TWLSDK_PLATFORM=TWL %make TWLSDK_PLATFORM=TWL
・受信サンプルのビルドはWDSTestディレクトリ下で ・受信サンプルのビルドはWDSTestディレクトリ下で
%make TWLSDK_PLATFORM=TWL %make TWLSDK_PLATFORM=TWL
・WDSラッパーを使用した受信サンプルのビルドはWDSWrapperTestディレクトリ下で
%make TWLSDK_PLATFORM=TWL
●変更履歴 ●変更履歴
2008/06/26 20080626版
・WDSライブラリを簡易に使用するためのWDSWrapperが追加されました。
2008/06/11 初版 2008/06/11 初版
・動作確認用バージョンから、ビーコンに以下の情報が追加されました ・動作確認用バージョンから、ビーコンに以下の情報が追加されました
infoflag - 付加情報フラグが格納される領域です infoflag - 付加情報フラグが格納される領域です
@ -40,3 +45,4 @@ infoflag
・ランチャーメニューでのニンテンドースポットビューアの強調表示は、 ・ランチャーメニューでのニンテンドースポットビューアの強調表示は、
infoflagのWDS_INFOFLAG_NOTIFYビットが1にセットされたビーコンを infoflagのWDS_INFOFLAG_NOTIFYビットが1にセットされたビーコンを
受信した場合のみ行ってください。 受信した場合のみ行ってください。
・なお、WDSWrapperはWDS_INFOFLAG_NOTIFYに関連した処理を内部で自動的に行います。

View File

@ -1,22 +1,5 @@
/*---------------------------------------------------------------------------* #include <nitro.h>
Project: TwlIPL #include "WDS.h"
File: WDS.c
Copyright 2007 Nintendo. All rights reserved.
These coded instructions, statements, and computer programs contain
proprietary information of Nintendo of America Inc. and/or Nintendo
Company Ltd., and are protected by Federal copyright law. They may
not be disclosed to third parties or copied or duplicated in any form,
in whole or in part, without the prior written consent of Nintendo.
$Date:: $
$Rev$
$Author$
*---------------------------------------------------------------------------*/
#include <twl.h>
#include <sysmenu/WDS.h>
// ヒープ初期化関数 // ヒープ初期化関数
static void InitializeAllocateSystem(void); static void InitializeAllocateSystem(void);
@ -54,6 +37,9 @@ static AppState g_appstate = APP_STATE_WDSINIT;
// 受け取ったビーコン情報を格納する変数(この配列をランチャー経由でホットスポットチャンネルに渡す) // 受け取ったビーコン情報を格納する変数(この配列をランチャー経由でホットスポットチャンネルに渡す)
static WDSBriefApInfo briefapinfo[WDS_APINFO_MAX]; static WDSBriefApInfo briefapinfo[WDS_APINFO_MAX];
// ŽžŠÔŒvª—p
static OSTick wdsBegin;
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: NitroMain Name: NitroMain
@ -102,6 +88,7 @@ void NitroMain(void)
// WDSライブラリの初期化関数を呼び出し、その非同期処理の完了を待つ // WDSライブラリの初期化関数を呼び出し、その非同期処理の完了を待つ
OS_Printf("*** WDS_Initialize\n"); OS_Printf("*** WDS_Initialize\n");
g_appstate = APP_STATE_WDSWAITINIT; g_appstate = APP_STATE_WDSWAITINIT;
wdsBegin = OS_GetTick();
if( WDS_Initialize( wdsSysBuf, WDS_Initialize_CB, 0 ) == 0 ) if( WDS_Initialize( wdsSysBuf, WDS_Initialize_CB, 0 ) == 0 )
{ {
OS_Printf("WDS_Initialize successed\n"); OS_Printf("WDS_Initialize successed\n");
@ -126,6 +113,7 @@ void NitroMain(void)
//OS_Printf("*** WDS_StartScan\n"); //OS_Printf("*** WDS_StartScan\n");
// ビーコンスキャン非同期処理を開始する // ビーコンスキャン非同期処理を開始する
g_appstate = APP_STATE_WDSWAITSCAN; g_appstate = APP_STATE_WDSWAITSCAN;
wdsBegin = OS_GetTick();
if( WDS_StartScan( WDS_StartScan_CB ) == 0 ) if( WDS_StartScan( WDS_StartScan_CB ) == 0 )
{ {
if( wdsScanBeginTick == 0 ) if( wdsScanBeginTick == 0 )
@ -156,6 +144,7 @@ void NitroMain(void)
OS_Printf("*** WDS_EndScan\n"); OS_Printf("*** WDS_EndScan\n");
// スキャンを終了させる非同期処理を開始する // スキャンを終了させる非同期処理を開始する
wdsBegin = OS_GetTick();
g_appstate = APP_STATE_WDSWAITENDSCAN; g_appstate = APP_STATE_WDSWAITENDSCAN;
if( WDS_EndScan( WDS_EndScan_CB ) == 0 ) if( WDS_EndScan( WDS_EndScan_CB ) == 0 )
{ {
@ -187,6 +176,7 @@ void NitroMain(void)
// WDSライブラリを終了し、無線ハードの電源を落とす非同期処理を開始する // WDSライブラリを終了し、無線ハードの電源を落とす非同期処理を開始する
OS_Printf("*** WDS_End\n"); OS_Printf("*** WDS_End\n");
g_appstate = APP_STATE_WDSWAITEND; g_appstate = APP_STATE_WDSWAITEND;
wdsBegin = OS_GetTick();
if( WDS_End( WDS_End_CB ) == 0 ) if( WDS_End( WDS_End_CB ) == 0 )
{ {
OS_Printf("WDS_End successed\n"); OS_Printf("WDS_End successed\n");
@ -263,13 +253,15 @@ static void WDS_Initialize_CB(void *arg)
#pragma unused(arg) #pragma unused(arg)
OS_TPrintf("WDS_Initialize_CB\n"); OS_TPrintf("WDS_Initialize_CB\n");
g_appstate = APP_STATE_WDSSCAN; g_appstate = APP_STATE_WDSSCAN;
OS_TPrintf("Elapsed time = %llu\n", OS_TicksToMicroSeconds( OS_GetTick() - wdsBegin ) );
} }
static void WDS_StartScan_CB(void *arg) static void WDS_StartScan_CB(void *arg)
{ {
#pragma unused(arg) #pragma unused(arg)
// OS_TPrintf("WDS_StartScan_CB\n"); OS_TPrintf("WDS_StartScan_CB\n");
g_appstate = APP_STATE_WDSCOMPLETESCAN; g_appstate = APP_STATE_WDSCOMPLETESCAN;
OS_TPrintf("Elapsed time = %llu\n", OS_TicksToMicroSeconds( OS_GetTick() - wdsBegin ) );
} }
static void WDS_EndScan_CB(void *arg) static void WDS_EndScan_CB(void *arg)
@ -277,6 +269,7 @@ static void WDS_EndScan_CB(void *arg)
#pragma unused(arg) #pragma unused(arg)
OS_TPrintf("WDS_EndScan_CB\n"); OS_TPrintf("WDS_EndScan_CB\n");
g_appstate = APP_STATE_WDSCOMPLETEENDSCAN; g_appstate = APP_STATE_WDSCOMPLETEENDSCAN;
OS_TPrintf("Elapsed time = %llu\n", OS_TicksToMicroSeconds( OS_GetTick() - wdsBegin ) );
} }
static void WDS_End_CB(void *arg) static void WDS_End_CB(void *arg)
@ -284,4 +277,5 @@ static void WDS_End_CB(void *arg)
#pragma unused(arg) #pragma unused(arg)
OS_TPrintf("WDS_End_CB\n"); OS_TPrintf("WDS_End_CB\n");
g_appstate = APP_STATE_WDSCOMPLETEEND; g_appstate = APP_STATE_WDSCOMPLETEEND;
OS_TPrintf("Elapsed time = %llu\n", OS_TicksToMicroSeconds( OS_GetTick() - wdsBegin ) );
} }

View File

@ -0,0 +1,37 @@
#! make -f
#----------------------------------------------------------------------------
# Project: WDSWrapperTest
# File: Makefile
#
# Copyright 2008 Nintendo. All rights reserved.
#
# These coded instructions, statements, and computer programs contain
# proprietary information of Nintendo of America Inc. and/or Nintendo
# Company Ltd., and are protected by Federal copyright law. They may
# not be disclosed to third parties or copied or duplicated in any form,
# in whole or in part, without the prior written consent of Nintendo.
#
#----------------------------------------------------------------------------
TARGET_FIRM = SYSTEMMENU
TARGET_PLATFORM = TWL
TWL_ARCHGEN = LIMITED
TWL_PROC = ARM9
SRCS = main.c
TARGET_BIN = main.srl
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
#----------------------------------------------------------------------------
LLIBRARIES += WDS$(TWL_LIBSUFFIX).a
#----------------------------------------------------------------------------
do-build: $(TARGETS)
#----------------------------------------------------------------------------
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
#===== End of Makefile =====

View File

@ -0,0 +1,130 @@
#include "WDSWrapper.h"
// Vブランク関数
static void VBlankIntr(void)
{
OS_SetIrqCheckFlag(OS_IE_V_BLANK);
}
// ヒープ初期化関数
static void InitializeAllocateSystem(void)
{
void *tempLo;
OSHeapHandle hh;
tempLo = OS_InitAlloc(OS_ARENA_MAIN, OS_GetMainArenaLo(), OS_GetMainArenaHi(), 1);
OS_SetArenaLo(OS_ARENA_MAIN, tempLo);
hh = OS_CreateHeap(OS_ARENA_MAIN, OS_GetMainArenaLo(), OS_GetMainArenaHi());
if (hh < 0)
{
OS_Panic("ARM9: Fail to create heap...\n");
}
hh = OS_SetCurrentHeap(OS_ARENA_MAIN, hh);
}
// WDSWrapper用アロケータ
static void *Alloc_WDSWrapper( u32 size )
{
return OS_Alloc( size );
}
static void Free_WDSWrapper( void *ptr )
{
OS_Free( ptr );
}
char *callbackstring[] = {
"WDSWRAPPER_CALLBACK_INITIALIZE",
"WDSWRAPPER_CALLBACK_CLEANUP",
"WDSWRAPPER_CALLBACK_STARTSCAN",
"WDSWRAPPER_CALLBACK_STARTSCAN2",
"WDSWRAPPER_CALLBACK_STOPSCAN",
};
// WDSWrapper用コールバック関数
static void Callback_WDSWrapper( void *ptr )
{
WDSWrapperCallbackParam *callback = (WDSWrapperCallbackParam *)ptr;
OS_TPrintf("Callback_WDSWrapper: %s %d ", callbackstring[callback->callback], callback->errcode );
if( callback->callback == WDSWRAPPER_CALLBACK_STARTSCAN2 ) {
// n秒間隔のビーコン間欠スキャン一回分が完了
// ビーコンを受け取っていないという結果が出た場合、強調表示を消します
if( WDS_WrapperCheckValidBeacon() == WDSWRAPPER_ERRCODE_FAILURE )
OS_TPrintf( "強調表示を消します" );
else {
OS_TPrintf( "強調表示をつけます" );
if( WDS_WrapperSetArgumentParam() == WDSWRAPPER_ERRCODE_SUCCESS )
OS_TPrintf( "\nArgument領域にパラメータを代入\n" );
else
OS_TPrintf( "\nArgument領域にパラメータを代入失敗\n" );
}
}
else if( callback->callback == WDSWRAPPER_CALLBACK_STARTSCAN ) {
// n秒間隔のビーコン間欠スキャン一回分が完了
// ビーコンを受け取っている場合のみ強調表示を付けます
if( WDS_WrapperCheckValidBeacon() == WDSWRAPPER_ERRCODE_SUCCESS )
OS_TPrintf( "強調表示をつけます" );
}
OS_TPrintf( "\n" );
}
void NitroMain(void)
{
WDSWrapperInitializeParam param;
u16 lastpad = 0x0000;
u16 nowpad = 0x0000;
// 各種初期化処理
OS_Init();
OS_InitTick();
OS_InitAlarm();
//---- interrupt setting
OS_SetIrqFunction(OS_IE_V_BLANK, VBlankIntr);
OS_EnableIrqMask(OS_IE_V_BLANK);
OS_EnableIrq();
GX_VBlankIntr(TRUE);
InitializeAllocateSystem();
OS_TPrintf( "WDSWrapper Sample\n\n" );
OS_TPrintf( "Xボタン: WDSラッパーとWDSを初期化し、間欠スキャンを開始\n" );
OS_TPrintf( "Bボタン: スキャンを中断\n" );
OS_TPrintf( "Aボタン: スキャンを再開\n" );
OS_TPrintf( "Yボタン: スキャンを中断し、WDSラッパーとWDSを解放\n" );
OS_TPrintf( "スタートボタン: ヒープをダンプ表示\n" );
// キー入力で中断・再開・解放をやる
while( 1 ) {
lastpad = nowpad;
nowpad = PAD_Read();
// Aボタン: スキャンを再開
// Bボタン: スキャンを中断
// Xボタン: ラッパーを初期化
// Yボタン: ラッパーを解放
// スタートボタン: ヒープをダンプ表示
if( ( lastpad ^ nowpad ) & PAD_BUTTON_A && !( nowpad & PAD_BUTTON_A ) )
WDS_WrapperStartScan();
if( ( lastpad ^ nowpad ) & PAD_BUTTON_B && !( nowpad & PAD_BUTTON_B ) )
WDS_WrapperStopScan();
if( ( lastpad ^ nowpad ) & PAD_BUTTON_X && !( nowpad & PAD_BUTTON_X ) ) {
// WDSWrapper初期化と動作開始
param.threadprio = 10;
param.dmano = 1;
param.callback = Callback_WDSWrapper;
param.alloc = Alloc_WDSWrapper;
param.free = Free_WDSWrapper;
WDS_WrapperInitialize( param );
}
if( ( lastpad ^ nowpad ) & PAD_BUTTON_Y && !( nowpad & PAD_BUTTON_Y ) )
WDS_WrapperCleanup();
if( ( lastpad ^ nowpad ) & PAD_BUTTON_START && !( nowpad & PAD_BUTTON_START ) )
OS_DumpHeap( OS_ARENA_MAIN, OS_CURRENT_HEAP_HANDLE );
OS_Sleep( 100 );
}
}

View File

@ -0,0 +1,137 @@
//**********************************************************************
//
// @file WDSWrapper.h
// @brief WDSライブラリのラッパー
//
// @author S.Nakata
// @date 2008/06/21
// @version 0.0
//
//*********************************************************************/
#ifndef __WDSWRAPPER_H__
#define __WDSWRAPPER_H__
#ifdef __cplusplus
extern "C" {
#endif
//-----------------------------------------------------
// Include
//-----------------------------------------------------
#include "WDS.h"
//-----------------------------------------------------
// Macros
//-----------------------------------------------------
#define WDSWRAPPER_STACKSIZE 4096 ///< WDSラッパーが使用するスレッドスタックの推奨サイズ
#define WDSWRAPPER_SCANPERIOD 3000 ///< WDSラッパーがスキャンを継続する時間[msec]
#define WDSWRAPPER_WAITPERIOD 3000 ///< WDSラッパーがスキャンを中断する時間[msec]
//#define WDSWRAPPER_DEBUGPRINT ///< デバッグ表示フラグ
//-----------------------------------------------------
// Types of WDS Wrapper Library
//-----------------------------------------------------
/**
@brief
*/
typedef enum WDSWrapperErrCode
{
WDSWRAPPER_ERRCODE_SUCCESS = 0, ///< 処理成功
WDSWRAPPER_ERRCODE_FAILURE = 1, ///< 処理失敗
WDSWRAPPER_ERRCODE_OPERATING = 2, ///< 処理実行中
WDSWRAPPER_ERRCODE_INITIALIZED = 3, ///< WDSラッパーライブラリ初期化済み
WDSWRAPPER_ERRCODE_UNINITIALIZED= 4 ///< WDSラッパーライブラリ未初期化
} WDSWrapperErrCode;
/**
@brief
*/
typedef enum WDSWrapperCallback
{
WDSWRAPPER_CALLBACK_INITIALIZE = 0, //!< WDS_WrapperInitialize関数によるコールバック
WDSWRAPPER_CALLBACK_CLEANUP = 1, //!< WDS_WrapperCleanup関数によるコールバック
WDSWRAPPER_CALLBACK_STARTSCAN = 2, //!< WDS_WrapperStartScan関数によるコールバック
WDSWRAPPER_CALLBACK_STARTSCAN2 = 3, //!< WDS_WrapperStartScan関数によるコールバック(間欠スキャン1回終了)
WDSWRAPPER_CALLBACK_STOPSCAN = 4 //!< WDS_WrapperStopScan関数によるコールバック
} WDSWrapperCallback;
/**
@brief WDSラッパーののステートをあらわす列挙型
*/
typedef enum WDSWrapperStateThreadState {
WDSWRAPPER_STATE_BEFOREINIT, //!< 初期化開始待ちステート
WDSWRAPPER_STATE_INIT, //!< 初期化開始ステート
WDSWRAPPER_STATE_WAITINIT, //!< 初期化完了待ちステート
WDSWRAPPER_STATE_SCAN, //!< スキャン開始ステート
WDSWRAPPER_STATE_WAITSCAN, //!< スキャン完了待ちステート
WDSWRAPPER_STATE_ENDSCAN, //!< スキャン中断ステート
WDSWRAPPER_STATE_WAITENDSCAN, //!< スキャン中断完了待ちステート
WDSWRAPPER_STATE_END, //!< WDS解放開始ステート
WDSWRAPPER_STATE_WAITEND, //!< WDS解放完了待ちステート
WDSWRAPPER_STATE_IDLE, //!< アイドルステート
WDSWRAPPER_STATE_TERMINATE //!< WDSラッパー解放ステート
} WDSWrapperStateThreadState;
/**
@brief WDSWrapperライブラリが使用するコールバック関数型
@note
argは必ずWDSWrapperCallback型変数へのポインタ
*/
typedef void ( *WDSWrapperCallbackFunc )( void *arg );
/**
@brief WDSラッパー内部で使用するアロケーター型
*/
typedef void *( *WDSWrapperAlloc )( u32 size );
/**
@brief WDSラッパー内部で使用するアロケーター型
*/
typedef void ( *WDSWrapperFree )( void *ptr );
//-----------------------------------------------------
// Structs of WDS Wrapper Library
//-----------------------------------------------------
/**
@brief WDS_WrapperInitialize関数に与える初期化パラメータ
*/
typedef struct WDSWrapperInitializeParam
{
u32 threadprio; ///< WDSコントロールスレッドの優先度
u16 dmano; ///< WMライブラリが使用するDMA番号
WDSWrapperCallbackFunc callback; ///< WDSコントロールスレッドから呼び出されるコールバック関数へのポインタ
WDSWrapperAlloc alloc; ///< WDSラッパーが使用するアロケータ
WDSWrapperFree free; ///< WDSラッパーが使用するアロケータ
} WDSWrapperInitializeParam;
/**
@brief WDSラッパーが呼び出すコールバック関数に与えられる引数用の構造体
*/
typedef struct WDSWrapperCallbackParam
{
WDSWrapperCallback callback; ///< コールバック発生要因
WDSWrapperErrCode errcode; ///< エラーコード
} WDSWrapperCallbackParam;
//-----------------------------------------------------
// Prototypes of WDS Wrapper Library
//-----------------------------------------------------
WDSWrapperErrCode WDS_WrapperInitialize( WDSWrapperInitializeParam param );
WDSWrapperErrCode WDS_WrapperCleanup( void );
WDSWrapperErrCode WDS_WrapperStartScan( void );
WDSWrapperErrCode WDS_WrapperStopScan( void );
WDSWrapperErrCode WDS_WrapperCheckValidBeacon( void );
WDSWrapperErrCode WDS_WrapperSetArgumentParam( void );
WDSWrapperErrCode WDS_WrapperCheckThreadRunning( void );
OSThread *WDS_WrapperGetOSThread( void );
#ifdef __cplusplus
}
#endif
#endif //EOF __WDSWRAPPER_H__

View File

@ -0,0 +1,281 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: src/WDSWrapper.c</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li><a href="classes.html"><span>データ構造</span></a></li>
<li class="current"><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>src/WDSWrapper.c</h1>WDSライブラリのラッパー <a href="#_details">[詳細]</a>
<p>
<code>#include &quot;<a class="el" href="_w_d_s_wrapper_8h.html">WDSWrapper.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>データ構造</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_work.html">WDSWrapperWork</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパーのワーク領域 <a href="struct_w_d_s_wrapper_work.html#_details">[詳細]</a><br></td></tr>
<tr><td colspan="2"><br><h2>関数</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8c.html#c80ac8cfc892206f1a9585531a0ea599">WDS_WrapperInitialize</a> (<a class="el" href="struct_w_d_s_wrapper_initialize_param.html">WDSWrapperInitializeParam</a> param)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8c.html#3cad55852f36b4adb400debbfcade0c2">WDS_WrapperCleanup</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8c.html#a2de2e309d323d9f8f0cf439cbd9f59b">WDS_WrapperStartScan</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8c.html#dddf9ad0118cd79040f8cd77ad3f47ab">WDS_WrapperStopScan</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8c.html#ef5809caa40c38d3ddd8384cb4fd7270">WDS_WrapperCheckValidBeacon</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8c.html#974b5c59d51eae0ff3bd43a351d5b25b">WDS_WrapperSetArgumentParam</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8c.html#5201d971f9d90d86f7a53f476c27e024">WDS_WrapperCheckThreadRunning</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">OSThread *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8c.html#d895ad01bd9860c7f42ec3f51945215a">WDS_WrapperGetOSThread</a> (void)</td></tr>
</table>
<hr><a name="_details"></a><h2>説明</h2>
WDSライブラリのラッパー
<p>
<dl class="author" compact><dt><b>作者:</b></dt><dd>S.Nakata </dd></dl>
<dl class="date" compact><dt><b>日付:</b></dt><dd>2008/06/24 </dd></dl>
<dl class="version" compact><dt><b>バージョン:</b></dt><dd>01.00 </dd></dl>
<hr><h2>関数</h2>
<a class="anchor" name="5201d971f9d90d86f7a53f476c27e024"></a><!-- doxytag: member="WDSWrapper.c::WDS_WrapperCheckThreadRunning" ref="5201d971f9d90d86f7a53f476c27e024" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> WDS_WrapperCheckThreadRunning </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSコントロールスレッドが実行中か確認します <dl compact><dt><b>引数:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>なし</em>&nbsp;</td><td></td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>戻り値:</b></dt><dd>WDSWRAPPER_ERRCODE_SUCCESS: WDSコントロールスレッドが実行中 <p>
WDSWRAPPER_ERRCODE_FAILURE: WDSコントロールスレッドは停止している <p>
WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない </dd></dl>
</div>
</div><p>
<a class="anchor" name="ef5809caa40c38d3ddd8384cb4fd7270"></a><!-- doxytag: member="WDSWrapper.c::WDS_WrapperCheckValidBeacon" ref="ef5809caa40c38d3ddd8384cb4fd7270" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> WDS_WrapperCheckValidBeacon </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
直前に完了した間欠受信で有効な親機ビーコンを受け取ったか確認します <dl compact><dt><b>引数:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>なし</em>&nbsp;</td><td></td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>戻り値:</b></dt><dd>WDSWRAPPER_ERRCODE_SUCCESS: 直前に完了した間欠受信で有効な親機ビーコンを受け取った <p>
WDSWRAPPER_ERRCODE_FAILURE: 直前に完了した間欠受信で有効な親機ビーコンを受け取っていない <p>
WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない </dd></dl>
</div>
</div><p>
<a class="anchor" name="3cad55852f36b4adb400debbfcade0c2"></a><!-- doxytag: member="WDSWrapper.c::WDS_WrapperCleanup" ref="3cad55852f36b4adb400debbfcade0c2" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> WDS_WrapperCleanup </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSコントロールスレッドを停止し、WDSラッパーライブラリを解放します。<br>
解放処理完了の直前にコールバックが発生します。<br>
コールバック関数にエラーが通知されることはありません。 <dl compact><dt><b>引数:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>なし</em>&nbsp;</td><td></td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>戻り値:</b></dt><dd>WDSWRAPPER_ERRCODE_SUCCESS WDSラッパー解放を開始 <p>
WDSWRAPPER_ERRCODE_OPERATING WDSラッパー解放を実行中 <p>
WDSWRAPPER_ERRCODE_UNINITIALIZED WDSラッパーライブラリが初期化されていない </dd></dl>
</div>
</div><p>
<a class="anchor" name="d895ad01bd9860c7f42ec3f51945215a"></a><!-- doxytag: member="WDSWrapper.c::WDS_WrapperGetOSThread" ref="d895ad01bd9860c7f42ec3f51945215a" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">OSThread* WDS_WrapperGetOSThread </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSコントロールスレッドが使用しているOSThreadへのポインタを得ます <dl compact><dt><b>引数:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>なし</em>&nbsp;</td><td></td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>戻り値:</b></dt><dd>NULL: WDSラッパーライブラリが初期化されていない <p>
NULL以外: 実行中・あるいは停止中のOSThreadへのポインタ </dd></dl>
</div>
</div><p>
<a class="anchor" name="c80ac8cfc892206f1a9585531a0ea599"></a><!-- doxytag: member="WDSWrapper.c::WDS_WrapperInitialize" ref="c80ac8cfc892206f1a9585531a0ea599" args="(WDSWrapperInitializeParam param)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> WDS_WrapperInitialize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_w_d_s_wrapper_initialize_param.html">WDSWrapperInitializeParam</a>&nbsp;</td>
<td class="paramname"> <em>param</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパーライブラリ初期化の非同期処理を開始します。<br>
初期化処理完了時にコールバックが発生します。<br>
コールバック関数でエラー通知を受け取った場合は、ライブラリが自動的に解放されるのを待ってください。 <dl compact><dt><b>引数:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>WDSラッパー初期化パラメータ </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>戻り値:</b></dt><dd>WDSWRAPPER_ERRCODE_SUCCESS: 初期化処理を開始 <p>
WDSWRAPPER_ERRCODE_INITIALIZED: WDSラッパーライブラリは初期化済み <p>
WDSWRAPPER_ERRCODE_FAILURE: 初期化に失敗 </dd></dl>
<dl class="note" compact><dt><b>覚え書き:</b></dt><dd>・WDSコントロールスレッドは生成直後から間欠スキャンを実行しています </dd></dl>
</div>
</div><p>
<a class="anchor" name="974b5c59d51eae0ff3bd43a351d5b25b"></a><!-- doxytag: member="WDSWrapper.c::WDS_WrapperSetArgumentParam" ref="974b5c59d51eae0ff3bd43a351d5b25b" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> WDS_WrapperSetArgumentParam </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
直前に完了した間欠受信で受け取ったビーコン情報をArgument領域にセットします <dl compact><dt><b>引数:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>なし</em>&nbsp;</td><td></td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>戻り値:</b></dt><dd>WDSWRAPPER_ERRCODE_SUCCESS: 親機ビーコン情報がArgument領域にセットされた <p>
WDSWRAPPER_ERRCODE_FAILURE: 親機ビーコン情報をArgument領域にセットできなかった <p>
WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない </dd></dl>
</div>
</div><p>
<a class="anchor" name="a2de2e309d323d9f8f0cf439cbd9f59b"></a><!-- doxytag: member="WDSWrapper.c::WDS_WrapperStartScan" ref="a2de2e309d323d9f8f0cf439cbd9f59b" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> WDS_WrapperStartScan </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSコントロールスレッドのステートを間欠受信状態に変更します。<br>
ステートの変更に成功すると、以後一回の間欠受信が完了するたびにコールバックが呼び出されます。<br>
コールバック関数でエラー通知を受け取った場合は、ライブラリが自動的に解放されるのを待ってください。 <dl class="return" compact><dt><b>戻り値:</b></dt><dd>WDSWRAPPER_ERRCODE_SUCCESS: ステート変更に成功(コールバック発生を待ってください) <p>
WDSWRAPPER_ERRCODE_FAILURE: 間欠受信に移行できるステートでない(現在のステートが維持されます) <p>
WDSWRAPPER_ERRCIDE_OPERATING: すでにステートが間欠受信状態 <p>
WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない </dd></dl>
</div>
</div><p>
<a class="anchor" name="dddf9ad0118cd79040f8cd77ad3f47ab"></a><!-- doxytag: member="WDSWrapper.c::WDS_WrapperStopScan" ref="dddf9ad0118cd79040f8cd77ad3f47ab" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> WDS_WrapperStopScan </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSコントロールスレッドのステートを間欠受信停止状態に設定します。<br>
間欠受信が実際に停止した際にコールバックが呼び出されます。<br>
コールバックでエラーが通知されることはありません。 <dl class="return" compact><dt><b>戻り値:</b></dt><dd>WDSWRAPPER_ERRCODE_SUCCESS: ステート変更に成功 <p>
WDSWRAPPER_ERRCIDE_OPERATING: すでにステートが間欠受信停止状態 <p>
WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない </dd></dl>
<dl class="note" compact><dt><b>覚え書き:</b></dt><dd>ステート変更が行われてから間欠受信が停止するまでには20ms程度の時間がかかります </dd></dl>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,562 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: include/WDSWrapper.h</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li><a href="classes.html"><span>データ構造</span></a></li>
<li class="current"><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>include/WDSWrapper.h</h1><code>#include &quot;WDS.h&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>データ構造</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_initialize_param.html">WDSWrapperInitializeParam</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDS_WrapperInitialize関数に与える初期化パラメータ <a href="struct_w_d_s_wrapper_initialize_param.html#_details">[詳細]</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_callback_param.html">WDSWrapperCallbackParam</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパーが呼び出すコールバック関数に与えられる引数用の構造体 <a href="struct_w_d_s_wrapper_callback_param.html#_details">[詳細]</a><br></td></tr>
<tr><td colspan="2"><br><h2>マクロ定義</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#3e27e22a709bb62c707b2c6ece34b79d">WDSWRAPPER_STACKSIZE</a>&nbsp;&nbsp;&nbsp;4096</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパーが使用するスレッドスタックの推奨サイズ <a href="#3e27e22a709bb62c707b2c6ece34b79d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#df62a1095c124ff7ed3f8bcc0cd0e79f">WDSWRAPPER_SCANPERIOD</a>&nbsp;&nbsp;&nbsp;3000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパーがスキャンを継続する時間[msec] <a href="#df62a1095c124ff7ed3f8bcc0cd0e79f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#79088e3207784ca6f790938a0da75140">WDSWRAPPER_WAITPERIOD</a>&nbsp;&nbsp;&nbsp;3000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパーがスキャンを中断する時間[msec] <a href="#79088e3207784ca6f790938a0da75140"></a><br></td></tr>
<tr><td colspan="2"><br><h2>型定義</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#8370c52f5fc54099274aea1188a1bb25">WDSWrapperCallbackFunc</a> )(void *arg)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSWrapperライブラリが使用するコールバック関数型 <a href="#8370c52f5fc54099274aea1188a1bb25"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#e92702d8529bfd419ac81648fd75092b">WDSWrapperAlloc</a> )(u32 size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパー内部で使用するアロケーター型 <a href="#e92702d8529bfd419ac81648fd75092b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#c372630f28c9599a6df9e686e5f0af38">WDSWrapperFree</a> )(void *ptr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパー内部で使用するアロケーター型 <a href="#c372630f28c9599a6df9e686e5f0af38"></a><br></td></tr>
<tr><td colspan="2"><br><h2>列挙型</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> { <br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265cafb2d50d5d157af646452b155bfc53b">WDSWRAPPER_ERRCODE_SUCCESS</a> = 0,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db407226523f0087e3df9dbd5e69c2e2bdecdb976">WDSWRAPPER_ERRCODE_FAILURE</a> = 1,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db40722654b4eed4bfee309504bc05cc15324f5ed">WDSWRAPPER_ERRCODE_OPERATING</a> = 2,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265b2058b441ae4131ed4dd869ee9c82278">WDSWRAPPER_ERRCODE_INITIALIZED</a> = 3,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265a280d087d837e10b13fdf61721cfe069">WDSWRAPPER_ERRCODE_UNINITIALIZED</a> = 4
<br>
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">処理結果をあらわす列挙型 <a href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">[詳細]</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1">WDSWrapperCallback</a> { <br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e11330cb7b6f29efd80d1de157f0220734">WDSWRAPPER_CALLBACK_INITIALIZE</a> = 0,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1b319af0ab6104be1c2764c1589760243">WDSWRAPPER_CALLBACK_CLEANUP</a> = 1,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1d6e797e7adb1af3f5a5cc1bb45aa0cec">WDSWRAPPER_CALLBACK_STARTSCAN</a> = 2,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1aa7e918e0bb4e333760c99ecd381949f">WDSWRAPPER_CALLBACK_STARTSCAN2</a> = 3,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e15b05dd0e64de0ee7f1c5da416516742b">WDSWRAPPER_CALLBACK_STOPSCAN</a> = 4
<br>
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">コールバック発生要因をあらわす列挙型 <a href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1">[詳細]</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff">WDSWrapperStateThreadState</a> { <br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff6c5db32e5290de400c98869d8d1810b0">WDSWRAPPER_STATE_BEFOREINIT</a>,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff191097930ee9d65ffde55f193aec3144">WDSWRAPPER_STATE_INIT</a>,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff9b7dff8f14ad19b9a8cbb6b786595156">WDSWRAPPER_STATE_WAITINIT</a>,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ffdc49f57db5381117ede507b616b01d2e">WDSWRAPPER_STATE_SCAN</a>,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ffd9635041daca249d0b9172843d4bc5f0">WDSWRAPPER_STATE_WAITSCAN</a>,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff085dd5cb0b71f26ccbd9937c2d0e89af">WDSWRAPPER_STATE_ENDSCAN</a>,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff3e512f87d29a0be102644fb68eea8032">WDSWRAPPER_STATE_WAITENDSCAN</a>,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff40660c50ad0ae098eb6561ee3952aa65">WDSWRAPPER_STATE_END</a>,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff3a37f0d4fe2c983f0ddea50f6bced4fa">WDSWRAPPER_STATE_WAITEND</a>,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff537798a3cb5bd0cdb1edd711b281d21e">WDSWRAPPER_STATE_IDLE</a>,
<br>
&nbsp;&nbsp;<a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff66241b922402b4f4f046fe91bc495c81">WDSWRAPPER_STATE_TERMINATE</a>
<br>
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパーののステートをあらわす列挙型 <a href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff">[詳細]</a><br></td></tr>
<tr><td colspan="2"><br><h2>関数</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#c80ac8cfc892206f1a9585531a0ea599">WDS_WrapperInitialize</a> (<a class="el" href="struct_w_d_s_wrapper_initialize_param.html">WDSWrapperInitializeParam</a> param)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#3cad55852f36b4adb400debbfcade0c2">WDS_WrapperCleanup</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#a2de2e309d323d9f8f0cf439cbd9f59b">WDS_WrapperStartScan</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#dddf9ad0118cd79040f8cd77ad3f47ab">WDS_WrapperStopScan</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#ef5809caa40c38d3ddd8384cb4fd7270">WDS_WrapperCheckValidBeacon</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#974b5c59d51eae0ff3bd43a351d5b25b">WDS_WrapperSetArgumentParam</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#5201d971f9d90d86f7a53f476c27e024">WDS_WrapperCheckThreadRunning</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">OSThread *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_w_d_s_wrapper_8h.html#d895ad01bd9860c7f42ec3f51945215a">WDS_WrapperGetOSThread</a> (void)</td></tr>
</table>
<hr><h2>マクロ定義</h2>
<a class="anchor" name="df62a1095c124ff7ed3f8bcc0cd0e79f"></a><!-- doxytag: member="WDSWrapper.h::WDSWRAPPER_SCANPERIOD" ref="df62a1095c124ff7ed3f8bcc0cd0e79f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define WDSWRAPPER_SCANPERIOD&nbsp;&nbsp;&nbsp;3000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパーがスキャンを継続する時間[msec]
<p>
</div>
</div><p>
<a class="anchor" name="3e27e22a709bb62c707b2c6ece34b79d"></a><!-- doxytag: member="WDSWrapper.h::WDSWRAPPER_STACKSIZE" ref="3e27e22a709bb62c707b2c6ece34b79d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define WDSWRAPPER_STACKSIZE&nbsp;&nbsp;&nbsp;4096 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパーが使用するスレッドスタックの推奨サイズ
<p>
</div>
</div><p>
<a class="anchor" name="79088e3207784ca6f790938a0da75140"></a><!-- doxytag: member="WDSWrapper.h::WDSWRAPPER_WAITPERIOD" ref="79088e3207784ca6f790938a0da75140" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define WDSWRAPPER_WAITPERIOD&nbsp;&nbsp;&nbsp;3000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパーがスキャンを中断する時間[msec]
<p>
</div>
</div><p>
<hr><h2>型定義</h2>
<a class="anchor" name="e92702d8529bfd419ac81648fd75092b"></a><!-- doxytag: member="WDSWrapper.h::WDSWrapperAlloc" ref="e92702d8529bfd419ac81648fd75092b" args=")(u32 size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void*( * <a class="el" href="_w_d_s_wrapper_8h.html#e92702d8529bfd419ac81648fd75092b">WDSWrapperAlloc</a>)(u32 size) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパー内部で使用するアロケーター型
<p>
</div>
</div><p>
<a class="anchor" name="8370c52f5fc54099274aea1188a1bb25"></a><!-- doxytag: member="WDSWrapper.h::WDSWrapperCallbackFunc" ref="8370c52f5fc54099274aea1188a1bb25" args=")(void *arg)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void( * <a class="el" href="_w_d_s_wrapper_8h.html#8370c52f5fc54099274aea1188a1bb25">WDSWrapperCallbackFunc</a>)(void *arg) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSWrapperライブラリが使用するコールバック関数型
<p>
<dl class="note" compact><dt><b>覚え書き:</b></dt><dd>・引数argは必ずWDSWrapperCallback型変数へのポインタ </dd></dl>
</div>
</div><p>
<a class="anchor" name="c372630f28c9599a6df9e686e5f0af38"></a><!-- doxytag: member="WDSWrapper.h::WDSWrapperFree" ref="c372630f28c9599a6df9e686e5f0af38" args=")(void *ptr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void( * <a class="el" href="_w_d_s_wrapper_8h.html#c372630f28c9599a6df9e686e5f0af38">WDSWrapperFree</a>)(void *ptr) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパー内部で使用するアロケーター型
<p>
</div>
</div><p>
<hr><h2>列挙型</h2>
<a class="anchor" name="7b75a8b054675640f391f3fc5bae97e1"></a><!-- doxytag: member="WDSWrapper.h::WDSWrapperCallback" ref="7b75a8b054675640f391f3fc5bae97e1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1">WDSWrapperCallback</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
コールバック発生要因をあらわす列挙型
<p>
<dl compact><dt><b>列挙型の値: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="7b75a8b054675640f391f3fc5bae97e11330cb7b6f29efd80d1de157f0220734"></a><!-- doxytag: member="WDSWRAPPER_CALLBACK_INITIALIZE" ref="7b75a8b054675640f391f3fc5bae97e11330cb7b6f29efd80d1de157f0220734" args="" -->WDSWRAPPER_CALLBACK_INITIALIZE</em>&nbsp;</td><td>
WDS_WrapperInitialize関数によるコールバック </td></tr>
<tr><td valign="top"><em><a class="anchor" name="7b75a8b054675640f391f3fc5bae97e1b319af0ab6104be1c2764c1589760243"></a><!-- doxytag: member="WDSWRAPPER_CALLBACK_CLEANUP" ref="7b75a8b054675640f391f3fc5bae97e1b319af0ab6104be1c2764c1589760243" args="" -->WDSWRAPPER_CALLBACK_CLEANUP</em>&nbsp;</td><td>
WDS_WrapperCleanup関数によるコールバック </td></tr>
<tr><td valign="top"><em><a class="anchor" name="7b75a8b054675640f391f3fc5bae97e1d6e797e7adb1af3f5a5cc1bb45aa0cec"></a><!-- doxytag: member="WDSWRAPPER_CALLBACK_STARTSCAN" ref="7b75a8b054675640f391f3fc5bae97e1d6e797e7adb1af3f5a5cc1bb45aa0cec" args="" -->WDSWRAPPER_CALLBACK_STARTSCAN</em>&nbsp;</td><td>
WDS_WrapperStartScan関数によるコールバック </td></tr>
<tr><td valign="top"><em><a class="anchor" name="7b75a8b054675640f391f3fc5bae97e1aa7e918e0bb4e333760c99ecd381949f"></a><!-- doxytag: member="WDSWRAPPER_CALLBACK_STARTSCAN2" ref="7b75a8b054675640f391f3fc5bae97e1aa7e918e0bb4e333760c99ecd381949f" args="" -->WDSWRAPPER_CALLBACK_STARTSCAN2</em>&nbsp;</td><td>
WDS_WrapperStartScan関数によるコールバック(間欠スキャン1回終了) </td></tr>
<tr><td valign="top"><em><a class="anchor" name="7b75a8b054675640f391f3fc5bae97e15b05dd0e64de0ee7f1c5da416516742b"></a><!-- doxytag: member="WDSWRAPPER_CALLBACK_STOPSCAN" ref="7b75a8b054675640f391f3fc5bae97e15b05dd0e64de0ee7f1c5da416516742b" args="" -->WDSWRAPPER_CALLBACK_STOPSCAN</em>&nbsp;</td><td>
WDS_WrapperStopScan関数によるコールバック </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="cff247df13a93adf1254463db4072265"></a><!-- doxytag: member="WDSWrapper.h::WDSWrapperErrCode" ref="cff247df13a93adf1254463db4072265" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
処理結果をあらわす列挙型
<p>
<dl compact><dt><b>列挙型の値: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="cff247df13a93adf1254463db4072265cafb2d50d5d157af646452b155bfc53b"></a><!-- doxytag: member="WDSWRAPPER_ERRCODE_SUCCESS" ref="cff247df13a93adf1254463db4072265cafb2d50d5d157af646452b155bfc53b" args="" -->WDSWRAPPER_ERRCODE_SUCCESS</em>&nbsp;</td><td>
処理成功 </td></tr>
<tr><td valign="top"><em><a class="anchor" name="cff247df13a93adf1254463db407226523f0087e3df9dbd5e69c2e2bdecdb976"></a><!-- doxytag: member="WDSWRAPPER_ERRCODE_FAILURE" ref="cff247df13a93adf1254463db407226523f0087e3df9dbd5e69c2e2bdecdb976" args="" -->WDSWRAPPER_ERRCODE_FAILURE</em>&nbsp;</td><td>
処理失敗 </td></tr>
<tr><td valign="top"><em><a class="anchor" name="cff247df13a93adf1254463db40722654b4eed4bfee309504bc05cc15324f5ed"></a><!-- doxytag: member="WDSWRAPPER_ERRCODE_OPERATING" ref="cff247df13a93adf1254463db40722654b4eed4bfee309504bc05cc15324f5ed" args="" -->WDSWRAPPER_ERRCODE_OPERATING</em>&nbsp;</td><td>
処理実行中 </td></tr>
<tr><td valign="top"><em><a class="anchor" name="cff247df13a93adf1254463db4072265b2058b441ae4131ed4dd869ee9c82278"></a><!-- doxytag: member="WDSWRAPPER_ERRCODE_INITIALIZED" ref="cff247df13a93adf1254463db4072265b2058b441ae4131ed4dd869ee9c82278" args="" -->WDSWRAPPER_ERRCODE_INITIALIZED</em>&nbsp;</td><td>
WDSラッパーライブラリ初期化済み </td></tr>
<tr><td valign="top"><em><a class="anchor" name="cff247df13a93adf1254463db4072265a280d087d837e10b13fdf61721cfe069"></a><!-- doxytag: member="WDSWRAPPER_ERRCODE_UNINITIALIZED" ref="cff247df13a93adf1254463db4072265a280d087d837e10b13fdf61721cfe069" args="" -->WDSWRAPPER_ERRCODE_UNINITIALIZED</em>&nbsp;</td><td>
WDSラッパーライブラリ未初期化 </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="0c6effbec49c715127e2b674ec3a59ff"></a><!-- doxytag: member="WDSWrapper.h::WDSWrapperStateThreadState" ref="0c6effbec49c715127e2b674ec3a59ff" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff">WDSWrapperStateThreadState</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパーののステートをあらわす列挙型
<p>
<dl compact><dt><b>列挙型の値: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="0c6effbec49c715127e2b674ec3a59ff6c5db32e5290de400c98869d8d1810b0"></a><!-- doxytag: member="WDSWRAPPER_STATE_BEFOREINIT" ref="0c6effbec49c715127e2b674ec3a59ff6c5db32e5290de400c98869d8d1810b0" args="" -->WDSWRAPPER_STATE_BEFOREINIT</em>&nbsp;</td><td>
初期化開始待ちステート </td></tr>
<tr><td valign="top"><em><a class="anchor" name="0c6effbec49c715127e2b674ec3a59ff191097930ee9d65ffde55f193aec3144"></a><!-- doxytag: member="WDSWRAPPER_STATE_INIT" ref="0c6effbec49c715127e2b674ec3a59ff191097930ee9d65ffde55f193aec3144" args="" -->WDSWRAPPER_STATE_INIT</em>&nbsp;</td><td>
初期化開始ステート </td></tr>
<tr><td valign="top"><em><a class="anchor" name="0c6effbec49c715127e2b674ec3a59ff9b7dff8f14ad19b9a8cbb6b786595156"></a><!-- doxytag: member="WDSWRAPPER_STATE_WAITINIT" ref="0c6effbec49c715127e2b674ec3a59ff9b7dff8f14ad19b9a8cbb6b786595156" args="" -->WDSWRAPPER_STATE_WAITINIT</em>&nbsp;</td><td>
初期化完了待ちステート </td></tr>
<tr><td valign="top"><em><a class="anchor" name="0c6effbec49c715127e2b674ec3a59ffdc49f57db5381117ede507b616b01d2e"></a><!-- doxytag: member="WDSWRAPPER_STATE_SCAN" ref="0c6effbec49c715127e2b674ec3a59ffdc49f57db5381117ede507b616b01d2e" args="" -->WDSWRAPPER_STATE_SCAN</em>&nbsp;</td><td>
スキャン開始ステート </td></tr>
<tr><td valign="top"><em><a class="anchor" name="0c6effbec49c715127e2b674ec3a59ffd9635041daca249d0b9172843d4bc5f0"></a><!-- doxytag: member="WDSWRAPPER_STATE_WAITSCAN" ref="0c6effbec49c715127e2b674ec3a59ffd9635041daca249d0b9172843d4bc5f0" args="" -->WDSWRAPPER_STATE_WAITSCAN</em>&nbsp;</td><td>
スキャン完了待ちステート </td></tr>
<tr><td valign="top"><em><a class="anchor" name="0c6effbec49c715127e2b674ec3a59ff085dd5cb0b71f26ccbd9937c2d0e89af"></a><!-- doxytag: member="WDSWRAPPER_STATE_ENDSCAN" ref="0c6effbec49c715127e2b674ec3a59ff085dd5cb0b71f26ccbd9937c2d0e89af" args="" -->WDSWRAPPER_STATE_ENDSCAN</em>&nbsp;</td><td>
スキャン中断ステート </td></tr>
<tr><td valign="top"><em><a class="anchor" name="0c6effbec49c715127e2b674ec3a59ff3e512f87d29a0be102644fb68eea8032"></a><!-- doxytag: member="WDSWRAPPER_STATE_WAITENDSCAN" ref="0c6effbec49c715127e2b674ec3a59ff3e512f87d29a0be102644fb68eea8032" args="" -->WDSWRAPPER_STATE_WAITENDSCAN</em>&nbsp;</td><td>
スキャン中断完了待ちステート </td></tr>
<tr><td valign="top"><em><a class="anchor" name="0c6effbec49c715127e2b674ec3a59ff40660c50ad0ae098eb6561ee3952aa65"></a><!-- doxytag: member="WDSWRAPPER_STATE_END" ref="0c6effbec49c715127e2b674ec3a59ff40660c50ad0ae098eb6561ee3952aa65" args="" -->WDSWRAPPER_STATE_END</em>&nbsp;</td><td>
WDS解放開始ステート </td></tr>
<tr><td valign="top"><em><a class="anchor" name="0c6effbec49c715127e2b674ec3a59ff3a37f0d4fe2c983f0ddea50f6bced4fa"></a><!-- doxytag: member="WDSWRAPPER_STATE_WAITEND" ref="0c6effbec49c715127e2b674ec3a59ff3a37f0d4fe2c983f0ddea50f6bced4fa" args="" -->WDSWRAPPER_STATE_WAITEND</em>&nbsp;</td><td>
WDS解放完了待ちステート </td></tr>
<tr><td valign="top"><em><a class="anchor" name="0c6effbec49c715127e2b674ec3a59ff537798a3cb5bd0cdb1edd711b281d21e"></a><!-- doxytag: member="WDSWRAPPER_STATE_IDLE" ref="0c6effbec49c715127e2b674ec3a59ff537798a3cb5bd0cdb1edd711b281d21e" args="" -->WDSWRAPPER_STATE_IDLE</em>&nbsp;</td><td>
アイドルステート </td></tr>
<tr><td valign="top"><em><a class="anchor" name="0c6effbec49c715127e2b674ec3a59ff66241b922402b4f4f046fe91bc495c81"></a><!-- doxytag: member="WDSWRAPPER_STATE_TERMINATE" ref="0c6effbec49c715127e2b674ec3a59ff66241b922402b4f4f046fe91bc495c81" args="" -->WDSWRAPPER_STATE_TERMINATE</em>&nbsp;</td><td>
WDSラッパー解放ステート </td></tr>
</table>
</dl>
</div>
</div><p>
<hr><h2>関数</h2>
<a class="anchor" name="5201d971f9d90d86f7a53f476c27e024"></a><!-- doxytag: member="WDSWrapper.h::WDS_WrapperCheckThreadRunning" ref="5201d971f9d90d86f7a53f476c27e024" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> WDS_WrapperCheckThreadRunning </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSコントロールスレッドが実行中か確認します <dl compact><dt><b>引数:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>なし</em>&nbsp;</td><td></td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>戻り値:</b></dt><dd>WDSWRAPPER_ERRCODE_SUCCESS: WDSコントロールスレッドが実行中 <p>
WDSWRAPPER_ERRCODE_FAILURE: WDSコントロールスレッドは停止している <p>
WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない </dd></dl>
</div>
</div><p>
<a class="anchor" name="ef5809caa40c38d3ddd8384cb4fd7270"></a><!-- doxytag: member="WDSWrapper.h::WDS_WrapperCheckValidBeacon" ref="ef5809caa40c38d3ddd8384cb4fd7270" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> WDS_WrapperCheckValidBeacon </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
直前に完了した間欠受信で有効な親機ビーコンを受け取ったか確認します <dl compact><dt><b>引数:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>なし</em>&nbsp;</td><td></td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>戻り値:</b></dt><dd>WDSWRAPPER_ERRCODE_SUCCESS: 直前に完了した間欠受信で有効な親機ビーコンを受け取った <p>
WDSWRAPPER_ERRCODE_FAILURE: 直前に完了した間欠受信で有効な親機ビーコンを受け取っていない <p>
WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない </dd></dl>
</div>
</div><p>
<a class="anchor" name="3cad55852f36b4adb400debbfcade0c2"></a><!-- doxytag: member="WDSWrapper.h::WDS_WrapperCleanup" ref="3cad55852f36b4adb400debbfcade0c2" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> WDS_WrapperCleanup </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSコントロールスレッドを停止し、WDSラッパーライブラリを解放します。<br>
解放処理完了の直前にコールバックが発生します。<br>
コールバック関数にエラーが通知されることはありません。 <dl compact><dt><b>引数:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>なし</em>&nbsp;</td><td></td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>戻り値:</b></dt><dd>WDSWRAPPER_ERRCODE_SUCCESS WDSラッパー解放を開始 <p>
WDSWRAPPER_ERRCODE_OPERATING WDSラッパー解放を実行中 <p>
WDSWRAPPER_ERRCODE_UNINITIALIZED WDSラッパーライブラリが初期化されていない </dd></dl>
</div>
</div><p>
<a class="anchor" name="d895ad01bd9860c7f42ec3f51945215a"></a><!-- doxytag: member="WDSWrapper.h::WDS_WrapperGetOSThread" ref="d895ad01bd9860c7f42ec3f51945215a" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">OSThread* WDS_WrapperGetOSThread </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSコントロールスレッドが使用しているOSThreadへのポインタを得ます <dl compact><dt><b>引数:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>なし</em>&nbsp;</td><td></td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>戻り値:</b></dt><dd>NULL: WDSラッパーライブラリが初期化されていない <p>
NULL以外: 実行中・あるいは停止中のOSThreadへのポインタ </dd></dl>
</div>
</div><p>
<a class="anchor" name="c80ac8cfc892206f1a9585531a0ea599"></a><!-- doxytag: member="WDSWrapper.h::WDS_WrapperInitialize" ref="c80ac8cfc892206f1a9585531a0ea599" args="(WDSWrapperInitializeParam param)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> WDS_WrapperInitialize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_w_d_s_wrapper_initialize_param.html">WDSWrapperInitializeParam</a>&nbsp;</td>
<td class="paramname"> <em>param</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパーライブラリ初期化の非同期処理を開始します。<br>
初期化処理完了時にコールバックが発生します。<br>
コールバック関数でエラー通知を受け取った場合は、ライブラリが自動的に解放されるのを待ってください。 <dl compact><dt><b>引数:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>param</em>&nbsp;</td><td>WDSラッパー初期化パラメータ </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>戻り値:</b></dt><dd>WDSWRAPPER_ERRCODE_SUCCESS: 初期化処理を開始 <p>
WDSWRAPPER_ERRCODE_INITIALIZED: WDSラッパーライブラリは初期化済み <p>
WDSWRAPPER_ERRCODE_FAILURE: 初期化に失敗 </dd></dl>
<dl class="note" compact><dt><b>覚え書き:</b></dt><dd>・WDSコントロールスレッドは生成直後から間欠スキャンを実行しています </dd></dl>
</div>
</div><p>
<a class="anchor" name="974b5c59d51eae0ff3bd43a351d5b25b"></a><!-- doxytag: member="WDSWrapper.h::WDS_WrapperSetArgumentParam" ref="974b5c59d51eae0ff3bd43a351d5b25b" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> WDS_WrapperSetArgumentParam </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
直前に完了した間欠受信で受け取ったビーコン情報をArgument領域にセットします <dl compact><dt><b>引数:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>なし</em>&nbsp;</td><td></td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>戻り値:</b></dt><dd>WDSWRAPPER_ERRCODE_SUCCESS: 親機ビーコン情報がArgument領域にセットされた <p>
WDSWRAPPER_ERRCODE_FAILURE: 親機ビーコン情報をArgument領域にセットできなかった <p>
WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない </dd></dl>
</div>
</div><p>
<a class="anchor" name="a2de2e309d323d9f8f0cf439cbd9f59b"></a><!-- doxytag: member="WDSWrapper.h::WDS_WrapperStartScan" ref="a2de2e309d323d9f8f0cf439cbd9f59b" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> WDS_WrapperStartScan </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSコントロールスレッドのステートを間欠受信状態に変更します。<br>
ステートの変更に成功すると、以後一回の間欠受信が完了するたびにコールバックが呼び出されます。<br>
コールバック関数でエラー通知を受け取った場合は、ライブラリが自動的に解放されるのを待ってください。 <dl class="return" compact><dt><b>戻り値:</b></dt><dd>WDSWRAPPER_ERRCODE_SUCCESS: ステート変更に成功(コールバック発生を待ってください) <p>
WDSWRAPPER_ERRCODE_FAILURE: 間欠受信に移行できるステートでない(現在のステートが維持されます) <p>
WDSWRAPPER_ERRCIDE_OPERATING: すでにステートが間欠受信状態 <p>
WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない </dd></dl>
</div>
</div><p>
<a class="anchor" name="dddf9ad0118cd79040f8cd77ad3f47ab"></a><!-- doxytag: member="WDSWrapper.h::WDS_WrapperStopScan" ref="dddf9ad0118cd79040f8cd77ad3f47ab" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> WDS_WrapperStopScan </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSコントロールスレッドのステートを間欠受信停止状態に設定します。<br>
間欠受信が実際に停止した際にコールバックが呼び出されます。<br>
コールバックでエラーが通知されることはありません。 <dl class="return" compact><dt><b>戻り値:</b></dt><dd>WDSWRAPPER_ERRCODE_SUCCESS: ステート変更に成功 <p>
WDSWRAPPER_ERRCIDE_OPERATING: すでにステートが間欠受信停止状態 <p>
WDSWRAPPER_ERRCODE_UNINITIALIZED: WDSラッパーライブラリが初期化されていない </dd></dl>
<dl class="note" compact><dt><b>覚え書き:</b></dt><dd>ステート変更が行われてから間欠受信が停止するまでには20ms程度の時間がかかります </dd></dl>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,35 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: データ構造</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li class="current"><a href="classes.html"><span>データ構造</span></a></li>
<li><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>アルファベット順一覧</span></a></li>
<li class="current"><a href="annotated.html"><span>データ構造</span></a></li>
<li><a href="functions.html"><span>データフィールド</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>データ構造</h1>データ構造の説明です。<table>
<tr><td class="indexkey"><a class="el" href="struct_w_d_s_wrapper_callback_param.html">WDSWrapperCallbackParam</a></td><td class="indexvalue">WDSラッパーが呼び出すコールバック関数に与えられる引数用の構造体 </td></tr>
<tr><td class="indexkey"><a class="el" href="struct_w_d_s_wrapper_initialize_param.html">WDSWrapperInitializeParam</a></td><td class="indexvalue">WDS_WrapperInitialize関数に与える初期化パラメータ </td></tr>
<tr><td class="indexkey"><a class="el" href="struct_w_d_s_wrapper_work.html">WDSWrapperWork</a></td><td class="indexvalue">WDSラッパーのワーク領域 </td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,34 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: アルファベット順一覧</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li class="current"><a href="classes.html"><span>データ構造</span></a></li>
<li><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="classes.html"><span>アルファベット順一覧</span></a></li>
<li><a href="annotated.html"><span>データ構造</span></a></li>
<li><a href="functions.html"><span>データフィールド</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>データ構造索引</h1><p><div class="qindex"><a class="qindex" href="#letter_W">W</a></div><p>
<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
<tr><td><a name="letter_W"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;W&nbsp;&nbsp;</div></td></tr></table>
</td><td><a class="el" href="struct_w_d_s_wrapper_callback_param.html">WDSWrapperCallbackParam</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="struct_w_d_s_wrapper_initialize_param.html">WDSWrapperInitializeParam</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="struct_w_d_s_wrapper_work.html">WDSWrapperWork</a>&nbsp;&nbsp;&nbsp;</td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_W">W</a></div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,473 @@
BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
font-family: Geneva, Arial, Helvetica, sans-serif;
}
BODY,TD {
font-size: 90%;
}
H1 {
text-align: center;
font-size: 160%;
}
H2 {
font-size: 120%;
}
H3 {
font-size: 100%;
}
CAPTION {
font-weight: bold
}
DIV.qindex {
width: 100%;
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.navpath {
width: 100%;
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.navtab {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
TD.navtab {
font-size: 70%;
}
A.qindex {
text-decoration: none;
font-weight: bold;
color: #1A419D;
}
A.qindex:visited {
text-decoration: none;
font-weight: bold;
color: #1A419D
}
A.qindex:hover {
text-decoration: none;
background-color: #ddddff;
}
A.qindexHL {
text-decoration: none;
font-weight: bold;
background-color: #6666cc;
color: #ffffff;
border: 1px double #9295C2;
}
A.qindexHL:hover {
text-decoration: none;
background-color: #6666cc;
color: #ffffff;
}
A.qindexHL:visited {
text-decoration: none;
background-color: #6666cc;
color: #ffffff
}
A.el {
text-decoration: none;
font-weight: bold
}
A.elRef {
font-weight: bold
}
A.code:link {
text-decoration: none;
font-weight: normal;
color: #0000FF
}
A.code:visited {
text-decoration: none;
font-weight: normal;
color: #0000FF
}
A.codeRef:link {
font-weight: normal;
color: #0000FF
}
A.codeRef:visited {
font-weight: normal;
color: #0000FF
}
A:hover {
text-decoration: none;
background-color: #f2f2ff
}
DL.el {
margin-left: -1cm
}
.fragment {
font-family: monospace, fixed;
font-size: 95%;
}
PRE.fragment {
border: 1px solid #CCCCCC;
background-color: #f5f5f5;
margin-top: 4px;
margin-bottom: 4px;
margin-left: 2px;
margin-right: 8px;
padding-left: 6px;
padding-right: 6px;
padding-top: 4px;
padding-bottom: 4px;
}
DIV.ah {
background-color: black;
font-weight: bold;
color: #ffffff;
margin-bottom: 3px;
margin-top: 3px
}
DIV.groupHeader {
margin-left: 16px;
margin-top: 12px;
margin-bottom: 6px;
font-weight: bold;
}
DIV.groupText {
margin-left: 16px;
font-style: italic;
font-size: 90%
}
BODY {
background: white;
color: black;
margin-right: 20px;
margin-left: 20px;
}
TD.indexkey {
background-color: #e8eef2;
font-weight: bold;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px;
border: 1px solid #CCCCCC;
}
TD.indexvalue {
background-color: #e8eef2;
font-style: italic;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px;
border: 1px solid #CCCCCC;
}
TR.memlist {
background-color: #f0f0f0;
}
P.formulaDsp {
text-align: center;
}
IMG.formulaDsp {
}
IMG.formulaInl {
vertical-align: middle;
}
SPAN.keyword { color: #008000 }
SPAN.keywordtype { color: #604020 }
SPAN.keywordflow { color: #e08000 }
SPAN.comment { color: #800000 }
SPAN.preprocessor { color: #806020 }
SPAN.stringliteral { color: #002080 }
SPAN.charliteral { color: #008080 }
SPAN.vhdldigit { color: #ff00ff }
SPAN.vhdlchar { color: #000000 }
SPAN.vhdlkeyword { color: #700070 }
SPAN.vhdllogic { color: #ff0000 }
.mdescLeft {
padding: 0px 8px 4px 8px;
font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.mdescRight {
padding: 0px 8px 4px 8px;
font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.memItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplParams {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
color: #606060;
background-color: #FAFAFA;
font-size: 80%;
}
.search {
color: #003399;
font-weight: bold;
}
FORM.search {
margin-bottom: 0px;
margin-top: 0px;
}
INPUT.search {
font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #e8eef2;
}
TD.tiny {
font-size: 75%;
}
a {
color: #1A41A8;
}
a:visited {
color: #2A3798;
}
.dirtab {
padding: 4px;
border-collapse: collapse;
border: 1px solid #84b0c7;
}
TH.dirtab {
background: #e8eef2;
font-weight: bold;
}
HR {
height: 1px;
border: none;
border-top: 1px solid black;
}
/* Style for detailed member documentation */
.memtemplate {
font-size: 80%;
color: #606060;
font-weight: normal;
margin-left: 3px;
}
.memnav {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
.memitem {
padding: 4px;
background-color: #eef3f5;
border-width: 1px;
border-style: solid;
border-color: #dedeee;
-moz-border-radius: 8px 8px 8px 8px;
}
.memname {
white-space: nowrap;
font-weight: bold;
}
.memdoc{
padding-left: 10px;
}
.memproto {
background-color: #d5e1e8;
width: 100%;
border-width: 1px;
border-style: solid;
border-color: #84b0c7;
font-weight: bold;
-moz-border-radius: 8px 8px 8px 8px;
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
font-style: italic;
white-space: nowrap;
}
/* End Styling for detailed member documentation */
/* for the tree view */
.ftvtree {
font-family: sans-serif;
margin:0.5em;
}
/* these are for tree view when used as main index */
.directory {
font-size: 9pt;
font-weight: bold;
}
.directory h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
/* The following two styles can be used to replace the root node title */
/* with an image of your choice. Simply uncomment the next two styles, */
/* specify the name of your image and be sure to set 'height' to the */
/* proper pixel height of your image. */
/* .directory h3.swap { */
/* height: 61px; */
/* background-repeat: no-repeat; */
/* background-image: url("yourimage.gif"); */
/* } */
/* .directory h3.swap span { */
/* display: none; */
/* } */
.directory > h3 {
margin-top: 0;
}
.directory p {
margin: 0px;
white-space: nowrap;
}
.directory div {
display: none;
margin: 0px;
}
.directory img {
vertical-align: -30%;
}
/* these are for tree view when not used as main index */
.directory-alt {
font-size: 100%;
font-weight: bold;
}
.directory-alt h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
.directory-alt > h3 {
margin-top: 0;
}
.directory-alt p {
margin: 0px;
white-space: nowrap;
}
.directory-alt div {
display: none;
margin: 0px;
}
.directory-alt img {
vertical-align: -30%;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,33 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: ファイル索引</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li><a href="classes.html"><span>データ構造</span></a></li>
<li class="current"><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="files.html"><span>ファイル一覧</span></a></li>
<li><a href="globals.html"><span>グローバル</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>ファイル一覧</h1>これはファイル一覧です。<table>
<tr><td class="indexkey">include/<a class="el" href="_w_d_s_wrapper_8h.html">WDSWrapper.h</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey">src/<a class="el" href="_w_d_s_wrapper_8c.html">WDSWrapper.c</a></td><td class="indexvalue">WDSライブラリのラッパー </td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,79 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: データフィールド</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li class="current"><a href="classes.html"><span>データ構造</span></a></li>
<li><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>アルファベット順一覧</span></a></li>
<li><a href="annotated.html"><span>データ構造</span></a></li>
<li class="current"><a href="functions.html"><span>データフィールド</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="functions.html"><span>全て</span></a></li>
<li><a href="functions_vars.html"><span>変数</span></a></li>
</ul>
</div>
</div>
<div class="contents">
これはフィールドの一覧でそれぞれが属している構造体/共用体の説明へリンクしています。
<p>
<ul>
<li>alloc
: <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#7a691116f65a5e760c331b8d1f3f0feb">WDSWrapperInitializeParam</a>
<li>briefapinfo
: <a class="el" href="struct_w_d_s_wrapper_work.html#b92133b90ad29774b93ad0b7afccd0cb">WDSWrapperWork</a>
<li>briefapinfonum
: <a class="el" href="struct_w_d_s_wrapper_work.html#1ec39285aee8e7b55ef4d2b261f837dc">WDSWrapperWork</a>
<li>callback
: <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#c2f0a08327bbba12e43f785a19d78176">WDSWrapperInitializeParam</a>
, <a class="el" href="struct_w_d_s_wrapper_callback_param.html#1b13b0035e008efd18b463f68e899ec9">WDSWrapperCallbackParam</a>
<li>deliverinfo
: <a class="el" href="struct_w_d_s_wrapper_work.html#1c0a7bef19fdb61fffd9f131643db80c">WDSWrapperWork</a>
<li>dmano
: <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#691676246dbcd0a9d453bfebb5c63816">WDSWrapperInitializeParam</a>
<li>errcode
: <a class="el" href="struct_w_d_s_wrapper_callback_param.html#85a0337397575aacb2a1e6f9cdbdc208">WDSWrapperCallbackParam</a>
<li>free
: <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#5059f194f2bbd35d64ebe3f548d4fd98">WDSWrapperInitializeParam</a>
<li>idle
: <a class="el" href="struct_w_d_s_wrapper_work.html#f28139846ae4022186db2e234457fdb7">WDSWrapperWork</a>
<li>initparam
: <a class="el" href="struct_w_d_s_wrapper_work.html#e364e4c0e0ed9daac52a7bf6cd5df7f1">WDSWrapperWork</a>
<li>mutex
: <a class="el" href="struct_w_d_s_wrapper_work.html#4684ed4a9191d29d6cd767d8f2149eeb">WDSWrapperWork</a>
<li>restart
: <a class="el" href="struct_w_d_s_wrapper_work.html#653600ec89df9559f389ebb75d55059e">WDSWrapperWork</a>
<li>stack
: <a class="el" href="struct_w_d_s_wrapper_work.html#f603448f800cc265033a8f266b19d007">WDSWrapperWork</a>
<li>state
: <a class="el" href="struct_w_d_s_wrapper_work.html#9183b22882d235fe4a93560d01b329d3">WDSWrapperWork</a>
<li>terminate
: <a class="el" href="struct_w_d_s_wrapper_work.html#a189068c3feaba234fd0b68602b6d114">WDSWrapperWork</a>
<li>thread
: <a class="el" href="struct_w_d_s_wrapper_work.html#e70b0ba1a9b9c0ccc84865cd7efa827d">WDSWrapperWork</a>
<li>threadprio
: <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#290513b8f9d6c3a5652e1062dccdef6d">WDSWrapperInitializeParam</a>
<li>tickstart
: <a class="el" href="struct_w_d_s_wrapper_work.html#cc87184cd990d861f1ff9565e5c3eaa4">WDSWrapperWork</a>
<li>wdswork
: <a class="el" href="struct_w_d_s_wrapper_work.html#8f2f0f56b345fd070bf3bcacab9ae53e">WDSWrapperWork</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,79 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: データフィールド - 変数</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li class="current"><a href="classes.html"><span>データ構造</span></a></li>
<li><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>アルファベット順一覧</span></a></li>
<li><a href="annotated.html"><span>データ構造</span></a></li>
<li class="current"><a href="functions.html"><span>データフィールド</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="functions.html"><span>全て</span></a></li>
<li class="current"><a href="functions_vars.html"><span>変数</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<ul>
<li>alloc
: <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#7a691116f65a5e760c331b8d1f3f0feb">WDSWrapperInitializeParam</a>
<li>briefapinfo
: <a class="el" href="struct_w_d_s_wrapper_work.html#b92133b90ad29774b93ad0b7afccd0cb">WDSWrapperWork</a>
<li>briefapinfonum
: <a class="el" href="struct_w_d_s_wrapper_work.html#1ec39285aee8e7b55ef4d2b261f837dc">WDSWrapperWork</a>
<li>callback
: <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#c2f0a08327bbba12e43f785a19d78176">WDSWrapperInitializeParam</a>
, <a class="el" href="struct_w_d_s_wrapper_callback_param.html#1b13b0035e008efd18b463f68e899ec9">WDSWrapperCallbackParam</a>
<li>deliverinfo
: <a class="el" href="struct_w_d_s_wrapper_work.html#1c0a7bef19fdb61fffd9f131643db80c">WDSWrapperWork</a>
<li>dmano
: <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#691676246dbcd0a9d453bfebb5c63816">WDSWrapperInitializeParam</a>
<li>errcode
: <a class="el" href="struct_w_d_s_wrapper_callback_param.html#85a0337397575aacb2a1e6f9cdbdc208">WDSWrapperCallbackParam</a>
<li>free
: <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#5059f194f2bbd35d64ebe3f548d4fd98">WDSWrapperInitializeParam</a>
<li>idle
: <a class="el" href="struct_w_d_s_wrapper_work.html#f28139846ae4022186db2e234457fdb7">WDSWrapperWork</a>
<li>initparam
: <a class="el" href="struct_w_d_s_wrapper_work.html#e364e4c0e0ed9daac52a7bf6cd5df7f1">WDSWrapperWork</a>
<li>mutex
: <a class="el" href="struct_w_d_s_wrapper_work.html#4684ed4a9191d29d6cd767d8f2149eeb">WDSWrapperWork</a>
<li>restart
: <a class="el" href="struct_w_d_s_wrapper_work.html#653600ec89df9559f389ebb75d55059e">WDSWrapperWork</a>
<li>stack
: <a class="el" href="struct_w_d_s_wrapper_work.html#f603448f800cc265033a8f266b19d007">WDSWrapperWork</a>
<li>state
: <a class="el" href="struct_w_d_s_wrapper_work.html#9183b22882d235fe4a93560d01b329d3">WDSWrapperWork</a>
<li>terminate
: <a class="el" href="struct_w_d_s_wrapper_work.html#a189068c3feaba234fd0b68602b6d114">WDSWrapperWork</a>
<li>thread
: <a class="el" href="struct_w_d_s_wrapper_work.html#e70b0ba1a9b9c0ccc84865cd7efa827d">WDSWrapperWork</a>
<li>threadprio
: <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#290513b8f9d6c3a5652e1062dccdef6d">WDSWrapperInitializeParam</a>
<li>tickstart
: <a class="el" href="struct_w_d_s_wrapper_work.html#cc87184cd990d861f1ff9565e5c3eaa4">WDSWrapperWork</a>
<li>wdswork
: <a class="el" href="struct_w_d_s_wrapper_work.html#8f2f0f56b345fd070bf3bcacab9ae53e">WDSWrapperWork</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,132 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: データフィールド</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li><a href="classes.html"><span>データ構造</span></a></li>
<li class="current"><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>ファイル一覧</span></a></li>
<li class="current"><a href="globals.html"><span>グローバル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="globals.html"><span>全て</span></a></li>
<li><a href="globals_func.html"><span>関数</span></a></li>
<li><a href="globals_type.html"><span>型定義</span></a></li>
<li><a href="globals_enum.html"><span>列挙型</span></a></li>
<li><a href="globals_eval.html"><span>列挙型の値</span></a></li>
<li><a href="globals_defs.html"><span>マクロ定義</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
</div>
<div class="contents">
これは関数、変数、マクロ、Enum、Typedef の一覧です。それぞれが属しているファイルの説明へリンクしています。
<p>
<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
<li>WDS_WrapperCheckThreadRunning()
: <a class="el" href="_w_d_s_wrapper_8c.html#5201d971f9d90d86f7a53f476c27e024">WDSWrapper.c</a>
, <a class="el" href="_w_d_s_wrapper_8h.html#5201d971f9d90d86f7a53f476c27e024">WDSWrapper.h</a>
<li>WDS_WrapperCheckValidBeacon()
: <a class="el" href="_w_d_s_wrapper_8h.html#ef5809caa40c38d3ddd8384cb4fd7270">WDSWrapper.h</a>
, <a class="el" href="_w_d_s_wrapper_8c.html#ef5809caa40c38d3ddd8384cb4fd7270">WDSWrapper.c</a>
<li>WDS_WrapperCleanup()
: <a class="el" href="_w_d_s_wrapper_8c.html#3cad55852f36b4adb400debbfcade0c2">WDSWrapper.c</a>
, <a class="el" href="_w_d_s_wrapper_8h.html#3cad55852f36b4adb400debbfcade0c2">WDSWrapper.h</a>
<li>WDS_WrapperGetOSThread()
: <a class="el" href="_w_d_s_wrapper_8h.html#d895ad01bd9860c7f42ec3f51945215a">WDSWrapper.h</a>
, <a class="el" href="_w_d_s_wrapper_8c.html#d895ad01bd9860c7f42ec3f51945215a">WDSWrapper.c</a>
<li>WDS_WrapperInitialize()
: <a class="el" href="_w_d_s_wrapper_8c.html#c80ac8cfc892206f1a9585531a0ea599">WDSWrapper.c</a>
, <a class="el" href="_w_d_s_wrapper_8h.html#c80ac8cfc892206f1a9585531a0ea599">WDSWrapper.h</a>
<li>WDS_WrapperSetArgumentParam()
: <a class="el" href="_w_d_s_wrapper_8c.html#974b5c59d51eae0ff3bd43a351d5b25b">WDSWrapper.c</a>
, <a class="el" href="_w_d_s_wrapper_8h.html#974b5c59d51eae0ff3bd43a351d5b25b">WDSWrapper.h</a>
<li>WDS_WrapperStartScan()
: <a class="el" href="_w_d_s_wrapper_8c.html#a2de2e309d323d9f8f0cf439cbd9f59b">WDSWrapper.c</a>
, <a class="el" href="_w_d_s_wrapper_8h.html#a2de2e309d323d9f8f0cf439cbd9f59b">WDSWrapper.h</a>
<li>WDS_WrapperStopScan()
: <a class="el" href="_w_d_s_wrapper_8h.html#dddf9ad0118cd79040f8cd77ad3f47ab">WDSWrapper.h</a>
, <a class="el" href="_w_d_s_wrapper_8c.html#dddf9ad0118cd79040f8cd77ad3f47ab">WDSWrapper.c</a>
<li>WDSWRAPPER_CALLBACK_CLEANUP
: <a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1b319af0ab6104be1c2764c1589760243">WDSWrapper.h</a>
<li>WDSWRAPPER_CALLBACK_INITIALIZE
: <a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e11330cb7b6f29efd80d1de157f0220734">WDSWrapper.h</a>
<li>WDSWRAPPER_CALLBACK_STARTSCAN
: <a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1d6e797e7adb1af3f5a5cc1bb45aa0cec">WDSWrapper.h</a>
<li>WDSWRAPPER_CALLBACK_STARTSCAN2
: <a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1aa7e918e0bb4e333760c99ecd381949f">WDSWrapper.h</a>
<li>WDSWRAPPER_CALLBACK_STOPSCAN
: <a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e15b05dd0e64de0ee7f1c5da416516742b">WDSWrapper.h</a>
<li>WDSWRAPPER_ERRCODE_FAILURE
: <a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db407226523f0087e3df9dbd5e69c2e2bdecdb976">WDSWrapper.h</a>
<li>WDSWRAPPER_ERRCODE_INITIALIZED
: <a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265b2058b441ae4131ed4dd869ee9c82278">WDSWrapper.h</a>
<li>WDSWRAPPER_ERRCODE_OPERATING
: <a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db40722654b4eed4bfee309504bc05cc15324f5ed">WDSWrapper.h</a>
<li>WDSWRAPPER_ERRCODE_SUCCESS
: <a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265cafb2d50d5d157af646452b155bfc53b">WDSWrapper.h</a>
<li>WDSWRAPPER_ERRCODE_UNINITIALIZED
: <a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265a280d087d837e10b13fdf61721cfe069">WDSWrapper.h</a>
<li>WDSWRAPPER_SCANPERIOD
: <a class="el" href="_w_d_s_wrapper_8h.html#df62a1095c124ff7ed3f8bcc0cd0e79f">WDSWrapper.h</a>
<li>WDSWRAPPER_STACKSIZE
: <a class="el" href="_w_d_s_wrapper_8h.html#3e27e22a709bb62c707b2c6ece34b79d">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_BEFOREINIT
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff6c5db32e5290de400c98869d8d1810b0">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_END
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff40660c50ad0ae098eb6561ee3952aa65">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_ENDSCAN
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff085dd5cb0b71f26ccbd9937c2d0e89af">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_IDLE
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff537798a3cb5bd0cdb1edd711b281d21e">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_INIT
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff191097930ee9d65ffde55f193aec3144">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_SCAN
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ffdc49f57db5381117ede507b616b01d2e">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_TERMINATE
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff66241b922402b4f4f046fe91bc495c81">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_WAITEND
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff3a37f0d4fe2c983f0ddea50f6bced4fa">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_WAITENDSCAN
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff3e512f87d29a0be102644fb68eea8032">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_WAITINIT
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff9b7dff8f14ad19b9a8cbb6b786595156">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_WAITSCAN
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ffd9635041daca249d0b9172843d4bc5f0">WDSWrapper.h</a>
<li>WDSWRAPPER_WAITPERIOD
: <a class="el" href="_w_d_s_wrapper_8h.html#79088e3207784ca6f790938a0da75140">WDSWrapper.h</a>
<li>WDSWrapperAlloc
: <a class="el" href="_w_d_s_wrapper_8h.html#e92702d8529bfd419ac81648fd75092b">WDSWrapper.h</a>
<li>WDSWrapperCallback
: <a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1">WDSWrapper.h</a>
<li>WDSWrapperCallbackFunc
: <a class="el" href="_w_d_s_wrapper_8h.html#8370c52f5fc54099274aea1188a1bb25">WDSWrapper.h</a>
<li>WDSWrapperErrCode
: <a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapper.h</a>
<li>WDSWrapperFree
: <a class="el" href="_w_d_s_wrapper_8h.html#c372630f28c9599a6df9e686e5f0af38">WDSWrapper.h</a>
<li>WDSWrapperStateThreadState
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff">WDSWrapper.h</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,49 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: データフィールド</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li><a href="classes.html"><span>データ構造</span></a></li>
<li class="current"><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>ファイル一覧</span></a></li>
<li class="current"><a href="globals.html"><span>グローバル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>全て</span></a></li>
<li><a href="globals_func.html"><span>関数</span></a></li>
<li><a href="globals_type.html"><span>型定義</span></a></li>
<li><a href="globals_enum.html"><span>列挙型</span></a></li>
<li><a href="globals_eval.html"><span>列挙型の値</span></a></li>
<li class="current"><a href="globals_defs.html"><span>マクロ定義</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<ul>
<li>WDSWRAPPER_SCANPERIOD
: <a class="el" href="_w_d_s_wrapper_8h.html#df62a1095c124ff7ed3f8bcc0cd0e79f">WDSWrapper.h</a>
<li>WDSWRAPPER_STACKSIZE
: <a class="el" href="_w_d_s_wrapper_8h.html#3e27e22a709bb62c707b2c6ece34b79d">WDSWrapper.h</a>
<li>WDSWRAPPER_WAITPERIOD
: <a class="el" href="_w_d_s_wrapper_8h.html#79088e3207784ca6f790938a0da75140">WDSWrapper.h</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,49 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: データフィールド</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li><a href="classes.html"><span>データ構造</span></a></li>
<li class="current"><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>ファイル一覧</span></a></li>
<li class="current"><a href="globals.html"><span>グローバル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>全て</span></a></li>
<li><a href="globals_func.html"><span>関数</span></a></li>
<li><a href="globals_type.html"><span>型定義</span></a></li>
<li class="current"><a href="globals_enum.html"><span>列挙型</span></a></li>
<li><a href="globals_eval.html"><span>列挙型の値</span></a></li>
<li><a href="globals_defs.html"><span>マクロ定義</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<ul>
<li>WDSWrapperCallback
: <a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1">WDSWrapper.h</a>
<li>WDSWrapperErrCode
: <a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapper.h</a>
<li>WDSWrapperStateThreadState
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff">WDSWrapper.h</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,85 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: データフィールド</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li><a href="classes.html"><span>データ構造</span></a></li>
<li class="current"><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>ファイル一覧</span></a></li>
<li class="current"><a href="globals.html"><span>グローバル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>全て</span></a></li>
<li><a href="globals_func.html"><span>関数</span></a></li>
<li><a href="globals_type.html"><span>型定義</span></a></li>
<li><a href="globals_enum.html"><span>列挙型</span></a></li>
<li class="current"><a href="globals_eval.html"><span>列挙型の値</span></a></li>
<li><a href="globals_defs.html"><span>マクロ定義</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<ul>
<li>WDSWRAPPER_CALLBACK_CLEANUP
: <a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1b319af0ab6104be1c2764c1589760243">WDSWrapper.h</a>
<li>WDSWRAPPER_CALLBACK_INITIALIZE
: <a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e11330cb7b6f29efd80d1de157f0220734">WDSWrapper.h</a>
<li>WDSWRAPPER_CALLBACK_STARTSCAN
: <a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1d6e797e7adb1af3f5a5cc1bb45aa0cec">WDSWrapper.h</a>
<li>WDSWRAPPER_CALLBACK_STARTSCAN2
: <a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1aa7e918e0bb4e333760c99ecd381949f">WDSWrapper.h</a>
<li>WDSWRAPPER_CALLBACK_STOPSCAN
: <a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e15b05dd0e64de0ee7f1c5da416516742b">WDSWrapper.h</a>
<li>WDSWRAPPER_ERRCODE_FAILURE
: <a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db407226523f0087e3df9dbd5e69c2e2bdecdb976">WDSWrapper.h</a>
<li>WDSWRAPPER_ERRCODE_INITIALIZED
: <a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265b2058b441ae4131ed4dd869ee9c82278">WDSWrapper.h</a>
<li>WDSWRAPPER_ERRCODE_OPERATING
: <a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db40722654b4eed4bfee309504bc05cc15324f5ed">WDSWrapper.h</a>
<li>WDSWRAPPER_ERRCODE_SUCCESS
: <a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265cafb2d50d5d157af646452b155bfc53b">WDSWrapper.h</a>
<li>WDSWRAPPER_ERRCODE_UNINITIALIZED
: <a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265a280d087d837e10b13fdf61721cfe069">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_BEFOREINIT
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff6c5db32e5290de400c98869d8d1810b0">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_END
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff40660c50ad0ae098eb6561ee3952aa65">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_ENDSCAN
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff085dd5cb0b71f26ccbd9937c2d0e89af">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_IDLE
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff537798a3cb5bd0cdb1edd711b281d21e">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_INIT
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff191097930ee9d65ffde55f193aec3144">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_SCAN
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ffdc49f57db5381117ede507b616b01d2e">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_TERMINATE
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff66241b922402b4f4f046fe91bc495c81">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_WAITEND
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff3a37f0d4fe2c983f0ddea50f6bced4fa">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_WAITENDSCAN
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff3e512f87d29a0be102644fb68eea8032">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_WAITINIT
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff9b7dff8f14ad19b9a8cbb6b786595156">WDSWrapper.h</a>
<li>WDSWRAPPER_STATE_WAITSCAN
: <a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ffd9635041daca249d0b9172843d4bc5f0">WDSWrapper.h</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,67 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: データフィールド</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li><a href="classes.html"><span>データ構造</span></a></li>
<li class="current"><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>ファイル一覧</span></a></li>
<li class="current"><a href="globals.html"><span>グローバル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>全て</span></a></li>
<li class="current"><a href="globals_func.html"><span>関数</span></a></li>
<li><a href="globals_type.html"><span>型定義</span></a></li>
<li><a href="globals_enum.html"><span>列挙型</span></a></li>
<li><a href="globals_eval.html"><span>列挙型の値</span></a></li>
<li><a href="globals_defs.html"><span>マクロ定義</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<ul>
<li>WDS_WrapperCheckThreadRunning()
: <a class="el" href="_w_d_s_wrapper_8c.html#5201d971f9d90d86f7a53f476c27e024">WDSWrapper.c</a>
, <a class="el" href="_w_d_s_wrapper_8h.html#5201d971f9d90d86f7a53f476c27e024">WDSWrapper.h</a>
<li>WDS_WrapperCheckValidBeacon()
: <a class="el" href="_w_d_s_wrapper_8h.html#ef5809caa40c38d3ddd8384cb4fd7270">WDSWrapper.h</a>
, <a class="el" href="_w_d_s_wrapper_8c.html#ef5809caa40c38d3ddd8384cb4fd7270">WDSWrapper.c</a>
<li>WDS_WrapperCleanup()
: <a class="el" href="_w_d_s_wrapper_8c.html#3cad55852f36b4adb400debbfcade0c2">WDSWrapper.c</a>
, <a class="el" href="_w_d_s_wrapper_8h.html#3cad55852f36b4adb400debbfcade0c2">WDSWrapper.h</a>
<li>WDS_WrapperGetOSThread()
: <a class="el" href="_w_d_s_wrapper_8h.html#d895ad01bd9860c7f42ec3f51945215a">WDSWrapper.h</a>
, <a class="el" href="_w_d_s_wrapper_8c.html#d895ad01bd9860c7f42ec3f51945215a">WDSWrapper.c</a>
<li>WDS_WrapperInitialize()
: <a class="el" href="_w_d_s_wrapper_8c.html#c80ac8cfc892206f1a9585531a0ea599">WDSWrapper.c</a>
, <a class="el" href="_w_d_s_wrapper_8h.html#c80ac8cfc892206f1a9585531a0ea599">WDSWrapper.h</a>
<li>WDS_WrapperSetArgumentParam()
: <a class="el" href="_w_d_s_wrapper_8c.html#974b5c59d51eae0ff3bd43a351d5b25b">WDSWrapper.c</a>
, <a class="el" href="_w_d_s_wrapper_8h.html#974b5c59d51eae0ff3bd43a351d5b25b">WDSWrapper.h</a>
<li>WDS_WrapperStartScan()
: <a class="el" href="_w_d_s_wrapper_8c.html#a2de2e309d323d9f8f0cf439cbd9f59b">WDSWrapper.c</a>
, <a class="el" href="_w_d_s_wrapper_8h.html#a2de2e309d323d9f8f0cf439cbd9f59b">WDSWrapper.h</a>
<li>WDS_WrapperStopScan()
: <a class="el" href="_w_d_s_wrapper_8c.html#dddf9ad0118cd79040f8cd77ad3f47ab">WDSWrapper.c</a>
, <a class="el" href="_w_d_s_wrapper_8h.html#dddf9ad0118cd79040f8cd77ad3f47ab">WDSWrapper.h</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,49 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: データフィールド</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li><a href="classes.html"><span>データ構造</span></a></li>
<li class="current"><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>ファイル一覧</span></a></li>
<li class="current"><a href="globals.html"><span>グローバル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>全て</span></a></li>
<li><a href="globals_func.html"><span>関数</span></a></li>
<li class="current"><a href="globals_type.html"><span>型定義</span></a></li>
<li><a href="globals_enum.html"><span>列挙型</span></a></li>
<li><a href="globals_eval.html"><span>列挙型の値</span></a></li>
<li><a href="globals_defs.html"><span>マクロ定義</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<ul>
<li>WDSWrapperAlloc
: <a class="el" href="_w_d_s_wrapper_8h.html#e92702d8529bfd419ac81648fd75092b">WDSWrapper.h</a>
<li>WDSWrapperCallbackFunc
: <a class="el" href="_w_d_s_wrapper_8h.html#8370c52f5fc54099274aea1188a1bb25">WDSWrapper.h</a>
<li>WDSWrapperFree
: <a class="el" href="_w_d_s_wrapper_8h.html#c372630f28c9599a6df9e686e5f0af38">WDSWrapper.h</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,25 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: メインページ</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li class="current"><a href="index.html"><span>メインページ</span></a></li>
<li><a href="classes.html"><span>データ構造</span></a></li>
<li><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>WDSWrapper ドキュメント</h1>
<p>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,83 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: 構造体 WDSWrapperCallbackParam</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li class="current"><a href="classes.html"><span>データ構造</span></a></li>
<li><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>アルファベット順一覧</span></a></li>
<li><a href="annotated.html"><span>データ構造</span></a></li>
<li><a href="functions.html"><span>データフィールド</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>構造体 WDSWrapperCallbackParam</h1><!-- doxytag: class="WDSWrapperCallbackParam" -->WDSラッパーが呼び出すコールバック関数に与えられる引数用の構造体
<a href="#_details">[詳細]</a>
<p>
<code>#include &lt;WDSWrapper.h&gt;</code>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>変数</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1">WDSWrapperCallback</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_callback_param.html#1b13b0035e008efd18b463f68e899ec9">callback</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">コールバック発生要因 <a href="#1b13b0035e008efd18b463f68e899ec9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_callback_param.html#85a0337397575aacb2a1e6f9cdbdc208">errcode</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">エラーコード <a href="#85a0337397575aacb2a1e6f9cdbdc208"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>説明</h2>
WDSラッパーが呼び出すコールバック関数に与えられる引数用の構造体 <hr><h2>構造体</h2>
<a class="anchor" name="1b13b0035e008efd18b463f68e899ec9"></a><!-- doxytag: member="WDSWrapperCallbackParam::callback" ref="1b13b0035e008efd18b463f68e899ec9" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#7b75a8b054675640f391f3fc5bae97e1">WDSWrapperCallback</a> <a class="el" href="struct_w_d_s_wrapper_callback_param.html#1b13b0035e008efd18b463f68e899ec9">WDSWrapperCallbackParam::callback</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
コールバック発生要因
<p>
</div>
</div><p>
<a class="anchor" name="85a0337397575aacb2a1e6f9cdbdc208"></a><!-- doxytag: member="WDSWrapperCallbackParam::errcode" ref="85a0337397575aacb2a1e6f9cdbdc208" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#cff247df13a93adf1254463db4072265">WDSWrapperErrCode</a> <a class="el" href="struct_w_d_s_wrapper_callback_param.html#85a0337397575aacb2a1e6f9cdbdc208">WDSWrapperCallbackParam::errcode</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
エラーコード
<p>
</div>
</div><p>
<hr>この構造体の説明は次のファイルから生成されました:<ul>
<li>include/<a class="el" href="_w_d_s_wrapper_8h.html">WDSWrapper.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,143 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: 構造体 WDSWrapperInitializeParam</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li class="current"><a href="classes.html"><span>データ構造</span></a></li>
<li><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>アルファベット順一覧</span></a></li>
<li><a href="annotated.html"><span>データ構造</span></a></li>
<li><a href="functions.html"><span>データフィールド</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>構造体 WDSWrapperInitializeParam</h1><!-- doxytag: class="WDSWrapperInitializeParam" -->WDS_WrapperInitialize関数に与える初期化パラメータ
<a href="#_details">[詳細]</a>
<p>
<code>#include &lt;WDSWrapper.h&gt;</code>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>変数</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_initialize_param.html#290513b8f9d6c3a5652e1062dccdef6d">threadprio</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSコントロールスレッドの優先度 <a href="#290513b8f9d6c3a5652e1062dccdef6d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u16&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_initialize_param.html#691676246dbcd0a9d453bfebb5c63816">dmano</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WMライブラリが使用するDMA番号 <a href="#691676246dbcd0a9d453bfebb5c63816"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#8370c52f5fc54099274aea1188a1bb25">WDSWrapperCallbackFunc</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_initialize_param.html#c2f0a08327bbba12e43f785a19d78176">callback</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSコントロールスレッドから呼び出されるコールバック関数へのポインタ <a href="#c2f0a08327bbba12e43f785a19d78176"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#e92702d8529bfd419ac81648fd75092b">WDSWrapperAlloc</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_initialize_param.html#7a691116f65a5e760c331b8d1f3f0feb">alloc</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパーが使用するアロケータ <a href="#7a691116f65a5e760c331b8d1f3f0feb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#c372630f28c9599a6df9e686e5f0af38">WDSWrapperFree</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_initialize_param.html#5059f194f2bbd35d64ebe3f548d4fd98">free</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパーが使用するアロケータ <a href="#5059f194f2bbd35d64ebe3f548d4fd98"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>説明</h2>
WDS_WrapperInitialize関数に与える初期化パラメータ <hr><h2>構造体</h2>
<a class="anchor" name="290513b8f9d6c3a5652e1062dccdef6d"></a><!-- doxytag: member="WDSWrapperInitializeParam::threadprio" ref="290513b8f9d6c3a5652e1062dccdef6d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#290513b8f9d6c3a5652e1062dccdef6d">WDSWrapperInitializeParam::threadprio</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSコントロールスレッドの優先度
<p>
</div>
</div><p>
<a class="anchor" name="691676246dbcd0a9d453bfebb5c63816"></a><!-- doxytag: member="WDSWrapperInitializeParam::dmano" ref="691676246dbcd0a9d453bfebb5c63816" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u16 <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#691676246dbcd0a9d453bfebb5c63816">WDSWrapperInitializeParam::dmano</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WMライブラリが使用するDMA番号
<p>
</div>
</div><p>
<a class="anchor" name="c2f0a08327bbba12e43f785a19d78176"></a><!-- doxytag: member="WDSWrapperInitializeParam::callback" ref="c2f0a08327bbba12e43f785a19d78176" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#8370c52f5fc54099274aea1188a1bb25">WDSWrapperCallbackFunc</a> <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#c2f0a08327bbba12e43f785a19d78176">WDSWrapperInitializeParam::callback</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSコントロールスレッドから呼び出されるコールバック関数へのポインタ
<p>
</div>
</div><p>
<a class="anchor" name="7a691116f65a5e760c331b8d1f3f0feb"></a><!-- doxytag: member="WDSWrapperInitializeParam::alloc" ref="7a691116f65a5e760c331b8d1f3f0feb" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#e92702d8529bfd419ac81648fd75092b">WDSWrapperAlloc</a> <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#7a691116f65a5e760c331b8d1f3f0feb">WDSWrapperInitializeParam::alloc</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパーが使用するアロケータ
<p>
</div>
</div><p>
<a class="anchor" name="5059f194f2bbd35d64ebe3f548d4fd98"></a><!-- doxytag: member="WDSWrapperInitializeParam::free" ref="5059f194f2bbd35d64ebe3f548d4fd98" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#c372630f28c9599a6df9e686e5f0af38">WDSWrapperFree</a> <a class="el" href="struct_w_d_s_wrapper_initialize_param.html#5059f194f2bbd35d64ebe3f548d4fd98">WDSWrapperInitializeParam::free</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパーが使用するアロケータ
<p>
</div>
</div><p>
<hr>この構造体の説明は次のファイルから生成されました:<ul>
<li>include/<a class="el" href="_w_d_s_wrapper_8h.html">WDSWrapper.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

View File

@ -0,0 +1,301 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WDSWrapper: 構造体 WDSWrapperWork</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- 作成: Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>メインページ</span></a></li>
<li class="current"><a href="classes.html"><span>データ構造</span></a></li>
<li><a href="files.html"><span>ファイル</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>アルファベット順一覧</span></a></li>
<li><a href="annotated.html"><span>データ構造</span></a></li>
<li><a href="functions.html"><span>データフィールド</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>構造体 WDSWrapperWork</h1><!-- doxytag: class="WDSWrapperWork" -->WDSラッパーのワーク領域
<a href="#_details">[詳細]</a>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>変数</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u8 *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_work.html#f603448f800cc265033a8f266b19d007">stack</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパーが使用するスタック <a href="#f603448f800cc265033a8f266b19d007"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">OSThread&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_work.html#e70b0ba1a9b9c0ccc84865cd7efa827d">thread</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパーが使用するスレッド構造体 <a href="#e70b0ba1a9b9c0ccc84865cd7efa827d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">OSMutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_work.html#4684ed4a9191d29d6cd767d8f2149eeb">mutex</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパーが使用するmutex <a href="#4684ed4a9191d29d6cd767d8f2149eeb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u8 *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_work.html#8f2f0f56b345fd070bf3bcacab9ae53e">wdswork</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSが使用するワークエリア <a href="#8f2f0f56b345fd070bf3bcacab9ae53e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">WDSBriefApInfo&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_work.html#b92133b90ad29774b93ad0b7afccd0cb">briefapinfo</a> [WDS_APINFO_MAX]</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパーがWDSを使用した結果を格納する領域 <a href="#b92133b90ad29774b93ad0b7afccd0cb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_work.html#1ec39285aee8e7b55ef4d2b261f837dc">briefapinfonum</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパーがWDSを使用した結果を格納する領域 <a href="#1ec39285aee8e7b55ef4d2b261f837dc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct_w_d_s_wrapper_initialize_param.html">WDSWrapperInitializeParam</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_work.html#e364e4c0e0ed9daac52a7bf6cd5df7f1">initparam</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">初期化時パラメータのコピー <a href="#e364e4c0e0ed9daac52a7bf6cd5df7f1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff">WDSWrapperStateThreadState</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_work.html#9183b22882d235fe4a93560d01b329d3">state</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">WDSラッパーのステート <a href="#9183b22882d235fe4a93560d01b329d3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">OSTick&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_work.html#cc87184cd990d861f1ff9565e5c3eaa4">tickstart</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">各種時間測定用 <a href="#cc87184cd990d861f1ff9565e5c3eaa4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">BOOL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_work.html#a189068c3feaba234fd0b68602b6d114">terminate</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">解放開始フラグ <a href="#a189068c3feaba234fd0b68602b6d114"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">BOOL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_work.html#f28139846ae4022186db2e234457fdb7">idle</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">間欠スキャン中断フラグ <a href="#f28139846ae4022186db2e234457fdb7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">BOOL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_work.html#653600ec89df9559f389ebb75d55059e">restart</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">間欠スキャン再開フラグ <a href="#653600ec89df9559f389ebb75d55059e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">OSDeliverArgInfo&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_w_d_s_wrapper_work.html#1c0a7bef19fdb61fffd9f131643db80c">deliverinfo</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">TWL用アプリ間引数ワークエリア <a href="#1c0a7bef19fdb61fffd9f131643db80c"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>説明</h2>
WDSラッパーのワーク領域 <hr><h2>構造体</h2>
<a class="anchor" name="f603448f800cc265033a8f266b19d007"></a><!-- doxytag: member="WDSWrapperWork::stack" ref="f603448f800cc265033a8f266b19d007" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u8* <a class="el" href="struct_w_d_s_wrapper_work.html#f603448f800cc265033a8f266b19d007">WDSWrapperWork::stack</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパーが使用するスタック
<p>
</div>
</div><p>
<a class="anchor" name="e70b0ba1a9b9c0ccc84865cd7efa827d"></a><!-- doxytag: member="WDSWrapperWork::thread" ref="e70b0ba1a9b9c0ccc84865cd7efa827d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">OSThread <a class="el" href="struct_w_d_s_wrapper_work.html#e70b0ba1a9b9c0ccc84865cd7efa827d">WDSWrapperWork::thread</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパーが使用するスレッド構造体
<p>
</div>
</div><p>
<a class="anchor" name="4684ed4a9191d29d6cd767d8f2149eeb"></a><!-- doxytag: member="WDSWrapperWork::mutex" ref="4684ed4a9191d29d6cd767d8f2149eeb" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">OSMutex <a class="el" href="struct_w_d_s_wrapper_work.html#4684ed4a9191d29d6cd767d8f2149eeb">WDSWrapperWork::mutex</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパーが使用するmutex
<p>
</div>
</div><p>
<a class="anchor" name="8f2f0f56b345fd070bf3bcacab9ae53e"></a><!-- doxytag: member="WDSWrapperWork::wdswork" ref="8f2f0f56b345fd070bf3bcacab9ae53e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u8* <a class="el" href="struct_w_d_s_wrapper_work.html#8f2f0f56b345fd070bf3bcacab9ae53e">WDSWrapperWork::wdswork</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSが使用するワークエリア
<p>
</div>
</div><p>
<a class="anchor" name="b92133b90ad29774b93ad0b7afccd0cb"></a><!-- doxytag: member="WDSWrapperWork::briefapinfo" ref="b92133b90ad29774b93ad0b7afccd0cb" args="[WDS_APINFO_MAX]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">WDSBriefApInfo <a class="el" href="struct_w_d_s_wrapper_work.html#b92133b90ad29774b93ad0b7afccd0cb">WDSWrapperWork::briefapinfo</a>[WDS_APINFO_MAX] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパーがWDSを使用した結果を格納する領域
<p>
</div>
</div><p>
<a class="anchor" name="1ec39285aee8e7b55ef4d2b261f837dc"></a><!-- doxytag: member="WDSWrapperWork::briefapinfonum" ref="1ec39285aee8e7b55ef4d2b261f837dc" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="struct_w_d_s_wrapper_work.html#1ec39285aee8e7b55ef4d2b261f837dc">WDSWrapperWork::briefapinfonum</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパーがWDSを使用した結果を格納する領域
<p>
</div>
</div><p>
<a class="anchor" name="e364e4c0e0ed9daac52a7bf6cd5df7f1"></a><!-- doxytag: member="WDSWrapperWork::initparam" ref="e364e4c0e0ed9daac52a7bf6cd5df7f1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="struct_w_d_s_wrapper_initialize_param.html">WDSWrapperInitializeParam</a> <a class="el" href="struct_w_d_s_wrapper_work.html#e364e4c0e0ed9daac52a7bf6cd5df7f1">WDSWrapperWork::initparam</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
初期化時パラメータのコピー
<p>
</div>
</div><p>
<a class="anchor" name="9183b22882d235fe4a93560d01b329d3"></a><!-- doxytag: member="WDSWrapperWork::state" ref="9183b22882d235fe4a93560d01b329d3" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_w_d_s_wrapper_8h.html#0c6effbec49c715127e2b674ec3a59ff">WDSWrapperStateThreadState</a> <a class="el" href="struct_w_d_s_wrapper_work.html#9183b22882d235fe4a93560d01b329d3">WDSWrapperWork::state</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
WDSラッパーのステート
<p>
</div>
</div><p>
<a class="anchor" name="cc87184cd990d861f1ff9565e5c3eaa4"></a><!-- doxytag: member="WDSWrapperWork::tickstart" ref="cc87184cd990d861f1ff9565e5c3eaa4" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">OSTick <a class="el" href="struct_w_d_s_wrapper_work.html#cc87184cd990d861f1ff9565e5c3eaa4">WDSWrapperWork::tickstart</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
各種時間測定用
<p>
</div>
</div><p>
<a class="anchor" name="a189068c3feaba234fd0b68602b6d114"></a><!-- doxytag: member="WDSWrapperWork::terminate" ref="a189068c3feaba234fd0b68602b6d114" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">BOOL <a class="el" href="struct_w_d_s_wrapper_work.html#a189068c3feaba234fd0b68602b6d114">WDSWrapperWork::terminate</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
解放開始フラグ
<p>
</div>
</div><p>
<a class="anchor" name="f28139846ae4022186db2e234457fdb7"></a><!-- doxytag: member="WDSWrapperWork::idle" ref="f28139846ae4022186db2e234457fdb7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">BOOL <a class="el" href="struct_w_d_s_wrapper_work.html#f28139846ae4022186db2e234457fdb7">WDSWrapperWork::idle</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
間欠スキャン中断フラグ
<p>
</div>
</div><p>
<a class="anchor" name="653600ec89df9559f389ebb75d55059e"></a><!-- doxytag: member="WDSWrapperWork::restart" ref="653600ec89df9559f389ebb75d55059e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">BOOL <a class="el" href="struct_w_d_s_wrapper_work.html#653600ec89df9559f389ebb75d55059e">WDSWrapperWork::restart</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
間欠スキャン再開フラグ
<p>
</div>
</div><p>
<a class="anchor" name="1c0a7bef19fdb61fffd9f131643db80c"></a><!-- doxytag: member="WDSWrapperWork::deliverinfo" ref="1c0a7bef19fdb61fffd9f131643db80c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">OSDeliverArgInfo <a class="el" href="struct_w_d_s_wrapper_work.html#1c0a7bef19fdb61fffd9f131643db80c">WDSWrapperWork::deliverinfo</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
TWL用アプリ間引数ワークエリア
<p>
</div>
</div><p>
<hr>この構造体の説明は次のファイルから生成されました:<ul>
<li>src/<a class="el" href="_w_d_s_wrapper_8c.html">WDSWrapper.c</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>WDSWrapperに対してThu Jun 26 22:00:52 2008に生成されました。&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,102 @@
/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
DIV.tabs
{
float : left;
width : 100%;
background : url("tab_b.gif") repeat-x bottom;
margin-bottom : 4px;
}
DIV.tabs UL
{
margin : 0px;
padding-left : 10px;
list-style : none;
}
DIV.tabs LI, DIV.tabs FORM
{
display : inline;
margin : 0px;
padding : 0px;
}
DIV.tabs FORM
{
float : right;
}
DIV.tabs A
{
float : left;
background : url("tab_r.gif") no-repeat right top;
border-bottom : 1px solid #84B0C7;
font-size : x-small;
font-weight : bold;
text-decoration : none;
}
DIV.tabs A:hover
{
background-position: 100% -150px;
}
DIV.tabs A:link, DIV.tabs A:visited,
DIV.tabs A:active, DIV.tabs A:hover
{
color: #1A419D;
}
DIV.tabs SPAN
{
float : left;
display : block;
background : url("tab_l.gif") no-repeat left top;
padding : 5px 9px;
white-space : nowrap;
}
DIV.tabs INPUT
{
float : right;
display : inline;
font-size : 1em;
}
DIV.tabs TD
{
font-size : x-small;
font-weight : bold;
text-decoration : none;
}
/* Commented Backslash Hack hides rule from IE5-Mac \*/
DIV.tabs SPAN {float : none;}
/* End IE5-Mac hack */
DIV.tabs A:hover SPAN
{
background-position: 0% -150px;
}
DIV.tabs LI.current A
{
background-position: 100% -150px;
border-width : 0px;
}
DIV.tabs LI.current SPAN
{
background-position: 0% -150px;
padding-bottom : 6px;
}
DIV.navpath
{
background : none;
border : none;
border-bottom : 1px solid #84B0C7;
}