[EMAIL PROTECTED] wrote:
> I have a question I hope you guys can answer.
>  
> Basically I've got a field in a packet that is a floating point. My 
> question is however, to pull this value out I have to use 
> tvb_get_ntohieee_float, but then I don't know how to display that like 
> the proto_tree_add_item function does.

Either:

        1) use proto_tree_add_float(), if you have a registered field and you 
want it formatted exactly like proto_tree_add_item() would have 
formatted it had you used proto_tree_add_item() (but note that

                value = tvb_get_ntohieee_float(tvb, offset);
                proto_tree_add_float(tree, hf, tvb, offset, 4, value);

           is almost identical to

                proto_tree_add_item(tree, hf, tvb, offset, 4, FALSE);

           with the *only* difference being that you have the value in a 
variable with the first example - so if you don't need the value, you 
might as well just use proto_tree_add_item()

or

        2) use proto_tree_add_text(), if you don't have a registered field, and 
use "%f", as indicated by Jaap.  (To get the *exact* same format, you 
need to stringify FLT_DIG - I think it's defined by some standard C 
header file, which might be <float.h> - and use it as the precision, so it's

        "%." STRINGIFY(FLT_DIG) "f"

for floats.  STRINGIFY() is a macro defined in <epan/strutil.h>; I think 
the stuff it does is required by ANSI C to stringify a number.)

(BTW, we appear use %f for FT_FLOAT and %g for FT_DOUBLE; does anybody 
know a reason why we shouldn't use %g for both of them?)
_______________________________________________
Wireshark-dev mailing list
[email protected]
http://www.wireshark.org/mailman/listinfo/wireshark-dev

Reply via email to