AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
AG903_PgpMgrExecLabeling 関数

ラベリング処理の実行制御

Syntax
C++
int32_t AG903_PgpMgrExecLabeling(AG903_PgpMgrPipelineHandle * handle, uint32_t cmd);
引数 
説明 
AG903_PgpMgrPipelineHandle * handle 
[in] ラベリング処理を実行するパイプラインハンドルを指定します。 
uint32_t cmd 
[in] 実行コマンドを指定します。 

制御結果

返値の詳細 
説明 
正常終了 
-AG903_EINVAL 
handleに不正な値が指定された場合
cmdに不正な値が指定された場合
パイプラインハンドルが物理的なパイプラインに割り当てられていない場合 
-AG903_EBUSY 
他のパイプラインハンドルが実行するパイプラインで現在処理中の場合
コマンドがラベリングの実行かつ、キューに空きが無い場合 

ラベリング処理の制御コマンドを発行します。 

詳しくは、「PGPラベリングコマンド」を参照してください。

1: int32_t AG903_PgpMgrExecLabeling(AG903_PgpMgrPipelineHandle *handle, uint32_t cmd) 2: { 3: PGPPrmParamPGPnSTATE state; 4: 5: 6: if ((handle == NULL) || (handle->id != AG903_PGP_MGR_PIPELINE_HANDLE_ID)) { 7: return -AG903_EINVAL; 8: } 9: 10: switch (cmd) { 11: case AG903_PGP_MGR_LBL_CMD_NONE: 12: case AG903_PGP_MGR_LBL_CMD_EXEC: 13: case AG903_PGP_MGR_LBL_CMD_DELETE: 14: case AG903_PGP_MGR_LBL_CMD_RESET: 15: break; 16: default: 17: return -AG903_EINVAL; 18: } 19: 20: 21: if (handle->is_assign == false) { 22: return -AG903_EINVAL; 23: } 24: 25: AG903_PgpPrmGetPGPnSTATE(handle->pipeline_no, &state); 26: 27: if ((PgpContext.exec_pipeline[handle->pipeline_no] != handle ) && (state.st != AG903_PGP_MGR_STATE_IDLE)) { 28: return -AG903_EBUSY; 29: } 30: 31: PGPPrmParamPGPnLBLSTAT lblstat; 32: AG903_PgpPrmGetPGPnLBLSTAT(handle->pipeline_no, &lblstat); 33: 34: if ((cmd == AG903_PGP_MGR_LBL_CMD_EXEC) && (lblstat.queue == (AG903_PGP_MGR_LBL_CMD_MAX_QUEUE - 1))) { 35: return -AG903_EBUSY; 36: } 37: 38: 39: AG903_PgpPrmSetPGPnLBLCMD(handle->pipeline_no, cmd); 40: 41: return AG903_ENONE; 42: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.