示例#1
0
def update_base_level():
    if 'data' not in request.form:
        return 'Nothing received'
    data = json.loads(request.form['data'])
    wdm = WifiDeeperMagic(cache)
    wdm.store_base_level(data['name'],data['base_level'])
    return "thank you"
示例#2
0
def update_base_level():
    if 'data' not in request.form:
        return 'Nothing received'
    data = json.loads(request.form['data'])
    wdm = WifiDeeperMagic(cache)
    wdm.store_base_level(data['name'], data['base_level'])
    return "thank you"
示例#3
0
def data():
    print "starting push logic"
    p.start("entire_push")
    if 'data' not in request.form:
        return 'Nothing received'
        #Test code:
        # request.form = {'data' : json.dumps([
#                 {'name' : 'sensors',
#                  'data' : 'shit'},
#                 {'name' : 'wifi',
#                  'data' : [{'label' : 'blah',
#                             'level' : -56,
#                             'freqMhz' : 2600,
#                             'estimatedDistance' : 10}]}])}
    #p.off()
    p.start('initial')
    data = json.loads(request.form['data'])

    wifi_magic = WifiMagic()
    wifi_deep_magic = WifiDeeperMagic(cache)

    walls = None
    p.start('sensors')
    sensors_magic = SensorsMagic(walls)
    p.pstop('sensors')

    p.start('load_particles')
    saved_particles = get_db("particles")
    p.pstop('load_particles')
    pf = ParticleFilter(particles=saved_particles)
    p.pstop('initial')

    p.start('weights')
    for d in data:
        if d['name'] == 'sensors':
            result = sensors_magic.parse(d['data'])
            print 'dheading: %f' % result['dheading']
            sensors_magic.update_particles(pf.get_particles(), result)
        if d['name'] == 'wifi':
            wifidata = d['data']
            corr = wifi_deep_magic.get_corrections()
            for r in wifidata:
                if r['label'] in corr:
                    oldLvl = r['level']
                    r['level']+=corr[r['label']]
                    #print "corrected",r['label'],'from',oldLvl,'to',r['level']
            result = wifi_magic.parse(wifidata)
            set_db("router_dist", result)
            result = wifi_magic.update_particles(pf.get_particles(), result)
    p.pstop('weights')

    p.start('resample')
    pf.resample();
    p.pstop('resample')
    p.start('save_to_cache')
    set_db("particles", pf.get_particles())
    p.pstop('save_to_cache')
    #x, y = pf.get_position()
    #std = pf.get_std()
    #print "Particles updated to", x, y, " (var:", std,")"
    p.pstop('entire_push')
    #return json.dumps([x, y, std])
    return 'Thank you!'
示例#4
0
def data():
    print "starting push logic"
    p.start("entire_push")
    if 'data' not in request.form:
        return 'Nothing received'
        #Test code:
        # request.form = {'data' : json.dumps([


#                 {'name' : 'sensors',
#                  'data' : 'shit'},
#                 {'name' : 'wifi',
#                  'data' : [{'label' : 'blah',
#                             'level' : -56,
#                             'freqMhz' : 2600,
#                             'estimatedDistance' : 10}]}])}
#p.off()
    p.start('initial')
    data = json.loads(request.form['data'])

    wifi_magic = WifiMagic()
    wifi_deep_magic = WifiDeeperMagic(cache)

    walls = None
    p.start('sensors')
    sensors_magic = SensorsMagic(walls)
    p.pstop('sensors')

    p.start('load_particles')
    saved_particles = get_db("particles")
    p.pstop('load_particles')
    pf = ParticleFilter(particles=saved_particles)
    p.pstop('initial')

    p.start('weights')
    for d in data:
        if d['name'] == 'sensors':
            result = sensors_magic.parse(d['data'])
            print 'dheading: %f' % result['dheading']
            sensors_magic.update_particles(pf.get_particles(), result)
        if d['name'] == 'wifi':
            wifidata = d['data']
            corr = wifi_deep_magic.get_corrections()
            for r in wifidata:
                if r['label'] in corr:
                    oldLvl = r['level']
                    r['level'] += corr[r['label']]
                    #print "corrected",r['label'],'from',oldLvl,'to',r['level']
            result = wifi_magic.parse(wifidata)
            set_db("router_dist", result)
            result = wifi_magic.update_particles(pf.get_particles(), result)
    p.pstop('weights')

    p.start('resample')
    pf.resample()
    p.pstop('resample')
    p.start('save_to_cache')
    set_db("particles", pf.get_particles())
    p.pstop('save_to_cache')
    #x, y = pf.get_position()
    #std = pf.get_std()
    #print "Particles updated to", x, y, " (var:", std,")"
    p.pstop('entire_push')
    #return json.dumps([x, y, std])
    return 'Thank you!'