pythons PySerial : множество скриптове, четещи един и същ сериал

Използвам PYSerial за четене на Arduino, който извежда данни чрез сериен към Raspberry PI. На PI изпълнявам скрипт на Python, който чете данните с помощта на pyserial. Искам да стартирам други скриптове на Python, които също четат същите данни на същия сериал. Щяха ли да си пречат? Тествах и двата скрипта четат данни и не се срива или заключва порта, но се чудех дали ще възникнат проблеми? И двата скрипта изпълняват различни функции и искам да ги запазя отделно. И двата скрипта започват със следния код и след това правят нещо различно, когато стигне до ##направи нещо##

import serial
ser = serial.Serial('/dev/ttyACM1', 115200) # just change the port number to the appropriate
while True :
    line = ser.readline().decode("utf-8").rstrip()
    ##do something##

person resolver101    schedule 09.05.2021    source източник
comment
Python позволява нишки. Можете да стартирате основната нишка, за да прочетете серийния номер и след това да разклоните вашите 2 скрипта на python с данните, прочетени от серийния порт.   -  person Binar Web    schedule 11.05.2021


Отговори (1)


Ако два скрипта прочетат точно едни и същи данни на серийния порт, тогава вторият няма да има какво да чете, защото след прочитане на байт, той се премахва от RX буфера.

person Jerome Favrou    schedule 09.05.2021
comment
Brill Благодаря, че изясни това. ах, не разбрах, възможно ли е да пропусна някакви серийни данни, които Arduino изпраща на PI, ако моята верига не е достатъчно бърза, за да прочете входящите данни? или в крайна сметка ще докладва грешка, ако буферът стане твърде голям? - person resolver101; 09.05.2021
comment
Не знам, може би readline ще предизвика изключение IOError, всъщност загубата на данни е вероятна, но никога не съм се сблъсквал с този случай, най-добре е да тествам с цикъл между Rx и Tx pythonhosted.org/pyserial/ - person Jerome Favrou; 09.05.2021