Pingo.jl
An input/output library based on https://github.com/aviks/PiGPIO.jl (for RaspberryPi)
but that could be use for other board also
inspired by https://github.com/pingo-io/pingo-py
and https://github.com/RPi-Distro/python-gpiozero/
A possible "parts" (just led) API usage might be
using Pingo
board = Board() # or Board('rpi')
pin = Pin(board, 17) # should we use BCM or BOARD numbering ? probably BCM
# pin = Pin(board, BCM(17))
led = Led(pin)
while true
on(led) # or switch_on(led)
sleep(1)
off(led) # or switch_off(led)
sleep(1)
end
pin might be an integer or a DigitalPin
board shouldn't be necessary (if no board is given we should use a DefaultBoard object)
An example with led and button
board = Board()
led = Led(board, 17)
button = Button(board, 3)
while true
if ispressed(button)
on(led)
else
off(led)
end
sleep(0.01)
end
an other (maybe harder to implement) might be
board = Board()
led = Led(board, 17)
button = Button(board, 3)
# make_callback(when_pressed, button, led, on) # or make_callback(button, when_pressed, led, on)
# make_callback(when_released, button, led, off)
# connect(button, when_pressed, led, on)
# connect(button, when_released, led, off)
button.when_pressed = () -> on(led)
button.when_released = () -> off(led)
wait_events()
with
function wait_events(; delay=0.01)
while true
sleep(delay)
end
end
keywords: callback ; event driven programming ; signal slot ; publish subscribe ; pattern ; dispatch module ; observer pattern ; message ; messaging ; dispatching
Pingo.jl
An input/output library based on https://github.com/aviks/PiGPIO.jl (for RaspberryPi)
but that could be use for other board also
inspired by https://github.com/pingo-io/pingo-py
and https://github.com/RPi-Distro/python-gpiozero/
A possible "parts" (just led) API usage might be
pinmight be an integer or aDigitalPinboardshouldn't be necessary (if no board is given we should use aDefaultBoardobject)An example with led and button
an other (maybe harder to implement) might be
with
keywords: callback ; event driven programming ; signal slot ; publish subscribe ; pattern ; dispatch module ; observer pattern ; message ; messaging ; dispatching