コード例 #1
0
ファイル: mainThread.py プロジェクト: shaofeinus/DH4113-NTU
    def run(self):
        global isNextPathNeeded
        global nextPathSema
        while 1:

            # if isNextPathNeeded:
            #     print self.threadName, "blocking"
            #     nextPathSema.acquire()

            locationTrackerLock.acquire()

            if self.count == 0:
                locationTracker.updateLocation(stop=isNextPathNeeded, recalibrating=newLevelReached)
                print "Total Steps:", locationTracker.getTotalSteps()
                print "Total Distance:", locationTracker.getTotalDistance()
                print "Deviation from N:", locationTracker.getHeadingInDeg()
                print "True deviation from N:", locationTracker.getTrueHeadingInDeg()
                print locationTracker.getLocation()
                print "Height:", locationTracker.getHeightInCM()
                self.count = 0
            else:
                self.count += 1

            locationTrackerLock.release()
            time.sleep(1.5)
コード例 #2
0
ファイル: mainThread2.py プロジェクト: shaofeinus/DH4113-NTU
    def run(self):
        while 1:
            locationTrackerLock.acquire()
            locationTracker.updateLocation(False, False)
            if self.count == 0:
                print "Total Steps:", locationTracker.getTotalSteps()
                print "Total Distance:", locationTracker.getTotalDistance()
                print "Deviation from N:", locationTracker.getHeadingInDeg()
                print "True deviation from N:", locationTracker.getTrueHeadingInDeg()
                print locationTracker.getLocation()
                print "Height:", locationTracker.getHeightInCM()
                self.count = 0
            else:
                self.count += 1

            # locationTracker.gyroCompass.updateOffset()
            locationTrackerLock.release()
            time.sleep(1.5)
コード例 #3
0
ファイル: mainThread2.py プロジェクト: shaofeinus/DH4113-NTU
    def run(self):
        global naviCount
        global obstacleDetected
        global checkSideObstacle
        global isFirstCleared
        while 1:

            # feedback steps walked
            navi.feedbackWalking(locationTracker.getTotalSteps())

            naviCount += 1
            locationTrackerLock.acquire()
            curX = locationTracker.getXCoord()
            curY = locationTracker.getYCoord()
            heading = locationTracker.getHeadingInDeg()
            locationTrackerLock.release()
            # update location and next node direction for obstacle avoidance
            ##            obstacle.setNextNodeDirection(navi.getGeneralTurnDirection())
            ##            obstacle.setCurrentLocation(curX, curY)
            # every second, check navigation
            ##            if (naviCount%10 == 0) :
            ##                navi.updateCurLocation(curX, curY, heading)
            ##                if obstacleDetected == 1 or checkSideObstacle == 1:
            ##                    navi.ignoreNodeObstacle()
            ##                    time.sleep(0.1)
            ##                    continue
            ##                if isFirstCleared == 1 :
            ##                    navi.updateClearSteps(locationTracker.getTotalSteps())
            ##                    isFirstCleared = 0
            ##                else :
            ##                    navi.updateCurrentSteps(locationTracker.getTotalSteps())

            isNavigationDone = navi.fullNavigate()
            if isNavigationDone is True:
                return
            time.sleep(1)