Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 706 → Rev 709

/VibrationTest/branches/ParameterTest/VibrationTest/VibrationTestGui.py
28,7 → 28,7
CHANNEL_NAMES = ["GyroYaw", "GyroRoll", "GyroNick", "Pressure", "Batt", "AccTop", "AccRoll", "AccNick"]
MOTOR_MAX = 16
 
FS = 11111
FS = 20
pi = 3.14
COLOR_YELLOW = wx.Colour(255, 240, 0)
COLOR_BACKGROUND = wx.Colour(0x80, 0x80, 0x80)
332,7 → 332,7
self.label_40 = wx.StaticText(self, -1, "Graph Type ")
self.graphTypeChoice = wx.Choice(self, -1, choices=["Raw Signal", "Filtered Signal", "Spectrum"])
self.label_41 = wx.StaticText(self, -1, "Y Axis Range ")
self.yAxisChoice = wx.Choice(self, -1, choices=["25", "50", "75", "100", "200"])
self.yAxisChoice = wx.Choice(self, -1, choices=["10", "25", "50", "75", "100", "200", "500", "1000", "2000"])
self.copyGraphButton = wx.Button(self, -1, "Copy Graph Data")
self.TestListCtrl = wx.ListCtrl(self, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER)
 
673,7 → 673,7
title = "Spectrum: %s %s %d" %(vibTest.descr, vibTest.channel, vibTest.speed)
self.graphCtrl.setLogScale((True,False))
self.graphCtrl.Draw(wx.lib.plot.PlotGraphics([line,markers, filterLine1, filterLine2], title, "Freq (Hz)", "Acc"), xAxis=(20,500), yAxis= (0,y))
self.graphCtrl.Draw(wx.lib.plot.PlotGraphics([line,markers, filterLine1, filterLine2], title, "Freq (Hz)", "Acc"), xAxis=(0.1,20), yAxis= (0,y))
self.graphCtrl.SetEnableGrid(True)
self.graphCtrl.SetEnableLegend(False)
891,17 → 891,17
evt = MeasStatusUpdateEvent(running=self.running, msg=msg, error=error, voltage=parVoltage, speed=speed)
wx.PostEvent(self.evtConsumer, evt)
 
def _setMotorSpeed(self, speed, settlingTime):
speeds = [0]*MOTOR_MAX
# def _setMotorSpeed(self, speed, settlingTime):
# speeds = [0]*MOTOR_MAX
#
# for motor in self.param.motors:
# speeds[motor-1] = speed
# for i in range(int(settlingTime*10)):
# self._testCancel()
# self.mk.setMotorTest(speeds)
# time.sleep(.1)
# self.currSpeed = speed
for motor in self.param.motors:
speeds[motor-1] = speed
for i in range(int(settlingTime*10)):
self._testCancel()
self.mk.setMotorTest(speeds)
time.sleep(.1)
self.currSpeed = speed
def _run(self):
self.running = True
944,36 → 944,24
self._sendEvent("Voltage: %2.1fV" % voltage)
self._sendEvent("Min/Max Voltage: %2.1fV-%2.1fV" % (minVoltage, maxVoltage), parVoltage=(minVoltage, maxVoltage, voltage))
self._sendEvent("Starting motor(s) (speed=%d)... " % self.param.motorStartupSpeed, speed=self.param.motorStartupSpeed)
self._setMotorSpeed(self.param.motorStartupSpeed, self.param.motorStartupSettlingTime)
for speed in self.param.speeds:
if speed != self.currSpeed:
self._sendEvent("Changing motor speed to %d... " % speed, speed=speed)
self._setMotorSpeed(speed, 1)
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], parVoltage=(minVoltage, maxVoltage, voltage))
data = self.mk.doVibrationTest(1000, channel)
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._setMotorSpeed(speed, .1)
time.sleep(1)
 
msg = self.mk.getDebugMsg()
voltage = msg.getVoltage()
#data = self.mk.doVibrationTest(1000, channel)
messages = self.mk.recordDbgMsg(0.05, 20*5)
data = []
for msg in messages:
data.append(msg.getAngleRoll())
print data
vt = VibTest(self.param.descr, voltage, self.param.motors, 0, "AngleRoll", data)
evt = MeasDataEvent(vibTest = vt)
wx.PostEvent(self.evtConsumer, evt)
if voltage<minVoltage:
raise Exception("Voltage too low")
self._sendEvent("Done !", parVoltage=(minVoltage, maxVoltage, voltage))
except Exception, e: