Skip to content

Regarding the timing bug in the file <AR488_GPIBbus.cpp> #64

@EveryIsZero

Description

@EveryIsZero

`

/* Before modification */
//assertSignal(DAV_BIT | EOI_BIT);

/* After modification */
assertSignal(EOI_BIT);
assertSignal(DAV_BIT);

`

By directly passing in the pins to be operated through OR logic, it is impossible to predict whether the pins will be controlled according to the required timing sequence. This bug may cause DAV to be pulled high first when the output state of EOI is unknown, causing other devices to receive incorrect EOI signals. It is recommended that all control signals should not use this kind of OR logic simplification for control.

AR488_GPIB.cpp, ver. 0.53.11, 08/05/2025
Known problematic line number: 1228
Potentially risky line numbers: 129, 151, 156, 408, 1257

In addition,
suggestion 1: Please create a compressed package for each version you upload. The versions in "Archive" are very old, and the content in "src" is always changing.
suggestion 2: I also need to support the device mode that can connect to the software NI MAX. Currently, in most test cases, the device address cannot be scanned, but it can be found with a small probability. Once found, normal communication can be achieved.

Thank you for sharing the code. It's very useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions