DuetAPI
Enumeration of supported input channel names
The indices of this enum are tightly coupled with RepRapFirmware.
Make sure to update this enum accordingly whenever changes are made to it!
Code channel for HTTP requests
Code channel for Telnet requests
Code channel for file prints
Code channel for USB requests
Code channel for serial devices (e.g. PanelDue)
Code channel for running triggers or config.g
Code channel for the code queue that executes a couple of codes in-sync with moves
Code channel for auxiliary LCD devices (e.g. PanelOne)
Default code channel for requests over SPI
Code channel that executes the daemon process
Code channel for the second UART port
Code channel that executes macros on power fail, heater faults and filament out
Unknown code channel
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.
Creates a new instance of the BaseCommand
Name of the command to execute
Invokes the command implementation
Result of the command
Base class of commands that do not return a result
Reserved for the actual command implementation in the control server
Asynchronous task
Invokes the command implementation
null
Base class of a command that returns a result
Type of the command result
Reserved for the actual command implementation in the control server
Command result
Invokes the command implementation
Command result
Cancel a code in
Ignore the code to intercept and allow it to be processed without any modifications
This command is only permitted in mode
Resolve the code to intercept and return the given message details for its completion.
This command is only permitted in mode
Type of the resolving message
Content of the resolving message
Analyse a G-code file and return an instance of when ready
The filename to extract information from
Whether thumbnail content shall be returned
Resolve a RepRapFirmware-style path to an actual file path
Path that is RepRapFirmware-compatible
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
Password to check
A parsed representation of a generic G/M/T-code
Create an empty Code representation
Create a new Code instance and attempt to parse the given code string
UTF8-encoded G/M/T-Code
The connection ID this code was received from. If this is 0, the code originates from an internal DCS task
Usually there is no need to populate this property. It is internally overwritten by the control server on receipt
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
This used to be of type CodeResult but since v3.2 CodeResult can read Message JSON so it should remain compatible
Type of the code
Code channel to send this code to
Line number of this code
Number of whitespaces prefixing the command content
Type of conditional G-code (if any)
Argument of the conditional G-code (if any)
Major code number (e.g. 28 in G28)
Minor code number (e.g. 3 in G54.3)
Flags of this code
Comment of the G/M/T-code. May be null if no comment is present
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'
File position of this code in bytes (optional)
Length of the original code in bytes (optional)
List of parsed code parameters (see for further information)
Reset this instance
Retrieve the parameter whose letter equals c. Note that this look-up is case-insensitive
Letter of the parameter to find
The parsed parameter instance or null if none could be found
Retrieve the parameter whose letter equals c or generate a default parameter
Letter of the parameter to find
Default parameter value (no expression)
The parsed parameter instance or null if none could be found
Reconstruct an unprecedented string from the parameter list or
retrieve the parameter which does not have a letter assigned
Encapsulate strings in double quotes
Unprecedented string
Convert the parsed code back to a text-based G/M/T-code
Reconstructed code string
Convert only the command portion to a text-based G/M/T-code (e.g. G28)
Command fraction of the code
Convert the keyword to a string
Parse the next available G/M/T-code from the given stream
Input to read from
Code to fill
Whether anything could be read
Thrown if the code contains errors like unterminated strings or unterminated comments
In general it is better to use 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
Add a new parameter to a given instance
Code to add the parameter to
Letter of the parameter to 0 if unprecedented
Value of the parameter
Whether the parameter is a quoted string
Whether the parameter is definitely a single parameter
Convert parameters of this code to driver id(s)
Driver ID could not be parsed
Convert a given parameter to driver id(s)
Driver ID could not be parsed
Parse the next available G/M/T-code from the given stream asynchronously
Input to read from
Code to fill
Internal buffer for parsing codes
Whether anything could be read
Thrown if the code contains errors like unterminated strings or unterminated comments
Enumeration of conditional G-code keywords
No conditional code
If condition
Else-if condition
Else condition
While condition
Break instruction
Abort instruction
Var operation
Set operation
Echo operation
Continue instruction
Global operation
Code bits to classify G/M/T-codes
Placeholder to indicate that no flags are set
Code execution finishes as soon as it is enqueued in the code queue
If codes are started asynchronously, code replies are normally reported via the object model.
In order to keep track of code replies, an connection
in mode can be used
Code has been preprocessed (i.e. it has been processed by the DCS pre-side code interceptors)
Code has been postprocessed (i.e. it has been processed by the internal DCS code processor)
Code originates from a macro file
Code originates from a system macro file (i.e. RRF requested it)
Code comes from config.g or config.g.bak
Code comes from config-override.g
Enforce absolute positioning via prefixed G53 code
Override every other code and send it to the firmware as quickly as possible
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
Do NOT process another code on the same channel before this code has been fully executed
Indicates if this code was requested from the firmware
Indicates if this is the last code on the line
Represents a parsed parameter of a G/M/T-code
Initial parsing is done whenever a code is processed
Letter of the code parameter (e.g. P in M106 P3)
If this is an unprecedented parameter without a letter, '@' is used
Indicates if this parameter is an expression that can be evaluated
Indicates if this parameter is a driver identifier
Unparsed string representation of the code parameter or an empty string if none present
Internal parsed representation of the string value (one of string, int, uint, float, int[], uint[] or float[])
Creates a new CodeParameter instance and parses value to a native data type if applicable
Letter of the code parameter
String representation of the value
Whether this is a string. This is set to true if the parameter was inside quotation marks
Whether this is a driver ID
This constructor does not parsed long (aka int64) values because RRF cannot handle them
Creates a new CodeParameter instance and with the given value
Letter of the code parameter (automatically converted to upper-case)
Value of this parameter
Data type of the internally parsed value
Implicit conversion operator to float
Target object
Converted value
Data type is not convertible
Implicit conversion operator to int
Target object
Converted value
Data type is not convertible
Implicit conversion operator to uint
Target object
Converted value
Data type is not convertible
Implicit conversion operator to a driver ID
Target object
Converted value
Data type is not convertible
Implicit conversion operator to long
Target object
Converted value
Data type is not convertible
Implicit conversion operator to bool
Target object
Converted value
Data type is not convertible
Implicit conversion operator to string
Target object
Converted value
Implicit conversion operator to an IP address
Target object
Converted value
Implicit conversion operator to float array
Target object
Converted value
Data type is not convertible
Implicit conversion operator to integer array
Target object
Converted value
Data type is not convertible
Implicit conversion operator to unsigned integer array
Target object
Converted value
Data type is not convertible
Implicit conversion operator to a driver ID array
Target object
Converted value
Data type is not convertible
Implicit conversion operator to long array
Target object
Converted value
Data type is not convertible
Equality operator
Code parameter
Other object
True if both objects are equal
Inequality operator
Code parameter
Other object
True if both objects are not equal
Checks if the other obj equals this instance
Other object
True if both objects are not equal
Returns the hash code of this instance
Computed hash code
Converts this parameter to a string
String representation
Converts a instance to JSON
Read a CodeParameter object from JSON
JSON reader
Type to convert
Serializer options
Read value
Write a CodeParameter to JSON
JSON writer
Value to serialize
Write options
Internal buffer for reading asynchronously from files
Default constructor of this class
How many bytes to buffer when reading from a file
Indicates if line numbers are valid
Indicates if the last
Last indentation level
Whether the line started with G53
Internal buffer
Pointer in the buffer
How many bytes are available for reading
Invalidate the buffer internally
Current line number
Last major G-code to repeat
Indicates if the last code may be repeated as per Fanuc or LaserWeb style
Invalidate the buffer
Get the actual byte position when reading from a stream
Reader to read from
Actual position in bytes
Exception class that is thrown when a G/M/T-code could not be parsed
Creates a new CodeParserException
Creates a new CodeParserException
Exception message
Creates a new CodeParserException with details where the parser failed to read data
Exception message
Code being parsed
Creates a new CodeParserException
Exception message
Inner exception
Type of a generic G/M/T-code
Undetermined
Whole line comment
Meta G-code keyword (not sent as a code to RRF)
Codes of this type are not sent to RRF in binary representation
G-code
M-code
T-code
Evaluate an arbitrary expression on the given channel in RepRapFirmware
Do not use this call to evaluate file-based and network-related fields because the DSF and RRF models diverge in this regard
Code channel where the expression is evaluated
Expression to evaluate
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
Code channel to flush
This value is ignored if this request is processed while a code is being intercepted
Invalidate all pending codes and files on a given channel (including buffered codes from DSF in RepRapFirmware)
Code channel to invalidate
Override the current status as reported by the object model when performing a software update
Whether an update is now in progress
Perform a simple G/M/T-code
Internally the code passed is populated as a full instance and on completion
its 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 because it renders the
internal code buffer useless.
Code to parse and execute
Destination channel
Whether this code may be executed asynchronously. If set, the code reply is output as a generic message
Write an arbitrary generic message
If neither OutputMessage nor LogMessage is true, the message is written to the console output
Type of the message to write
Content of the message to write
Output the message on the console and via the object model
Write the message to the log file (if applicable)
Log level of this message
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
.
Type of the HTTP request
Namespace of the plugin wanting to create a new third-party endpoint
Path to the endpoint to register
Whether this is an upload request
Notification sent by the webserver when a new HTTP request is received
Identifier of the corresponding user session. This is -1 if it is an anonymous request
List of HTTP query pairs
List of HTTP header pairs
Type of the body content
Body content as plain text or the filename where the body payload was saved if is true
Remove an existing HTTP endpoint.
Returns true if the endpoint could be successfully removed
Type of the endpoint
Namespace of the endpoint
Endpoint path to unregister
Enumeration of supported HTTP responses
HTTP status code without payload
Plain text (UTF-8)
JSON-formatted data
File content. Response must hold the absolute path to the file to return
Send a response to a received HTTP request
HTTP or WebSocket status code to return. If this is greater than or equal to 1000, the WebSocket is closed
Codes greater than 1000 represent WebSocket status codes (1000 = normal close)
Content to return. If this is null or empty and a WebSocket is connected, the connection is closed
Type of the content to return. Ignored if a WebSocket is connected
Acknowledge a (partial) model update.
This command is only permitted in mode
Query the current object model
Lock the object model for read/write access.
This may be used to update the machine model and to change array items
Apply a full patch to the object model. May be used only in non-SPI mode
Invalid key specified
DCS is not running in non-SPI mode
Key to update
JSON patch to apply
Flag a given network protocol as enabled or disabled
The object model must not be locked from the same connection via when this is called!
Protocol to change
Whether the protocol is enabled or not
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
Path to the property in the machine model
String representation of the value to set
Wait for the machine model to be fully updated from RepRapFirmware
Unlock the machine model after obtaining read/write access.
This is mandatory after has been invoked
Install or upgrade a system package
Absolute file path to the package file
Uninstall a system package
Identifier of the package
Install or upgrade a plugin
Plugin is incompatible
Absolute file path to the plugin ZIP bundle
Reload the manifest of a given plugin. Useful for packaged plugins
Identifier of the plugin
Update custom plugin data in the object model
May be used to update only the own plugin data unless the plugin has the permission.
Note that the corresponding key must already exist in the plugin data!
Invalid plugin name or data key specified
Identifier of the plugin to update (only mandatory if running as root)
Key to set
This key must already exist in the object!
Custom value to set
Command to update the process identifier of a given plugin.
Reserved for internal purposes, do not use
Identifier of the plugin to update
New process identifier of the plugin
Start a plugin
Identifier of the plugin
Defines if the list of executing plugins may be saved
Start all the previously started plugins again
Stop a plugin
Identifier of the plugin
Defines if the list of executing plugins may be saved
Stop all the plugins and save which plugins were started before.
This command is intended for shutdown or update requests
Uninstall a plugin
Identifier of the plugin
Base class for every response to a command request.
An instance of this is returned when a regular has finished.
Indicates if the command could complete without a runtime error
Response of a
Type of the response
Result of the command
Default constructor for a response
Creates a new Response instance from the given result
Response result
Response indicating a runtime exception during the internal processing of a command
Name of the .NET exception
Message of the .NET exception
Creates a new response indicating a runtime error.
This constructor is only used for deserialization
Creates a new response indicating a runtime error
Exception to report
Register a new user session.
Returns the ID of the new user session
Access level of this session
Type of this session
Origin of this session. For remote sessions, this equals the remote IP address
Remove an existing user session
Identifier of the user session to remove
Supported connection types for client connections
Unknown connection type. If this is used, the connection is immediately terminated
Command mode. This allows clients to send general purpose messages to the control server like
G-codes or requests of the full object model
Interception mode. This allows clients to intercept G/M/T-codes before or after they are initially processed
Subscription mode. In this mode object model updates are transmitted to the client after each update
Code stream mode. This mode lets users send and receive code replies asynchronously using a single socket connection
Plugin service mode. This mode is used internally and should not be used by third-party plugins!
Static class that holds the connection defaults
Current API protocol version number
Default directory in which DSF-related UNIX sockets reside
Default UNIX socket file for DuetControlServer
Default fully-qualified path to the UNIX socket for DuetControlServer
Default file to contain the last start error of DCS. Once DCS starts successfully, it is deleted
Default code channel to use
Default number of codes to buffer in mode
Maximum number of codes to buffer in mode
Default password
Exception class that is thrown if the API version of the client is incompatible to the server
Creates a new exception instance
Creates a new exception instance
Error message
Creates a new exception instance
Error message
Inner exception
An instance of this class is sent from the client to the server as a response to the .
It allows a client to select the connection mode ().
Desired mode of the new connection
Version number of the client-side API
If this version is incompatible to DCS, a is returned when a connection is being established
Enter code streaming connection mode
In this connection mode G/M/T-codes are processed asynchronously (up to )
Maximum number of codes being executed simultaneously
Destination channel for incoming codes
Creates a new init message instance
Enter command-based connection mode
In this connection mode nearly all of the commands in the namespace can be used
Creates a new init message instance
Enter interception mode
Whenever a code is received, the connection must respond with one of
- Cancel to cancel the code
- Ignore to pass through the code without modifications
- Resolve to resolve the current code and to return a message
In addition the interceptor may issue custom commands once a code has been received
If this connection mode is used to implement new G/M/T-codes, always call the
command before further actions are started and make sure it returns true 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 false, it
is recommended to send 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
flag if new codes are inserted, else they will be started when the macro file(s) have finished. This step
is obsolete if a is inserted.
Creates a new init message instance
Defines in what mode commands are supposed to be intercepted
List of channel where codes may be intercepted. If the list is empty, all available channels are used
List of G/M/T-codes to filter or Q for comments
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*)
Defines if either regular or priority codes are supposed to be intercepted
Enter connection mode for the plugin service.
This init message is used for internal IPC and should not be used by third-party plugins!
Creates a new init message instance
An instance of this class is sent by the server to the client in JSON format once a connection has been established.
Version of the server-side API
Unique connection ID assigned by the control server to allow clients to track their commands
Enter subscription mode and receive either the full object model or parts of it after every update
Creates a new init message instance
Type of the subscription
Optional code channel to receive messages from or null if only generic messages are supposed to be received
Optional filter path for mode
Multiple filters can be used on one connection and they have to be delimited by one of these charaters: ['|', ',', ' ', '\r', '\n']
Optional list of filter paths for mode
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
Type of the intercepting connection
Intercept codes before they are internally processed by the control server
Intercept codes after the initial processing of the control server but before they are forwarded to the RepRapFirmware controller
Receive a notification for executed codes. In this state the final result can be still changed
Type of the model subscription
Receive full object model after every update
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 mode.
Receive only updated JSON fragments of the object model
Interface for growing model collections
Interface that all object model collections must implement
Update this collection from a given JSON array
Element to update this intance from
Whether SBC properties are ignored
Index offset
Whether this is the last update
Interface for model dictionaries
Event that is called when the entire directory is cleared
Basic interface for object model classes that have properties
Assign the properties from another instance.
This is required to update model properties which do not have a setter
Other instance
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
Other instance
Object differences or null if both instances are equal
Update this instance from a given JSON element
Element to update this intance from
Whether SBC properties are ignored
Updated instance
Failed to deserialize data
Generic container for object model arrays
Item type
Removes all items from the collection
Raises the change event handler
Event arguments
Assign the properties from another instance.
This is required to update model properties which do not have a setter
Other instance
Create a clone of this list
Cloned list
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
Other instance
Object differences or null if both instances are equal
Update this instance from a given JSON element
Element to update this intance from
Whether SBC properties are ignored
Updated instance
Failed to deserialize data
Accepts null as the JSON value to clear existing items
Update this collection from a given JSON array
Element to update this intance from
Whether SBC properties are ignored
Index offset
Whether this is the last update
Class for holding string keys and custom values
Key names are NOT converted to camel-case (unlike regular class properties)
Flags if keys can be removed again by setting their value to null
Internal storage for key/value pairs
Event that is called when the entire directory is cleared. Only used if is false
Event that is called when a key has been changed
Event that is called when a key is being changed
Constructor of this class
Defines if setting items to null effectively removes them
Index operator
Key
Value
Basic index operator
Key object
Value if found
Get an enumerator for this instance
Enumerator instance
List of keys
List of values
Whether the dictionary is read-only
Whether this dictionary has a fixed size
Collection of dictionary keys
Collection of dictionary values
If this is thread-safe
Synchronization root
Returns the number of items in this collection
Add a new item
Key to add
Value to add
Add a new item
Key to add
Value to add
Add a new item
Item to add
Assign the properties from another instance
Other instance
Clear this dictionary
Create a clone of this instance
Check if a key is present
Key to check
Whether the key is present
Check if a key is present
Key to check
Whether the key is present
Copy this instance to another array
Destination array
Start index
Copy this instance to another dictionary
Destination array
Start iondex
Check if a key-value pair exists
Item to check
If the item exists in the dictionary
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
Other instance
Object differences or null if both instances are equal
Get an enumerator
Enumerator
Get an enumerator
Enumerator
Remove a key (only supported if is true)
Key to remove
Whether the key could be found
Remove a key (only supported if is true)
Key to remove
Whether the key could be found
Remove a key-value pair if applicable
Item to remove
If the key-value pair was present
Try to get a value
Key to look up
Retrieved value
Whether the key could be found
Update this instance from a given JSON element
Element to update this intance from
Whether SBC properties are ignored
Updated instance
Failed to deserialize data
Accepts null as the JSON value to clear existing items
Converter factory class for types
Checks if the given type can be converted from or to JSON
Creates a converter for the given type
Target type
Conversion options
Converter instance
Method to create a converter for a specific type
Dictionary type
Value type
Checks if the given type can be converted
Type to convert
Whether the type can be converted
Read from JSON
JSON reader
Type to convert
Read options
Read value
Write a CodeParameter to JSON
JSON writer
Value to serialize
Write options
Generic list container to which items can be added or which can be cleared only
Item type
Removes all items from the collection
Raises the change event handler
Event arguments
Assign the properties from another instance.
This is required to update model properties which do not have a setter
Other instance
Create a clone of this list
Cloned list
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
Other instance
Object differences or null if both instances are equal
Update this instance from a given JSON element
Element to update this intance from
Whether SBC properties are ignored
Updated instance
Failed to deserialize data
Accepts null as the JSON value to clear existing items
Update this collection from a given JSON array
Element to update this intance from
Whether SBC properties are ignored
Index offset
Whether this is the last update
Base class for machine model properties
Event that is triggered when a property is being changed
Event that is triggered when a property has been changed
Method to update a property value internally
Reference to the variable that holds the current value
New property value
Name of the property
Cached dictionary of derived types vs JSON property names vs property descriptors
Static constructor that caches the JSON properties of each derived type
Function to add custom JSON types. This must be invoked from types with generic type arguments
Type to register
Get the cached JSON properties of this type
Properties of this type
Assign the properties from another instance
Other instance
Create a clone of this instance
Cloned object
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
Other instance
Object differences or null if both instances are equal
Create a UTF8-encoded JSON patch to bring an old instance to this state
Old object state
JSON patch
Create a string-encoded JSON patch to bring an old instance to this state
Old object state
JSON patch
Update this instance from a given JSON element
Element to update this intance from
Whether SBC properties are ignored
Updated instance
Failed to deserialize data
Attribute used to mark properties that are overridden by the control server
Indicates if the property may be used in standalone mode
Constructor of this attribute
Defines if the property is available in standalone mode
This represents an accelerometer
Number of collected data points in the last run or 0 if it failed
Number of completed sampling runs
Information about a connected board
Accelerometer of this board or null if unknown
Filename of the bootloader binary or null if unknown
CAN address of this board or null if not applicable
Closed loop data of this board or null if unknown
Details about a connected display or null if none is connected
Date of the firmware build
Filename of the firmware binary
Name of the firmware build
Version of the firmware build
Filename of the IAP binary that is used for updates from the SBC or null if unsupported
This is only available for the mainboard (first board item)
Filename of the IAP binary that is used for updates from the SD card or null if unsupported
This is only available for the mainboard (first board item)
Maximum number of heaters this board can control
Maximum number of motors this board can drive
Minimum, maximum, and current temperatures of the MCU or null if unknown
Full name of the board
Short name of this board
State of this board
Indicates if this board supports external 12864 displays
Indicates if this board supports external displays
Unique identifier of the board or null if unknown
Minimum, maximum, and current voltages on the 12V rail or null if unknown
Minimum, maximum, and current voltages on the input rail or null if unknown
Enumeration of possible expansion board states
Unknown state
Flashing new firmware
Failed to flash new firmware
Board is being reset
Board is up and running
This represents information about closed-loop tuning
Number of collected data points in the last run or 0 if it failed
Number of completed sampling runs
Class providing information about a connected display
Number of pulses per click of the rotary encoder
SPI frequency of the display (in Hz)
Name of the attached display type
Information about a driver
Configured settings of the driver
Information about driver settings
Whether the drive goes forwards
Stall detection settings
Provides minimum, maximum and current values
ValueType of each property
Static constructor, required for derived ModelObject types with generic arguments
Current value
Minimum value
Maximum value
Information about stall detection
Stall detection threshold
Whether the input values are filtered
Minimum steps
Coolstep register value
Action to perform when a stall is detected
Information about the configured directories
Path to the filaments directory
Path to the firmware directory
Path to the G-Codes directory
Path to the macros directory
Path to the menu directory
Intended for 12864 displays but currently unused in DSF. It is only needed for the Duet Maestro + DWC
Path to the scans directory
Path to the system directory
Path to the web directory
Class representing information about an attached fan
Value of this fan (0..1 or -1 if unknown)
Blip value indicating how long the fan is supposed to run at 100% when turning it on to get it started (in s)
Configured frequency of this fan (in Hz)
Maximum value of this fan (0..1)
Minimum value of this fan (0..1)
Name of the fan
Requested value for this fan on a scale between 0 to 1
Current RPM of this fan or -1 if unknown/unset
Thermostatic control parameters
Thermostatic parameters of a fan
List of the heaters to monitor (indices)
Upper temperature range required to turn on the fan (in C)
Lower temperature range required to turn on the fan (in C)
Information about the heat subsystem
List of configured bed heaters (indices)
Items may be -1 if unconfigured
List of configured chamber heaters (indices)
Items may be -1 if unconfigured
Minimum required temperature for extrusion moves (in C)
Minimum required temperature for retraction moves (in C)
List of configured heaters
Information about a heater
Active temperature of the heater (in C)
Average heater PWM value (0..1)
Current temperature of the heater (in C)
Maximum temperature allowed for this heater (in C)
This is only temporary and should be replaced by a representation of the heater protection as in RRF
Minimum temperature allowed for this heater (in C)
This is only temporary and should be replaced by a representation of the heater protection as in RRF
Information about the heater model
Monitors of this heater
Sensor number of this heater or -1 if not configured
Standby temperature of the heater (in C)
State of the heater
Information about the way the heater heats up
Cooling rate exponent
Cooling rate (in K/s)
Dead time (in s)
Indicates if this heater is enabled
Cooling rate with the fan on (in K/s)
Heating rate (in K/s)
Indicates if the heater PWM signal is inverted
Maximum PWM value
Details about the PID controller
Standard voltage or null if unknown
Details about the PID model of a heater
Derivative value of the PID regulator
Integral value of the PID regulator
Indicates if custom PID values are used
Proportional value of the PID regulator
Indicates if PID control is being used
Information about a heater monitor
Action to perform when the trigger condition is met
Condition to meet to perform an action
Limit threshold for this heater monitor
Action to take when a heater monitor is triggered
Generate a heater fault
Permanently switch off the heater
Temporarily switch off the heater until the condition is no longer met
Shut down the printer
Trigger condition for a heater monitor
Heater monitor is disabled
Limit temperature has been exceeded
Limit temperature is too low
State of a heater
Heater is turned off
Heater is in standby mode
Heater is active
Heater faulted
Heater is being tuned
Heater is offline
Class representing an extra HTTP endpoint
Namespace prefix used for RepRapFirmware HTTP requests
HTTP type of this endpoint
Namespace of the endpoint
May be to register root-level rr_ requests (to emulate RRF poll requests)
Path to the endpoint
Whether this is a upload request
If set to true, the whole body payload is written to a temporary file and the file path is passed via the property
Path to the UNIX socket
Enumeration of supported HTTP request types
HTTP GET request
HTTP POST request
HTTP PUT request
HTTP PATCH request
HTTP TRACE request
HTTP DELETE request
HTTP OPTIONS request
WebSocket request. This has not been implemented yet but it is reserved for future usage
Compatibility level for emulation
No emulation (same as RepRapFirmware)
Emulating RepRapFirmware
Emulating Marlin
Emulating Teacup
Emulating Sprinter
Emulating Repetier
Special emulation for NanoDLP
Distance unit used for positioning
Millimeters
Inches
Information about a G/M/T-code channel
Whether relative positioning is being used
Emulation used on this channel
Whether inches are being used instead of mm
Whether relative extrusion is being used
Current feedrate in mm/s
Whether a macro file is being processed
Indicates if the current macro file can be restarted after a pause
Name of this channel
Depth of the stack
State of this input channel
Number of the current line
Whether volumetric extrusion is being used
State of a channel
Awaiting message acknowledgement
Channel is idle
Channel is executing a G/M/T-code
Channel is waiting for more data
Channel is reading a G/M/T-code
List holding information about the available G/M/T-code channels
During runtime some elements may be replaced with null if they are not available
Total number of supported input channels
Constructor of this class
G/M/T-code channel for HTTP requests
G/M/T-code channel for Telnet requests
G/M/T-code channel for file prints
G/M/T-code channel for USB
G/M/T-code channel for AUX (UART/PanelDue)
G/M/T-code channel for running triggers or config.g
G/M/T-code channel for the code queue
G/M/T-code channel for AUX (UART/PanelDue)
Default G/M/T-code channel for generic codes
Code channel that executes the daemon process
G/M/T-code chanel for auto pause events
Index operator for easy access via an value
Channel to retrieve information about
Information about the code channel
Information about the current build
Index of the current object being printed or -1 if unknown
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
Whether M486 names are being used
Whether M486 numbers are being used
List of detected build objects
Information about a detected build object
Indicates if this build object is cancelled
Name of the build object (if any)
X coordinates of the build object (in mm or null if not found)
Y coordinates of the build object (in mm or null if not found)
Holds information about a G-code file
Filament consumption per extruder drive (in mm)
The filename of the G-code file
Name of the application that generated this file
Build height of the G-code job or 0 if not found (in mm)
Value indicating when the file was last modified or null if unknown
Height of each other layer or 0 if not found (in mm)
Number of total layers or 0 if unknown
Estimated print time (in s)
Estimated print time from G-code simulation (in s)
Size of the file
Collection of thumbnails parsed from Gcode
Class used to convert G-code file info to and from JSON
Read a parsed file info object from a JSON reader
JSON reader
Target type
JSON options
Parsed file info object
Write a parsed file info object to a JSON writer
JSON writer
Machine model
JSON options
Information about the current job
Information about the current build or null if not available
Total active duration of the current job file (in s or null)
Information about the file being processed
Current position in the file being processed (in bytes or null)
Duration of the first layer (in s or null)
Total duration of the last job (in s or null)
Name of the last file processed or null if none
Indicates if the last file was aborted (unexpected cancellation)
Indicates if the last file was cancelled (user cancelled)
Indicates if the last file processed was simulated
This is not set if the file was aborted or cancelled
Number of the current layer or null not available
Information about the past layers
In previous API versions this was a but it has been changed to 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
Time elapsed since the last layer change (in s or null)
Total pause time since the job started
Total extrusion amount without extrusion factors applied (in mm)
Estimated times left
Time needed to heat up the heaters (in s or null)
Information about a layer from a file being printed
Duration of the layer (in s)
Actual amount of filament extruded during this layer (in mm)
Fraction of the file printed during this layer (0..1)
Height of the layer (in mm or 0 if unknown)
Last heater temperatures (in C or null if unknown)
Information about a thumbnail from a G-code file
Base64-encoded thumbnail or null if invalid or not requested
This property is not provided by RepRapFirmware fileinfo results and it may be null if no thumbnail content is requested
Format of this thumbnail
Height of this thumbnail
File offset of this thumbnail
Size of this thumbnail
Width of this thumbnail
Image formats for parsed thumbnails
Joint Photographic Experts Group
Portable Network Graphics
Quite OK Image
Estimations about the times left
Time left based on filament consumption (in s or null)
Time left based on file progress (in s or null)
Time left based on the layer progress (in s or null)
Time left based on the slicer reports (see M73, in s or null)
Machine configuration limits
Maximum number of axes or null if unknown
Maximum number of axes + extruders or null if unknown
Maximum number of bed heaters or null if unknown
Maximum number of boards or null if unknown
Maximum number of chamber heaters or null if unknown
Maximum number of drivers or null if unknown
Maximum number of drivers per axis or null if unknown
Maximum number of extruders or null if unknown
Maximum number of extruders per tool or null if unknown
Maximum number of fans or null if unknown
Maximum number of general-purpose input ports or null if unknown
Maximum number of general-purpose output ports or null if unknown
Maximum number of heaters or null if unknown
Maximum number of heaters per tool or null if unknown
Maximum number of monitors per heater or null if unknown
Maximum number of restore points or null if unknown
Maximum number of sensors or null if unknown
Maximum number of spindles or null if unknown
Maximum number of tools or null if unknown
Maximum number of tracked objects or null if unknown
Maximum number of triggers or null if unknown
Maximum number of volumes or null if unknown
Maximum number of workplaces or null if unknown
Maximum number of Z-probe programming bytes or null if unknown
Maximum number of Z-probes or null if unknown
Generic container for messages
Create a new message
Create a new message
Message type
Message content
Content of this message
May be empty but not null
Time at which the message was generated
Type of this message
Replace the content if empty or append a new line that is not empty
Line content
Append another message to this one, potentially overwriting the message type
Message to append
Append another message to this one, potentially overwriting the message type
Message type
Message content
Converts this message to a RepRapFirmware-style message
RepRapFirmware-style message
Type of a generic message
This is a success message
This is a warning message
This is an error message
Information about a configured axis
List of supported axis letters
Acceleration of this axis (in mm/s^2)
Babystep amount (in mm)
Motor current (in mA)
List of the assigned drivers
Whether or not the axis is homed
Motor jerk (in mm/min)
Letter of this axis
Current machine position (in mm) or null if unknown/unset
Maximum travel of this axis (in mm)
Whether the axis maximum was probed
Microstepping configuration
Minimum travel of this axis (in mm)
Whether the axis minimum was probed
Percentage applied to the motor current (0..100)
Percentage applied to the motor current during standstill (0..100 or null if not supported)
Maximum speed (in mm/min)
Number of microsteps per mm
Current user position (in mm) or null if unknown
Whether or not the axis is visible
Offsets of this axis for each workplace (in mm)
Information about the current move
Acceleration of the current move (in mm/s^2)
Deceleration of the current move (in mm/s^2)
Laser PWM of the current move (0..1) or null if not applicable
Requested speed of the current move (in mm/s)
Top speed of the current move (in mm/s)
Information about an extruder drive
Acceleration of this extruder (in mm/s^2)
Motor current (in mA)
Assigned driver
Name of the currently loaded filament
Extrusion factor to use (0..1 or greater)
Motor jerk (in mm/s)
Microstepping configuration
Nonlinear extrusion parameters (see M592)
Percentage applied to the motor current (0..100)
Percentage applied to the motor current during standstill (0..100 or null if not supported)
Extruder position (in mm)
Pressure advance
Raw extruder position as commanded by the slicer without extrusion factor applied (in mm)
Maximum speed (in mm/s)
Number of microsteps per mm
Nonlinear extrusion parameters (see M592)
A coefficient in the extrusion formula
B coefficient in the extrusion formula
Upper limit of the nonlinear extrusion compensation
Parameters describing input shaping
Amplitudes of the input shaper
Damping factor
Input shaper durations (in s)
Frequency (in Hz)
Minimum acceleration (in mm/s)
Configured input shaping type
Enumeration of possible input shaping methods
None
MZV
ZVD
ZVDD
ZVDDD
EI2 (2-hump)
EI3 (3-hump)
Information about core kinematics
Constructor of this class
Forward matrix
Inverse matrix
Delta kinematics
Delta radius (in mm)
Homed height of a delta printer in mm
Print radius for Hangprinter and Delta geometries (in mm)
Delta tower properties
How much Z needs to be raised for each unit of movement in the +X direction
How much Z needs to be raised for each unit of movement in the +Y direction
Delta tower properties
Tower position corrections (in degrees)
Diagonal rod length (in mm)
Deviation of the ideal endstop position (in mm)
X coordinate of this tower (in mm)
Y coordinate of this tower (in mm)
Information about hangprinter kinematics
Anchor configurations for A, B, C, Dz
Print radius (in mm)
Information about the configured geometry
Currently configured geometry type
Segmentation parameters or null if not configured
Figure out the required type for the given kinematics name
Kinematics name
Required type
Update this instance from a given JSON element
Element to update this intance from
Whether SBC properties are ignored
Updated instance
Failed to deserialize data
Enumeration of supported kinematics
Cartesian
CoreXY
CoreXY with extra U axis
CoreXY with extra UV axes
CoreXZ
MarkForged
Five-bar SCARA
Hangprinter
Linear Delta
Polar
Rotary delta
SCARA
Unknown
Class to convert a to and from JSON
Read a from JSON
JSON reader
Type to convert
Serializer options
Read value
Write a to JSON
JSON writer
Value to serialize
Write options
Kinematics class for polar kinematics
Kinematics class for SCARA kinematics
Tilt correction parameters for Z leadscrew compensation
Correction factor
Last corrections (in mm)
Maximum Z correction (in mm)
Pitch of the Z leadscrews (in mm)
X positions of the leadscrews (in mm)
Y positions of the leadscrews (in mm)
Base kinematics class that provides the ability to level the bed using Z leadscrews
Parameters describing the tilt correction
Microstepping configuration
Indicates if the stepper driver uses interpolation
Microsteps per full step
Idle factor parameters for automatic motor current reduction
Motor current reduction factor (0..1)
Idle timeout after which the stepper motor currents are reduced (in s)
Information about the move subsystem
List of the configured axes
Information about the automatic calibration
Information about the currently configured compensation options
Information about the current move
List of configured extruders
Idle current reduction parameters
Configured kinematics options
Limit axis positions by their minima and maxima
Indicates if standard moves are forbidden if the corresponding axis is not homed
Maximum acceleration allowed while printing (in mm/s^2)
List of move queue items (DDA rings)
Parameters for centre rotation
Parameters for input shaping
Speed factor applied to every regular move (0.01..1 or greater)
Maximum acceleration allowed while travelling (in mm/s^2)
Virtual total extruder position
Index of the currently selected workplace
Index of the currently selected workspace
Information about configured calibration options
Final calibration results (for Delta calibration)
Initial calibration results (for Delta calibration)
Number of factors used (for Delta calibration)
Information about the configured compensation options
Effective height before the bed compensation is turned off (in mm) or null if not configured
Full path to the currently used height map file or null if none is in use
Grid settings of the loaded heightmap or null if no heightmap is loaded
Deviations of the mesh grid or null if not applicable
Probe grid settings as defined by M557
Information about the configured orthogonal axis parameters
Type of the compensation in use
Supported compensation types
No compensation
Mesh compensation
Calibration or mesh grid results
RMS deviation (in mm)
Mean deviation (in mm)
Information about a DDA ring
The minimum idle time before we should start a move (in s)
Maximum number of moves that can be accomodated in the DDA ring
Information about centre rotation as defined by G68
Angle of the centre rotatation (in deg)
XY coordinates of the centre rotation
Move segmentation parameters
Number of segments per second
Minimum length of a segment (in mm)
Information about the configured probe grid (see M557)
Axis letters of this heightmap
End coordinates of the heightmap
Start coordinates of the heightmap
Probing radius for delta kinematics
Spacings between the coordinates
X start coordinate of the heightmap
X end coordinate of the heightmap
Spacing between the probe points in X direction
Y start coordinate of the heightmap
Y end coordinate of the heightmap
Spacing between the probe points in Y direction
Class holding details about orthogonoal axis compensation parameters
Indicates if the TanXY value is used to compensate X when Y moves (else Y when X moves)
Tangent of the skew angle for the XY or YX axes
Tangent of the skew angle for the XZ axes
Tangent of the skew angle for the YZ axes
Information about the network subsystem
Default name of the machine
Fallback hostname if the Name is invalid
Default network password of the machine
If this is set, the web server will allow cross-origin requests via the Access-Control-Allow-Origin header
Hostname of the machine
List of available network interfaces
Name of the machine
Information about a network interface
List of active protocols
Actual IPv4 address of the network adapter
Configured IPv4 address of the network adapter
Configured IPv4 DNS server fo the network adapter
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
IPv4 gateway of the network adapter
Physical address of the network adapter
Number of reconnect attempts or null if unknown
Signal of the WiFi adapter (only WiFi, in dBm, or null if unknown)
Speed of the network interface (in MBit, null if unknown, 0 if not connected)
Subnet of the network adapter
Type of this network interface
Supported types of network interfaces
Wired network interface
Wireless network interface
Supported network protocols
HTTP protocol
HTTPS protocol
FTP protocol
SFTP protocol
Telnet protocol
SSH protocol
Representation of the full machine model as maintained by DCS
List of connected boards
The first item represents the main board
Information about the individual directories
This may not be available in RepRapFirmware if no mass storages are available
List of configured fans
Dictionary of global variables vs JSON values
When DSF attempts to reconnect to RRF, this may be set to null to clear the contents
Information about the heat subsystem
List of registered third-party HTTP endpoints
Information about every available G/M/T-code channel
Information about the current job
Machine configuration limits
Generic messages that do not belong explicitly to codes being executed.
This includes status messages, generic errors and outputs generated by M118
Information about the move subsystem
Information about connected network adapters
Dictionary of SBC plugins where each key is the plugin identifier
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.
Information about the 3D scanner subsystem
Information about connected sensors including Z-probes and endstops
List of configured CNC spindles
Information about the machine state
List of configured tools
List of user sessions
List of available mass storages
Update a specific key of this instance from a given JSON element as provided by the firmware
Property name to update
Element to update this intance from
Index offset
Whether this is the last update
Whether the key could be updated
Update this instance from a given JSON element
Element to update this intance from
Whether the key could be updated
Update a specific key of this instance from a given JSON element
Property name to update
Element to update this intance from
Whether the key could be updated
Update the whole or a specific key of this instance from a given JSON element
Property name to update or null if the whole object model is supposed to be updated
Element to update this intance from
Whether SBC properties are ignored
Index offset (collection keys only)
Whether this is the last update (collection keys only)
Whether the key could be updated
Convert this instance to a JSON text
JSON object
Serialize this instance to a UTF-8 string
Class used to convert model objects to and from JSON
Read a machine model object from a JSON reader
JSON reader
Target type
JSON options
Machine model
Write a machine model to a JSON writer
JSON writer
Machine model
JSON options
Class representing a loaded plugin
List of files for the DSF plugin
List of files for the DWC plugin
List of files to be installed to the (virtual) SD excluding web files
Process ID of the plugin or -1 if not started. It is set to 0 while the plugin is being shut down
Information about a third-party plugin
Identifier of this plugin. May consist of letters and digits only (max length 32 chars)
For plugins with DWC components, this is the Webpack chunk name too
Name of the plugin. May consist of letters, digits, dashes, and underscores only (max length 64 chars)
Author of the plugin
Version of the plugin
License of the plugin. Should follow the SPDX format (see https://spdx.org/licenses/)
Link to the plugin homepage or source code repository
Major/minor compatible DWC version
List of DWC plugins this plugin depends on. Circular dependencies are not supported
Set to true if a SBC is absolutely required for this plugin
Required DSF version for the plugin running on the SBC (ignored if there is no SBC executable)
Filename in the dsf directory used to start the plugin
A plugin may provide different binaries in subdirectories per architecture.
Supported architectures are: arm, arm64, x86, x86_64
Command-line arguments for the executable
List of other filenames in the dsf directory that should be executable
Defines if messages from stdout/stderr are output as generic messages
List of permissions required by the plugin executable running on the SBC
List of packages this plugin depends on (apt packages in the case of DuetPi)
List of Python packages this plugin depends on
List of SBC plugins this plugin depends on. Circular dependencies are not supported
Major/minor supported RRF version (optional)
Custom plugin data to be populated in the object model (DSF/DWC in SBC mode - or - DWC in standalone mode).
Before can be used, corresponding properties must be registered via this property first!
Check if the given version satisfies a required version
Actual version
Required version
Whether the actual version fulfills teh requirement
Information about the 3D scanner subsystem
Progress of the current action (on a scale between 0 to 1)
Previous status responses used a scale of 0..100
Status of the 3D scanner
Possible states of the attached 3D scanner
Scanner is disconnected (none present)
Scanner is registered and idle
Scanner is scanning an object
Scanner is post-processing a file
Scanner is calibrating
Scanner is uploading
Representation of an analog sensor
Last sensor reading (in C) or null if invalid
Name of this sensor or null if not configured
Type of this sensor
Enumeration of supported analog sensor types
Regular temperature thermistor
PT1000 sensor
RTD MAX31865
MAX31855 thermocouple
MAX31856 thermocouple
Linear analog sensor
DHT11 sensor
DHT21 sensor
DHT22 sensor
DHT humidity sensor
Current loop sensor
MCU temperature
On-board stepper driver sensors
Stepper driver sensors on the DueX expansion board
Unknown temperature sensor
Class to convert an to and from JSON
Read an from JSON
JSON reader
Type to convert
Serializer options
Read value
Write an to JSON
JSON writer
Value to serialize
Write options
Information about an endstop
Whether this endstop is at the high end of the axis
Whether or not the endstop is hit
Type of the endstop
Type of a configured endstop
Generic input pin
Z-probe acts as an endstop
Motor stall detection stops all the drives when triggered
Motor stall detection stops individual drives when triggered
Unknown type
Information about a filament monitor
Indicates if this filament monitor is enabled
Last reported status of this filament monitor
Type of this filament monitor
Figure out the required type for the given filament monitor type
Filament monitor type
Required type
Update this instance from a given JSON element
Element to update this intance from
Whether SBC properties are ignored
Updated instance
Failed to deserialize data
Possible filament sensor status
No monitor is present
Filament working normally
No data received from the remote filament senosr
No filament present
Sensor reads less movement than expected
Sensor reads more movment than expected
Sensor encountered an error
Enumeration of supported filament sensors
Simple filament sensor
Laser filament sensor
Pulsed filament sensor
Rotating magnet filament sensor
Unknown sensor type
Calibrated properties of a laser filament monitor
Calibration factor of this sensor
Maximum percentage (0..1 or greater)
Minimum percentage (0..1)
Calibrated sensivity
Total extruded distance (in mm)
Configured properties of a laser filament monitor
Whether all moves and not only printing moves are supposed to be checked
Maximum percentage (0..1 or greater)
Minimum percentage (0..1)
Sample distance (in mm)
Information about a laser filament monitor
Constructor of this class
Calibrated properties of this filament monitor
Configured properties of this filament monitor
Indicates if a filament is present
Calibrated properties of a pulsed filament monitor
Extruded distance per pulse (in mm)
Maximum percentage (0..1 or greater)
Minimum percentage (0..1)
Total extruded distance (in mm)
Configured properties of a pulsed filament monitor
Extruded distance per pulse (in mm)
Maximum percentage (0..1 or greater)
Minimum percentage (0..1)
Sample distance (in mm)
Information about a pulsed filament monitor
Constructor of this class
Calibrated properties of this filament monitor
Configured properties of this filament monitor
Calibrated properties of a rotating magnet filament monitor
Extruded distance per revolution (in mm)
Maximum percentage (0..1 or greater)
Minimum percentage (0..1)
Total extruded distance (in mm)
Configured properties of a rotating magnet filament monitor
Whether all moves and not only printing moves are supposed to be checked
Extruded distance per revolution (in mm)
Maximum percentage (0..1 or greater)
Minimum percentage (0..1)
Sample distance (in mm)
Information about a rotating magnet filament monitor
Constructor of this class
Calibrated properties of this filament monitor
Configured properties of this filament monitor
Details about a general-purpose input port
Value of this port (0..1)
Information about a configured probe
Calibration temperature (in C)
Indicates if the user has deployed the probe
Whether probing disables the heater(s)
Dive height (in mm)
Height of the probe where it stopped last time (in mm)
Maximum number of times to probe after a bad reading was determined
X+Y offsets (in mm)
Recovery time (in s)
Probe speed (in mm/s)
Fast and slow probing speeds (in mm/s)
First temperature coefficient
List of temperature coefficients
Configured trigger threshold (0..1023)
Allowed tolerance deviation between two measures (in mm)
Travel speed when probing multiple points (in mm/s)
Z height at which the probe is triggered (in mm)
Type of the configured probe
Current analog values of the probe
Supported probe types
No probe
A simple unmodulated probe (like dc42's infrared probe)
A modulated probe (like the original one shipped with the RepRapPro Ormerod)
Alternate analog probe (like the ultrasonic probe)
Endstop switch (obsolete, should not be used any more)
A switch that is triggered when the probe is activated (filtered)
Endstop switch on the E1 endstop pin (obsolete, should not be used any more)
Endstop switch on Z endstop pin (obsolete, should not be used any more)
A switch that is triggered when the probe is activated (unfiltered)
A BLTouch probe
Z motor stall detection
Information about sensors
List of analog sensors
List of configured endstops
List of configured filament monitors
List of general-purpose input ports
List of configured probes
Information about a CNC spindle
Active RPM
Flags whether the spindle may spin in reverse direction
Current RPM, negative if anticlockwise direction
Frequency (in Hz)
Minimum RPM when turned on
Maximum RPM
Current state
Possible state of a spindle
Spinde not configured
Spindle is stopped (inactive)
Spindle is going forwards
Spindle is going in reverse
Details about a requested beep
Duration of the requested beep (in ms)
Frequency of the requested beep (in Hz)
Details about a general-purpose output port
PWM value of this port (0..1)
Class representing the configured log level
Log everything including debug messages
Log information and warning messages
Log warning messages only
Logging is disabled
Possible operation modes of the machine
Fused Filament Fabrication (default)
Computer Numerical Control
Laser operation mode (e.g. laser cutters)
Possible states of the firmware
Not connected to the Duet
Processing config.g
The firmware is being updated
The machine is turned off (i.e. the input voltage is too low for operation)
The machine has encountered an emergency stop and is ready to reset
The machine is about to pause a file job
The machine has paused a file job
The machine is about to resume a paused file job
Job file is being cancelled
The machine is processing a file job
The machine is simulating a file job to determine its processing time
The machine is busy doing something (e.g. moving)
The machine is changing the current tool
The machine is on but has nothing to do
Information about the message box to show
Bitmap of the axis movement controls to show (indices)
Content of the message box
Mode of the message box to display
Sequence number of the message box
This is increased whenever a new message box is supposed to be displayed
Total timeout for this message box (in ms)
Title of the message box
Supported modes of displaying a message box
Display a message box without any buttons
Display a message box with only a Close button
Display a message box with only an Ok button which is supposed to send M292 when pressed
Display a message box with an Ok button that sends M292 P0 or a cancel button that sends M292 P1 when clicked
Class holding information about a restore point
Axis coordinates of the restore point (in mm)
The virtual extruder position at the start of this move
PWM value of the tool fan (0..1)
Requested feedrate (in mm/s)
The output port bits setting for this move or null if not applicable
Laser PWM value (0..1) or null if not applicable
The spindle RPMs that were set, negative if anticlockwise direction
The tool number that was active
Information about the machine state
State of the ATX power pin (if controlled)
Port of the ATX power pin or null if not assigned
Information about a requested beep or null if none is requested
Number of the currently selected tool or -1 if none is selected
When provided it normally has value 0 normally and 1 when a deferred power down is pending
It is only available after power switching has been enabled by M80 or M81
Persistent message to display (see M117)
Version of the Duet Software Framework package
Indicates if DSF allows the installation and usage of third-party plugins
Indicates if DSF allows the installation and usage of third-party root plugins (potentially dangerous)
List of general-purpose output ports
Laser PWM of the next commanded move (0..1) or null if not applicable
Log file being written to or null if logging is disabled
Current log level
Details about a requested message box or null if none is requested
Current mode of operation
Indicates if the current macro file was restarted after a pause
Millisecond fraction of
Number of the next tool to be selected
Indicates if at least one plugin has been started
Script to execute when the power fails
Number of the previous tool
List of restore points
Current state of the machine
Index of the current G-code input channel (see )
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
Internal date and time in RepRapFirmware or null if unknown
How long the machine has been running (in s)
Information about a configured tool
Active temperatures of the associated heaters (in C)
Associated axes. At present only X and Y can be mapped per tool.
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
Extruder drives of this tool
List of associated fans (indices)
Feedforward coefficients to apply to the mapped heaters during extrusions
Extruder drive index for resolving the tool filament (index or -1)
List of associated heaters (indices)
True if the filament has been firmware-retracted
Mix ratios of the associated extruder drives
Name of this tool
Number of this tool
Axis offsets (in mm)
This list is in the same order as
Bitmap of the probed axis offsets
Firmware retraction parameters
Index of the mapped spindle or -1 if not mapped
RPM of the mapped spindle
Standby temperatures of the associated heaters (in C)
Current state of this tool
Tool retraction parameters
Amount of additional filament to extrude when undoing a retraction (in mm)
Retraction length (in mm)
Retraction speed (in mm/s)
Unretract speed (in mm/s)
Amount of Z lift after doing a retraction (in mm)
States of a tool
Tool is turned off
Tool is active
Tool is in standby
Defines what a user is allowed to do
Changes to the system and/or operation are not permitted
Changes to the system and/or operation are permitted
Types of user sessions
Local client
Remote client via HTTP
Remote client via Telnet
Class representing a user session
Access level of this session
Identifier of this session
Origin of this session. For remote sessions, this equals the remote IP address
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
Type of this session
Information about a storage device
Total capacity of the storage device (in bytes or null)
How much space is still available on this device (in bytes or null)
Whether the storage device is mounted
Name of this volume
Number of currently open files or null if unknown
Total size of this volume (in bytes or null)
Logical path of the storage device
Speed of the storage device (in bytes/s or null if unknown)
Class representing a driver identifier
Default constructor of this class
Constructor for creating a new instance from an unsigned integer
Unsigned integer
Constructor for creating a new instance from a board and a port
Board number
Port number
Constructor for creating a new instance from a string
String value
Driver ID could not be parsed
Board of this driver identifier
Port of this driver identifier
Convert an instance to an unsigned integer as expected by RepRapFirmware
Driver ID to convert
Convert an instance to a string
Driver ID to convert
Compute a hash code for this instance
Hash code
Convert this instance to a string
String representation
Checks whether this instance is equal to another
Other instance
Whether this and the other instance are equal
Converter for instances
Read an instance from JSON
JSON reader
Target type
JSON options
Write an instance to JSON
JSON writer
Value to write
JSON options
Helper class to generate RRF-style file lists
Make a filelist container for M20
Items to include
RRF directory
First item
True if the file list is complete
JSON file list object
Get an estimate how big the UTF8-encoded file list will be in bytes
Items to include
RRF directory
First item
Size of the UTF8-encoded file list in bytes
Get a /rr_files or M20 files response
RRF path to the directory
Physical directory
First item to send
Prefix directories with an asterisk
Maximum size of the file list in bytes or -1 if unset
JSON file list
Get a /rr_filelist or M20 files response
RRF path to the directory
Physical directory
First file index to return. Set startAt to -1 to omit error handling and the JSON object container
Maximum size of the file list in bytes or -1 if unset
JSON list
Class representing a heightmap
X start coordinate of the heightmap
X end coordinate of the heightmap
Spacing between the probe points in X direction
Y start coordinate of the heightmap
Y end coordinate of the heightmap
Spacing between the probe points in Y direction
Probing radius on delta geometries
Number of probe points in X direction
Number of probe points in Y direction
Z coordinate of each probe point
Load a new heightmap from the given CSV file
Path to the file
Asynchronous task
Invalid file
Save a heightmap to the given CSV file
Filename of the heightmap
Asynchronous task
Class for easier access to JsonStringEnumConverter with camel-case naming
Converter factory for creating new camel-case converters
Creates a new instance
Checks if the given type can be converted
Type to convert
Whether the type can be converted
Creates a new JSON converter
Type to convert
Conversion options
JSON converter
Converter factory for converting enum types to char
Checks if the given type can be converted
Type to convert
If the type can be converted
Creates a converter for the given type
Inner converter for char to enum conversions
Checks if the given type can be converted
Type to convert
Whether the type can be converted
Read from JSON
JSON reader
Type to convert
Read options
Read value
Write a CodeParameter to JSON
JSON writer
Value to serialize
Write options
JSON converter to read and write a list of regular expressions
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.
Read a Regex list from JSON
JSON reader
Type to convert
Reader options
Read value
Write a Regex list to JSON
JSON writer
Value to serialize
Write options
Helper class for JSON serialization, deserialization, patch creation and patch application
Default JSON (de-)serialization options
Receive a serialized JSON object from a socket in UTF-8 format
Socket to read from
Cancellation token
Plain JSON
Operation has been cancelled
Connection has been closed
Convert a to an object
Object type
Element to deserialize
JSON serializer options
Deserialized object
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.
Convert a to an object
Element to deserialize
Object type
JSON serializer options
Deserialized object
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.
Convert a to an object
Object type
Document to deserialize
JSON serializer options
Deserialized object
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.
Class to convert enums to and from lowercase JSON strings
Checks if the given type can be converted
Type to convert
If the type can be converted
Creates a converter for the given type
Inner converter for char to enum conversions
Enum type
Checks if the type can be converted
Type to convert
True if the type can be converted
Read an enum value from JSON
JSON reader
Type to convert
Read options
Deserialized enum value
Write an enum value to lowercase JSON
JSON writer
Value to write
Write options
JSON converter for converting inherited class types to JSON
Read from JSON
JSON reader
Type to convert
Read options
Read value
Write a CodeParameter to JSON
JSON writer
Value to serialize
Write options
JSON converter for short DateTime values
Read a short DateTime from JSON
JSON reader
Target type
Serializer options
Deserialized DateTime or null
Write a short DateTime to JSON
JSON writer
Value to write
Serializer options
Attribute to define the permissions of each command
Required permissions for the given command
Constructor for this attribute type
Check if the given permissions are sufficient
Permissions to check
True if permission is granted
Enumeration of supported plugin permissions
No permissions set (default value)
Execute generic commands
Intercept codes but don't interact with them
Intercept codes in a blocking way with options to resolve or cancel them
Install, load, unload, and uninstall plugins. Grants FS access to all third-party plugins too
Service plugin runtime information (for internal purposes only, do not use)
Manage user sessions
Read from the object model
Read from and write to the object model
Create new HTTP endpoints
Read files in 0:/filaments
Write files in 0:/filaments
Read files in 0:/firmware
Write files in 0:/firmware
Read files in 0:/gcodes
Write files in 0:/gcodes
Read files in 0:/macros
Write files in 0:/macros
Read files in 0:/menu
Write files in 0:/menu
Read files in 0:/sys
Write files in 0:/sys
Read files in 0:/www
Write files in 0:/www
Access files including all subdirecotires of the virtual SD directory as DSF user
Launch new processes
Communicate over the network (stand-alone)
Access /dev/video* devices
Access /dev/gpio*, /dev/i2c*, and /dev/spidev* devices
Launch process as root user (for full device control - potentially dangerous)
Class to (de-)serialize SBC permission flags
Checks if the given type can be converted
Type to convert
Whether the type can be converted
Read SBC permissions from JSON
JSON reader
Target type
Serializer options
Deserialized permissions
Write SBC permissions to JSON
JSON writer
Value
Serializer options