これはあなたに役立つ場合、my last questionからの一種のフォローアップです。これはPythonで正しく解析され、不足しているクラスが別の場所で定義されていることをctypeポインタをPythonクラスに読み書きするには?
私は
class EthercatDatagram(Structure):
_fields_ = [("header", EthercatDatagramHeader),
("packet_data_length", c_int),
("packet_data", POINTER(c_ubyte)),
("work_count", c_ushort)]
class EthercatPacket(Structure):
_fields_ = [("ether_header", ETH_HEADER),
("Ethercat_header", EthercatHeader),
("data", POINTER(EthercatDatagram))]
少数のctype構造を定義しています注意してください。私はこれは間違ってい
packet = EthercatPacket()
ethercap.RecvPacket(byref(packet))
print packet.data.header
次のコードを呼び出すとき 私の問題はあります。私がこの問題を理解しているように、データはある種のポインタなので、EthercatDatagramにマッピングされていないので、パーサーは元のヘッダーフィールドを認識しません。
POINTER()で表される他のフィールドと同様に、そのフィールドを読み取る方法がありますか? pythonのctype間接参照:私はそれが
正しいコードを働いてしまった
私はこれまでにStackoverflowでこの質問に答えました。 – Unknown