Go to the documentation of this file.00001 from PyQt4.QtGui import *
00002 from BAL.Interface.DeviceFrame import DeviceFrame, EMERGENCY_SWITCH
00003
00004
00005 class EmergencySwitch(DeviceFrame):
00006 emergency_switch_count = 0
00007
00008 def __init__(self, frame, data):
00009 DeviceFrame.__init__(self, EMERGENCY_SWITCH, frame, data)
00010 self._pin_to_listen = '27'
00011 self._state = '1'
00012 self._name = 'emergency_switch'
00013
00014 def showDetails(self, items=None):
00015 self.pin_to_listen = QLineEdit(self._pin_to_listen)
00016 self.state = QComboBox()
00017 self.name = QLineEdit(self._name)
00018
00019 self.state.addItem("Normally open", '1')
00020 self.state.addItem("Normally close", '2')
00021 self.state.setCurrentIndex(int(self._state) - 1)
00022
00023 self._frame.layout().addRow(QLabel('name: '), self.name)
00024 self._frame.layout().addRow(QLabel('Pin to listen: '), self.pin_to_listen)
00025 self._frame.layout().addRow(QLabel('Mode: '), self.state)
00026
00027 def getName(self):
00028 return self._name
00029
00030 def saveToFile(self, file):
00031 file.write('emergency_switch{0}/pin: {1}\n'.format(str(EmergencySwitch.emergency_switch_count), self._pin_to_listen))
00032 file.write('emergency_switch{0}/state: {1}\n'.format(str(EmergencySwitch.emergency_switch_count), self._state))
00033 file.write('emergency_switch{0}/name: {1}\n'.format(str(EmergencySwitch.emergency_switch_count), self._name))
00034 EmergencySwitch.emergency_switch_count += 1
00035
00036 def printDetails(self):
00037 self._frame.layout().addRow(QLabel('name: '), QLabel(self._name))
00038 self._frame.layout().addRow(QLabel('Pin to listen: '), QLabel(self._pin_to_listen))
00039
00040 mode = 'Normally '
00041 if self._state == '1':
00042 mode += 'open'
00043 else:
00044 mode += 'close'
00045
00046 self._frame.layout().addRow(QLabel('Mode: '), QLabel(mode))
00047
00048 def fromDict(self, data):
00049 self._pin_to_listen = data['pinToListen']
00050 self._state = data['state']
00051 if data.has_key('name'):
00052 self._name = data['name']
00053 else:
00054 self._name = 'emergency_switch'
00055
00056 def toDict(self):
00057 data = dict()
00058
00059 data['type'] = EMERGENCY_SWITCH
00060 data['name'] = self.getName()
00061 data['pinToListen'] = self._pin_to_listen
00062 data['state'] = self._state
00063
00064 return data
00065
00066 def add(self):
00067 old_name = self._name
00068 self._name = str(self.name.text())
00069 if not self.nameIsValid():
00070 QMessageBox.critical(self._frame, "Error", "Name already exist")
00071 self._name = old_name
00072 self._isValid = False
00073 return
00074 self._pin_to_listen = str(self.pin_to_listen.text())
00075 self._state = str(self.state.itemData(self.state.currentIndex()).toString())
00076 self._isValid = True