Exemplo n.º 1
0
    def __updateResidual(self):
        """
        Update the display of the residual.

        Called when the calibration state was updated.
        """
        state = self.__calibrationState
        rms = state.getRms()
        if rms is not None:
            angleUnit = CalibrationContext.instance().getAngleUnit().value()
            rms = units.convert(rms, units.Unit.RADIAN, angleUnit)
            text = stringutil.to_scientific_unicode(rms, digits=4)
            previousRms = state.getPreviousRms()
            if previousRms is not None:
                previousRms = units.convert(previousRms, units.Unit.RADIAN,
                                            angleUnit)
                if numpy.isclose(rms, previousRms):
                    diff = "no changes"
                else:
                    diff = stringutil.to_scientific_unicode(rms - previousRms,
                                                            digits=2)
                    if rms < previousRms:
                        diff = '<font color="green">%s</font>' % diff
                    else:
                        diff = '<font color="red">%s</font>' % diff
                text = '%s (%s)' % (text, diff)
            text = "%s %s" % (text, angleUnit.symbol)
        else:
            text = ""
        self._currentResidual.setText(text)
Exemplo n.º 2
0
 def data(self, index, role=qt.Qt.DisplayRole):
     if not index.isValid():
         return None
     row = index.row()
     item = self.__historyModel[row]
     if role == qt.Qt.DisplayRole:
         column = index.column()
         if column == self.RmsColumn:
             rms = item.rms()
             if rms is None:
                 return "n/a"
             if self.__angleUnit is not None:
                 angleUnit = self.__angleUnit.value()
                 rms = units.convert(rms, units.Unit.RADIAN, angleUnit)
             value = stringutil.to_scientific_unicode(rms)
             return value
         elif column == self.TimeColumn:
             time = item.time()
             return time.strftime("%Hh%M %Ss")
         elif column == self.LabelColumn:
             return item.label()
         else:
             return ""