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)
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)
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)