emergencySwitch.py
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


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