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