On Thu, Aug 10, 2000 at 08:23:24AM +0200, Uwe Girlich wrote: > It looks like in the protocol we have a 64 bit number which holds the number > seconds * 100000, which is good for 5 fraction digits. But to interpret > the lnglng overlaying 2 uint is an assumtion about the order of the 2 uint > in the guint64. It will work on little-endian systems only. > > The first timestamp (ts.lnglng / 100000L) should be obviously the number of > seconds (ctime() needs it so) but what is the second timestamp (ts.lng[0]). > From the following lines (hours = ...) it should probably be the originally > value ts.lnglng, because every following statement has its own division > by 100000. I'm suspicious of this; the Gryphon protocol is documented at http://www.dgtech.com/gryphon/docs/html/GCprotocol/ and says, of the CMD_GET_TIME command the code in question dissects: Response data length is four bytes. TIME -- 8 bytes -- Timestamp, in units of .00001 sec. (Lower four bytes correspond to Gryphon Data Frame timestamp, upper four bytes add more significant bits.) I suspect "Response data length is four bytes." is the result of cutting and pasting without editing. By "more significant bits" I'd assume they provided higher resolution; given that elsewhere in the protocol time resolution is also .00001 sec, though, I suspect it really means "larger range". The sample output in the documentation for the "gryphrx" utility": http://www.dgtech.com/gryphon/docs/html/utils/gryphrx.html shows times with more than 32 bits of data, although they seem to show that as part of the header time stamp, which is only 32 bits wide. So I don't know what the heck is going on here - I'm CCing Steve Limkemann of Dearborn Technology Group, to see if he can explain this. > > (BTW, this indicates that we should provide "pntohll()" and "phtonll()" > > routines, and tvbuff versions of them, at least on platforms where we > > have "gint64" and "guint64".) > That would at least clean the first mentioned problem. I've checked that in.
Powered by MHonArc 2.6.10