Longfellow/www/DuetAPI.xml

7513 lines
305 KiB
XML

<?xml version="1.0"?>
<doc>
<assembly>
<name>DuetAPI</name>
</assembly>
<members>
<member name="T:DuetAPI.CodeChannel">
<summary>
Enumeration of supported input channel names
</summary>
<remarks>
The indices of this enum are tightly coupled with RepRapFirmware.
Make sure to update this enum accordingly whenever changes are made to it!
</remarks>
</member>
<member name="F:DuetAPI.CodeChannel.HTTP">
<summary>
Code channel for HTTP requests
</summary>
</member>
<member name="F:DuetAPI.CodeChannel.Telnet">
<summary>
Code channel for Telnet requests
</summary>
</member>
<member name="F:DuetAPI.CodeChannel.File">
<summary>
Code channel for file prints
</summary>
</member>
<member name="F:DuetAPI.CodeChannel.USB">
<summary>
Code channel for USB requests
</summary>
</member>
<member name="F:DuetAPI.CodeChannel.Aux">
<summary>
Code channel for serial devices (e.g. PanelDue)
</summary>
</member>
<member name="F:DuetAPI.CodeChannel.Trigger">
<summary>
Code channel for running triggers or config.g
</summary>
</member>
<member name="F:DuetAPI.CodeChannel.Queue">
<summary>
Code channel for the code queue that executes a couple of codes in-sync with moves
</summary>
</member>
<member name="F:DuetAPI.CodeChannel.LCD">
<summary>
Code channel for auxiliary LCD devices (e.g. PanelOne)
</summary>
</member>
<member name="F:DuetAPI.CodeChannel.SBC">
<summary>
Default code channel for requests over SPI
</summary>
</member>
<member name="F:DuetAPI.CodeChannel.Daemon">
<summary>
Code channel that executes the daemon process
</summary>
</member>
<member name="F:DuetAPI.CodeChannel.Aux2">
<summary>
Code channel for the second UART port
</summary>
</member>
<member name="F:DuetAPI.CodeChannel.Autopause">
<summary>
Code channel that executes macros on power fail, heater faults and filament out
</summary>
</member>
<member name="F:DuetAPI.CodeChannel.Unknown">
<summary>
Unknown code channel
</summary>
</member>
<member name="T:DuetAPI.Commands.BaseCommand">
<summary>
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.
</summary>
</member>
<member name="M:DuetAPI.Commands.BaseCommand.#ctor">
<summary>
Creates a new instance of the BaseCommand
</summary>
</member>
<member name="P:DuetAPI.Commands.BaseCommand.Command">
<summary>
Name of the command to execute
</summary>
</member>
<member name="M:DuetAPI.Commands.BaseCommand.Invoke">
<summary>
Invokes the command implementation
</summary>
<returns>Result of the command</returns>
</member>
<member name="T:DuetAPI.Commands.Command">
<summary>
Base class of commands that do not return a result
</summary>
</member>
<member name="M:DuetAPI.Commands.Command.Execute">
<summary>
Reserved for the actual command implementation in the control server
</summary>
<returns>Asynchronous task</returns>
</member>
<member name="M:DuetAPI.Commands.Command.Invoke">
<summary>
Invokes the command implementation
</summary>
<returns>null</returns>
</member>
<member name="T:DuetAPI.Commands.Command`1">
<summary>
Base class of a command that returns a result
</summary>
<typeparam name="T">Type of the command result</typeparam>
</member>
<member name="M:DuetAPI.Commands.Command`1.Execute">
<summary>
Reserved for the actual command implementation in the control server
</summary>
<returns>Command result</returns>
</member>
<member name="M:DuetAPI.Commands.Command`1.Invoke">
<summary>
Invokes the command implementation
</summary>
<returns>Command result</returns>
</member>
<member name="T:DuetAPI.Commands.Cancel">
<summary>
Cancel a code in <see cref="T:DuetAPI.Connection.InterceptionMode"/>
</summary>
</member>
<member name="T:DuetAPI.Commands.Ignore">
<summary>
Ignore the code to intercept and allow it to be processed without any modifications
</summary>
<remarks>
This command is only permitted in <see cref="F:DuetAPI.Connection.ConnectionMode.Intercept"/> mode
</remarks>
</member>
<member name="T:DuetAPI.Commands.Resolve">
<summary>
Resolve the code to intercept and return the given message details for its completion.
</summary>
<remarks>
This command is only permitted in <see cref="F:DuetAPI.Connection.ConnectionMode.Intercept"/> mode
</remarks>
</member>
<member name="P:DuetAPI.Commands.Resolve.Type">
<summary>
Type of the resolving message
</summary>
</member>
<member name="P:DuetAPI.Commands.Resolve.Content">
<summary>
Content of the resolving message
</summary>
</member>
<member name="T:DuetAPI.Commands.GetFileInfo">
<summary>
Analyse a G-code file and return an instance of <see cref="T:DuetAPI.ObjectModel.GCodeFileInfo"/> when ready
</summary>
</member>
<member name="P:DuetAPI.Commands.GetFileInfo.FileName">
<summary>
The filename to extract information from
</summary>
</member>
<member name="P:DuetAPI.Commands.GetFileInfo.ReadThumbnailContent">
<summary>
Whether thumbnail content shall be returned
</summary>
</member>
<member name="T:DuetAPI.Commands.ResolvePath">
<summary>
Resolve a RepRapFirmware-style path to an actual file path
</summary>
</member>
<member name="P:DuetAPI.Commands.ResolvePath.Path">
<summary>
Path that is RepRapFirmware-compatible
</summary>
</member>
<member name="T:DuetAPI.Commands.CheckPassword">
<summary>
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
</summary>
</member>
<member name="P:DuetAPI.Commands.CheckPassword.Password">
<summary>
Password to check
</summary>
</member>
<member name="T:DuetAPI.Commands.Code">
<summary>
A parsed representation of a generic G/M/T-code
</summary>
</member>
<member name="M:DuetAPI.Commands.Code.#ctor">
<summary>
Create an empty Code representation
</summary>
</member>
<member name="M:DuetAPI.Commands.Code.#ctor(System.String)">
<summary>
Create a new Code instance and attempt to parse the given code string
</summary>
<param name="code">UTF8-encoded G/M/T-Code</param>
</member>
<member name="P:DuetAPI.Commands.Code.SourceConnection">
<summary>
The connection ID this code was received from. If this is 0, the code originates from an internal DCS task
</summary>
<remarks>
Usually there is no need to populate this property. It is internally overwritten by the control server on receipt
</remarks>
</member>
<member name="P:DuetAPI.Commands.Code.Result">
<summary>
Result of this code. This property is only set when the code has finished its excution.
It remains null if the code has been cancelled
</summary>
<remarks>
This used to be of type CodeResult but since v3.2 CodeResult can read Message JSON so it should remain compatible
</remarks>
</member>
<member name="P:DuetAPI.Commands.Code.Type">
<summary>
Type of the code
</summary>
</member>
<member name="P:DuetAPI.Commands.Code.Channel">
<summary>
Code channel to send this code to
</summary>
</member>
<member name="P:DuetAPI.Commands.Code.LineNumber">
<summary>
Line number of this code
</summary>
</member>
<member name="P:DuetAPI.Commands.Code.Indent">
<summary>
Number of whitespaces prefixing the command content
</summary>
</member>
<member name="P:DuetAPI.Commands.Code.Keyword">
<summary>
Type of conditional G-code (if any)
</summary>
</member>
<member name="P:DuetAPI.Commands.Code.KeywordArgument">
<summary>
Argument of the conditional G-code (if any)
</summary>
</member>
<member name="P:DuetAPI.Commands.Code.MajorNumber">
<summary>
Major code number (e.g. 28 in G28)
</summary>
</member>
<member name="P:DuetAPI.Commands.Code.MinorNumber">
<summary>
Minor code number (e.g. 3 in G54.3)
</summary>
</member>
<member name="P:DuetAPI.Commands.Code.Flags">
<summary>
Flags of this code
</summary>
</member>
<member name="P:DuetAPI.Commands.Code.Comment">
<summary>
Comment of the G/M/T-code. May be null if no comment is present
</summary>
<remarks>
The parser combines different comment segments and concatenates them as a single value.
So for example a code like 'G28 (Do homing) ; via G28' causes the Comment field to be filled with 'Do homing via G28'
</remarks>
</member>
<member name="P:DuetAPI.Commands.Code.FilePosition">
<summary>
File position of this code in bytes (optional)
</summary>
</member>
<member name="P:DuetAPI.Commands.Code.Length">
<summary>
Length of the original code in bytes (optional)
</summary>
</member>
<member name="P:DuetAPI.Commands.Code.Parameters">
<summary>
List of parsed code parameters (see <see cref="T:DuetAPI.Commands.CodeParameter"/> for further information)
</summary>
<seealso cref="T:DuetAPI.Commands.CodeParameter"/>
</member>
<member name="M:DuetAPI.Commands.Code.Reset">
<summary>
Reset this instance
</summary>
</member>
<member name="M:DuetAPI.Commands.Code.Parameter(System.Char)">
<summary>
Retrieve the parameter whose letter equals c. Note that this look-up is case-insensitive
</summary>
<param name="c">Letter of the parameter to find</param>
<returns>The parsed parameter instance or null if none could be found</returns>
</member>
<member name="M:DuetAPI.Commands.Code.Parameter(System.Char,System.Object)">
<summary>
Retrieve the parameter whose letter equals c or generate a default parameter
</summary>
<param name="c">Letter of the parameter to find</param>
<param name="defaultValue">Default parameter value (no expression)</param>
<returns>The parsed parameter instance or null if none could be found</returns>
</member>
<member name="M:DuetAPI.Commands.Code.GetUnprecedentedString(System.Boolean)">
<summary>
Reconstruct an unprecedented string from the parameter list or
retrieve the parameter which does not have a letter assigned
</summary>
<param name="quoteStrings">Encapsulate strings in double quotes</param>
<returns>Unprecedented string</returns>
</member>
<member name="M:DuetAPI.Commands.Code.ToString">
<summary>
Convert the parsed code back to a text-based G/M/T-code
</summary>
<returns>Reconstructed code string</returns>
</member>
<member name="M:DuetAPI.Commands.Code.ToShortString">
<summary>
Convert only the command portion to a text-based G/M/T-code (e.g. G28)
</summary>
<returns>Command fraction of the code</returns>
</member>
<member name="M:DuetAPI.Commands.Code.KeywordToString">
<summary>
Convert the keyword to a string
</summary>
<returns></returns>
</member>
<member name="M:DuetAPI.Commands.Code.Parse(System.IO.TextReader,DuetAPI.Commands.Code)">
<summary>
Parse the next available G/M/T-code from the given stream
</summary>
<param name="reader">Input to read from</param>
<param name="result">Code to fill</param>
<returns>Whether anything could be read</returns>
<exception cref="T:DuetAPI.Commands.CodeParserException">Thrown if the code contains errors like unterminated strings or unterminated comments</exception>
<remarks>
In general it is better to use <see cref="M:DuetAPI.Commands.Code.ParseAsync(System.IO.StreamReader,DuetAPI.Commands.Code,DuetAPI.Commands.CodeParserBuffer)"/> because this implementation
- does not update the line number unless it is specified using the 'N' character
- does not set the corresponding flag for G53 after the first code on a line
- sets the indentation level only for the first code in a line
- does not support Fanuc or LaserWeb styles
</remarks>
</member>
<member name="M:DuetAPI.Commands.Code.AddParameter(DuetAPI.Commands.Code,System.Char,System.String,System.Boolean,System.Boolean)">
<summary>
Add a new parameter to a given <see cref="T:DuetAPI.Commands.Code"/> instance
</summary>
<param name="code">Code to add the parameter to</param>
<param name="letter">Letter of the parameter to 0 if unprecedented</param>
<param name="value">Value of the parameter</param>
<param name="isQuoted">Whether the parameter is a quoted string</param>
<param name="isSingleParameter">Whether the parameter is definitely a single parameter</param>
</member>
<member name="M:DuetAPI.Commands.Code.ConvertDriverIds">
<summary>
Convert parameters of this code to driver id(s)
</summary>
<exception cref="T:DuetAPI.Commands.CodeParserException">Driver ID could not be parsed</exception>
</member>
<member name="M:DuetAPI.Commands.Code.ConvertDriverIds(DuetAPI.Commands.CodeParameter)">
<summary>
Convert a given parameter to driver id(s)
</summary>
<exception cref="T:DuetAPI.Commands.CodeParserException">Driver ID could not be parsed</exception>
</member>
<member name="M:DuetAPI.Commands.Code.ParseAsync(System.IO.StreamReader,DuetAPI.Commands.Code,DuetAPI.Commands.CodeParserBuffer)">
<summary>
Parse the next available G/M/T-code from the given stream asynchronously
</summary>
<param name="reader">Input to read from</param>
<param name="result">Code to fill</param>
<param name="buffer">Internal buffer for parsing codes</param>
<returns>Whether anything could be read</returns>
<exception cref="T:DuetAPI.Commands.CodeParserException">Thrown if the code contains errors like unterminated strings or unterminated comments</exception>
</member>
<member name="T:DuetAPI.Commands.KeywordType">
<summary>
Enumeration of conditional G-code keywords
</summary>
</member>
<member name="F:DuetAPI.Commands.KeywordType.None">
<summary>
No conditional code
</summary>
</member>
<member name="F:DuetAPI.Commands.KeywordType.If">
<summary>
If condition
</summary>
</member>
<member name="F:DuetAPI.Commands.KeywordType.ElseIf">
<summary>
Else-if condition
</summary>
</member>
<member name="F:DuetAPI.Commands.KeywordType.Else">
<summary>
Else condition
</summary>
</member>
<member name="F:DuetAPI.Commands.KeywordType.While">
<summary>
While condition
</summary>
</member>
<member name="F:DuetAPI.Commands.KeywordType.Break">
<summary>
Break instruction
</summary>
<seealso cref="F:DuetAPI.Commands.KeywordType.While"/>
</member>
<member name="F:DuetAPI.Commands.KeywordType.Abort">
<summary>
Abort instruction
</summary>
</member>
<member name="F:DuetAPI.Commands.KeywordType.Var">
<summary>
Var operation
</summary>
</member>
<member name="F:DuetAPI.Commands.KeywordType.Set">
<summary>
Set operation
</summary>
</member>
<member name="F:DuetAPI.Commands.KeywordType.Echo">
<summary>
Echo operation
</summary>
</member>
<member name="F:DuetAPI.Commands.KeywordType.Continue">
<summary>
Continue instruction
</summary>
<seealso cref="F:DuetAPI.Commands.KeywordType.While"/>
</member>
<member name="F:DuetAPI.Commands.KeywordType.Global">
<summary>
Global operation
</summary>
</member>
<member name="T:DuetAPI.Commands.CodeFlags">
<summary>
Code bits to classify G/M/T-codes
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeFlags.None">
<summary>
Placeholder to indicate that no flags are set
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeFlags.Asynchronous">
<summary>
Code execution finishes as soon as it is enqueued in the code queue
</summary>
<remarks>
If codes are started asynchronously, code replies are normally reported via the object model.
In order to keep track of code replies, an <see cref="F:DuetAPI.Connection.ConnectionMode.Intercept"/> connection
in <see cref="F:DuetAPI.Connection.InterceptionMode.Executed"/> mode can be used
</remarks>
</member>
<member name="F:DuetAPI.Commands.CodeFlags.IsPreProcessed">
<summary>
Code has been preprocessed (i.e. it has been processed by the DCS pre-side code interceptors)
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeFlags.IsPostProcessed">
<summary>
Code has been postprocessed (i.e. it has been processed by the internal DCS code processor)
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeFlags.IsFromMacro">
<summary>
Code originates from a macro file
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeFlags.IsNestedMacro">
<summary>
Code originates from a system macro file (i.e. RRF requested it)
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeFlags.IsFromConfig">
<summary>
Code comes from config.g or config.g.bak
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeFlags.IsFromConfigOverride">
<summary>
Code comes from config-override.g
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeFlags.EnforceAbsolutePosition">
<summary>
Enforce absolute positioning via prefixed G53 code
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeFlags.IsPrioritized">
<summary>
Override every other code and send it to the firmware as quickly as possible
</summary>
<remarks>
When this type of code is intercepted, the code can be ignored, cancelled, or resolved,
but it is not possible to insert asynchronous codes that complete before the given code.
In a future DSF version it may be no longer possible to intercept prioritized codes
</remarks>
</member>
<member name="F:DuetAPI.Commands.CodeFlags.Unbuffered">
<summary>
Do NOT process another code on the same channel before this code has been fully executed
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeFlags.IsFromFirmware">
<summary>
Indicates if this code was requested from the firmware
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeFlags.IsLastCode">
<summary>
Indicates if this is the last code on the line
</summary>
</member>
<member name="T:DuetAPI.Commands.CodeParameter">
<summary>
Represents a parsed parameter of a G/M/T-code
Initial parsing is done whenever a code is processed
</summary>
</member>
<member name="P:DuetAPI.Commands.CodeParameter.Letter">
<summary>
Letter of the code parameter (e.g. P in M106 P3)
</summary>
<remarks>
If this is an unprecedented parameter without a letter, '@' is used
</remarks>
</member>
<member name="P:DuetAPI.Commands.CodeParameter.IsExpression">
<summary>
Indicates if this parameter is an expression that can be evaluated
</summary>
</member>
<member name="P:DuetAPI.Commands.CodeParameter.IsDriverId">
<summary>
Indicates if this parameter is a driver identifier
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeParameter.StringValue">
<summary>
Unparsed string representation of the code parameter or an empty string if none present
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeParameter.ParsedValue">
<summary>
Internal parsed representation of the string value (one of string, int, uint, float, int[], uint[] or float[])
</summary>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.#ctor(System.Char,System.String,System.Boolean,System.Boolean)">
<summary>
Creates a new CodeParameter instance and parses value to a native data type if applicable
</summary>
<param name="letter">Letter of the code parameter</param>
<param name="value">String representation of the value</param>
<param name="isString">Whether this is a string. This is set to true if the parameter was inside quotation marks</param>
<param name="isDriverId">Whether this is a driver ID</param>
<remarks>This constructor does not parsed long (aka int64) values because RRF cannot handle them</remarks>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.#ctor(System.Char,System.Object)">
<summary>
Creates a new CodeParameter instance and with the given value
</summary>
<param name="letter">Letter of the code parameter (automatically converted to upper-case)</param>
<param name="value">Value of this parameter</param>
</member>
<member name="P:DuetAPI.Commands.CodeParameter.Type">
<summary>
Data type of the internally parsed value
</summary>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Implicit(DuetAPI.Commands.CodeParameter)~System.Single">
<summary>
Implicit conversion operator to float
</summary>
<param name="codeParameter">Target object</param>
<returns>Converted value</returns>
<exception cref="T:System.ArgumentException">Data type is not convertible</exception>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Implicit(DuetAPI.Commands.CodeParameter)~System.Int32">
<summary>
Implicit conversion operator to int
</summary>
<param name="codeParameter">Target object</param>
<returns>Converted value</returns>
<exception cref="T:System.ArgumentException">Data type is not convertible</exception>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Implicit(DuetAPI.Commands.CodeParameter)~System.UInt32">
<summary>
Implicit conversion operator to uint
</summary>
<param name="codeParameter">Target object</param>
<returns>Converted value</returns>
<exception cref="T:System.ArgumentException">Data type is not convertible</exception>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Implicit(DuetAPI.Commands.CodeParameter)~DuetAPI.Utility.DriverId">
<summary>
Implicit conversion operator to a driver ID
</summary>
<param name="codeParameter">Target object</param>
<returns>Converted value</returns>
<exception cref="T:System.ArgumentException">Data type is not convertible</exception>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Implicit(DuetAPI.Commands.CodeParameter)~System.Int64">
<summary>
Implicit conversion operator to long
</summary>
<param name="codeParameter">Target object</param>
<returns>Converted value</returns>
<exception cref="T:System.ArgumentException">Data type is not convertible</exception>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Implicit(DuetAPI.Commands.CodeParameter)~System.Boolean">
<summary>
Implicit conversion operator to bool
</summary>
<param name="codeParameter">Target object</param>
<returns>Converted value</returns>
<exception cref="T:System.ArgumentException">Data type is not convertible</exception>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Implicit(DuetAPI.Commands.CodeParameter)~System.String">
<summary>
Implicit conversion operator to string
</summary>
<param name="codeParameter">Target object</param>
<returns>Converted value</returns>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Implicit(DuetAPI.Commands.CodeParameter)~System.Net.IPAddress">
<summary>
Implicit conversion operator to an IP address
</summary>
<param name="codeParameter">Target object</param>
<returns>Converted value</returns>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Implicit(DuetAPI.Commands.CodeParameter)~System.Single[]">
<summary>
Implicit conversion operator to float array
</summary>
<param name="codeParameter">Target object</param>
<returns>Converted value</returns>
<exception cref="T:System.ArgumentException">Data type is not convertible</exception>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Implicit(DuetAPI.Commands.CodeParameter)~System.Int32[]">
<summary>
Implicit conversion operator to integer array
</summary>
<param name="codeParameter">Target object</param>
<returns>Converted value</returns>
<exception cref="T:System.ArgumentException">Data type is not convertible</exception>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Implicit(DuetAPI.Commands.CodeParameter)~System.UInt32[]">
<summary>
Implicit conversion operator to unsigned integer array
</summary>
<param name="codeParameter">Target object</param>
<returns>Converted value</returns>
<exception cref="T:System.ArgumentException">Data type is not convertible</exception>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Implicit(DuetAPI.Commands.CodeParameter)~DuetAPI.Utility.DriverId[]">
<summary>
Implicit conversion operator to a driver ID array
</summary>
<param name="codeParameter">Target object</param>
<returns>Converted value</returns>
<exception cref="T:System.ArgumentException">Data type is not convertible</exception>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Implicit(DuetAPI.Commands.CodeParameter)~System.Int64[]">
<summary>
Implicit conversion operator to long array
</summary>
<param name="codeParameter">Target object</param>
<returns>Converted value</returns>
<exception cref="T:System.ArgumentException">Data type is not convertible</exception>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Equality(DuetAPI.Commands.CodeParameter,System.Object)">
<summary>
Equality operator
</summary>
<param name="a">Code parameter</param>
<param name="b">Other object</param>
<returns>True if both objects are equal</returns>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.op_Inequality(DuetAPI.Commands.CodeParameter,System.Object)">
<summary>
Inequality operator
</summary>
<param name="a">Code parameter</param>
<param name="b">Other object</param>
<returns>True if both objects are not equal</returns>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.Equals(System.Object)">
<summary>
Checks if the other obj equals this instance
</summary>
<param name="obj">Other object</param>
<returns>True if both objects are not equal</returns>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.GetHashCode">
<summary>
Returns the hash code of this instance
</summary>
<returns>Computed hash code</returns>
</member>
<member name="M:DuetAPI.Commands.CodeParameter.ToString">
<summary>
Converts this parameter to a string
</summary>
<returns>String representation</returns>
</member>
<member name="T:DuetAPI.Commands.CodeParameterConverter">
<summary>
Converts a <see cref="T:DuetAPI.Commands.CodeParameter"/> instance to JSON
</summary>
</member>
<member name="M:DuetAPI.Commands.CodeParameterConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Read a CodeParameter object from JSON
</summary>
<param name="reader">JSON reader</param>
<param name="typeToConvert">Type to convert</param>
<param name="options">Serializer options</param>
<returns>Read value</returns>
</member>
<member name="M:DuetAPI.Commands.CodeParameterConverter.Write(System.Text.Json.Utf8JsonWriter,DuetAPI.Commands.CodeParameter,System.Text.Json.JsonSerializerOptions)">
<summary>
Write a CodeParameter to JSON
</summary>
<param name="writer">JSON writer</param>
<param name="value">Value to serialize</param>
<param name="options">Write options</param>
</member>
<member name="T:DuetAPI.Commands.CodeParserBuffer">
<summary>
Internal buffer for reading asynchronously from files
</summary>
</member>
<member name="M:DuetAPI.Commands.CodeParserBuffer.#ctor(System.Int32,System.Boolean)">
<summary>
Default constructor of this class
</summary>
<param name="bufferSize">How many bytes to buffer when reading from a file</param>
<param name="lineNumbersValid">Indicates if line numbers are valid</param>
</member>
<member name="F:DuetAPI.Commands.CodeParserBuffer.SeenNewLine">
<summary>
Indicates if the last
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeParserBuffer.Indent">
<summary>
Last indentation level
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeParserBuffer.EnforcingAbsolutePosition">
<summary>
Whether the line started with G53
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeParserBuffer.Buffer">
<summary>
Internal buffer
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeParserBuffer.BufferPointer">
<summary>
Pointer in the buffer
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeParserBuffer.BufferSize">
<summary>
How many bytes are available for reading
</summary>
</member>
<member name="M:DuetAPI.Commands.CodeParserBuffer.InvalidateData">
<summary>
Invalidate the buffer internally
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeParserBuffer.LineNumber">
<summary>
Current line number
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeParserBuffer.LastGCode">
<summary>
Last major G-code to repeat
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeParserBuffer.MayRepeatCode">
<summary>
Indicates if the last code may be repeated as per Fanuc or LaserWeb style
</summary>
</member>
<member name="M:DuetAPI.Commands.CodeParserBuffer.Invalidate">
<summary>
Invalidate the buffer
</summary>
</member>
<member name="M:DuetAPI.Commands.CodeParserBuffer.GetPosition(System.IO.StreamReader)">
<summary>
Get the actual byte position when reading from a stream
</summary>
<param name="reader">Reader to read from</param>
<returns>Actual position in bytes</returns>
</member>
<member name="T:DuetAPI.Commands.CodeParserException">
<summary>
Exception class that is thrown when a G/M/T-code could not be parsed
</summary>
</member>
<member name="M:DuetAPI.Commands.CodeParserException.#ctor">
<summary>
Creates a new CodeParserException
</summary>
</member>
<member name="M:DuetAPI.Commands.CodeParserException.#ctor(System.String)">
<summary>
Creates a new CodeParserException
</summary>
<param name="message">Exception message</param>
</member>
<member name="M:DuetAPI.Commands.CodeParserException.#ctor(System.String,DuetAPI.Commands.Code)">
<summary>
Creates a new CodeParserException with details where the parser failed to read data
</summary>
<param name="message">Exception message</param>
<param name="code">Code being parsed</param>
</member>
<member name="M:DuetAPI.Commands.CodeParserException.#ctor(System.String,System.Exception)">
<summary>
Creates a new CodeParserException
</summary>
<param name="message">Exception message</param>
<param name="inner">Inner exception</param>
</member>
<member name="T:DuetAPI.Commands.CodeType">
<summary>
Type of a generic G/M/T-code
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeType.None">
<summary>
Undetermined
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeType.Comment">
<summary>
Whole line comment
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeType.Keyword">
<summary>
Meta G-code keyword (not sent as a code to RRF)
</summary>
<remarks>
Codes of this type are not sent to RRF in binary representation
</remarks>
</member>
<member name="F:DuetAPI.Commands.CodeType.GCode">
<summary>
G-code
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeType.MCode">
<summary>
M-code
</summary>
</member>
<member name="F:DuetAPI.Commands.CodeType.TCode">
<summary>
T-code
</summary>
</member>
<member name="T:DuetAPI.Commands.EvaluateExpression">
<summary>
Evaluate an arbitrary expression on the given channel in RepRapFirmware
</summary>
<remarks>
Do not use this call to evaluate file-based and network-related fields because the DSF and RRF models diverge in this regard
</remarks>
</member>
<member name="P:DuetAPI.Commands.EvaluateExpression.Channel">
<summary>
Code channel where the expression is evaluated
</summary>
</member>
<member name="P:DuetAPI.Commands.EvaluateExpression.Expression">
<summary>
Expression to evaluate
</summary>
</member>
<member name="T:DuetAPI.Commands.Flush">
<summary>
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
</summary>
</member>
<member name="P:DuetAPI.Commands.Flush.Channel">
<summary>
Code channel to flush
</summary>
<remarks>
This value is ignored if this request is processed while a code is being intercepted
</remarks>
</member>
<member name="T:DuetAPI.Commands.InvalidateChannel">
<summary>
Invalidate all pending codes and files on a given channel (including buffered codes from DSF in RepRapFirmware)
</summary>
</member>
<member name="P:DuetAPI.Commands.InvalidateChannel.Channel">
<summary>
Code channel to invalidate
</summary>
</member>
<member name="T:DuetAPI.Commands.SetUpdateStatus">
<summary>
Override the current status as reported by the object model when performing a software update
</summary>
</member>
<member name="P:DuetAPI.Commands.SetUpdateStatus.Updating">
<summary>
Whether an update is now in progress
</summary>
</member>
<member name="T:DuetAPI.Commands.SimpleCode">
<summary>
Perform a simple G/M/T-code
</summary>
<remarks>
Internally the code passed is populated as a full <see cref="P:DuetAPI.Commands.SimpleCode.Code"/> instance and on completion
its <see cref="P:DuetAPI.Commands.Code.Result"/> is transformed back into a basic string. This is useful for minimal
extensions that do not require granular control of the code details. Except for certain cases, it
is NOT recommended for usage in <see cref="T:DuetAPI.Connection.InterceptionMode"/> because it renders the
internal code buffer useless.
</remarks>
</member>
<member name="P:DuetAPI.Commands.SimpleCode.Code">
<summary>
Code to parse and execute
</summary>
</member>
<member name="P:DuetAPI.Commands.SimpleCode.Channel">
<summary>
Destination channel
</summary>
</member>
<member name="P:DuetAPI.Commands.SimpleCode.ExecuteAsynchronously">
<summary>
Whether this code may be executed asynchronously. If set, the code reply is output as a generic message
</summary>
</member>
<member name="T:DuetAPI.Commands.WriteMessage">
<summary>
Write an arbitrary generic message
</summary>
<remarks>If neither <c>OutputMessage</c> nor <c>LogMessage</c> is true, the message is written to the console output</remarks>
</member>
<member name="P:DuetAPI.Commands.WriteMessage.Type">
<summary>
Type of the message to write
</summary>
</member>
<member name="P:DuetAPI.Commands.WriteMessage.Content">
<summary>
Content of the message to write
</summary>
</member>
<member name="P:DuetAPI.Commands.WriteMessage.OutputMessage">
<summary>
Output the message on the console and via the object model
</summary>
</member>
<member name="P:DuetAPI.Commands.WriteMessage.LogMessage">
<summary>
Write the message to the log file (if applicable)
</summary>
</member>
<member name="P:DuetAPI.Commands.WriteMessage.LogLevel">
<summary>
Log level of this message
</summary>
</member>
<member name="T:DuetAPI.Commands.AddHttpEndpoint">
<summary>
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
</summary>
<seealso cref="T:DuetAPI.Commands.ReceivedHttpRequest"/>.
<seealso cref="T:DuetAPI.Commands.SendHttpResponse"/>
</member>
<member name="P:DuetAPI.Commands.AddHttpEndpoint.EndpointType">
<summary>
Type of the HTTP request
</summary>
</member>
<member name="P:DuetAPI.Commands.AddHttpEndpoint.Namespace">
<summary>
Namespace of the plugin wanting to create a new third-party endpoint
</summary>
</member>
<member name="P:DuetAPI.Commands.AddHttpEndpoint.Path">
<summary>
Path to the endpoint to register
</summary>
</member>
<member name="P:DuetAPI.Commands.AddHttpEndpoint.IsUploadRequest">
<summary>
Whether this is an upload request
</summary>
<seealso cref="P:DuetAPI.ObjectModel.HttpEndpoint.IsUploadRequest"/>
</member>
<member name="T:DuetAPI.Commands.ReceivedHttpRequest">
<summary>
Notification sent by the webserver when a new HTTP request is received
</summary>
</member>
<member name="P:DuetAPI.Commands.ReceivedHttpRequest.SessionId">
<summary>
Identifier of the corresponding user session. This is -1 if it is an anonymous request
</summary>
<seealso cref="T:DuetAPI.ObjectModel.UserSession"/>
</member>
<member name="P:DuetAPI.Commands.ReceivedHttpRequest.Queries">
<summary>
List of HTTP query pairs
</summary>
</member>
<member name="P:DuetAPI.Commands.ReceivedHttpRequest.Headers">
<summary>
List of HTTP header pairs
</summary>
</member>
<member name="P:DuetAPI.Commands.ReceivedHttpRequest.ContentType">
<summary>
Type of the body content
</summary>
</member>
<member name="P:DuetAPI.Commands.ReceivedHttpRequest.Body">
<summary>
Body content as plain text or the filename where the body payload was saved if <see cref="P:DuetAPI.ObjectModel.HttpEndpoint.IsUploadRequest"/> is true
</summary>
</member>
<member name="T:DuetAPI.Commands.RemoveHttpEndpoint">
<summary>
Remove an existing HTTP endpoint.
Returns true if the endpoint could be successfully removed
</summary>
</member>
<member name="P:DuetAPI.Commands.RemoveHttpEndpoint.EndpointType">
<summary>
Type of the endpoint
</summary>
</member>
<member name="P:DuetAPI.Commands.RemoveHttpEndpoint.Namespace">
<summary>
Namespace of the endpoint
</summary>
</member>
<member name="P:DuetAPI.Commands.RemoveHttpEndpoint.Path">
<summary>
Endpoint path to unregister
</summary>
</member>
<member name="T:DuetAPI.Commands.HttpResponseType">
<summary>
Enumeration of supported HTTP responses
</summary>
</member>
<member name="F:DuetAPI.Commands.HttpResponseType.StatusCode">
<summary>
HTTP status code without payload
</summary>
</member>
<member name="F:DuetAPI.Commands.HttpResponseType.PlainText">
<summary>
Plain text (UTF-8)
</summary>
</member>
<member name="F:DuetAPI.Commands.HttpResponseType.JSON">
<summary>
JSON-formatted data
</summary>
</member>
<member name="F:DuetAPI.Commands.HttpResponseType.File">
<summary>
File content. Response must hold the absolute path to the file to return
</summary>
</member>
<member name="T:DuetAPI.Commands.SendHttpResponse">
<summary>
Send a response to a received HTTP request
</summary>
</member>
<member name="P:DuetAPI.Commands.SendHttpResponse.StatusCode">
<summary>
HTTP or WebSocket status code to return. If this is greater than or equal to 1000, the WebSocket is closed
</summary>
<remarks>Codes greater than 1000 represent WebSocket status codes (1000 = normal close)</remarks>
</member>
<member name="P:DuetAPI.Commands.SendHttpResponse.Response">
<summary>
Content to return. If this is null or empty and a WebSocket is connected, the connection is closed
</summary>
</member>
<member name="P:DuetAPI.Commands.SendHttpResponse.ResponseType">
<summary>
Type of the content to return. Ignored if a WebSocket is connected
</summary>
</member>
<member name="T:DuetAPI.Commands.Acknowledge">
<summary>
Acknowledge a (partial) model update.
</summary>
<remarks>
This command is only permitted in <see cref="F:DuetAPI.Connection.ConnectionMode.Subscribe"/> mode
</remarks>
</member>
<member name="T:DuetAPI.Commands.GetObjectModel">
<summary>
Query the current object model
</summary>
<seealso cref="T:DuetAPI.ObjectModel.ObjectModel"/>
</member>
<member name="T:DuetAPI.Commands.LockObjectModel">
<summary>
Lock the object model for read/write access.
This may be used to update the machine model and to change array items
</summary>
<seealso cref="T:DuetAPI.Commands.UnlockObjectModel"/>
</member>
<member name="T:DuetAPI.Commands.PatchObjectModel">
<summary>
Apply a full patch to the object model. May be used only in non-SPI mode
</summary>
<exception cref="T:System.ArgumentException">Invalid key specified</exception>
<exception cref="T:System.InvalidOperationException">DCS is not running in non-SPI mode</exception>
<seealso cref="T:DuetAPI.Commands.LockObjectModel"/>
<seealso cref="T:DuetAPI.Commands.UnlockObjectModel"/>
</member>
<member name="P:DuetAPI.Commands.PatchObjectModel.Key">
<summary>
Key to update
</summary>
</member>
<member name="P:DuetAPI.Commands.PatchObjectModel.Patch">
<summary>
JSON patch to apply
</summary>
</member>
<member name="T:DuetAPI.Commands.SetNetworkProtocol">
<summary>
Flag a given network protocol as enabled or disabled
</summary>
<remarks>
The object model must not be locked from the same connection via <see cref="T:DuetAPI.Commands.LockObjectModel"/> when this is called!
</remarks>
</member>
<member name="P:DuetAPI.Commands.SetNetworkProtocol.Protocol">
<summary>
Protocol to change
</summary>
</member>
<member name="P:DuetAPI.Commands.SetNetworkProtocol.Enabled">
<summary>
Whether the protocol is enabled or not
</summary>
</member>
<member name="T:DuetAPI.Commands.SetObjectModel">
<summary>
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
</summary>
<seealso cref="T:DuetAPI.Commands.LockObjectModel"/>
<seealso cref="T:DuetAPI.Commands.UnlockObjectModel"/>
</member>
<member name="P:DuetAPI.Commands.SetObjectModel.PropertyPath">
<summary>
Path to the property in the machine model
</summary>
<seealso cref="P:DuetAPI.Connection.InitMessages.SubscribeInitMessage.Filter"/>
</member>
<member name="P:DuetAPI.Commands.SetObjectModel.Value">
<summary>
String representation of the value to set
</summary>
</member>
<member name="T:DuetAPI.Commands.SyncObjectModel">
<summary>
Wait for the machine model to be fully updated from RepRapFirmware
</summary>
</member>
<member name="T:DuetAPI.Commands.UnlockObjectModel">
<summary>
Unlock the machine model after obtaining read/write access.
This is mandatory after <see cref="T:DuetAPI.Commands.LockObjectModel"/> has been invoked
</summary>
</member>
<member name="T:DuetAPI.Commands.InstallSystemPackage">
<summary>
Install or upgrade a system package
</summary>
</member>
<member name="P:DuetAPI.Commands.InstallSystemPackage.PackageFile">
<summary>
Absolute file path to the package file
</summary>
</member>
<member name="T:DuetAPI.Commands.UninstallSystemPackage">
<summary>
Uninstall a system package
</summary>
</member>
<member name="P:DuetAPI.Commands.UninstallSystemPackage.Package">
<summary>
Identifier of the package
</summary>
</member>
<member name="T:DuetAPI.Commands.InstallPlugin">
<summary>
Install or upgrade a plugin
</summary>
<exception cref="T:System.ArgumentException">Plugin is incompatible</exception>
</member>
<member name="P:DuetAPI.Commands.InstallPlugin.PluginFile">
<summary>
Absolute file path to the plugin ZIP bundle
</summary>
</member>
<member name="T:DuetAPI.Commands.ReloadPlugin">
<summary>
Reload the manifest of a given plugin. Useful for packaged plugins
</summary>
</member>
<member name="P:DuetAPI.Commands.ReloadPlugin.Plugin">
<summary>
Identifier of the plugin
</summary>
</member>
<member name="T:DuetAPI.Commands.SetPluginData">
<summary>
Update custom plugin data in the object model
</summary>
<remarks>
May be used to update only the own plugin data unless the plugin has the <see cref="F:DuetAPI.Utility.SbcPermissions.ManagePlugins"/> permission.
Note that the corresponding key must already exist in the plugin data!
</remarks>
<exception cref="T:System.ArgumentException">Invalid plugin name or data key specified</exception>
</member>
<member name="P:DuetAPI.Commands.SetPluginData.Plugin">
<summary>
Identifier of the plugin to update (only mandatory if running as root)
</summary>
</member>
<member name="P:DuetAPI.Commands.SetPluginData.Key">
<summary>
Key to set
</summary>
<remarks>
This key must already exist in the <see cref="P:DuetAPI.ObjectModel.PluginManifest.Data"/> object!
</remarks>
</member>
<member name="P:DuetAPI.Commands.SetPluginData.Value">
<summary>
Custom value to set
</summary>
</member>
<member name="T:DuetAPI.Commands.SetPluginProcess">
<summary>
Command to update the process identifier of a given plugin.
Reserved for internal purposes, do not use
</summary>
</member>
<member name="P:DuetAPI.Commands.SetPluginProcess.Plugin">
<summary>
Identifier of the plugin to update
</summary>
</member>
<member name="P:DuetAPI.Commands.SetPluginProcess.Pid">
<summary>
New process identifier of the plugin
</summary>
</member>
<member name="T:DuetAPI.Commands.StartPlugin">
<summary>
Start a plugin
</summary>
</member>
<member name="P:DuetAPI.Commands.StartPlugin.Plugin">
<summary>
Identifier of the plugin
</summary>
</member>
<member name="P:DuetAPI.Commands.StartPlugin.SaveState">
<summary>
Defines if the list of executing plugins may be saved
</summary>
</member>
<member name="T:DuetAPI.Commands.StartPlugins">
<summary>
Start all the previously started plugins again
</summary>
</member>
<member name="T:DuetAPI.Commands.StopPlugin">
<summary>
Stop a plugin
</summary>
</member>
<member name="P:DuetAPI.Commands.StopPlugin.Plugin">
<summary>
Identifier of the plugin
</summary>
</member>
<member name="P:DuetAPI.Commands.StopPlugin.SaveState">
<summary>
Defines if the list of executing plugins may be saved
</summary>
</member>
<member name="T:DuetAPI.Commands.StopPlugins">
<summary>
Stop all the plugins and save which plugins were started before.
This command is intended for shutdown or update requests
</summary>
</member>
<member name="T:DuetAPI.Commands.UninstallPlugin">
<summary>
Uninstall a plugin
</summary>
</member>
<member name="P:DuetAPI.Commands.UninstallPlugin.Plugin">
<summary>
Identifier of the plugin
</summary>
</member>
<member name="T:DuetAPI.Commands.BaseResponse">
<summary>
Base class for every response to a command request.
An instance of this is returned when a regular <see cref="T:DuetAPI.Commands.Command"/> has finished.
</summary>
<seealso cref="T:DuetAPI.Commands.Response`1"/>
<seealso cref="T:DuetAPI.Commands.ErrorResponse"/>
</member>
<member name="P:DuetAPI.Commands.BaseResponse.Success">
<summary>
Indicates if the command could complete without a runtime error
</summary>
</member>
<member name="T:DuetAPI.Commands.Response`1">
<summary>
Response of a <see cref="T:DuetAPI.Commands.Command`1"/>
</summary>
<typeparam name="T">Type of the response</typeparam>
</member>
<member name="P:DuetAPI.Commands.Response`1.Result">
<summary>
Result of the command
</summary>
</member>
<member name="M:DuetAPI.Commands.Response`1.#ctor">
<summary>
Default constructor for a response
</summary>
</member>
<member name="M:DuetAPI.Commands.Response`1.#ctor(`0)">
<summary>
Creates a new Response instance from the given result
</summary>
<param name="result">Response result</param>
</member>
<member name="T:DuetAPI.Commands.ErrorResponse">
<summary>
Response indicating a runtime exception during the internal processing of a command
</summary>
</member>
<member name="P:DuetAPI.Commands.ErrorResponse.ErrorType">
<summary>
Name of the .NET exception
</summary>
</member>
<member name="P:DuetAPI.Commands.ErrorResponse.ErrorMessage">
<summary>
Message of the .NET exception
</summary>
</member>
<member name="M:DuetAPI.Commands.ErrorResponse.#ctor">
<summary>
Creates a new response indicating a runtime error.
This constructor is only used for deserialization
</summary>
</member>
<member name="M:DuetAPI.Commands.ErrorResponse.#ctor(System.Exception)">
<summary>
Creates a new response indicating a runtime error
</summary>
<param name="e">Exception to report</param>
</member>
<member name="T:DuetAPI.Commands.AddUserSession">
<summary>
Register a new user session.
Returns the ID of the new user session
</summary>
</member>
<member name="P:DuetAPI.Commands.AddUserSession.AccessLevel">
<summary>
Access level of this session
</summary>
</member>
<member name="P:DuetAPI.Commands.AddUserSession.SessionType">
<summary>
Type of this session
</summary>
</member>
<member name="P:DuetAPI.Commands.AddUserSession.Origin">
<summary>
Origin of this session. For remote sessions, this equals the remote IP address
</summary>
</member>
<member name="T:DuetAPI.Commands.RemoveUserSession">
<summary>
Remove an existing user session
</summary>
</member>
<member name="P:DuetAPI.Commands.RemoveUserSession.Id">
<summary>
Identifier of the user session to remove
</summary>
</member>
<member name="T:DuetAPI.Connection.ConnectionMode">
<summary>
Supported connection types for client connections
</summary>
</member>
<member name="F:DuetAPI.Connection.ConnectionMode.Unknown">
<summary>
Unknown connection type. If this is used, the connection is immediately terminated
</summary>
</member>
<member name="F:DuetAPI.Connection.ConnectionMode.Command">
<summary>
Command mode. This allows clients to send general purpose messages to the control server like
G-codes or requests of the full object model
</summary>
<seealso cref="T:DuetAPI.Connection.InitMessages.CommandInitMessage"/>
</member>
<member name="F:DuetAPI.Connection.ConnectionMode.Intercept">
<summary>
Interception mode. This allows clients to intercept G/M/T-codes before or after they are initially processed
</summary>
<seealso cref="T:DuetAPI.Connection.InitMessages.InterceptInitMessage"/>
</member>
<member name="F:DuetAPI.Connection.ConnectionMode.Subscribe">
<summary>
Subscription mode. In this mode object model updates are transmitted to the client after each update
</summary>
<seealso cref="T:DuetAPI.Connection.InitMessages.SubscribeInitMessage"/>
</member>
<member name="F:DuetAPI.Connection.ConnectionMode.CodeStream">
<summary>
Code stream mode. This mode lets users send and receive code replies asynchronously using a single socket connection
</summary>
<seealso cref="T:DuetAPI.Connection.InitMessages.CodeStreamInitMessage"/>
</member>
<member name="F:DuetAPI.Connection.ConnectionMode.PluginService">
<summary>
Plugin service mode. This mode is used internally and should not be used by third-party plugins!
</summary>
</member>
<member name="T:DuetAPI.Connection.Defaults">
<summary>
Static class that holds the connection defaults
</summary>
</member>
<member name="F:DuetAPI.Connection.Defaults.ProtocolVersion">
<summary>
Current API protocol version number
</summary>
</member>
<member name="F:DuetAPI.Connection.Defaults.SocketDirectory">
<summary>
Default directory in which DSF-related UNIX sockets reside
</summary>
</member>
<member name="F:DuetAPI.Connection.Defaults.SocketFile">
<summary>
Default UNIX socket file for DuetControlServer
</summary>
</member>
<member name="F:DuetAPI.Connection.Defaults.FullSocketPath">
<summary>
Default fully-qualified path to the UNIX socket for DuetControlServer
</summary>
</member>
<member name="F:DuetAPI.Connection.Defaults.StartErrorFile">
<summary>
Default file to contain the last start error of DCS. Once DCS starts successfully, it is deleted
</summary>
</member>
<member name="F:DuetAPI.Connection.Defaults.InputChannel">
<summary>
Default code channel to use
</summary>
</member>
<member name="F:DuetAPI.Connection.Defaults.CodeBufferSize">
<summary>
Default number of codes to buffer in <see cref="F:DuetAPI.Connection.ConnectionMode.CodeStream"/> mode
</summary>
</member>
<member name="F:DuetAPI.Connection.Defaults.MaxCodeBufferSize">
<summary>
Maximum number of codes to buffer in <see cref="F:DuetAPI.Connection.ConnectionMode.CodeStream"/> mode
</summary>
</member>
<member name="F:DuetAPI.Connection.Defaults.Password">
<summary>
Default password
</summary>
</member>
<member name="T:DuetAPI.Connection.IncompatibleVersionException">
<summary>
Exception class that is thrown if the API version of the client is incompatible to the server
</summary>
</member>
<member name="M:DuetAPI.Connection.IncompatibleVersionException.#ctor">
<summary>
Creates a new exception instance
</summary>
</member>
<member name="M:DuetAPI.Connection.IncompatibleVersionException.#ctor(System.String)">
<summary>
Creates a new exception instance
</summary>
<param name="message">Error message</param>
</member>
<member name="M:DuetAPI.Connection.IncompatibleVersionException.#ctor(System.String,System.Exception)">
<summary>
Creates a new exception instance
</summary>
<param name="message">Error message</param>
<param name="innerException">Inner exception</param>
</member>
<member name="T:DuetAPI.Connection.InitMessages.ClientInitMessage">
<summary>
An instance of this class is sent from the client to the server as a response to the <see cref="T:DuetAPI.Connection.InitMessages.ServerInitMessage"/>.
It allows a client to select the connection mode (<see cref="T:DuetAPI.Connection.ConnectionMode"/>).
</summary>
</member>
<member name="P:DuetAPI.Connection.InitMessages.ClientInitMessage.Mode">
<summary>
Desired mode of the new connection
</summary>
</member>
<member name="P:DuetAPI.Connection.InitMessages.ClientInitMessage.Version">
<summary>
Version number of the client-side API
</summary>
<seealso cref="F:DuetAPI.Connection.Defaults.ProtocolVersion"/>
<remarks>
If this version is incompatible to DCS, a <see cref="T:DuetAPI.Connection.IncompatibleVersionException"/> is returned when a connection is being established
</remarks>
</member>
<member name="T:DuetAPI.Connection.InitMessages.CodeStreamInitMessage">
<summary>
Enter code streaming connection mode
In this connection mode G/M/T-codes are processed asynchronously (up to <see cref="P:DuetAPI.Connection.InitMessages.CodeStreamInitMessage.BufferSize"/>)
</summary>
</member>
<member name="P:DuetAPI.Connection.InitMessages.CodeStreamInitMessage.BufferSize">
<summary>
Maximum number of codes being executed simultaneously
</summary>
</member>
<member name="P:DuetAPI.Connection.InitMessages.CodeStreamInitMessage.Channel">
<summary>
Destination channel for incoming codes
</summary>
</member>
<member name="M:DuetAPI.Connection.InitMessages.CodeStreamInitMessage.#ctor">
<summary>
Creates a new init message instance
</summary>
</member>
<member name="T:DuetAPI.Connection.InitMessages.CommandInitMessage">
<summary>
Enter command-based connection mode
In this connection mode nearly all of the commands in the <see cref="N:DuetAPI.Commands"/> namespace can be used
</summary>
</member>
<member name="M:DuetAPI.Connection.InitMessages.CommandInitMessage.#ctor">
<summary>
Creates a new init message instance
</summary>
</member>
<member name="T:DuetAPI.Connection.InitMessages.InterceptInitMessage">
<summary>
Enter interception mode
Whenever a code is received, the connection must respond with one of
- <cref see="DuetAPI.Commands.Cancel">Cancel</cref> to cancel the code
- <cref see="DuetAPI.Commands.Ignore">Ignore</cref> to pass through the code without modifications
- <cref see="DuetAPI.Commands.Resolve">Resolve</cref> to resolve the current code and to return a message
In addition the interceptor may issue custom commands once a code has been received
</summary>
<remarks>
If this connection mode is used to implement new G/M/T-codes, always call the <see cref="T:DuetAPI.Commands.Flush"/>
command before further actions are started and make sure it returns <c>true</c> before the code is further
processed. This step is mandatory to guarantee that the new code is executed when all other codes have finished
and not when a code is being fed for the internal G-code buffer. If the flush command returns <c>false</c>, it
is recommended to send <see cref="T:DuetAPI.Commands.Cancel"/> to resolve the command. DCS follows the same pattern for
internally processed codes, too.
If a code from a macro file is intercepted, make sure to set the <see cref="F:DuetAPI.Commands.CodeFlags.IsFromMacro"/>
flag if new codes are inserted, else they will be started when the macro file(s) have finished. This step
is obsolete if a <see cref="T:DuetAPI.Commands.SimpleCode"/> is inserted.
</remarks>
</member>
<member name="M:DuetAPI.Connection.InitMessages.InterceptInitMessage.#ctor">
<summary>
Creates a new init message instance
</summary>
</member>
<member name="P:DuetAPI.Connection.InitMessages.InterceptInitMessage.InterceptionMode">
<summary>
Defines in what mode commands are supposed to be intercepted
</summary>
</member>
<member name="P:DuetAPI.Connection.InitMessages.InterceptInitMessage.Channels">
<summary>
List of channel where codes may be intercepted. If the list is empty, all available channels are used
</summary>
</member>
<member name="P:DuetAPI.Connection.InitMessages.InterceptInitMessage.Filters">
<summary>
List of G/M/T-codes to filter or Q for comments
</summary>
<remarks>
This may only specify the code type and major/minor number (e.g. G1 or M105).
Alternatively keyword types may be specified (e.g. if or elif).
Asterisks are supported, too (e.g. T*)
</remarks>
</member>
<member name="P:DuetAPI.Connection.InitMessages.InterceptInitMessage.PriortyCodes">
<summary>
Defines if either regular or priority codes are supposed to be intercepted
</summary>
<seealso cref="F:DuetAPI.Commands.CodeFlags.IsPrioritized"/>
</member>
<member name="T:DuetAPI.Connection.InitMessages.PluginServiceInitMessage">
<summary>
Enter connection mode for the plugin service.
This init message is used for internal IPC and should not be used by third-party plugins!
</summary>
</member>
<member name="M:DuetAPI.Connection.InitMessages.PluginServiceInitMessage.#ctor">
<summary>
Creates a new init message instance
</summary>
</member>
<member name="T:DuetAPI.Connection.InitMessages.ServerInitMessage">
<summary>
An instance of this class is sent by the server to the client in JSON format once a connection has been established.
</summary>
</member>
<member name="P:DuetAPI.Connection.InitMessages.ServerInitMessage.Version">
<summary>
Version of the server-side API
</summary>
</member>
<member name="P:DuetAPI.Connection.InitMessages.ServerInitMessage.Id">
<summary>
Unique connection ID assigned by the control server to allow clients to track their commands
</summary>
</member>
<member name="T:DuetAPI.Connection.InitMessages.SubscribeInitMessage">
<summary>
Enter subscription mode and receive either the full object model or parts of it after every update
</summary>
</member>
<member name="M:DuetAPI.Connection.InitMessages.SubscribeInitMessage.#ctor">
<summary>
Creates a new init message instance
</summary>
</member>
<member name="P:DuetAPI.Connection.InitMessages.SubscribeInitMessage.SubscriptionMode">
<summary>
Type of the subscription
</summary>
</member>
<member name="P:DuetAPI.Connection.InitMessages.SubscribeInitMessage.Channel">
<summary>
Optional code channel to receive messages from or null if only generic messages are supposed to be received
</summary>
</member>
<member name="P:DuetAPI.Connection.InitMessages.SubscribeInitMessage.Filter">
<summary>
Optional filter path for <see cref="F:DuetAPI.Connection.SubscriptionMode.Patch"/> mode
</summary>
<remarks>
Multiple filters can be used on one connection and they have to be delimited by one of these charaters: ['|', ',', ' ', '\r', '\n']
</remarks>
<seealso cref="P:DuetAPI.Connection.InitMessages.SubscribeInitMessage.Filters"/>
</member>
<member name="P:DuetAPI.Connection.InitMessages.SubscribeInitMessage.Filters">
<summary>
Optional list of filter paths for <see cref="F:DuetAPI.Connection.SubscriptionMode.Patch"/> mode
</summary>
<remarks>
The style of a filter is similar to XPath. For example, if you want to monitor only the current heater temperatures,
you can use the filter expression "heat/heaters[*]/current". Wildcards are supported either for full names or indices.
To get updates for an entire namespace, the ** wildcard can be used (for example heat/** for everything heat-related),
however it can be only used at the end of a filter expression
</remarks>
</member>
<member name="T:DuetAPI.Connection.InterceptionMode">
<summary>
Type of the intercepting connection
</summary>
<seealso cref="T:DuetAPI.Connection.InitMessages.InterceptInitMessage"/>
</member>
<member name="F:DuetAPI.Connection.InterceptionMode.Pre">
<summary>
Intercept codes before they are internally processed by the control server
</summary>
</member>
<member name="F:DuetAPI.Connection.InterceptionMode.Post">
<summary>
Intercept codes after the initial processing of the control server but before they are forwarded to the RepRapFirmware controller
</summary>
</member>
<member name="F:DuetAPI.Connection.InterceptionMode.Executed">
<summary>
Receive a notification for executed codes. In this state the final result can be still changed
</summary>
</member>
<member name="T:DuetAPI.Connection.SubscriptionMode">
<summary>
Type of the model subscription
</summary>
<seealso cref="T:DuetAPI.Connection.InitMessages.SubscribeInitMessage"/>
</member>
<member name="F:DuetAPI.Connection.SubscriptionMode.Full">
<summary>
Receive full object model after every update
</summary>
<remarks>
Generic messages may or may not be included in the full object model. To keep track of messages reliably,
it is strongly advised to create a subscription in <see cref="F:DuetAPI.Connection.SubscriptionMode.Patch"/> mode.
</remarks>
</member>
<member name="F:DuetAPI.Connection.SubscriptionMode.Patch">
<summary>
Receive only updated JSON fragments of the object model
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.IGrowingModelCollection">
<summary>
Interface for growing model collections
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.IModelCollection">
<summary>
Interface that all object model collections must implement
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.IModelCollection.UpdateFromJson(System.Text.Json.JsonElement,System.Boolean,System.Int32,System.Boolean)">
<summary>
Update this collection from a given JSON array
</summary>
<param name="jsonElement">Element to update this intance from</param>
<param name="ignoreSbcProperties">Whether SBC properties are ignored</param>
<param name="offset">Index offset</param>
<param name="last">Whether this is the last update</param>
</member>
<member name="T:DuetAPI.ObjectModel.IModelDictionary">
<summary>
Interface for model dictionaries
</summary>
</member>
<member name="E:DuetAPI.ObjectModel.IModelDictionary.DictionaryCleared">
<summary>
Event that is called when the entire directory is cleared
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.IModelObject">
<summary>
Basic interface for object model classes that have properties
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.IModelObject.Assign(System.Object)">
<summary>
Assign the properties from another instance.
This is required to update model properties which do not have a setter
</summary>
<param name="from">Other instance</param>
</member>
<member name="M:DuetAPI.ObjectModel.IModelObject.FindDifferences(DuetAPI.ObjectModel.IModelObject)">
<summary>
Create a dictionary or list of all the differences between this instance and another.
This method outputs own property values that differ from the other instance
</summary>
<param name="other">Other instance</param>
<returns>Object differences or null if both instances are equal</returns>
</member>
<member name="M:DuetAPI.ObjectModel.IModelObject.UpdateFromJson(System.Text.Json.JsonElement,System.Boolean)">
<summary>
Update this instance from a given JSON element
</summary>
<param name="jsonElement">Element to update this intance from</param>
<param name="ignoreSbcProperties">Whether SBC properties are ignored</param>
<returns>Updated instance</returns>
<exception cref="T:System.Text.Json.JsonException">Failed to deserialize data</exception>
</member>
<member name="T:DuetAPI.ObjectModel.ModelCollection`1">
<summary>
Generic container for object model arrays
</summary>
<typeparam name="T">Item type</typeparam>
</member>
<member name="M:DuetAPI.ObjectModel.ModelCollection`1.ClearItems">
<summary>
Removes all items from the collection
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.ModelCollection`1.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
<summary>
Raises the change event handler
</summary>
<param name="e">Event arguments</param>
</member>
<member name="M:DuetAPI.ObjectModel.ModelCollection`1.Assign(System.Object)">
<summary>
Assign the properties from another instance.
This is required to update model properties which do not have a setter
</summary>
<param name="from">Other instance</param>
</member>
<member name="M:DuetAPI.ObjectModel.ModelCollection`1.Clone">
<summary>
Create a clone of this list
</summary>
<returns>Cloned list</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelCollection`1.FindDifferences(DuetAPI.ObjectModel.IModelObject)">
<summary>
Create a dictionary or list of all the differences between this instance and another.
This method outputs own property values that differ from the other instance
</summary>
<param name="other">Other instance</param>
<returns>Object differences or null if both instances are equal</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelCollection`1.UpdateFromJson(System.Text.Json.JsonElement,System.Boolean)">
<summary>
Update this instance from a given JSON element
</summary>
<param name="jsonElement">Element to update this intance from</param>
<param name="ignoreSbcProperties">Whether SBC properties are ignored</param>
<returns>Updated instance</returns>
<exception cref="T:System.Text.Json.JsonException">Failed to deserialize data</exception>
<remarks>Accepts null as the JSON value to clear existing items</remarks>
</member>
<member name="M:DuetAPI.ObjectModel.ModelCollection`1.UpdateFromJson(System.Text.Json.JsonElement,System.Boolean,System.Int32,System.Boolean)">
<summary>
Update this collection from a given JSON array
</summary>
<param name="jsonElement">Element to update this intance from</param>
<param name="ignoreSbcProperties">Whether SBC properties are ignored</param>
<param name="offset">Index offset</param>
<param name="last">Whether this is the last update</param>
</member>
<member name="T:DuetAPI.ObjectModel.ModelDictionary`1">
<summary>
Class for holding string keys and custom values
</summary>
<remarks>
Key names are NOT converted to camel-case (unlike regular class properties)
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.ModelDictionary`1.NullRemovesItems">
<summary>
Flags if keys can be removed again by setting their value to null
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ModelDictionary`1._dictionary">
<summary>
Internal storage for key/value pairs
</summary>
</member>
<member name="E:DuetAPI.ObjectModel.ModelDictionary`1.DictionaryCleared">
<summary>
Event that is called when the entire directory is cleared. Only used if <see cref="P:DuetAPI.ObjectModel.ModelDictionary`1.NullRemovesItems"/> is false
</summary>
</member>
<member name="E:DuetAPI.ObjectModel.ModelDictionary`1.PropertyChanged">
<summary>
Event that is called when a key has been changed
</summary>
</member>
<member name="E:DuetAPI.ObjectModel.ModelDictionary`1.PropertyChanging">
<summary>
Event that is called when a key is being changed
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.#ctor(System.Boolean)">
<summary>
Constructor of this class
</summary>
<param name="nullRemovesItems">Defines if setting items to null effectively removes them</param>
</member>
<member name="P:DuetAPI.ObjectModel.ModelDictionary`1.Item(System.String)">
<summary>
Index operator
</summary>
<param name="key">Key</param>
<returns>Value</returns>
</member>
<member name="P:DuetAPI.ObjectModel.ModelDictionary`1.Item(System.Object)">
<summary>
Basic index operator
</summary>
<param name="key">Key object</param>
<returns>Value if found</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.GetEnumerator">
<summary>
Get an enumerator for this instance
</summary>
<returns>Enumerator instance</returns>
</member>
<member name="P:DuetAPI.ObjectModel.ModelDictionary`1.Keys">
<summary>
List of keys
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ModelDictionary`1.Values">
<summary>
List of values
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ModelDictionary`1.IsReadOnly">
<summary>
Whether the dictionary is read-only
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ModelDictionary`1.IsFixedSize">
<summary>
Whether this dictionary has a fixed size
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ModelDictionary`1.System#Collections#IDictionary#Keys">
<summary>
Collection of dictionary keys
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ModelDictionary`1.System#Collections#IDictionary#Values">
<summary>
Collection of dictionary values
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ModelDictionary`1.IsSynchronized">
<summary>
If this is thread-safe
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ModelDictionary`1.SyncRoot">
<summary>
Synchronization root
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ModelDictionary`1.Count">
<summary>
Returns the number of items in this collection
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.Add(System.String,`0)">
<summary>
Add a new item
</summary>
<param name="key">Key to add</param>
<param name="value">Value to add</param>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.Add(System.Object,System.Object)">
<summary>
Add a new item
</summary>
<param name="key">Key to add</param>
<param name="value">Value to add</param>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.Add(System.Collections.Generic.KeyValuePair{System.String,`0})">
<summary>
Add a new item
</summary>
<param name="item">Item to add</param>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.Assign(System.Object)">
<summary>
Assign the properties from another instance
</summary>
<param name="from">Other instance</param>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.Clear">
<summary>
Clear this dictionary
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.Clone">
<summary>
Create a clone of this instance
</summary>
<returns></returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.ContainsKey(System.String)">
<summary>
Check if a key is present
</summary>
<param name="key">Key to check</param>
<returns>Whether the key is present</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.Contains(System.Object)">
<summary>
Check if a key is present
</summary>
<param name="key">Key to check</param>
<returns>Whether the key is present</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.CopyTo(System.Array,System.Int32)">
<summary>
Copy this instance to another array
</summary>
<param name="array">Destination array</param>
<param name="index">Start index</param>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.CopyTo(System.Collections.Generic.KeyValuePair{System.String,`0}[],System.Int32)">
<summary>
Copy this instance to another dictionary
</summary>
<param name="array">Destination array</param>
<param name="arrayIndex">Start iondex</param>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.Contains(System.Collections.Generic.KeyValuePair{System.String,`0})">
<summary>
Check if a key-value pair exists
</summary>
<param name="item">Item to check</param>
<returns>If the item exists in the dictionary</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.FindDifferences(DuetAPI.ObjectModel.IModelObject)">
<summary>
Create a dictionary or list of all the differences between this instance and another.
This method outputs own property values that differ from the other instance
</summary>
<param name="other">Other instance</param>
<returns>Object differences or null if both instances are equal</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Get an enumerator
</summary>
<returns>Enumerator</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.System#Collections#IDictionary#GetEnumerator">
<summary>
Get an enumerator
</summary>
<returns>Enumerator</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.Remove(System.String)">
<summary>
Remove a key (only supported if <see cref="P:DuetAPI.ObjectModel.ModelDictionary`1.NullRemovesItems"/> is true)
</summary>
<param name="key">Key to remove</param>
<returns>Whether the key could be found</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.Remove(System.Object)">
<summary>
Remove a key (only supported if <see cref="P:DuetAPI.ObjectModel.ModelDictionary`1.NullRemovesItems"/> is true)
</summary>
<param name="key">Key to remove</param>
<returns>Whether the key could be found</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.Remove(System.Collections.Generic.KeyValuePair{System.String,`0})">
<summary>
Remove a key-value pair if applicable
</summary>
<param name="item">Item to remove</param>
<returns>If the key-value pair was present</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.TryGetValue(System.String,`0@)">
<summary>
Try to get a value
</summary>
<param name="key">Key to look up</param>
<param name="value">Retrieved value</param>
<returns>Whether the key could be found</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionary`1.UpdateFromJson(System.Text.Json.JsonElement,System.Boolean)">
<summary>
Update this instance from a given JSON element
</summary>
<param name="jsonElement">Element to update this intance from</param>
<param name="ignoreSbcProperties">Whether SBC properties are ignored</param>
<returns>Updated instance</returns>
<exception cref="T:System.Text.Json.JsonException">Failed to deserialize data</exception>
<remarks>Accepts null as the JSON value to clear existing items</remarks>
</member>
<member name="T:DuetAPI.ObjectModel.ModelDictionaryConverter">
<summary>
Converter factory class for <see cref="T:DuetAPI.ObjectModel.ModelDictionary`1"/> types
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionaryConverter.CanConvert(System.Type)">
<summary>
Checks if the given type can be converted from or to JSON
</summary>
<param name="typeToConvert"></param>
<returns></returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionaryConverter.CreateConverter(System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Creates a converter for the given type
</summary>
<param name="type">Target type</param>
<param name="options">Conversion options</param>
<returns>Converter instance</returns>
</member>
<member name="T:DuetAPI.ObjectModel.ModelDictionaryConverter.ModelDictionaryConverterInner`2">
<summary>
Method to create a converter for a specific <see cref="T:DuetAPI.ObjectModel.ModelDictionary`1"/> type
</summary>
<typeparam name="T">Dictionary type</typeparam>
<typeparam name="TValue">Value type</typeparam>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionaryConverter.ModelDictionaryConverterInner`2.CanConvert(System.Type)">
<summary>
Checks if the given type can be converted
</summary>
<param name="typeToConvert">Type to convert</param>
<returns>Whether the type can be converted</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionaryConverter.ModelDictionaryConverterInner`2.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Read from JSON
</summary>
<param name="reader">JSON reader</param>
<param name="typeToConvert">Type to convert</param>
<param name="options">Read options</param>
<returns>Read value</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelDictionaryConverter.ModelDictionaryConverterInner`2.Write(System.Text.Json.Utf8JsonWriter,`0,System.Text.Json.JsonSerializerOptions)">
<summary>
Write a CodeParameter to JSON
</summary>
<param name="writer">JSON writer</param>
<param name="value">Value to serialize</param>
<param name="options">Write options</param>
</member>
<member name="T:DuetAPI.ObjectModel.ModelGrowingCollection`1">
<summary>
Generic list container to which items can be added or which can be cleared only
</summary>
<typeparam name="T">Item type</typeparam>
</member>
<member name="M:DuetAPI.ObjectModel.ModelGrowingCollection`1.ClearItems">
<summary>
Removes all items from the collection
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.ModelGrowingCollection`1.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
<summary>
Raises the change event handler
</summary>
<param name="e">Event arguments</param>
</member>
<member name="M:DuetAPI.ObjectModel.ModelGrowingCollection`1.Assign(System.Object)">
<summary>
Assign the properties from another instance.
This is required to update model properties which do not have a setter
</summary>
<param name="from">Other instance</param>
</member>
<member name="M:DuetAPI.ObjectModel.ModelGrowingCollection`1.Clone">
<summary>
Create a clone of this list
</summary>
<returns>Cloned list</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelGrowingCollection`1.FindDifferences(DuetAPI.ObjectModel.IModelObject)">
<summary>
Create a dictionary or list of all the differences between this instance and another.
This method outputs own property values that differ from the other instance
</summary>
<param name="other">Other instance</param>
<returns>Object differences or null if both instances are equal</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelGrowingCollection`1.UpdateFromJson(System.Text.Json.JsonElement,System.Boolean)">
<summary>
Update this instance from a given JSON element
</summary>
<param name="jsonElement">Element to update this intance from</param>
<param name="ignoreSbcProperties">Whether SBC properties are ignored</param>
<returns>Updated instance</returns>
<exception cref="T:System.Text.Json.JsonException">Failed to deserialize data</exception>
<remarks>Accepts null as the JSON value to clear existing items</remarks>
</member>
<member name="M:DuetAPI.ObjectModel.ModelGrowingCollection`1.UpdateFromJson(System.Text.Json.JsonElement,System.Boolean,System.Int32,System.Boolean)">
<summary>
Update this collection from a given JSON array
</summary>
<param name="jsonElement">Element to update this intance from</param>
<param name="ignoreSbcProperties">Whether SBC properties are ignored</param>
<param name="offset">Index offset</param>
<param name="last">Whether this is the last update</param>
</member>
<member name="T:DuetAPI.ObjectModel.ModelObject">
<summary>
Base class for machine model properties
</summary>
</member>
<member name="E:DuetAPI.ObjectModel.ModelObject.PropertyChanging">
<summary>
Event that is triggered when a property is being changed
</summary>
</member>
<member name="E:DuetAPI.ObjectModel.ModelObject.PropertyChanged">
<summary>
Event that is triggered when a property has been changed
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.ModelObject.SetPropertyValue``1(``0@,``0,System.String)">
<summary>
Method to update a property value internally
</summary>
<param name="propertyStorage">Reference to the variable that holds the current value</param>
<param name="value">New property value</param>
<param name="propertyName">Name of the property</param>
</member>
<member name="F:DuetAPI.ObjectModel.ModelObject._propertyInfos">
<summary>
Cached dictionary of derived types vs JSON property names vs property descriptors
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.ModelObject.#cctor">
<summary>
Static constructor that caches the JSON properties of each derived type
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.ModelObject.RegisterJsonType(System.Type)">
<summary>
Function to add custom JSON types. This must be invoked from types with generic type arguments
</summary>
<param name="type">Type to register</param>
</member>
<member name="P:DuetAPI.ObjectModel.ModelObject.JsonProperties">
<summary>
Get the cached JSON properties of this type
</summary>
<returns>Properties of this type</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelObject.Assign(System.Object)">
<summary>
Assign the properties from another instance
</summary>
<param name="from">Other instance</param>
</member>
<member name="M:DuetAPI.ObjectModel.ModelObject.Clone">
<summary>
Create a clone of this instance
</summary>
<returns>Cloned object</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelObject.FindDifferences(DuetAPI.ObjectModel.IModelObject)">
<summary>
Create a dictionary or list of all the differences between this instance and another.
This method outputs own property values that differ from the other instance
</summary>
<param name="other">Other instance</param>
<returns>Object differences or null if both instances are equal</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelObject.MakeUtf8Patch(DuetAPI.ObjectModel.ModelObject)">
<summary>
Create a UTF8-encoded JSON patch to bring an old instance to this state
</summary>
<param name="old">Old object state</param>
<returns>JSON patch</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelObject.MakeStringPatch(DuetAPI.ObjectModel.ModelObject)">
<summary>
Create a string-encoded JSON patch to bring an old instance to this state
</summary>
<param name="old">Old object state</param>
<returns>JSON patch</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ModelObject.UpdateFromJson(System.Text.Json.JsonElement,System.Boolean)">
<summary>
Update this instance from a given JSON element
</summary>
<param name="jsonElement">Element to update this intance from</param>
<param name="ignoreSbcProperties">Whether SBC properties are ignored</param>
<returns>Updated instance</returns>
<exception cref="T:System.Text.Json.JsonException">Failed to deserialize data</exception>
</member>
<member name="T:DuetAPI.ObjectModel.SbcPropertyAttribute">
<summary>
Attribute used to mark properties that are overridden by the control server
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.SbcPropertyAttribute.AvailableInStandaloneMode">
<summary>
Indicates if the property may be used in standalone mode
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.SbcPropertyAttribute.#ctor(System.Boolean)">
<summary>
Constructor of this attribute
</summary>
<param name="availableInStandaloneMode">Defines if the property is available in standalone mode</param>
</member>
<member name="T:DuetAPI.ObjectModel.Accelerometer">
<summary>
This represents an accelerometer
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Accelerometer.Points">
<summary>
Number of collected data points in the last run or 0 if it failed
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Accelerometer.Runs">
<summary>
Number of completed sampling runs
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Board">
<summary>
Information about a connected board
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.Accelerometer">
<summary>
Accelerometer of this board or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.BootloaderFileName">
<summary>
Filename of the bootloader binary or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.CanAddress">
<summary>
CAN address of this board or null if not applicable
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.ClosedLoop">
<summary>
Closed loop data of this board or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.DirectDisplay">
<summary>
Details about a connected display or null if none is connected
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.FirmwareDate">
<summary>
Date of the firmware build
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.FirmwareFileName">
<summary>
Filename of the firmware binary
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.FirmwareName">
<summary>
Name of the firmware build
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.FirmwareVersion">
<summary>
Version of the firmware build
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.IapFileNameSBC">
<summary>
Filename of the IAP binary that is used for updates from the SBC or null if unsupported
</summary>
<remarks>
This is only available for the mainboard (first board item)
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.Board.IapFileNameSD">
<summary>
Filename of the IAP binary that is used for updates from the SD card or null if unsupported
</summary>
<remarks>
This is only available for the mainboard (first board item)
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.Board.MaxHeaters">
<summary>
Maximum number of heaters this board can control
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.MaxMotors">
<summary>
Maximum number of motors this board can drive
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.McuTemp">
<summary>
Minimum, maximum, and current temperatures of the MCU or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.Name">
<summary>
Full name of the board
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.ShortName">
<summary>
Short name of this board
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.State">
<summary>
State of this board
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.Supports12864">
<summary>
Indicates if this board supports external 12864 displays
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.SupportsDirectDisplay">
<summary>
Indicates if this board supports external displays
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.UniqueId">
<summary>
Unique identifier of the board or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.V12">
<summary>
Minimum, maximum, and current voltages on the 12V rail or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Board.VIn">
<summary>
Minimum, maximum, and current voltages on the input rail or null if unknown
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.BoardState">
<summary>
Enumeration of possible expansion board states
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.BoardState.Unknown">
<summary>
Unknown state
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.BoardState.Flashing">
<summary>
Flashing new firmware
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.BoardState.FlashFailed">
<summary>
Failed to flash new firmware
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.BoardState.Resetting">
<summary>
Board is being reset
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.BoardState.Running">
<summary>
Board is up and running
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.ClosedLoop">
<summary>
This represents information about closed-loop tuning
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ClosedLoop.Points">
<summary>
Number of collected data points in the last run or 0 if it failed
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ClosedLoop.Runs">
<summary>
Number of completed sampling runs
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.DirectDisplay">
<summary>
Class providing information about a connected display
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DirectDisplay.PulsesPerClick">
<summary>
Number of pulses per click of the rotary encoder
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DirectDisplay.SpiFreq">
<summary>
SPI frequency of the display (in Hz)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DirectDisplay.TypeName">
<summary>
Name of the attached display type
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Driver">
<summary>
Information about a driver
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Driver.Settings">
<summary>
Configured settings of the driver
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.DriverSettings">
<summary>
Information about driver settings
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DriverSettings.Forwards">
<summary>
Whether the drive goes forwards
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DriverSettings.StallDetect">
<summary>
Stall detection settings
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.MinMaxCurrent`1">
<summary>
Provides minimum, maximum and current values
</summary>
<typeparam name="T">ValueType of each property</typeparam>
</member>
<member name="M:DuetAPI.ObjectModel.MinMaxCurrent`1.#cctor">
<summary>
Static constructor, required for derived ModelObject types with generic arguments
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MinMaxCurrent`1.Current">
<summary>
Current value
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MinMaxCurrent`1.Min">
<summary>
Minimum value
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MinMaxCurrent`1.Max">
<summary>
Maximum value
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.StallDetectSettings">
<summary>
Information about stall detection
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.StallDetectSettings.Threshold">
<summary>
Stall detection threshold
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.StallDetectSettings.Filtered">
<summary>
Whether the input values are filtered
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.StallDetectSettings.MinSteps">
<summary>
Minimum steps
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.StallDetectSettings.Coolstep">
<summary>
Coolstep register value
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.StallDetectSettings.Action">
<summary>
Action to perform when a stall is detected
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Directories">
<summary>
Information about the configured directories
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Directories.Filaments">
<summary>
Path to the filaments directory
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Directories.Firmware">
<summary>
Path to the firmware directory
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Directories.GCodes">
<summary>
Path to the G-Codes directory
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Directories.Macros">
<summary>
Path to the macros directory
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Directories.Menu">
<summary>
Path to the menu directory
</summary>
<remarks>
Intended for 12864 displays but currently unused in DSF. It is only needed for the Duet Maestro + DWC
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.Directories.Scans">
<summary>
Path to the scans directory
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Directories.System">
<summary>
Path to the system directory
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Directories.Web">
<summary>
Path to the web directory
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Fan">
<summary>
Class representing information about an attached fan
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Fan.ActualValue">
<summary>
Value of this fan (0..1 or -1 if unknown)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Fan.Blip">
<summary>
Blip value indicating how long the fan is supposed to run at 100% when turning it on to get it started (in s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Fan.Frequency">
<summary>
Configured frequency of this fan (in Hz)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Fan.Max">
<summary>
Maximum value of this fan (0..1)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Fan.Min">
<summary>
Minimum value of this fan (0..1)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Fan.Name">
<summary>
Name of the fan
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Fan.RequestedValue">
<summary>
Requested value for this fan on a scale between 0 to 1
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Fan.Rpm">
<summary>
Current RPM of this fan or -1 if unknown/unset
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Fan.Thermostatic">
<summary>
Thermostatic control parameters
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.FanThermostaticControl">
<summary>
Thermostatic parameters of a fan
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.FanThermostaticControl.Heaters">
<summary>
List of the heaters to monitor (indices)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.FanThermostaticControl.HighTemperature">
<summary>
Upper temperature range required to turn on the fan (in C)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.FanThermostaticControl.LowTemperature">
<summary>
Lower temperature range required to turn on the fan (in C)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Heat">
<summary>
Information about the heat subsystem
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Heat.BedHeaters">
<summary>
List of configured bed heaters (indices)
</summary>
<seealso cref="T:DuetAPI.ObjectModel.Heater"/>
<remarks>
Items may be -1 if unconfigured
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.Heat.ChamberHeaters">
<summary>
List of configured chamber heaters (indices)
</summary>
<seealso cref="T:DuetAPI.ObjectModel.Heater"/>
<remarks>
Items may be -1 if unconfigured
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.Heat.ColdExtrudeTemperature">
<summary>
Minimum required temperature for extrusion moves (in C)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Heat.ColdRetractTemperature">
<summary>
Minimum required temperature for retraction moves (in C)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Heat.Heaters">
<summary>
List of configured heaters
</summary>
<seealso cref="T:DuetAPI.ObjectModel.Heater"/>
</member>
<member name="T:DuetAPI.ObjectModel.Heater">
<summary>
Information about a heater
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Heater.Active">
<summary>
Active temperature of the heater (in C)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Heater.AvgPwm">
<summary>
Average heater PWM value (0..1)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Heater.Current">
<summary>
Current temperature of the heater (in C)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Heater.Max">
<summary>
Maximum temperature allowed for this heater (in C)
</summary>
<remarks>
This is only temporary and should be replaced by a representation of the heater protection as in RRF
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.Heater.Min">
<summary>
Minimum temperature allowed for this heater (in C)
</summary>
<remarks>
This is only temporary and should be replaced by a representation of the heater protection as in RRF
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.Heater.Model">
<summary>
Information about the heater model
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Heater.Monitors">
<summary>
Monitors of this heater
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Heater.Sensor">
<summary>
Sensor number of this heater or -1 if not configured
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Heater.Standby">
<summary>
Standby temperature of the heater (in C)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Heater.State">
<summary>
State of the heater
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.HeaterModel">
<summary>
Information about the way the heater heats up
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModel.CoolingExp">
<summary>
Cooling rate exponent
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModel.CoolingRate">
<summary>
Cooling rate (in K/s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModel.DeadTime">
<summary>
Dead time (in s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModel.Enabled">
<summary>
Indicates if this heater is enabled
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModel.FanCoolingRate">
<summary>
Cooling rate with the fan on (in K/s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModel.HeatingRate">
<summary>
Heating rate (in K/s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModel.Inverted">
<summary>
Indicates if the heater PWM signal is inverted
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModel.MaxPwm">
<summary>
Maximum PWM value
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModel.PID">
<summary>
Details about the PID controller
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModel.StandardVoltage">
<summary>
Standard voltage or null if unknown
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.HeaterModelPID">
<summary>
Details about the PID model of a heater
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModelPID.D">
<summary>
Derivative value of the PID regulator
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModelPID.I">
<summary>
Integral value of the PID regulator
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModelPID.Overridden">
<summary>
Indicates if custom PID values are used
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModelPID.P">
<summary>
Proportional value of the PID regulator
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterModelPID.Used">
<summary>
Indicates if PID control is being used
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.HeaterMonitor">
<summary>
Information about a heater monitor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterMonitor.Action">
<summary>
Action to perform when the trigger condition is met
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterMonitor.Condition">
<summary>
Condition to meet to perform an action
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HeaterMonitor.Limit">
<summary>
Limit threshold for this heater monitor
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.HeaterMonitorAction">
<summary>
Action to take when a heater monitor is triggered
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HeaterMonitorAction.GenerateFault">
<summary>
Generate a heater fault
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HeaterMonitorAction.PermanentSwitchOff">
<summary>
Permanently switch off the heater
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HeaterMonitorAction.TemporarySwitchOff">
<summary>
Temporarily switch off the heater until the condition is no longer met
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HeaterMonitorAction.ShutDown">
<summary>
Shut down the printer
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.HeaterMonitorCondition">
<summary>
Trigger condition for a heater monitor
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HeaterMonitorCondition.Disabled">
<summary>
Heater monitor is disabled
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HeaterMonitorCondition.TooHigh">
<summary>
Limit temperature has been exceeded
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HeaterMonitorCondition.TooLow">
<summary>
Limit temperature is too low
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.HeaterState">
<summary>
State of a heater
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HeaterState.Off">
<summary>
Heater is turned off
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HeaterState.Standby">
<summary>
Heater is in standby mode
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HeaterState.Active">
<summary>
Heater is active
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HeaterState.Fault">
<summary>
Heater faulted
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HeaterState.Tuning">
<summary>
Heater is being tuned
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HeaterState.Offline">
<summary>
Heater is offline
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.HttpEndpoint">
<summary>
Class representing an extra HTTP endpoint
</summary>
<seealso cref="T:DuetAPI.Commands.AddHttpEndpoint"/>
<seealso cref="T:DuetAPI.Commands.RemoveHttpEndpoint"/>
</member>
<member name="F:DuetAPI.ObjectModel.HttpEndpoint.RepRapFirmwareNamespace">
<summary>
Namespace prefix used for RepRapFirmware HTTP requests
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HttpEndpoint.EndpointType">
<summary>
HTTP type of this endpoint
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HttpEndpoint.Namespace">
<summary>
Namespace of the endpoint
</summary>
<remarks>
May be <see cref="F:DuetAPI.ObjectModel.HttpEndpoint.RepRapFirmwareNamespace"/> to register root-level rr_ requests (to emulate RRF poll requests)
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.HttpEndpoint.Path">
<summary>
Path to the endpoint
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HttpEndpoint.IsUploadRequest">
<summary>
Whether this is a upload request
</summary>
<remarks>
If set to true, the whole body payload is written to a temporary file and the file path is passed via the <see cref="P:DuetAPI.Commands.ReceivedHttpRequest.Body"/> property
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.HttpEndpoint.UnixSocket">
<summary>
Path to the UNIX socket
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.HttpEndpointType">
<summary>
Enumeration of supported HTTP request types
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HttpEndpointType.GET">
<summary>
HTTP GET request
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HttpEndpointType.POST">
<summary>
HTTP POST request
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HttpEndpointType.PUT">
<summary>
HTTP PUT request
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HttpEndpointType.PATCH">
<summary>
HTTP PATCH request
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HttpEndpointType.TRACE">
<summary>
HTTP TRACE request
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HttpEndpointType.DELETE">
<summary>
HTTP DELETE request
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HttpEndpointType.OPTIONS">
<summary>
HTTP OPTIONS request
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.HttpEndpointType.WebSocket">
<summary>
WebSocket request. This has not been implemented yet but it is reserved for future usage
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Compatibility">
<summary>
Compatibility level for emulation
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.Compatibility.Default">
<summary>
No emulation (same as RepRapFirmware)
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.Compatibility.RepRapFirmware">
<summary>
Emulating RepRapFirmware
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.Compatibility.Marlin">
<summary>
Emulating Marlin
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.Compatibility.Teacup">
<summary>
Emulating Teacup
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.Compatibility.Sprinter">
<summary>
Emulating Sprinter
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.Compatibility.Repetier">
<summary>
Emulating Repetier
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.Compatibility.NanoDLP">
<summary>
Special emulation for NanoDLP
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.DistanceUnit">
<summary>
Distance unit used for positioning
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.DistanceUnit.MM">
<summary>
Millimeters
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.DistanceUnit.Inch">
<summary>
Inches
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.InputChannel">
<summary>
Information about a G/M/T-code channel
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputChannel.AxesRelative">
<summary>
Whether relative positioning is being used
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputChannel.Compatibility">
<summary>
Emulation used on this channel
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputChannel.DistanceUnit">
<summary>
Whether inches are being used instead of mm
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputChannel.DrivesRelative">
<summary>
Whether relative extrusion is being used
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputChannel.FeedRate">
<summary>
Current feedrate in mm/s
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputChannel.InMacro">
<summary>
Whether a macro file is being processed
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputChannel.MacroRestartable">
<summary>
Indicates if the current macro file can be restarted after a pause
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputChannel.Name">
<summary>
Name of this channel
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputChannel.StackDepth">
<summary>
Depth of the stack
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputChannel.State">
<summary>
State of this input channel
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputChannel.LineNumber">
<summary>
Number of the current line
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputChannel.Volumetric">
<summary>
Whether volumetric extrusion is being used
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.InputChannelState">
<summary>
State of a channel
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.InputChannelState.AwaitingAcknowledgement">
<summary>
Awaiting message acknowledgement
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.InputChannelState.Idle">
<summary>
Channel is idle
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.InputChannelState.Executing">
<summary>
Channel is executing a G/M/T-code
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.InputChannelState.Waiting">
<summary>
Channel is waiting for more data
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.InputChannelState.Reading">
<summary>
Channel is reading a G/M/T-code
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Inputs">
<summary>
List holding information about the available G/M/T-code channels
</summary>
<seealso cref="T:DuetAPI.ObjectModel.InputChannel"/>
<remarks>
During runtime some elements may be replaced with null if they are not available
</remarks>
</member>
<member name="F:DuetAPI.ObjectModel.Inputs.Total">
<summary>
Total number of supported input channels
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.Inputs.#ctor">
<summary>
Constructor of this class
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Inputs.HTTP">
<summary>
G/M/T-code channel for HTTP requests
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Inputs.Telnet">
<summary>
G/M/T-code channel for Telnet requests
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Inputs.File">
<summary>
G/M/T-code channel for file prints
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Inputs.USB">
<summary>
G/M/T-code channel for USB
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Inputs.Aux">
<summary>
G/M/T-code channel for AUX (UART/PanelDue)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Inputs.Trigger">
<summary>
G/M/T-code channel for running triggers or config.g
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Inputs.Queue">
<summary>
G/M/T-code channel for the code queue
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Inputs.LCD">
<summary>
G/M/T-code channel for AUX (UART/PanelDue)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Inputs.SBC">
<summary>
Default G/M/T-code channel for generic codes
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Inputs.Daemon">
<summary>
Code channel that executes the daemon process
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Inputs.Autopause">
<summary>
G/M/T-code chanel for auto pause events
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Inputs.Item(DuetAPI.CodeChannel)">
<summary>
Index operator for easy access via an <see cref="T:DuetAPI.CodeChannel"/> value
</summary>
<param name="channel">Channel to retrieve information about</param>
<returns>Information about the code channel</returns>
</member>
<member name="T:DuetAPI.ObjectModel.Build">
<summary>
Information about the current build
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Build.CurrentObject">
<summary>
Index of the current object being printed or -1 if unknown
</summary>
<remarks>
This value may now be greater than the length of the job.build.objects array.
This is because the size of job.build.objects is limited to conserve memory (to 20 on Duet 2 or 40 on Duet 3),
whereas when M486 labelling is used, many more objects can be numbered and the first 64 can be cancelled individually
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.Build.M486Names">
<summary>
Whether M486 names are being used
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Build.M486Numbers">
<summary>
Whether M486 numbers are being used
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Build.Objects">
<summary>
List of detected build objects
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.BuildObject">
<summary>
Information about a detected build object
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.BuildObject.Cancelled">
<summary>
Indicates if this build object is cancelled
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.BuildObject.Name">
<summary>
Name of the build object (if any)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.BuildObject.X">
<summary>
X coordinates of the build object (in mm or null if not found)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.BuildObject.Y">
<summary>
Y coordinates of the build object (in mm or null if not found)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.GCodeFileInfo">
<summary>
Holds information about a G-code file
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.GCodeFileInfo.Filament">
<summary>
Filament consumption per extruder drive (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.GCodeFileInfo.FileName">
<summary>
The filename of the G-code file
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.GCodeFileInfo.GeneratedBy">
<summary>
Name of the application that generated this file
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.GCodeFileInfo.Height">
<summary>
Build height of the G-code job or 0 if not found (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.GCodeFileInfo.LastModified">
<summary>
Value indicating when the file was last modified or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.GCodeFileInfo.LayerHeight">
<summary>
Height of each other layer or 0 if not found (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.GCodeFileInfo.NumLayers">
<summary>
Number of total layers or 0 if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.GCodeFileInfo.PrintTime">
<summary>
Estimated print time (in s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.GCodeFileInfo.SimulatedTime">
<summary>
Estimated print time from G-code simulation (in s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.GCodeFileInfo.Size">
<summary>
Size of the file
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.GCodeFileInfo.Thumbnails">
<summary>
Collection of thumbnails parsed from Gcode
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.GCodeFileInfoConverter">
<summary>
Class used to convert G-code file info to and from JSON
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.GCodeFileInfoConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Read a parsed file info object from a JSON reader
</summary>
<param name="reader">JSON reader</param>
<param name="typeToConvert">Target type</param>
<param name="options">JSON options</param>
<returns>Parsed file info object</returns>
</member>
<member name="M:DuetAPI.ObjectModel.GCodeFileInfoConverter.Write(System.Text.Json.Utf8JsonWriter,DuetAPI.ObjectModel.GCodeFileInfo,System.Text.Json.JsonSerializerOptions)">
<summary>
Write a parsed file info object to a JSON writer
</summary>
<param name="writer">JSON writer</param>
<param name="value">Machine model</param>
<param name="options">JSON options</param>
</member>
<member name="T:DuetAPI.ObjectModel.Job">
<summary>
Information about the current job
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.Build">
<summary>
Information about the current build or null if not available
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.Duration">
<summary>
Total active duration of the current job file (in s or null)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.File">
<summary>
Information about the file being processed
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.FilePosition">
<summary>
Current position in the file being processed (in bytes or null)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.FirstLayerDuration">
<summary>
Duration of the first layer (in s or null)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.LastDuration">
<summary>
Total duration of the last job (in s or null)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.LastFileName">
<summary>
Name of the last file processed or null if none
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.LastFileAborted">
<summary>
Indicates if the last file was aborted (unexpected cancellation)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.LastFileCancelled">
<summary>
Indicates if the last file was cancelled (user cancelled)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.LastFileSimulated">
<summary>
Indicates if the last file processed was simulated
</summary>
<remarks>This is not set if the file was aborted or cancelled</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.Job.Layer">
<summary>
Number of the current layer or null not available
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.Layers">
<summary>
Information about the past layers
</summary>
<remarks>
In previous API versions this was a <see cref="T:DuetAPI.ObjectModel.ModelGrowingCollection`1"/> but it has been changed to <see cref="T:DuetAPI.ObjectModel.ModelCollection`1"/> to
allow past layers to be modified again when needed. Note that previous plugins subscribing to this property will not receive any more
updates about this property to avoid memory leaks
</remarks>
<seealso cref="P:DuetAPI.ObjectModel.Job.Layer"/>
</member>
<member name="P:DuetAPI.ObjectModel.Job.LayerTime">
<summary>
Time elapsed since the last layer change (in s or null)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.PauseDuration">
<summary>
Total pause time since the job started
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.RawExtrusion">
<summary>
Total extrusion amount without extrusion factors applied (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.TimesLeft">
<summary>
Estimated times left
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Job.WarmUpDuration">
<summary>
Time needed to heat up the heaters (in s or null)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Layer">
<summary>
Information about a layer from a file being printed
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Layer.Duration">
<summary>
Duration of the layer (in s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Layer.Filament">
<summary>
Actual amount of filament extruded during this layer (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Layer.FractionPrinted">
<summary>
Fraction of the file printed during this layer (0..1)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Layer.Height">
<summary>
Height of the layer (in mm or 0 if unknown)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Layer.Temperatures">
<summary>
Last heater temperatures (in C or null if unknown)
</summary>
<seealso cref="P:DuetAPI.ObjectModel.AnalogSensor.LastReading"/>
</member>
<member name="T:DuetAPI.ObjectModel.ThumbnailInfo">
<summary>
Information about a thumbnail from a G-code file
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ThumbnailInfo.Data">
<summary>
Base64-encoded thumbnail or null if invalid or not requested
</summary>
<remarks>
This property is not provided by RepRapFirmware fileinfo results and it may be null if no thumbnail content is requested
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.ThumbnailInfo.Format">
<summary>
Format of this thumbnail
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ThumbnailInfo.Height">
<summary>
Height of this thumbnail
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ThumbnailInfo.Offset">
<summary>
File offset of this thumbnail
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ThumbnailInfo.Size">
<summary>
Size of this thumbnail
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ThumbnailInfo.Width">
<summary>
Width of this thumbnail
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.ThumbnailInfoFormat">
<summary>
Image formats for parsed thumbnails
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ThumbnailInfoFormat.JPEG">
<summary>
Joint Photographic Experts Group
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ThumbnailInfoFormat.PNG">
<summary>
Portable Network Graphics
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ThumbnailInfoFormat.QOI">
<summary>
Quite OK Image
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.TimesLeft">
<summary>
Estimations about the times left
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.TimesLeft.Filament">
<summary>
Time left based on filament consumption (in s or null)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.TimesLeft.File">
<summary>
Time left based on file progress (in s or null)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.TimesLeft.Layer">
<summary>
Time left based on the layer progress (in s or null)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.TimesLeft.Slicer">
<summary>
Time left based on the slicer reports (see M73, in s or null)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Limits">
<summary>
Machine configuration limits
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.Axes">
<summary>
Maximum number of axes or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.AxesPlusExtruders">
<summary>
Maximum number of axes + extruders or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.BedHeaters">
<summary>
Maximum number of bed heaters or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.Boards">
<summary>
Maximum number of boards or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.ChamberHeaters">
<summary>
Maximum number of chamber heaters or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.Drivers">
<summary>
Maximum number of drivers or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.DriversPerAxis">
<summary>
Maximum number of drivers per axis or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.Extruders">
<summary>
Maximum number of extruders or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.ExtrudersPerTool">
<summary>
Maximum number of extruders per tool or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.Fans">
<summary>
Maximum number of fans or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.GpInPorts">
<summary>
Maximum number of general-purpose input ports or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.GpOutPorts">
<summary>
Maximum number of general-purpose output ports or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.Heaters">
<summary>
Maximum number of heaters or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.HeatersPerTool">
<summary>
Maximum number of heaters per tool or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.MonitorsPerHeater">
<summary>
Maximum number of monitors per heater or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.RestorePoints">
<summary>
Maximum number of restore points or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.Sensors">
<summary>
Maximum number of sensors or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.Spindles">
<summary>
Maximum number of spindles or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.Tools">
<summary>
Maximum number of tools or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.TrackedObjects">
<summary>
Maximum number of tracked objects or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.Triggers">
<summary>
Maximum number of triggers or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.Volumes">
<summary>
Maximum number of volumes or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.Workplaces">
<summary>
Maximum number of workplaces or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.ZProbeProgramBytes">
<summary>
Maximum number of Z-probe programming bytes or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Limits.ZProbes">
<summary>
Maximum number of Z-probes or null if unknown
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Message">
<summary>
Generic container for messages
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.Message.#ctor">
<summary>
Create a new message
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.Message.#ctor(DuetAPI.ObjectModel.MessageType,System.String)">
<summary>
Create a new message
</summary>
<param name="type">Message type</param>
<param name="content">Message content</param>
</member>
<member name="P:DuetAPI.ObjectModel.Message.Content">
<summary>
Content of this message
</summary>
<remarks>May be empty but not null</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.Message.Time">
<summary>
Time at which the message was generated
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Message.Type">
<summary>
Type of this message
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.Message.AppendLine(System.String)">
<summary>
Replace the content if empty or append a new line that is not empty
</summary>
<param name="line">Line content</param>
</member>
<member name="M:DuetAPI.ObjectModel.Message.Append(DuetAPI.ObjectModel.Message)">
<summary>
Append another message to this one, potentially overwriting the message type
</summary>
<param name="other">Message to append</param>
</member>
<member name="M:DuetAPI.ObjectModel.Message.Append(DuetAPI.ObjectModel.MessageType,System.String)">
<summary>
Append another message to this one, potentially overwriting the message type
</summary>
<param name="type">Message type</param>
<param name="content">Message content</param>
</member>
<member name="M:DuetAPI.ObjectModel.Message.ToString">
<summary>
Converts this message to a RepRapFirmware-style message
</summary>
<returns>RepRapFirmware-style message</returns>
</member>
<member name="T:DuetAPI.ObjectModel.MessageType">
<summary>
Type of a generic message
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MessageType.Success">
<summary>
This is a success message
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MessageType.Warning">
<summary>
This is a warning message
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MessageType.Error">
<summary>
This is an error message
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Axis">
<summary>
Information about a configured axis
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.Axis.Letters">
<summary>
List of supported axis letters
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.Acceleration">
<summary>
Acceleration of this axis (in mm/s^2)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.Babystep">
<summary>
Babystep amount (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.Current">
<summary>
Motor current (in mA)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.Drivers">
<summary>
List of the assigned drivers
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.Homed">
<summary>
Whether or not the axis is homed
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.Jerk">
<summary>
Motor jerk (in mm/min)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.Letter">
<summary>
Letter of this axis
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.MachinePosition">
<summary>
Current machine position (in mm) or null if unknown/unset
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.Max">
<summary>
Maximum travel of this axis (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.MaxProbed">
<summary>
Whether the axis maximum was probed
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.Microstepping">
<summary>
Microstepping configuration
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.Min">
<summary>
Minimum travel of this axis (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.MinProbed">
<summary>
Whether the axis minimum was probed
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.PercentCurrent">
<summary>
Percentage applied to the motor current (0..100)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.PercentStstCurrent">
<summary>
Percentage applied to the motor current during standstill (0..100 or null if not supported)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.Speed">
<summary>
Maximum speed (in mm/min)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.StepsPerMm">
<summary>
Number of microsteps per mm
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.UserPosition">
<summary>
Current user position (in mm) or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.Visible">
<summary>
Whether or not the axis is visible
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Axis.WorkplaceOffsets">
<summary>
Offsets of this axis for each workplace (in mm)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.CurrentMove">
<summary>
Information about the current move
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.CurrentMove.Acceleration">
<summary>
Acceleration of the current move (in mm/s^2)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.CurrentMove.Deceleration">
<summary>
Deceleration of the current move (in mm/s^2)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.CurrentMove.LaserPwm">
<summary>
Laser PWM of the current move (0..1) or null if not applicable
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.CurrentMove.RequestedSpeed">
<summary>
Requested speed of the current move (in mm/s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.CurrentMove.TopSpeed">
<summary>
Top speed of the current move (in mm/s)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Extruder">
<summary>
Information about an extruder drive
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.Acceleration">
<summary>
Acceleration of this extruder (in mm/s^2)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.Current">
<summary>
Motor current (in mA)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.Driver">
<summary>
Assigned driver
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.Filament">
<summary>
Name of the currently loaded filament
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.Factor">
<summary>
Extrusion factor to use (0..1 or greater)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.Jerk">
<summary>
Motor jerk (in mm/s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.Microstepping">
<summary>
Microstepping configuration
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.Nonlinear">
<summary>
Nonlinear extrusion parameters (see M592)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.PercentCurrent">
<summary>
Percentage applied to the motor current (0..100)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.PercentStstCurrent">
<summary>
Percentage applied to the motor current during standstill (0..100 or null if not supported)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.Position">
<summary>
Extruder position (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.PressureAdvance">
<summary>
Pressure advance
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.RawPosition">
<summary>
Raw extruder position as commanded by the slicer without extrusion factor applied (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.Speed">
<summary>
Maximum speed (in mm/s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Extruder.StepsPerMm">
<summary>
Number of microsteps per mm
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.ExtruderNonlinear">
<summary>
Nonlinear extrusion parameters (see M592)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ExtruderNonlinear.A">
<summary>
A coefficient in the extrusion formula
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ExtruderNonlinear.B">
<summary>
B coefficient in the extrusion formula
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ExtruderNonlinear.UpperLimit">
<summary>
Upper limit of the nonlinear extrusion compensation
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.InputShaping">
<summary>
Parameters describing input shaping
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputShaping.Amplitudes">
<summary>
Amplitudes of the input shaper
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputShaping.Damping">
<summary>
Damping factor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputShaping.Durations">
<summary>
Input shaper durations (in s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputShaping.Frequency">
<summary>
Frequency (in Hz)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputShaping.MinAcceleration">
<summary>
Minimum acceleration (in mm/s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.InputShaping.Type">
<summary>
Configured input shaping type
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.InputShapingType">
<summary>
Enumeration of possible input shaping methods
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.InputShapingType.None">
<summary>
None
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.InputShapingType.MZV">
<summary>
MZV
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.InputShapingType.ZVD">
<summary>
ZVD
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.InputShapingType.ZVDD">
<summary>
ZVDD
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.InputShapingType.ZVDDD">
<summary>
ZVDDD
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.InputShapingType.EI2">
<summary>
EI2 (2-hump)
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.InputShapingType.EI3">
<summary>
EI3 (3-hump)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.CoreKinematics">
<summary>
Information about core kinematics
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.CoreKinematics.#ctor">
<summary>
Constructor of this class
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.CoreKinematics.ForwardMatrix">
<summary>
Forward matrix
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.CoreKinematics.InverseMatrix">
<summary>
Inverse matrix
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.DeltaKinematics">
<summary>
Delta kinematics
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DeltaKinematics.DeltaRadius">
<summary>
Delta radius (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DeltaKinematics.HomedHeight">
<summary>
Homed height of a delta printer in mm
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DeltaKinematics.PrintRadius">
<summary>
Print radius for Hangprinter and Delta geometries (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DeltaKinematics.Towers">
<summary>
Delta tower properties
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DeltaKinematics.XTilt">
<summary>
How much Z needs to be raised for each unit of movement in the +X direction
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DeltaKinematics.YTilt">
<summary>
How much Z needs to be raised for each unit of movement in the +Y direction
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.DeltaTower">
<summary>
Delta tower properties
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DeltaTower.AngleCorrection">
<summary>
Tower position corrections (in degrees)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DeltaTower.Diagonal">
<summary>
Diagonal rod length (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DeltaTower.EndstopAdjustment">
<summary>
Deviation of the ideal endstop position (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DeltaTower.XPos">
<summary>
X coordinate of this tower (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.DeltaTower.YPos">
<summary>
Y coordinate of this tower (in mm)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.HangprinterKinematics">
<summary>
Information about hangprinter kinematics
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HangprinterKinematics.Anchors">
<summary>
Anchor configurations for A, B, C, Dz
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.HangprinterKinematics.PrintRadius">
<summary>
Print radius (in mm)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Kinematics">
<summary>
Information about the configured geometry
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Kinematics.Name">
<summary>
Currently configured geometry type
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Kinematics.Segmentation">
<summary>
Segmentation parameters or null if not configured
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.Kinematics.GetKinematicsType(DuetAPI.ObjectModel.KinematicsName)">
<summary>
Figure out the required type for the given kinematics name
</summary>
<param name="name">Kinematics name</param>
<returns>Required type</returns>
</member>
<member name="M:DuetAPI.ObjectModel.Kinematics.UpdateFromJson(System.Text.Json.JsonElement,System.Boolean)">
<summary>
Update this instance from a given JSON element
</summary>
<param name="jsonElement">Element to update this intance from</param>
<param name="ignoreSbcProperties">Whether SBC properties are ignored</param>
<returns>Updated instance</returns>
<exception cref="T:System.Text.Json.JsonException">Failed to deserialize data</exception>
</member>
<member name="T:DuetAPI.ObjectModel.KinematicsName">
<summary>
Enumeration of supported kinematics
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.KinematicsName.Cartesian">
<summary>
Cartesian
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.KinematicsName.CoreXY">
<summary>
CoreXY
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.KinematicsName.CoreXYU">
<summary>
CoreXY with extra U axis
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.KinematicsName.CoreXYUV">
<summary>
CoreXY with extra UV axes
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.KinematicsName.CoreXZ">
<summary>
CoreXZ
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.KinematicsName.MarkForged">
<summary>
MarkForged
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.KinematicsName.FiveBarScara">
<summary>
Five-bar SCARA
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.KinematicsName.Hangprinter">
<summary>
Hangprinter
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.KinematicsName.Delta">
<summary>
Linear Delta
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.KinematicsName.Polar">
<summary>
Polar
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.KinematicsName.RotaryDelta">
<summary>
Rotary delta
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.KinematicsName.Scara">
<summary>
SCARA
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.KinematicsName.Unknown">
<summary>
Unknown
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.KinematicsNameConverter">
<summary>
Class to convert a <see cref="T:DuetAPI.ObjectModel.KinematicsName"/> to and from JSON
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.KinematicsNameConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Read a <see cref="T:DuetAPI.ObjectModel.KinematicsName"/> from JSON
</summary>
<param name="reader">JSON reader</param>
<param name="typeToConvert">Type to convert</param>
<param name="options">Serializer options</param>
<returns>Read value</returns>
</member>
<member name="M:DuetAPI.ObjectModel.KinematicsNameConverter.Write(System.Text.Json.Utf8JsonWriter,DuetAPI.ObjectModel.KinematicsName,System.Text.Json.JsonSerializerOptions)">
<summary>
Write a <see cref="T:DuetAPI.ObjectModel.KinematicsName"/> to JSON
</summary>
<param name="writer">JSON writer</param>
<param name="value">Value to serialize</param>
<param name="options">Write options</param>
</member>
<member name="T:DuetAPI.ObjectModel.PolarKinematics">
<summary>
Kinematics class for polar kinematics
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.ScaraKinematics">
<summary>
Kinematics class for SCARA kinematics
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.TiltCorrection">
<summary>
Tilt correction parameters for Z leadscrew compensation
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.TiltCorrection.CorrectionFactor">
<summary>
Correction factor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.TiltCorrection.LastCorrections">
<summary>
Last corrections (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.TiltCorrection.MaxCorrection">
<summary>
Maximum Z correction (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.TiltCorrection.ScrewPitch">
<summary>
Pitch of the Z leadscrews (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.TiltCorrection.ScrewX">
<summary>
X positions of the leadscrews (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.TiltCorrection.ScrewY">
<summary>
Y positions of the leadscrews (in mm)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.ZLeadscrewKinematics">
<summary>
Base kinematics class that provides the ability to level the bed using Z leadscrews
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ZLeadscrewKinematics.TiltCorrection">
<summary>
Parameters describing the tilt correction
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Microstepping">
<summary>
Microstepping configuration
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Microstepping.Interpolated">
<summary>
Indicates if the stepper driver uses interpolation
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Microstepping.Value">
<summary>
Microsteps per full step
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.MotorsIdleControl">
<summary>
Idle factor parameters for automatic motor current reduction
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MotorsIdleControl.Factor">
<summary>
Motor current reduction factor (0..1)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MotorsIdleControl.Timeout">
<summary>
Idle timeout after which the stepper motor currents are reduced (in s)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Move">
<summary>
Information about the move subsystem
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.Axes">
<summary>
List of the configured axes
</summary>
<seealso cref="T:DuetAPI.ObjectModel.Axis"/>
</member>
<member name="P:DuetAPI.ObjectModel.Move.Calibration">
<summary>
Information about the automatic calibration
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.Compensation">
<summary>
Information about the currently configured compensation options
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.CurrentMove">
<summary>
Information about the current move
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.Extruders">
<summary>
List of configured extruders
</summary>
<seealso cref="T:DuetAPI.ObjectModel.Extruder"/>
</member>
<member name="P:DuetAPI.ObjectModel.Move.Idle">
<summary>
Idle current reduction parameters
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.Kinematics">
<summary>
Configured kinematics options
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.LimitAxes">
<summary>
Limit axis positions by their minima and maxima
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.NoMovesBeforeHoming">
<summary>
Indicates if standard moves are forbidden if the corresponding axis is not homed
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.PrintingAcceleration">
<summary>
Maximum acceleration allowed while printing (in mm/s^2)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.Queue">
<summary>
List of move queue items (DDA rings)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.Rotation">
<summary>
Parameters for centre rotation
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.Shaping">
<summary>
Parameters for input shaping
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.SpeedFactor">
<summary>
Speed factor applied to every regular move (0.01..1 or greater)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.TravelAcceleration">
<summary>
Maximum acceleration allowed while travelling (in mm/s^2)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.VirtualEPos">
<summary>
Virtual total extruder position
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.WorkplaceNumber">
<summary>
Index of the currently selected workplace
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Move.WorkspaceNumber">
<summary>
Index of the currently selected workspace
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.MoveCalibration">
<summary>
Information about configured calibration options
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveCalibration.Final">
<summary>
Final calibration results (for Delta calibration)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveCalibration.Initial">
<summary>
Initial calibration results (for Delta calibration)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveCalibration.NumFactors">
<summary>
Number of factors used (for Delta calibration)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.MoveCompensation">
<summary>
Information about the configured compensation options
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveCompensation.FadeHeight">
<summary>
Effective height before the bed compensation is turned off (in mm) or null if not configured
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveCompensation.File">
<summary>
Full path to the currently used height map file or null if none is in use
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveCompensation.LiveGrid">
<summary>
Grid settings of the loaded heightmap or null if no heightmap is loaded
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveCompensation.MeshDeviation">
<summary>
Deviations of the mesh grid or null if not applicable
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveCompensation.ProbeGrid">
<summary>
Probe grid settings as defined by M557
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveCompensation.Skew">
<summary>
Information about the configured orthogonal axis parameters
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveCompensation.Type">
<summary>
Type of the compensation in use
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.MoveCompensationType">
<summary>
Supported compensation types
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MoveCompensationType.None">
<summary>
No compensation
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MoveCompensationType.Mesh">
<summary>
Mesh compensation
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.MoveDeviations">
<summary>
Calibration or mesh grid results
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveDeviations.Deviation">
<summary>
RMS deviation (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveDeviations.Mean">
<summary>
Mean deviation (in mm)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.MoveQueueItem">
<summary>
Information about a DDA ring
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveQueueItem.GracePeriod">
<summary>
The minimum idle time before we should start a move (in s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveQueueItem.Length">
<summary>
Maximum number of moves that can be accomodated in the DDA ring
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.MoveRotation">
<summary>
Information about centre rotation as defined by G68
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveRotation.Angle">
<summary>
Angle of the centre rotatation (in deg)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveRotation.Centre">
<summary>
XY coordinates of the centre rotation
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.MoveSegmentation">
<summary>
Move segmentation parameters
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveSegmentation.SegmentsPerSec">
<summary>
Number of segments per second
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MoveSegmentation.MinSegmentLength">
<summary>
Minimum length of a segment (in mm)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.ProbeGrid">
<summary>
Information about the configured probe grid (see M557)
</summary>
<seealso cref="T:DuetAPI.Utility.Heightmap"/>
</member>
<member name="P:DuetAPI.ObjectModel.ProbeGrid.Axes">
<summary>
Axis letters of this heightmap
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ProbeGrid.Maxs">
<summary>
End coordinates of the heightmap
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ProbeGrid.Mins">
<summary>
Start coordinates of the heightmap
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ProbeGrid.Radius">
<summary>
Probing radius for delta kinematics
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ProbeGrid.Spacings">
<summary>
Spacings between the coordinates
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ProbeGrid.XMin">
<summary>
X start coordinate of the heightmap
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ProbeGrid.XMax">
<summary>
X end coordinate of the heightmap
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ProbeGrid.XSpacing">
<summary>
Spacing between the probe points in X direction
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ProbeGrid.YMin">
<summary>
Y start coordinate of the heightmap
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ProbeGrid.YMax">
<summary>
Y end coordinate of the heightmap
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ProbeGrid.YSpacing">
<summary>
Spacing between the probe points in Y direction
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Skew">
<summary>
Class holding details about orthogonoal axis compensation parameters
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Skew.CompensateXY">
<summary>
Indicates if the TanXY value is used to compensate X when Y moves (else Y when X moves)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Skew.TanXY">
<summary>
Tangent of the skew angle for the XY or YX axes
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Skew.TanXZ">
<summary>
Tangent of the skew angle for the XZ axes
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Skew.TanYZ">
<summary>
Tangent of the skew angle for the YZ axes
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Network">
<summary>
Information about the network subsystem
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.Network.DefaultName">
<summary>
Default name of the machine
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.Network.DefaultHostname">
<summary>
Fallback hostname if the <c>Name</c> is invalid
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.Network.DefaultPassword">
<summary>
Default network password of the machine
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Network.CorsSite">
<summary>
If this is set, the web server will allow cross-origin requests via the Access-Control-Allow-Origin header
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Network.Hostname">
<summary>
Hostname of the machine
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Network.Interfaces">
<summary>
List of available network interfaces
</summary>
<seealso cref="T:DuetAPI.ObjectModel.NetworkInterface"/>
</member>
<member name="P:DuetAPI.ObjectModel.Network.Name">
<summary>
Name of the machine
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.NetworkInterface">
<summary>
Information about a network interface
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.NetworkInterface.ActiveProtocols">
<summary>
List of active protocols
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.NetworkInterface.ActualIP">
<summary>
Actual IPv4 address of the network adapter
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.NetworkInterface.ConfiguredIP">
<summary>
Configured IPv4 address of the network adapter
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.NetworkInterface.DnsServer">
<summary>
Configured IPv4 DNS server fo the network adapter
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.NetworkInterface.FirmwareVersion">
<summary>
Version of the network interface or null if unknown.
This is primarily intended for the ESP8266-based network interfaces as used on the Duet WiFi
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.NetworkInterface.Gateway">
<summary>
IPv4 gateway of the network adapter
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.NetworkInterface.Mac">
<summary>
Physical address of the network adapter
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.NetworkInterface.NumReconnects">
<summary>
Number of reconnect attempts or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.NetworkInterface.Signal">
<summary>
Signal of the WiFi adapter (only WiFi, in dBm, or null if unknown)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.NetworkInterface.Speed">
<summary>
Speed of the network interface (in MBit, null if unknown, 0 if not connected)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.NetworkInterface.Subnet">
<summary>
Subnet of the network adapter
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.NetworkInterface.Type">
<summary>
Type of this network interface
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.NetworkInterfaceType">
<summary>
Supported types of network interfaces
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.NetworkInterfaceType.LAN">
<summary>
Wired network interface
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.NetworkInterfaceType.WiFi">
<summary>
Wireless network interface
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.NetworkProtocol">
<summary>
Supported network protocols
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.NetworkProtocol.HTTP">
<summary>
HTTP protocol
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.NetworkProtocol.HTTPS">
<summary>
HTTPS protocol
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.NetworkProtocol.FTP">
<summary>
FTP protocol
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.NetworkProtocol.SFTP">
<summary>
SFTP protocol
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.NetworkProtocol.Telnet">
<summary>
Telnet protocol
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.NetworkProtocol.SSH">
<summary>
SSH protocol
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.ObjectModel">
<summary>
Representation of the full machine model as maintained by DCS
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Boards">
<summary>
List of connected boards
</summary>
<seealso cref="T:DuetAPI.ObjectModel.Board"/>
<remarks>
The first item represents the main board
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Directories">
<summary>
Information about the individual directories
</summary>
<remarks>
This may not be available in RepRapFirmware if no mass storages are available
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Fans">
<summary>
List of configured fans
</summary>
<seealso cref="T:DuetAPI.ObjectModel.Fan"/>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Global">
<summary>
Dictionary of global variables vs JSON values
</summary>
<remarks>
When DSF attempts to reconnect to RRF, this may be set to null to clear the contents
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Heat">
<summary>
Information about the heat subsystem
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.HttpEndpoints">
<summary>
List of registered third-party HTTP endpoints
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Inputs">
<summary>
Information about every available G/M/T-code channel
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Job">
<summary>
Information about the current job
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Limits">
<summary>
Machine configuration limits
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Messages">
<summary>
Generic messages that do not belong explicitly to codes being executed.
This includes status messages, generic errors and outputs generated by M118
</summary>
<seealso cref="T:DuetAPI.ObjectModel.Message"/>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Move">
<summary>
Information about the move subsystem
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Network">
<summary>
Information about connected network adapters
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Plugins">
<summary>
Dictionary of SBC plugins where each key is the plugin identifier
</summary>
<remarks>
Values in this dictionary cannot become null. If a change to null is reported, the corresponding key is deleted.
Do not rely on the setter of this property; it will be removed from a future version.
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Scanner">
<summary>
Information about the 3D scanner subsystem
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Sensors">
<summary>
Information about connected sensors including Z-probes and endstops
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Spindles">
<summary>
List of configured CNC spindles
</summary>
<seealso cref="T:DuetAPI.ObjectModel.Spindle"/>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.State">
<summary>
Information about the machine state
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Tools">
<summary>
List of configured tools
</summary>
<seealso cref="T:DuetAPI.ObjectModel.Tool"/>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.UserSessions">
<summary>
List of user sessions
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ObjectModel.Volumes">
<summary>
List of available mass storages
</summary>
<seealso cref="T:DuetAPI.ObjectModel.Volume"/>
</member>
<member name="M:DuetAPI.ObjectModel.ObjectModel.UpdateFromFirmwareJson(System.String,System.Text.Json.JsonElement,System.Int32,System.Boolean)">
<summary>
Update a specific key of this instance from a given JSON element as provided by the firmware
</summary>
<param name="key">Property name to update</param>
<param name="jsonElement">Element to update this intance from</param>
<param name="offset">Index offset</param>
<param name="last">Whether this is the last update</param>
<returns>Whether the key could be updated</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ObjectModel.UpdateFromJson(System.Text.Json.JsonElement)">
<summary>
Update this instance from a given JSON element
</summary>
<param name="jsonElement">Element to update this intance from</param>
<returns>Whether the key could be updated</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ObjectModel.UpdateFromJson(System.String,System.Text.Json.JsonElement)">
<summary>
Update a specific key of this instance from a given JSON element
</summary>
<param name="key">Property name to update</param>
<param name="jsonElement">Element to update this intance from</param>
<returns>Whether the key could be updated</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ObjectModel.InternalUpdateFromJson(System.String,System.Text.Json.JsonElement,System.Boolean,System.Int32,System.Boolean)">
<summary>
Update the whole or a specific key of this instance from a given JSON element
</summary>
<param name="key">Property name to update or null if the whole object model is supposed to be updated</param>
<param name="jsonElement">Element to update this intance from</param>
<param name="ignoreSbcProperties">Whether SBC properties are ignored</param>
<param name="offset">Index offset (collection keys only)</param>
<param name="last">Whether this is the last update (collection keys only)</param>
<returns>Whether the key could be updated</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ObjectModel.ToString">
<summary>
Convert this instance to a JSON text
</summary>
<returns>JSON object</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ObjectModel.ToUtf8Json">
<summary>
Serialize this instance to a UTF-8 string
</summary>
<returns></returns>
</member>
<member name="T:DuetAPI.ObjectModel.ObjectModelConverter">
<summary>
Class used to convert model objects to and from JSON
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.ObjectModelConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Read a machine model object from a JSON reader
</summary>
<param name="reader">JSON reader</param>
<param name="typeToConvert">Target type</param>
<param name="options">JSON options</param>
<returns>Machine model</returns>
</member>
<member name="M:DuetAPI.ObjectModel.ObjectModelConverter.Write(System.Text.Json.Utf8JsonWriter,DuetAPI.ObjectModel.ObjectModel,System.Text.Json.JsonSerializerOptions)">
<summary>
Write a machine model to a JSON writer
</summary>
<param name="writer">JSON writer</param>
<param name="value">Machine model</param>
<param name="options">JSON options</param>
</member>
<member name="T:DuetAPI.ObjectModel.Plugin">
<summary>
Class representing a loaded plugin
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Plugin.DsfFiles">
<summary>
List of files for the DSF plugin
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Plugin.DwcFiles">
<summary>
List of files for the DWC plugin
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Plugin.SdFiles">
<summary>
List of files to be installed to the (virtual) SD excluding web files
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Plugin.Pid">
<summary>
Process ID of the plugin or -1 if not started. It is set to 0 while the plugin is being shut down
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.PluginManifest">
<summary>
Information about a third-party plugin
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.Id">
<summary>
Identifier of this plugin. May consist of letters and digits only (max length 32 chars)
</summary>
<remarks>
For plugins with DWC components, this is the Webpack chunk name too
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.Name">
<summary>
Name of the plugin. May consist of letters, digits, dashes, and underscores only (max length 64 chars)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.Author">
<summary>
Author of the plugin
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.Version">
<summary>
Version of the plugin
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.License">
<summary>
License of the plugin. Should follow the SPDX format (see https://spdx.org/licenses/)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.Homepage">
<summary>
Link to the plugin homepage or source code repository
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.DwcVersion">
<summary>
Major/minor compatible DWC version
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.DwcDependencies">
<summary>
List of DWC plugins this plugin depends on. Circular dependencies are not supported
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.SbcRequired">
<summary>
Set to true if a SBC is absolutely required for this plugin
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.SbcDsfVersion">
<summary>
Required DSF version for the plugin running on the SBC (ignored if there is no SBC executable)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.SbcExecutable">
<summary>
Filename in the dsf directory used to start the plugin
</summary>
<remarks>
A plugin may provide different binaries in subdirectories per architecture.
Supported architectures are: arm, arm64, x86, x86_64
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.SbcExecutableArguments">
<summary>
Command-line arguments for the executable
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.SbcExtraExecutables">
<summary>
List of other filenames in the dsf directory that should be executable
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.SbcOutputRedirected">
<summary>
Defines if messages from stdout/stderr are output as generic messages
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.SbcPermissions">
<summary>
List of permissions required by the plugin executable running on the SBC
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.SbcPackageDependencies">
<summary>
List of packages this plugin depends on (apt packages in the case of DuetPi)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.SbcPythonDependencies">
<summary>
List of Python packages this plugin depends on
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.SbcPluginDependencies">
<summary>
List of SBC plugins this plugin depends on. Circular dependencies are not supported
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.RrfVersion">
<summary>
Major/minor supported RRF version (optional)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PluginManifest.Data">
<summary>
Custom plugin data to be populated in the object model (DSF/DWC in SBC mode - or - DWC in standalone mode).
Before <see cref="T:DuetAPI.Commands.SetPluginData"/> can be used, corresponding properties must be registered via this property first!
</summary>
<seealso cref="T:DuetAPI.Commands.SetPluginData"/>
</member>
<member name="M:DuetAPI.ObjectModel.PluginManifest.CheckVersion(System.String,System.String)">
<summary>
Check if the given version satisfies a required version
</summary>
<param name="actual">Actual version</param>
<param name="required">Required version</param>
<returns>Whether the actual version fulfills teh requirement</returns>
</member>
<member name="T:DuetAPI.ObjectModel.Scanner">
<summary>
Information about the 3D scanner subsystem
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Scanner.Progress">
<summary>
Progress of the current action (on a scale between 0 to 1)
</summary>
<remarks>
Previous status responses used a scale of 0..100
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.Scanner.Status">
<summary>
Status of the 3D scanner
</summary>
<seealso cref="T:DuetAPI.ObjectModel.ScannerStatus"/>
</member>
<member name="T:DuetAPI.ObjectModel.ScannerStatus">
<summary>
Possible states of the attached 3D scanner
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ScannerStatus.Disconnected">
<summary>
Scanner is disconnected (none present)
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ScannerStatus.Idle">
<summary>
Scanner is registered and idle
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ScannerStatus.Scanning">
<summary>
Scanner is scanning an object
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ScannerStatus.PostProcessing">
<summary>
Scanner is post-processing a file
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ScannerStatus.Calibrating">
<summary>
Scanner is calibrating
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ScannerStatus.Uploading">
<summary>
Scanner is uploading
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.AnalogSensor">
<summary>
Representation of an analog sensor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.AnalogSensor.LastReading">
<summary>
Last sensor reading (in C) or null if invalid
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.AnalogSensor.Name">
<summary>
Name of this sensor or null if not configured
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.AnalogSensor.Type">
<summary>
Type of this sensor
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.AnalogSensorType">
<summary>
Enumeration of supported analog sensor types
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.Thermistor">
<summary>
Regular temperature thermistor
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.PT1000">
<summary>
PT1000 sensor
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.MAX31865">
<summary>
RTD MAX31865
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.MAX31855">
<summary>
MAX31855 thermocouple
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.MAX31856">
<summary>
MAX31856 thermocouple
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.LinearAnalaog">
<summary>
Linear analog sensor
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.DHT11">
<summary>
DHT11 sensor
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.DHT21">
<summary>
DHT21 sensor
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.DHT22">
<summary>
DHT22 sensor
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.DHTHumidity">
<summary>
DHT humidity sensor
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.CurrentLoop">
<summary>
Current loop sensor
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.McuTemp">
<summary>
MCU temperature
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.Drivers">
<summary>
On-board stepper driver sensors
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.DriversDuex">
<summary>
Stepper driver sensors on the DueX expansion board
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AnalogSensorType.Unknown">
<summary>
Unknown temperature sensor
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.AnalogSensorTypeConverter">
<summary>
Class to convert an <see cref="T:DuetAPI.ObjectModel.AnalogSensorType"/> to and from JSON
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.AnalogSensorTypeConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Read an <see cref="T:DuetAPI.ObjectModel.AnalogSensorType"/> from JSON
</summary>
<param name="reader">JSON reader</param>
<param name="typeToConvert">Type to convert</param>
<param name="options">Serializer options</param>
<returns>Read value</returns>
</member>
<member name="M:DuetAPI.ObjectModel.AnalogSensorTypeConverter.Write(System.Text.Json.Utf8JsonWriter,DuetAPI.ObjectModel.AnalogSensorType,System.Text.Json.JsonSerializerOptions)">
<summary>
Write an <see cref="T:DuetAPI.ObjectModel.AnalogSensorType"/> to JSON
</summary>
<param name="writer">JSON writer</param>
<param name="value">Value to serialize</param>
<param name="options">Write options</param>
</member>
<member name="T:DuetAPI.ObjectModel.Endstop">
<summary>
Information about an endstop
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Endstop.HighEnd">
<summary>
Whether this endstop is at the high end of the axis
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Endstop.Triggered">
<summary>
Whether or not the endstop is hit
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Endstop.Type">
<summary>
Type of the endstop
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.EndstopType">
<summary>
Type of a configured endstop
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.EndstopType.InputPin">
<summary>
Generic input pin
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.EndstopType.ZProbeAsEndstop">
<summary>
Z-probe acts as an endstop
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.EndstopType.MotorStallAny">
<summary>
Motor stall detection stops all the drives when triggered
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.EndstopType.MotorStallIndividual">
<summary>
Motor stall detection stops individual drives when triggered
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.EndstopType.Unknown">
<summary>
Unknown type
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.FilamentMonitor">
<summary>
Information about a filament monitor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.FilamentMonitor.Enabled">
<summary>
Indicates if this filament monitor is enabled
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.FilamentMonitor.Status">
<summary>
Last reported status of this filament monitor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.FilamentMonitor.Type">
<summary>
Type of this filament monitor
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.FilamentMonitor.GetFilamentMonitorType(DuetAPI.ObjectModel.FilamentMonitorType)">
<summary>
Figure out the required type for the given filament monitor type
</summary>
<param name="type">Filament monitor type</param>
<returns>Required type</returns>
</member>
<member name="M:DuetAPI.ObjectModel.FilamentMonitor.UpdateFromJson(System.Text.Json.JsonElement,System.Boolean)">
<summary>
Update this instance from a given JSON element
</summary>
<param name="jsonElement">Element to update this intance from</param>
<param name="ignoreSbcProperties">Whether SBC properties are ignored</param>
<returns>Updated instance</returns>
<exception cref="T:System.Text.Json.JsonException">Failed to deserialize data</exception>
</member>
<member name="T:DuetAPI.ObjectModel.FilamentMonitorStatus">
<summary>
Possible filament sensor status
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.FilamentMonitorStatus.NoMonitor">
<summary>
No monitor is present
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.FilamentMonitorStatus.Ok">
<summary>
Filament working normally
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.FilamentMonitorStatus.NoDataReceived">
<summary>
No data received from the remote filament senosr
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.FilamentMonitorStatus.NoFilament">
<summary>
No filament present
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.FilamentMonitorStatus.TooLittleMovement">
<summary>
Sensor reads less movement than expected
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.FilamentMonitorStatus.TooMuchMovement">
<summary>
Sensor reads more movment than expected
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.FilamentMonitorStatus.SensorError">
<summary>
Sensor encountered an error
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.FilamentMonitorType">
<summary>
Enumeration of supported filament sensors
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.FilamentMonitorType.Simple">
<summary>
Simple filament sensor
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.FilamentMonitorType.Laser">
<summary>
Laser filament sensor
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.FilamentMonitorType.Pulsed">
<summary>
Pulsed filament sensor
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.FilamentMonitorType.RotatingMagnet">
<summary>
Rotating magnet filament sensor
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.FilamentMonitorType.Unknown">
<summary>
Unknown sensor type
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.LaserFilamentMonitorCalibrated">
<summary>
Calibrated properties of a laser filament monitor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.LaserFilamentMonitorCalibrated.CalibrationFactor">
<summary>
Calibration factor of this sensor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.LaserFilamentMonitorCalibrated.PercentMax">
<summary>
Maximum percentage (0..1 or greater)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.LaserFilamentMonitorCalibrated.PercentMin">
<summary>
Minimum percentage (0..1)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.LaserFilamentMonitorCalibrated.Sensivity">
<summary>
Calibrated sensivity
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.LaserFilamentMonitorCalibrated.TotalDistance">
<summary>
Total extruded distance (in mm)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.LaserFilamentMonitorConfigured">
<summary>
Configured properties of a laser filament monitor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.LaserFilamentMonitorConfigured.AllMoves">
<summary>
Whether all moves and not only printing moves are supposed to be checked
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.LaserFilamentMonitorConfigured.PercentMax">
<summary>
Maximum percentage (0..1 or greater)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.LaserFilamentMonitorConfigured.PercentMin">
<summary>
Minimum percentage (0..1)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.LaserFilamentMonitorConfigured.SampleDistance">
<summary>
Sample distance (in mm)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.LaserFilamentMonitor">
<summary>
Information about a laser filament monitor
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.LaserFilamentMonitor.#ctor">
<summary>
Constructor of this class
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.LaserFilamentMonitor.Calibrated">
<summary>
Calibrated properties of this filament monitor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.LaserFilamentMonitor.Configured">
<summary>
Configured properties of this filament monitor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.LaserFilamentMonitor.FilamentPresent">
<summary>
Indicates if a filament is present
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.PulsedFilamentMonitorCalibrated">
<summary>
Calibrated properties of a pulsed filament monitor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PulsedFilamentMonitorCalibrated.MmPerPulse">
<summary>
Extruded distance per pulse (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PulsedFilamentMonitorCalibrated.PercentMax">
<summary>
Maximum percentage (0..1 or greater)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PulsedFilamentMonitorCalibrated.PercentMin">
<summary>
Minimum percentage (0..1)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PulsedFilamentMonitorCalibrated.TotalDistance">
<summary>
Total extruded distance (in mm)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.PulsedFilamentMonitorConfigured">
<summary>
Configured properties of a pulsed filament monitor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PulsedFilamentMonitorConfigured.MmPerPulse">
<summary>
Extruded distance per pulse (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PulsedFilamentMonitorConfigured.PercentMax">
<summary>
Maximum percentage (0..1 or greater)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PulsedFilamentMonitorConfigured.PercentMin">
<summary>
Minimum percentage (0..1)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PulsedFilamentMonitorConfigured.SampleDistance">
<summary>
Sample distance (in mm)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.PulsedFilamentMonitor">
<summary>
Information about a pulsed filament monitor
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.PulsedFilamentMonitor.#ctor">
<summary>
Constructor of this class
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PulsedFilamentMonitor.Calibrated">
<summary>
Calibrated properties of this filament monitor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.PulsedFilamentMonitor.Configured">
<summary>
Configured properties of this filament monitor
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitorCalibrated">
<summary>
Calibrated properties of a rotating magnet filament monitor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitorCalibrated.MmPerRev">
<summary>
Extruded distance per revolution (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitorCalibrated.PercentMax">
<summary>
Maximum percentage (0..1 or greater)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitorCalibrated.PercentMin">
<summary>
Minimum percentage (0..1)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitorCalibrated.TotalDistance">
<summary>
Total extruded distance (in mm)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitorConfigured">
<summary>
Configured properties of a rotating magnet filament monitor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitorConfigured.AllMoves">
<summary>
Whether all moves and not only printing moves are supposed to be checked
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitorConfigured.MmPerRev">
<summary>
Extruded distance per revolution (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitorConfigured.PercentMax">
<summary>
Maximum percentage (0..1 or greater)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitorConfigured.PercentMin">
<summary>
Minimum percentage (0..1)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitorConfigured.SampleDistance">
<summary>
Sample distance (in mm)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitor">
<summary>
Information about a rotating magnet filament monitor
</summary>
</member>
<member name="M:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitor.#ctor">
<summary>
Constructor of this class
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitor.Calibrated">
<summary>
Calibrated properties of this filament monitor
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RotatingMagnetFilamentMonitor.Configured">
<summary>
Configured properties of this filament monitor
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.GpInputPort">
<summary>
Details about a general-purpose input port
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.GpInputPort.Value">
<summary>
Value of this port (0..1)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Probe">
<summary>
Information about a configured probe
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.CalibrationTemperature">
<summary>
Calibration temperature (in C)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.DeployedByUser">
<summary>
Indicates if the user has deployed the probe
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.DisablesHeaters">
<summary>
Whether probing disables the heater(s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.DiveHeight">
<summary>
Dive height (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.LastStopHeight">
<summary>
Height of the probe where it stopped last time (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.MaxProbeCount">
<summary>
Maximum number of times to probe after a bad reading was determined
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.Offsets">
<summary>
X+Y offsets (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.RecoveryTime">
<summary>
Recovery time (in s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.Speed">
<summary>
Probe speed (in mm/s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.Speeds">
<summary>
Fast and slow probing speeds (in mm/s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.TemperatureCoefficient">
<summary>
First temperature coefficient
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.TemperatureCoefficients">
<summary>
List of temperature coefficients
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.Threshold">
<summary>
Configured trigger threshold (0..1023)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.Tolerance">
<summary>
Allowed tolerance deviation between two measures (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.TravelSpeed">
<summary>
Travel speed when probing multiple points (in mm/s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.TriggerHeight">
<summary>
Z height at which the probe is triggered (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.Type">
<summary>
Type of the configured probe
</summary>
<seealso cref="T:DuetAPI.ObjectModel.ProbeType"/>
</member>
<member name="P:DuetAPI.ObjectModel.Probe.Value">
<summary>
Current analog values of the probe
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.ProbeType">
<summary>
Supported probe types
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ProbeType.None">
<summary>
No probe
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ProbeType.Analog">
<summary>
A simple unmodulated probe (like dc42's infrared probe)
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ProbeType.DumbModulated">
<summary>
A modulated probe (like the original one shipped with the RepRapPro Ormerod)
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ProbeType.AlternateAnalog">
<summary>
Alternate analog probe (like the ultrasonic probe)
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ProbeType.EndstopSwitch_Obsolete">
<summary>
Endstop switch (obsolete, should not be used any more)
</summary>
<seealso cref="F:DuetAPI.ObjectModel.ProbeType.Digital"/>
</member>
<member name="F:DuetAPI.ObjectModel.ProbeType.Digital">
<summary>
A switch that is triggered when the probe is activated (filtered)
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ProbeType.E1Switch_Obsolete">
<summary>
Endstop switch on the E1 endstop pin (obsolete, should not be used any more)
</summary>
<seealso cref="F:DuetAPI.ObjectModel.ProbeType.Digital"/>
</member>
<member name="F:DuetAPI.ObjectModel.ProbeType.ZSwitch_Obsolete">
<summary>
Endstop switch on Z endstop pin (obsolete, should not be used any more)
</summary>
<seealso cref="F:DuetAPI.ObjectModel.ProbeType.Digital"/>
</member>
<member name="F:DuetAPI.ObjectModel.ProbeType.UnfilteredDigital">
<summary>
A switch that is triggered when the probe is activated (unfiltered)
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ProbeType.BLTouch">
<summary>
A BLTouch probe
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ProbeType.ZMotorStall">
<summary>
Z motor stall detection
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Sensors">
<summary>
Information about sensors
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Sensors.Analog">
<summary>
List of analog sensors
</summary>
<seealso cref="T:DuetAPI.ObjectModel.AnalogSensor"/>
</member>
<member name="P:DuetAPI.ObjectModel.Sensors.Endstops">
<summary>
List of configured endstops
</summary>
<seealso cref="T:DuetAPI.ObjectModel.Endstop"/>
</member>
<member name="P:DuetAPI.ObjectModel.Sensors.FilamentMonitors">
<summary>
List of configured filament monitors
</summary>
<seealso cref="T:DuetAPI.ObjectModel.FilamentMonitor"/>
</member>
<member name="P:DuetAPI.ObjectModel.Sensors.GpIn">
<summary>
List of general-purpose input ports
</summary>
<seealso cref="T:DuetAPI.ObjectModel.GpInputPort"/>
</member>
<member name="P:DuetAPI.ObjectModel.Sensors.Probes">
<summary>
List of configured probes
</summary>
<seealso cref="T:DuetAPI.ObjectModel.Probe"/>
</member>
<member name="T:DuetAPI.ObjectModel.Spindle">
<summary>
Information about a CNC spindle
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Spindle.Active">
<summary>
Active RPM
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Spindle.CanReverse">
<summary>
Flags whether the spindle may spin in reverse direction
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Spindle.Current">
<summary>
Current RPM, negative if anticlockwise direction
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Spindle.Frequency">
<summary>
Frequency (in Hz)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Spindle.Min">
<summary>
Minimum RPM when turned on
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Spindle.Max">
<summary>
Maximum RPM
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Spindle.State">
<summary>
Current state
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.SpindleState">
<summary>
Possible state of a spindle
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.SpindleState.Unconfigured">
<summary>
Spinde not configured
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.SpindleState.Stopped">
<summary>
Spindle is stopped (inactive)
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.SpindleState.Forward">
<summary>
Spindle is going forwards
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.SpindleState.Reverse">
<summary>
Spindle is going in reverse
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.BeepRequest">
<summary>
Details about a requested beep
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.BeepRequest.Duration">
<summary>
Duration of the requested beep (in ms)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.BeepRequest.Frequency">
<summary>
Frequency of the requested beep (in Hz)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.GpOutputPort">
<summary>
Details about a general-purpose output port
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.GpOutputPort.Pwm">
<summary>
PWM value of this port (0..1)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.LogLevel">
<summary>
Class representing the configured log level
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.LogLevel.Debug">
<summary>
Log everything including debug messages
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.LogLevel.Info">
<summary>
Log information and warning messages
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.LogLevel.Warn">
<summary>
Log warning messages only
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.LogLevel.Off">
<summary>
Logging is disabled
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.MachineMode">
<summary>
Possible operation modes of the machine
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineMode.FFF">
<summary>
Fused Filament Fabrication (default)
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineMode.CNC">
<summary>
Computer Numerical Control
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineMode.Laser">
<summary>
Laser operation mode (e.g. laser cutters)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.MachineStatus">
<summary>
Possible states of the firmware
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineStatus.Disconnected">
<summary>
Not connected to the Duet
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineStatus.Starting">
<summary>
Processing config.g
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineStatus.Updating">
<summary>
The firmware is being updated
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineStatus.Off">
<summary>
The machine is turned off (i.e. the input voltage is too low for operation)
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineStatus.Halted">
<summary>
The machine has encountered an emergency stop and is ready to reset
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineStatus.Pausing">
<summary>
The machine is about to pause a file job
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineStatus.Paused">
<summary>
The machine has paused a file job
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineStatus.Resuming">
<summary>
The machine is about to resume a paused file job
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineStatus.Cancelling">
<summary>
Job file is being cancelled
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineStatus.Processing">
<summary>
The machine is processing a file job
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineStatus.Simulating">
<summary>
The machine is simulating a file job to determine its processing time
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineStatus.Busy">
<summary>
The machine is busy doing something (e.g. moving)
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineStatus.ChangingTool">
<summary>
The machine is changing the current tool
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MachineStatus.Idle">
<summary>
The machine is on but has nothing to do
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.MessageBox">
<summary>
Information about the message box to show
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MessageBox.AxisControls">
<summary>
Bitmap of the axis movement controls to show (indices)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MessageBox.Message">
<summary>
Content of the message box
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MessageBox.Mode">
<summary>
Mode of the message box to display
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MessageBox.Seq">
<summary>
Sequence number of the message box
</summary>
<remarks>
This is increased whenever a new message box is supposed to be displayed
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.MessageBox.Timeout">
<summary>
Total timeout for this message box (in ms)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.MessageBox.Title">
<summary>
Title of the message box
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.MessageBoxMode">
<summary>
Supported modes of displaying a message box
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MessageBoxMode.NoButtons">
<summary>
Display a message box without any buttons
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MessageBoxMode.CloseOnly">
<summary>
Display a message box with only a Close button
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MessageBoxMode.OkOnly">
<summary>
Display a message box with only an Ok button which is supposed to send M292 when pressed
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.MessageBoxMode.OkCancel">
<summary>
Display a message box with an Ok button that sends M292 P0 or a cancel button that sends M292 P1 when clicked
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.RestorePoint">
<summary>
Class holding information about a restore point
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RestorePoint.Coords">
<summary>
Axis coordinates of the restore point (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RestorePoint.ExtruderPos">
<summary>
The virtual extruder position at the start of this move
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RestorePoint.FanPwm">
<summary>
PWM value of the tool fan (0..1)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RestorePoint.FeedRate">
<summary>
Requested feedrate (in mm/s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RestorePoint.IoBits">
<summary>
The output port bits setting for this move or null if not applicable
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RestorePoint.LaserPwm">
<summary>
Laser PWM value (0..1) or null if not applicable
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RestorePoint.SpindleSpeeds">
<summary>
The spindle RPMs that were set, negative if anticlockwise direction
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.RestorePoint.ToolNumber">
<summary>
The tool number that was active
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.State">
<summary>
Information about the machine state
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.AtxPower">
<summary>
State of the ATX power pin (if controlled)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.AtxPowerPort">
<summary>
Port of the ATX power pin or null if not assigned
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.Beep">
<summary>
Information about a requested beep or null if none is requested
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.CurrentTool">
<summary>
Number of the currently selected tool or -1 if none is selected
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.DeferredPowerDown">
<summary>
When provided it normally has value 0 normally and 1 when a deferred power down is pending
</summary>
<remarks>
It is only available after power switching has been enabled by M80 or M81
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.State.DisplayMessage">
<summary>
Persistent message to display (see M117)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.DsfVersion">
<summary>
Version of the Duet Software Framework package
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.DsfPluginSupport">
<summary>
Indicates if DSF allows the installation and usage of third-party plugins
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.DsfRootPluginSupport">
<summary>
Indicates if DSF allows the installation and usage of third-party root plugins (potentially dangerous)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.GpOut">
<summary>
List of general-purpose output ports
</summary>
<seealso cref="T:DuetAPI.ObjectModel.GpOutputPort"/>
</member>
<member name="P:DuetAPI.ObjectModel.State.LaserPwm">
<summary>
Laser PWM of the next commanded move (0..1) or null if not applicable
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.LogFile">
<summary>
Log file being written to or null if logging is disabled
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.LogLevel">
<summary>
Current log level
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.MessageBox">
<summary>
Details about a requested message box or null if none is requested
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.MachineMode">
<summary>
Current mode of operation
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.MacroRestarted">
<summary>
Indicates if the current macro file was restarted after a pause
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.MsUpTime">
<summary>
Millisecond fraction of <see cref="P:DuetAPI.ObjectModel.State.UpTime"/>
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.NextTool">
<summary>
Number of the next tool to be selected
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.PluginsStarted">
<summary>
Indicates if at least one plugin has been started
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.PowerFailScript">
<summary>
Script to execute when the power fails
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.PreviousTool">
<summary>
Number of the previous tool
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.RestorePoints">
<summary>
List of restore points
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.Status">
<summary>
Current state of the machine
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.ThisInput">
<summary>
Index of the current G-code input channel (see <see cref="P:DuetAPI.ObjectModel.ObjectModel.Inputs"/>)
</summary>
<remarks>
This is primarily intended for macro files to determine on which G-code channel it is running.
The value of this property is always null in object model queries
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.State.Time">
<summary>
Internal date and time in RepRapFirmware or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.State.UpTime">
<summary>
How long the machine has been running (in s)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Tool">
<summary>
Information about a configured tool
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.Active">
<summary>
Active temperatures of the associated heaters (in C)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.Axes">
<summary>
Associated axes. At present only X and Y can be mapped per tool.
</summary>
<remarks>
The order is the same as the visual axes, so by default the layout is
[
[0], // X
[1] // Y
]
Make sure to set each item individually so the change events are called
</remarks>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.Extruders">
<summary>
Extruder drives of this tool
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.Fans">
<summary>
List of associated fans (indices)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.FeedForward">
<summary>
Feedforward coefficients to apply to the mapped heaters during extrusions
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.FilamentExtruder">
<summary>
Extruder drive index for resolving the tool filament (index or -1)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.Heaters">
<summary>
List of associated heaters (indices)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.IsRetracted">
<summary>
True if the filament has been firmware-retracted
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.Mix">
<summary>
Mix ratios of the associated extruder drives
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.Name">
<summary>
Name of this tool
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.Number">
<summary>
Number of this tool
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.Offsets">
<summary>
Axis offsets (in mm)
This list is in the same order as <see cref="P:DuetAPI.ObjectModel.Move.Axes"/>
</summary>
<seealso cref="T:DuetAPI.ObjectModel.Axis"/>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.OffsetsProbed">
<summary>
Bitmap of the probed axis offsets
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.Retraction">
<summary>
Firmware retraction parameters
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.Spindle">
<summary>
Index of the mapped spindle or -1 if not mapped
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.SpindleRpm">
<summary>
RPM of the mapped spindle
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.Standby">
<summary>
Standby temperatures of the associated heaters (in C)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Tool.State">
<summary>
Current state of this tool
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.ToolRetraction">
<summary>
Tool retraction parameters
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ToolRetraction.ExtraRestart">
<summary>
Amount of additional filament to extrude when undoing a retraction (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ToolRetraction.Length">
<summary>
Retraction length (in mm)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ToolRetraction.Speed">
<summary>
Retraction speed (in mm/s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ToolRetraction.UnretractSpeed">
<summary>
Unretract speed (in mm/s)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.ToolRetraction.ZHop">
<summary>
Amount of Z lift after doing a retraction (in mm)
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.ToolState">
<summary>
States of a tool
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ToolState.Off">
<summary>
Tool is turned off
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ToolState.Active">
<summary>
Tool is active
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.ToolState.Standby">
<summary>
Tool is in standby
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.AccessLevel">
<summary>
Defines what a user is allowed to do
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AccessLevel.ReadOnly">
<summary>
Changes to the system and/or operation are not permitted
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.AccessLevel.ReadWrite">
<summary>
Changes to the system and/or operation are permitted
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.SessionType">
<summary>
Types of user sessions
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.SessionType.Local">
<summary>
Local client
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.SessionType.HTTP">
<summary>
Remote client via HTTP
</summary>
</member>
<member name="F:DuetAPI.ObjectModel.SessionType.Telnet">
<summary>
Remote client via Telnet
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.UserSession">
<summary>
Class representing a user session
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.UserSession.AccessLevel">
<summary>
Access level of this session
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.UserSession.Id">
<summary>
Identifier of this session
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.UserSession.Origin">
<summary>
Origin of this session. For remote sessions, this equals the remote IP address
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.UserSession.OriginId">
<summary>
Corresponding identifier of the origin.
If it is a remote session, it is the remote port, else it defaults to the PID of the current process
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.UserSession.SessionType">
<summary>
Type of this session
</summary>
</member>
<member name="T:DuetAPI.ObjectModel.Volume">
<summary>
Information about a storage device
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Volume.Capacity">
<summary>
Total capacity of the storage device (in bytes or null)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Volume.FreeSpace">
<summary>
How much space is still available on this device (in bytes or null)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Volume.Mounted">
<summary>
Whether the storage device is mounted
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Volume.Name">
<summary>
Name of this volume
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Volume.OpenFiles">
<summary>
Number of currently open files or null if unknown
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Volume.PartitionSize">
<summary>
Total size of this volume (in bytes or null)
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Volume.Path">
<summary>
Logical path of the storage device
</summary>
</member>
<member name="P:DuetAPI.ObjectModel.Volume.Speed">
<summary>
Speed of the storage device (in bytes/s or null if unknown)
</summary>
</member>
<member name="T:DuetAPI.Utility.DriverId">
<summary>
Class representing a driver identifier
</summary>
</member>
<member name="M:DuetAPI.Utility.DriverId.#ctor">
<summary>
Default constructor of this class
</summary>
</member>
<member name="M:DuetAPI.Utility.DriverId.#ctor(System.UInt32)">
<summary>
Constructor for creating a new instance from an unsigned integer
</summary>
<param name="value">Unsigned integer</param>
</member>
<member name="M:DuetAPI.Utility.DriverId.#ctor(System.Int32,System.Int32)">
<summary>
Constructor for creating a new instance from a board and a port
</summary>
<param name="board">Board number</param>
<param name="port">Port number</param>
</member>
<member name="M:DuetAPI.Utility.DriverId.#ctor(System.String)">
<summary>
Constructor for creating a new instance from a string
</summary>
<param name="value">String value</param>
<exception cref="T:System.ArgumentException">Driver ID could not be parsed</exception>
</member>
<member name="P:DuetAPI.Utility.DriverId.Board">
<summary>
Board of this driver identifier
</summary>
</member>
<member name="P:DuetAPI.Utility.DriverId.Port">
<summary>
Port of this driver identifier
</summary>
</member>
<member name="M:DuetAPI.Utility.DriverId.op_Implicit(DuetAPI.Utility.DriverId)~System.UInt32">
<summary>
Convert an instance to an unsigned integer as expected by RepRapFirmware
</summary>
<param name="id">Driver ID to convert</param>
</member>
<member name="M:DuetAPI.Utility.DriverId.op_Implicit(DuetAPI.Utility.DriverId)~System.String">
<summary>
Convert an instance to a string
</summary>
<param name="id">Driver ID to convert</param>
</member>
<member name="M:DuetAPI.Utility.DriverId.GetHashCode">
<summary>
Compute a hash code for this instance
</summary>
<returns>Hash code</returns>
</member>
<member name="M:DuetAPI.Utility.DriverId.ToString">
<summary>
Convert this instance to a string
</summary>
<returns>String representation</returns>
</member>
<member name="M:DuetAPI.Utility.DriverId.Equals(System.Object)">
<summary>
Checks whether this instance is equal to another
</summary>
<param name="obj">Other instance</param>
<returns>Whether this and the other instance are equal</returns>
</member>
<member name="T:DuetAPI.Utility.DriverIdJsonConverter">
<summary>
Converter for <see cref="T:DuetAPI.Utility.DriverId"/> instances
</summary>
</member>
<member name="M:DuetAPI.Utility.DriverIdJsonConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Read an instance from JSON
</summary>
<param name="reader">JSON reader</param>
<param name="typeToConvert">Target type</param>
<param name="options">JSON options</param>
<returns></returns>
</member>
<member name="M:DuetAPI.Utility.DriverIdJsonConverter.Write(System.Text.Json.Utf8JsonWriter,DuetAPI.Utility.DriverId,System.Text.Json.JsonSerializerOptions)">
<summary>
Write an instance to JSON
</summary>
<param name="writer">JSON writer</param>
<param name="value">Value to write</param>
<param name="options">JSON options</param>
</member>
<member name="T:DuetAPI.Utility.FileLists">
<summary>
Helper class to generate RRF-style file lists
</summary>
</member>
<member name="M:DuetAPI.Utility.FileLists.MakeFileListContainer(System.Collections.IList,System.String,System.Int32,System.Boolean)">
<summary>
Make a filelist container for M20
</summary>
<param name="items">Items to include</param>
<param name="directory">RRF directory</param>
<param name="startAt">First item</param>
<param name="finished">True if the file list is complete</param>
<returns>JSON file list object</returns>
</member>
<member name="M:DuetAPI.Utility.FileLists.GetFileListSize(System.Collections.IList,System.String,System.Int32)">
<summary>
Get an estimate how big the UTF8-encoded file list will be in bytes
</summary>
<param name="items">Items to include</param>
<param name="directory">RRF directory</param>
<param name="startAt">First item</param>
<returns>Size of the UTF8-encoded file list in bytes</returns>
</member>
<member name="M:DuetAPI.Utility.FileLists.GetFiles(System.String,System.String,System.Int32,System.Boolean,System.Int32)">
<summary>
Get a /rr_files or M20 files response
</summary>
<param name="directory">RRF path to the directory</param>
<param name="physicalDirectory">Physical directory</param>
<param name="startAt">First item to send</param>
<param name="flagDirs">Prefix directories with an asterisk</param>
<param name="maxSize">Maximum size of the file list in bytes or -1 if unset</param>
<returns>JSON file list</returns>
</member>
<member name="M:DuetAPI.Utility.FileLists.GetFileList(System.String,System.String,System.Int32,System.Int32)">
<summary>
Get a /rr_filelist or M20 files response
</summary>
<param name="directory">RRF path to the directory</param>
<param name="physicalDirectory">Physical directory</param>
<param name="startAt">First file index to return. Set startAt to -1 to omit error handling and the JSON object container</param>
<param name="maxSize">Maximum size of the file list in bytes or -1 if unset</param>
<returns>JSON list</returns>
</member>
<member name="T:DuetAPI.Utility.Heightmap">
<summary>
Class representing a heightmap
</summary>
</member>
<member name="P:DuetAPI.Utility.Heightmap.XMin">
<summary>
X start coordinate of the heightmap
</summary>
</member>
<member name="P:DuetAPI.Utility.Heightmap.XMax">
<summary>
X end coordinate of the heightmap
</summary>
</member>
<member name="P:DuetAPI.Utility.Heightmap.XSpacing">
<summary>
Spacing between the probe points in X direction
</summary>
</member>
<member name="P:DuetAPI.Utility.Heightmap.YMin">
<summary>
Y start coordinate of the heightmap
</summary>
</member>
<member name="P:DuetAPI.Utility.Heightmap.YMax">
<summary>
Y end coordinate of the heightmap
</summary>
</member>
<member name="P:DuetAPI.Utility.Heightmap.YSpacing">
<summary>
Spacing between the probe points in Y direction
</summary>
</member>
<member name="P:DuetAPI.Utility.Heightmap.Radius">
<summary>
Probing radius on delta geometries
</summary>
</member>
<member name="P:DuetAPI.Utility.Heightmap.NumX">
<summary>
Number of probe points in X direction
</summary>
</member>
<member name="P:DuetAPI.Utility.Heightmap.NumY">
<summary>
Number of probe points in Y direction
</summary>
</member>
<member name="P:DuetAPI.Utility.Heightmap.ZCoordinates">
<summary>
Z coordinate of each probe point
</summary>
</member>
<member name="M:DuetAPI.Utility.Heightmap.Load(System.String)">
<summary>
Load a new heightmap from the given CSV file
</summary>
<param name="filename">Path to the file</param>
<returns>Asynchronous task</returns>
<exception cref="T:System.IO.IOException">Invalid file</exception>
</member>
<member name="M:DuetAPI.Utility.Heightmap.Save(System.String)">
<summary>
Save a heightmap to the given CSV file
</summary>
<param name="filename">Filename of the heightmap</param>
<returns>Asynchronous task</returns>
</member>
<member name="T:DuetAPI.Utility.JsonCamelCaseStringEnumConverter">
<summary>
Class for easier access to JsonStringEnumConverter with camel-case naming
</summary>
</member>
<member name="F:DuetAPI.Utility.JsonCamelCaseStringEnumConverter._converter">
<summary>
Converter factory for creating new camel-case converters
</summary>
</member>
<member name="M:DuetAPI.Utility.JsonCamelCaseStringEnumConverter.#ctor">
<summary>
Creates a new instance
</summary>
</member>
<member name="M:DuetAPI.Utility.JsonCamelCaseStringEnumConverter.CanConvert(System.Type)">
<summary>
Checks if the given type can be converted
</summary>
<param name="typeToConvert">Type to convert</param>
<returns>Whether the type can be converted</returns>
</member>
<member name="M:DuetAPI.Utility.JsonCamelCaseStringEnumConverter.CreateConverter(System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Creates a new JSON converter
</summary>
<param name="typeToConvert">Type to convert</param>
<param name="options">Conversion options</param>
<returns>JSON converter</returns>
</member>
<member name="T:DuetAPI.Utility.JsonCharEnumConverter">
<summary>
Converter factory for converting enum types to char
</summary>
</member>
<member name="M:DuetAPI.Utility.JsonCharEnumConverter.CanConvert(System.Type)">
<summary>
Checks if the given type can be converted
</summary>
<param name="typeToConvert">Type to convert</param>
<returns>If the type can be converted</returns>
</member>
<member name="M:DuetAPI.Utility.JsonCharEnumConverter.CreateConverter(System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Creates a converter for the given type
</summary>
<param name="type"></param>
<param name="options"></param>
<returns></returns>
</member>
<member name="T:DuetAPI.Utility.JsonCharEnumConverter.JsonCharEnumConverterInner`1">
<summary>
Inner converter for char to enum conversions
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="M:DuetAPI.Utility.JsonCharEnumConverter.JsonCharEnumConverterInner`1.CanConvert(System.Type)">
<summary>
Checks if the given type can be converted
</summary>
<param name="typeToConvert">Type to convert</param>
<returns>Whether the type can be converted</returns>
</member>
<member name="M:DuetAPI.Utility.JsonCharEnumConverter.JsonCharEnumConverterInner`1.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Read from JSON
</summary>
<param name="reader">JSON reader</param>
<param name="typeToConvert">Type to convert</param>
<param name="options">Read options</param>
<returns>Read value</returns>
</member>
<member name="M:DuetAPI.Utility.JsonCharEnumConverter.JsonCharEnumConverterInner`1.Write(System.Text.Json.Utf8JsonWriter,`0,System.Text.Json.JsonSerializerOptions)">
<summary>
Write a CodeParameter to JSON
</summary>
<param name="writer">JSON writer</param>
<param name="value">Value to serialize</param>
<param name="options">Write options</param>
</member>
<member name="T:DuetAPI.Utility.JsonRegexListConverter">
<summary>
JSON converter to read and write a list of regular expressions
</summary>
<remarks>
This class may become obsolete in a future .NET Core version.
For some reason it has no effect to add this converter to the default JSON options.
</remarks>
</member>
<member name="M:DuetAPI.Utility.JsonRegexListConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Read a Regex list from JSON
</summary>
<param name="reader">JSON reader</param>
<param name="typeToConvert">Type to convert</param>
<param name="options">Reader options</param>
<returns>Read value</returns>
</member>
<member name="M:DuetAPI.Utility.JsonRegexListConverter.Write(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.List{System.Text.RegularExpressions.Regex},System.Text.Json.JsonSerializerOptions)">
<summary>
Write a Regex list to JSON
</summary>
<param name="writer">JSON writer</param>
<param name="value">Value to serialize</param>
<param name="options">Write options</param>
</member>
<member name="T:DuetAPI.Utility.JsonHelper">
<summary>
Helper class for JSON serialization, deserialization, patch creation and patch application
</summary>
</member>
<member name="F:DuetAPI.Utility.JsonHelper.DefaultJsonOptions">
<summary>
Default JSON (de-)serialization options
</summary>
</member>
<member name="M:DuetAPI.Utility.JsonHelper.ReceiveUtf8Json(System.Net.Sockets.Socket,System.Threading.CancellationToken)">
<summary>
Receive a serialized JSON object from a socket in UTF-8 format
</summary>
<param name="socket">Socket to read from</param>
<param name="cancellationToken">Cancellation token</param>
<returns>Plain JSON</returns>
<exception cref="T:System.OperationCanceledException">Operation has been cancelled</exception>
<exception cref="T:System.Net.Sockets.SocketException">Connection has been closed</exception>
</member>
<member name="M:DuetAPI.Utility.JsonHelper.ToObject``1(System.Text.Json.JsonElement,System.Text.Json.JsonSerializerOptions)">
<summary>
Convert a <see cref="T:System.Text.Json.JsonElement"/> to an object
</summary>
<typeparam name="T">Object type</typeparam>
<param name="element">Element to deserialize</param>
<param name="options">JSON serializer options</param>
<returns>Deserialized object</returns>
<remarks>
The original code is from https://stackoverflow.com/questions/58138793/system-text-json-jsonelement-toobject-workaround
and it will become obsolete when DSF is migrated to .NET Core 5.
</remarks>
</member>
<member name="M:DuetAPI.Utility.JsonHelper.ToObject(System.Text.Json.JsonElement,System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Convert a <see cref="T:System.Text.Json.JsonElement"/> to an object
</summary>
<param name="element">Element to deserialize</param>
<param name="type">Object type</param>
<param name="options">JSON serializer options</param>
<returns>Deserialized object</returns>
<remarks>
The original code is from https://stackoverflow.com/questions/58138793/system-text-json-jsonelement-toobject-workaround
and it will become obsolete when DSF is migrated to .NET Core 5.
</remarks>
</member>
<member name="M:DuetAPI.Utility.JsonHelper.ToObject``1(System.Text.Json.JsonDocument,System.Text.Json.JsonSerializerOptions)">
<summary>
Convert a <see cref="T:System.Text.Json.JsonDocument"/> to an object
</summary>
<typeparam name="T">Object type</typeparam>
<param name="document">Document to deserialize</param>
<param name="options">JSON serializer options</param>
<returns>Deserialized object</returns>
<remarks>
The original code is from https://stackoverflow.com/questions/58138793/system-text-json-jsonelement-toobject-workaround
and it will become obsolete when DSF is migrated to .NET Core 5.
</remarks>
</member>
<member name="T:DuetAPI.Utility.JsonLowerCaseStringEnumConverter">
<summary>
Class to convert enums to and from lowercase JSON strings
</summary>
</member>
<member name="M:DuetAPI.Utility.JsonLowerCaseStringEnumConverter.CanConvert(System.Type)">
<summary>
Checks if the given type can be converted
</summary>
<param name="typeToConvert">Type to convert</param>
<returns>If the type can be converted</returns>
</member>
<member name="M:DuetAPI.Utility.JsonLowerCaseStringEnumConverter.CreateConverter(System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Creates a converter for the given type
</summary>
<param name="type"></param>
<param name="options"></param>
<returns></returns>
</member>
<member name="T:DuetAPI.Utility.JsonLowerCaseStringEnumConverter.JsonLowerCaseStringEnumConverterInner`1">
<summary>
Inner converter for char to enum conversions
</summary>
<typeparam name="T">Enum type</typeparam>
</member>
<member name="M:DuetAPI.Utility.JsonLowerCaseStringEnumConverter.JsonLowerCaseStringEnumConverterInner`1.CanConvert(System.Type)">
<summary>
Checks if the type can be converted
</summary>
<param name="typeToConvert">Type to convert</param>
<returns>True if the type can be converted</returns>
</member>
<member name="M:DuetAPI.Utility.JsonLowerCaseStringEnumConverter.JsonLowerCaseStringEnumConverterInner`1.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Read an enum value from JSON
</summary>
<param name="reader">JSON reader</param>
<param name="typeToConvert">Type to convert</param>
<param name="options">Read options</param>
<returns>Deserialized enum value</returns>
</member>
<member name="M:DuetAPI.Utility.JsonLowerCaseStringEnumConverter.JsonLowerCaseStringEnumConverterInner`1.Write(System.Text.Json.Utf8JsonWriter,`0,System.Text.Json.JsonSerializerOptions)">
<summary>
Write an enum value to lowercase JSON
</summary>
<param name="writer">JSON writer</param>
<param name="value">Value to write</param>
<param name="options">Write options</param>
</member>
<member name="T:DuetAPI.Utility.JsonPolymorphicWriteOnlyConverter`1">
<summary>
JSON converter for converting inherited class types to JSON
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="M:DuetAPI.Utility.JsonPolymorphicWriteOnlyConverter`1.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Read from JSON
</summary>
<param name="reader">JSON reader</param>
<param name="typeToConvert">Type to convert</param>
<param name="options">Read options</param>
<returns>Read value</returns>
</member>
<member name="M:DuetAPI.Utility.JsonPolymorphicWriteOnlyConverter`1.Write(System.Text.Json.Utf8JsonWriter,`0,System.Text.Json.JsonSerializerOptions)">
<summary>
Write a CodeParameter to JSON
</summary>
<param name="writer">JSON writer</param>
<param name="value">Value to serialize</param>
<param name="options">Write options</param>
</member>
<member name="T:DuetAPI.Utility.JsonShortDateTimeConverter">
<summary>
JSON converter for short DateTime values
</summary>
</member>
<member name="M:DuetAPI.Utility.JsonShortDateTimeConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Read a short DateTime from JSON
</summary>
<param name="reader">JSON reader</param>
<param name="typeToConvert">Target type</param>
<param name="options">Serializer options</param>
<returns>Deserialized DateTime or null</returns>
</member>
<member name="M:DuetAPI.Utility.JsonShortDateTimeConverter.Write(System.Text.Json.Utf8JsonWriter,System.Nullable{System.DateTime},System.Text.Json.JsonSerializerOptions)">
<summary>
Write a short DateTime to JSON
</summary>
<param name="writer">JSON writer</param>
<param name="value">Value to write</param>
<param name="options">Serializer options</param>
</member>
<member name="T:DuetAPI.Utility.RequiredPermissionsAttribute">
<summary>
Attribute to define the permissions of each command
</summary>
</member>
<member name="F:DuetAPI.Utility.RequiredPermissionsAttribute._requiredPermissions">
<summary>
Required permissions for the given command
</summary>
</member>
<member name="M:DuetAPI.Utility.RequiredPermissionsAttribute.#ctor(DuetAPI.Utility.SbcPermissions)">
<summary>
Constructor for this attribute type
</summary>
<param name="requiredPermissions"></param>
</member>
<member name="M:DuetAPI.Utility.RequiredPermissionsAttribute.Check(DuetAPI.Utility.SbcPermissions)">
<summary>
Check if the given permissions are sufficient
</summary>
<param name="permissions">Permissions to check</param>
<returns>True if permission is granted</returns>
</member>
<member name="T:DuetAPI.Utility.SbcPermissions">
<summary>
Enumeration of supported plugin permissions
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.None">
<summary>
No permissions set (default value)
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.CommandExecution">
<summary>
Execute generic commands
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.CodeInterceptionRead">
<summary>
Intercept codes but don't interact with them
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.CodeInterceptionReadWrite">
<summary>
Intercept codes in a blocking way with options to resolve or cancel them
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.ManagePlugins">
<summary>
Install, load, unload, and uninstall plugins. Grants FS access to all third-party plugins too
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.ServicePlugins">
<summary>
Service plugin runtime information (for internal purposes only, do not use)
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.ManageUserSessions">
<summary>
Manage user sessions
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.ObjectModelRead">
<summary>
Read from the object model
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.ObjectModelReadWrite">
<summary>
Read from and write to the object model
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.RegisterHttpEndpoints">
<summary>
Create new HTTP endpoints
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.ReadFilaments">
<summary>
Read files in 0:/filaments
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.WriteFilaments">
<summary>
Write files in 0:/filaments
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.ReadFirmware">
<summary>
Read files in 0:/firmware
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.WriteFirmware">
<summary>
Write files in 0:/firmware
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.ReadGCodes">
<summary>
Read files in 0:/gcodes
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.WriteGCodes">
<summary>
Write files in 0:/gcodes
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.ReadMacros">
<summary>
Read files in 0:/macros
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.WriteMacros">
<summary>
Write files in 0:/macros
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.ReadMenu">
<summary>
Read files in 0:/menu
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.WriteMenu">
<summary>
Write files in 0:/menu
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.ReadSystem">
<summary>
Read files in 0:/sys
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.WriteSystem">
<summary>
Write files in 0:/sys
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.ReadWeb">
<summary>
Read files in 0:/www
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.WriteWeb">
<summary>
Write files in 0:/www
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.FileSystemAccess">
<summary>
Access files including all subdirecotires of the virtual SD directory as DSF user
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.LaunchProcesses">
<summary>
Launch new processes
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.NetworkAccess">
<summary>
Communicate over the network (stand-alone)
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.WebcamAccess">
<summary>
Access /dev/video* devices
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.GpioAccess">
<summary>
Access /dev/gpio*, /dev/i2c*, and /dev/spidev* devices
</summary>
</member>
<member name="F:DuetAPI.Utility.SbcPermissions.SuperUser">
<summary>
Launch process as root user (for full device control - potentially dangerous)
</summary>
</member>
<member name="T:DuetAPI.Utility.SbcPermissionsConverter">
<summary>
Class to (de-)serialize SBC permission flags
</summary>
</member>
<member name="M:DuetAPI.Utility.SbcPermissionsConverter.CanConvert(System.Type)">
<summary>
Checks if the given type can be converted
</summary>
<param name="typeToConvert">Type to convert</param>
<returns>Whether the type can be converted</returns>
</member>
<member name="M:DuetAPI.Utility.SbcPermissionsConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
<summary>
Read SBC permissions from JSON
</summary>
<param name="reader">JSON reader</param>
<param name="typeToConvert">Target type</param>
<param name="options">Serializer options</param>
<returns>Deserialized permissions</returns>
</member>
<member name="M:DuetAPI.Utility.SbcPermissionsConverter.Write(System.Text.Json.Utf8JsonWriter,DuetAPI.Utility.SbcPermissions,System.Text.Json.JsonSerializerOptions)">
<summary>
Write SBC permissions to JSON
</summary>
<param name="writer">JSON writer</param>
<param name="value">Value</param>
<param name="options">Serializer options</param>
</member>
</members>
</doc>