PYTHON und SWIG

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mulek
User
Beiträge: 11
Registriert: Montag 28. April 2008, 21:15
Kontaktdaten:

Hi
Habe schon paar mal zu einem ähnlich Thema gefragt.
Es geht darum das ich einen Hexapod mittels einem seriellen Interface (genannt HexaComm) ansteuere.
Denn Source Code gibt es bereits in C++.
Meine Aufgabe ist es den bestehenden Source Code in eine dll zu packen und mit Python ein testprogramm zu schreiben.

Zum wrapper der einzelnen Funktionen hab ich SWIG verwendet und danach eine DLL erstellt. Bis hier her hat alles gut funktioniert.

Beim testprogramm erstellen kommt dann allerdings dieser Fehler:

Bei OpenSerialPort entsteht der Fehler:

Code: Alles auswählen

pSerial = 0    
pSerial = Hexapod.SerialCommunication()
pSerial.OpenSerialport("Computer")
Fehler:
Traceback (most recent call last):
File "E:\Mulek\Dokumente\Eclipse\Hexapod\src\main.py", line 19, in <module>
pSerial.OpenSerialport("Computer")
File "E:\Mulek\Dokumente\Eclipse\Hexapod\src\Hexapod.py", line 315, in OpenSerialport
def OpenSerialport(*args): return _Hexapod.SerialCommunication_OpenSerialport(*args)
RuntimeError: Unknown Error.

C++ Implementierung dafür:

Code: Alles auswählen

void SerialCommunication::OpenSerialport(std::string const & CommPort) {

    mhCom = CreateFile( CommPort.c_str(),             // port number, eg. "COM2"
						GENERIC_READ | GENERIC_WRITE,
						0,                            // comm devices must be opened with exclusive access
						0,                            // no security attributes
						OPEN_EXISTING,                // comm devices must already exist
						0,                            // not overlapped I/O
						0                             // hTemplate must be NULL for comm devices
						);
 
	if (mhCom == INVALID_HANDLE_VALUE) {
    throw (GetError());
	}
}

Meine Vermutung ist das das Tool SWIG diesen API aufruf CreateFile(...) nicht unterstüzt, da ich die selbe funktion nur ohne dem API Call (ist zwar dann nutzlos) problemlos verwenden kann.
Hat jemand Erfahrung mit einem ähnlichen Problem?
mulek
User
Beiträge: 11
Registriert: Montag 28. April 2008, 21:15
Kontaktdaten:

keiner eine Antwort ? :(
Antworten