in Tutorials/ErrorReporting/Stage2/main.c [195:210]
static bool IsButtonPressed(int fd, GPIO_Value_Type *oldState)
{
bool isButtonPressed = false;
GPIO_Value_Type newState;
int result = GPIO_GetValue(fd, &newState);
if (result != 0) {
Log_Debug("ERROR: Could not read button GPIO: %s (%d).\n", strerror(errno), errno);
exitCode = ExitCode_ButtonTimer_GetButtonState;
} else {
// Button is pressed if it is low and different than last known state.
isButtonPressed = (newState != *oldState) && (newState == GPIO_Value_Low);
*oldState = newState;
}
return isButtonPressed;
}