def __init__(self): """""" RaspiRobot2.__init__(self) self.exit = False self.video = VideoSrc() RPIO.add_tcp_callback(COM_PORT, self.process) self.start_timer()
def init_WiRobot(): ########## init_WiRobot_begin # use P1 header pin numbering convention gpio.setmode(gpio.BOARD) # Set up the GPIO channels - one output gpio.setup(fcom, gpio.OUT, initial=gpio.LOW) gpio.setup(bcom, gpio.OUT, initial=gpio.LOW) gpio.setup(rcom, gpio.OUT, initial=gpio.LOW) gpio.setup(lcom, gpio.OUT, initial=gpio.LOW) # TCP socket server callback on port 2323 gpio.add_tcp_callback(2323, socket_callback, threaded_callback=False) # Blocking main epoll loop gpio.wait_for_interrupts()
def setup(self): GPIO.setmode(GPIO.BCM) for pin in outputs.values(): GPIO.setup(pin, GPIO.OUT) self._power(False) self._direction(False) for (name, pin) in inputs.items(): GPIO.setup(pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.add_interrupt_callback(pin, self._delay(0.05, self._ifhigh(getattr(self,name))), edge='both', debounce_timeout_ms=100) if self.port: GPIO.add_tcp_callback(self.port, self.command_dispatch)
import RPIO def socket_callback(socket, val): print("socket %s: '%s'" % (socket.fileno(), val)) socket.send(val + "\n".encode()) # TCP socket server callback on port 8080 RPIO.add_tcp_callback(8080, socket_callback, threaded_callback=True) # Blocking main epoll loop try: RPIO.wait_for_interrupts() except KeyboardInterrupt: RPIO.stop_waiting_for_interrupts() RPIO.cleanup() print("\nStopping Server\n")
import RPIO def gpio_callback(gpio_id, val): print("gpio %s: %s" % (gpio_id, val)) def socket_callback(socket, val): print("socket %s: '%s'" % (socket.fileno(), val)) socket.send("echo: %s\n" % val) # GPIO 中断回调 RPIO.add_interrupt_callback(7, gpio_callback) RPIO.add_interrupt_callback(9, gpio_callback, pull_up_down=RPIO.PUD_UP) # 回调服务器端口 8080 TCP socket RPIO.add_tcp_callback(8080, socket_callback) # 阻断主 epoll 循环 RPIO.wait_for_interrupts()
def test6_interrupts(self): logging.info(" ") logging.info(" ") logging.info("=== INTERRUPT TESTS ==") def test_callback(*args): logging.info("- interrupt callback received: %s", (args)) def stop_interrupts(timeout=3): time.sleep(timeout) RPIO.stop_waiting_for_interrupts() logging.info("- called `stop_waiting_for_interrupts()`") PORT = 8080 def socket_callback(socket, msg): logging.info("Socket [%s] msg received: %s", socket.fileno(), msg) def socket_client(timeout=3): logging.info("Socket client connecting in 3 seconds...") time.sleep(timeout) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("localhost", PORT)) s.sendall("Hello, world".encode('utf-8')) s.close() logging.info("Socket client done...") # # Interrupt test with socket comm # logging.info(" ") logging.info("Testing interrupts on GPIO-%s and socket comm", GPIO_IN) RPIO.add_tcp_callback(PORT, socket_callback) with self.assertRaises(AttributeError): RPIO.add_tcp_callback(8081, None) RPIO.add_interrupt_callback(GPIO_IN, test_callback, edge='both', \ pull_up_down=RPIO.PUD_DOWN) RPIO.add_interrupt_callback(GPIO_IN, test_callback, edge='both', \ pull_up_down=RPIO.PUD_DOWN, threaded_callback=True) # Add a number of TCP clients Thread(target=socket_client).start() Thread(target=socket_client, args=(4,)).start() Thread(target=socket_client, args=(4,)).start() Thread(target=socket_client, args=(4,)).start() Thread(target=socket_client, args=(4,)).start() # One stop interrupts thread Thread(target=stop_interrupts, args=(10,)).start() logging.info("- waiting 10s for interrupts on GPIO-%s...", GPIO_IN) RPIO.wait_for_interrupts() logging.info("-") RPIO.cleanup() # # Auto interrupt shutdown with thread and stop_waiting_for_interrupts # logging.info("start second ") RPIO.add_interrupt_callback(GPIO_IN, test_callback, edge='both', \ pull_up_down=RPIO.PUD_OFF) RPIO.add_interrupt_callback(GPIO_OUT, test_callback, edge='falling', \ pull_up_down=RPIO.PUD_UP, debounce_timeout_ms=100) logging.info("- waiting 3s for interrupts on gpio %s and %s...", \ GPIO_IN, GPIO_OUT) Thread(target=stop_interrupts, args=(3,)).start() RPIO.wait_for_interrupts() logging.info("-") RPIO.cleanup() logging.info("ALL DONE :)")
def test6_interrupts(self): logging.info(" ") logging.info(" ") logging.info("=== INTERRUPT TESTS ==") def test_callback(*args): logging.info("- interrupt callback received: %s", (args)) def stop_interrupts(timeout=3): time.sleep(timeout) RPIO.stop_waiting_for_interrupts() logging.info("- called `stop_waiting_for_interrupts()`") PORT = 8080 def socket_callback(socket, msg): logging.info("Socket [%s] msg received: %s", socket.fileno(), msg) def socket_client(timeout=3): logging.info("Socket client connecting in 3 seconds...") time.sleep(timeout) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("localhost", PORT)) s.sendall("Hello, world".encode('utf-8')) s.close() logging.info("Socket client done...") # # Interrupt test with socket comm # logging.info(" ") logging.info("Testing interrupts on GPIO-%s and socket comm", GPIO_IN) RPIO.add_tcp_callback(PORT, socket_callback) with self.assertRaises(AttributeError): RPIO.add_tcp_callback(8081, None) RPIO.add_interrupt_callback(GPIO_IN, test_callback, edge='both', \ pull_up_down=RPIO.PUD_DOWN) RPIO.add_interrupt_callback(GPIO_IN, test_callback, edge='both', \ pull_up_down=RPIO.PUD_DOWN, threaded_callback=True) # Add a number of TCP clients Thread(target=socket_client).start() Thread(target=socket_client, args=(4, )).start() Thread(target=socket_client, args=(4, )).start() Thread(target=socket_client, args=(4, )).start() Thread(target=socket_client, args=(4, )).start() # One stop interrupts thread Thread(target=stop_interrupts, args=(10, )).start() logging.info("- waiting 10s for interrupts on GPIO-%s...", GPIO_IN) RPIO.wait_for_interrupts() logging.info("-") RPIO.cleanup() # # Auto interrupt shutdown with thread and stop_waiting_for_interrupts # logging.info("start second ") RPIO.add_interrupt_callback(GPIO_IN, test_callback, edge='both', \ pull_up_down=RPIO.PUD_OFF) RPIO.add_interrupt_callback(GPIO_OUT, test_callback, edge='falling', \ pull_up_down=RPIO.PUD_UP, debounce_timeout_ms=100) logging.info("- waiting 3s for interrupts on gpio %s and %s...", \ GPIO_IN, GPIO_OUT) Thread(target=stop_interrupts, args=(3, )).start() RPIO.wait_for_interrupts() logging.info("-") RPIO.cleanup() logging.info("ALL DONE :)")
#!/usr/bin/python from sense_hat import SenseHat import sys import RPIO sense = SenseHat() sense.set_rotation(180) red = (128, 0, 0) def socket_callback(socket,msg): try: print msg sense.show_message(msg, text_colour=red) except: print 'Fomato de mensaje erroneo', msg return print '[running on DNS=rpileo1 port=8888] \n ' RPIO.add_tcp_callback(8888,socket_callback,threaded_callback = False) RPIO.wait_for_interrupts()