python ctype rekursive strukturen

Ich habe eine DLL für einen Treiber in C entwickelt. Ich habe ein Testprogramm in C ++ geschrieben und die DLL funktioniert einwandfrei.

Jetzt möchte ich mit Python mit dieser DLL arbeiten. Ich habe die meisten benutzerdefinierten C-Strukturen erfolgreich ausgeblendet, aber es gibt einen Punkt, an dem ich C-Strukturen verwenden muss. Ich bin ziemlich neu in Python, daher kann es sein, dass ich etwas falsch mache.

Mein Ansatz ist es, einige Strukturen in Python mit ctype neu zu definieren und die Variable dann an meine DLL zu übergeben. In dieser Klasse habe ich jedoch eine benutzerdefinierte verknüpfte Liste, die die folgenden rekursiven Typen enthält

class EthercatDatagram(Structure):
    _fields_ = [("header", EthercatDatagramHeader),
                ("packet_data_length", c_int),
                ("packet_data", c_char_p),
                ("work_count", c_ushort),
                ("next_command", EthercatDatagram)]

Dies schlägt fehl, da EthercatDatagram in EthercatDatagram noch nicht definiert ist und der Parser einen Fehler zurückgibt.

Wie soll ich diese verknüpfte Liste in Python darstellen, damit meine DLL sie richtig versteht?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage