Table of Contents

Class Code

Namespace
DuetControlServer.Commands
Assembly
DuetControlServer.dll

Implementation of the Code command

public sealed class Code : Code, IConnectionCommand
Inheritance
Code
Implements
Inherited Members

Constructors

Constructor of a new code

public Code(CodeProcessor codeProcessor, Expressions expressions, ICodeHandler gCodes, ICodeHandler mCodes, ICodeHandler tCodes, ICodeHandler keywords, IHostApplicationLifetime lifetime, LinkInterface linkInterface, ILogger<Code> logger, IOptions<Settings> settings)

Parameters

codeProcessor CodeProcessor

Code processor

expressions Expressions

Meta G-code expression parser

gCodes ICodeHandler

G-code handler

mCodes ICodeHandler

M-code handler

tCodes ICodeHandler

T-code handler

keywords ICodeHandler

Keyword handler

lifetime IHostApplicationLifetime

Host application lifetime

linkInterface LinkInterface

Link interface

logger ILogger<Code>

Logger instance

settings IOptions<Settings>

Settings

Constructor of a new code which also parses the given text-based G/M/T-code

public Code(string code, CodeProcessor codeProcessor, Expressions expressions, ICodeHandler gCodes, ICodeHandler mCodes, ICodeHandler tCodes, ICodeHandler keywords, IHostApplicationLifetime lifetime, LinkInterface linkInterface, ILogger<Code> logger, IOptions<Settings> settings)

Parameters

code string

Text-based G/M/T-code

codeProcessor CodeProcessor

Code processor

expressions Expressions

Meta G-code expression parser

gCodes ICodeHandler

G-code handler

mCodes ICodeHandler

M-code handler

tCodes ICodeHandler

T-code handler

keywords ICodeHandler

Keyword handler

lifetime IHostApplicationLifetime

Host application lifetime

linkInterface LinkInterface

Link interface

logger ILogger<Code>

Logger instance

settings IOptions<Settings>

Settings

Properties

Connection

Source connection of this command

public Connection? Connection { get; set; }

Property Value

Connection

Methods

ExecuteAsync(CancellationToken)

Run an arbitrary G/M/T-code and wait for it to finish or to be enqueued if it is asynchronous

public override Task<Message?> ExecuteAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Optional cancellation token

Returns

Task<Message>

Result of the code

Exceptions

OperationCanceledException

Code has been cancelled

Reset()

Resets more Code fields

public override void Reset()

SetCancelled()

Set this code as cancelled

public void SetCancelled()

SetException(Exception)

Set an exception for this code

public void SetException(Exception e)

Parameters

e Exception

Exception to set

SetFinished()

Set this code as complete

public void SetFinished()