class rsttPanel(gr.sync_block, QtWidgets.QWidget): def __init__(self, *args, **kwds): gr.sync_block.__init__( self, name = "rstt_panel", in_sig = [(np.int16, 240)], out_sig = None, ) QtWidgets.QWidget.__init__(self) vlayout = Qt.QVBoxLayout() layout = Qt.QHBoxLayout() label_nr = Qt.QLabel("Frame Nr") self.frame_num = Qt.QLabel("xxx") self.frame_num.setStyleSheet("font-weight: bold") label_node = Qt.QLabel("Node ID") self.node_id = Qt.QLabel("xxxxxxxx") self.node_id.setStyleSheet("font-weight: bold") self.calibrated_label = Qt.QLabel("not calibrated") self.calibrated_label.setStyleSheet("font-weight:bold; color: red") plotWidget = QtWidgets.QWidget(self) self.plot = RsttCanvas(plotWidget, width=5, height=4, dpi=100) layout.addWidget(label_nr) layout.addWidget(self.frame_num) layout.addWidget(label_node) layout.addWidget(self.node_id) layout.addWidget(self.calibrated_label) vlayout.addWidget(self.plot) vlayout.addLayout(layout) self.setLayout(vlayout) self.calib = CalibrationCollector() self.frame_prev = None self.calibrated = False self.conf = None def work(self, input_items, output_items): inp = input_items[0] for i in range(len(inp)): data = [] for x in inp[i]: data.append(x&0xFF) data.append(x>>8) frame = Frame(data, self.frame_prev) if not frame: print "no frame" + str(frame) continue if not frame.is_broken(): self.frame_prev = frame self.conf = frame.get(SF_TYPE_CONFIG) if self.conf is not None: frame_num = self.conf.frame_num node_id = self.conf.id calibration_num = self.conf.calibration_num self.node_id.setText(str(node_id)) self.frame_num.setText(str(frame_num)) else: frame_num = 0 self.meas = frame.get(SF_TYPE_MEASUREMENTS) if self.meas is not None and self.conf is not None: temp = self.meas.temp hum = self.meas.hum_down pres = self.meas.pressure self.plot.update_figure(frame_num, temp, hum, pres) if not self.calibrated and self.conf is not None: self.calibrated = self.calib.addFragment(self.conf.calibration_num, self.conf.calibration_data) if self.calibrated: print("calibration complete at frame %s" % frame_num) calib_data = self.calib.data() self.calib = Calibration(calib_data) self.calibrated_label.setText("calibrated") self.calibrated_label.setStyleSheet("color: green") print("frame: %s %s" % (frame_num, not frame.is_broken(), )) return len(inp)
class rsttPanel(gr.sync_block): def __init__(self, *args, **kwds): gr.sync_block.__init__( self, name = "rstt_panel", in_sig = [(np.int16, 240)], out_sig = None, ) self.panel = rsttWxPanel(*args, **kwds); self.calib = CalibrationCollector() self.frame_prev = None self.calibrated = False self.conf = None def work(self, input_items, output_items): inp = input_items[0] for i in range(len(inp)): data = [] for x in inp[i]: data.append(x&0xFF) data.append(x>>8) frame = Frame(data, self.frame_prev) if not frame: print "no frame" + str(frame) continue if not frame.is_broken(): self.frame_prev = frame self.conf = frame.get(SF_TYPE_CONFIG) if self.conf is not None: frame_num = self.conf.frame_num node_id = self.conf.id calibration_num = self.conf.calibration_num de = DataEvent([EVENT_CONFIG, frame_num, node_id, calibration_num]) wx.PostEvent(self.panel, de) del de else: frame_num = 'N/A' self.meas = frame.get(SF_TYPE_MEASUREMENTS) if self.meas is not None and self.conf is not None: temp = self.meas.temp hum = self.meas.hum_down pres = self.meas.pressure de = DataEvent([EVENT_MEASSURE, self.conf.frame_num, temp, hum, pres]) wx.PostEvent(self.panel, de) del de #self._dump_frame(frame, frame_num) #self._dump_eval(frame) if not self.calibrated and self.conf is not None: self.calibrated = self.calib.addFragment(self.conf.calibration_num, self.conf.calibration_data) if self.calibrated: print("calibration complete at frame %s" % frame_num) calib_data = self.calib.data() self.calib = Calibration(calib_data) de = DataEvent([EVENT_CALIBRATED]) wx.PostEvent(self.panel, de) del de print("frame: %s %s" % (frame_num, not frame.is_broken(), )) return len(inp)
class rsttPanel(gr.sync_block): def __init__(self, *args, **kwds): gr.sync_block.__init__( self, name="rstt_panel", in_sig=[(np.int16, 240)], out_sig=None, ) self.panel = rsttWxPanel(*args, **kwds) self.calib = CalibrationCollector() self.frame_prev = None self.calibrated = False self.conf = None def work(self, input_items, output_items): inp = input_items[0] for i in range(len(inp)): data = [] for x in inp[i]: data.append(x & 0xFF) data.append(x >> 8) frame = Frame(data, self.frame_prev) if not frame: print "no frame" + str(frame) continue if not frame.is_broken(): self.frame_prev = frame self.conf = frame.get(SF_TYPE_CONFIG) if self.conf is not None: frame_num = self.conf.frame_num node_id = self.conf.id calibration_num = self.conf.calibration_num de = DataEvent( [EVENT_CONFIG, frame_num, node_id, calibration_num]) wx.PostEvent(self.panel, de) del de else: frame_num = 'N/A' self.meas = frame.get(SF_TYPE_MEASUREMENTS) if self.meas is not None and self.conf is not None: temp = self.meas.temp hum = self.meas.hum_down pres = self.meas.pressure de = DataEvent( [EVENT_MEASSURE, self.conf.frame_num, temp, hum, pres]) wx.PostEvent(self.panel, de) del de #self._dump_frame(frame, frame_num) #self._dump_eval(frame) if not self.calibrated and self.conf is not None: self.calibrated = self.calib.addFragment( self.conf.calibration_num, self.conf.calibration_data) if self.calibrated: print("calibration complete at frame %s" % frame_num) calib_data = self.calib.data() self.calib = Calibration(calib_data) de = DataEvent([EVENT_CALIBRATED]) wx.PostEvent(self.panel, de) del de print("frame: %s %s" % ( frame_num, not frame.is_broken(), )) return len(inp)