Have you tried defining the field using ProtoField.float or ProtoField.double?
https://www.wireshark.org/docs/wsdg_html/#lua_class_ProtoField 11.3.7.17. ProtoField.float(abbr, [name], [valuestring], [desc]) 11.3.7.18. ProtoField.double(abbr, [name], [valuestring], [desc]) On Mon, Mar 20, 2023 at 11:55 AM Dennis Lambe <den...@sparkcharge.io> wrote: > I am writing a dissector plugin in Lua, and I'm running into a problem > with unit strings. I'm new to Wireshark plugins and new to Lua, so I'm > not 100% sure any of what I'm doing is the right way to do it. > > The protocol I'm dissecting contains fields which are transmitted as > integers, but should be adjusted by a scale and offset which may be > ints or floats. I want them displayed with unit strings. This works as > I expect it to with INT or UINT fields, but not with FLOAT or DOUBLE > fields. > > When I create a new ProtoField with an INT or UINT type and include a > unit string, and then add a computed value to the tree, the unit > string appears after the value in the Packet Detail pane and in > columns created with Apply as Column, as I would expect. > > ```lua > field_PECCLimits1_limitPowerMax = ProtoField.new( > "limitPowerMax", "pecclimits1.limitpowermax", > ftypes.UINT24, {" W"}, bit.bor(base.DEC, base.UNIT_STRING), nil, "" > ) > -- ... then, in the dissector > local item = subtree:add(field_PECCLimits1_limitPowerMax, range(4, > 2), value) > ``` > > However, when I do the same thing with a FLOAT or DOUBLE ProtoField, > the value appears in the Packet Detail pane and in columns *without* > the unit string appended. > > ```lua > field_PECCLimits1_limitVoltageMax = ProtoField.new( > "limitVoltageMax", "pecclimits1.limitvoltagemax", > ftypes.DOUBLE, {" V"}, base.UNIT_STRING, nil, "" > ) > -- ... then, in the dissector > local item = subtree:add(field_PECCLimits1_limitVoltageMax, > range(2, 2), value) > ``` > > I can see from the output of `tshark -G values` that the unit strings > are successfully associated with the fields, but they aren't showing > up in the UI. > U pecclimits1.limitvoltagemax V (no plural) > U pecclimits1.limitpowermax W (no plural) > > I've attached a complete working example of code that demonstrates > these symptoms, a packet that can be dissected using it, and a > screenshot of what I'm seeing. > > Wireshark Version 4.0.4 (v4.0.4-0-gea14d468d9ca) with Lua 5.2.4. > > Can anybody shed some light on this mystery? > > Thanks > -- > Dennis Lambe (He/Him) > Lead Firmware Engineer > sparkcharge.io > ___________________________________________________________________________ > Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> > Archives: https://www.wireshark.org/lists/wireshark-dev > Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev > mailto:wireshark-dev-requ...@wireshark.org > ?subject=unsubscribe >
___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> Archives: https://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe