Python3 结构解压格式字符串

Python3 Struct unpack format string

我正在使用 python3 结构模块来解压缩从串行 com 中提取的字节数据。 (在帮助下)我已经想出如何将大部分数据解压缩为人类可读的形式。我对组 header 结构 group_hdr 上的格式字符串有困难(请参阅随附的屏幕截图文档)。我有一个字节数据(b)。我知道 "word" 的字符串是 "H" 但我从文档中不清楚 phd_status 是什么。它尚未在数据结构文档中的其他任何地方定义。有任何想法吗?。提前谢谢你。

struct group_hdr
{
union phdb_status  status
word               label
}

subrecord = struct.unpack_from('<??H', b)

Status 中所述,它是一个宽度为 32 位的简单位域。联合可能在 C(或类似语言)的其他地方定义为

union phdb_status {
    unsigned int bit_0:1;
    unsigned int bit_1:1;
};

以下 Python 代码将存储您的值:

status, label = struct.unpack_from('<IH', b)

并且您可以使用 status & 1status & 2.

测试 status 的各个位