Esempio n. 1
0
    def __format_loc(self, x, y):
        if None in [x, y]:
            return ""

        freq, level = format_precision(self.settings, x, y, units=False)

        return '{} MHz\n{}    dB/Hz'.format(freq, level)
Esempio n. 2
0
    def __plot_peak(self, peakF, peakL, peakT):
        when = format_time(peakT)
        tPos = utc_to_mpl(peakT)

        text = '{}\n{}\n{when}'.format(*format_precision(self.settings,
                                                         peakF, peakL,
                                                         fancyUnits=True),
                                       when=when)
        if matplotlib.__version__ < '1.3':
            self.axes.text(peakF, tPos, peakL,
                           text,
                           ha='left', va='bottom', size='x-small', gid='peakText')
            self.axes.plot([peakF], [tPos], [peakL], marker='x', markersize=10,
                           mew=3, color='w', gid='peak')
            self.axes.plot([peakF], [tPos], [peakL], marker='x', markersize=10,
                           color='r', gid='peakShadow')
        else:
            effect = patheffects.withStroke(linewidth=2, foreground="w",
                                            alpha=0.75)
            self.axes.text(peakF, tPos, peakL,
                           text,
                           ha='left', va='bottom', size='x-small', gid='peakText',
                           path_effects=[effect])
            self.axes.plot([peakF], [tPos], [peakL], marker='x', markersize=10,
                           color='r', gid='peak', path_effects=[effect])
Esempio n. 3
0
    def __annotate_plot(self):
        f, l, t = self.extent.get_peak_flt()
        when = format_time(t)
        tPos = utc_to_mpl(t)

        text = '{}\n{}\n{when}'.format(*format_precision(self.settings, f, l,
                                                         fancyUnits=True),
                                       when=when)
        if matplotlib.__version__ < '1.3':
            self.axes.text(f, tPos, l,
                           text,
                           ha='left', va='bottom', size='x-small', gid='peak')
            self.axes.plot([f], [tPos], [l], marker='x', markersize=10,
                           mew=3, color='w', gid='peak')
            self.axes.plot([f], [tPos], [l], marker='x', markersize=10,
                           color='r', gid='peak')
        else:
            effect = patheffects.withStroke(linewidth=2, foreground="w",
                                            alpha=0.75)
            self.axes.text(f, tPos, l,
                           text,
                           ha='left', va='bottom', size='x-small', gid='peak',
                           path_effects=[effect])
            self.axes.plot([f], [tPos], [l], marker='x', markersize=10,
                           color='r', gid='peak', path_effects=[effect])
Esempio n. 4
0
    def __plot_peak(self, peakF, peakL, peakT):
        when = format_time(peakT)
        tPos = utc_to_mpl(peakT)

        text = '{}\n{}\n{when}'.format(*format_precision(self.settings,
                                                         peakF, peakL,
                                                         fancyUnits=True),
                                       when=when)
        if matplotlib.__version__ < '1.3':
            self.axes.text(peakF, tPos, peakL,
                           text,
                           ha='left', va='bottom', size='x-small', gid='peakText')
            self.axes.plot([peakF], [tPos], [peakL], marker='x', markersize=10,
                           mew=3, color='w', gid='peak')
            self.axes.plot([peakF], [tPos], [peakL], marker='x', markersize=10,
                           color='r', gid='peakShadow')
        else:
            effect = patheffects.withStroke(linewidth=2, foreground="w",
                                            alpha=0.75)
            self.axes.text(peakF, tPos, peakL,
                           text,
                           ha='left', va='bottom', size='x-small', gid='peakText',
                           path_effects=[effect])
            self.axes.plot([peakF], [tPos], [peakL], marker='x', markersize=10,
                           color='r', gid='peak', path_effects=[effect])
Esempio n. 5
0
    def __annotate_plot(self, x, y):
        self.__clear_markers()

        if x is None or y is None:
            return

        start, stop = self.axes.get_xlim()
        textX = ((stop - start) / 50.0) + x

        text = '{}\n{}'.format(*format_precision(self.settings, x, y,
                                                 fancyUnits=True))
        if matplotlib.__version__ < '1.3':
            self.axes.annotate(text,
                               xy=(x, y), xytext=(textX, y),
                               ha='left', va='top', size='x-small',
                               gid='peak')
            self.axes.plot(x, y, marker='x', markersize=10, color='w',
                           mew=3, gid='peak')
            self.axes.plot(x, y, marker='x', markersize=10, color='r',
                           gid='peak')
        else:
            effect = patheffects.withStroke(linewidth=2, foreground="w",
                                            alpha=0.75)
            self.axes.annotate(text,
                               xy=(x, y), xytext=(textX, y),
                               ha='left', va='top', size='x-small',
                               path_effects=[effect], gid='peak')
            self.axes.plot(x, y, marker='x', markersize=10, color='r',
                           path_effects=[effect], gid='peak')
Esempio n. 6
0
    def __plot_peak(self, peakF, peakL, peakT):
        self.__clear_markers()
        y = utc_to_mpl(peakT)

        start, stop = self.axes.get_xlim()
        textX = ((stop - start) / 50.0) + peakF
        when = format_time(peakT)

        text = '{}\n{}\n{when}'.format(*format_precision(self.settings,
                                                         peakF, peakL,
                                                         fancyUnits=True),
                                       when=when)
        if matplotlib.__version__ < '1.3':
            self.axes.annotate(text,
                               xy=(peakF, y), xytext=(textX, y),
                               ha='left', va='bottom', size='x-small',
                               color='w', gid='peakText')
            self.axes.plot(peakF, y, marker='x', markersize=10, color='w',
                           mew=3, gid='peakShadow')
            self.axes.plot(peakF, y, marker='x', markersize=10, color='r',
                           gid='peak')
        else:
            effect = patheffects.withStroke(linewidth=2, foreground="w",
                                            alpha=0.75)
            self.axes.annotate(text,
                               xy=(peakF, y), xytext=(textX, y),
                               ha='left', va='bottom', size='x-small',
                               path_effects=[effect], gid='peakText')
            self.axes.plot(peakF, y, marker='x', markersize=10, color='r',
                           path_effects=[effect], gid='peak')
Esempio n. 7
0
    def __plot_peak(self, peakF, peakL, peakT):
        self.__clear_markers()
        y = utc_to_mpl(peakT)

        start, stop = self.axes.get_xlim()
        textX = ((stop - start) / 50.0) + peakF
        when = format_time(peakT)

        text = '{}\n{}\n{when}'.format(*format_precision(self.settings,
                                                         peakF, peakL,
                                                         fancyUnits=True),
                                       when=when)
        if matplotlib.__version__ < '1.3':
            self.axes.annotate(text,
                               xy=(peakF, y), xytext=(textX, y),
                               ha='left', va='bottom', size='x-small',
                               color='w', gid='peakText')
            self.axes.plot(peakF, y, marker='x', markersize=10, color='w',
                           mew=3, gid='peakShadow')
            self.axes.plot(peakF, y, marker='x', markersize=10, color='r',
                           gid='peak')
        else:
            effect = patheffects.withStroke(linewidth=2, foreground="w",
                                            alpha=0.75)
            self.axes.annotate(text,
                               xy=(peakF, y), xytext=(textX, y),
                               ha='left', va='bottom', size='x-small',
                               path_effects=[effect], gid='peakText')
            self.axes.plot(peakF, y, marker='x', markersize=10, color='r',
                           path_effects=[effect], gid='peak')
    def __format_loc(self, x, y):
        if None in [x, y]:
            return ""

        freq, level = format_precision(self.settings, x, y, units=False)

        return '{} MHz\n{}     dB/Hz'.format(freq, level)
Esempio n. 9
0
    def __annotate_plot(self, x, y):
        self.__clear_markers()

        if x is None or y is None:
            return

        start, stop = self.axes.get_xlim()
        textX = ((stop - start) / 50.0) + x

        text = '{}\n{}'.format(
            *format_precision(self.settings, x, y, fancyUnits=True))
        if matplotlib.__version__ < '1.3':
            self.axes.annotate(text,
                               xy=(x, y),
                               xytext=(textX, y),
                               ha='left',
                               va='top',
                               size='x-small',
                               gid='peak')
            self.axes.plot(x,
                           y,
                           marker='x',
                           markersize=10,
                           color='w',
                           mew=3,
                           gid='peak')
            self.axes.plot(x,
                           y,
                           marker='x',
                           markersize=10,
                           color='r',
                           gid='peak')
        else:
            effect = patheffects.withStroke(linewidth=2,
                                            foreground="w",
                                            alpha=0.75)
            self.axes.annotate(text,
                               xy=(x, y),
                               xytext=(textX, y),
                               ha='left',
                               va='top',
                               size='x-small',
                               path_effects=[effect],
                               gid='peak')
            self.axes.plot(x,
                           y,
                           marker='x',
                           markersize=10,
                           color='r',
                           path_effects=[effect],
                           gid='peak')
Esempio n. 10
0
    def run(self):
        self.parent.clear_plots()
        if self.data is None:
            length, tMin, tMax, fMin, fMax, lMin, lMax, peakF, peakL, peakT = ("",) * 10
        else:
            length = len(self.data)
            tMin = format_time(self.extent.tMin, True)
            tMax = format_time(self.extent.tMax, True)
            fMin = format_precision(self.settings, freq=self.extent.fMin, fancyUnits=True)
            fMax = format_precision(self.settings, freq=self.extent.fMax, fancyUnits=True)
            lMin = format_precision(self.settings, level=self.extent.lMin, fancyUnits=True)
            lMax = format_precision(self.settings, level=self.extent.lMax, fancyUnits=True)
            peak = self.extent.get_peak_flt()
            peakF = format_precision(self.settings, freq=peak[0], fancyUnits=True)
            peakL = format_precision(self.settings, level=peak[1], fancyUnits=True)
            peakT = format_time(peak[2], True)

        text = [
            ["Sweeps", "", length],
            ["Extents", "", ""],
            ["", "Start", tMin],
            ["", "End", tMax],
            ["", "Min frequency", fMin],
            ["", "Max frequency", fMax],
            ["", "Min level", lMin],
            ["", "Max level", lMax],
            ["Peak", "", ""],
            ["", "Level", peakL],
            ["", "Frequency", peakF],
            ["", "Time", peakT],
        ]

        table = Table(self.axes, loc="center")
        table.set_gid("table")

        rows = len(text)
        cols = len(text[0])
        for row in xrange(rows):
            for col in xrange(cols):
                table.add_cell(row, col, text=text[row][col], width=1.0 / cols, height=1.0 / rows)

        if self.settings.grid:
            colour = "LightGray"
        else:
            colour = "w"
        set_table_colour(table, colour)

        for i in range(3):
            table.auto_set_column_width(i)

        self.axes.add_table(table)
        self.parent.redraw_plot()

        self.parent.threadPlot = None
Esempio n. 11
0
    def run(self):
        self.parent.clear_plots()
        if self.data is None:
            self.parent.threadPlot = None
            return

        tMin = format_time(self.extent.tMin, True)
        tMax = format_time(self.extent.tMax, True)
        fMin = format_precision(self.settings, freq=self.extent.fMin,
                                fancyUnits=True)
        fMax = format_precision(self.settings, freq=self.extent.fMax,
                                fancyUnits=True)
        lMin = format_precision(self.settings, level=self.extent.lMin,
                                fancyUnits=True)
        lMax = format_precision(self.settings, level=self.extent.lMax,
                                fancyUnits=True)
        peak = self.extent.get_peak_flt()
        peakF = format_precision(self.settings, freq=peak[0],
                                 fancyUnits=True)
        peakL = format_precision(self.settings, level=peak[1],
                                 fancyUnits=True)
        peakT = format_time(peak[2], True)

        text = [['Sweeps', '', len(self.data)],
                ['Extents', '', ''],
                ['', 'Start', tMin],
                ['', 'End', tMax],
                ['', 'Min frequency', fMin],
                ['', 'Max frequency', fMax],
                ['', 'Min level', lMin],
                ['', 'Max level', lMax],
                ['Peak', '', ''],
                ['', 'Level', peakL],
                ['', 'Frequency', peakF],
                ['', 'Time', peakT],
                ]

        table = Table(self.axes, loc='center', gid='table')

        rows = len(text)
        cols = len(text[0])
        for row in xrange(rows):
            for col in xrange(cols):
                table.add_cell(row, col,
                               text=text[row][col],
                               width=1.0 / cols, height=1.0 / rows)

        if self.settings.grid:
            colour = 'LightGray'
        else:
            colour = 'w'
        set_table_colour(table, colour)

        for i in range(3):
            table.auto_set_column_width(i)

        self.axes.add_table(table)
        noData = find_artists(self.axes, 'noData')
        noData[0].set_alpha(0)
        self.parent.redraw_plot()

        self.parent.threadPlot = None
Esempio n. 12
0
    def __on_motion(self, event):
        xpos = event.xdata
        ypos = event.ydata
        text = ""
        if xpos is None or ypos is None or self.spectrum is None:
            return

        if self.settings.display == Display.PLOT:
            timeStamp = max(self.spectrum)
            spectrum = self.spectrum[timeStamp]
        elif self.settings.display == Display.SPECT:
            timeStamp = num2epoch(ypos)
            if timeStamp in self.spectrum:
                spectrum = self.spectrum[timeStamp]
            else:
                nearest = min(self.spectrum.keys(),
                              key=lambda k: abs(k - timeStamp))
                spectrum = self.spectrum[nearest]
        elif self.settings.display == Display.SURFACE:
            spectrum = None
            coords = self.plot.get_axes().format_coord(event.xdata,
                                                       event.ydata)
            match = re.match('x=([-|0-9|\.]+).*y=([0-9|\:]+).*z=([-|0-9|\.]+)',
                             coords)
            if match is not None and match.lastindex == 3:
                freq = float(match.group(1))
                level = float(match.group(3))
                text = "{}, {}".format(*format_precision(self.settings,
                                                         freq, level))
        else:
            spectrum = None

        if spectrum is not None and len(spectrum) > 0:
            x = min(spectrum.keys(), key=lambda freq: abs(freq - xpos))
            if min(spectrum.keys(), key=float) <= xpos <= max(spectrum.keys(),
                                                              key=float):
                y = spectrum[x]
                text = "{}, {}".format(*format_precision(self.settings, x, y))
            else:
                text = format_precision(self.settings, xpos)

        self.status.set_info(text, level=None)

        axes = self.figure.get_axes()[0]
        markers = find_artists(self.figure, 'peak')
        markers.extend(find_artists(self.figure, 'peakThres'))
        hit = False
        for marker in markers:
            if isinstance(marker, Line2D):
                location = marker.get_path().vertices[0]
                markX, markY = axes.transData.transform(location)
                dist = abs(math.hypot(event.x - markX, event.y - markY))
                if dist <= 5:
                    if self.settings.display == Display.PLOT:
                        tip = "{}, {}".format(*format_precision(self.settings,
                                                                location[0],
                                                                location[1]))
                    else:
                        tip = "{}".format(format_precision(self.settings,
                                                           location[0]))
                    self.toolTip.SetTip(tip)
                    hit = True
                    break
        self.toolTip.Enable(hit)
Esempio n. 13
0
    def run(self):
        self.parent.clear_plots()
        if self.data is None:
            length, tMin, tMax, fMin, fMax, lMin, lMax, peakF, peakL, peakT = (
                '', ) * 10
        else:
            length = len(self.data)
            tMin = format_time(self.extent.tMin, True)
            tMax = format_time(self.extent.tMax, True)
            fMin = format_precision(self.settings,
                                    freq=self.extent.fMin,
                                    fancyUnits=True)
            fMax = format_precision(self.settings,
                                    freq=self.extent.fMax,
                                    fancyUnits=True)
            lMin = format_precision(self.settings,
                                    level=self.extent.lMin,
                                    fancyUnits=True)
            lMax = format_precision(self.settings,
                                    level=self.extent.lMax,
                                    fancyUnits=True)
            peak = self.extent.get_peak_flt()
            peakF = format_precision(self.settings,
                                     freq=peak[0],
                                     fancyUnits=True)
            peakL = format_precision(self.settings,
                                     level=peak[1],
                                     fancyUnits=True)
            peakT = format_time(peak[2], True)

        text = [
            ['Sweeps', '', length],
            ['Extents', '', ''],
            ['', 'Start', tMin],
            ['', 'End', tMax],
            ['', 'Min frequency', fMin],
            ['', 'Max frequency', fMax],
            ['', 'Min level', lMin],
            ['', 'Max level', lMax],
            ['Peak', '', ''],
            ['', 'Level', peakL],
            ['', 'Frequency', peakF],
            ['', 'Time', peakT],
        ]

        table = Table(self.axes, loc='center')
        table.set_gid('table')

        rows = len(text)
        cols = len(text[0])
        for row in xrange(rows):
            for col in xrange(cols):
                table.add_cell(row,
                               col,
                               text=text[row][col],
                               width=1.0 / cols,
                               height=1.0 / rows)

        if self.settings.grid:
            colour = 'LightGray'
        else:
            colour = 'w'
        set_table_colour(table, colour)

        for i in range(3):
            table.auto_set_column_width(i)

        self.axes.add_table(table)
        self.parent.redraw_plot()

        self.parent.threadPlot = None
Esempio n. 14
0
    def run(self):
        self.parent.clear_plots()
        if self.data is None:
            length, tMin, tMax, fMin, fMax, lMin, lMax, peakF, peakL, peakT = ('-',) * 10
        else:
            length = len(self.data)
            tMin = format_time(self.extent.tMin, True)
            tMax = format_time(self.extent.tMax, True)
            fMin = format_precision(self.settings, freq=self.extent.fMin,
                                    fancyUnits=True)
            fMax = format_precision(self.settings, freq=self.extent.fMax,
                                    fancyUnits=True)
            lMin = format_precision(self.settings, level=self.extent.lMin,
                                    fancyUnits=True)
            lMax = format_precision(self.settings, level=self.extent.lMax,
                                    fancyUnits=True)
            peak = self.extent.get_peak_flt()
            peakF = format_precision(self.settings, freq=peak[0],
                                     fancyUnits=True)
            peakL = format_precision(self.settings, level=peak[1],
                                     fancyUnits=True)
            peakT = format_time(peak[2], True)

        text = [['Sweeps', '', length],
                ['Extent', '', ''],
                ['', 'Start', tMin],
                ['', 'End', tMax],
                ['', 'Min frequency', fMin],
                ['', 'Max frequency', fMax],
                ['', 'Min level', lMin],
                ['', 'Max level', lMax],
                ['Peak', '', ''],
                ['', 'Level', peakL],
                ['', 'Frequency', peakF],
                ['', 'Time', peakT],
                ]

        table = Table(self.axes, loc='center')
        table.set_gid('table')

        rows = len(text)
        cols = len(text[0])
        fontProperties = FontProperties()
        fontProperties.set_weight('semibold')
        for row in xrange(rows):
            for col in xrange(cols):
                fp = fontProperties if col == 0 else None
                table.add_cell(row, col,
                               text=text[row][col],
                               fontproperties=fp,
                               width=1.0 / cols, height=1.0 / rows)

        if self.settings.grid:
            colour = 'LightGray'
        else:
            colour = 'w'
        set_table_colour(table, colour)

        for i in range(2):
            table.auto_set_column_width(i)

        self.axes.add_table(table)
        self.parent.redraw_plot()

        self.parent.threadPlot = None
Esempio n. 15
0
    def __on_motion(self, event):
        xpos = event.xdata
        ypos = event.ydata
        text = ""
        if xpos is None or ypos is None or self.spectrum is None:
            return

        if self.settings.display == Display.PLOT:
            timeStamp = max(self.spectrum)
            spectrum = self.spectrum[timeStamp]
        elif self.settings.display == Display.SPECT:
            timeStamp = num2epoch(ypos)
            if timeStamp in self.spectrum:
                spectrum = self.spectrum[timeStamp]
            else:
                nearest = min(self.spectrum.keys(),
                              key=lambda k: abs(k - timeStamp))
                spectrum = self.spectrum[nearest]
        elif self.settings.display == Display.SURFACE:
            spectrum = None
            coords = self.plot.get_axes().format_coord(event.xdata,
                                                       event.ydata)
            match = re.match('x=([-|0-9|\.]+).*y=([0-9|\:]+).*z=([-|0-9|\.]+)',
                             coords)
            if match is not None and match.lastindex == 3:
                freq = float(match.group(1))
                level = float(match.group(3))
                text = "{}, {}".format(*format_precision(self.settings,
                                                         freq, level))
        else:
            spectrum = None

        if spectrum is not None and len(spectrum) > 0:
            x = min(spectrum.keys(), key=lambda freq: abs(freq - xpos))
            if min(spectrum.keys(), key=float) <= xpos <= max(spectrum.keys(),
                                                              key=float):
                y = spectrum[x]
                text = "{}, {}".format(*format_precision(self.settings, x, y))
            else:
                text = format_precision(self.settings, xpos)

        self.status.set_info(text, level=None)

        axes = self.figure.get_axes()[0]
        markers = find_artists(self.figure, 'peak')
        markers.extend(find_artists(self.figure, 'peakThres'))
        hit = False
        for marker in markers:
            if isinstance(marker, Line2D):
                location = marker.get_path().vertices[0]
                markX, markY = axes.transData.transform(location)
                dist = abs(math.hypot(event.x - markX, event.y - markY))
                if dist <= 5:
                    if self.settings.display == Display.PLOT:
                        tip = "{}, {}".format(*format_precision(self.settings,
                                                                location[0],
                                                                location[1]))
                    else:
                        tip = "{}".format(format_precision(self.settings,
                                                           location[0]))
                    self.toolTip.SetTip(tip)
                    hit = True
                    break
        self.toolTip.Enable(hit)
Esempio n. 16
0
    def set_selected(self, spectrum, start, end):
        self.measure = Measure(spectrum, start, end)
        if not self.measure.is_valid():
            self.clear_measurement()
            return

        minF, maxF = self.measure.get_f()
        minP = self.measure.get_min_p()
        maxP = self.measure.get_max_p()
        avgP = self.measure.get_avg_p()
        gMeanP = self.measure.get_gmean_p()
        flatness = self.measure.get_flatness()
        hbw = self.measure.get_hpw()
        obw = self.measure.get_obw()

        self.__set_measure_value('start',
                                 format_precision(self.settings,
                                                  minF,
                                                  units=False))
        self.__set_measure_value('end',
                                 format_precision(self.settings,
                                                  maxF,
                                                  units=False))
        self.__set_measure_value('deltaF',
                                 format_precision(self.settings,
                                                  maxF - minF,
                                                  units=False))
        self.__set_measure_value('minFP',
                                 format_precision(self.settings,
                                                  minP[0],
                                                  units=False))
        self.__set_measure_value('maxFP',
                                 format_precision(self.settings,
                                                  maxP[0],
                                                  units=False))
        self.__set_measure_value('deltaFP',
                                 format_precision(self.settings,
                                                  maxP[0] - minP[0],
                                                  units=False))
        self.__set_measure_value('minP',
                                 format_precision(self.settings,
                                                  level=minP[1],
                                                  units=False))
        self.__set_measure_value('maxP',
                                 format_precision(self.settings,
                                                  level=maxP[1],
                                                  units=False))
        self.__set_measure_value('deltaP',
                                 format_precision(self.settings,
                                                  level=maxP[1] - minP[1],
                                                  units=False))
        self.__set_measure_value('avg',
                                 format_precision(self.settings,
                                                  level=avgP,
                                                  units=False))
        self.__set_measure_value('gmean',
                                 format_precision(self.settings,
                                                  level=gMeanP,
                                                  units=False))
        self.__set_measure_value('flat',
                                 "{0:.4f}".format(flatness))

        if hbw[0] is not None:
            text = format_precision(self.settings, hbw[0], units=False)
        else:
            text = ''
        self.__set_measure_value('hbwstart', text)
        if hbw[1] is not None:
            text = format_precision(self.settings, hbw[1], units=False)
        else:
            text = ''
        self.__set_measure_value('hbwend', text)
        if hbw[0] is not None and hbw[1] is not None:
            text = format_precision(self.settings, hbw[1] - hbw[0], units=False)
        else:
            text = ''
        self.__set_measure_value('hbwdelta', text)

        if obw[0] is not None:
            text = format_precision(self.settings, obw[0], units=False)
        else:
            text = ''
        self.__set_measure_value('obwstart', text)
        if obw[1] is not None:
            text = text = format_precision(self.settings, obw[1], units=False)
        else:
            text = ''
        self.__set_measure_value('obwend', text)
        if obw[0] is not None and obw[1] is not None:
            text = text = format_precision(self.settings, obw[1] - obw[0],
                                           units=False)
        else:
            text = ''
        self.__set_measure_value('obwdelta', text)

        self.update_measure()
Esempio n. 17
0
    def set_selected(self, spectrum, start, end):
        self.measure = Measure(spectrum, start, end)
        if not self.measure.is_valid():
            self.clear_measurement()
            return

        minF, maxF = self.measure.get_f()
        minP = self.measure.get_min_p()
        maxP = self.measure.get_max_p()
        avgP = self.measure.get_avg_p()
        gMeanP = self.measure.get_gmean_p()
        flatness = self.measure.get_flatness()
        hbw = self.measure.get_hpw()
        obw = self.measure.get_obw()

        self.__set_measure_value('start',
                                 format_precision(self.settings,
                                                  minF,
                                                  units=False))
        self.__set_measure_value('end',
                                 format_precision(self.settings,
                                                  maxF,
                                                  units=False))
        self.__set_measure_value('deltaF',
                                 format_precision(self.settings,
                                                  maxF - minF,
                                                  units=False))
        self.__set_measure_value('minFP',
                                 format_precision(self.settings,
                                                  minP[0],
                                                  units=False))
        self.__set_measure_value('maxFP',
                                 format_precision(self.settings,
                                                  maxP[0],
                                                  units=False))
        self.__set_measure_value('deltaFP',
                                 format_precision(self.settings,
                                                  maxP[0] - minP[0],
                                                  units=False))
        self.__set_measure_value('minP',
                                 format_precision(self.settings,
                                                  level=minP[1],
                                                  units=False))
        self.__set_measure_value('maxP',
                                 format_precision(self.settings,
                                                  level=maxP[1],
                                                  units=False))
        self.__set_measure_value('deltaP',
                                 format_precision(self.settings,
                                                  level=maxP[1] - minP[1],
                                                  units=False))
        self.__set_measure_value('avg',
                                 format_precision(self.settings,
                                                  level=avgP,
                                                  units=False))
        self.__set_measure_value('gmean',
                                 format_precision(self.settings,
                                                  level=gMeanP,
                                                  units=False))
        self.__set_measure_value('flat',
                                 "{0:.4f}".format(flatness))

        if hbw[0] is not None:
            text = format_precision(self.settings, hbw[0], units=False)
        else:
            text = ''
        self.__set_measure_value('hbwstart', text)
        if hbw[1] is not None:
            text = format_precision(self.settings, hbw[1], units=False)
        else:
            text = ''
        self.__set_measure_value('hbwend', text)
        if hbw[0] is not None and hbw[1] is not None:
            text = format_precision(self.settings, hbw[1] - hbw[0], units=False)
        else:
            text = ''
        self.__set_measure_value('hbwdelta', text)

        if obw[0] is not None:
            text = format_precision(self.settings, obw[0], units=False)
        else:
            text = ''
        self.__set_measure_value('obwstart', text)
        if obw[1] is not None:
            text = text = format_precision(self.settings, obw[1], units=False)
        else:
            text = ''
        self.__set_measure_value('obwend', text)
        if obw[0] is not None and obw[1] is not None:
            text = text = format_precision(self.settings, obw[1] - obw[0],
                                           units=False)
        else:
            text = ''
        self.__set_measure_value('obwdelta', text)

        self.update_measure()