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): |