Back to Downloads

RELEASE NOTES

BMCLI Release Notes

Review new features, refinements, and fixes before upgrading, or trace changes in an earlier release.

BMCLI
Latest entry
v1.6.5
Releases
45
Change items
218
01BMCLI v1.6.5Latest entry4
  1. Expanded BMCLI discovery and concurrent runtime capacity to 64 channels while preserving high-index logging, recording, replay, gateway, and device-mask behavior.

  2. Hardened CANopen SDO validation, transmit correlation, cancellation, and route ownership so overlapping or uncertain transactions cannot consume the wrong response or retry unsafely.

  3. Preserved device-owned LIN response quotas across live task updates and prevented gateway refreshes from queuing stale slave-response data.

  4. Made Simulation retry transient daemon admission contention without recording a false transport failure or losing the pending generated frame.

02BMCLI v1.6.45
  1. Added LDF-driven CAN/CAN FD-to-LIN signal gateways for master and slave nodes, including schedule/response handling and ready-to-run examples.

  2. Added capability-driven offline configuration save/load/clear and host-to-device ASC/BLF download to `/REPLAY` files or a supported RAM replay buffer.

  3. Made offline logging, replay, and file download safer across daemon and standalone use, with explicit save semantics, preflight checks, failure cleanup, retained errors, and replay recovery.

  4. Improved LIN response round accounting, daemon JSONL streaming, cold-channel recording timestamps, CANopen SDO transmit confirmation, and ECU-simulator recovery after receive gaps.

  5. Reported missing A2L module references as warnings while preserving usable A2L content.

03BMCLI v1.6.35
  1. Fixed daemon transmit-task increment and random modes to preserve ID/data parameters and reject unsupported field settings consistently with standalone commands.

  2. Fixed hexadecimal transmission-round parsing, including 0xFFFF for continuous sending.

  3. Fixed successful Modbus latest/history queries returning failure exit codes when their results contain failed samples.

  4. Fixed cold-channel ASC/BLF recordings using uninitialized device time, which could produce 1970-dated filenames and incorrect frame offsets.

  5. Clarified transmit-task mode, field-width and round-count guidance in Help and the command reference.

04BMCLI v1.6.23
  1. Fixed XCP disconnect through CLI and Web when the slave reply is sent by the same daemon, including orderly cleanup of active DAQ.

  2. Preserved XCP request ordering through completion so concurrent commands cannot block replies or invalidate the next connection.

  3. Clarified DBC decoding of observed out-of-range values versus validation of values supplied for encoding, and improved XCP disconnect guidance.

05BMCLI v1.6.16
  1. Fixed daemon ASC/BLF replay to support multiple channels, channel mappings and strict validation consistently with standalone replay.

  2. Improved concurrent CAN batch sending, replay, recording and gateway operation, with cooperative shutdown and no unintended interruption from read-only queries or invalid cleanup requests.

  3. Fixed UDS unlock and download to inherit the daemon's configured endpoint defaults while preserving explicit command overrides.

  4. Improved daemon-owned device discovery, required explicit channel opening before daemon receive, and clarified channel and Bench configuration errors.

  5. Fixed relative Web-root paths and HTTP parameter error reporting, and clarified recovery from expired signal-history cursors.

  6. Improved logging channel counts, gateway health reporting, and Help guidance for UDS setup, ECU simulation rules and LIN response events.

06BMCLI v1.6.07
  1. Added configuration-based gateways between CAN/CAN FD channels and Modbus devices, with no routing code required.

  2. Added a unified signal model with scaling, calculations and mappings, so values, validity and timeouts are handled consistently across protocols.

  3. Added Modbus client polling and writes, plus server register and coil mappings for exchanging signals with external systems.

  4. Added periodic and change-triggered CAN transmission, DBC multiplexed signals, and E2E checks and protection for gateway traffic.

  5. Added portable .bmgw project files that keep gateway definitions separate from local device and channel bindings.

  6. Added native plugins for custom codecs, transformations and E2E algorithms, with gateway control available through the CLI and REST API.

  7. Connected Simulation to the same signal state and transmission services used by gateways.

07BMCLI v1.5.34
  1. Restored high-throughput asynchronous ASC/BLF replay on Windows and Linux with transmit-completion-based sent counts and bounded end-of-file draining.

  2. Made replay cancellation, NoACK, LIN error completions, and daemon terminal status fail closed instead of reporting partial or failed transfers as successful.

  3. Hardened BMAPI CAN and ISO-TP timeout recovery so later writes remain blocked until the correct device and port queues are cleared, preventing stale traffic after failures.

  4. Fixed Web database paths up to the documented limit and improved bounded LIN channel reopen and shutdown behavior.

08BMCLI v1.5.26
  1. Improved analyzer discovery, AutoSet, and daemon reliability with serialized enumeration, stable physical and virtual channel identities, target-scoped AutoSet exclusion, accurate daemon-owned inventory, and Linux Active AutoSet timeout recovery.

  2. Made automation output more consistent: explicit empty CAN payloads produce zero-length frames, reset-defaults returns one bounded JSON result, JSONL receive flushes promptly and ends with a summary, and invalid one-off UDS inputs report `invalid_argument`.

  3. Made replay and conversion results more truthful with legacy RTR compatibility, classified conversion counts and errors, daemon timing-option parity, transmit-completion-based sent counts, and explicit lateness thresholds.

  4. Hardened UDS, XCP, and ECU simulation with strict whole-file rule validation, fully offline download dry-run preflight, post-transmit XCP response correlation, and local DAQ validation before bus access.

  5. Expanded A2L, DBC, and database compatibility and diagnostics, including common CANoe A2L syntax and calibration offsets, fast batch resolution for multi-symbol XCP DAQ, precise DBC range/path errors, and live database source status in REST.

  6. Improved offline installation and runtime guidance with package-source reporting, complete packaged Help/Skill content, clearer Web/Bench listener and channel diagnostics, and earlier Modbus/EdgeX configuration errors.

09BMCLI v1.5.17
  1. Improved installation and update workflows. Foreground updates now finish installation and verification before returning and clearly report the previous and installed versions.

  2. Improved command-line guidance, diagnostics, error messages, and structured output consistency.

  3. Improved DBC and simulation usability, including enumeration values, correct signal rounding, offline validation, and readable signal-source types.

  4. Fixed ASC/BLF conversion so failures remain visible and timestamps are preserved correctly.

  5. Hardened ISO-TP, UDS, and XCP timing and transport behavior, including layered deadlines, configurable flow control, CAN FD extended Single Frames, ECU simulation, and preflight validation.

  6. Improved Web APIs and the Engineering Console with independent stream recovery, history-gap reporting, OpenAPI alignment, and accessible controls.

  7. Fixed Linux analyzer firmware-update completion verification after USB re-enumeration.

10BMCLI v1.5.05
  1. Added CAN/CAN FD node simulation with periodic transmission based on a DBC node or selected messages and signal updates while running.

  2. Added constant, step, sine and sawtooth signal sources to simulate changing values such as vehicle speed and engine speed.

  3. Added per-frame E2E protection with automatic Alive Counter progression and configurable CRC or additive checksums.

  4. Added support for external E2E algorithm plugins to use manufacturer-specific message protection rules.

  5. Added application-layer fault injection to simulate dropped frames, repeated frames, unprotected messages and checksum errors.

11BMCLI v1.4.94
  1. Fixed standalone and daemon host replay retained-timestamp pacing to use one

    monotonic absolute origin per loop. Windows wait rounding, send cost, and an

    occasional late frame no longer re-anchor every later deadline.

  2. Added host replay lateness, send-failure, and drop statistics while retaining

    the CAN transmit-queue backpressure contract: a full queue retries the same

    frame and may slow wall-clock playback without dropping or reordering it.

  3. Added deterministic 26,227-frame fake-clock coverage plus equivalent ASC

    absolute, ASC relative, and uncompressed BLF deadline coverage at multiple

    speed factors.

  4. Preserved bounded retained-timestamp pacing for repeated one-frame traces and

    synchronized daemon timing-statistic snapshots on 32-bit Windows builds.

12BMCLI v1.4.84
  1. Added stable typed DBC encode diagnostics across direct encode, standalone

    message send, and daemon message send.

  2. Reject unknown signals, out-of-range values, and invalid multiplex selections

    before send while retaining bounded, path-safe resource and parse details.

  3. Preserved successful Classic CAN, extended CAN, and CAN FD/BRS encode output.

  4. Fixed standalone and daemon DBC CAN FD send finalization so payload byte

    lengths map to wire DLC exactly once for all valid CAN FD sizes.

13BMCLI v1.4.74
  1. Made CAN TX-task identities explicitly refer to stable physical slots,

    including sparse-table reuse and consistent standalone/daemon JSON fields.

  2. Added daemon-instance handles with per-task random tokens so a handle from a

    deleted or reused slot is rejected without adding persistence, BMAPI, firmware,

    or TX-task update behavior.

  3. Added local Classic CAN/CAN FD conversion between Vector ASC and

    uncompressed BLF.

  4. Preserved CANFD FDF truth (including Classic DLC 9-F rows), Rx/Tx/TxRq,

    transmission-error/wake-up state, and legal CANoe v7.5/v8.5 Classic

    variants. Symbolic Classic rows now require a recoverable numeric ID instead

    of being silently skipped or guessed.

14BMCLI v1.4.61
  1. Completed UDS ECU Reset Help with `hard`/`key-off-on`/`soft` mappings,

    command-local machine-readable argument metadata, the numeric 1..127 range,

    ECU-specific effect notes, a dry-run example, and consistent standalone/

    daemon invalid-input diagnostics.

15BMCLI v1.4.51
  1. Added CAN `--bitrate=N` shorthand with deterministic nominal=data timing;

    explicit nominal/data rates remain supported and conflicting mixed inputs

    are rejected before hardware or daemon access.

16BMCLI v1.4.44
  1. Added safe host-side ASC/BLF segmentation by monotonic duration or projected

    final file size, with fixed, indexed, and UTC time-based path modes.

  2. Made `--path` the canonical recording destination and retained `--output` as

    an input alias. Added explicit `--max-files`, recorded-slot `--wrap`, and

    exact-candidate `--overwrite` policies; overwrite authorizes replacement of

    the generated target path, while incomplete output remains under a `.partial`

    name.

  3. Unified standalone, daemon, typed Web, Help, OpenAPI, and status behavior on

    one recording-session core. Host recording now uses 64-bit PTP timestamps in

    every execution mode and reports segment, counter, outcome, and I/O details.

  4. Synchronized the maintained BLF writer copies with race-safe exclusive create

    and projected-size support, and added deterministic naming, boundary,

    collision, wrap, timestamp, failure-injection, and Web regression tests.

17BMCLI v1.4.31
  1. Unified standalone and daemon host ASC output on explicit CRLF line endings

    across Windows and Linux while preserving existing Vector-compatible fields.

18BMCLI v1.4.23
  1. Fixed standalone and daemon host replay so a temporarily full asynchronous

    CAN transmit queue waits and retries the same frame instead of dropping it.

    Replay may run slower than the source timestamps under sustained pressure,

    while Ctrl+C and daemon stop remain interruptible.

  2. Fixed uncompressed BLF replay when a BLF object spans consecutive

    LOG_CONTAINER payloads. The reader now treats those payloads as one logical

    stream while excluding container headers and alignment padding.

  3. Added deterministic boundary, empty-container, padding, timestamp-wrap,

    unknown-object, EOF/rewind, compressed-container, and truncated-container

    reader tests. This is a reader-only change; BLF/ASC writer bytes and online

    logging finalization/segmentation behavior are unchanged.

19BMCLI v1.4.12
  1. Fixed CANopen Dashboard SSE delivery for dense, valid PDO mappings by using

    bounded dynamic JSON parsing instead of a fixed token array.

  2. Preserved exact per-event cursors in batched CANopen SSE delivery so browser

    reconnects cannot skip or duplicate events.

20BMCLI v1.4.08
  1. Added classic CANopen CC manager/client/observer support over the shared CAN

    Host Runtime, including node discovery and identity, NMT, Heartbeat, EMCY,

    expedited and segmented SDO, PDO mapping/decode/transmit, SYNC and TIME.

  2. Added a tolerant read-only CiA 306 EDS/DCF resource model with Object

    Dictionary inspection, DCF Node-ID/bitrate/SDO endpoint validation, typed SDO

    values, source hashes and evidence-gated online PDO mapping verification.

  3. Added bounded daemon observation epochs, opaque resumable cursors, typed

    event DTOs, REST history/actions and one-event-per-record SSE streaming.

    CANopen shares the existing RxBroker, route ownership, generation,

    deadline/cancel and daemon/standalone lifecycle with UDS, XCP, raw receive,

    logging, Web and Gateway.

  4. Added pinned test-only canopen-python and CANopenNode v4.0 oracles, a raw CAN

    HIL mux with bounded per-client queues and explicit gap records, two-node

    physical acceptance, and CANopen/UDS/XCP coexistence regression. These test

    dependencies and fixtures are excluded from customer packages.

  5. Preserved the BMAPI ABI, analyzer firmware, Gateway wire format and existing

    REST routes. CANopen FD, SDO block transfer, LSS, CiA 402 helpers and node

    implementation remain outside this first release.

  6. Added executable acceptance ownership for TEST-001 through TEST-027, two

    five-minute bounded physical CANopen scenarios, deterministic 1 MiB history and raw

    mux overflow evidence, database fuzzing and USB disconnect recovery gates.

  7. Preserved multi-channel daemon operation with BMAPI versions that hide or

    retype sibling USB functions after the first channel opens by resolving

    startup and dynamic opens against the initial physical-channel inventory.

  8. Fixed loop replay timing so each repeated trace preserves its initial time

    offset and sub-millisecond Windows waits cannot collapse into a busy loop.

21BMCLI v1.3.34
  1. Closed the second CAN-115 peer-review round by making each compound UDS

    route lease single-transaction exclusive. A concurrent request using the

    same lease is rejected instead of sharing independent cursors on one

    correlated response route.

  2. Made explicit lease end, owner-process loss and lease expiry cancel the

    pinned software ISO-TP Host before releasing or reusing its route.

  3. Added bounded physical regression coverage for direct lease-driven Host

    cancellation, immediate route reuse, and Web XCP lifecycle route/cursor

    cleanup.

  4. Revalidated the candidate with BMAPI 1.14.1.1 from the current target branch.

    SSE protocol concurrency now proves exact UDS response counts, unique and

    contiguous global event IDs, and an unchanged route-drop counter while

    continuous XCP DAQ traffic is active.

22BMCLI v1.3.210
  1. Hardened daemon protocol lifecycle handling after CAN-115 peer review.

    Channel close/claim/release now cancel only an operation on the selected

    channel, while daemon stop/restart and protocol reconfiguration cancel the

    active protocol transaction globally.

  2. Moved ordinary daemon commands to bounded worker threads so stop, close and

    ownership changes remain responsive during long UDS or XCP transactions.

    Frontend process death and closed Web request sockets now release compound

    UDS leases and XCP work promptly instead of waiting for the configured

    protocol timeout.

  3. Made daemon-owned software ISO-TP and XCP writes asynchronous at the BMAPI

    enqueue boundary; protocol deadlines, flow control and cancellation remain

    owned by their engines. Standalone blocking-write behavior is unchanged.

  4. Added strict numeric validation for UDS download address, size, ALFID and

    maximum block length, including negative, overflowing and malformed input.

  5. Added route-contention and physical single-/multi-channel lifecycle tests

    covering owner death, unrelated-channel isolation, channel close/reopen,

    claim release, Web disconnect and daemon stop.

  6. Prevented a compound UDS route lease from being released or reused while an

    in-flight transaction still references it. Concurrent end/expiry now defers

    cleanup until the last pinned exchange drains.

  7. Classified active Host operations by protocol so Web XCP disconnect and

    endpoint reconfiguration can cancel XCP before waiting on its mutex, without

    cancelling an unrelated UDS transaction on the same CAN channel.

  8. Strengthened Web SSE concurrency acceptance to verify the expected UDS and

    DAQ event counts as well as per-stream order and uniqueness.

  9. Restored the intended daemon-or-standalone policy for bounded Modbus

    operations so CLI, Web and polling reuse one endpoint session. Modbus

    exceptions and local value errors preserve a healthy connection; timeout,

    transport and response-integrity failures still force a safe reconnect.

  10. Made XCP DAQ receive poll its Host validator in bounded slices so daemon

    stop, channel ownership loss and client disconnect cannot remain hidden

    behind a long DAQ receive timeout.

23BMCLI v1.3.011
  1. Added a small protocol-neutral CAN Host Runtime and thread-safe route

    registry. Passive observers may overlap, while two correlated consumers of

    the same channel/ID/IDE/FDF response route are rejected with owner

    diagnostics.

  2. Unified standalone and daemon UDS execution around the same software ISO-TP

    transaction and service planner for raw requests, semantic Helpers, DTC,

    SecurityAccess, download transfer steps and one-shot TesterPresent. Local

    security/image files remain frontend-owned while their bus transactions use

    the daemon whenever it is active.

  3. Preserved the original UDS DTC aliases, including numeric subfunctions, and

    made them inherit the active daemon diagnostic endpoint instead of

    accidentally falling back to an unconfigured standalone session.

  4. Kept file-backed `load/save/list`, `unlock` and `download` orchestration local;

    registered only daemon-capable transactions as runtime-either, and rejected

    daemon/client registry mismatches instead of silently changing execution

    mode.

  5. Reserved the XCP CTO response route through the same registry and made XCP

    endpoint reconfiguration transactional, so a conflicting replacement does

    not discard the working configuration.

  6. Added Windows/Linux coverage for in-flight cancellation, deadline and

    ownership loss, gap/epoch detection, route/cursor cleanup and isolation,

    standalone/daemon JSON parity, and a future CANopen SDO probe. BMAPI ABI,

    analyzer firmware, Web REST/OpenAPI and Gateway wire contracts are unchanged.

  7. Made the cross-thread Host cancellation flag an acquire/release atomic so

    bounded cancellation has defined Windows/Linux synchronization semantics.

  8. Kept compound daemon SecurityAccess and download steps under one bounded

    bidirectional transport lease, and made XCP reserve both request TX and

    response RX routes. NRC, timeout, client/lifecycle loss, broker gaps and

    shutdown now fail closed and release protocol ownership deterministically.

  9. Added per-transaction timeout options to UDS unlock/download and corrected

    daemon error-envelope parsing so AI callers receive one clean message.

  10. Corrected asymmetric UDS addressAndLengthFormatIdentifier handling to use

    the standard high=size, low=address nibble order; `0x44` remains unchanged.

  11. Added physical-CAN simulator coverage for daemon unlock, download, NRC,

    timeout and immediate UDS-to-XCP route reuse after both failure paths.

24BMCLI v1.2.144
  1. Unified standalone and daemon ASC recording on one Vector-compatible writer,

    including stable field widths, CAN FD flags, a BMCLI source marker, and

    consistent CAN/LIN logical-channel output.

  2. Rejected malformed ASC replay records with invalid IDs, payload lengths,

    directions, CAN FD tail fields, or trailing tokens instead of transmitting

    partially parsed data.

  3. Honored Vector `timestamps absolute` and `timestamps relative` replay modes.

  4. Propagated BLF write, short-write, seek, flush, and close failures to logging

    command results and daemon status rather than reporting a damaged log as

    successful.

25BMCLI v1.2.132
  1. Made Bamboo BMCLI builds resolve product and Git metadata before invoking

    MinGW Make, avoiding an intermittent MSYS shell hang in the Windows service

    session that could prevent compilation from starting.

  2. Passed the same explicit product metadata into all Linux package builds so

    Windows and Linux artifacts cannot diverge because of shell environment

    differences.

26BMCLI v1.2.126
  1. Required AI-generated Dashboards to resolve `/api/v1/bench` at runtime,

    including logical network names and project-relative database resources,

    instead of treating generation-time discovery as a substitute.

  2. Added a deterministic Skill contract guard against embedding physical bench

    channel bindings in generated Dashboard source.

  3. Documented the decoded-signal history and SSE wire contract explicitly,

    including `samples`, the `signal` event name, and independent gap recovery.

  4. Bounded the AI Dashboard generation gate to artifact creation; the independent

    harness remains the sole owner of browser, service, simulation, and HIL checks.

  5. Required generated Dashboard diagnostics to expose the same accepted,

    de-duplicated sequence set used by the plotted signal points.

  6. Prevented generated charts from comparing bus/device `timestamp_us` directly

    to browser wall time, which could immediately evict every live point.

27BMCLI v1.2.112
  1. Rejected raw UDS negative responses whose echoed service ID does not match

    the active request, in both daemon and standalone execution modes.

  2. Added permanent ECU-simulator regression coverage for the mismatched-service

    response so it cannot be mistaken for a valid NRC in future releases.

28BMCLI v1.2.103
  1. Kept semantic UDS dry-run independent of local/remote channel ownership while

    preserving claim protection for every transmitting diagnostic operation.

  2. Restored structured ownership errors and standalone DTC failures to the JSON

    stdout contract used by daemon, Web, and AI automation.

  3. Enforced the one-command timeout budget across verbose DTC responsePending

    handling and rejected malformed overlong UDS negative responses.

29BMCLI v1.2.93
  1. Cleared slot-bound UDS, TesterPresent, XCP, and control state when an internal

    BUSOFF or daemon-restart reopen finally fails, preventing a later device from

    inheriting another ECU's diagnostic endpoint.

  2. Rejected missing option values and odd-nibble hexadecimal payloads before

    daemon or BMAPI dispatch, while retaining documented separated option values.

  3. Defined semantic UDS dry-run as endpoint-free request construction with

    validation of any explicitly supplied endpoint fields, and aligned DTC Help

    with configured-session transport inheritance.

30BMCLI v1.2.83
  1. Rejected incomplete one-off semantic UDS endpoints before transport and

    invalidated slot-bound UDS/TesterPresent state when a channel is explicitly

    closed, preventing stale diagnostics after slot reuse.

  2. Completed raw UDS and TesterPresent JSON error envelopes, rejected malformed

    short negative responses, completed suppressed raw requests immediately after

    successful transmission, and exposed DTC verbose enrichment in text output.

  3. Corrected the raw hard-reset example and added permanent endpoint lifecycle,

    failure-schema, verbose-output, simulator, and regression coverage.

31BMCLI v1.2.74
  1. Made raw UDS channel, CAN-ID, and CAN/CAN-FD overrides strictly one-shot in

    daemon mode so malformed or partial requests cannot corrupt persisted

    diagnostic configuration.

  2. Rejected malformed timeout/data values, equal or out-of-range diagnostic

    IDs, and XCP route collisions before transport; initialized every shared UDS

    transaction result even when argument validation fails.

  3. Unified daemon and standalone raw-request flag selection and dry-run

    evidence, tightened TesterPresent endpoint validation while preserving CAN ID

    zero, and added permanent standalone/daemon/simulator contract regressions.

  4. Synchronized UDS reference, test identifiers, and bundled AI Skill guidance

    with the typed high-frequency Helpers.

32BMCLI v1.2.64
  1. Rejected malformed or oversized DID, memory, and RoutineControl data instead

    of silently transmitting a parsed prefix to the ECU.

  2. Made one-off UDS Helper/DTC endpoints honor the same UDS/XCP response-route

    collision rule as persistent configuration, and made UDS transport flags

    reject unknown values instead of silently selecting classic CAN.

  3. Added standalone DTC CAN FD and ISO-TP padding options, preserved explicitly

    supplied CAN ID zero, and represented record selector `0xFF` as aggregate raw

    multi-record data without inventing a single response-record boundary.

  4. Added permanent strict-parser, endpoint, multi-record, simulator, Help and

    full regression coverage for the corrected contracts.

33BMCLI v1.2.53
  1. Fixed UDS ISO-TP configuration so omitted padding remains disabled and an

    explicit `--padding=0x00` is transmitted as byte `0x00` instead of silently

    falling back to enabled `0xCC` padding.

  2. Made UDS Helper and DTC error retryability operation-aware: transient read

    failures remain retryable, while DID/memory writes, session changes, ECU

    resets, RoutineControl mutations, DTC clear and raw requests never advertise

    an automatic retry after completion becomes unknown.

  3. Added permanent transport-contract and ECU-simulator regressions for padding

    disabled/zero and read-versus-write ResponsePending timeout behavior.

34BMCLI v1.2.44
  1. Unified standalone and daemon DTC parsing, transaction handling, response

    decoding, bounded verbose enrichment, and text/JSON formatting on one shared

    core while preserving existing DTC aliases.

  2. Fixed DTC snapshot-identification output, option-first `--verify`, strict

    helper positional arity, raw-request typed pending failures, pending transport

    error classification, and read-only command metadata.

  3. Standardized bounded UDS Helper failures on the shared structured JSON error

    envelope and made text/JSON the explicit output contract; CSV and JSONL are

    rejected instead of silently returning text.

  4. Documented every accepted named DTC status and added regression coverage for

    format matrices, nested errors, raw pending propagation, snapshot IDs, and

    daemon/standalone parity. The clean unified UDS runtime follow-up is tracked

    in CAN-115 for BMCLI 1.3.0.

35BMCLI v1.2.34
  1. Fixed a semantic `uds memory write` request-buffer overflow and enforced the

    confirmed 4095-byte software ISO-TP payload boundary before copying or

    transmitting memory requests.

  2. Fixed ResponsePending terminal handling so a missing final UDS response is

    reported as a typed pending timeout/limit instead of ordinary NRC 0x78.

  3. Unified daemon DTC text and JSON commands on the same UDS transaction path,

    bounded verbose detail enrichment by count/time/response size, and tightened

    service, DID, DTC, and record echo validation.

  4. Added strict 1..60000 ms timeout parsing, integer-overflow rejection, maximum

    ALFID/P0, malformed response, verification mismatch, TesterPresent overlap,

    large-DTC, and semantic multi-frame regression coverage.

36BMCLI v1.2.24
  1. Added high-frequency, typed UDS helpers for DID read/write, diagnostic

    session changes, ECU reset, memory read/write, and RoutineControl while

    preserving the generic `uds request` path and existing UDS aliases.

  2. Added strict positive-response echo validation, NRC 0x78 continuation,

    derived or explicit memory ALFID widths, optional DID write verification,

    P2/P2* reporting, and structured routine status records.

  3. Added `uds dtc list` as the readable default/active alias, named ISO 14229

    status filters, status-flag arrays, and corrected snapshot/extended record

    metadata and payload boundaries.

  4. Expanded the canonical UDS ECU simulator and physical analyzer regression

    suite for stateful DID, memory, routine, reset, DTC, negative-response, and

    exact request-byte coverage.

37BMCLI v1.2.110
  1. Added first-class Modbus master/client support over native Windows/Linux RTU,

    ASCII, and TCP transports without extending BMAPI or requiring BUSMUST

    analyzer hardware.

  2. Added coils, discrete inputs, input/holding registers, single/multiple writes,

    File Record FC20/FC21, and FIFO FC24 with strict protocol limits, exception

    reporting, CRC/LRC/MBAP validation, and no automatic write retry.

  3. Added lightweight Linux Foundation EdgeX Modbus Device Profile YAML/JSON

    import, Device Definition bench import, typed resource/command access,

    RTU/TCP/ASCII device bindings, scaling, bidirectional mappings, byte/word

    order, access/range validation, and readback.

  4. Added bounded daemon-owned polling with latest/history, freshness, quality,

    gaps, missed deadlines, on-change retention, persistent endpoint connections

    with reconnect, REST/SSE endpoints, OpenAPI, and a Modbus engineering panel

    in the bundled Dashboard.

  5. Hardened the Modbus service around one persistent session per physical

    endpoint shared by CLI, poll, and Web; added RTU t3.5 timing, wider Linux

    baud-rate support, exact 64-bit values, write-only EdgeX semantics,

    partial-command diagnostics, bounded dynamic history, resumable loss-aware

    SSE, concurrent-stop safety, and typed HTTP error status classes.

  6. Added independent TCP and PyModbus interoperability peers, POSIX PTY RTU/ASCII

    tests, EdgeX fixtures, Web/daemon integration tests, and full BMCLI hardware

    and real-ECU regression coverage.

  7. Added a narrowly triggered BMCLI Modbus Skill methodology that keeps protocol

    I/O in BMCLI and general Web authentication, durable storage, uploads,

    reporting, and reverse proxying in surrounding application services.

  8. Added explicitly authorized installation of approved local F4L2/0083 HPM UF2

    images through `device update <selector> --file=<path> --force`, including

    fixed-block/application-range validation and same-UID/version re-enumeration.

  9. Fixed Modbus endpoint/session lifecycle, exact numeric conversion, EdgeX

    compatibility, loss-aware polling/SSE behavior, HTTP error mapping, and a

    poll start/stop publication race found during the 1.2 release review.

  10. Restricted local F4L2/0083 UF2 images to the physical application interval

    `[0x80020000, 0x80100000)` and synchronized the latest BMAPI, LIN schedule,

    replay, updater, and Bamboo build-compatibility baseline from BUSMASTER.

38BMCLI v1.1.011
  1. Introduced first-class XCP on CAN/CAN FD support for ECU measurement,

    calibration, integration testing, and internal-state observation without a

    hardware debugger.

  2. Added XCP connect/status/disconnect, external seed/key unlock, raw memory

    read/write/checksum, A2L-backed measurement and characteristic access, and

    bounded dynamic DAQ acquisition.

  3. Added a BMCLI-owned software ISO-TP engine and migrated ISOTP/UDS receive

    paths onto RxBroker cursors so UDS, XCP, raw receive, logging, and Web can run

    concurrently without competing for the BMAPI receive queue.

  4. Added a tolerant, read-only A2L subset for scalar measurement and calibration

    workflows, including MODULE scoping, byte order, COMPU_METHOD,

    RECORD_LAYOUT, BIT_MASK, access semantics, and duplicate-symbol handling.

  5. Added the typed `GET/POST /api/v1/xcp` Web boundary for Dashboard and

    automation clients while keeping XCP lifecycle and safety rules in the shared

    BMCLI service layer.

  6. Standardized XCP DAQ output as one bounded JSON document with a `samples`

    array; JSONL/CSV are rejected before execution instead of producing

    misleading output.

  7. Hardened XCP endpoint safety: strict numeric/flag validation, raw-write

    dry-run and optional readback verification, bounded/escaped JSON, and

    capability-aware address/DAQ granularity handling.

  8. Made UDS/XCP response-route collision checks symmetric and cleaned XCP

    sessions, DAQ state, receive cursors and BMAPI handles on reconfiguration,

    channel close, daemon stop and restart.

  9. Decoupled the DAQ pump from the daemon command lock, protected XCP state with

    its own mutex, and made software ISO-TP timeouts restart for each N_Bs/N_Cr

    protocol phase instead of expiring one whole valid multi-frame transfer.

  10. Corrected DBC/LDF/A2L registry mutation permissions and documented their

    shared generic unload lifecycle.

  11. Made `ai status` detect stale installed Skill content byte-for-byte, and

    tightened Skill guidance for missing UDS/XCP bench IDs and complete XCP

    cleanup.

39BMCLI v1.0.61
  1. Fixed daemon-backed channel lifecycle and host logging/replay lifecycle/status

    commands so `--format=json` always returns one bounded JSON document.

40BMCLI v1.0.58
  1. Aligned runtime Help, the command Reference, option validation, examples, and

    machine-readable discovery so automation no longer relies on stale syntax.

  2. Expanded real-world DBC and LDF compatibility and completed the revised BLF

    reader/writer contract used by recording, replay, conversion, and Web flows.

  3. Verified physical CAN and LIN online recording and replay with ASC and BLF,

    including the daemon, REST API, engineering console, and Gateway paths.

  4. Preserved LIN schedule slot phases when translating LDF tables into hardware

    TX tasks, including mixed master-read and master-write schedules.

  5. Added deterministic local/remote claim and release arbitration for protected

    channel control while retaining compatible shared send and passive receive.

  6. Improved Gateway session cleanup, BUSOFF recovery, logging lifecycle, replay

    channel mapping, and multi-consumer receive continuity.

  7. Narrowed the BMCLI AI Skill activation boundary and added lightweight

    application-development guidance without triggering on generic dashboard,

    DBC/LDF, test-methodology, or source-review work.

  8. Added compatibility regression coverage for supplied DBC/LDF corpora, BLF

    round trips, CAN/LIN online capture and replay, Web, Gateway, and shuffled HIL.

41BMCLI v1.0.415
  1. Replaced the obsolete reverse-`BM_OpenRemote` Gateway path with a direct,

    GWR-compatible UDP control/data server over the daemon's physical handles.

  2. Added typed REST resources for bench/device inventory, channel statistics,

    logging, replay, remote-BMAPI gateway lifecycle, and bounded firmware checks.

  3. Added explicit CommandRegistry permissions and parameter type/range/unit/

    mutual-exclusion metadata for runtime discovery and AI clients.

  4. Added retained duration/byte sizing and per-consumer backlog/gap observability

    to RxBroker and Web metrics.

  5. Hardened Windows package path symmetry, final-handle project containment, and

    single-setter-group channel PATCH semantics.

  6. Added a packaged Nginx HTTPS-first profile for trusted Linux browser access

    while BMCLI remains bound to loopback HTTP.

  7. Fixed daemon logging above slot 15 and idempotent same-value LIN mode updates.

  8. Fixed Linux daemon startup so bounded JSON remains one document while child

    diagnostics are redirected to the private daemon log.

  9. Fixed Windows-driven WSL worktree builds to embed the same Git commit metadata

    as release manifests and added Windows/Linux load, HTTPS, and Skill gates.

  10. Hardened release-check so package lifecycle, runtime, hardware, Web, and Skill

    gates execute the Bamboo package whose metadata matches the release manifest.

  11. Moved UDS DTC argument validation before BMAPI initialization so invalid

    commands return their stable contract even while hardware is being released.

  12. Kept release package tests strict while capturing updater JSON and diagnostic

    stderr separately, avoiding false PowerShell NativeCommandError failures.

  13. Made release-check native tool gates decide success from process exit codes,

    so non-fatal WSL and tool diagnostics on stderr do not abort verification.

  14. Recognized standard equivalent wording such as "neither authentication nor

    encryption" in the AI gateway safety-boundary release rubric.

  15. Fixed UDS request parsing so space-form option values such as

    `--channel 10356/1` cannot be appended to the diagnostic payload.

42BMCLI v1.0.36
  1. Added project-local target and bench configuration with multiple named

    networks, nodes, databases, and machine-local channel bindings.

  2. Added the daemon-owned Web automation service with packaged OpenAPI and an

    engineering console, typed message send, cursor history, SSE/WebSocket raw

    streams, and DBC signal plans.

  3. Added typed REST lifecycle for daemon channels, engineering databases,

    hardware TX tasks, and message routes without exposing a shell executor.

  4. Added the per-channel RxBroker so CLI receive, logging, remote BMAPI gateway,

    Web streams, and DBC signal decoding use independent cursors without competing

    for the BMAPI receive queue.

  5. Hardened bounded JSON, daemon IPC, cross-platform resource paths, Web shutdown,

    package lifecycle, and Claude Code/Codex Skill behavior checks. Uninstall now

    terminates an active package-owned daemon before removing its executable and

    runtime state.

  6. Added real-browser and configurable multi-consumer soak release gates; Windows

    HIL completed a 30-minute SSE/WebSocket run with exact active-cursor continuity.

43BMCLI v1.0.25
  1. Added capability-aware LIN master/slave message workflows, channel power

    control, and runtime schedule/response management.

  2. Added physical-device reset and identity-safe generation-3 firmware update

    handling for devices selected by serial number, UID, or channel name.

  3. Completed DTC request construction, response parsing, action-level Help, and

    public command/alias contract cleanup.

  4. Added a GWR-compatible CAN FD/LIN UDP gateway for unmodified remote BMAPI

    clients, including mixed-bus logical-to-physical channel translation.

  5. Verified current Windows and Linux builds, firmware transfer behavior, and

    sequential plus shuffled hardware regression coverage.

44BMCLI v1.0.14
  1. Added verified `bmcli update --check` release discovery and changelist output.

  2. Added CID-based firmware checks and updates for generation-3 HPM BUSMUST devices.

  3. Moved the Bamboo deployment implementation into a Git-managed PowerShell script.

  4. Published BMCLI release notes and SHA-256 metadata with each version manifest.

45BMCLI v1.0.03
  1. Initial product release of BMCLI as an independent BUSMUST command-line tool.

  2. Supports CAN/CAN FD channel control, message traffic, TxTask, routing, DBC,

    logging, replay, ISO-TP, UDS diagnostics/flashing, checksum, and AutoSet.

  3. Includes project bench profiles, structured Help/JSON contracts, offline

    packages, update support, and Claude Code/Codex skill integration.

WECHAT SERVICE

BUSMUST Sales

Scan with WeChat, or click the QR code to open the service conversation on this device.

BUSMUST Sales WeChat service QR codeOpen WeChat service ↗