Table of Contents

Class StackState

Namespace
DuetControlServer.Link.Channel
Assembly
DuetControlServer.dll

Representation of a stack level state

public sealed class StackState
Inheritance
StackState
Inherited Members

Constructors

Constructor of this class

public StackState(PipelineStackItem stackItem)

Parameters

stackItem PipelineStackItem

Corresponding state of the firmware stage on the code pipeline

Constructor of this class

public StackState(PipelineStackItem stackItem, bool msActive)

Parameters

stackItem PipelineStackItem

Corresponding state of the firmware stage on the code pipeline

msActive bool

Whether the motion system is active or not

Properties

File being executed on this state

public CodeFile? File { get; }

Property Value

CodeFile

This is only assigned once after an instance has been created

Queue of pending flush requests

public Queue<TaskCompletionSource<bool>> FlushRequests { get; }

Property Value

Queue<TaskCompletionSource<bool>>

Queue of pending lock/unlock requests

public Queue<LockMovementRequest> LockRequests { get; }

Property Value

Queue<LockMovementRequest>

Indicates if the firmware has been notified about the macro completion

public bool MacroCompleted { get; set; }

Property Value

bool

Indicates if a macro was supposed to be opened but it failed

public bool MacroError { get; set; }

Property Value

bool

Indicates if the motion system was active when this stack item was created

public bool MotionSystemWasActive { get; set; }

Property Value

bool

Pending codes ready to be sent over to the firmware

public Channel<Code> PendingCodes { get; }

Property Value

Channel<Code>

Code that started this state

public Code? StartCode { get; set; }

Property Value

Code

Queue of suspended G/M/T-codes to resend when this state becomes active again

public Queue<Code> SuspendedCodes { get; }

Property Value

Queue<Code>

Indicates if this state is waiting for a confirmation

public bool WaitingForAcknowledgement { get; set; }

Property Value

bool

Methods

Called to flag if the pipeline is busy or not

public void SetBusy(bool isBusy)

Parameters

isBusy bool