Trying to formulate the correct if condition test. I want to take action only if both floor locks are online (not reporting eStatusLockUnknown). The two tests I've tried are below. When debugging, I can see that both floor locks are reporting *.lockState = eStatusLockIndeterminate
, but I'm not falling into my action code. Microchip xc16 v1.25 compiler.
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
}