Automotive
Documentation

Version Latest

Approvals and audit for ECU writes

What the Automotive module confirms before writing to an ECU, flashing, calibrating, testing or sending on a real bus, the records and reports it keeps, and how its 107 agent tools are held to the same rule.

The rule: every action that changes an ECU or a LIN node, or sends on a real bus, asks the engineer first, naming the ECU or channel, its interface and the change. Sending on the Editor's own virtual bus asks nothing. None of this has been run against a production ECU or real hardware (see the overview).

What is confirmed

ActionThe confirmation names
A Diagnostic Console request that changes the ECU (any service but reading data, DTCs, memory and scaling, and tester present)The ECU, its interface, the change and the request bytes
Clearing DTCs, writing identifiers, starting or stopping routines, ECU reset, session changes, programming and OEM sessionsThe ECU, its interface and the change
Clearing J1939 DTCs (DM11, DM3)The node and channel, every time, on a virtual bus too
Reprogramming one ECUThe ECU, its interface, the image or container and its SHA-256 (for a container also the variant and session), and every step that will be sent
A flash jobOnce for the whole job: each ECU, its interface, the file and its SHA-256, the bytes and steps, the ECUs that cannot be programmed and why, and any end-of-line sequence's file, SHA-256 and changes
An end-of-line sequence that changes the ECUOnce per run: the ECU, its interface, the file and its SHA-256, and every change
Diagnostic test cases that change the ECUOnce per run: the ECU, its interface, the test file and its SHA-256, and each such case with its request
A test design runOnce per run: every action that reaches a real bus, changes an ECU or writes calibration, with its channel or ECU, and the design's path and SHA-256
A calibration write, page switch, data set downloadThe ECU, its A2L, the transport, and each value before and after; a page switch names each memory segment and page
A parameter sweepOnce for the whole sweep: every value in order, and that the original value is written back
A frame, panel action, replay, fault injection, J1939 request or interactive send on a real busThe change, the channel and the interface
NAD and frame identifier assignment on LINThe node and the change
Keeping a simulated network awake, or releasing it, on a real busThe node, the channel and what it does to the NM cluster
Importing a communication matrix into a DBCWhat it adds, changes and leaves out as a conflict
Replacing a generated file or reportThat it will be replaced

A real bus is any backend but the Editor's virtual bus, including the Vector and Kvaser drivers' own virtual channels and python-can's interfaces. Clearing DTCs and reprogramming are also confirmed by the diagnostics service's own dialog every time. Declining writes nothing and sends nothing.

The confirmation of a Diagnostic Console request that changes the ECU, naming the ECU, its interface, the change and the request bytes.The confirmation of a Diagnostic Console request that changes the ECU, naming the ECU, its interface, the change and the request bytes.

The reprogramming confirmation naming the container, the variant, the ECU and every step that will be sent.The reprogramming confirmation naming the container, the variant, the ECU and every step that will be sent.

Records the module keeps

RecordWhereWhat it holds
Operation LogDiagnostics panelEvery diagnostic request and response with service, duration and outcome, and DoIP control messages
Flash job reportSave Flash Job Report..., JSON, where you chooseThe tool's name, version and commit; times; per ECU its interface, ISO-TP settings, file and SHA-256, variant and session, identification before and after, how memory was verified, every step with outcome and duration
End-of-line reportSave End-of-Line Report..., JSONThe sequence and its SHA-256, the ECU's description with its SHA-256 and variant, the ECU, interface and transport, the tool version, times, the changes confirmed, identification before and after, every step
Diagnostic test run records and reportbuild/diagnostic-tests/, Save Diagnostic Test Report...The test file and descriptions with their SHA-256, the ECU and its identification, the cases confirmed, every request and response
Test design run records and reportbuild/test-designs/, Save Test Design Report...The design and databases with their SHA-256, the channels and ECUs, what was confirmed, every step with what was observed
CANoe run recordsbuild/canoe/results/The test unit, the derived unit, canoe4sw-se's version, variant, parameter sets and verdicts
Traceability reportGenerate Traceability Report...Coverage tables and every source file's SHA-256, the tool version and time
Diagnostic description reportGenerate Diagnostic Description ReportEach source file with size and SHA-256, tool version and time
DaVinci runsbuild/davinciThe tool, its version and arguments, and the report
Calibration writes, connections and eventsOutput, channel AutomotiveEach write applied from a data set, connections and the module's other events

The Operation Log recording every diagnostic request with its ECU, service, outcome and duration, including timeouts and negative responses.The Operation Log recording every diagnostic request with its ECU, service, outcome and duration, including timeouts and negative responses.

These records are the Editor's own, saved where you choose; they are the module's own formats, not vFlash Station's or an OEM tester's. The module does not send them to Neural Inverse Govern, and the organisation's governance policy does not gate the module's actions. Keep the reports with your release and production records. See Neural Inverse Govern for what organisation policy does cover.

Agents

The module registers 107 agent tools over the same services as the views:

GroupTools
Databases and matriceslistDatabases, describe, findMessage, checkDatabase, decodeFrame, encodeFrame, compareDatabases, generateC, exportCommunicationMatrix, importCommunicationMatrix
Channels and the bus monitorlistInterfaces, connect, disconnect, snapshot, waitFor, send, startRecording, stopRecording, startTriggeredRecording, stopTriggeredRecording, recordingStatus, statistics
Simulation and network managementstartSimulation, stopSimulation, setSimulationSignals, listSimulations, injectSimulationFault, clearSimulationFaults, listNetworkManagement, setNetworkRequest
TracesopenTrace, queryTrace, traceStatistics, replayTrace, controlReplay, replayStatus
Diagnostics, flashing and DoIPlistEcus, describeEcu, readDtcs, readDtcRecords, clearDtcs, readEcuData, writeDid, ecuSession, resetEcu, unlockEcu, runRoutine, flashEcu, listDiagnosticServices, sendDiagnosticRequest, reportDiagnosticDescription, flashContainer, runEndOfLineSequence, discoverDoipEntities, generateDiagnosticTests, runDiagnosticTests
J1939, E2E and SecOCj1939Network, j1939Request, j1939ClearDtcs, traceJ1939Network, protectionStatus, checkTraceProtection
LINlistLinChannels, connectLin, disconnectLin, queryLinTrace, startLinSimulation, setLinSimulation, stopLinSimulation, linNodeConfiguration, linUdsRequest
Calibration and the A2L updatelistCalibrationTargets, connectEcu, disconnectEcu, listCalibrationObjects, measure, readCharacteristic, writeCharacteristic, sweepCharacteristic, listCalibrationPages, switchCalibrationPage, compareDataSet, applyDataSet, compareCalibration, saveDataSet, planDataSetMerge, mergeDataSets, openEcuImage, saveEcuImage, closeEcuImage, startMeasurementRecording, measurementRecordingStatus, stopMeasurementRecording, readMeasurementFile, planA2lUpdate, applyA2lUpdate
Requirements and testsrequirementsCoverage, linkTestCaseToRequirements, testVariants, chooseTestRun, listTestDesigns, runTestDesign, compileTestDesignForCanoe
AUTOSAR authoringdescribeSoftwareComponents, connectSoftwareComponentPorts, describeAdaptiveMachine, addAdaptiveServiceInstance

Each is tagged read-only or state-changing, and those that act on hardware are tagged as such.

  • Every hardware action and every ECU change asks the engineer every time, with the same content as the table above.
  • When the chat ran a tool without asking (Bypass Approvals, Autopilot, the auto-approve setting, a hook, a pre-approved call), the tool asks in its own dialog before it acts.
  • A tool called outside a chat that acts on hardware is confirmed twice: once by the tools service and once by the tool's own dialog.
  • Read-only tools, DoIP discovery and dry runs ask nothing; on an ECU image, calibration tools ask nothing, as the image changes only when saved.

State: modelled. The tools and their confirmations are tested through the Editor's tools service, and the calibration tools' confirmations were run in the Editor through calls made outside a chat. In this build the Editor's default chat participant sends the conversation to the model without the selected tools, so a model does not call these tools from a chat; see What's next.

Last reviewed 18 October 2026View as Markdown

Approvals and audit for ECU writes · Docs · Neural Inverse