struktury rekurencyjne typu python ctype

Opracowałem bibliotekę DLL dla sterownika w C. Napisałem program testowy w C ++ i DLL działa dobrze.

Teraz chciałbym interweniować z tą biblioteką DLL przy użyciu Pythona. Z powodzeniem ukryłem większość struktur C zdefiniowanych przez użytkownika, ale jest jeden punkt, w którym muszę użyć struktur C. Jestem raczej nowicjuszem w pythonie, więc mogę się pomylić.

Moje podejście polega na przedefiniowaniu kilku struktur w pythonie przy użyciu ctype, a następnie przekazaniu zmiennej do mojej biblioteki DLL. Jednak w tych klasach mam niestandardową listę połączeń, która zawiera następujące typy rekurencyjne

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

To się nie udaje, ponieważ wewnątrz EthercatDatagram, EthercatDatagram nie jest już zdefiniowany, więc parser zwraca błąd.

Jak powinienem reprezentować tę połączoną listę w Pythonie, aby moja biblioteka DLL zrozumiała ją poprawnie?

questionAnswers(3)

yourAnswerToTheQuestion