/ / Използване на C / C ++ DLL с Python / Pyserial за комуникация с Opticon баркод четец - python, c ++, dll, баркод скенер, pyserial

Използване на C / C ++ DLL с Python / Pyserial за комуникация с баркод четец на Opticon - python, c ++, dll, баркод-скенер, pyserial

Имам оптичен OPN-2001 баркод скенер, с който се опитвам да общувам. Той официално поддържа C / C ++ и .NET, но аз исках да го използвам с python, ако е възможно.

Отворих серийна връзка с устройството(или най-малко на пристанището (?), но когато използвам функции от dll, това ми дава грешка в комуникациите (-1), когато очаквам OK (0). Аз никога не съм използвал DLL или серийна комуникация, така че имайте това предвид.

Какво съм се чудех е, ако аз съм направил някои очевиднигрешки при извикването на функцията DLL или използването на pyserial. Аз също много се интересуват от някой друг, който има поглед към техните SDK. Изглежда, че очакваме 4 байта LONG като comPort по-долу. Мислех, че това ще работи, така че аз малко остана. Осъзнавам, че можете да помогнете само без действителния хардуер. Благодарим ви за помощта!

Ето кода, който имам:

from ctypes import *
from serial import *

opticonLib = WinDLL("Csp2.dll")
opticonLib.csp2SetDebugMode(1) #logs to textfile if using debug version of .dll

comPort = 3

opticonSerial = Serial(
port=comPort - 1,
baudrate=9600,
bytesize=EIGHTBITS,
parity=PARITY_ODD,
stopbits=STOPBITS_ONE,
timeout=5
)

if opticonSerial.isOpen():
print ("Port is open. Using " + opticonSerial.name + ".")

print (opticonLib.csp2InitEx(comPort)) #Gives -1 instead of 0
opticonSerial.close()

SDK за скенер, ако искате да копаете по-дълбоко

Отговори:

2 за отговор № 1

Windows поддържа заключване на серийни портове. Без да гледам на SDK, аз ще предполагам, че csp2InitEx се опитва да отвори серийния порт и когато го направи, получава грешка от Windows и се проваля.

Опитайте се да не отваряте серийния порт.