2017-10-17 1 views
0

우리는 액티브 RFID를 사용하여 프로젝트를 구축하고,이 RFID는 나무 딸기 PI3에 그것을 사용하는 파이썬 코딩 할 필요를 사용하여 활성 RFIDSAAT-500 시리즈 파이썬은 C 코드 프로젝트

SAAT RFID는 이미 DLL 파일이 있습니다, RFIDAPI.lib 및 RFIDAPIEXPORT.h 다양한 API 호출 기능

예를 들어

내가

bool SAAT_TCPInit (void** pHandle,char *pHostName,int nsocketPort) 
HANDLE hp; if(!SAAT_TCPInit(&hp,”192.168.0.238”,7086)) 
{ 
    printf("reader initialization failed!\n"); return false; 
} 

을 실행하는 데 필요한 기본 코드는 어떻게 RFID에 들어갈 파이썬이 코드를 변환 할 수 있습니까?

enter image description here

+0

먼저 코드를 직접 번역해야합니다. 파이썬에 익숙한가요? –

+0

최근에 시작된 저는 신속한 프로그래밍 경험이 있습니다. Python Im에 Pycharm comm 버전을 사용하고 임베디드에 lib 파일을 추가하려고 할 때 성공적으로 추가했지만 RFIDAPI를 가져올 수 없습니다. –

답변

0
안된

하지만, 당신이해야 할 일을 보여줍니다. 나는 파이썬 3을 사용한다고 가정했지만 파이썬 2는 비슷하다.

#!python3 
import ctypes 

# import the DLL 
dll = ctypes.CDLL('RFIDAPI') 

# declare the argument and return value types 
dll.SAAT_TCPInit.argtypes = ctypes.POINTER(ctypes.c_void_p),ctypes.c_char_p,ctypes.c_int) 
dll.SAAT_TCPInit.restype = ctypes.c_bool 

# For the output parameter, create an instance to be passed by reference. 
hp = ctypes.c_void_p() 
if not dll.SAAT_TCPInit(ctypes.byref(hp),b'192.168.0.238',7086): 
    print('reader initialization failed!') 

IP의 바이트 문자열에 유의하십시오. 파이썬 3에서 바이트 문자열은 c_char_p에 대한 올바른 입력입니다.

+0

나는 인터넷을 통해 온갖 시도를 해왔지만 다양한 솔루션을 시도했지만 비 작업이었습니다. _italic 추적 (최근 호출 마지막) : 파일 "C : /Users/Hamid/Documents/mobilequip/Active.py", 줄 5, dll = cdll.LoadLibrary ("c : \ RFIDAPI.dll") LoadLibrary에서 파일 "C : \ Python27 \ lib \ ctypes \ __ init__.py"444 줄 return self._dlltype (name) 파일 "C : \ Python27 \ lib \ ctypes \ __ init__.py" __init__에서 self._handle = _dlopen (self._name, mode) WindowsError : [오류 193] % 1은 (는) 올바른 Win32 응용 프로그램이 아닙니다. –

+0

@Vijay DLL이 32 비트이면 32 비트 Python을 사용하십시오. 64 비트 인 경우 64 비트 Python을 사용하십시오. 섞을 수 없습니다. –