Windows版iTRONサービスコールの作成 (タスク管理)
(その11)

タスクをサスペンドする

タスクをサスペンド(強制待ち状態に移行)するサービスコールは以下のとおりです。


サービスコール名説明
sus_tsk

タスクを強制待ち状態にします。

※ Ver3.0、Ver4.0共に同じサービスコールの形式です。

タスクを強制待ち状態にする

タスクを強制待ち状態にするには以下のサービスコールを使用します。



    ER sus_tsk( ID tskid )
	

引数説明
tskid

タスクID番号。

戻り値説明
E_OK

正常終了。

E_ID

範囲外のタスクID番号。

E_NOEXS

指定したタスクID番号のタスクが未登録。


・サービスコールのソースコードは以下のようになります。


/****************************************************************************/
/*!
 *  @brief  強制待ち状態への移行.
 *
 *  @param  [in]    tskid   タスクID番号.
 *
 *  @retval エラーコード.
 */
ER      sus_tsk( ID tskid )
{
    ER ercd;

    wi_CommonLock();

    //! タスクを中断(強制待ち状態)にする.
    ercd = wi_SuspendTask( tskid );

    wi_CommonUnlock();
    return ercd;
}
	

タスクID番号を引数にしてタスクのサスペンド関数を呼び出します。

タスクのサスペンド関数

タスクをサスペンドする関数のソースコードは以下のとおりです。



/****************************************************************************/
/*!
 *  @brief  強制待ち状態への移行.
 *
 *  @param  [in]    id      タスクID番号.
 *
 *  @retval エラーコード.
 */
ER      wi_SuspendTask( INT id )
{
    DWORD       cnt;
    ER          ercd;
    WITSKOBJ    *p;

    //! タスクIDのオブジェクトを取得する.
    p = FindTaskObject( id, &ercd );
    if( !p ){
        return ercd;
    }
    if( !p->hThread ){
        return E_OBJ;
    }
    //! スレッドの実行を中断する.
    cnt = SuspendThread( p->hThread );
    if( cnt == -1 ){
        return E_SYS;
    }
    p->TaskState = TTS_SUS;

    //! スレッドの中断カウンタを+1する.
    p->SuspendCnt = cnt + 1;

    return E_OK;
}
	

タスクをサスペンドする関数は以下のような処理を行います。

  • 引数で指定されたタスクID番号に該当するタスク・オブジェクトを取り出します。
  • スレッドの実行を中断します。
  • SuspendThread()の戻り値が -1の場合はエラー終了にします。
  • スレッドの中断カウンタを +1 して処理を終了します。

スレッドの実行を中断するには SuspendThread() を呼び出します。


    DWORD SuspendThread( HANDLE hThread )
	

引数説明
hThread

スレッドのハンドル。

呼び出しに成功すると、関数を呼び出す前のサスペンド受付数が返ります。

関数が失敗すると、-1 が返ります。

ソフトウェアのご案内

GATTTerm

BLE の GATT規格対応デバイスと通信するためのソフト。

MemMoni

組み込み機器のメモリダンプ機能を利用して組み込み機器内のメモリの内容を周期的にモニタするツール。

MouseRepeater

マウス操作とキー操作を記録して、記録したマウス操作とキー操作を自動で再現するツール。

Wav録! (サウンドレコーダー)

他のアプリの音源の録音や、再生中のオーディオ音源と重ね録りができるアプリケーション。

Pseudo Terminal

通信相手とのコマンドの送受信を疑似的に代行するアプリケーション。

Re:サンプル

WAV形式の音声ファイルのサンプリング周波数を変換するツール。

RTPパケット簡易解析ツール

「wireshark」等でキャプチャした通信パケットからRTPパケットを解析し、その内容を表示するアプリ。

ToneMaker

DTMF音やキータッチ音などの短いトーン音源データを生成するアプリケーション。

HTTP POSTer

HTTPリクエストメッセージ中の内容を自由に設定してHTTPサーバーにリクエスト。

MQTT Monitor

MQTT通信のクライアント(Publisher/Sbscriber)アプリケーション。

DHCPOpt

DHCPのオプション文字列を自由に設定できるデバッグ用のDHCPサーバー。

Multi Port Terminal 2

RS232C,パラレル,TCP/IP,USBに対応したターミナルソフト。

MPEG-PSストリーム簡易解析ツール

MPEG-PS形式のファイルをパケット単位で解析。

デル株式会社
サイバーリンク
オリジナル商品 挑戦者「VULKANO FLOW」
上新電機 パソコン買取サービス



商標に関する表示