From 74b3157dc6b814822b9aa45043123145c7d06d73 Mon Sep 17 00:00:00 2001 From: Ludovic Apvrille <ludovic.apvrille@telecom-paris.fr> Date: Fri, 30 Apr 2021 13:30:11 +0200 Subject: [PATCH] Update on trace playing --- .../AvatarSpecificationSimulation.java | 19 ++++++++++++++++++- src/main/java/myutil/CSVObject.java | 5 +++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/java/avatartranslator/directsimulation/AvatarSpecificationSimulation.java b/src/main/java/avatartranslator/directsimulation/AvatarSpecificationSimulation.java index 0410efb084..ad6c1438e3 100644 --- a/src/main/java/avatartranslator/directsimulation/AvatarSpecificationSimulation.java +++ b/src/main/java/avatartranslator/directsimulation/AvatarSpecificationSimulation.java @@ -63,6 +63,8 @@ public class AvatarSpecificationSimulation { public final static int INDEX_UUID = 3; public final static int INDEX_CO_UUID = 4; public final static int INDEX_ATTRIBUTES = 8; + public final static int INDEX_FINAL_CLOCK_VALUE = 6; + public final static int INDEX_DURATION = 7; public final static int INITIALIZE = 0; public final static int RESET = 1; @@ -1236,6 +1238,8 @@ public class AvatarSpecificationSimulation { } public void postExecutedTransaction(AvatarSimulationPendingTransaction _aspt) { + clockValue = _aspt.clockValueAtEnd; + // If executing the transaction of a trace, then update according to the trace TraceManager.addDev("postExecutedTransaction of " + _aspt.toString()); if (_aspt.builtFromATrace()) { @@ -1262,10 +1266,23 @@ public class AvatarSpecificationSimulation { } } + + // Adapt the transaction clock + long clockValAtEnd = traceToPlay.getLong(_aspt.lineInTrace, INDEX_FINAL_CLOCK_VALUE); + int duration = traceToPlay.getInt(_aspt.lineInTrace, INDEX_DURATION); + TraceManager.addDev("clockValAtEnd:" + clockValAtEnd); + _aspt.clockValueAtEnd = clockValAtEnd; + _aspt.selectedDuration = duration; + _aspt.maxDuration = duration; + _aspt.durationSelected = true; + if (duration > 0) { + _aspt.hasClock = true; + } + clockValue = clockValAtEnd; } - clockValue = _aspt.clockValueAtEnd; + } diff --git a/src/main/java/myutil/CSVObject.java b/src/main/java/myutil/CSVObject.java index c2851096cf..4da5d58d99 100644 --- a/src/main/java/myutil/CSVObject.java +++ b/src/main/java/myutil/CSVObject.java @@ -161,6 +161,11 @@ public class CSVObject { return Integer.decode(val); } + public long getLong(int line, int col) throws NumberFormatException { + String val = get(line, col); + return Long.decode(val); + } + public UUID getUUID(int line, int col) throws IllegalArgumentException { //TraceManager.addDev("Getting value at index " + line + "," + col + " nbOfLines:" + getNbOfLines() + " nbOfCol:" + getNbOfEltsPerLine()); -- GitLab