Go to the documentation of this file.00001 __author__ = 'tom1231'
00002 from PyQt4.QtGui import *
00003 from BAL.Interface.DeviceFrame import DeviceFrame, OPEN_LOP
00004
00005
00006 class OpenLoop(DeviceFrame):
00007 openLoopNum = 0
00008
00009 def __init__(self, frame, data):
00010 DeviceFrame.__init__(self, OPEN_LOP, frame, data)
00011
00012 self._name = 'motor'
00013 self._driverAdd = '128'
00014 self._channel = '1'
00015 self._timeout = '1000'
00016 self._maxSpeed = '127'
00017 self._dirMotor = False
00018
00019 def fromDict(self, data):
00020
00021 self._name = data['name']
00022 self._driverAdd = data['driverAdd']
00023 self._channel = data['channel']
00024 self._timeout = data['timeout']
00025 self._maxSpeed = data['maxSpeed']
00026 self._dirMotor = data['dirMotor']
00027
00028 def toDict(self):
00029 data = dict()
00030 data['type'] = OPEN_LOP
00031 data['name'] = self._name
00032 data['driverAdd'] = self._driverAdd
00033 data['channel'] = self._channel
00034 data['timeout'] = self._timeout
00035 data['maxSpeed'] = self._maxSpeed
00036 data['dirMotor'] = self._dirMotor
00037
00038 return data
00039
00040 def saveToFile(self, file):
00041 file.write('openLoop' + str(OpenLoop.openLoopNum) + '/name: ' + self._name + '\n')
00042 file.write('openLoop' + str(OpenLoop.openLoopNum) + '/address: ' + self._driverAdd + '\n')
00043 file.write('openLoop' + str(OpenLoop.openLoopNum) + '/channel: ' + self._channel + '\n')
00044 file.write('openLoop' + str(OpenLoop.openLoopNum) + '/timeout: ' + self._timeout + '\n')
00045 file.write('openLoop' + str(OpenLoop.openLoopNum) + '/max: ' + self._maxSpeed + '\n')
00046 if self._dirMotor: file.write('openLoop' + str(OpenLoop.openLoopNum) + '/direction: ' + '-1' + '\n')
00047 else: file.write('openLoop' + str(OpenLoop.openLoopNum) + '/direction: ' + '1' + '\n')
00048 OpenLoop.openLoopNum += 1
00049
00050 def add(self):
00051 old = self._name
00052 self._name = str(self.name.text())
00053
00054 if not self.nameIsValid():
00055 error = QErrorMessage()
00056 error.setWindowTitle("Same name error")
00057 error.showMessage("Name already taken.")
00058 error.exec_()
00059 self._name = old
00060 self._isValid = False
00061 return
00062
00063 self._isValid = True
00064 self._name = str(self.name.text())
00065 self._driverAdd = str(self.driverAdd.text())
00066 self._channel = str(self.channel.text())
00067 self._timeout = str(self.timeout.text())
00068 self._maxSpeed = str(self.maxSpeed.text())
00069 self._dirMotor = self.dirMotor.isChecked()
00070
00071 def printDetails(self):
00072 self._frame.layout().addRow(QLabel('name: '), QLabel(self._name))
00073 self._frame.layout().addRow(QLabel('Driver Address: '), QLabel(self._driverAdd))
00074 self._frame.layout().addRow(QLabel('Channel: '), QLabel(self._channel))
00075 self._frame.layout().addRow(QLabel('Timeout (in millisSecond): '), QLabel(self._timeout))
00076 self._frame.layout().addRow(QLabel('Max speed: '), QLabel(self._maxSpeed))
00077 if self._dirMotor: self._frame.layout().addRow(QLabel('Direction: '), QLabel('Enable'))
00078 else: self._frame.layout().addRow(QLabel('Reverse direction: '), QLabel('Disable'))
00079
00080 def getName(self):
00081 return self._name
00082
00083 def showDetails(self, items=None):
00084 self.name = QLineEdit(self._name)
00085 self.driverAdd = QLineEdit(self._driverAdd)
00086 self.channel = QLineEdit(self._channel)
00087 self.timeout = QLineEdit(self._timeout)
00088 self.maxSpeed = QLineEdit(self._maxSpeed)
00089 self.dirMotor = QCheckBox('')
00090
00091 self.dirMotor.setChecked(self._dirMotor)
00092
00093 self._frame.layout().addRow(QLabel('name: '), self.name)
00094 self._frame.layout().addRow(QLabel('Driver Address: '), self.driverAdd)
00095 self._frame.layout().addRow(QLabel('Channel: '), self.channel)
00096 self._frame.layout().addRow(QLabel('Timeout (in millisSecond): '), self.timeout)
00097 self._frame.layout().addRow(QLabel('Max speed: '), self.maxSpeed)
00098 self._frame.layout().addRow(QLabel('Reverse direction: '), self.dirMotor)