こんにちは、私は Python 2 を使用しており、シリアル ポート経由で Arduino からデータを受信しようとしています。
PySerial を使用してデータを収集していますが、細かく刻んでいて、readline を使用できません。シリアル経由で送信される配列のサイズは、時間とともに変化します。
非常に大きな値を読み取ると、値が返されません。そのバイト数が受信されるまで待機し続けると思います。
スクリプトを実行するたびに配列を完全にする方法があるかどうかを知りたいです。
コード:
class SerialReceiver(serial.Serial):
def __init__(self, portName):
super(SerialReceiver, self).__init__()
self.port = portName
self.baudrate = 115200
self.timeout = None
self.xonxoff = 1
try:
self.open()
except serial.SerialException:
sys.stderr.write("Could not open serial port %s\n" % (portName))
sys.exit(1)
if __name__ == '__main__':
serialReceiver = SerialReceiver('COM3')
while True:
sended = raw_input("Pulsar 'O' para recibir data:")
serialReceiver.write(sended)
data = serialReceiver.read(2048*2)
print data