メインスレッドが何らかの操作を行っている間に、COMシリアルポートからの着信データをリッスンする1つのスレッドを作成しようとしています。
これが私のコードです(簡潔にするために一部のコードは省略されています):
def readMsg( serial ):
msgArray = []
while ( True ):
char = "0x" + serial.read().encode('hex')
if char == '0xfd':
msgArray = []
msgArray.append(char)
elif char == '0xfc':
msgArray.append(char)
print debugPrefix, "ComPort:", (serial.port + 1), msgArray
elif char == '0x':
pass
else:
msgArray.append(char)
# Find available ports
initializeComPorts()
# Print port infos
printComPorts()
# Opens serial and returns opened serial
serialPort = openPort(1);
print "thread started"
readMsgThread = threading.Thread( target=readMsg(serialPort) )
readMsgThread.setDaemon( True )
readMsgThread.start()
print "sending some data"
serialPort.send('h')
コードを実行すると正常にreadMsgThread
リッスンしますが、行print "sending some data"
は実行されません。誰かが私が欠けているものを説明してもらえますか? 私はしばらくこれで立ち往生しています。
どうもありがとうございます。