2013-06-24 2 views
1

У меня есть малина Pi с прокси-сервером Siri, который контролирует мою дверь гаража, дверь гаража имеет только одну команду для открытия и закрытия. Чтобы проверить, открыта ли дверь гаража, я не купил магнитный выключатель, и я построил кнопку выхода из игры. Я уже пыталсяПроверьте, нажата ли кнопка или нет

doorstate = `gpio read 5`.chomp #gives value 1 or 0, 1 is opened, 0 is closed 

print doorstate 

if doorstate == "1" 
print "The garage door is already opened.\n" 

elsif doorstate == "0" 
print "OK, I'll open it for you!\n" 

else 
print "Error, please open it manually.\n" 

end 

Может кто-то пожалуйста, скажите мне, как я могу проверить фи возвращенное значение или строка из doorstate = 'gpio read 5' равна строке?

ответ

1

Я предполагаю, что результат «gpio read 5» содержит строку, заканчивающуюся. Постарайся чавканье ее:

doorstate = `gpio read 5`.chomp 

Чтобы проверить класс doorstate, вставить p doorstate.class в строке 2.

+0

Спасибо, он работает сейчас :) –

0

Вам нужно изменить свои одинарные кавычки (') на обратные метки (`, маленькая вещь с тильдой на вашей клавиатуре). Это выполнит команду. Остальная часть вашего кода в порядке.

+0

Я редактировал сценарий и вставить его в посте выше, но он всегда печатает «Ошибка, пожалуйста, откройте это вручную. ". Любое исправление? Maby это значение и нет строки? –

+0

@DavidG .: Это не ошибка рубина, это точно. Я не знаю, что с этим делать. – Linuxios

+0

Но терминал дает мне правильные значения, я набираю «gpio read» 5, он дает мне либо 1, либо 0, это зависит от того, нажата ли кнопка или нет. –