VectorError: ошибка xlGetChannelIndex (XL_ERR_HW_NOT_PRESENT) - PullRequest
0 голосов
/ 29 января 2019

Здравствуйте. Я использую python с оборудованием анализатора банок vn1610

import time
import can
count=0
a=0
for i in range(1,1000):  # zero to max range ( 0 - 2048 )
  a=a+1
  print(a)       #code stops running at a=64[enter image description here][1]
  bus = can.interface.Bus(bustype='vector', app_name=None, channel=0,bitrate=500000)
  msg = can.Message(arbitration_id=i, data=[0x02,0x11,0x02,0x00 ,0x00 ,0x00, 0x00, 0x00],dlc=3, extended_id=False)
  bus.send(msg)
  print ("Request msg:",msg)
  response=bus.recv(0.02) 
  print ("Response msg:",response)

Я получаю файл can.interfaces.vector.exceptions.VectorError: xlGetChannelIndex не удалось (XL_ERR_HW_NOT_PRESENT) в качестве ошибки.Что вызывает эту ошибку?

1 Ответ

0 голосов
/ 30 января 2019

Он останавливается, потому что вы создаете новый интерфейс каждый раз.

Возможно, CANalyzer поддерживает максимум 64 интерфейса [ требуется цитирование ], и поэтому он останавливается после a = 64.

Вам не нужно создавать интерфейс каждый раз.Переместите

bus = can.interface.Bus(bustype='vector', app_name=None, channel=0,bitrate=500000)

из цикла for, и ваш код должен работать.Поскольку вам не нужно создавать интерфейс снова и снова.

...