def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.ui = Ui_Dialog() self.ui.setupUi(self) slider=self.ui.verticalSlider slider.valueChanged[int].connect(self.print_value) slider.sliderReleased.connect(self.dimmer) lb= self.ui.label lb.setText("0%") info_lb= self.ui.info info_lb.setText("%s being tested" %dev_ID) #loading initial values if (dev_ID =='00000000'): info_lb.setText("%s is not a device" %dev_ID) else: self.setValue('current', 'R0001') self.setValue('temperature', 'R0004') self.setValue('ldr', 'R0003') self.setValue('rssi', 'R0254') self.setValue('dimmer', 'R0005') self.setValue('pir', 'R0002') self.ui.current_button.clicked.connect(lambda: self.setValue('current', 'R0001')) self.ui.temp_button.clicked.connect(lambda: self.setValue('temperature', 'R0004')) self.ui.ldr_button.clicked.connect(lambda: self.setValue('ldr', 'R0003')) self.ui.rssi_button.clicked.connect(lambda: self.setValue('rssi', 'R0254')) self.ui.dimmer_button.clicked.connect(lambda: self.setValue('dimmer', 'R0005')) self.ui.pir_button.clicked.connect(lambda: self.setValue('pir', 'R0002')) self.ui.fw_button.clicked.connect(self.get_fw)
class MyDialog(QtGui.QDialog): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.ui = Ui_Dialog() self.ui.setupUi(self) slider=self.ui.verticalSlider slider.valueChanged[int].connect(self.print_value) slider.sliderReleased.connect(self.dimmer) lb= self.ui.label lb.setText("0%") info_lb= self.ui.info info_lb.setText("%s being tested" %dev_ID) #loading initial values if (dev_ID =='00000000'): info_lb.setText("%s is not a device" %dev_ID) else: self.setValue('current', 'R0001') self.setValue('temperature', 'R0004') self.setValue('ldr', 'R0003') self.setValue('rssi', 'R0254') self.setValue('dimmer', 'R0005') self.setValue('pir', 'R0002') self.ui.current_button.clicked.connect(lambda: self.setValue('current', 'R0001')) self.ui.temp_button.clicked.connect(lambda: self.setValue('temperature', 'R0004')) self.ui.ldr_button.clicked.connect(lambda: self.setValue('ldr', 'R0003')) self.ui.rssi_button.clicked.connect(lambda: self.setValue('rssi', 'R0254')) self.ui.dimmer_button.clicked.connect(lambda: self.setValue('dimmer', 'R0005')) self.ui.pir_button.clicked.connect(lambda: self.setValue('pir', 'R0002')) self.ui.fw_button.clicked.connect(self.get_fw) def print_value(self, value): self.ui.label.setText("%d %%" %value) # gets the dimmer value from slider and publish it on device topic def dimmer(self): value = self.ui.verticalSlider.value() if (dev_ID =='00000000'): info_lb.setText("%s is not a device" %dev_ID) else: client.connect("192.168.0.100", 1883, 60) #client.on_connect = on_connect if value < 10: client.publish("lights/%s" %dev_ID, "W0001-00%s" %value) else: client.publish("lights/%s" %dev_ID, "W0001-0%s" %value) client.disconnect() # Connect the client, subscribe in a given topic, publish the message and shows the feedback on gui def setValue(self, topic, signal): def setDisplay(client, userdata, msg): data= msg.payload if topic == 'current': self.ui.current_display.setText(data) elif topic == 'temperature': self.ui.temp_display.setText(data) elif topic == 'ldr': self.ui.ldr_display.setText(data) elif topic == 'rssi': self.ui.rssi_display.setText("%s dBm" %data) elif topic == 'dimmer': self.ui.dimmer_display.setText("%s%%" %data) elif topic == 'pir': self.ui.pir_display.setText(data) client.disconnect() client.connect("192.168.0.100", 1883, 60) client.subscribe("lights/%s/%s" %(dev_ID,topic)) client.on_message = setDisplay client.publish("lights/%s" %dev_ID, "%s" %signal ) client.loop_forever() time.sleep(0.3) def get_fw(self): def set_fwDisplay(client, userdata, msg): data= msg.payload self.ui.fw_display.setText(data) client.disconnect() client.connect("192.168.0.100", 1883, 60) client.subscribe("lights/%s/status" %dev_ID) client.on_message = set_fwDisplay client.publish("lights/%s" %dev_ID, "R0255") client.loop_forever() time.sleep(0.3)