BMCLI doctor
Reference version: BMCLI 1.6.3. Command names, parameters and machine-readable fields retain their source spelling.
Check the BMCLI runtime environment, including the BMCLI version, loaded BMAPI DLL path and version, compile-time BMAPI header version, compiler, operating system, and connected hardware.
On Windows, Doctor reads the manifest-independent OS version and reports the
product, major.minor, build, and native architecture in both text and JSON.
If the query is unavailable, the fields are unknown with an explicit warning;
Doctor does not substitute Windows 6.2/build 9200.
bmcli doctorbmcli doctor --channel=10356/0With --channel, Doctor chooses its accessibility probe from the enumerated
capability mask. CAN/CAN FD channels open in CAN normal mode and retain the
detailed live mode, bitrate, terminal resistor, RX filter, CAN status, TX task,
route, logging, and replay dump. LIN-only channels open non-invasively at
19200 bit/s in LIN listen-only mode; LIN OFF is never accepted as evidence of
accessibility. JSON reports channel_protocol, channel_mode, and
channel_mode_id beside channel_accessible. A DLL/header version mismatch is
reported prominently so that the deployed libbmapi.dll can be replaced before
hardware tests.
Doctor reports version match, enumeration, requested-channel accessibility,
and current Bench configuration validation as separate layers. With no
--channel, channel_accessible is null, not true. Bench hardware is not
checked by default and hardware_ready remains null; use
bmcli bench validate --hardware before claiming Bench READY.
While the daemon owns hardware, Doctor coordinates its discovery through the
daemon’s pre-open inventory. JSON identifies the authority with
enumeration.source (daemon or local) and reports the same canonical
enumeration.identities that channel enumerate exposes. A requested channel
already open in the daemon is checked through daemon state rather than a second
exclusive BMAPI open.
Source of truth: BMCLI 1.6.3 repository documentation. Run bmcli help <category> <action> --format=json for the exact contract of the installed version.