2020
2121#include < trikKernel/fileUtils.h>
2222#include < trikKernel/paths.h>
23+ #include < trikKernel/timeVal.h>
2324#include < trikControl/batteryInterface.h>
2425#include < trikControl/colorSensorInterface.h>
2526#include < trikControl/displayInterface.h>
@@ -65,6 +66,7 @@ Q_DECLARE_METATYPE(SensorInterface*)
6566Q_DECLARE_METATYPE(Threading*)
6667Q_DECLARE_METATYPE(VectorSensorInterface*)
6768Q_DECLARE_METATYPE(QVector<int >)
69+ Q_DECLARE_METATYPE(trikKernel::TimeVal)
6870Q_DECLARE_METATYPE(QTimer*)
6971
7072QScriptValue print(QScriptContext *context, QScriptEngine *engine)
@@ -255,6 +257,18 @@ void ScriptEngineWorker::onScriptRequestingToQuit()
255257 stopScript ();
256258}
257259
260+ static QScriptValue timeValToScriptValue (QScriptEngine *engine, const trikKernel::TimeVal &in)
261+ {
262+ QScriptValue obj = engine->newObject ();
263+ obj.setProperty (" mcsec" , in.toMcSec ());
264+ return obj;
265+ }
266+
267+ static void timeValFromScriptValue (const QScriptValue &object, trikKernel::TimeVal &out)
268+ {
269+ out = trikKernel::TimeVal (0 , object.property (" mcsec" ).toInt32 ());
270+ }
271+
258272QScriptEngine * ScriptEngineWorker::createScriptEngine (bool supportThreads)
259273{
260274 QScriptEngine *engine = new QScriptEngine ();
@@ -278,6 +292,7 @@ QScriptEngine * ScriptEngineWorker::createScriptEngine(bool supportThreads)
278292 Scriptable<SensorInterface>::registerMetatype (engine);
279293 Scriptable<SoundSensorInterface>::registerMetatype (engine);
280294 Scriptable<QTimer>::registerMetatype (engine);
295+ qScriptRegisterMetaType (engine, timeValToScriptValue, timeValFromScriptValue);
281296 Scriptable<VectorSensorInterface>::registerMetatype (engine);
282297
283298 qScriptRegisterSequenceMetaType<QVector<int >>(engine);
0 commit comments