Пример #1
0
def get_pos():
    # get data
    print bcolors.OKBLUE + "/get_position, POST" + bcolors.ENDC
    try:
        print bcolors.HEADER + "Try get data..." + bcolors.ENDC
        separator = ','
        data = request.json
        values = np.fromstring(data.get("values"), sep=separator)[0]
        lat    = np.fromstring(data.get("lat"),    sep=separator)[0]
        lon    = np.fromstring(data.get("lon"),    sep=separator)[0]
        speed  = np.fromstring(data.get("speed"),  sep=separator)[0]
        print type(speed)
        acc_data = np.fromstring(data.get("acc_data"), sep=separator)
        com_data = np.fromstring(data.get("com_data"), sep=separator)
        tim_data = np.fromstring(data.get("tim_data"), sep=separator)
        print bcolors.OKGREEN + "Done!" + bcolors.ENDC
    except Exception as e:
        print bcolors.FAIL + "get_position: there are an exception! Pls, check data!" + bcolors.ENDC
        abort(400)

    # TODO: check data 
    # sizeof acc_data, com_data and tim_data should be the same

    # prepare data for calculation
    # TODO: should be changed, currently we need to send request frequently
    print bcolors.WARNING + "Ignore values from request..." + bcolors.ENDC
    values = len(com_data)

    # prepare data for calculation
    acc_data  = cmn.aver_std_array(acc_data, values)
    acc_data  = acc_data.reshape(len(acc_data)/2, 2)
    acceleration = acc_data.item(0,0)
    direction = cmn.aver_std_array(com_data, values).item(0)
    time = tim_data.item(-1)/1000 - tim_data.item(0)/1000
    action    = sp.predicted(acc_data)
    speed     = sp.get_speed(speed, time, acceleration, action)

   
    print "speed ", speed, " direct ", direction, " t ", time, " acc ", acceleration
    coordinates = pos.calculate_position(speed, time, direction, lat, lon)

    _lat   = "%.6f" % coordinates[0]
    _lon   = "%.6f" % coordinates[1]
    _speed = speed

    result = "lat: " + str(_lat)  + "; lon: " +str( _lon) + "; speed: " + str(_speed)
    print bcolors.OKGREEN, result, bcolors.ENDC
    return jsonify(lat=_lat, lon=_lon, speed=_speed)
def test_calculate_position_no_fills():
  orders = test_data.orders_no_fills
  stocks, cash = position.calculate_position(orders[:2])
  assert stocks == 0
  assert cash == 0
def test_calculate_position_multiple():
  orders = test_data.orders
  stocks, cash = position.calculate_position(orders[:2])
  assert stocks == 30 + 50
  assert cash == -30000 - 50 * 1020
def test_calculate_position_single():
  orders = test_data.orders
  stocks, cash = position.calculate_position(orders[:1])
  assert stocks == 30
  assert cash == -30000