Table of Contents

Namespace DuetAPI.Commands

Classes

Acknowledge

Acknowledge a (partial) model update.

AddHttpEndpoint

Register a new HTTP endpoint via DuetWebServer. This will create a new HTTP endpoint under /machine/{Namespace}/{EndpointPath}. Returns a path to the UNIX socket which DuetWebServer will connect to whenever a matching HTTP request is received. A plugin using this command has to open a new UNIX socket with the given path that DuetWebServer can connect to

AddUserSession

Register a new user session. Returns the ID of the new user session

BaseCommand

Base class of a command. When an instance of this class is processed in the control server, the connection identifier of the channel it was received from is assigned.

BaseResponse

Base class for every response to a command request. An instance of this is returned when a regular Command has finished.

Cancel

Cancel a code in InterceptionMode

CheckPassword

Check if the given password is correct and matches the previously set value from M551. If no password was configured before or if it was set to "reprap", this will always return true

Code

A parsed representation of a generic G/M/T-code

CodeParameter

Represents a parsed parameter of a G/M/T-code Initial parsing is done whenever a code is processed

CodeParameterConverter

Converts a CodeParameter instance to JSON

CodeParserBuffer

Internal buffer for reading asynchronously from files

CodeTypeConverter

Converter class for CodeType

Command

Base class of commands that do not return a result

CommandContext

Context for JSON handling of IPC commands

Command<T>

Base class of a command that returns a result

ErrorResponse

Response indicating a runtime exception during the internal processing of a command

EvaluateExpression

Evaluate an arbitrary expression on the given channel

Flush

Wait for all pending (macro) codes on the given channel to finish. This effectively guarantees that all buffered codes are processed by RRF before this command finishes. If the flush request is successful, true is returned

GetFileInfo

Analyse a G-code file and return an instance of GCodeFileInfo when ready

GetObjectModel

Query the current object model

Ignore

Ignore the code to intercept and allow it to be processed without any modifications

InstallPlugin

Install or upgrade a plugin

InstallSystemPackage

Install or upgrade a system package

InvalidateChannel

Invalidate all pending codes and files on a given channel (including buffered codes from DSF in RepRapFirmware)

LockObjectModel

Lock the object model for read/write access. This may be used to update the machine model and to change array items

NotifyPluginStarted

May be used by third-party plugins to flag when they have fully started

PatchObjectModel

Apply a full patch to the object model. May be used only in non-SPI mode

QueryObjectModel

Query the object model using a key and flags, returning a formatted JSON response compatible with the M409 response format without going through the code execution pipeline

ReceivedHttpRequest

Notification sent by the webserver when a new HTTP request is received

ReloadPlugin

Reload the manifest of a given plugin. Useful for packaged plugins

RemoveHttpEndpoint

Remove an existing HTTP endpoint. Returns true if the endpoint could be successfully removed

RemoveUserSession

Remove an existing user session

Resolve

Resolve the code to intercept and return the given message details for its completion.

ResolvePath

Resolve a RepRapFirmware-style path to an actual file path

ResolvePluginProcess

Command asking the plugin service which plugin owns a given process ID. Used by DCS to close the TOCTOU window between process start and the object model being updated with the new PID. Reserved for internal purposes, do not use

Response<T>

Response of a Command<T>

Rewrite

Rewrite the code being intercepted. This can be used to modify the code before it is executed.

SendHttpResponse

Send a response to a received HTTP request

SetNetworkProtocol

Flag a given network protocol as enabled or disabled

SetObjectModel

Set an atomic property in the machine model. Make sure to acquire the read/write lock first! Returns true if the field could be updated

SetPluginData

Update custom plugin data in the object model

SetPluginProcess

Command to update the process identifier of a given plugin. Reserved for internal purposes, do not use

SetUpdateStatus

Override the current status as reported by the object model when performing a software update

SimpleCode

Perform a simple G/M/T-code

StartPlugin

Start a plugin

StartPlugins

Start all the previously started plugins again

StopPlugin

Stop a plugin

StopPlugins

Stop all the plugins and save which plugins were started before. This command is intended for shutdown or update requests

SyncObjectModel

Wait for the machine model to be fully updated from RepRapFirmware

UninstallPlugin

Uninstall a plugin

UninstallSystemPackage

Uninstall a system package

UnlockObjectModel

Unlock the machine model after obtaining read/write access. This is mandatory after LockObjectModel has been invoked

WriteMessage

Write an arbitrary generic message

Enums

CodeFlags

Code bits to classify G/M/T-codes

CodeType

Type of a generic G/M/T-code

FileDirectory

Base file directory for lookups

HttpResponseType

Enumeration of supported HTTP responses

KeywordType

Enumeration of conditional G-code keywords