Exemplo n.º 1
0
 def __lt__(self, other):
     a = self.sortKey.text()
     b = other.sortKey.text()
     if len(a) == 5 and len(b) == 5 and a[2] == ":" and b[2] == ":":
         # we compare times
         return stringtoseconds(a) < stringtoseconds(b)
     else:
         try:
             # if those are numbers
             return int(a) < int(b)
         except:
             # else we do a string compare
             return a < b
Exemplo n.º 2
0
 def calculateRC(self):
     if len(self.aw.qmc.timex) > 2:
         if not len(self.startEdit.text()) or not len(self.endEdit.text()):
             #empty field
             return
         starttime = stringtoseconds(str(self.startEdit.text()))
         endtime = stringtoseconds(str(self.endEdit.text()))
         if starttime == -1 or endtime == -1:
             self.result1.setText(
                 QApplication.translate(
                     "Label", "Time syntax error. Time not valid", None))
             self.result2.setText("")
             return
         if endtime > self.aw.qmc.timex[-1] or endtime < starttime:
             self.result1.setText(
                 QApplication.translate(
                     "Label", "Error: End time smaller than Start time",
                     None))
             self.result2.setText("")
             return
         if self.aw.qmc.timeindex[0] != -1:
             start = self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
         else:
             start = 0
         startindex = self.aw.qmc.time2index(starttime + start)
         endindex = self.aw.qmc.time2index(endtime + start)
         #delta
         deltatime = self.aw.qmc.timex[endindex] - self.aw.qmc.timex[
             startindex]
         deltatemperature = self.aw.qmc.temp2[endindex] - self.aw.qmc.temp2[
             startindex]
         if deltatime == 0:
             deltaseconds = 0
         else:
             deltaseconds = deltatemperature / deltatime
         deltaminutes = deltaseconds * 60.
         string1 = QApplication.translate(
             "Label", "Best approximation was made from {0} to {1}",
             None).format(
                 stringfromseconds(self.aw.qmc.timex[startindex] - start),
                 stringfromseconds(self.aw.qmc.timex[endindex] - start))
         string2 = QApplication.translate(
             "Label", "<b>{0}</b> {1}/sec, <b>{2}</b> {3}/min",
             None).format("%.2f" % (deltaseconds), self.aw.qmc.mode,
                          "%.2f" % (deltaminutes), self.aw.qmc.mode)
         self.result1.setText(string1)
         self.result2.setText(string2)
     else:
         self.result1.setText(
             QApplication.translate("Label", "No profile found", None))
         self.result2.setText("")
Exemplo n.º 3
0
 def validatetimeorder(self):
     time = []
     checks = self.readchecks()
     time.append(
         stringtoseconds(str(self.Edit0.text())) +
         self.aw.qmc.timex[self.aw.qmc.timeindex[0]])
     time.append(
         stringtoseconds(str(self.Edit1.text())) +
         self.aw.qmc.timex[self.aw.qmc.timeindex[0]])
     time.append(
         stringtoseconds(str(self.Edit2.text())) +
         self.aw.qmc.timex[self.aw.qmc.timeindex[0]])
     time.append(
         stringtoseconds(str(self.Edit3.text())) +
         self.aw.qmc.timex[self.aw.qmc.timeindex[0]])
     time.append(
         stringtoseconds(str(self.Edit4.text())) +
         self.aw.qmc.timex[self.aw.qmc.timeindex[0]])
     time.append(
         stringtoseconds(str(self.Edit5.text())) +
         self.aw.qmc.timex[self.aw.qmc.timeindex[0]])
     time.append(
         stringtoseconds(str(self.Edit6.text())) +
         self.aw.qmc.timex[self.aw.qmc.timeindex[0]])
     for i in range(len(time) - 1):
         if time[i + 1] <= time[i] and checks[i + 1] != 0:
             return i
     return 1000
Exemplo n.º 4
0
    def updatewindow(self):
        limits_changed = False
        # trigger auto limits on leaving the dialog if active
        if not self.aw.qmc.flagon and self.autotimexFlag.isChecked():
            self.autoAxis()
        if not self.aw.qmc.flagon and (self.autodeltaxETFlag.isChecked()
                                       or self.autodeltaxBTFlag.isChecked()):
            self.autoDeltaAxis()
        #
        self.aw.qmc.time_grid = self.timeGridCheckBox.isChecked()
        self.aw.qmc.temp_grid = self.tempGridCheckBox.isChecked()
        self.aw.qmc.loadaxisfromprofile = self.loadAxisFromProfile.isChecked()
        try:
            yl = int(str(self.ylimitEdit.text()))
            yl_min = int(str(self.ylimitEdit_min.text()))
            if yl > yl_min:
                if (self.aw.qmc.ylimit != yl) or (self.aw.qmc.ylimit_min !=
                                                  yl_min):
                    limits_changed = True
                self.aw.qmc.ylimit = yl
                self.aw.qmc.ylimit_min = yl_min
        except:
            pass
        try:
            zl = int(str(self.zlimitEdit.text()))
            zl_min = int(str(self.zlimitEdit_min.text()))
            if (self.aw.qmc.zlimit != zl) or (self.aw.qmc.zlimit_min !=
                                              zl_min):
                limits_changed = True
            if zl > zl_min:
                self.aw.qmc.zlimit = zl
                self.aw.qmc.zlimit_min = zl_min
        except:
            pass

        if limits_changed and self.aw.qmc.crossmarker == True:
            # switch crosslines off and on again to adjust for changed axis limits
            self.aw.qmc.togglecrosslines()
            self.aw.qmc.togglecrosslines()

        endedittime_str = str(self.xlimitEdit.text())
        if endedittime_str is not None and endedittime_str != "":
            endeditime = stringtoseconds(endedittime_str)
            self.aw.qmc.endofx = endeditime
            self.aw.qmc.locktimex_end = endeditime
        else:
            self.aw.qmc.endofx = self.aw.qmc.endofx_default
            self.aw.qmc.locktimex_end = self.aw.qmc.endofx_default

        startedittime_str = str(self.xlimitEdit_min.text())
        if startedittime_str is not None and startedittime_str != "":
            starteditime = stringtoseconds(startedittime_str)
            if starteditime >= 0 and self.aw.qmc.timeindex[0] != -1:
                self.aw.qmc.startofx = self.aw.qmc.timex[
                    self.aw.qmc.timeindex[0]] + starteditime
            elif starteditime >= 0 and self.aw.qmc.timeindex[0] == -1:
                self.aw.qmc.startofx = starteditime
            elif starteditime < 0 and self.aw.qmc.timeindex[0] != -1:
                self.aw.qmc.startofx = self.aw.qmc.timex[
                    self.aw.qmc.timeindex[0]] - abs(starteditime)
            else:
                self.aw.qmc.startofx = starteditime
            self.aw.qmc.locktimex_start = starteditime
        else:
            self.aw.qmc.startofx = self.aw.qmc.startofx_default
            self.aw.qmc.locktimex_start = self.aw.qmc.startofx_default

        try:
            step100 = self.step100Edit.text().strip()
            if step100 == "":
                self.aw.qmc.step100temp = None
            else:
                self.aw.qmc.step100temp = int(step100)
        except:
            pass

        resettime = stringtoseconds(str(self.resetEdit.text()))
        if resettime > 0:
            self.aw.qmc.resetmaxtime = resettime

        chargetime = stringtoseconds(str(self.chargeminEdit.text()))
        if chargetime <= 0:
            self.aw.qmc.chargemintime = chargetime

        self.aw.qmc.fixmaxtime = not self.fixmaxtimeFlag.isChecked()
        self.aw.qmc.locktimex = self.locktimexFlag.isChecked()
        self.aw.qmc.autotimex = self.autotimexFlag.isChecked()
        self.aw.qmc.autodeltaxET = self.autodeltaxETFlag.isChecked()
        self.aw.qmc.autodeltaxBT = self.autodeltaxBTFlag.isChecked()
        self.aw.qmc.redraw(recomputeAllDeltas=False)
        string = QApplication.translate(
            "Message",
            "xlimit = ({2},{3}) ylimit = ({0},{1}) zlimit = ({4},{5})",
            None).format(str(self.ylimitEdit_min.text()),
                         str(self.ylimitEdit.text()),
                         str(self.xlimitEdit_min.text()),
                         str(self.xlimitEdit.text()),
                         str(self.zlimitEdit_min.text()),
                         str(self.zlimitEdit.text()))
        self.aw.sendmessage(string)
        self.close()
Exemplo n.º 5
0
def extractProfileRoastLog(url, _):
    res = {}  # the interpreted data set
    try:
        s = requests.Session()
        s.mount('file://', FileAdapter())
        page = s.get(url.toString(),
                     timeout=(4, 15),
                     headers={"Accept-Encoding": "gzip"})
        tree = html.fromstring(page.content)

        title = ""
        title_elements = tree.xpath('//h2[contains(@id,"page-title")]/text()')
        if len(title_elements) > 0:
            title = title_elements[0].strip()

        tag_values = {}
        for tag in [
                "Roastable:", "Starting mass:", "Ending mass:", "Roasted on:",
                "Roasted by:", "Roaster:", "Roast level:", "Roast Notes:"
        ]:
            tag_elements = tree.xpath(
                '//td[contains(@class,"text-rt") and normalize-space(text())="{}"]/following::td[1]/text()'
                .format(tag))
            if len(tag_elements) > 0:
                tag_values[tag] = "\n".join([e.strip() for e in tag_elements])
        # {'Roastable:': '2003000 Diablo FTO BULK', 'Starting mass:': '140.00 lb', 'Ending mass:': '116.80 lb', 'Roasted on:': 'Thu, Jun 6th, 2019 11:11 PM', 'Roasted by:': '*****@*****.**', 'Roaster:': 'Diedrich CR-70'}

        if "Roasted on:" in tag_values:
            try:
                dt = dateutil.parser.parse(tag_values["Roasted on:"])
                dateQt = QDateTime.fromTime_t(int(round(dt.timestamp())))
                if dateQt.isValid():
                    res["roastdate"] = encodeLocal(dateQt.date().toString())
                    res["roastisodate"] = encodeLocal(dateQt.date().toString(
                        Qt.ISODate))
                    res["roasttime"] = encodeLocal(dateQt.time().toString())
                    res["roastepoch"] = int(dateQt.toTime_t())
                    res["roasttzoffset"] = libtime.timezone
            except:
                pass

        w_in = 0
        w_out = 0
        u = "lb"
        if "Starting mass:" in tag_values:
            w_in, u = tag_values["Starting mass:"].strip().split(" ")
        if "Ending mass:" in tag_values:
            w_out, u = tag_values["Ending mass:"].strip().split(" ")
        res["weight"] = [
            float(w_in),
            float(w_out), ("Kg" if u.strip() == "kg" else "lb")
        ]

        if "Roasted by:" in tag_values:
            res["operator"] = tag_values["Roasted by:"]
        if "Roaster:" in tag_values:
            res["roastertype"] = tag_values["Roaster:"]
        if "Roast level:" in tag_values:
            try:
                c = int(round(float(tag_values["Roast level:"])))
                res["ground_color"] = c
            except:
                pass
        if "Roast Notes:" in tag_values:
            res["roastingnotes"] = tag_values["Roast Notes:"]

        if title == "" and "Roastable:" in tag_values:
            title = tag_values["Roastable:"]
        if title != "":
            res["title"] = title

        # if DROP temp > 300 => F else C

        source_elements = tree.xpath('//script[contains(@id,"source")]/text()')
        if len(source_elements) > 0:
            source_element = source_elements[0].strip()

            pattern = re.compile(r"\"rid=(\d+)\"")
            d = pattern.findall(source_element)
            if len(d) > 0:
                rid = d[0]

                url = "https://roastlog.com/roasts/profiles/?rid={}".format(
                    rid)
                headers = {
                    "X-Requested-With": "XMLHttpRequest",
                    "Accept": "application/json",
                    "Accept-Encoding": "gzip"
                }
                response = requests.get(url, timeout=(4, 15), headers=headers)
                data_json = response.json()

                timeindex = [-1, 0, 0, 0, 0, 0, 0, 0]
                specialevents = []
                specialeventstype = []
                specialeventsvalue = []
                specialeventsStrings = []

                if "line_plots" in data_json:
                    mode = "F"
                    timex = []
                    temp1, temp2, temp3, temp4 = [], [], [], []
                    temp3_label = "TC3"
                    temp4_label = "TC4"
                    #                    temp1ror = []
                    for lp in data_json["line_plots"]:
                        if "channel" in lp and "data" in lp:
                            if lp["channel"] == 0:  # BT
                                data = lp["data"]
                                timex = [d[0] / 1000 for d in data]
                                temp1 = [d[1] for d in data]
                            elif lp["channel"] == 1:  # ET
                                temp2 = [d[1] for d in lp["data"]]
                            elif lp["channel"] == 2:  # XT1
                                temp3 = [d[1] for d in lp["data"]]
                                if "label" in lp:
                                    temp3_label = lp["label"]
                            elif lp["channel"] == 3:  # XT2
                                temp4 = [d[1] for d in lp["data"]]
                                if "label" in lp:
                                    temp4_label = lp["label"]
#                            elif lp["channel"] == 4: # BT RoR
#                                temp1ror = [d[1] for d in lp["data"]]
                    res["timex"] = timex
                    if len(timex) == len(temp1):
                        res["temp2"] = temp1
                    else:
                        res["temp2"] = [-1] * len(timex)
                    if len(timex) == len(temp2):
                        res["temp1"] = temp2
                    else:
                        res["temp1"] = [-1] * len(timex)
                    if len(temp3) == len(timex) or len(temp4) == len(timex):
                        temp3_visibility = True
                        temp4_visibility = True
                        # add one (virtual) extra device
                        res["extradevices"] = [25]
                        res["extratimex"] = [timex]
                        if len(temp3) == len(timex):
                            res["extratemp1"] = [temp3]
                        else:
                            res["extratemp1"] = [[-1] * len(timex)]
                            temp3_visibility = False
                        if len(temp4) == len(timex):
                            res["extratemp2"] = [temp4]
                        else:
                            res["extratemp2"] = [[-1] * len(timex)]
                            temp4_visibility = False
                        res["extraname1"] = [temp3_label]
                        res["extraname2"] = [temp4_label]
                        res["extramathexpression1"] = [""]
                        res["extramathexpression2"] = [""]
                        res["extraLCDvisibility1"] = [temp3_visibility]
                        res["extraLCDvisibility2"] = [temp4_visibility]
                        res["extraCurveVisibility1"] = [temp3_visibility]
                        res["extraCurveVisibility2"] = [temp4_visibility]
                        res["extraDelta1"] = [False]
                        res["extraDelta2"] = [False]
                        res["extraFill1"] = [False]
                        res["extraFill2"] = [False]
                        res["extradevicecolor1"] = ['black']
                        res["extradevicecolor2"] = ['black']
                        res["extramarkersizes1"] = [6.0]
                        res["extramarkersizes2"] = [6.0]
                        res["extramarkers1"] = [None]
                        res["extramarkers2"] = [None]
                        res["extralinewidths1"] = [1.0]
                        res["extralinewidths2"] = [1.0]
                        res["extralinestyles1"] = ['-']
                        res["extralinestyles2"] = ['-']
                        res["extradrawstyles1"] = ['default']
                        res["extradrawstyles2"] = ['default']

                timex_events = {
                    "Intro temperature": 0,
                    "yellowing": 1,
                    "Yellow": 1,
                    "DRY": 1,
                    "Dry": 1,
                    "dry": 1,
                    "Dry End": 1,
                    "Start 1st crack": 2,
                    "START 1st": 2,
                    "End 1st crack": 3,
                    "Start 2nd crack": 4,
                    "End 2nd crack": 5,
                    "Drop temperature": 6
                }
                if "table_events" in data_json:
                    for te in data_json["table_events"]:
                        if "label" in te and "time" in te:
                            if te["label"] in timex_events:
                                try:
                                    timex_idx = res["timex"].index(
                                        stringtoseconds(te["time"]))
                                    timeindex[timex_events[
                                        te["label"]]] = timex_idx
                                except:
                                    pass
                            else:
                                try:
                                    timex_idx = res["timex"].index(
                                        stringtoseconds(te["time"]))
                                    specialeventsStrings.append(te["label"])
                                    specialevents.append(timex_idx)
                                    specialeventstype.append(4)
                                    specialeventsvalue.append(0)
                                except:
                                    pass
                res["timeindex"] = timeindex

                mode = "F"
                if timeindex[6] != 0 and len(temp1) > timeindex[6] and temp1[
                        timeindex[6]] < 250:
                    mode = "C"
                if timeindex[0] > -1 and len(temp1) > timeindex[0] and temp1[
                        timeindex[0]] < 250:
                    mode = "C"
                res["mode"] = mode

                if len(specialevents) > 0:
                    res["specialevents"] = specialevents
                    res["specialeventstype"] = specialeventstype
                    res["specialeventsvalue"] = specialeventsvalue
                    res["specialeventsStrings"] = specialeventsStrings
    except Exception as e:
        #        import traceback
        #        import sys
        #        traceback.print_exc(file=sys.stdout)
        pass
    return res
Exemplo n.º 6
0
 def return_values(self):
     self.values[0] = stringtoseconds(str(self.timeEdit.text()))
     self.values[1] = float(self.tempEdit.text())
     self.accept()
Exemplo n.º 7
0
 def changeflags(self, _):
     sender = self.sender()
     if sender == self.dryend:
         idi = 1
     elif sender == self.fcs:
         idi = 2
     elif sender == self.fce:
         idi = 3
     elif sender == self.scs:
         idi = 4
     elif sender == self.sce:
         idi = 5
     else:
         return
     if self.validatetimeorder() != 1000:
         if idi == 1:
             if self.dryend.isChecked():
                 self.dryend.setChecked(False)
         elif idi == 2:
             if self.fcs.isChecked():
                 self.fcs.setChecked(False)
         elif idi == 3:
             if self.fce.isChecked():
                 self.fce.setChecked(False)
         elif idi == 4:
             if self.scs.isChecked():
                 self.scs.setChecked(False)
         elif idi == 5:
             if self.sce.isChecked():
                 self.sce.setChecked(False)
         #ERROR time from edit boxes is not in ascending order
         strings = [
             QApplication.translate("Message", "CHARGE", None),
             QApplication.translate("Message", "DRY END", None),
             QApplication.translate("Message", "FC START", None),
             QApplication.translate("Message", "FC END", None),
             QApplication.translate("Message", "SC START", None),
             QApplication.translate("Message", "SC END", None),
             QApplication.translate("Message", "DROP", None)
         ]
         st = QApplication.translate(
             "Message",
             "Times need to be in ascending order. Please recheck {0} time",
             None).format(strings[idi])
         QMessageBox.information(
             self, QApplication.translate("Message", "Designer Config",
                                          None), st)
         return
     #idi = id index
     if self.aw.qmc.timeindex[idi]:
         #ERASE mark point
         self.aw.qmc.currentx = self.aw.qmc.timex[
             self.aw.qmc.timeindex[idi]]
         self.aw.qmc.currenty = self.aw.qmc.temp2[
             self.aw.qmc.timeindex[idi]]
         self.aw.qmc.removepoint()
     else:
         #ADD mark point
         if idi == 1:
             timez = stringtoseconds(str(self.Edit1.text(
             ))) + self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
             bt = float(str(self.Edit1bt.text()))
             et = float(str(self.Edit1et.text()))
         if idi == 2:
             timez = stringtoseconds(str(self.Edit2.text(
             ))) + self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
             bt = float(str(self.Edit2bt.text()))
             et = float(str(self.Edit2et.text()))
         if idi == 3:
             timez = stringtoseconds(str(self.Edit3.text(
             ))) + self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
             bt = float(str(self.Edit3bt.text()))
             et = float(str(self.Edit3et.text()))
         if idi == 4:
             timez = stringtoseconds(str(self.Edit4.text(
             ))) + self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
             bt = float(str(self.Edit4bt.text()))
             et = float(str(self.Edit4et.text()))
         if idi == 5:
             timez = stringtoseconds(str(self.Edit5.text(
             ))) + self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
             bt = float(str(self.Edit5bt.text()))
             et = float(str(self.Edit5et.text()))
         self.aw.qmc.currentx = timez
         self.aw.qmc.currenty = bt
         newindex = self.aw.qmc.addpoint(manual=False)
         self.aw.qmc.timeindex[idi] = newindex
         self.aw.qmc.temp2[self.aw.qmc.timeindex[idi]] = bt
         self.aw.qmc.temp1[self.aw.qmc.timeindex[idi]] = et
         self.aw.qmc.xaxistosm(redraw=False)
         self.aw.qmc.redrawdesigner()
Exemplo n.º 8
0
 def settimes(self, _):
     #check input
     strings = [
         QApplication.translate("Message", "CHARGE", None),
         QApplication.translate("Message", "DRY END", None),
         QApplication.translate("Message", "FC START", None),
         QApplication.translate("Message", "FC END", None),
         QApplication.translate("Message", "SC START", None),
         QApplication.translate("Message", "SC END", None),
         QApplication.translate("Message", "DROP", None)
     ]
     timecheck = self.validatetime()
     if timecheck != 1000:
         st = QApplication.translate(
             "Message", "Incorrect time format. Please recheck {0} time",
             None).format(strings[timecheck])
         QMessageBox.information(
             self, QApplication.translate("Message", "Designer Config",
                                          None), st)
         return 1
     checkvalue = self.validatetimeorder()
     if checkvalue != 1000:
         st = QApplication.translate(
             "Message",
             "Times need to be in ascending order. Please recheck {0} time",
             None).format(strings[checkvalue + 1])
         QMessageBox.information(
             self, QApplication.translate("Message", "Designer Config",
                                          None), st)
         return 1
     if self.Edit0bt.text() != self.Edit0btcopy:
         self.aw.qmc.temp2[self.aw.qmc.timeindex[0]] = float(
             str(self.Edit0bt.text()))
         self.Edit0btcopy = self.Edit0bt.text()
     if self.Edit0et.text() != self.Edit0etcopy:
         self.aw.qmc.temp1[self.aw.qmc.timeindex[0]] = float(
             str(self.Edit0et.text()))
         self.Edit0etcopy = self.Edit0et.text()
     if self.dryend.isChecked():
         if self.Edit1.text() != self.Edit1copy:
             if stringtoseconds(str(self.Edit1.text())):
                 timez = stringtoseconds(str(self.Edit1.text(
                 ))) + self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
                 self.aw.qmc.timex[self.aw.qmc.timeindex[1]] = timez
                 self.Edit1copy = self.Edit1.text()
         if self.Edit1bt.text() != self.Edit1btcopy:
             self.aw.qmc.temp2[self.aw.qmc.timeindex[1]] = float(
                 str(self.Edit1bt.text()))
             self.Edit1btcopy = self.Edit1bt.text()
         if self.Edit1et.text() != self.Edit1etcopy:
             self.aw.qmc.temp1[self.aw.qmc.timeindex[1]] = float(
                 str(self.Edit1et.text()))
             self.Edit1etcopy = self.Edit1et.text()
     if self.fcs.isChecked():
         if self.Edit2.text() != self.Edit2copy:
             if stringtoseconds(str(self.Edit2.text())):
                 timez = stringtoseconds(str(self.Edit2.text(
                 ))) + self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
                 self.aw.qmc.timex[self.aw.qmc.timeindex[2]] = timez
                 self.Edit2copy = self.Edit2.text()
         if self.Edit2bt.text() != self.Edit2btcopy:
             self.aw.qmc.temp2[self.aw.qmc.timeindex[2]] = float(
                 str(self.Edit2bt.text()))
             self.Edit2btcopy = self.Edit2bt.text()
         if self.Edit2et.text() != self.Edit2etcopy:
             self.aw.qmc.temp1[self.aw.qmc.timeindex[2]] = float(
                 str(self.Edit2et.text()))
             self.Edit2etcopy = self.Edit2et.text()
     if self.fce.isChecked():
         if self.Edit3.text() != self.Edit3copy:
             if stringtoseconds(str(self.Edit3.text())):
                 timez = stringtoseconds(str(self.Edit3.text(
                 ))) + self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
                 self.aw.qmc.timex[self.aw.qmc.timeindex[3]] = timez
                 self.Edit3copy = self.Edit3.text()
         if self.Edit3bt.text() != self.Edit3btcopy:
             self.aw.qmc.temp2[self.aw.qmc.timeindex[3]] = float(
                 str(self.Edit3bt.text()))
             self.Edit3btcopy = self.Edit3bt.text()
         if self.Edit3et.text() != self.Edit3etcopy:
             self.aw.qmc.temp1[self.aw.qmc.timeindex[3]] = float(
                 str(self.Edit3et.text()))
             self.Edit3etcopy = self.Edit3et.text()
     if self.scs.isChecked():
         if self.Edit4.text() != self.Edit4copy:
             if stringtoseconds(str(self.Edit4.text())):
                 timez = stringtoseconds(str(self.Edit4.text(
                 ))) + self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
                 self.aw.qmc.timex[self.aw.qmc.timeindex[4]] = timez
                 self.Edit4copy = self.Edit4.text()
         if self.Edit4bt.text() != self.Edit4btcopy:
             self.aw.qmc.temp2[self.aw.qmc.timeindex[4]] = float(
                 str(self.Edit4bt.text()))
             self.Edit4btcopy = self.Edit4bt.text()
         if self.Edit4et.text() != self.Edit4etcopy:
             self.aw.qmc.temp1[self.aw.qmc.timeindex[4]] = float(
                 str(self.Edit4et.text()))
             self.Edit4etcopy = self.Edit4et.text()
     if self.sce.isChecked():
         if self.Edit5.text() != self.Edit5copy:
             if stringtoseconds(str(self.Edit5.text())):
                 timez = stringtoseconds(str(self.Edit5.text(
                 ))) + self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
                 self.aw.qmc.timex[self.aw.qmc.timeindex[5]] = timez
                 self.Edit5copy = self.Edit5.text()
         if self.Edit5bt.text() != self.Edit5btcopy:
             self.aw.qmc.temp2[self.aw.qmc.timeindex[5]] = float(
                 str(self.Edit5bt.text()))
             self.Edit5btcopy = self.Edit5bt.text()
         if self.Edit5et.text() != self.Edit5etcopy:
             self.aw.qmc.temp1[self.aw.qmc.timeindex[5]] = float(
                 str(self.Edit5et.text()))
             self.Edit5etcopy = self.Edit5et.text()
     if self.Edit6.text() != self.Edit6copy:
         if stringtoseconds(str(self.Edit6.text())):
             timez = stringtoseconds(str(self.Edit6.text(
             ))) + self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
             self.aw.qmc.timex[self.aw.qmc.timeindex[6]] = timez
             self.Edit6copy = self.Edit6.text()
     if self.Edit6bt.text() != self.Edit6btcopy:
         self.aw.qmc.temp2[self.aw.qmc.timeindex[6]] = float(
             str(self.Edit6bt.text()))
         self.Edit6btcopy = self.Edit6bt.text()
     if self.Edit6et.text() != self.Edit6etcopy:
         self.aw.qmc.temp1[self.aw.qmc.timeindex[6]] = float(
             str(self.Edit6et.text()))
         self.Edit6etcopy = self.Edit6et.text()
     for i in range(1, 6):  #1-5
         self.aw.qmc.designertimeinit[i] = self.aw.qmc.timex[
             self.aw.qmc.timeindex[i]]
     self.aw.qmc.xaxistosm(redraw=False)
     self.aw.qmc.redrawdesigner()
     return 0
Exemplo n.º 9
0
 def savealarms(self):
     try:
         self.alarmtable.sortItems(0)
         nalarms = self.alarmtable.rowCount()
         self.aw.qmc.loadalarmsfromprofile = self.loadAlarmsFromProfile.isChecked()
         self.aw.qmc.loadalarmsfrombackground = self.loadAlarmsFromBackground.isChecked()
         self.aw.qmc.alarmflag = [1]*nalarms
         self.aw.qmc.alarmguard = [-1]*nalarms
         self.aw.qmc.alarmnegguard = [-1]*nalarms
         self.aw.qmc.alarmtime = [-1]*nalarms
         self.aw.qmc.alarmoffset = [0]*nalarms
         self.aw.qmc.alarmcond = [1]*nalarms
         self.aw.qmc.alarmsource = [1]*nalarms
         self.aw.qmc.alarmtemperature = [500.]*nalarms
         self.aw.qmc.alarmaction = [0]*nalarms
         self.aw.qmc.alarmbeep = [0]*nalarms
         self.aw.qmc.alarmstrings = [""]*nalarms
         for i in range(nalarms):
             flag = self.alarmtable.cellWidget(i,1)
             self.aw.qmc.alarmflag[i] = int(flag.isChecked())
             guard = self.alarmtable.cellWidget(i,2)
             try:
                 guard_value = int(str(guard.text())) - 1
             except Exception:
                 guard_value = -1
             if guard_value > -1 and guard_value < nalarms:
                 self.aw.qmc.alarmguard[i] = guard_value
             else:
                 self.aw.qmc.alarmguard[i] = -1
             negguard = self.alarmtable.cellWidget(i,3)
             try:
                 negguard_value = int(str(negguard.text())) - 1
             except Exception:
                 negguard_value = -1
             if negguard_value > -1 and negguard_value < nalarms:
                 self.aw.qmc.alarmnegguard[i] = negguard_value
             else:
                 self.aw.qmc.alarmnegguard[i] = -1
             timez =  self.alarmtable.cellWidget(i,4)
             self.aw.qmc.alarmtime[i] = self.aw.qmc.menuidx2alarmtime[timez.currentIndex()]
             offset =  self.alarmtable.cellWidget(i,5)
             if offset and offset != "":
                 self.aw.qmc.alarmoffset[i] = max(0,stringtoseconds(str(offset.text())))
             atype = self.alarmtable.cellWidget(i,6)
             self.aw.qmc.alarmsource[i] = int(str(atype.currentIndex())) - 3
             cond = self.alarmtable.cellWidget(i,7)
             self.aw.qmc.alarmcond[i] = int(str(cond.currentIndex())) 
             temp = self.alarmtable.cellWidget(i,8)
             try:
                 self.aw.qmc.alarmtemperature[i] = float(self.aw.comma2dot(str(temp.text())))
             except Exception:
                 self.aw.qmc.alarmtemperature[i] = 0.0
             action = self.alarmtable.cellWidget(i,9)
             self.aw.qmc.alarmaction[i] = int(str(action.currentIndex() - 1))
             beepWidget = self.alarmtable.cellWidget(i,10)
             beep = beepWidget.layout().itemAt(1).widget()
             if beep and beep is not None:
                 self.aw.qmc.alarmbeep[i] = int(beep.isChecked())
             description = self.alarmtable.cellWidget(i,11)
             self.aw.qmc.alarmstrings[i] = description.text()
     except Exception as ex:
         _, _, exc_tb = sys.exc_info()
         self.aw.qmc.adderror((QApplication.translate("Error Message", "Exception:",None) + " savealarms(): {0}").format(str(ex)),exc_tb.tb_lineno)