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 & 1
和 status & 2
.
测试 status
的各个位
我正在使用 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 & 1
和 status & 2
.
status
的各个位