CloseLoopTwo.py
Go to the documentation of this file.
00001 
00002 
00003 __author__ = 'tom1231'
00004 from BAL.Interface.DeviceFrame import CLOSE_LOP_TWO
00005 from BAL.Devices.CloseLoop import CloseLoop
00006 from PyQt4.QtGui import *
00007 
00008 
00009 class CloseLoopTwo(CloseLoop):
00010     def __init__(self, frame, data, encoders):
00011         CloseLoop.__init__(self, frame, data, encoders)
00012         self.setType(CLOSE_LOP_TWO)
00013         self.mainPorts.setCurrentIndex(1)
00014         self._encoder2 = str(self.mainPorts.currentText())
00015 
00016     def getEncoders(self):
00017         return self._encoder, self._encoder2
00018 
00019     def findItem2(self):
00020         for i in xrange(self.mainPorts.count()):
00021             if self._encoder2 == str(self.mainPorts.itemText(i)):
00022                 return i
00023         return 1
00024 
00025     def toDict(self):
00026         data = CloseLoop.toDict(self)
00027         data['type'] = CLOSE_LOP_TWO
00028         data['encoder2'] = self._encoder2
00029         return data
00030 
00031     def fromDict(self, data):
00032         CloseLoop.fromDict(self, data)
00033         self._encoder2 = data['encoder2']
00034 
00035     def add(self):
00036         old = self._name
00037         self._name = str(self.name.text())
00038 
00039         if not self.nameIsValid():
00040             error = QErrorMessage()
00041             error.setWindowTitle("Same name error")
00042             error.showMessage("Name already taken.")
00043             error.exec_()
00044             self._name = old
00045             self._isValid = False
00046             return
00047 
00048         self._encoder = str(self.encoders.currentText())
00049         self._encoder2 = str(self.encoders2.currentText())
00050         if self._encoder == self._encoder2:
00051             error = QErrorMessage()
00052             error.setWindowTitle("Same encoder port error")
00053             error.showMessage("Can not have the same encoder ports.")
00054             error.exec_()
00055             self._isValid = False
00056             return
00057         self._isValid = True
00058         self._dirEnc = self.dirEnc.isChecked()
00059         self._dirMotor = self.dirMotor.isChecked()
00060         self._pubHz = str(self.pubHz.text())
00061         self._name = str(self.name.text())
00062         self._lpfHz = str(self.lpfHz.text())
00063         self._lpfAlpha = str(self.lpfAlpha.text())
00064         self._driverAdd = str(self.driverAdd.text())
00065         self._channel = str(self.channel.text())
00066         self._pidHz = str(self.pidHz.text())
00067         self._kp = str(self.kp.text())
00068         self._ki = str(self.ki.text())
00069         self._kd = str(self.kd.text())
00070         self._limit = str(self.limit.text())
00071         self._maxSpeed = str(self.maxSpeed.text())
00072         self._ppr = str(self.ppr.text())
00073         self._timeout = str(self.timeout.text())
00074         self._motorType = str(self.motorTypes.itemData(self.motorTypes.currentIndex()).toString())
00075         self._driverType = str(self.driverType.itemData(self.driverType.currentIndex()).toString())
00076 
00077         self.mainPorts.removeItem(self.findItem())
00078 
00079         self.mainPorts.removeItem(self.findItem2())
00080 
00081     def saveToFile(self, file):
00082         CloseLoop.saveToFile(self, file)
00083         file.write('closeLoop' + str(CloseLoop.closeLoop - 1) + '/port2: ' + self._encoder2 + '\n')
00084 
00085     def encoderType(self):
00086         return '2'
00087 
00088 
00089     def printEncoder(self):
00090         self._frame.layout().addRow(QLabel('Encoder1: '), QLabel(self._encoder))
00091         self._frame.layout().addRow(QLabel('Encoder2: '), QLabel(self._encoder2))
00092 
00093     def setEncode(self):
00094         self.encoders = QComboBox()
00095         self.encoders.addItems([self.mainPorts.itemText(i) for i in xrange(self.mainPorts.count())])
00096         self.encoders.setCurrentIndex(self.findItem())
00097 
00098         self.encoders2 = QComboBox()
00099         self.encoders2.addItems([self.mainPorts.itemText(i) for i in xrange(self.mainPorts.count())])
00100         self.encoders2.setCurrentIndex(self.findItem2())
00101 
00102         self._frame.layout().addRow(QLabel('Encoder1: '), self.encoders)
00103         self._frame.layout().addRow(QLabel('Encoder2: '), self.encoders2)
00104 
00105 


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