330,10 → 330,11 |
|
# Configure TestListCtrl |
self.TestListCtrl.InsertColumn(0, "Description") |
self.TestListCtrl.InsertColumn(1, "Speed") |
self.TestListCtrl.InsertColumn(2, "Channel") |
self.TestListCtrl.InsertColumn(3, "Vibration Value") |
self.TestListCtrl.SetColumnWidth(3, 500) |
self.TestListCtrl.InsertColumn(1, "Voltage") |
self.TestListCtrl.InsertColumn(2, "Speed") |
self.TestListCtrl.InsertColumn(3, "Channel") |
self.TestListCtrl.InsertColumn(4, "Vibration Value") |
self.TestListCtrl.SetColumnWidth(4, 500) |
|
def DrawPointLabel(self, dc, mDataDict): |
"""This is the fuction that defines how the pointLabels are plotted |
362,12 → 363,13 |
|
def onNewTest(self, test): |
index = self.TestListCtrl.InsertStringItem(sys.maxint, test.descr) |
self.TestListCtrl.SetStringItem(index, 1, str(test.speed)) |
self.TestListCtrl.SetStringItem(index, 2, test.channel) |
self.TestListCtrl.SetStringItem(index, 1, "%.1f V" %test.voltage) |
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,100)], vv) |
self.TestListCtrl.SetStringItem(index, 3, vvs) |
self.TestListCtrl.SetStringItem(index, 4, vvs) |
self.TestListCtrl.Select(index) |
|
|
448,16 → 450,29 |
def OnImport(self, event): # wxGlade: MainFrame.<event_handler> |
dlg = wx.FileDialog( |
self, message="Choose a file", |
defaultDir=os.getcwd(), |
defaultDir="%s/Data/" % os.getcwd(), |
defaultFile="*.txt", |
wildcard="", |
wildcard="*.txt", |
style=wx.OPEN | wx.CHANGE_DIR |
) |
if dlg.ShowModal() == wx.ID_OK: |
paths = dlg.GetPaths(); |
self.app.Import(paths[0]) |
self.app.loadTests(paths[0]) |
dlg.Destroy() |
|
def onExport(self, event): # wxGlade: MainFrame.<event_handler> |
dlg = wx.FileDialog( |
self, message="Save file as ...", |
defaultDir="%s/Data/" % os.getcwd(), |
defaultFile="*.txt", |
wildcard="", |
style=wx.SAVE |
) |
if dlg.ShowModal() == wx.ID_OK: |
paths = dlg.GetPaths(); |
self.app.saveTests(paths[0]) |
dlg.Destroy() |
|
def onYAxisChange(self, event): # wxGlade: MainFrame.<event_handler> |
self.drawGraph() |
|
481,7 → 496,9 |
mp.motors = map(int,self.tcMotors.GetValue().split(',')) |
mp.channels = map(int,self.tcChannels.GetValue().split(',')) |
s = self.tcSpeeds.GetValue() |
if s.count("-") == 1: |
if s=="test": |
mp.speeds = (100,100,100,100,100, 150,150,150,150,150, 200,200,200,200,200, 100,150,200, 100,150,200, 100,150,200, 100,150,200) |
elif s.count("-") == 1: |
# assume from-to:step format |
s = s.split("-") |
if len(s) != 2: raise Exception("Invalid format") |
522,10 → 539,7 |
if idx == -1: break |
self._removeTest(idx) |
|
def onExport(self, event): # wxGlade: MainFrame.<event_handler> |
print "Event handler `onExport' not implemented" |
event.Skip() |
|
|
# end of class MainFrame |
|
class Setting: |
608,13 → 622,19 |
|
for channel in self.param.channels: |
self._setMotorSpeed(speed, .1) |
msg = self.mk.getDebugMsg() |
voltage = msg.getVoltage() |
|
self._sendEvent("Getting data from channel %s" % CHANNEL_NAMES[channel]) |
data = self.mk.doVibrationTest(1000, channel) |
|
vt = VibTest(self.param.descr, self.param.motors, speed, CHANNEL_NAMES[channel], data) |
vt = VibTest(self.param.descr, voltage, self.param.motors, speed, CHANNEL_NAMES[channel], data) |
evt = MeasDataEvent(vibTest = vt) |
wx.PostEvent(self.evtConsumer, evt) |
|
if voltage<minVoltage: |
raise Exception("Voltage too low") |
|
self._sendEvent("Done !") |
|
except Exception, e: |
625,8 → 645,9 |
|
|
class VibTest: |
def __init__(self, descr, motor, speed, channel, rawData): |
def __init__(self, descr, voltage, motor, speed, channel, rawData): |
self.descr = descr |
self.voltage = voltage |
self.motor = motor |
self.speed = speed |
self.channel = channel |
710,7 → 731,7 |
self.readSettings() |
|
if len(sys.argv)>1: |
self.Import(sys.argv[1]) |
self.loadTests(sys.argv[1]) |
|
|
def readSettings(self): |
748,8 → 769,8 |
self.VibTests.append(vibTest) |
self.frame_1.onNewTest(vibTest) |
|
def AddTest(self, descr, motor, speed, channel, rawData): |
test = VibTest(descr, motor, speed, channel, rawData) |
def AddTest(self, descr, voltage, motor, speed, channel, rawData): |
test = VibTest(descr, voltage, motor, speed, channel, rawData) |
self.AddTest2(test) |
|
def removeTest(self, idx): |
768,7 → 789,42 |
self.frame_1.Show() |
return 1 |
|
def Import(self, filePath): |
def saveTests(self, filePath): |
try: |
logfile = open(filePath, "r") |
newFile = False |
logfile.close() |
except: |
newFile = True |
|
for test in self.VibTests: |
if newFile: |
logfile = open(filePath, "w") |
print "Writing result to %s ..." % filePath, |
logfile.write("%s %d %s\n" % (test.descr, test.speed, test.channel)) |
for value in test.rawData: |
logfile.write("%d\n" % value) |
logfile.close() |
print "OK" |
else: |
print "Appending result to %s ..." % filePath, |
logfile = open(filePath, "r") |
prevData = [] |
for line in logfile: |
prevData.append(line[:-1]) |
logfile.close() |
logfile = open(filePath, "w") |
logfile.write("%s,%s %d %s\n" % (prevData[0], test.descr, test.speed, test.channel)) |
i = 1 |
for value in test.rawData: |
logfile.write("%s,%d\n" % (prevData[i], value)) |
i += 1 |
logfile.close() |
print "OK" |
newFile = False |
|
|
def loadTests(self, filePath): |
|
print "Importing file \"%s\"" % filePath |
|
775,7 → 831,7 |
logfile = open(filePath, "r") |
data = None |
|
headers = (logfile.readline()).split(',') |
headers = (logfile.readline()[:-1]).split(',') |
nbCols = len(headers) |
print "NbCols =", nbCols |
|
799,7 → 855,7 |
for c in range(nbCols): |
if (len(data[c]) % 2) != 0: |
data[c].append(data[c][-1]) |
self.AddTest(descr[c], 0, int(speed[c]), channel[c], data[c]) |
self.AddTest(descr[c], 0, 0, int(speed[c]), channel[c], data[c]) |
|
def startMeasure(self, measureParams, dialog): |
print "Start measuring" |