예제 #1
0
class Sensor(threading.Thread):

    def __init__(self, grid, pose3d, start):
        self.grid = grid
        self.pose3d = pose3d
        self.grid.initPose(self.pose3d.getPose3d().x,
                           self.pose3d.getPose3d().y,
                           self.pose3d.getPose3d().yaw)
        
        self.kill_event = threading.Event()
        
        self.thread = ThreadSensor(self, self.kill_event)

        self.thread.daemon = True
        if start:
            self.start()

    # if client is stopped you can not start again, Threading.Thread raised error
    def start(self):
        self.kill_event.clear()
        self.thread.start()

    # if client is stopped you can not start again
    def stop(self):
        self.kill_event.set()

    def update(self):
        self.grid.updatePose(self.pose3d.getPose3d().x,
                             self.pose3d.getPose3d().y,
                             self.pose3d.getPose3d().yaw)

    def setGetPathSignal(self, signal):
        self.getPathSig = signal

    def getPose3D(self):
        return self.pose3d.getPose3d()

    def getRobotX(self):
        return self.pose3d.getPose3d().x

    def getRobotY(self):
        return self.pose3d.getPose3d().y

    def getRobotTheta(self):
        return self.pose3d.getPose3d().yaw
예제 #2
0
from PyQt4 import QtCore, QtGui
from gui.GUI import MainWindow
from gui.threadGUI import ThreadGUI
from sensors.sensor import Sensor
from sensors.threadSensor import ThreadSensor
from MyAlgorithm import MyAlgorithm




if __name__ == "__main__":
    sensor = Sensor()
    algorithm=MyAlgorithm(sensor)

    app = QtGui.QApplication(sys.argv)
    myGUI = MainWindow()
    myGUI.setSensor(sensor)
    myGUI.setAlgorithm(algorithm)
    myGUI.show()

    t1 = ThreadSensor(sensor,algorithm)
    t1.daemon=True
    t1.start()

    t2 = ThreadGUI(myGUI)
    t2.daemon=True
    t2.start()


    sys.exit(app.exec_())