2017-10-17 6 views
0

Nous construisons un projet en utilisant la RFID active et ce RFID a besoin d'être codé sur Python pour l'utiliser sur framboise PI3SAAT-500 Series RFID active en Python en utilisant le code C PROJET

SAAT RFID a déjà fichier DLL, RFIDAPI.lib et RFIDAPIEXPORT.h et diverses fonctions appels API

Par exemple et le code de base que je dois exécuter

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; 
} 

Comment convertir ce code en Python pour entrer dans la RFID?

enter image description here

+0

Vous devriez essayer de traduire le code vous-même d'abord; Connaissez-vous Python? –

+0

Démarré récemment, j'ai une expérience de programmation rapide. Pour Python Im en utilisant la version Pycharm comm et quand Im essayant d'ajouter le fichier lib à l'interprète, il ajoute avec succès, mais je ne peux pas importer RFIDAPI –

Répondre

0

Non testé, mais illustre ce que vous devez faire. J'ai supposé Python 3, mais Python 2 est similaire.

#!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!') 

Notez la chaîne d'octets pour l'adresse IP. Dans Python 3 octets chaînes sont l'entrée correcte pour c_char_p.

+0

J'ai été partout sur Internet et essayé diverses solutions, mais pas de travail. _italic Traceback (appel le plus récent en dernier): Fichier "C: /Users/Hamid/Documents/mobilequip/Active.py", ligne 5, en dll = cdll.LoadLibrary ("c: \ RFIDAPI.dll") Fichier «C: \ Python27 \ lib \ ctypes \ __ init__.py», ligne 444, dans LoadLibrary Retourne self._dlltype (name) Fichier «C: \ Python27 \ lib \ ctypes \ __ init__.py», ligne 366, dans __init__ self._handle = _dlopen (nom propre, mode) WindowsError: [Erreur 193]% 1 n'est pas une application Win32 valide _italic –

+0

@Vijay Si la DLL est 32 bits, utilisez Python 32 bits. Si 64 bits, utilisez Python 64 bits. Vous ne pouvez pas mélanger. –