让我说我想有一个名为ABC的字段,它将是2个无符号字节:0到65535 但是,所表示的实际值是-5.0到60.0,并且在位之间转换为实际值。
我有一些XML定义了消息及其元素:名称,位置,位值(最小和最大),实际值(最小和最大),如何存储在数据库中(XML是从数据库输出的) ),转化类型。
我正在编写一些从XML到LUA格式的转换工具。我应该如何编写解剖器,以便看到介于-5到60之间的值?
谢谢
答案 0 :(得分:0)
您需要确保它不是uint16,而是浮动的。
local abc_field = ProtoField.uint16("yourproto.abc", "ABC Value")
收件人:
local abc_field = ProtoField.float("yourproto.abc", "ABC Value")
当您添加ABC字段时:
subtree:add(ABC, buf(0, 2))
进行计算:
subtree:add(ABC, buf(0, 2):bitfield(0, 16) * (65/65536) - 5)