Go to the documentation of this file.00001 __author__ = 'tom1231'
00002
00003 from PyQt4.QtCore import QUrl
00004 from PyQt4.QtGui import *
00005 from BAL.Interface.DeviceFrame import DeviceFrame, EX_DEV, PPMReader
00006 from lxml.etree import Element, SubElement, XML
00007
00008 class PPMReader(DeviceFrame):
00009 def __init__(self, frame, data):
00010 DeviceFrame.__init__(self, EX_DEV, frame, data)
00011 self._diffTopic = '/diff'
00012 self._ppmTopic = '/RiC_PPM'
00013
00014 def fromDict(self, data):
00015 self._diffTopic = data['diff']
00016 self._ppmTopic = data['ppm']
00017
00018 def toDict(self):
00019 data = dict()
00020
00021 data['type'] = PPMReader
00022 data['diff'] = self._diffTopic
00023 data['ppm'] = self._ppmTopic
00024
00025 return data
00026
00027 def add(self):
00028 if not self.nameIsValid():
00029 error = QErrorMessage()
00030 error.setWindowTitle("Same name error")
00031 error.showMessage("Name already taken.")
00032 error.exec_()
00033 self._isValid = False
00034 return
00035 self._diffTopic = str(self.diffTopic.text())
00036 self._ppmTopic = str(self.ppmTopic.text())
00037 self._isValid = True
00038
00039 def showDetails(self, items=None):
00040 self.diffTopic = QLineEdit(self._diffTopic)
00041 self.ppmTopic = QLineEdit(self._ppmTopic)
00042
00043 self._frame.layout().addRow(QLabel('Differential drive topic: '), self.diffTopic)
00044 self._frame.layout().addRow(QLabel('PPM topic: '), self.ppmTopic)
00045
00046 def printDetails(self):
00047 self._frame.layout().addRow(QLabel('Differential drive topic: '), QLabel(self._diffTopic))
00048 self._frame.layout().addRow(QLabel('PPM topic: '), QLabel(self._ppmTopic))
00049
00050 def saveToFile(self, parent):
00051 keysAtt = parent.keys()
00052 ns = ''
00053 if len(keysAtt) > 0 and keysAtt[0] == 'ns':
00054 ns = '/' + parent.get('ns')
00055 element = SubElement(parent, 'include', {
00056 'file': '$(find ric_board)/scripts/RiCPPMReader.launch'
00057 })
00058
00059 SubElement(element, 'arg', {
00060 'name': 'ppmTopic',
00061 'value': ns + self._ppmTopic
00062 })
00063
00064 SubElement(element, 'arg', {
00065 'name': 'diffTopic',
00066 'value': ns + self._diffTopic
00067 })
00068
00069 def getName(self):
00070 return 'ppm_reader'
00071