### Start Plugins Command Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.html Starts multiple plugins on the Duet Control Server. ```APIDOC ## StartPlugins ### Description Starts multiple plugins on the Duet Control Server. ### Method POST ### Endpoint /rr_command?cmd=startPlugins ### Parameters #### Query Parameters - **names** (string[]) - Required - An array of plugin names to start. ``` -------------------------------- ### Start Plugin Source: https://github.com/duet3d/duetsoftwareframework/wiki/REST-API Starts a plugin on the Single Board Computer (SBC). ```APIDOC ## POST /machine/startPlugin ### Description Start a plugin on the SBC. The body payload is the name of the plugin to start. This does nothing if a plugin has already been started. ### Method POST ### Endpoint /machine/startPlugin ### Parameters #### Request Body - **plugin name** (string) - Required - The name of the plugin to start. ### Response #### Success Response (204) - Plugin has been started #### Error Responses - **403**: Forbidden (missing or invalid `X-Session-Key` header) - **500**: Generic error - **502**: Incompatible DCS version - **503**: DCS is unavailable ``` -------------------------------- ### Start(string, LogLevel) Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Utility.Logger.html Starts logging to a specified file with a given log level. ```APIDOC ## Start(string, LogLevel) ### Description Starts logging to a specified file with a given log level. ### Method Signature `public static void Start(string filename, LogLevel level)` ### Parameters #### Parameters - **filename** ([string](https://learn.microsoft.com/dotnet/api/system.string)) - Filename to write to - **level** ([LogLevel](DuetAPI.ObjectModel.LogLevel.html)) - Requested log level ``` -------------------------------- ### Install Plugin Command Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.html Installs a plugin on the Duet Control Server. ```APIDOC ## InstallPlugin ### Description Installs a plugin on the Duet Control Server. ### Method POST ### Endpoint /rr_command?cmd=installPlugin ### Parameters #### Query Parameters - **name** (string) - Required - The name of the plugin to install. ``` -------------------------------- ### Start Plugin Command Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.html Starts a specific plugin on the Duet Control Server. ```APIDOC ## StartPlugin ### Description Starts a specific plugin on the Duet Control Server. ### Method POST ### Endpoint /rr_command?cmd=startPlugin ### Parameters #### Query Parameters - **name** (string) - Required - The name of the plugin to start. ``` -------------------------------- ### Install System Package Command Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.html Installs a system package on the Duet Control Server. ```APIDOC ## InstallSystemPackage ### Description Installs a system package on the Duet Control Server. ### Method POST ### Endpoint /rr_command?cmd=installSystemPackage ### Parameters #### Query Parameters - **name** (string) - Required - The name of the system package to install. ``` -------------------------------- ### StartPlugin Command Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.ObjectModel.html Starts a specific plugin. This command is used to activate a plugin that is installed but not currently running. ```APIDOC ## StartPlugin ### Description Starts a specific plugin. ### Method POST ### Endpoint /machine/api/v1/plugins/{pluginName}/start ### Parameters #### Path Parameters - **pluginName** (string) - Required - The name of the plugin to start. ### Response #### Success Response (200) - **status** (string) - Indicates the success of the operation. #### Response Example ```json { "status": "ok" } ``` ``` -------------------------------- ### StartPlugins Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.ObjectModel.ModelCollection-1.html Starts multiple plugins. ```APIDOC ## StartPlugins ### Description Starts multiple plugins. ### Method POST ### Endpoint /machine/api/plugins/start ### Parameters #### Request Body - **pluginNames** (array) - Required - A list of plugin names to start. ``` -------------------------------- ### StartPlugins Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.html Starts multiple plugins. ```APIDOC ## StartPlugins ### Description Starts multiple plugins. ### Method POST ### Endpoint /rr_file/StartPlugins ### Parameters #### Request Body - **plugins** (array) - Required - A list of plugin names to start. ``` -------------------------------- ### StartPlugins Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.GetObjectModel.html Starts multiple plugins. ```APIDOC ## StartPlugins ### Description Starts multiple plugins. ### Method POST ### Endpoint /rr_command?cmd=StartPlugins ### Parameters #### Request Body - **plugins** (array) - Required - A list of plugin names to start. - **plugin_name** (string) - The name of the plugin. ### Request Example ```json { "plugins": ["plugin1", "plugin2"] } ``` ### Response #### Success Response (200) - **Success** (boolean) - Indicates if the plugins were successfully started. ``` -------------------------------- ### Start(ChannelProcessor) Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Codes.Pipelines.Start.html Constructor for the Start pipeline class. It initializes the pipeline with a ChannelProcessor. ```APIDOC ## Start(ChannelProcessor) ### Description Constructor of this class. Initializes the pipeline with a ChannelProcessor. ### Parameters - **processor** (ChannelProcessor) - Channel processor ``` -------------------------------- ### Install Plugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPIClient.CommandConnection.html Installs a plugin on the Duet device. ```APIDOC ## InstallPlugin string, CancellationToken ### Description Installs a plugin on the Duet device. ### Method Not specified (likely internal or SDK method) ### Parameters - **string** - The name or path of the plugin to install. - **CancellationToken** - Description not specified ``` -------------------------------- ### Install System Package Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPIClient.CommandConnection.html Installs a system package on the Duet device. ```APIDOC ## InstallSystemPackage string, CancellationToken ### Description Installs a system package on the Duet device. ### Method Not specified (likely internal or SDK method) ### Parameters - **string** - The name or path of the system package to install. - **CancellationToken** - Description not specified ``` -------------------------------- ### StartPlugins.Execute() Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.StartPlugins.html Starts all plugins. This is an asynchronous operation. ```APIDOC ## Execute() ### Description Starts all the plugins. ### Method `Task` ### Endpoint N/A (This is a method call, not an HTTP endpoint) ### Parameters None ### Request Example N/A ### Response #### Success Response Type: `Task` Description: Asynchronous task representing the execution of the command. #### Response Example N/A ``` -------------------------------- ### InstallPlugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.html Installs a plugin on the DuetControlServer. ```APIDOC ## InstallPlugin ### Description Installs a plugin on the DuetControlServer. ### Method POST ### Endpoint /InstallPlugin ### Parameters #### Request Body - **name** (string) - Required - The name of the plugin to install. - **version** (string) - Optional - The version of the plugin to install. ``` -------------------------------- ### StartPlugins Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.html Starts all plugins on the Duet Control Server. ```APIDOC ## StartPlugins ### Description Starts all plugins on the Duet Control Server. ### Method POST ### Endpoint /rr_plugins/start ``` -------------------------------- ### Install System Package Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetWebServer.Controllers.MachineController.html Installs or upgrades a system package. ```APIDOC ## PUT /machine/systemPackage ### Description Install or upgrade a system package. ### Method PUT ### Endpoint /machine/systemPackage ### Parameters #### Request Body - **sessionStorage** (ISessionStorage) - Required - Session storage singleton ### Response #### Success Response (204) - No content #### Error Responses - (500) Generic error occurred - (502) Incompatible DCS version - (503) DCS is unavailable ``` -------------------------------- ### StartPlugins Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Settings.html Starts multiple plugins on the Duet Control Server. ```APIDOC ## StartPlugins ### Description Starts multiple plugins on the Duet Control Server. ### Method POST ### Endpoint /rr_plugins/start ### Parameters #### Request Body - **pluginNames** (array) - Required - An array of plugin names to start. ### Response #### Success Response (200) Indicates that the specified plugins were successfully started. #### Response Example ```json {} ``` ``` -------------------------------- ### StartPlugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPIClient.CommandConnection.html Starts a specified plugin on the device. ```APIDOC ## StartPlugin ### Description Starts a specified plugin on the device. ### Method POST ### Endpoint /machine/start-plugin ### Parameters #### Query Parameters - **pluginName** (string) - Required - The name of the plugin to start. ### Request Example ```json { "pluginName": "myplugin" } ``` ### Response #### Success Response (200) - **result** (string) - A message indicating the success or failure of the operation. ``` -------------------------------- ### StartPlugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.ObjectModel.ModelCollection-1.html Starts a specific plugin. ```APIDOC ## StartPlugin ### Description Starts a plugin. ### Method POST ### Endpoint /machine/api/plugins/{pluginName}/start ### Parameters #### Path Parameters - **pluginName** (string) - Required - The name of the plugin to start. ``` -------------------------------- ### Install or Upgrade Plugin Source: https://github.com/duet3d/duetsoftwareframework/wiki/REST-API Installs or upgrades a plugin by uploading its ZIP file content. ```APIDOC ## PUT /machine/plugin ### Description Install or upgrade a plugin ZIP file. The body payload is the ZIP file content. ### Method PUT ### Endpoint /machine/plugin ### Parameters #### Request Body - **ZIP file content** (binary) - Required - The content of the plugin ZIP file. ### Response #### Success Response (204) - Plugin has been installed #### Error Responses - **403**: Forbidden (missing or invalid `X-Session-Key` header) - **500**: Generic error - **502**: Incompatible DCS version - **503**: DCS is unavailable ``` -------------------------------- ### StartPlugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.html Starts a specific plugin. ```APIDOC ## StartPlugin ### Description Start a plugin. ### Method POST ### Endpoint /rr_command?cmd=StartPlugin ### Parameters #### Query Parameters - **name** (string) - Required - The name of the plugin to start. ``` -------------------------------- ### StartPlugins Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.Cancel.html Starts multiple plugins on the Duet device. ```APIDOC ## StartPlugins ### Description Starts multiple plugins on the Duet device. ### Method POST ### Endpoint /rr_file ### Parameters #### Query Parameters - **cmd** (string) - Required - The command to execute, which is 'StartPlugins'. - **plugins** (string) - Required - A comma-separated list of plugin names to start. ``` -------------------------------- ### StartPlugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.GetObjectModel.html Starts a specific plugin. ```APIDOC ## StartPlugin ### Description Starts a specific plugin. ### Method POST ### Endpoint /rr_plugin//start ### Parameters #### Path Parameters - **plugin_name** (string) - Required - The name of the plugin to start. ### Request Example None ### Response #### Success Response (200) - **Success** (boolean) - Indicates if the plugin was successfully started. ``` -------------------------------- ### Plugin Manifest Example Source: https://github.com/duet3d/duetsoftwareframework/wiki/Third-Party-Plugins A basic example of a plugin.json manifest file. Unused attributes can be omitted, but 'id', 'name', and 'author' must always be specified. ```json { "id": "DemoPluginId", "name": "Demo Plugin", "author": "Demo Author", "version": "1.0.0", "license": "LGPL-3.0-or-later", "homepage": null, "tags: ["demo"], "dwcVersion": "3.3.0-b2", "dwcDependencies": [], "sbcRequired": false, "sbcDsfVersion": null, "sbcExecutable": null, "sbcExecutableArguments": null, "sbcExtraExecutables": [], "sbcOutputRedirected": true, "sbcPermissions": [], "sbcPackageDependencies": [], "sbcPythonDependencies": [], "rrfVersion": null, "data": {} } ``` -------------------------------- ### StartPlugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.html Starts a specific plugin. ```APIDOC ## StartPlugin ### Description Starts a specific plugin. ### Method POST ### Endpoint /rr_file/StartPlugin ### Parameters #### Query Parameters - **plugin** (string) - Required - The name of the plugin to start. ``` -------------------------------- ### Start DSF Systemd Services Manually Source: https://github.com/duet3d/duetsoftwareframework/wiki/SBC-Setup-Guide Manually start the duetcontrolserver and duetwebserver systemd services without requiring a system reboot. ```bash sudo systemctl start duetcontrolserver sudo systemctl start duetwebserver ``` -------------------------------- ### InstallPlugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.Command-1.html Installs a plugin onto the Duet system. ```APIDOC ## InstallPlugin ### Description Installs a plugin onto the Duet system. ### Method POST ### Endpoint /rr_file/InstallPlugin ### Parameters #### Request Body - **plugin_url** (string) - Required - The URL of the plugin to install. ### Request Example ```json { "plugin_url": "http://example.com/plugins/myplugin.zip" } ``` ### Response #### Success Response (200) - **success** (boolean) - Indicates if the plugin installation was successful. - **message** (string) - A message providing details about the installation outcome. #### Response Example ```json { "success": true, "message": "Plugin installed successfully." } ``` ``` -------------------------------- ### InstallPlugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.SetPluginProcess.html Installs a plugin onto the Duet system. ```APIDOC ## InstallPlugin ### Description Installs a plugin onto the Duet system. This command is part of the DuetControlServer's plugin management capabilities. ### Method Not specified in the source, likely a command invocation within the Duet API. ### Endpoint Not applicable for this command type. ### Parameters No specific parameters are detailed in the source for this command. ### Request Example No request example is provided in the source. ### Response No response details are provided in the source. ``` -------------------------------- ### InstallSystemPackage Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.html Installs a system package on the DuetControlServer. ```APIDOC ## InstallSystemPackage ### Description Installs a system package on the DuetControlServer. ### Method POST ### Endpoint /InstallSystemPackage ### Parameters #### Request Body - **name** (string) - Required - The name of the system package to install. - **version** (string) - Optional - The version of the system package to install. ``` -------------------------------- ### Manually Install DuetPiManagementPlugin Source: https://github.com/duet3d/duetsoftwareframework/wiki/Changelog-DSF-3.x Installs the DuetPiManagementPlugin package using apt. This plugin provides M-code support previously only available in standalone mode. ```bash apt install duetpimanagementplugin ``` -------------------------------- ### StartErrorFile Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Connection.Defaults.html Default file to contain the last start error of DCS. Once DCS starts successfully, it is deleted. ```APIDOC ## StartErrorFile ### Description Default file to contain the last start error of DCS. Once DCS starts successfully, it is deleted. ### Declaration ```csharp public const string StartErrorFile = "/run/dsf/dcs.err" ``` ### Field Value Type Description [string](https://learn.microsoft.com/dotnet/api/system.string) ``` -------------------------------- ### StartPlugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.html Starts a specific plugin on the Duet Control Server. ```APIDOC ## StartPlugin ### Description Starts a specific plugin on the Duet Control Server. ### Method POST ### Endpoint /rr_plugins/{pluginName}/start ### Parameters #### Path Parameters - **pluginName** (string) - Required - The name of the plugin to start. ``` -------------------------------- ### Update APT Package Lists and Install DSF Source: https://github.com/duet3d/duetsoftwareframework/wiki/SBC-Setup-Guide After adding the Duet3D package feed and GPG key, update your system's package lists and install the duetsoftwareframework package. ```bash sudo apt-get update sudo apt-get install duetsoftwareframework ``` -------------------------------- ### InstallSystemPackage Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.InstallSystemPackage.html Installs a system package on the Duet device. This command is typically used for installing firmware or other essential system components. ```APIDOC ## InstallSystemPackage ### Description Installs a system package. This command is part of the DuetControlServer's command interface for managing system-level operations. ### Method POST ### Endpoint /machine/api/InstallSystemPackage ### Parameters #### Request Body - **packageName** (string) - Required - The name of the system package to install. - **version** (string) - Optional - The specific version of the package to install. If not provided, the latest version is used. ### Request Example ```json { "packageName": "DuetWiFiFirmware", "version": "3.4.0" } ``` ### Response #### Success Response (200) - **success** (boolean) - Indicates if the installation was successful. - **message** (string) - A message providing details about the installation status. #### Response Example ```json { "success": true, "message": "System package DuetWiFiFirmware version 3.4.0 installed successfully." } ``` ``` -------------------------------- ### InstallSystemPackage Command Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.StopPlugin.html Installs a system package. ```APIDOC ## InstallSystemPackage Command ### Description Installs a system package onto the Duet. ### Method POST ### Endpoint /rr_filetransfer ### Parameters #### Query Parameters - **command** (string) - Required - Must be "installSystemPackage" - **name** (string) - Required - The name of the system package to install. ### Request Example ``` POST /rr_filetransfer?command=installSystemPackage&name=package.zip ``` ### Response #### Success Response (200) Returns a success message upon successful installation of the system package. #### Response Example ```json { "success": true, "message": "System package package.zip installed successfully." } ``` ``` -------------------------------- ### StartCodeAsync Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Codes.Processor.html Starts the execution of a given code. ```APIDOC ## StartCodeAsync(Code) ### Description Start the execution of a given code ### Method Signature public static ValueTask StartCodeAsync(Code code) ### Parameters #### code - **Type**: [Code](DuetControlServer.Commands.Code.html) - **Description**: Code to enqueue ### Returns - **Type**: [ValueTask](https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask) - **Description**: Asynchronous task ``` -------------------------------- ### StartPlugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.Cancel.html Starts a specific plugin on the Duet device. ```APIDOC ## StartPlugin ### Description Starts a specific plugin on the Duet device. ### Method POST ### Endpoint /rr_file ### Parameters #### Query Parameters - **cmd** (string) - Required - The command to execute, which is 'StartPlugin'. - **plugin** (string) - Required - The name of the plugin to start. ``` -------------------------------- ### PluginsStarted Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.ObjectModel.State.html Indicates if at least one plugin has been started. ```APIDOC ## PluginsStarted ### Description Indicates if at least one plugin has been started. ### Property Value Type: [bool](https://learn.microsoft.com/dotnet/api/system.boolean) Description: Indicates if at least one plugin has been started ``` -------------------------------- ### InstallSystemPackage Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.Command-1.html Installs a system package onto the Duet system. ```APIDOC ## InstallSystemPackage ### Description Installs a system package onto the Duet system. ### Method POST ### Endpoint /rr_file/InstallSystemPackage ### Parameters #### Request Body - **package_url** (string) - Required - The URL of the system package to install. ### Request Example ```json { "package_url": "http://example.com/packages/system.zip" } ``` ### Response #### Success Response (200) - **success** (boolean) - Indicates if the package installation was successful. - **message** (string) - A message providing details about the installation outcome. #### Response Example ```json { "success": true, "message": "System package installed successfully." } ``` ``` -------------------------------- ### StartSecondJob Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Files.JobProcessor.html Starts the second file job if applicable. ```APIDOC ## StartSecondJob() ### Description Starts the second file job if one is applicable and configured. ### Method POST (Assumed, as it initiates a process) ### Endpoint /api/JobProcessor/StartSecondJob ``` -------------------------------- ### InstallPlugin Command Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.SetPluginProcess.html Command to install a plugin on the DuetControlServer. ```APIDOC ## InstallPlugin ### Description Installs a plugin. ### Method (Not specified in source) ### Endpoint (Not specified in source) ### Parameters (Not specified in source) ### Request Example (Not specified in source) ### Response (Not specified in source) ``` -------------------------------- ### InstallPlugin Command Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.StopPlugin.html Command to install a plugin. ```APIDOC ## InstallPlugin Command ### Description Installs a plugin onto the Duet system. ### Method POST ### Endpoint /rr_filetransfer ### Parameters #### Query Parameters - **command** (string) - Required - Must be "installPlugin" - **name** (string) - Required - The name of the plugin to install. ### Request Example ``` POST /rr_filetransfer?command=installPlugin&name=myPlugin.g ``` ### Response #### Success Response (200) Returns a success message upon successful installation of the plugin. #### Response Example ```json { "success": true, "message": "Plugin myPlugin.g installed successfully." } ``` ``` -------------------------------- ### StartPlugins Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.html Restarts all previously started plugins. ```APIDOC ## StartPlugins ### Description Start all the previously started plugins again. ### Method POST ### Endpoint /rr_command?cmd=StartPlugins ``` -------------------------------- ### InstallPlugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.html Installs or upgrades a specified plugin. ```APIDOC ## InstallPlugin ### Description Install or upgrade a plugin. ### Method POST (assumed, as it installs a resource) ### Endpoint /plugins/install ### Parameters #### Request Body - **pluginName** (string) - Required - The name of the plugin to install or upgrade. - **version** (string) - Optional - The specific version of the plugin to install. ### Request Example ```json { "command": "InstallPlugin", "pluginName": "myplugin", "version": "1.2.0" } ``` ### Response #### Success Response (200) - **success** (boolean) - True if the installation or upgrade was successful. #### Response Example ```json { "result": true } ``` ``` -------------------------------- ### InstallSystemPackage Command Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.SetPluginProcess.html Command to install a system package on the DuetControlServer. ```APIDOC ## InstallSystemPackage ### Description Installs a system package. ### Method (Not specified in source) ### Endpoint (Not specified in source) ### Parameters (Not specified in source) ### Request Example (Not specified in source) ### Response (Not specified in source) ``` -------------------------------- ### SBC Git Python Dependencies Example Source: https://github.com/duet3d/duetsoftwareframework/wiki/Third-Party-Plugins Allows installing Python packages directly from Git repositories, including private repositories via SSH. Supported starting from DSF 3.6. ```json "sbcPythonDependencies": [ "git+https://git@github.com/Duet3D/dsf-python.git@v3.6-dev#egg=dsf-python" ] ``` -------------------------------- ### StartPlugins Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Utility.Plugins.html Initiates the startup process for a specified list of plugins. This method is asynchronous and returns a Task. ```APIDOC ## StartPlugins(IEnumerable) ### Description Starts the specified plugins. ### Method Signature public static Task StartPlugins(IEnumerable plugins) ### Parameters #### Path Parameters - **plugins** (System.Collections.Generic.IEnumerable) - Required - A list of plugin names to start. ### Returns - **System.Threading.Tasks.Task** - An asynchronous task representing the operation. ``` -------------------------------- ### SBC Python Dependencies Example Source: https://github.com/duet3d/duetsoftwareframework/wiki/Third-Party-Plugins Specifies Python dependencies for SBC components, including versioned packages. Starting from DSF 3.4, plugins can install Python dependencies into their own virtual environment. ```json "sbcPythonDependencies": [ "dsf-python==3.4.5" ] ``` -------------------------------- ### Init Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Settings.html Initializes settings, loading them from the configuration file or creating it if it doesn't exist. ```APIDOC ## Init(string[]) ### Description Initialize settings and load them from the config file or create it if it does not exist ### Declaration ```csharp public static bool Init(string[] args) ``` ### Parameters - **args** (string[]) - Description: Arguments passed to the initialization process. ### Returns Type: [bool](https://learn.microsoft.com/dotnet/api/system.boolean) Description: False if the application is supposed to terminate. ``` -------------------------------- ### NoSpi Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Settings.html Gets or sets a boolean indicating whether to NOT start the SPI task. This is meant entirely for development purposes and should not be used. ```APIDOC ## NoSpi ### Description Gets or sets a boolean indicating whether to NOT start the SPI task. This is meant entirely for development purposes and should not be used. ### Property Value - **Type**: bool - **Description**: Do NOT start the SPI task. This is meant entirely for development purposes and should not be used ``` -------------------------------- ### Startup Constructor Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetWebServer.Startup.html Initializes a new instance of the Startup class with the provided configuration. ```APIDOC ## Startup(IConfiguration) ### Description Creates a new Startup instance. ### Method Constructor ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Parameters - **configuration** (IConfiguration) - Required - Launch configuration (see appsettings.json) ``` -------------------------------- ### SelectFile Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Files.JobProcessor.html Starts a new file print job, optionally simulating the print. ```APIDOC ## SelectFile(string fileName, string physicalFile, bool simulating = false) ### Description Starts a new file print job. This method requires the JobProcessor class to be locked. ### Method POST (Assumed, as it initiates a new print job) ### Endpoint /api/JobProcessor/SelectFile ### Parameters #### Request Body - **fileName** (string) - Required - The name of the file to print. - **physicalFile** (string) - Required - The physical path to the file to print. - **simulating** (bool) - Optional - Defaults to false. Set to true if the file is being simulated. ### Response #### Success Response (200) - **Task** - An asynchronous task representing the file selection and print job initiation. ``` -------------------------------- ### SetExecutingConfig(bool) Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Model.Provider.html Asynchronously flags that a start-up file is being executed. This method must be called without locking the instance first. ```APIDOC ## SetExecutingConfig(bool) ### Description Flags asynchronously that a start-up file is being executed. Must be called WITHOUT locking this instance first! ### Method static void ### Parameters #### Parameters - **executing** (bool) - Description: Flag indicating if a start-up file is being executed ``` -------------------------------- ### StartPlugin.Execute Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.StartPlugin.html Starts a specified plugin. This method is an override of the base Command.Execute method. ```APIDOC ## StartPlugin.Execute ### Description Start a plugin. ### Method `Execute()` ### Returns Type: Task Description: Asynchronous task ### Exceptions Type: ArgumentException Condition: Plugin is invalid ``` -------------------------------- ### StartPlugins Command Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.ObjectModel.html Starts multiple plugins simultaneously. This is useful for initializing several plugins at once. ```APIDOC ## StartPlugins ### Description Starts multiple plugins. ### Method POST ### Endpoint /machine/api/v1/plugins/start ### Request Body - **pluginNames** (array) - Required - A list of plugin names to start. - **item** (string) - The name of a plugin. ### Request Example ```json { "pluginNames": ["plugin1", "plugin2"] } ``` ### Response #### Success Response (200) - **status** (string) - Indicates the success of the operation. #### Response Example ```json { "status": "ok" } ``` ``` -------------------------------- ### StartPlugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPIClient.BaseCommandConnection.html Starts a specified plugin on the Duet device. This operation is asynchronous and can be cancelled. ```APIDOC ## StartPlugin(string plugin, CancellationToken cancellationToken) ### Description Starts a specified plugin. ### Method Asynchronous Task ### Parameters #### Path Parameters - **plugin** (string) - Required - Identifier of the plugin to start. - **cancellationToken** (CancellationToken) - Optional - A token to observe for cancellation requests. ### Exceptions - **OperationCanceledException**: Thrown if the operation is cancelled. - **SocketException**: Thrown if the command cannot be processed. ``` -------------------------------- ### StartPlugins Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.SetPluginProcess.html Initiates the execution of multiple specified plugins. ```APIDOC ## StartPlugins ### Description Starts multiple specified plugins simultaneously. This command is part of the DuetControlServer's plugin management capabilities. ### Method Not specified in the source, likely a command invocation within the Duet API. ### Endpoint Not applicable for this command type. ### Parameters No specific parameters are detailed in the source for this command. ### Request Example No request example is provided in the source. ### Response No response details are provided in the source. ``` -------------------------------- ### UploadResult API Endpoint Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetWebServer.Controllers.RepRapFirmwareController.html Get the last file upload result using a GET request. ```csharp [HttpGet("rr_upload")] [Authorize(Policy = "readOnly")] public IActionResult UploadResult() ``` -------------------------------- ### StartPlugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.SetPluginProcess.html Initiates the execution of a specified plugin. ```APIDOC ## StartPlugin ### Description Starts a specified plugin. This command is part of the DuetControlServer's plugin management capabilities. ### Method Not specified in the source, likely a command invocation within the Duet API. ### Endpoint Not applicable for this command type. ### Parameters No specific parameters are detailed in the source for this command. ### Request Example No request example is provided in the source. ### Response No response details are provided in the source. ``` -------------------------------- ### Wait For Code Start Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.FileExecution.Macro.html Waits until a new code can be started in the correct order, returning a disposable lock. ```APIDOC ## WaitForCodeStart() ### Description Method to wait until a new code can be started in the right order. ### Method public AwaitableDisposable WaitForCodeStart() ### Returns Type: Nito.AsyncEx.AwaitableDisposable Description: Disposable lock ### Remarks This is required in case a flush is requested before another nested macro is started ``` -------------------------------- ### StartPlugins Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.StartPlugins.html Initiates the execution of multiple plugins. This command is part of the DuetControlServer's command set for managing plugin lifecycles. ```APIDOC ## StartPlugins ### Description Initiates the execution of multiple plugins. This command is part of the DuetControlServer's command set for managing plugin lifecycles. ### Method POST ### Endpoint /rr_file/DuetControlServer/Commands/StartPlugins ### Parameters #### Query Parameters - **plugin** (string) - Required - The name of the plugin to start. This parameter can be provided multiple times to start multiple plugins. ### Request Example ```json { "example": "POST /rr_file/DuetControlServer/Commands/StartPlugins?plugin=Plugin1&plugin=Plugin2" } ``` ### Response #### Success Response (200) - **result** (string) - A message indicating the success or failure of the operation. #### Response Example ```json { "example": { "result": "Plugins started successfully." } } ``` ``` -------------------------------- ### GetThumbnail API Endpoint Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetWebServer.Controllers.RepRapFirmwareController.html Get a thumbnail from a given filename using a GET request. Requires name and offset parameters. ```csharp [HttpGet("rr_thumbnail")] public Task GetThumbnail(string? name, long offset) ``` -------------------------------- ### Enable DSF Systemd Services for Boot Source: https://github.com/duet3d/duetsoftwareframework/wiki/SBC-Setup-Guide Enable the duetcontrolserver and duetwebserver systemd services to ensure they start automatically on system boot. ```bash sudo systemctl enable duetcontrolserver sudo systemctl enable duetwebserver ``` -------------------------------- ### StartPlugins Command Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.StartPlugins.html The StartPlugins command is used to initiate plugins. It requires the 'ManagePlugins' permission to be executed. ```APIDOC ## StartPlugins Command ### Description Initiates plugins. This command requires the `SbcPermissions.ManagePlugins` permission. ### Syntax ```csharp [RequiredPermissions(SbcPermissions.ManagePlugins)] public class StartPlugins : Command ``` ### Permissions - `SbcPermissions.ManagePlugins` ``` -------------------------------- ### Install AppArmor Package on Linux Source: https://github.com/duet3d/duetsoftwareframework/wiki/Changelog-DSF-3.x Installs the AppArmor package required for plugin support on DuetPi. This is a prerequisite for enabling new plugin services. ```bash sudo apt install apparmor ``` -------------------------------- ### Server.Init() Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.IPC.Server.html Initializes the IPC subsystem and starts listening for incoming connections. This method should be called before attempting to process connections. ```APIDOC ## Init() ### Description Initialize the IPC subsystem and start listening for connections. ### Method static void ### Parameters None ### Returns None ``` -------------------------------- ### Main(string[]) Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetWebServer.Program.html The entry point of the application, called when the application is launched. ```APIDOC ## Main(string[]) ### Description Called when the application is launched. ### Method `Main(string[] args)` ### Parameters #### Path Parameters - **args** (string[]) - Description: Command-line arguments ``` -------------------------------- ### Run() Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.SPI.Interface.html Initiates and performs communication with the RepRapFirmware controller over SPI. ```APIDOC ## Run() ### Description Perform communication with the RepRapFirmware controller over SPI. ### Method Signature `public static void Run()` ``` -------------------------------- ### StartAsync(string, LogLevel) Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Utility.Logger.html Starts logging to a specified file asynchronously with a given log level. ```APIDOC ## StartAsync(string, LogLevel) ### Description Starts logging to a specified file asynchronously with a given log level. ### Method Signature `public static Task StartAsync(string filename, LogLevel level)` ### Parameters #### Parameters - **filename** ([string](https://learn.microsoft.com/dotnet/api/system.string)) - Filename to write to - **level** ([LogLevel](DuetAPI.ObjectModel.LogLevel.html)) - Requested log level ### Returns - **Task** ([Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)) - Asynchronous task ``` -------------------------------- ### Build DuetPi Management Plugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/src/DuetPiManagementPlugin/README.md Build the DuetPi Management Plugin for Linux ARM architecture. Ensure .NET SDK is installed. ```bash dotnet publish -r linux-arm -o .\zip\dsf\ /p:PublishTrimmed=true ``` -------------------------------- ### CreateHostBuilder(string[]) Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetWebServer.Program.html Creates a new WebHost instance with the specified command-line arguments. ```APIDOC ## CreateHostBuilder(string[]) ### Description Creates a new WebHost instance. ### Method `CreateHostBuilder(string[] args)` ### Parameters #### Path Parameters - **args** (string[]) - Description: Command-line arguments ### Returns - **IHostBuilder** - Description: Web host builder ``` -------------------------------- ### InstallSystemPackage Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.html Installs or upgrades a system package. ```APIDOC ## InstallSystemPackage ### Description Install or upgrade a system package. ### Method POST (assumed, as it installs a resource) ### Endpoint /system/packages/install ### Parameters #### Request Body - **packageName** (string) - Required - The name of the system package to install or upgrade. - **version** (string) - Optional - The specific version of the package to install. ### Request Example ```json { "command": "InstallSystemPackage", "packageName": "duetcontrol", "version": "3.4.0" } ``` ### Response #### Success Response (200) - **success** (boolean) - True if the installation or upgrade was successful. #### Response Example ```json { "result": true } ``` ``` -------------------------------- ### InstallSystemPackage Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.SyncObjectModel.html Installs a system package from a specified URL. This command is used for managing core system components. ```APIDOC ## POST /installSystemPackage ### Description Installs a system package from a specified URL. ### Method POST ### Endpoint /installSystemPackage ### Parameters None ### Request Body - **url** (string) - Required - The URL of the system package to install. ``` -------------------------------- ### Init Method Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.SPI.DataTransfer.html Initializes the SPI device and the controller for the transfer ready pin. It may throw an OperationCanceledException if connection fails. ```APIDOC ## Init Method ### Description Set up the SPI device and the controller for the transfer ready pin. ### Declaration ```csharp public static void Init() ``` ### Exceptions - **OperationCanceledException**: Thrown if the connection to the board fails. ``` -------------------------------- ### Connect(string) Method Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetWebServer.Middleware.HttpEndpointConnection.html Establishes a connection to a specified UNIX socket file. ```APIDOC ## Connect(string) Method ### Description Establishes a connection to the given UNIX socket file. ### Declaration ```csharp public void Connect(string socketPath) ``` ### Parameters - **socketPath** (string) - Required - Path to the UNIX socket file. ### Exceptions - **IOException**: Connection mode is unavailable. ``` -------------------------------- ### InstallPlugin Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.SyncObjectModel.html Installs a plugin from a specified URL. This command allows for the extension of Duet API functionality. ```APIDOC ## POST /installPlugin ### Description Installs a plugin from a specified URL. ### Method POST ### Endpoint /installPlugin ### Parameters None ### Request Body - **url** (string) - Required - The URL of the plugin to install. ``` -------------------------------- ### ReloadPlugin.Execute() Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.ReloadPlugin.html Starts a plugin by reloading it. This is an asynchronous operation. ```APIDOC ## ReloadPlugin.Execute() ### Description Starts a plugin by reloading it. This is an asynchronous operation. ### Method Task ### Endpoint N/A ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response Type: Task Description: Asynchronous task representing the execution of the command. #### Response Example N/A ### Exceptions #### ArgumentException Condition: Plugin is invalid. ``` -------------------------------- ### Init Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Codes.Processor.html Initializes this class. ```APIDOC ## Init() ### Description Initialize this class ### Method Signature public static void Init() ``` -------------------------------- ### StartupError Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.ObjectModel.State.html The first error encountered during startup, or null if no errors occurred. ```APIDOC ## StartupError ### Description First error on start-up or null if there was none. ### Property Value Type: [StartupError](DuetAPI.ObjectModel.StartupError.html) Description: First error on start-up or null if there was none ``` -------------------------------- ### GetTicketFromKey Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetWebServer.Singletons.SessionStorage.html Gets an authentication ticket from the given key. ```APIDOC ## GetTicketFromKey(string) ### Description Get a ticket from the given key. ### Parameters - **key** (string) - Required - Key to query ### Returns - **AuthenticationTicket?** - Authentication ticket or null ``` -------------------------------- ### StartPlugin Command Details Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.StartPlugin.html The StartPlugin command is used to start a plugin. It requires the ManagePlugins permission and has properties to specify the plugin identifier and whether to save the state of executing plugins. ```APIDOC ## StartPlugin Command ### Description Starts a specified plugin. This command requires the `SbcPermissions.ManagePlugins` permission. ### Command StartPlugin ### Properties #### Plugin - **Type**: string - **Description**: Identifier of the plugin to start. - **Required**: Yes #### SaveState - **Type**: bool - **Description**: Defines if the list of executing plugins may be saved. If true, the state will be saved; otherwise, it will not. - **Required**: No ``` -------------------------------- ### GetSessionId Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetWebServer.Singletons.SessionStorage.html Gets a session ID from the given key. ```APIDOC ## GetSessionId(string) ### Description Get a session ID from the given key. ### Parameters - **key** (string) - Required - Key to query ### Returns - **int** - Session ID or -1 ``` -------------------------------- ### SubscribeInitMessage.SubscriptionMode Property Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Connection.InitMessages.SubscribeInitMessage.html Gets or sets the type of subscription. ```APIDOC ## SubscribeInitMessage.SubscriptionMode ### Description Type of the subscription. ### Method Property (Get/Set) ### Property Type [SubscriptionMode](DuetAPI.Connection.SubscriptionMode.html) ### Remarks Determines how the subscription operates, such as whether it's a full subscription or a patch-based subscription. ``` -------------------------------- ### StartIap Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.SPI.Communication.LinuxRequests.Request.html Launches the In-Application Programming (IAP) binary, typically used for firmware updates. ```APIDOC ## StartIap ### Description Launch the IAP binary. ### Method Not specified (likely a command or RPC call) ### Endpoint Not specified ### Parameters Not specified ### Request Example Not specified ### Response Not specified ``` -------------------------------- ### StartPlugin Command Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.StartPlugin.html The StartPlugin command is used to initiate a plugin within the DuetControlServer. It inherits from BaseCommand and Command. ```APIDOC ## StartPlugin Command ### Description Initiates a plugin within the DuetControlServer. ### Inheritance - object - BaseCommand - Command - StartPlugin ``` -------------------------------- ### InstallPlugin Command Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetAPI.Commands.InstallPlugin.html The InstallPlugin command is used to install a plugin. It requires the absolute file path to the plugin's ZIP bundle. The user must have the ManagePlugins permission to execute this command. An ArgumentException may be thrown if the plugin is incompatible. ```APIDOC ## InstallPlugin Command ### Description Installs a plugin from a specified ZIP file. ### Permissions Requires `SbcPermissions.ManagePlugins`. ### Properties #### PluginFile - **Type**: string - **Description**: Absolute file path to the plugin ZIP bundle. - **Required**: Yes ### Exceptions - **Type**: `ArgumentException` - **Condition**: Plugin is incompatible. ``` -------------------------------- ### DoMacroFile Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.SPI.Channel.Processor.html Attempts to start execution of a specified macro file. ```APIDOC ## DoMacroFile(string, bool) ### Description Attempt to start a file macro. ### Method Signature `public void DoMacroFile(string fileName, bool fromCode)` ### Parameters #### Parameters - **fileName** (string) - Required - Name of the macro file - **fromCode** (bool) - Required - Request comes from a real G/M/T-code ``` -------------------------------- ### Connection Constructor Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.IPC.Connection.html Initializes a new Connection instance with a given UNIX socket. ```APIDOC ## Connection(Socket) ### Description Constructor for new connections. ### Parameters #### Path Parameters - **socket** (Socket) - Required - New UNIX socket ``` -------------------------------- ### GetTicketFromIpAddress Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetWebServer.Singletons.SessionStorage.html Gets an authentication ticket from the given IP address. ```APIDOC ## GetTicketFromIpAddress(string) ### Description Get a ticket from the given IP address. ### Parameters - **ipAddress** (string) - Required - IP address to query ### Returns - **AuthenticationTicket?** - Authentication ticket or null ``` -------------------------------- ### WebDirectory Property Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetWebServer.Singletons.ModelProvider.html Gets or sets the path to the web directory. ```APIDOC ## WebDirectory ### Description Path to the web directory ### Property Value - **WebDirectory** (string?) - Description: Path to the web directory ``` -------------------------------- ### Init Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Codes.Handlers.Functions.html Initializes the custom meta G-code functions by registering them. ```APIDOC ## Init() ### Description Initializer function to register custom meta G-code functions. ### Method public static void Init() ``` -------------------------------- ### VolumesSeq Property Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetWebServer.Singletons.ModelProvider.html Gets or sets the sequence number for volumes. ```APIDOC ## VolumesSeq ### Description Sequence number for volumes ### Property Value - **VolumesSeq** (int) - Description: Sequence number for volumes ``` -------------------------------- ### BuildDateTimeAttribute.Date Property Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Utility.BuildDateTimeAttribute.html Gets or sets the build date string. ```APIDOC ## Date Property ### Description Build datetime. ### Property Value - **Date** (string) - The build date. ``` -------------------------------- ### PendingLockRequests Property Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.SPI.ChannelInformation.html Gets the queue of pending lock/unlock requests. ```APIDOC ## PendingLockRequests Property ### Description Gets the queue of pending lock/unlock requests. ### Property Value - **PendingLockRequests** (System.Collections.Generic.Queue<[QueuedLockRequest](DuetControlServer.SPI.QueuedLockRequest.html)">) - A queue of queued lock requests. ``` -------------------------------- ### Processor.Stack Property Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.SPI.Channel.Processor.html Gets the stack of different channel states. ```APIDOC ## Processor.Stack Property ### Description Stack of the different channel states. ### Property Value - **Stack** (Stack) - Description: The stack of channel states. ``` -------------------------------- ### PendingFlushRequests Property Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.SPI.ChannelInformation.html Gets the queue of pending flush requests. ```APIDOC ## PendingFlushRequests Property ### Description Gets the queue of pending flush requests. ### Property Value - **PendingFlushRequests** (System.Collections.Generic.Queue) - A queue of task completion sources for flush requests. ``` -------------------------------- ### Set Connection to Command Mode Source: https://github.com/duet3d/duetsoftwareframework/wiki/API-Overview Send this JSON to establish a connection in Command mode. This is the initial step before issuing commands. ```json { "mode": "Command" } ``` -------------------------------- ### Channel Property Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.SPI.ChannelInformation.html Gets the code channel associated with this class. ```APIDOC ## Channel Property ### Description Gets the code channel that this class is about. ### Property Value - **Channel** ([CodeChannel](DuetAPI.CodeChannel.html)) - The code channel. ``` -------------------------------- ### GetObjectModel Command Source: https://github.com/duet3d/duetsoftwareframework/blob/v3.6-dev/docs/api/DuetControlServer.Commands.SetPluginProcess.html Command to get the object model from the DuetControlServer. ```APIDOC ## GetObjectModel ### Description Retrieves the object model. ### Method (Not specified in source) ### Endpoint (Not specified in source) ### Parameters (Not specified in source) ### Request Example (Not specified in source) ### Response (Not specified in source) ```