如何创建大小可调的字段?

时间:2019-09-09 11:35:03

标签: python ctypes

我正在创建一个具有一组字段的结构,我想定义一些字段与接收到的输入一样长,而其他字段只有在已为它们提供输入的情况下才会存在(否则应消失)-因此,当我打印结构时,仅会打印相关字段(那些输入或预定义要打印的字段,即使“ 0”也要打印)

class Data (Frame):
    _name_ = 'Data'
    _pack_ = 1
    _fields_ = [
        ("fc",                      fc),
        ("duration",          c_uint16),
        ("add1",           c_ubyte * 6),
        ("add2",           c_ubyte * 6),
        ("add3",           c_ubyte * 6),
        ("fb",                c_uint16),
    ]

    def __init__(self, **kwargs):
        params = {
            'duration': c_uint16(kwargs.get('duration', 0)),
            'add1': address_to_ubyte(kwargs.get('add1', None)),
            'add2': address_to_ubyte(kwargs.get('add2', None)),
            'add3': address_to_ubyte(kwargs.get('add4', None)),
            'fb':c_uint16(kwargs.get(fb, 0)),
        }

这是我目前的情况。 (我知道这不起作用) 我想例如将持续时间add1和add2字段设置为“ 0”,除非另有定义,仅当接收到输入时add3才存在(如果没有,则根本不应该出现),并且将fb字段设置为大小给定输入的数量(如果不是,则应为“ 0”)

0 个答案:

没有答案