Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

canIoCtlInit failes with canERR_PARAM (-1) on Kvaser Leaf Light v2 for Linux

Ouverte
#2,079 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
68/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Calme
Stack technique
python

Piste de recherche

Commencez dans KvaserBus.init à l’appel de canIoCtlInit pour canIOCTL_SET_LOCAL_TXACK, et comparez le comportement avec l’issue associée #2051 tout en reproduisant le problème avec un Kvaser Leaf Light v2 et la configuration Bus fournie. C’est terminé lorsque le bus Kvaser s’initialise correctement sous Linux sans modifier le comportement de local-TX-ack ; vérifiez-le avec une reproduction sur l’appareil.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug
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
  1. Attach a Kvaser Leaf Light dongle (I used the Leaf V2)
  2. 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 in KbaserBus.__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

Langage dominant
Python
Étoiles
1.6k
Forks
697
Métriques de merge des PR
Aucune PR mergée en 30 j

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de hardbyte/python-can

Toutes les issues de hardbyte/python-can

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.