2014-10-08 14 views
0

我有一個即時通訊嘗試與之通信的opticon OPN-2001條形碼掃描器。 它正式支持C/C++和.NET,但如果可能的話,我想用python。我已經打開了串口連接到設備(或者至少是端口(?),但是當我使用dll的函數時,當我期待OK(0)時,它給了我通信錯誤(-1)。 我從來沒有使用DLL或串行通信,所以要牢記這一點在Python/Pyserial中使用C/C++ DLL與Opticon條形碼閱讀器進行通信

我想知道如果我在調用DLL函數或使用pyserial時犯了一些明顯的錯誤我也非常感興趣的其他人有看看他們的SDK,它似乎期望一個4字節的LONG作爲comPort下面,我認爲這會工作,所以我有點卡住,我意識到只有很多你可以幫助沒有實際的硬件。謝謝你的任何幫助然而!

下面是代碼我有SOFAR:

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 for scanner if you want to dig deeper

回答

2

Windows將串行端口上的鎖。不用看SDK,我會猜測csp2InitEx會嘗試打開串口本身,當它發生這種情況時,它會從Windows收到錯誤並失敗。

嘗試不要自己打開串口。

+0

嗯,你是對的。在使用DLL之前,如果沒有用PySerial打開它,我會收到OK。我應該嘗試過,嘿嘿。現在看看我能用這個做什麼。謝謝。 – raecer 2014-10-09 07:05:38