From 20fa6fa8f84c21ecd4eb83a570df0d0901622190 Mon Sep 17 00:00:00 2001
From: Michiel Cottaar <michiel.cottaar@ndcn.ox.ac.uk>
Date: Thu, 8 Feb 2024 14:47:35 +0000
Subject: [PATCH] update_walker_till_time for final timepoint

---
 src/pathways.jl | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/pathways.jl b/src/pathways.jl
index 609472b..15e84ce 100644
--- a/src/pathways.jl
+++ b/src/pathways.jl
@@ -286,6 +286,7 @@ end
 walk_pathway!(wait::WaitBlock, walker::PathwayWalker, pulse_effects::Vector{Symbol}, nreadout::Ref{Int}, block_start_time=0.::VariableType) = false
 
 function walk_pathway!(ao::AbstractOverlapping, walker::PathwayWalker, pulse_effects::Vector{Symbol}, nreadout::Ref{Int}, block_start_time=0.::VariableType)
+    @show block_start_time, nreadout[]
     current_index = nothing
     current_time = block_start_time
     for (index_inter, interruption) in enumerate(interruptions(ao))
@@ -300,8 +301,9 @@ function walk_pathway!(ao::AbstractOverlapping, walker::PathwayWalker, pulse_eff
         elseif (interruption.object isa InstantReadout || interruption.object isa ADC)
             if length(pulse_effects) > 0
                 continue
-            elseif nreadout[] > 0
-                nreadout[] -= 1
+            end
+            nreadout[] -= 1
+            if nreadout[] > 0
                 continue
             end
         end 
@@ -314,6 +316,7 @@ function walk_pathway!(ao::AbstractOverlapping, walker::PathwayWalker, pulse_eff
         end
         current_index = index_inter
         if length(pulse_effects) == 0 && nreadout[] == 0
+            update_walker_till_time!(walker, current_time)
             return true
         end
     end
-- 
GitLab