From 50d4b37a7dec6976f133a16504ec5958e5295d3b Mon Sep 17 00:00:00 2001
From: Richard Harrison <rjh@zaretto.com>
Date: Tue, 7 May 2019 05:16:21 +0200
Subject: [PATCH] Nasal timestamp - add elapsed uSec

---
 src/Scripting/NasalSys.cxx | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/Scripting/NasalSys.cxx b/src/Scripting/NasalSys.cxx
index 74d6c313e..4e053a182 100644
--- a/src/Scripting/NasalSys.cxx
+++ b/src/Scripting/NasalSys.cxx
@@ -211,12 +211,15 @@ static void f_timerObj_setSimTime(TimerObj& timer, naContext c, naRef value)
 }
 ////////////////////
 /// Timestamp - used to provide millisecond based timing of operations. See SGTimeStamp
+////
+/// 0.373404us to perform elapsedUSec from Nasal : Tested i7-4790K, Win64 
 class TimeStampObj : public SGReferenced
 {
 public:
     TimeStampObj(Context *c, FGNasalSys* sys) :
         _sys(sys)
     {
+        timestamp.stamp();
     }
 
     virtual ~TimeStampObj()
@@ -227,10 +230,14 @@ public:
     {
         timestamp.stamp();
     }
-    int elapsedMSec()
+    double elapsedMSec()
     {
         return timestamp.elapsedMSec();
     }
+    double elapsedUSec()
+    {
+        return timestamp.elapsedUSec();
+    }
 private:
     SGTimeStamp timestamp;
     FGNasalSys* _sys;
@@ -986,6 +993,7 @@ void FGNasalSys::init()
     NasalTimeStampObj::init("TimeStamp")
         .method("stamp", &TimeStampObj::stamp)
         .method("elapsedMSec", &TimeStampObj::elapsedMSec)
+        .method("elapsedUSec", &TimeStampObj::elapsedUSec)
         ;
 
     flightgear::addons::initAddonClassesForNasal(_globals, _context);