import appuifw, e32, location, time, os.path
PATH = u"E:\\Data\\gsm_loca\\"
if not os.path.exists(PATH):
os.makedirs(PATH)
INTERVAL = 5.0
CELL_FILE = PATH + "known_cells.txt"
LOG_FILE = PATH + "visited_cells.txt"
log = file(LOG_FILE, "a")
timer = e32.Ao_timer()
def current_location():
gsm_loc = location.gsm_location()
return "%d/%d/%d/%d" % gsm_loc
def show_location():
loc = current_location()
if loc in known_cells:
here = known_cells[loc]
print "You are currently at", here
else:
here = ""
print "Unknown location", loc
print >> log, time.ctime(), loc, here
timer.after(INTERVAL, show_location)
def name_location():
loc = current_location()
name = appuifw.query(u"Name this location", "text")
if name:
known_cells[loc] = name
def load_cells():
global known_cells
try:
known_cells = load_dictionary(CELL_FILE)
except:
known_cells = {}
def quit():
print "SAVING LOCATIONS TO", CELL_FILE
save_dictionary(CELL_FILE, known_cells)
print "GSM LOCATIONING APP EXITS"
timer.cancel()
log.close()
app_lock.signal()
appuifw.app.exit_key_handler = quit
appuifw.app.title = u"GSM location App"
appuifw.app.menu = [(u"Name this location", name_location)]
print "RECORDING VISITED CELLS TO", LOG_FILE
print "LOADING LOCATIONS FROM", CELL_FILE
load_cells()
print "%d KNOWN CELLS LOADED" % len(known_cells)
show_location()
print "GSM LOCATIONING APP STARTED"
app_lock = e32.Ao_lock()
app_lock.wait()