因此,我一直致力于通过串行(RS-232)"Master"与无线设备通信的客户端应用程序.我目前使用线程编写应用程序的核心(下面).我一直注意到#python的共识似乎是不使用线程并使用Twisted的异步通信功能.
我无法找到使用twisted进行串口异步I/O通信的任何好例子.但是,我发现Dave Peticolas的''Twisted Introduction'(感谢nosklo)我目前正在使用它,但它使用套接字而不是串行通信(但异步概念肯定是非常好的解释).
我将如何使用线程,队列将此应用程序移植到Twisted?有没有任何优点/缺点(我注意到,有时,如果一个线程挂起它会BSOD系统)?
代码(msg_poller.py)
from livedatafeed import LiveDataFeed
from msg_build import build_message_to_send
from utils import get_item_from_queue
from protocol_wrapper import ProtocolWrapper, ProtocolStatus
from crc16 import *
import time
import Queue
import threading
import serial
import gc
gc.enable()
PROTOCOL_HEADER = '\x01'
PROTOCOL_FOOTER = '\x0D\x0A'
PROTOCOL_DLE = '\x90'
INITIAL_MODBUS = 0xFFFF
class Poller:
"""
Connects to the serial port and polls nodes for data.
Reads response from node(s) and loads that data into queue.
Parses qdata and …Run Code Online (Sandbox Code Playgroud)