В вашем примере вы обнаруживаете нарастающий фронт (штифт идет от низкого до высокого). Падение фронта противоположно, поэтому вы можете запустить отдельный обратный вызов с помощью:
GPIO.add_event_detect(17, GPIO.FALLING, callback=other_callback, bouncetime=600)
Однако я бы предложил вам использовать GPIO Zero вместо RPi. GPIO, как вам может показаться более интуитивным:
from gpiozero import InputDevice
sensor = InputDevice(17)
while True:
sensor.wait_for_active()
print("Fire!")
sensor.wait_for_inactive()
print("No fire")
Вы можете обнаружить, что логика перевернута (говорит «огонь», когда огня нет), и в этом случае используйте InputDevice(17, pull_up=True)
В качестве альтернативы к приведенному выше коду вы можете использовать if sensor.is_active
или использовать механизм обратных вызовов sensor.when_activated = callback
. См. gpiozero docs для получения дополнительной информации.
Просто сделайте функцию, которая возвращает новую функцию b:
function getB(my1, my2) {
return function() {
a(my1, my2);
}
}
и используйте его как это:
var b = getB(my1, my2);
Поместите значения в массив (или JSON) и возвратите массив.
function a (p1,p2) {
var my = []
my[0] = p1
my[1] = p2
return my
}
function b () {
return a(my1,nmy2)
}
Возможно, я упускаю суть в Вашем примере, я не знаю.
Запишите функцию, которая берет my1 и my2 и создает функцию b:
function make_b(my1, my2){
return function b(){ return a(my1, my2);};
}
Почему это не правильно? Вы получаете ошибку? Я пытался воспроизвести рабочий образец, основывал одно Ваше описание и что у меня есть работы поэтому, возможно, Вы могли отправить более подробный образец:
<script>
function a(p1, p2)
{
return 'hello ' + p1 + ' and ' + p2;
}
function b(my1,my2)
{
return function()
{
return a(my1,my2);
}
}
var wrapper=b();
alert(wrapper());
</script>
На основе Вашего комментария к другому ответу я обновил свой образец, чтобы показать, как можно перенести функцию.
Хорошо, таким образом, я заменил их переменными;-)
Кажется, существует три части:
Определение a:
function a(M, N) {
return M + N;
}
Определение b:
var X = 10;
var Y = 25;
var b = function() {
return a(X, Y);
}
Используя b:
var thirtyFive = b(); // thirtyFive = 35
Я не уверен, понял ли я Вас правильно, но можно посмотреть на названное приправление карри понятия. Возможно приправить функцию карри в JavaScript, таким образом, что можно получить другую функцию с некоторыми или всей предварительной установкой параметров.
Можно посмотреть на реализацию здесь.
При использовании Прототипа можно получить функцию b этот путь.
var b = a.curry(arg1, arg2);
теперь вызов b()
совпадает с вызовом a(arg1, arg2)