как правильно установить таймер в wxpython - PullRequest
0 голосов
/ 31 января 2019

Моя проблема : как правильно использовать таймер?Иногда я пропускал данные.часть кода:

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 из них автоматически?Что ты можешь предложить?Любая помощь будет оценена.

...