私はuart経由でデータを送信しています。私は1つのファイルを取り出し、それを5120バイトの部分(チャンク)に分割します。このチャンクを送信する間に中断(おそらくボーレート値に基づく)があります。私はこの中断を捕らえ、データを送信することからデータを受信することに切り替える必要があります。これはこの方法ですか?データを送信するためにPython:uart経由のチャンクの送信中断
コード例:
ser = serial.Serial(
port='/dev/ttyS0',
baudrate=115200)
def send():
with open("path_to_my_file_to_send", "rb") as fh:
while True:
chunk = fh.read(5120)
if not chunk: break
ser.write(chunk)
def reveice():
global receivedData
receivedData = ""
time.sleep(0.001)
while ser.inWaiting() > 0:
receivedData= ser.read(1)
while True:
if len(receivedData) == 1:
print ("received data")
break
else:
print("no received data")
break
主な問題はwhileループでこの割り込みを検出することです:)受信データにコードを追加します。 – KyluAce
私のansを再確認し、それが役立つかどうか確認してください。 –
問題は、時々だけメッセージを受け取ることです(チャンクを保存するとエラーが発生した場合、または全体の一部を受け取らない場合にのみ、相手側から応答が得られます)。それでも私は受信したデータを1つのチャンクを送信した後にリスンする必要がありますが、それでも私は方法と時間が分かりません。 – KyluAce