Urf.py
Go to the documentation of this file.
00001 __author__ = 'tom1231'
00002 from PyQt4.QtGui import *
00003 from BAL.Interface.DeviceFrame import DeviceFrame, URF
00004 
00005 
00006 class Urf(DeviceFrame):
00007     urfCount = 0
00008 
00009     def __init__(self, frame, data, urfPorts):
00010         DeviceFrame.__init__(self, URF, frame, data)
00011         self.mainPorts = urfPorts
00012         self._pubHz = '50'
00013         self._name = 'RiC_URF'
00014         self._frameId = 'RiC_URF_Frame'
00015         self._urfType = '10'
00016         self._port = str(self.mainPorts.currentText())
00017 
00018     def fromDict(self, data):
00019         self._pubHz = data['pubHz']
00020         self._name = data['name']
00021         self._frameId = data['frameId']
00022         self._urfType = data['urfType']
00023         self._port = data['port']
00024 
00025     def toDict(self):
00026         data = dict()
00027         data['type'] = URF
00028         data['pubHz'] = self._pubHz
00029         data['name'] = self._name
00030         data['frameId'] = self._frameId
00031         data['urfType'] = self._urfType
00032         data['port'] = self._port
00033 
00034         return data
00035 
00036     def getCurrentUrfTypeInex(self):
00037         if self._urfType == '10': return 0
00038         return 1
00039 
00040     def findItem(self):
00041         for i in xrange(self.mainPorts.count()):
00042             if self._port == str(self.mainPorts.itemText(i)):
00043                 return i
00044         return 1
00045 
00046     def printDetails(self):
00047         self._frame.layout().addRow(QLabel('Publish Hz: '), QLabel(self._pubHz))
00048         self._frame.layout().addRow(QLabel('name: '), QLabel(self._name))
00049         self._frame.layout().addRow(QLabel('Frame id: '), QLabel(self._frameId))
00050         if self._urfType == '10': self._frame.layout().addRow(QLabel('Type: '), QLabel('HRLV-MaxSonar-EZ'))
00051         else: self._frame.layout().addRow(QLabel('Type: '), QLabel('LV-MaxSonar-EZ'))
00052         self._frame.layout().addRow(QLabel('Port: '), QLabel(self._port))
00053 
00054     def getName(self):
00055         return self._name
00056 
00057     def getPort(self):
00058         return self._port
00059 
00060     def saveToFile(self, file):
00061         file.write('URF' + str(Urf.urfCount) + '/publishHz: ' + self._pubHz + '\n')
00062         file.write('URF' + str(Urf.urfCount) + '/name: ' + self._name + '\n')
00063         file.write('URF' + str(Urf.urfCount) + '/frameId: ' + self._frameId + '\n')
00064         file.write('URF' + str(Urf.urfCount) + '/type: ' + self._urfType + '\n')
00065         file.write('URF' + str(Urf.urfCount) + '/port: ' + self._port + '\n')
00066         Urf.urfCount += 1
00067 
00068     def showDetails(self, items=None):
00069         self.urfPorts = QComboBox()
00070         self.urfTypes = QComboBox()
00071 
00072         self.urfTypes.addItem('HRLV-MaxSonar-EZ', '10')
00073         self.urfTypes.addItem('LV-MaxSonar-EZ', '11')
00074         self.urfPorts.addItems([self.mainPorts.itemText(i) for i in xrange(self.mainPorts.count())])
00075         self.urfPorts.setCurrentIndex(self.findItem())
00076         self.urfTypes.setCurrentIndex(self.getCurrentUrfTypeInex())
00077 
00078         self.pubHz = QLineEdit(self._pubHz)
00079         self.name = QLineEdit(self._name)
00080         self.frameId = QLineEdit(self._frameId)
00081         self.frameId = QLineEdit(self._frameId)
00082 
00083         self._frame.layout().addRow(QLabel('Publish Hz: '), self.pubHz)
00084         self._frame.layout().addRow(QLabel('name: '), self.name)
00085         self._frame.layout().addRow(QLabel('Frame id: '), self.frameId)
00086         self._frame.layout().addRow(QLabel('Type: '), self.urfTypes)
00087         self._frame.layout().addRow(QLabel('Port: '), self.urfPorts)
00088 
00089     def add(self):
00090         old = self._name
00091         self._name = str(self.name.text())
00092 
00093         if not self.nameIsValid():
00094             error = QErrorMessage()
00095             error.setWindowTitle("Same name error")
00096             error.showMessage("Name already taken.")
00097             error.exec_()
00098             self._name = old
00099             self._isValid = False
00100             return
00101 
00102         self._isValid = True
00103         self._pubHz = str(self.pubHz.text())
00104         self._name = str(self.name.text())
00105         self._frameId = str(self.frameId.text())
00106         self._urfType = str(self.urfTypes.itemData(self.urfTypes.currentIndex()).toString())
00107         self._port = str(self.urfPorts.currentText())
00108         self.mainPorts.removeItem(self.urfPorts.currentIndex())


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