Я пытаюсь разработать графический интерфейс с wxpython
, используя последовательный порт.Но мне нужно использовать параллелизм ресурсов последовательного порта для постоянного сохранения данных и построения графиков.Для этого я использовал wx.Timer
, но не смог добиться успеха.Приведенный ниже пример кода:
import serial
ser = serial.Serial('COM9',9600)
def update(self, event):
global ser
timerId = event.GetId()
if timerId == TIMER_ID1:
print("hello")
for line in ser:
print(line)
print("world")
else:
x=[]
x1=[]
x2=[]
y=[]
y1=[]
y2=[]
i=0
#fig = plt.figure()
def sV_sat(i):
for line in ser:
data=line.split(b",")
if data[0] == b"$GPGSV":
print("c")
sView_GP = data[3]
sNumber_GP = data[4]
i=i+1
x.append(i)
#x=[i]
y.append(float(sView_GP))
ax.set_title("GPS")
ax1.set_title("GPS-GLO")
ax1.set_ylim(0,20)
ax.bar(i,y,color='green') #only GPS #option 2
ax1.plot(x,y,'g') #GPS ve ...
#time.sleep(0.1)
ani8 = animation.FuncAnimation(fig,sV_sat)
plt.legend()
#pyplot.show()
plt.show()
print (time.ctime())
Приведенный выше код дает мне графику, но не может дать print(line)
:( 9-я строка)
print("hello")
for line in ser:
print(line)
print("world")
Просто напечатайте: hello
и world
с графикой
hello
world
Вторая последовательная строка (строка 21) дает мне графику.Это нормально.Почему первый (строка 8) пропускается?Любая помощь будет оценена.Большое спасибо.