osrm-backend/profiles/debug.lua

100 lines
2.0 KiB
Lua
Raw Normal View History

-- Enable calling our lua profile code directly from the lua command line,
-- which makes it easier to debug.
-- We simulate the normal C++ environment by defining the required globals and functions.
2016-11-07 04:47:06 -05:00
-- Usage:
-- > cd profiles
-- > lua5.1 debug.lua
-- for more convenient printing of tables
local pprint = require('lib/pprint')
-- globals that are normally set from C++
-- profiles code modifies this table
properties = {}
-- should match values defined in include/extractor/guidance/road_classification.hpp
road_priority_class = {
motorway = 0,
trunk = 2,
primary = 4,
secondary = 6,
tertiary = 8,
main_residential = 10,
side_residential = 11,
link_road = 14,
bike_path = 16,
foot_path = 18,
connectivity = 31,
}
-- should match values defined in include/extractor/travel_mode.hpp
mode = {
inaccessible = 0,
driving = 1,
cycling = 2,
walking = 3,
ferry = 4,
train = 5,
pushing_bike = 6,
}
-- input tags, normally extracted from OSM data
local way = {
highway = 'primary',
name = 'Main Street',
--width = '3',
--maxspeed = '30',
--['maxspeed:advisory'] = '25',
--oneway = '-1',
--service = 'alley',
--['oneway:bicycle'] = 'yes',
--junction = 'roundabout',
--['name:pronunciation'] = 'fuerloong',
--route = 'ferry',
--duration = '00:01:00',
--hov = 'designated',
--access = 'no'
2016-11-07 04:47:06 -05:00
}
-- tag function normally provided via C++
2016-11-07 04:47:06 -05:00
function way:get_value_by_key(k)
return self[k]
end
-- Mock C++ helper functions which are called from LUA.
-- FIXME
-- Debugging LUA code that uses these will not work correctly
-- unless we reimplement themethods in LUA.
function durationIsValid(str)
return true
end
function parseDuration(str)
return 1
end
function canonicalizeStringList(str)
return str
end
2016-11-07 04:47:06 -05:00
-- start state of result table, normally set form C++
local result = {
road_classification = {},
forward_speed = -1,
backward_speed = -1,
}
-- the profile we want to debug
require("car")
-- call the way function
way_function(way,result)
-- and print the output
pprint(way)
print("=>")
pprint(result)