8#include <nlohmann/json.hpp>
104 std::function<void(
const std::string&)>
log;
125 bool detect,
double skew_mm, std::vector<std::string>* notes =
nullptr);
130 std::string* line =
nullptr);
Buses (design doc 05 §38): groups of nets that belong together (a data bus, an address bus,...
std::vector< route::BusGroup > resolve_buses(const model::Board &b, const model::DesignRules &rules, const std::vector< std::string > &specs, bool detect, double skew_mm, std::vector< std::string > *notes=nullptr)
Buses (doc 05 §38): the groups specs ("NAME=PATTERN") name on the board, then, with detect,...
RouteJobResult run_route_job(RouteJob job)
Reads the board and its rules, routes (a portfolio when more than one variant runs),...
int default_gpu_device(bool use_gpu)
The GPU device used for cost-to-go fields: the first listed device, or -1 (none, or use_gpu false).
nlohmann::json bus_report(const model::Board &b, const model::DesignRules &rules, const std::vector< std::uint8_t > &joined, const route::BusGroup &g, std::string *line=nullptr)
A group measured on the copper of b (joined: route::nets_joined of the same board),...
Reference-return audit of high-speed nets (issue #7, docs/05-routing.md §42, D114).
TraceMaker's detailed router, version 1 (roadmap M4; design doc 05 §2, §5).
std::string viewer_url
empty when not viewing
int exit_code() const
0 when everything planned was routed (and, with soft zones, nothing is unconnected after the refill).
int unconnected_after_refill
with soft zones: what KiCad's refill would leave unconnected
route::RouteResult result
nlohmann::json items
new copper in the –emit-items layout (layer and net by name, nm)
nlohmann::json summary
the –json layout
std::string rules_override
–rules-override: user override file (JSON, doc 15 §6.3); empty = none
std::string warm_pcb
–warm-pcb: a routed board whose tracks and vias are the starting point (kept where legal under the in...
std::vector< std::string > widen_nets
std::string footprint_trusted
trusted brand list; empty = trusted_brands.txt beside the references
std::vector< std::string > buses
Buses (doc 05 §38): "NAME=PATTERN" groups (–bus), automatic detection (–buses) and the skew limit of ...
bool hold
keep serving the viewer after routing; never returns (CLI only)
std::string stitch_vias
–stitch-vias: "planes" (vias of a plane's net on a grid where its fills overlap on two or more layers...
std::string advisor
–advisor CMD: a shell command that reads the stuck report on stdin and writes advice on stdout
double stitch_pitch_mm
0 = the catalogue's stitch_via_within_mm
std::vector< std::string > stitch_returns
bool reroute
–reroute: remove every unlocked track and via first and route the whole board again (locked copper,...
std::function< void(const std::string &)> log
Progress lines (the CLI's stdout text, one line per call, no trailing newline). Empty = silent.
std::vector< std::string > layer_costs
std::string advice
Advice (doc 17, issue #26).
std::string component_rules
–component-rules (doc 15 §3.5): "off" (default), "report" or "soft" (detect; write the sidecar ....
std::string record
events file for replay (ignored while viewing)
int advice_variants
–advice-variants N: advised variants (0 = the file's "variants", else 4)
int variants
Portfolio size (1 = single router).
analysis::FootprintCheckOptions footprint_opt
double split_cost
pitches per lattice step over a void of the reference plane
std::string json_out
–json summary file; empty = none
long pass_work
work budget of each pass, in exact checks (rule 5)
std::string kb_path
knowledge base file; empty = none
int critical_via_max
warn when a critical net has more vias than this (0 = no limit)
std::string view_host
"" = $TM_VIEW_HOST, else loopback: a viewer on any other address needs a token (issue #4,...
double advisor_timeout_s
–advisor-timeout S: the advisor's time limit (its wall time is not routing work)
bool advisor_redact
–advisor-redact: the report names nets and parts by alias (N1, P3); the advice is mapped back
std::string items_out
–emit-items file; empty = none
int threads
worker threads for the portfolio variants
double stitch_distance_mm
0 = the rule's stitch_via_mm, else the catalogue value
std::string view_token
the token for a non-loopback viewer (empty = a random one)
route::RouterOptions opt
sink is set here when viewing or recording
std::string out
output .kicad_pcb; empty = do not write a board
analysis::ReturnPathOptions return_paths
Reference-return audit of selected nets on the routed board (issue #7, doc 05 §42): off unless a sele...
bool view_insecure
a non-loopback viewer without a token (–view-insecure)
bool widen_power
After-route passes (doc 05 §39), all off by default.
std::string view_embed
pages that may frame the viewer (–view-embed); empty = none
std::vector< std::string > no_tracks_on
–no-tracks-on / –layer-cost (doc 05 §29): copper layer names, and "LAYER=FACTOR" entries.
int advisor_rounds
–advisor-rounds N: consult again with the result of the advised run while connections are left
bool split_cost_given
as critical_via_given (else +4 with si_rules)
std::vector< std::string > critical_nets
Critical nets (issue #24, doc 05 §44, D117): route critical signals first, give them dearer vias,...
bool split_hard
such cells are closed to critical nets
std::string footprint_refs
–footprint-refs (issue #5, doc 05 §43): every footprint is checked against the datasheet land pattern...
bool refill_repair
With soft zones: refill the zones after routing and route what the refill left unconnected (doc 05 §3...
std::string advice_out
–advice-out FILE: where the advice that was used is saved (default: <out>.advice.json)
bool critical_auto
also the nets the component rules' roles make critical, and differential pairs
std::string in
input .kicad_pcb (its project files supply the design rules)
double critical_via_mult
a via costs them this many times as much
bool view_freeze
the viewer holds the scene on a routing stall (issue #8); –no-freeze says false in the board snapshot
bool critical_first
route them before all other nets, tier by tier
bool critical_via_given
set by the command line: with si_rules, a value that was given is kept (else x3)
bool view
stream to the browser viewer
std::string stuck_report_out
–stuck-report FILE: write the stuck report (of the run the advisor saw, else the final one)