Отправить stringbuffer через последовательный порт от Raspberry Pi - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть скрипт на Python (на IDLE 2.7.13), работающий на Raspberry Pi 2 B, где я создаю строковый буфер (если я правильно понял значение строкового буфера) с 6 случайными десятичными числами от 0 до 500 каждоевремя.Используя цикл while, я попытался отправить этот строковый буфер через последовательный порт raspberry Pi на мой компьютер и отобразить результаты на замазке.Однако выход на замазку не является стабильным.Он никогда не отображает всю строку при отправке, а иногда пропускает большие части строки.Количество символов, отображаемых на замазке в каждом цикле, также совершенно случайно.Я считаю, что это как-то связано с параметрами последовательных портов, установленными в коде, но я не уверен, как каждый из них влияет на вывод.Вы хоть представляете, в чем здесь проблема?Заранее спасибо.

#!/usr/bin/env python
import random
import decimal
import time
import serial

ser = serial.Serial(

    port = '/dev/ttyAMA0',
    baudrate = 9600,
    parity = serial.PARITY_NONE,
    stopbits = serial.STOPBITS_ONE,
    bytesize = serial.EIGHTBITS,
    timeout = 1
)

time.sleep(2)

counter = 0

#isws thelei edw ena time.sleep(2) gia na prolavei na anoiksei i seiriaki

while 1: # i while True:
    x = float(decimal.Decimal(random.randrange(0, 5010))/10)
    y = float(decimal.Decimal(random.randrange(0, 5010))/10)
    z = float(decimal.Decimal(random.randrange(0, 5010))/10)
    thita = float(decimal.Decimal(random.randrange(0, 5010))/10)
    u_x = float(decimal.Decimal(random.randrange(0, 5010))/10)
    u_y = float(decimal.Decimal(random.randrange(0, 5010))/10)
    string_buffer = str(x)+","+str(y)+","+str(z)+','+str(thita)+','+str(u_x)+','+str(u_y)+'/'+'\n'
    print string_buffer
    ser.write(string_buffer)
    time.sleep(1)
    counter += 1

ser.close()
...