Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 647 → Rev 648

/VibrationTest/trunk/VibrationTest/VibrationTestGui.py
13,6 → 13,7
import time
import thread
import ConfigParser
import math
 
import wx
import wx.lib
511,8 → 512,8
self.TestListCtrl.SetStringItem(index, 2, str(test.speed))
self.TestListCtrl.SetStringItem(index, 3, test.channel)
 
vv = int(test.getVibValue(self.app.settings["hpf"].value, self.app.settings["lpf"].value))
vvs = "|%s| (%d)" % ("----------------------------------------------------------------------------------------------------"[0:min(vv/2,100)], vv)
vv = test.getVibValue(self.app.settings["hpf"].value, self.app.settings["lpf"].value)
vvs = "|%s| (%.1f)" % ("----------------------------------------------------------------------------------------------------"[0:min(int(vv+1)/2,100)], vv)
self.TestListCtrl.SetStringItem(index, 4, vvs)
 
def refreshData(self):
675,7 → 676,7
dlg.CenterOnScreen()
val = dlg.ShowModal() # this does not return until the dialog is closed.
dlg.Destroy()
self.app.onSettingsChanged()
self.app.onSettingsChanged(True)
 
def onStartMeasure(self, event): # wxGlade: MainFrame.<event_handler>
# Collect measure parameters
763,8 → 764,8
# First we create and fill the info object
print "about"
info = wx.AboutDialogInfo()
info.Name = "MK Vibration Test"
info.Version = "0.9"
info.Name = "- MK Vibration Test - "
info.Version = "v0.9 RC1"
info.Copyright = ""
info.Developers=["Frederic Goddeeris Frederic@rc-flight.be"]
info.Description = "Please consult the WIKI page for a complete description of the tool:"
925,6 → 926,8
 
class VibTest:
useRms = True
def __init__(self, descr, voltage, motor, speed, channel, rawData):
self.descr = descr
self.voltage = voltage
960,6 → 963,10
if self.spectrum == None:
self.spectrum = _Numeric.absolute(self.fft[1:self.dataLen/2+1]) / (self.dataLen/2)
return self.spectrum
def refresh(self):
self.filteredData = None
self.vibValue = None
 
def getFilteredData(self, fc1, fc2):
if self.fc1 != fc1 or self.fc2 != fc2:
983,10 → 990,16
def getVibValue(self, fc1, fc2):
if self.fc1 != fc1 or self.fc2 != fc2:
self.vibValue = None
self.vibValue = None
if self.vibValue == None:
fd = self.getFilteredData(fc1, fc2)[100:-100];
self.vibValue = max(fd)-min(fd)
if self.useRms:
print "RMS"
self.vibValue = math.sqrt(sum([x*x for x in fd])/len(fd))*2*math.sqrt(2)
else:
print "PP"
self.vibValue = max(fd)-min(fd)
return self.vibValue
 
 
1007,6 → 1020,7
self.settings["serialport"] = Setting("Serial Port", "COM1")
self.settings["hpf"] = Setting("HP Filter cutoff (Hz)", 40)
self.settings["lpf"] = Setting("LP Filter cutoff (Hz)", 400)
self.settings["calcmethod"] = Setting("Calculation Method", "rms")
self.settings["minvoltage"] = Setting("Minimum Bettery Voltage (0=Automatic) (V) ", 0)
self.settings["maxvoltage"] = Setting("Maximum Bettery Voltage (0=Automatic) (V) ", 0)
 
1031,8 → 1045,8
print "WARNING, unknown setting"
except:
print "ERROR reading settingsfile"
self.onSettingsChanged(False)
 
 
def storeSettings(self):
print "Storing settings"
 
1045,8 → 1059,15
file.close()
 
 
def onSettingsChanged(self):
self.storeSettings()
def onSettingsChanged(self, store):
if store:
self.storeSettings()
if self.settings["calcmethod"].value == "rms":
VibTest.useRms = True
else:
VibTest.useRms = False
for test in self.VibTests:
test.refresh()
self.frame_1.refreshData()
def AddTest2(self, vibTest):