Relay.py
Go to the documentation of this file.
00001 __author__ = 'tom1231'
00002 from PyQt4.QtGui import *
00003 from BAL.Interface.DeviceFrame import DeviceFrame, RELAY
00004 
00005 
00006 class Relay(DeviceFrame):
00007     relayCount = 0
00008 
00009     def __init__(self, frame, data, relayPorts):
00010         DeviceFrame.__init__(self, RELAY, frame, data)
00011         self.mainPorts = relayPorts
00012 
00013         self._name = 'RiC_Relay'
00014         self._port = self._port = str(self.mainPorts.currentText())
00015 
00016     def fromDict(self, data):
00017         self._name = data['name']
00018         self._port = data['port']
00019 
00020     def toDict(self):
00021         data = dict()
00022         data['type'] = RELAY
00023         data['name'] = self._name
00024         data['port'] = self._port
00025 
00026         return data
00027 
00028     def findItem(self):
00029         for i in xrange(self.mainPorts.count()):
00030             if self._port == str(self.mainPorts.itemText(i)):
00031                 return i
00032         return 1
00033 
00034     def getPort(self):
00035         return self._port
00036 
00037     def saveToFile(self, file):
00038         file.write('relay' + str(Relay.relayCount) + '/name: ' + self._name + '\n')
00039         file.write('relay' + str(Relay.relayCount) + '/port: ' + self._port + '\n')
00040         Relay.relayCount += 1
00041 
00042     def showDetails(self, items=None):
00043         self.relayPorts = QComboBox()
00044         self.relayPorts.addItems([self.mainPorts.itemText(i) for i in xrange(self.mainPorts.count())])
00045         self.relayPorts.setCurrentIndex(self.findItem())
00046 
00047         self.name = QLineEdit(self._name)
00048 
00049         self._frame.layout().addRow(QLabel('name: '), self.name)
00050         self._frame.layout().addRow(QLabel('Port: '), self.relayPorts)
00051 
00052     def add(self):
00053         old = self._name
00054         self._name = str(self.name.text())
00055 
00056         if not self.nameIsValid():
00057             error = QErrorMessage()
00058             error.setWindowTitle("Same name error")
00059             error.showMessage("Name already taken.")
00060             error.exec_()
00061             self._name = old
00062             self._isValid = False
00063             return
00064 
00065         self._isValid = True
00066         self._port = str(self.relayPorts.currentText())
00067         self.mainPorts.removeItem(self.relayPorts.currentIndex())
00068 
00069     def printDetails(self):
00070         self._frame.layout().addRow(QLabel('name: '), QLabel(self._name))
00071         self._frame.layout().addRow(QLabel('Port: '), QLabel(self._port))
00072 
00073     def getName(self):
00074         return self._name


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