Beispiel #1
0
 def __init__(self):
     """"""
     RaspiRobot2.__init__(self)
     
     self.exit = False
     self.video = VideoSrc()
     
     RPIO.add_tcp_callback(COM_PORT, self.process)
     self.start_timer()
Beispiel #2
0
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()
Beispiel #3
0
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()
Beispiel #4
0
    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)
Beispiel #5
0
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")
Beispiel #6
0
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()
Beispiel #7
0
    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 :)")
Beispiel #8
0
    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()