comp.lang.ada
 help / color / mirror / Atom feed
From: dennison@telepath.com
Subject: Re: Simple Real_Time.Time_Span question
Date: 1998/10/13
Date: 1998-10-13T00:00:00+00:00	[thread overview]
Message-ID: <700dcn$f9s$1@nnrp1.dejanews.com> (raw)
In-Reply-To: 6vvsgo$rvo$1@nnrp1.dejanews.com

In article <6vvsgo$rvo$1@nnrp1.dejanews.com>,
  dennison@telepath.com wrote:
> I need to convert values of Ada.Real_Time.Time_Span into floating point
> values for use in time-based simulation calculations. I'd think there *has*

Update: Here's what I ended up doing:

   -- Routine to convert a real_time time_span into a float.
   function To_Float ( Span : in Ada.Real_Time.Time_Span ) return Float is

  -- We have to convert to and from Time because its the only way to handle 
-- time spans of more than about 2 seconds or so without getting a constraint
 -- error.  Span_Time : Ada.Real_Time.Time := Ada.Real_Time.Time_Of (SC => 0,
 TS => Span);  Ticks  : Integer;  Subspan  : Ada.Real_Time.Time_Span; 
Seconds  : Ada.Real_Time.Seconds_Count;  begin

      Ada.Real_Time.Split (T  => Span_Time,
                           SC => Seconds,
                           TS => Subspan);

      Ticks := Subspan / Ada.Real_Time.Time_Span_Unit;

      return Float(Seconds) + Float(Ticks * Ada.Real_Time.Time_Unit);
   end To_Float;


I don't much like this solution, as it will blow up in the unlikely event
that there are more Time_Span_Units in a second than Integer'last. Plus it
performs *way* more work than the following code that this vendor *could*
have put in the body of Ada.Real_Time:

   function To_Float ( Span : in Ada.Real_Time.Time_Span ) return Float is
   begin
      return Float(Span.sec) + (Float(Span.msec) * Time_Unit);
   end;

--
T.E.D.

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




  parent reply	other threads:[~1998-10-13  0:00 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-10-13  0:00 Simple Real_Time.Time_Span question dennison
1998-10-13  0:00 ` Tucker Taft
1998-10-13  0:00 ` David C. Hoos, Sr.
1998-10-13  0:00   ` dennison
1998-10-14  0:00     ` Niklas Holsti
1998-10-14  0:00       ` Niklas Holsti
1998-10-14  0:00     ` Robert I. Eachus
1998-10-14  0:00       ` Jonathan Guthrie
1998-10-15  0:00         ` dennison
1998-10-16  0:00           ` Tucker Taft
1998-10-16  0:00             ` dennison
1998-10-16  0:00               ` dewar
1998-10-17  0:00           ` Niklas Holsti
1998-10-14  0:00       ` Keith Thompson
1998-10-13  0:00 ` dennison [this message]
1998-10-14  0:00 ` dewar
1998-10-14  0:00   ` dennison
1998-10-14  0:00     ` Matthew Heaney
1998-10-14  0:00     ` Robert I. Eachus
1998-10-15  0:00       ` dennison
1998-10-16  0:00         ` Robert I. Eachus
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox