【发布时间】:2018-04-08 19:45:00
【问题描述】:
尝试制定正确的 if 条件测试。我只想在两个楼层锁都在线(不报告 eStatusLockUnknown)时采取行动。我试过的两个测试如下。调试时,我可以看到两个地板锁都在报告*.lockState = eStatusLockIndeterminate,但我并没有陷入我的操作代码中。 Microchip xc16 v1.25编译器。
if (( sLockStatus[eHeadFloorLock].lockState == ( eStatusLockIndeterminate
|| eStatusLockEngaged || eStatusLockStowed || eStatusLockFullyEngaged ))
&& ( sLockStatus[eFootFloorLock].lockState == ( eStatusLockIndeterminate || eStatusLockEngaged || eStatusLockStowed || eStatusLockFullyEngaged )))
{
// take action
}
if (( sLockStatus[eHeadFloorLock].lockState == eStatusLockIndeterminate )
|| ( sLockStatus[eHeadFloorLock].lockState == eStatusLockEngaged )
|| ( sLockStatus[eHeadFloorLock].lockState == eStatusLockStowed )
|| ( sLockStatus[eHeadFloorLock].lockState == eStatusLockFullyEngaged )
&& ( sLockStatus[eFootFloorLock].lockState == eStatusLockIndeterminate )
|| ( sLockStatus[eFootFloorLock].lockState == eStatusLockEngaged )
|| ( sLockStatus[eFootFloorLock].lockState == eStatusLockStowed )
|| ( sLockStatus[eFootFloorLock].lockState == eStatusLockFullyEngaged ))
{
// take action
}
【问题讨论】: