diff --git a/doc/revpicheckclient.html b/doc/revpicheckclient.html index 7b5ca6f..2069514 100644 --- a/doc/revpicheckclient.html +++ b/doc/revpicheckclient.html @@ -82,6 +82,9 @@ Methods hideallwindows Versteckt alle Fenster. +maxint +Errechnet maximalen int() Wert für Bytes max 22. + readvalues Ruft nur Input Werte von RevPi ab und aktualisiert Fenster. @@ -236,7 +239,23 @@ RevPiCheckClient.hideallwindows hideallwindows()

Versteckt alle Fenster. -

+

+

+RevPiCheckClient.maxint

+maxint(bytelen) +

+Errechnet maximalen int() Wert für Bytes max 22. +

+
bytelen
+
+Anzahl Bytes +
+
+
Returns:
+
+int() max oder 0 bei Überschreitung +
+

RevPiCheckClient.readvalues

readvalues() diff --git a/revpipycontrol.api b/revpipycontrol.api index 0fcb54c..4c807c3 100644 --- a/revpipycontrol.api +++ b/revpipycontrol.api @@ -11,6 +11,7 @@ revpicheckclient.RevPiCheckClient._onfrmconf?5(canvas) revpicheckclient.RevPiCheckClient._warnwrite?5() revpicheckclient.RevPiCheckClient._workvalues?5(io_dicts=None, writeout=False) revpicheckclient.RevPiCheckClient.hideallwindows?4() +revpicheckclient.RevPiCheckClient.maxint?4(bytelen) revpicheckclient.RevPiCheckClient.readvalues?4() revpicheckclient.RevPiCheckClient.refreshvalues?4() revpicheckclient.RevPiCheckClient.tmr_workvalues?4() diff --git a/revpipycontrol/revpicheckclient.py b/revpipycontrol/revpicheckclient.py index 9226f2e..1b25490 100644 --- a/revpipycontrol/revpicheckclient.py +++ b/revpipycontrol/revpicheckclient.py @@ -96,7 +96,7 @@ class RevPiCheckClient(tkinter.Frame): try: newvalue = io[5].get() # Wertebereich prüfen - if newvalue < 0 or newvalue > 256 ** io[1] - 1: + if newvalue < 0 or newvalue > self.maxint(io[1]): raise ValueError("too big") self.__chval(device, io) @@ -177,7 +177,7 @@ class RevPiCheckClient(tkinter.Frame): check.grid(column=1, row=rowcount) else: var = tkinter.IntVar() - txt = tkinter.Spinbox(s_frame, to=256 ** io[1] - 1) + txt = tkinter.Spinbox(s_frame, to=self.maxint(io[1])) txt.bind( "", lambda event, tkvar=var: self.__saveoldvalue(event, tkvar) @@ -189,7 +189,8 @@ class RevPiCheckClient(tkinter.Frame): ) txt["command"] = \ lambda device=device, io=io: self.__chval(device, io) - txt["state"] = "disabled" if iotype == "inp" else "normal" + txt["state"] = "disabled" if iotype == "inp" or \ + self.maxint(io[1]) == 0 else "normal" txt["width"] = 5 txt["textvariable"] = var txt.grid(column=1, row=rowcount) @@ -363,6 +364,12 @@ class RevPiCheckClient(tkinter.Frame): for win in self.dict_wins: self.dict_wins[win].withdraw() + def maxint(self, bytelen): + u"""Errechnet maximalen int() Wert für Bytes max 22. + @param bytelen Anzahl Bytes + @return int() max oder 0 bei Überschreitung""" + return 0 if bytelen > 22 else 256 ** bytelen - 1 + def readvalues(self): u"""Ruft nur Input Werte von RevPi ab und aktualisiert Fenster.""" if not self.autorw.get():