if (u2_a_warning_no == (U2)TFTWARNING_GET_WRN_NO_4500){ if (u1_t_sts == (U1)TFTWARNING_WRN_STS_CYC){ for (u1_t_cnt = (U1)0; u1_t_cnt < (U1)TFTWARNING_SIDE_SONAR_NUM; u1_t_cnt++){ u1_t_sonar_side_sts = u1_s_TftWarningSonarSideDispSts(u2_TFTWARNING_SONAR_SIDE_TBL[u1_t_cnt]); if ((u1_t_sonar_side_sts >(U1)TFTWARNING_SONAR_STS_OFF) && (u1_t_sonar_side_sts < (U1)TFTWARNING_SIDE_SONAR_NUM)){ vd_OBJCMN_UPDATE_REF((PLR_ID_U4)u2_TFTWARNING_CSDOOR_PID_TBL[u1_t_cnt][u1_a_anim_sts], (PLR_FRAME_FT)OBJCMN_SET_ON_REF); if (u1_t_sonar_side_sts == (U1)TFTWARNING_SONAR_STS_NEAR){ vd_OBJCMN_UPDATE_STT((PLR_ID_U4)u2_TFTWARNING_CSDOOR_PID_STT_TBL[u1_t_cnt][u1_a_anim_sts], (PLR_FRAME_U4)u1_TFTWARNING_SONAR_SIDE_NEAR_TBL[u1_t_csr_sts]); } else{ vd_OBJCMN_UPDATE_STT((PLR_ID_U4)u2_TFTWARNING_CSDOOR_PID_STT_TBL[u1_t_cnt][u1_a_anim_sts], (PLR_FRAME_U4)u1_TFTWARNING_4500_SONAR_SIDE_STT_TBL[u1_t_sonar_side_sts]); } } } }
时间: 2023-10-08 13:06:41 浏览: 98
这段代码是一个嵌套的条件语句。首先,检查u2_a_warning_no是否等于TFTWARNING_GET_WRN_NO_4500。如果是,则进入第一个if语句块。
在第一个if语句块中,再次检查u1_t_sts是否等于TFTWARNING_WRN_STS_CYC。如果是,则执行一个for循环,循环变量为u1_t_cnt从0到TFTWARNING_SIDE_SONAR_NUM。
在循环体内部,首先调用函数u1_s_TftWarningSonarSideDispSts来获取u2_TFTWARNING_SONAR_SIDE_TBL[u1_t_cnt]对应的状态值,并将结果存储在u1_t_sonar_side_sts中。
接下来,再次进行条件判断。如果u1_t_sonar_side_sts大于TFTWARNING_SONAR_STS_OFF并且小于TFTWARNING_SIDE_SONAR_NUM,则执行一系列操作。
首先,调用函数vd_OBJCMN_UPDATE_REF来更新引用值,参数为u2_TFTWARNING_CSDOOR_PID_TBL[u1_t_cnt][u1_a_anim_sts]和OBJCMN_SET_ON_REF。
然后,根据u1_t_sonar_side_sts的值进行不同的操作。如果u1_t_sonar_side_sts等于TFTWARNING_SONAR_STS_NEAR,则调用函数vd_OBJCMN_UPDATE_STT来更新状态值,参数为u2_TFTWARNING_CSDOOR_PID_STT_TBL[u1_t_cnt][u1_a_anim_sts]和u1_TFTWARNING_SONAR_SIDE_NEAR_TBL[u1_t_csr_sts]。
否则,调用函数vd_OBJCMN_UPDATE_STT来更新状态值,参数为u2_TFTWARNING_CSDOOR_PID_STT_TBL[u1_t_cnt][u1_a_anim_sts]和u1_TFTWARNING_4500_SONAR_SIDE_STT_TBL[u1_t_sonar_side_sts]。
总体来说,这段代码根据一定条件更新一些引用值和状态值,并且在循环中进行了多次操作。
阅读全文