Eventos
1 min
Los eventos en BrightScript se centran en un bucle de eventos y el objeto roMessagePort. La mayoría de los objetos BrightScript pueden publicar en un puerto de mensajes en forma de un objeto de evento: por ejemplo, el objeto roTimer publica eventos del tipo roTimerEvent cuando se alcanzan los intervalos configurados.
El siguiente script establece el puerto de mensajes de destino usando el método SetPort(), espera un evento en forma de un objeto roGpioButton y luego procesa el evento.
print "BrightSign Button-LED Test Running"
p = CreateObject("roMessagePort")
gpio = CreateObject("roGpioControlPort")
gpio.SetPort(p)
while true
msg=wait(0, p)
if type(msg)="roGpioButton" then
butn = msg.GetInt()
if butn <=5 then
gpio.SetOutputState(butn+17,1)
print "Button Pressed: ";butn
sleep(500)
gpio.SetOutputState(butn+17,0)
end if
end if
REM ignore buttons pressed while flashing led above
while p.GetMessage()<>invalid
end while
end whileTenga en cuenta que las líneas 6-7 pueden reemplazarse usando lo siguiente (y sustituyendo fin mientras por fin para):
For each msg in p