Моя проблема : как правильно использовать таймер?Иногда я пропускал данные.часть кода:
import wx
import serial
store=[]
class all(wx.panel):
def __init__(self, parent):
…
self.SetSizer( bSizer17 )
self.Layout()
self.timer1 = wx.Timer()
self.timer1.SetOwner( self, 1 )
self.timer2 = wx.Timer()
self.timer2.SetOwner( self, 2 )
self.timer2.Start( 500 ) ### running when app begins
self.timer3 = wx.Timer()
self.timer3.SetOwner( self, 3 )
self.timer3.Start( 401) ### running when app begins
def timer1(self,event):
if self.timer1.IsRunning():
self.timer1.Stop()
else:
self.timer1.Start( 100 )
def timer2(self, event):
event.Skip()
def timer3(self, event):
event.Skip()
def timer1_plot(self, event)
…
plt.plot(x,y)
def timer2_store( self, event ):
for line in ser:
store.append(line)
with open("C:\\Users\\Desktop\\saved_data.txt","a") as f:
for line in store:
f.writelines(str(line)+ "\n")
def timer3_del( self, event ):
del store[:]
Я получаю данные от последовательного порта в секунду.Я использую данные для построения и сохранения фона (независимо от построения графика).Для этого я использовал wxTimer.
У меня есть 3 кнопки (связать с таймерами), 2 из них скрыты (2 таймера запускаются автоматически).
1. Кнопка предназначена для построения .Когда я нажимаю, запускается таймер.
2. Кнопка предназначена для сохранения и записи в файл .txt и удаления из списка
3. Кнопка для удаление сохраненных данных в списке
self.timer1.Start (100) # работает при нажатии кнопки
self.timer2.Start (500) # работает при приложенииначинает
self.timer3.Start (401) # работает при запуске приложения
диапазон между таймером хорош?Должен ли я запустить 2 из них автоматически?Что ты можешь предложить?Любая помощь будет оценена.