Rob*_*ica 2 python events event-handling
好吧,我以编写ABB 工业机器人为生,我们使用的编程语言称为Rapid。
我在 Rapid 中可以做的一件非常酷的事情就是陷阱例程。它就像一个 while 循环,但它不是在检查条件之前遍历整个循环,而是在其等待的事件发生时立即中断。
我想它类似于 javascript 中的事件监听器。就像它在正常程序的后台运行一样。我想用 python 来做这个。
我几乎没有受过正规的计算机教育,所以我不太确定这个概念是什么。抱歉,如果有点模糊,我不太确定如何以清晰的方式提出问题。
与大多数语言一样,Python使用处理函数来处理系统信号。有关更多详细信息,请查看“信号”一章,其中讨论了接收和发送信号,并提供了示例,例如此处。
\n\n简而言之,您可以将一个函数绑定到一个或多个信号:
\n\n>>> import signal\n>>> import sys\n>>> import time\n>>> \n>>> # Here we define a function that we want to get called.\n>>> def received_ctrl_c(signum, stack):\n... print("Received Ctrl-C")\n... sys.exit(0)\n... \n>>> # Bind the function to the standard system Ctrl-C signal.\n>>> handler = signal.signal(signal.SIGINT, received_ctrl_c)\n>>> handler\n<built-in function default_int_handler>\n>>> \n>>> # Now let\xe2\x80\x99s loop forever, and break out only by pressing Ctrl-C, i.e. sending the SIGINT signal to the Python process.\n>>> while True:\n... print("Waiting\xe2\x80\xa6")\n... time.sleep(5)\n... \nWaiting\xe2\x80\xa6\nWaiting\xe2\x80\xa6\nWaiting\xe2\x80\xa6\n^CReceived Ctrl-C\nRun Code Online (Sandbox Code Playgroud)\n\n在您的具体情况下,找出机器人向您的 Python 进程(或监听信号的进程)发送哪些信号,然后按如上所示对它们采取行动。
\n