Python Ctype estructuras recursivas

He desarrollado una DLL para un controlador en C. Escribí un programa de prueba en C ++ y la DLL funciona bien.

Ahora me gustaría interactuar con esta DLL utilizando Python. He ocultado con éxito la mayoría de las estructuras C definidas por el usuario, pero hay un punto en el que tengo que usar estructuras C. Soy bastante nuevo en Python, así que puedo equivocarme.

Mi enfoque es redefinir algunas estructuras en python usando ctype y luego pasar la variable a mi DLL. Sin embargo, en esta clase tengo una lista vinculada personalizada que contiene los tipos recursivos de la siguiente manera

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

Esto falla, porque dentro de EthercatDatagram, EthercatDatagram no está definido, por lo que el analizador devuelve un error.

¿Cómo debo representar esta lista vinculada en python para que mi DLL la entienda correctamente?

Respuestas a la pregunta(3)

Su respuesta a la pregunta