From 6476f0260c67d212d17dcf9d302560296703fc6d Mon Sep 17 00:00:00 2001 From: Michiel Cottaar <michiel.cottaar@ndcn.ox.ac.uk> Date: Thu, 21 Mar 2024 13:07:21 +0000 Subject: [PATCH] Add scanner to sequence --- src/containers/base_sequences.jl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/containers/base_sequences.jl b/src/containers/base_sequences.jl index a229d43..67dfe5d 100644 --- a/src/containers/base_sequences.jl +++ b/src/containers/base_sequences.jl @@ -5,8 +5,9 @@ module BaseSequences import StaticArrays: SVector import JuMP: @constraint import ...Variables: get_free_variable, repetition_time, VariableType, duration, variables, VariableNotAvailable, Variables, set_simple_constraints!, TR, make_generic, gradient_strength, amplitude, phase, gradient_strength3 -import ...BuildSequences: global_model +import ...BuildSequences: global_model, global_scanner import ...Components: EventComponent +import ...Scanners: Scanner, B0 import ..Abstract: ContainerBlock, start_time, readout_times, edge_times import ..BuildingBlocks: Wait, BuildingBlock, BaseBuildingBlock @@ -140,16 +141,18 @@ Specific named sequences might define additional variables. """ struct Sequence{S, N} <: BaseSequence{N} blocks :: SVector{N, Pair{<:Union{Symbol, Nothing}, <:ContainerBlock}} + scanner :: Scanner end function Sequence(blocks::AbstractVector; name=:Sequence, variables...) blocks = to_block_pair.(blocks) - res = Sequence{name, length(blocks)}(SVector{length(blocks)}(blocks)) + res = Sequence{name, length(blocks)}(SVector{length(blocks)}(blocks), global_scanner()) set_simple_constraints!(res, variables) return res end Base.show(io::IO, ::Type{<:Sequence{S, N}}) where {S, N} = print(io, S, "{$N}") +B0(sequence::Sequence) = B0(sequence.scanner) Sequence(blocks...; kwargs...) = Sequence([blocks...]; kwargs...) -- GitLab