{% extends "base.html" %} {% block title %}FDI — {{ alias }}{% endblock %} {% block content %}

Function Description — {{ alias }}

← back to node · discovery

{% if fetch_error %}
FDI fetch failed: {{ fetch_error }}

Not every loco publishes FDI. If this node lists Traction in its PIP flags but no FDI, the manufacturer just didn't wire an FDI document into memory space 0xFA — the loco still works, just without labeled function names.

{% else %} {% if not fdi.flat %}

Node published an empty FDI (no functions declared).

{% endif %} {% for segment in fdi.segments %}
{% if segment.name %}

{{ segment.name }}

{% endif %} {% if segment.description %}

{{ segment.description }}

{% endif %} {% for group in segment.groups %}
{% if group.name %}{{ group.name }}{% endif %} {% if group.description %}
{{ group.description }}
{% endif %} {% for fn in group.functions %} {% endfor %}
F# Name Kind Behaviour Range
F{{ fn.number }} {{ fn.name or '—' }} {{ fn.kind }} {% if fn.momentary %}momentary {% else %}latching{% endif %} {% if fn.min is not none or fn.max is not none %} {{ fn.min if fn.min is not none else '' }}..{{ fn.max if fn.max is not none else '' }} {% else %}—{% endif %}
{% endfor %}
{% endfor %} {% endif %} {% endblock %}