Beispiel #1
0
    def status_init(self):
        super(SignatureShowOption, self).init()
        self.build_gui()

        try:
            with open(self.signature_file, 'r') as f:
                file_content = json.loads(f.read())
        except (IOError, ValueError):
            file_content = {}

        for k, v in file_content.iteritems():
            print k
            states = v["states"]

            for n, pos in states.iteritems():
                if n.lower() == "off":
                    continue
                self.power_scatter.addPoints(
                        brush=qt.brush(255, 255, 255, 255),
                        pos=[pos], size=10)
                text = qt.text(k+'/'+n, anchor=(0.5, 0))
                text.setPos(pos[0], pos[1]-0.5)
                self.power_plot.addItem(text)

        self.status = self.STATUS.WAIT
Beispiel #2
0
    def plot_clusterized(self, predictions):
        self.power_scatter.setData(
                    self.real_power_data, self.reac_power_data,
                    brush=qt.mk_colored_brushes(100, predictions),
                    size=10)

        self.power_scatter.addPoints(pos=self.prototypes,
            brush=qt.brush(255, 255, 255, 255), size=7)
Beispiel #3
0
    def status_collecting(self):
        data = self.unpack_line(self.monitor.stdout.readline())

        new_real = data[3]
        new_reac = data[4]

        v_real = new_real - self.curr_real
        v_reac = new_reac - self.curr_reac

        print "C: (%.3f, %.3f) N: (%.3f, %.3f) V: (%.3f, %.3f)" % (
            self.curr_real, self.curr_reac,
            new_real, new_reac,
            v_real, v_reac)

        # if self.new_transition(new_real, new_reac):
        if self.process_new_transition(v_real, v_reac):
            self.curr_real = new_real
            self.curr_reac = new_reac

            self.update_status_text()
            self.update_classifier()

        print ''

        # Plot power scatter
        self.real_power_data.append(new_real)
        self.reac_power_data.append(new_reac)

        l = len(self.real_power_data)

        self.power_scatter.setData(
                    self.real_power_data, self.reac_power_data,
                    brush=self.power_scatter_brushes[-l:])

        self.power_plot.setXRange(0, max(self.real_power_data))
        self.power_plot.setYRange(0, max(self.reac_power_data))

        
        # Plot signature scatter
        sign_real, sign_reac = zip(*self.classifier_instances)

        min_real, max_real = min(sign_real), max(sign_real)
        min_reac, max_reac = min(sign_reac), max(sign_reac)

        min_real = min(min_real, v_real)
        max_real = max(max_real, v_real)
        min_reac = min(min_reac, v_reac)
        max_reac = max(max_reac, v_reac)

        self.sign_plot.clear()
        self.sign_plot.addItem(self.sign_scatter)
        self.sign_scatter.setData(
                    pos=self.classifier_instances,
                    brush=qt.brush(255, 255, 255, 255),
                    size=5)
        for text in self.classifier_texts:
            self.sign_plot.addItem(text)
        self.sign_scatter.addPoints(pos=[[v_real, v_reac]],
                    brush=qt.brush(255, 0, 0, 255),
                    size=5)
        self.sign_plot.setXRange(min_real, max_real)
        self.sign_plot.setYRange(min_reac, max_reac)