Mar. 14. 2018
Dependencies: GraphicsFramework GR-PEACH_video LCD_shield_config AsciiFont R_BSP USBHost_custom
STBPeValidValue.c
00001 /*---------------------------------------------------------------------------*/ 00002 /* Copyright(C) 2017 OMRON Corporation */ 00003 /* */ 00004 /* Licensed under the Apache License, Version 2.0 (the "License"); */ 00005 /* you may not use this file except in compliance with the License. */ 00006 /* You may obtain a copy of the License at */ 00007 /* */ 00008 /* http://www.apache.org/licenses/LICENSE-2.0 */ 00009 /* */ 00010 /* Unless required by applicable law or agreed to in writing, software */ 00011 /* distributed under the License is distributed on an "AS IS" BASIS, */ 00012 /* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ 00013 /* See the License for the specific language governing permissions and */ 00014 /* limitations under the License. */ 00015 /*---------------------------------------------------------------------------*/ 00016 00017 #include "STBPeValidValue.h" 00018 00019 /*Value range check*/ 00020 #define IS_OUT_RANGE( val , min , max ) ( ( (val) < (min) ) || ( (max) < (val) ) ) 00021 #define IS_OUT_VALUE( val , min , max , accept ) ( IS_OUT_RANGE( val , min , max ) && ( (val) != (accept) ) ) 00022 #define IS_OUT_FR_UID( val , min , max , acceptA , acceptB , acceptC ) ( IS_OUT_RANGE( val , min , max ) && ( (val) != (acceptA) ) && ( (val) != (acceptB) ) && ( (val) != (acceptC) ) ) 00023 00024 /*------------------------------------------------------------------------------------------------------------------*/ 00025 /* STB_PeIsValidValue */ 00026 /*------------------------------------------------------------------------------------------------------------------*/ 00027 STB_INT32 STB_PeIsValidValue(const STB_PE_DET *input, STBExecFlg *execFlg) 00028 { 00029 STB_INT32 i ,j; 00030 00031 if( execFlg->gen == STB_TRUE 00032 || execFlg->age == STB_TRUE 00033 || execFlg->fr == STB_TRUE 00034 || execFlg->exp == STB_TRUE 00035 || execFlg->dir == STB_TRUE 00036 || execFlg->gaz == STB_TRUE 00037 || execFlg->bli == STB_TRUE 00038 ) 00039 { 00040 for( i = 0 ; i < input->num ; i++) 00041 { 00042 if( IS_OUT_VALUE( input->fcDet[i].dirDetYaw , STB_FACE_DIR_LR_MIN , STB_FACE_DIR_LR_MAX , STB_ERR_DIR_CANNOT ) ){ return STB_FALSE;} 00043 if( IS_OUT_VALUE( input->fcDet[i].dirDetPitch , STB_FACE_DIR_UD_MIN , STB_FACE_DIR_UD_MAX , STB_ERR_DIR_CANNOT ) ){ return STB_FALSE;} 00044 if( IS_OUT_VALUE( input->fcDet[i].dirDetRoll , STB_FACE_DIR_ROLL_MIN , STB_FACE_DIR_ROLL_MAX , STB_ERR_DIR_CANNOT ) ){ return STB_FALSE;} 00045 if( IS_OUT_VALUE( input->fcDet[i].dirDetConf , STB_FACE_DIR_CONF_MIN , STB_FACE_DIR_CONF_MAX , STB_ERR_PE_CANNOT ) ){ return STB_FALSE;} 00046 } 00047 } 00048 00049 00050 if( execFlg->age == STB_TRUE ) 00051 { 00052 for( i = 0 ; i < input->num ; i++) 00053 { 00054 if( IS_OUT_VALUE( input->fcDet[i].ageDetVal , STB_FACE_AGE_VAL_MIN , STB_FACE_AGE_VAL_MAX ,STB_ERR_PE_CANNOT ) ){ return STB_FALSE;} 00055 if( IS_OUT_VALUE( input->fcDet[i].ageDetConf , STB_FACE_AGE_CONF_MIN , STB_FACE_AGE_CONF_MAX ,STB_ERR_PE_CANNOT ) ){ return STB_FALSE;} 00056 } 00057 } 00058 00059 if( execFlg->gen == STB_TRUE ) 00060 { 00061 for( i = 0 ; i < input->num ; i++) 00062 { 00063 if( IS_OUT_VALUE( input->fcDet[i].genDetVal , STB_FACE_GEN_VAL_MIN , STB_FACE_GEN_VAL_MAX ,STB_ERR_PE_CANNOT ) ){ return STB_FALSE;} 00064 if( IS_OUT_VALUE( input->fcDet[i].genDetConf , STB_FACE_GEN_CONF_MIN , STB_FACE_GEN_CONF_MAX ,STB_ERR_PE_CANNOT ) ){ return STB_FALSE;} 00065 } 00066 } 00067 00068 if( execFlg->gaz == STB_TRUE ) 00069 { 00070 for( i = 0 ; i < input->num ; i++) 00071 { 00072 if( IS_OUT_VALUE( input->fcDet[i].gazDetLR , STB_FACE_GAZE_LR_MIN , STB_FACE_GAZE_LR_MAX ,STB_ERR_PE_CANNOT ) ){ return STB_FALSE;} 00073 if( IS_OUT_VALUE( input->fcDet[i].gazDetUD , STB_FACE_GAZE_UD_MIN , STB_FACE_GAZE_UD_MAX ,STB_ERR_PE_CANNOT ) ){ return STB_FALSE;} 00074 } 00075 } 00076 00077 if( execFlg->bli == STB_TRUE ) 00078 { 00079 for( i = 0 ; i < input->num ; i++) 00080 { 00081 if( IS_OUT_VALUE( input->fcDet[i].bliDetL , STB_FACE_BLI_L_MIN , STB_FACE_BLI_L_MAX ,STB_ERR_PE_CANNOT) ){ return STB_FALSE;} 00082 if( IS_OUT_VALUE( input->fcDet[i].bliDetR , STB_FACE_BLI_R_MIN , STB_FACE_BLI_R_MAX ,STB_ERR_PE_CANNOT) ){ return STB_FALSE;} 00083 } 00084 } 00085 00086 if( execFlg->exp == STB_TRUE ) 00087 { 00088 for( i = 0 ; i < input->num ; i++) 00089 { 00090 if( IS_OUT_VALUE( input->fcDet[i].expDetConf, STB_FACE_EXP_DEG_MIN , STB_FACE_EXP_DEG_MAX ,STB_ERR_PE_CANNOT) ){ return STB_FALSE;} 00091 for( j = 0 ; j < STB_EX_MAX ; j++) 00092 { 00093 if( IS_OUT_VALUE( input->fcDet[i].expDetVal[j] ,STB_FACE_EXP_SCORE_MIN , STB_FACE_EXP_SCORE_MAX ,STB_ERR_PE_CANNOT) ){ return STB_FALSE;} 00094 } 00095 00096 } 00097 } 00098 00099 00100 00101 00102 return STB_TRUE; 00103 }
Generated on Tue Jul 12 2022 16:00:45 by 1.7.2