Hello Brian,

May be you could implement something like the following :

static gint hf_time = 0;

/* Protocol fields description */
static hf_register_info hf[] =
{
    ...

   { &hf_time,
   { "Date & time       ", "melodhy.time",
      FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }},

   ...
};


   /* Add time value in the tree. Displayed as date + time */
   d_d.val_time = tvb_get_ntohl( tvb, d_d.val_data_offset );

   proto_tree_add_string_format_value( melodhy_tree,
       hf_time,
       tvb,
       d_d.val_data_offset,
       L_UINT32,
       "%s",
       abs_time_secs_to_str((time_t)d_d.val_time, FALSE) );


d_d is a structure that I use to memorise some variables.
You have to replace d_d.val_data_offset by your offset,
and to add the field description in your hf structure.

Philippe



> Date: Thu, 21 Jan 2010 14:59:01 -0500
> From: [email protected]
> To: [email protected]
> Subject: Re: [Wireshark-dev] getting the time
> 
> Guy
> 
> I am not sure I follow you. Basically all I do is count packets based on 
> what I know is in the packet.
> 
> Here is the whole packet that I am dissecting: (See below)
> 
> So when I get to Time.. I check for
> if ((fieldsAvail & 2) != 0)
> Then I look at the pointer (which will point me to the right set of bytes).
> 
> But how I start the initial counting process is I do the following:
> 
> guint8 * ptr = (guint8*) tvb->real_data;
> 
> Actually..... maybe you can see your answer better in the code. I have 
> attached the packet-helen.c file.
> 
> Any help on how I can get and format the time is greatly appreciated.
> 
> Thanks,
> Brian
> 
> 
> 
> Field         Size    Notes   Meaning
> Fields Available      1               Each bit of this byte indicates that a 
> particular field is available in this message. See table below.
> Status        1/0             GPS status. 0 = Good, 1 = No Fix, 2 = Bad GPS 
> Read
> Time  8/0             GPS Time of the transmitting system. This may be 
> different 
> than the system time.
> Longitude     4/0             Longitude in decimal degrees (float)
> Latitude      4/0             Latitude in decimal degrees (float)
> Altitude      4/0             Altitude in decimal meters (float)
> Bearing       4/0             Bearing in decimal degrees from north (float)
> Speed         4/0             Speed in decimal m/s (float)
> Number of Satellites  1/0             Number of satellites current fix is 
> based on
> 
> *Note:* Check *Fields Available* to determine if each field is present. 
> For floating point fields, the floating point number is written in 
> network byte order as if it were a four byte integer.
> 
> Bit Mask      Field Referenced
> 1     Status
> 2     Time
> 4     Longitude
> 8     Latitude
> 16    Altitude
> 32    Bearing
> 64    Speed
> 128   Number of Satellites
> 
> 
> 
> Guy Harris wrote:
> > On Jan 21, 2010, at 11:25 AM, Brian Oleksa wrote:
> >
> >   
> >> It is a pointer into the data that I have constructed based on the data 
> >> in the packet.
> >>     
> >
> > So what do you have to do to the raw data in the packet to construct that 
> > buffer?
> > ___________________________________________________________________________
> > Sent via:    Wireshark-dev mailing list <[email protected]>
> > Archives:    http://www.wireshark.org/lists/wireshark-dev
> > Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
> >              mailto:[email protected]?subject=unsubscribe
> >   
                                          
_________________________________________________________________
Nouveau ! Tout Windows Live débarque dans votre téléphone. Voir les Windows 
phone
http://clk.atdmt.com/FRM/go/175819071/direct/01/
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <[email protected]>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:[email protected]?subject=unsubscribe

Reply via email to