Imu.py
Go to the documentation of this file.
00001 __author__ = 'tom1231'
00002 from BAL.Interface.DeviceFrame import DeviceFrame, IMU
00003 from PyQt4.QtGui import *
00004 
00005 
00006 
00007 class Imu(DeviceFrame):
00008     def __init__(self, frame, data):
00009         DeviceFrame.__init__(self, IMU, frame, data)
00010         self._pubHz = '50'
00011         self._name = 'RiC_IMU'
00012         self._frameId = 'RiC_Frame'
00013         self._decAng = '0'
00014         self._orientation = '0'
00015         self._fusionHz = '10'
00016         self._enableFuseGyro = False
00017 
00018 
00019     def fromDict(self, data):
00020         self._pubHz = data['pubHz']
00021         self._name = data['name']
00022         self._frameId = data['frameId']
00023         self._decAng = data['decAng']
00024         if data.has_key('orientation'):
00025             self._orientation = data['orientation']
00026         if data.has_key('fusionHz'):
00027             self._fusionHz = data['fusionHz']
00028         if data.has_key('enableFuseGyro'):
00029             self._enableFuseGyro = data['enableFuseGyro']
00030 
00031     def toDict(self):
00032         data = dict()
00033 
00034         data['type'] = IMU
00035         data['pubHz'] = self._pubHz
00036         data['name'] = self._name
00037         data['frameId'] = self._frameId
00038         data['decAng'] = self._decAng
00039         data['orientation'] = self._orientation
00040         data['fusionHz'] = self._fusionHz
00041         data['enableFuseGyro'] = self._enableFuseGyro
00042 
00043         return data
00044 
00045     def printDetails(self):
00046         self._frame.layout().addRow(QLabel('Publish Hz: '), QLabel(self._pubHz))
00047         self._frame.layout().addRow(QLabel('Name: '), QLabel(self._name))
00048         self._frame.layout().addRow(QLabel('Frame id: '), QLabel(self._frameId))
00049         self._frame.layout().addRow(QLabel('Declination angle: '), QLabel(self._decAng))
00050         self._frame.layout().addRow(QLabel('Board orientation: '), QLabel(self._orientation))
00051         self._frame.layout().addRow(QLabel('Fusion Hz: '), QLabel(self._fusionHz))
00052 
00053         isFuseGyro = 'Disable'
00054         if self._enableFuseGyro: isFuseGyro = 'Enable'
00055 
00056         self._frame.layout().addRow(QLabel('Fusion gyro: '), QLabel(isFuseGyro))
00057 
00058     def saveToFile(self, file):
00059         enableFuseGyro = '0'
00060         if self._enableFuseGyro:
00061             enableFuseGyro = '1'
00062 
00063         file.write('IMU/publishHz: ' + self._pubHz + '\n')
00064         file.write('IMU/name: ' + self._name + '\n')
00065         file.write('IMU/frameId: ' + self._frameId + '\n')
00066         file.write('IMU/camp: ' + self._decAng + '\n')
00067         file.write('IMU/orientation: ' + self._orientation + '\n')
00068         file.write('IMU/fusionHz: ' + self._fusionHz + '\n')
00069         file.write('IMU/fuseGyro: ' + enableFuseGyro + '\n')
00070 
00071     def showDetails(self, items=None):
00072         self.pubHz = QLineEdit(self._pubHz)
00073         self.name = QLineEdit(self._name)
00074         self.frameId = QLineEdit(self._frameId)
00075         self.decAng = QLineEdit(self._decAng)
00076         self.orientation = QLineEdit(self._orientation)
00077         self.fusionHz = QLineEdit(self._fusionHz)
00078         self.enableFuseGyro = QCheckBox('')
00079 
00080         self.enableFuseGyro.setChecked(self._enableFuseGyro)
00081 
00082         self._frame.layout().addRow(QLabel('Publish Hz: '), self.pubHz)
00083         self._frame.layout().addRow(QLabel('Name: '), self.name)
00084         self._frame.layout().addRow(QLabel('Frame id: '), self.frameId)
00085         self._frame.layout().addRow(QLabel('Declination angle: '), self.decAng)
00086         self._frame.layout().addRow(QLabel('Board orientation: '), self.orientation)
00087         self._frame.layout().addRow(QLabel('Fusion Hz: '), self.fusionHz)
00088         self._frame.layout().addRow(QLabel('Fusion gyro: '), self.enableFuseGyro)
00089 
00090     def getName(self):
00091         return self._name
00092 
00093     def add(self):
00094         old = self._name
00095         self._name = str(self.name.text())
00096 
00097         if not self.nameIsValid():
00098             error = QErrorMessage()
00099             error.setWindowTitle("Same name error")
00100             error.showMessage("Name already taken.")
00101             error.exec_()
00102             self._name = old
00103             self._isValid = False
00104             return
00105 
00106         self._pubHz = str(self.pubHz.text())
00107         self._name = str(self.name.text())
00108         self._frameId = str(self.frameId.text())
00109         self._decAng = str(self.decAng.text())
00110         self._orientation = str(self.orientation.text())
00111         self._fusionHz = str(self.fusionHz.text())
00112         self._enableFuseGyro = self.enableFuseGyro.isChecked()
00113 
00114         if int(self._pubHz) > int(self._fusionHz):
00115             QMessageBox.critical(self._frame, "Error", "Fusion Hz must be equal or bigger then publish Hz.")
00116             return
00117 
00118         self._isValid = True


ric_board
Author(s): RoboTiCan
autogenerated on Fri Oct 27 2017 03:02:30