试图制定正确的 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
}