if (queueBLE.empty() == False): result = queueBLE.get(False) utils.processiBeaconList(result,currentiBeaconRSSI, currentiBeaconTimeStamp,rollingiBeaconRSSI) utils.clearOldValues(10,currentiBeaconRSSI, currentiBeaconTimeStamp,rollingiBeaconRSSI) # update position if (utils.haveThreeGoodBeacons(rollingiBeaconRSSI) >= 3): oldbeacons = beacons beacons = utils.get3ClosestBeacons(rollingiBeaconRSSI) if (cmp(oldbeacons, beacons) != 0): bubblelog.writeToBubbleLog("closebeacons:%i,%i,%i" % (beacons[0], beacons[1], beacons[2])) myPosition = utils.XgetXYFrom3Beacons(beacons[0],beacons[1],beacons[2], rollingiBeaconRSSI) # calculate jitter in position jitter = (((lastPosition[0] - myPosition[0])/lastPosition[0]) + ((lastPosition[1] - myPosition[1])/lastPosition[1]))/2.0 jitter = jitter * 100.0 # to get to percent lastPosition = myPosition f = open("/home/pi/BeaconAir/state/distancejitter.txt", "w") f.write(str(jitter)) f.close() lights.checkForLightTrigger(myPosition, LIGHT_DISTANCE_SENSITIVITY, LIGHT_BRIGHTNESS_SENSITIVITY, currentLightState) # build webpage webmap.buildWebMapToFile(myPosition, rollingiBeaconRSSI, currentLightState, DISPLAY_BEACON_ON, DISPLAY_LIGHTS_ON) # build beacon count graph iBeaconChart.iBeacondetect(rollingiBeaconRSSI) else: # lost position myPosition = [-myPosition[0], -myPosition[1]] # process commands from RasPiConnect processCommand()