Skip to content

go-canopen v0.3.2

Choose a tag to compare

@github-actions github-actions released this 30 Oct 23:30
ce79b85

Date: 2026-10-30
Previous release: v0.3.1

Fixes of the program download (CiA 302-3) and of the scan in master, and
of the node-ID assignment in lss.

  • A step of DownloadProgram whose answer came after the SDO timeout
    (a loaded system, a slow flash) was carried out by the device, but the
    master repeated it: Clear and the program data were then refused with
    abort 0x08000022 (the program was no longer in the state they need).
    The download failed, a boot slave process ended with status I, and when
    the data had reached the device the new program stayed stopped: the
    next boot slave process found it up to date and did not start it. A
    step that timed out is now repeated only after reading the program
    state (0x1F51), and a late answer met by the next request (a protocol
    error) no longer fails the download. A timed-out start is repeated too
    unless the program runs. Found by CI; regression test
    TestDownloadProgramLateAnswers.
  • Master.Scan took a device for absent, without an error, when one
    request timed out (a lost frame, a loaded system). It now repeats a
    request that timed out once, so a scan of absent nodes takes twice as
    long. Found by CI; regression test TestScanRepeatsTimedOutRequest.
  • lss.Master.FastscanSelect and AssignAll: when the acknowledgement of
    the Fastscan step that selects a slave was lost, the selection restarted
    with that slave still in the configuration state. If its answer to the
    check of the next selection was lost too, the configure node-ID request
    reached both slaves and they took the same node-ID. The master now
    switches the slaves to waiting and checks before it restarts, and sends
    the switch before each check of that step. The case needs lost frames;
    see LIMITATIONS.md. Found by make chaos; regression test
    TestAssignAllLostSelectionAck.