Example #1
0
class IMUWidget(QWidget):
    def __init__(self):
        super().__init__()
        tabs = QTabWidget()
        self.accel = CurvePlot(num_curves=3, label="Accelerometer")
        self.accel.plot.setYRange(-2, 2)

        self.gyro = CurvePlot(num_curves=3, label="Gyroscope")
        self.mag = CurvePlot(num_curves=3, label="Magnetometer")
        tabs.addTab(self.accel, "ACCEL")
        tabs.addTab(self.gyro, "GYRO")
        tabs.addTab(self.mag, "MAG")

        self.setLayout(QVBoxLayout())
        self.layout().addWidget(tabs)
        self.layout().setSpacing(0)
        self.connected = False

    def connect(self, port, ip="localhost"):
        if self.connected:
            return
        self.socket = QDataSocket(tcp_ip=ip, tcp_port=port)
        self.socket_thread = QThread()
        self.socket.moveToThread(self.socket_thread)
        self.socket_thread.started.connect(self.socket.start)
        self.socket.new_data.connect(self.disperse_values)
        self.socket_thread.start()
        self.connected = True

    def disperse_values(self, new_values):
        accel_data = {'data': new_values[0]['accel']}
        gyro_data = {'data': new_values[0]['gyro']}
        # mag_data = {'data': new_values[0]['mag']}
        self.accel.queue_new_values((accel_data, new_values[1]))
        self.gyro.queue_new_values((gyro_data, new_values[1]))
Example #2
0
class LidarWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.plot = ScatterPlot(label="Lidar")
        self.setLayout(QVBoxLayout())
        self.layout().addWidget(self.plot)
        self.layout().setSpacing(0)
        self.connected = False

    def connect(self, port, ip="localhost"):
        if self.connected:
            return

        self.socket = QDataSocket(tcp_ip=ip, tcp_port=port)
        self.socket_thread = QThread()
        self.socket.moveToThread(self.socket_thread)
        self.socket_thread.started.connect(self.socket.start)
        self.socket.new_data.connect(self.recieve_data)
        self.socket_thread.start()
        self.connected = True

    def recieve_data(self, new_data):
        data = new_data[0]['data']
        self.plot.x_data = np.multiply(np.cos(np.deg2rad(data[:, 0])), data[:,
                                                                            1])
        self.plot.y_data = np.multiply(np.sin(np.deg2rad(data[:, 0])), data[:,
                                                                            1])
Example #3
0
 def connect(self, port, ip="localhost"):
     if self.connected:
         return
     self.socket = QDataSocket(tcp_ip=ip, tcp_port=port)
     self.socket_thread = QThread()
     self.socket.moveToThread(self.socket_thread)
     self.socket_thread.started.connect(self.socket.start)
     self.socket.new_data.connect(self.disperse_values)
     self.socket_thread.start()
     self.connected = True
Example #4
0
class SLAMWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.plot = SLAMPlot(label="SLAM")
        self.setLayout(QVBoxLayout())
        self.layout().addWidget(self.plot)
        self.layout().setSpacing(0)
        self.connected = False

    def connect(self, port, ip="localhost"):
        if self.connected:
            return
        self.socket = QDataSocket(tcp_ip=ip, tcp_port=port)
        self.socket_thread = QThread()
        self.socket.moveToThread(self.socket_thread)
        self.socket_thread.started.connect(self.socket.start)
        self.socket.new_data.connect(self.plot.update_plot)
        self.socket_thread.start()
        self.connected = True
Example #5
0
class SpeedWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.plot = CurvePlot(num_curves=1, label="Speed (m/s)")
        self.plot.plot.setYRange(-0.5, 3)
        self.setLayout(QVBoxLayout())
        self.layout().addWidget(self.plot)
        self.layout().setSpacing(0)
        self.connected = False

    def connect(self, port, ip="localhost"):
        if self.connected:
            return
        self.socket = QDataSocket(tcp_ip=ip, tcp_port=port)
        self.socket_thread = QThread()
        self.socket.moveToThread(self.socket_thread)
        self.socket_thread.started.connect(self.socket.start)
        self.socket.new_data.connect(self.plot.queue_new_values)
        self.socket_thread.start()
        self.connected = True