当x时间未触发时make变量为false

时间:2017-07-06 14:55:34

标签: python python-2.7 sockets

所以基于传感器我发送"触发"或者"没有触发器"。我在Python上相当新(2天),但我有一点用Visual Basic编程的历史。

问题是60秒后没有"触发"收到它应该使变量svars.trigger为假。我究竟如何用Python做到这一点?

我试着四处寻找,但似乎没有什么能与我的意思相提并论 此外,欢迎任何重写我现有代码的提示。

P.S使用Python 2.7

import socket
import scalalib as sl

svars = sl.sharedvars(defaults={'trigger': False})
UDP_IP = "192.168.0.219"
UDP_PORT = 5005

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind((UDP_IP, UDP_PORT))

def main():
        data, addr = sock.recvfrom(1024)  # buffer size is 1024 bytes
        if data == 'trigger':
            svars.trigger = True
            print "received message:", data
        if data == 'no trigger':
            svars.trigger = False
            print "received message:", data

while True:
    main()

1 个答案:

答案 0 :(得分:0)

您可以使用pygame中的时钟类:http://www.pygame.org/docs/ref/time.html#pygame.time.Clock

它基本上是一个跟踪你的时间(一个时钟)的对象。 你需要安装pygame。