From dbf43c8e788d38fe5333dead6a97b151c6688de9 Mon Sep 17 00:00:00 2001 From: Markus Hitter Date: Sat, 30 May 2015 23:14:57 +0200 Subject: [PATCH] Configtool: provide only free heater pins on heater creation. --- configtool/heaterspage.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/configtool/heaterspage.py b/configtool/heaterspage.py index f62932f..8a515b3 100644 --- a/configtool/heaterspage.py +++ b/configtool/heaterspage.py @@ -72,12 +72,24 @@ class HeatersPage(wx.Panel, Page): self.bDelete.Enable(True) self.bModify.Enable(True) + def getFreePins(self): + freePins = [] + self.validPins + usedPins = [] + for s in self.heaters: + usedPins.append(s[1]) + + for p in usedPins: + if p in freePins: + freePins.remove(p) + + return freePins + def doAdd(self, evt): nm = [] for s in self.heaters: nm.append(s[0]) - dlg = AddHeaterDlg(self, nm, self.validPins, self.font) + dlg = AddHeaterDlg(self, nm, self.getFreePins(), self.font) rc = dlg.ShowModal() if rc == wx.ID_OK: ht = dlg.getValues() @@ -103,7 +115,7 @@ class HeatersPage(wx.Panel, Page): h = self.heaters[self.selection] - dlg = AddHeaterDlg(self, nm, self.validPins, self.font, + dlg = AddHeaterDlg(self, nm, [h[1]] + self.getFreePins(), self.font, name = h[0], pin = h[1], pwm = h[2]) rc = dlg.ShowModal() if rc == wx.ID_OK: