canIoCtlInit failes with canERR_PARAM (-1) on Kvaser Leaf Light v2 for Linux
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 68/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- python
- Bereich
- backend, embedded-iot
Rechercherichtung
Beginne in KvaserBus.init beim Aufruf von canIoCtlInit für canIOCTL_SET_LOCAL_TXACK und vergleiche das Verhalten mit dem verwandten Issue #2051, während du das Problem mit einem Kvaser Leaf Light v2 und der bereitgestellten Bus-Konfiguration reproduzierst. Als erledigt gilt die Aufgabe, wenn der Kvaser-Bus unter Linux erfolgreich initialisiert wird, ohne das Verhalten von local-TX-ack zu beeinträchtigen; überprüfe dies durch eine Reproduktion mit dem Gerät.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the bug
Creating a bus fails during initialization. I'm using the Kvaser backend under Linux with a Kvaser Leaf Light v2. Using the Leaf Light v2 on Windows the same function is successful
import can
bus = can.Bus(
interface="kvaser",
channel=0,
bitrate=500000,
)
raises
can.interfaces.kvaser.canlib.CANLIBOperationError:
Function canIoCtl failed - Error in parameter [Error Code -1]
To Reproduce
- Attach a Kvaser Leaf Light dongle (I used the Leaf V2)
- initialize the bus with
can.interface.Bus(interface='kvaser', channel=0, bitrate=500000)
Expected behavior
The bus will initialize without any errors thrown
Additional context
OS and version: Fedora 44
Python version: 3.14.6
python-can version: 4.6.1
python-can interface/s (if applicable): Kvaser Leaf Light v2 and Kvaser Linux SDK 5.52
Investigateion
I verified that...
can.detect_available_configs()correctly discovers the device.canOpenChannel()succeeds- the Channel can be opened directly using the CANlib bindings
- the failure occurs during the initialization of
canIoCtlInit()calls inKbaserBus.__init__()
The failure occurs on canIOCTL_SET_LOCAL_TXACK or specifically...
canIoCtlInit(
self._read_handle,
canstat.canIOCTL_SET_LOCAL_TXACK,
ctypes.byref(ctypes.c_byte(local_echo)),
1,
)
Work-Around
commenting out this section of code allows me to continue initializing the bus and my program runs smoothly.
Potentially related Issue
#2051
- Vorherrschende Sprache
- Python
- Sterne
- 1.6k
- Forks
- 697
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus hardbyte/python-can
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
hardbyte/python-can#2103 ·
-
bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
hardbyte/python-can#2077 · 1 Kommentar · 1 Reaktion ·
-
bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 68/100
hardbyte/python-can#1922 · 1 Reaktion ·
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
hardbyte/python-can#2102 ·
-
bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
hardbyte/python-can#2092 ·
Alle Issues in hardbyte/python-can
Ähnliche Issues
-
bug confirmed issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
open-webui/open-webui#30750 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
-
good first issue
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100