Repository navigation
Releases: davhodg/pycangui
Releases · davhodg/pycangui
Release list
v0.3.0
Added
- UDS: a download can be run as a sequence -- sessions, unlocks, DTC setting, communication, bitrate, fingerprint, erase, check and reset, ticked in Before and After menus.
- UDS: Check asks whether a bitrate is possible without changing to it.
- DCF compare is part of pycangui, not a plugin: Compare... in the CANopen pane. A copy of the plugin left in a workspace is no longer run.
- XCP / CCP: arrays and value blocks, named values, bit masks, address extensions, the A2L's byte order and included files are read; curves and maps are listed, in grey.
- XCP / CCP: IDs from A2L, and a value outside the A2L's limits is asked about before it is written.
- XCP / CCP: loading a large A2L shows its progress, and can be cancelled while it is read.
- Tools > Settings > Column widths: Manual makes list columns draggable and remembered.
- Plot: a Y axis whose signals share named values is marked with the names; right-click the plot to turn it off.
- An accessibility statement,
ACCESSIBILITY.md, and a form for reporting a barrier.
Changed
- Lists and hex boxes follow the system's text size, and a pane's float and close buttons are as tall as its title. The CiA 402 plugin's values do too (plugin 1.7).
- A floating or detached pane that would open partly off the screen is brought onto it.
- The toolbar's second Channel box, the adapter's, is labelled Port.
- Event Log: a warning's line begins Warning: and an error's Error:, as well as being coloured.
- The status bar says the signal history limit is per signal and the samples a total.
- CAN Transmit: no Ext column -- an id above
7FF, or written in eight digits, is 29-bit; a DBC row's database file is in its tooltip, not the Unit column. - CAN Transmit: a counter or checksum in a DBC signal is shown by position, count 52:4, with the name in the tooltip.
- Plot: a long time axis reads in minutes and hours, 12:30 and 1:02:30, not thousands of seconds.
- Signals and Plot: the Rate of a signal that has stopped arriving is 0.
- CANopen: the per-node commands are in four menus -- Node, Access, EDS, DCF -- with Add / Open and Remove above the list; double-clicking a node's Access column reads its level.
- CANopen: NMT and the producers are framed; TIME is always there, with no setting to show it.
- CANopen: the
object_displayhook is told which node it is for. - UDS: ECU control is a tab; in J1939 addressing the worked-out identifiers are one line, not three boxes; Read all for DTCs is under the arrow of Read.
- XCP / CCP: loading an A2L and removing it are under one A2L button, beside its name; the seed and key DLL is under the arrow of Unlock CAL, and of Unlock in the UDS pane.
- XCP / CCP: no 29-bit box -- an id above
7FF, or in eight digits, is 29-bit. - Simulated nodes each run on a thread of their own, and answer while the window is busy.
Fixed
- Switching workspace frees the window it leaves, which used to stay in memory until exit.
- A pane closed in a window of its own opens straight into it, without appearing elsewhere first.
- View: a detached pane was shown unticked while open, and picking it did not bring it forward.
- In the dark on Windows 10, a tick box in a list has an outline and can be seen.
- J1939: the address, priority, destination and data boxes could be too narrow for what they hold.
- DCF compare says in a box, not only the Event Log, why nothing was compared.
- XCP / CCP: characteristics in a standard A2L were not listed at all.
- Help > Licences was empty of the licence and notice in a copy installed with pip.
- XCP and CCP: a command could time out while the window was busy, though the slave had answered.
Code signing policy: the Windows build of this release is not code-signed, so Windows SmartScreen warns about the installer; More info > Run anyway goes past it. Where an unsigned program is a problem, pip install pycangui from PyPI instead.
v0.2.0
Added
- CANopen Open DCF/EDS...: edit a configuration file's values and PDOs with no node or bus.
- Open a DCF or EDS from the command line or by double-click, with Open with registered by the installer or Tools > Settings.
- CANopen Read EDS from node (object 0x1021).
- CANopen TIME producer and SYNC counter, set up in Settings....
- A CANopen log tab: every SDO, NMT, SYNC, state change, emergency and LSS step.
- CANopen Remove node, and Move up / Move down for PDO mapped objects.
- UDS functional requests, and a baud rate change that follows the ECUs and comes back; the top row shows the rate in use meanwhile.
- Signals and Plot: optional Min, Max, Count and Rate columns.
- Signal history limit in Tools > Settings, up to five million samples per signal.
- Custom panes: Write all, and Read all asks before discarding unwritten changes.
- Command line
--workspace,--runand--skip-start-warning;wait()for scripts.
Changed
- The protocol panes open in a window of their own the first time.
- The Event Log keeps everything, with Clear on its right-click; a library line repeated over and over is shown once and then counted.
- The CiA 402 (1.6) and DCF compare (1.2) plugins are updated: Update... in Plugins > Manage plugins....
- CANopen Read all and Save DCF include DOMAIN objects, and they and Apply DCF show progress, can be stopped, and report failures by abort code.
- CANopen buttons that cannot act say so in a box, not only in the Event Log.
- CANopen Settings... logs only what changed, and offers to restart a running SYNC.
- CANopen Read PDO config reads both directions; the NMT button says who it goes to.
- Named values read the same everywhere, name first: Run (1).
- CAN Transmit: named-value pick-lists, counter and checksum bytes tinted, a typed period, the source DBC shown, and buttons greyed until a row is selected.
- A DBC message clashing with one already loaded is reported in the Event Log.
- Plot: one Time choice (Follow, All, Manual), an Export... button, and Plot all / Unplot all on right-click.
- CAN Trace: Live refresh, Slow refresh or Paused in one choice; Data column sized for eight bytes.
- ASCII Log: Send enable and Send disable buttons. CiA 402: Poll is a tick box.
- J1939: Request stop broadcasts (DM13) is a tick box; DM4 with no freeze frames shows what came; no answer and a refused request are warnings.
- Tools > Settings submenu; the installer's desktop shortcut is ticked by default.
- Demo nodes use vendor and manufacturer ID 0, assigned to nobody.
- Code signing policy, code of conduct and build attestations for releases.
Fixed
- CANopen object dictionary: only the value column can be edited.
- NMT could not be sent to all nodes once a node was listed.
- A TPDO enabled after the first read was not decoded; one also in a DBC was decoded twice.
- Removing a DBC left its signals in Signals and Plot.
- A CRC in a DBC signal was computed over the wrong bytes.
- A library that is installed but fails to load is reported as such.
- About wrapped long paths.
- A PDO object mapped with fewer bits than its type was not decoded, and flooded the Event Log with library errors, as did NMT frames with no data. The object is decoded as mapped, and the mismatch with the EDS flagged; a frame nothing can handle is said once.
- Moving a plotted signal with data to the other Y axis failed, and the curve stopped drawing.
- DCF compare: a DOMAIN value made its column too wide to use. Long values are cut short and every column can be widened.
Code signing policy: the Windows build of this release is not code-signed, so Windows SmartScreen warns about the installer; More info > Run anyway goes past it. Where an unsigned program is a problem, pip install pycangui from PyPI instead.
v0.1.1
Added
- UDS ECU control: CommunicationControl and a baud rate change (LinkControl), beside reset.
- UDS Read all DTC data, with extended data records and snapshot DIDs sized and named by
hooks/uds.py. - J1939 requests from a list -- DM1 to DM5, DM11 and identification -- each answer, or none, reported in the Event Log, and a warning when a node answers against the standard.
- J1939 Request address claims, and Stop broadcasts (DM13), held until started.
- A recording shows the frames written and the file's size in the status bar, and says both in the Event Log when it stops. The status bar's frame count is now labelled Total frames.
- Check for updates asks PyPI when pycangui was installed with pip.
- About says where pycangui is running from: the Python, its environment, and where the package came from -- including a source folder's copy running in an environment that does not have pycangui installed.
- Badges, tags, classifiers and more links on the PyPI page.
Changed
- The UDS pane is in tabs, and needs much less width.
- J1939 messages are sent from the tester's address, claiming it first if need be, not 0xFE.
- Recording and exporting signals suggest a file name with the date and time in it, such as
capture_2026-09-25_143012.blf, rather than the same name every time. - The Windows installer shows the third-party notices before installing, not after.
- CANopen Add node, LSS and SYNC with no channel connected say it is the channel that is not connected, and Add node says so before asking for a node id.
Fixed
- UDS extended data (0x06) and snapshot (0x04) reports, which could not be read.
- J1939 DM2 answers were shown as active faults.
- Installing the MDF reader on first use froze the window for the whole download, which looked like a crash. pip runs in the background, says what it is doing, and can be cancelled.
- A mistake typed in the Python Console was reported as a bug in pycangui.
- A development build from TestPyPI was taken as newer than the release it leads to.
v0.1.0
The first release of pycangui, a graphical CAN bus tool: live trace and plots, transmit, CANopen, UDS, J1939, XCP and CCP, and Python scripting, on any adapter supported by python-can.
- With pip:
pip install pycangui - On Windows: the standalone installer below.
What it does is in the manual, and what each version changes is in the changelog.