# a real time system and call the flight model routines
# at a regular interval, rather than between screen updates
# which can be highly variable. This can make the flight
-# much smoother.
+# model calculations much smoother.
+#
+# -DUSE_FTIME - Use ftime() to get an accurate current time instead of
+# gettimeofday()
+#
#---------------------------------------------------------------------------
FG_CFLAGS = -g -Wall
#---------------------------------------------------------------------------
# $Log$
+# Revision 1.4 1997/07/12 02:13:04 curt
+# Add ftime() support for those that don't have gettimeofday()
+#
# Revision 1.3 1997/07/09 21:31:08 curt
# Working on making the ground "hard."
#
#include <signal.h> /* for timer routines */
#include <stdio.h> /* for printf() */
-#include <sys/time.h> /* for get/setitimer, gettimeofday, struct timeval */
-#include <unistd.h>
+#ifdef USE_FTIME
+# include <sys/timeb.h> /* for ftime() and struct timeb */
+#else
+# include <sys/time.h> /* for get/setitimer, gettimeofday, struct timeval */
+#endif USE_FTIME
#include "fg_timer.h"
exit(0);
}
}
-
#endif HAVE_ITIMER
+
/* This function returns the number of milleseconds since the last
time it was called. */
int fgGetTimeInterval() {
+ int interval;
+ static int inited = 0;
+
+#ifdef USE_FTIME
+ static struct timeb last;
+ static struct timeb current;
+#else
static struct timeval last;
static struct timeval current;
static struct timezone tz;
- static int inited = 0;
-
- int interval;
+#endif USE_FTIME
if ( ! inited ) {
inited = 1;
+
+#ifdef USE_FTIME
+ ftime(&last);
+#else
gettimeofday(&last, &tz);
+#endif
+
interval = 0;
} else {
+
+#ifdef USE_FTIME
+ ftime(¤t);
+ interval = 1000 * (current.time - last.time) +
+ (current.millitm - last.millitm);
+#else
gettimeofday(¤t, &tz);
interval = 1000000 * (current.tv_sec - last.tv_sec) +
(current.tv_usec - last.tv_usec);
interval /= 1000; /* convert back to milleseconds */
+#endif
+
last = current;
}
/* $Log$
-/* Revision 1.5 1997/06/26 19:08:38 curt
-/* Restructuring make, adding automatic "make dep" support.
+/* Revision 1.6 1997/07/12 02:13:04 curt
+/* Add ftime() support for those that don't have gettimeofday()
/*
+ * Revision 1.5 1997/06/26 19:08:38 curt
+ * Restructuring make, adding automatic "make dep" support.
+ *
* Revision 1.4 1997/06/25 15:39:49 curt
* Minor changes to compile with rsxnt/win32.
*