Class Provider
Provider for the machine's object model to provides thread-safe read/write access. Make sure to access the machine model only when atomic operations are performed so that pending updates can be performed as quickly as possible.
Inherited Members
Namespace: DuetControlServer.Model
Assembly: DuetControlServer.dll
Syntax
public static class Provider
Properties
Get
Get the machine model. Make sure to call the acquire the corresponding lock first!
Declaration
public static ObjectModel Get { get; }
Property Value
Type | Description |
---|---|
ObjectModel | Current Duet machine object model |
See Also
IsUpdating
Whether the current machine status is overridden because an update is in progress
Declaration
public static bool IsUpdating { get; set; }
Property Value
Type | Description |
---|---|
bool |
Password
Configured password (see M551)
Declaration
public static string Password { get; set; }
Property Value
Type | Description |
---|---|
string |
Methods
AccessReadOnly()
Access the machine model for read operations only
Declaration
public static IDisposable AccessReadOnly()
Returns
Type | Description |
---|---|
IDisposable | Disposable lock object to be used with a using directive |
AccessReadOnly(CancellationToken)
Access the machine model for read operations only
Declaration
public static IDisposable AccessReadOnly(CancellationToken cancellationToken)
Parameters
Type | Name | Description |
---|---|---|
CancellationToken | cancellationToken |
Returns
Type | Description |
---|---|
IDisposable | Disposable lock object to be used with a using directive |
AccessReadOnlyAsync()
Access the machine model asynchronously for read operations only
Declaration
public static Task<IDisposable> AccessReadOnlyAsync()
Returns
Type | Description |
---|---|
Task<IDisposable> | Disposable lock object to be used with a using directive |
AccessReadOnlyAsync(CancellationToken)
Access the machine model asynchronously for read operations only
Declaration
public static Task<IDisposable> AccessReadOnlyAsync(CancellationToken cancellationToken)
Parameters
Type | Name | Description |
---|---|---|
CancellationToken | cancellationToken |
Returns
Type | Description |
---|---|
Task<IDisposable> | Disposable lock object to be used with a using directive |
AccessReadWrite()
Access the machine model for read/write operations
Declaration
public static IDisposable AccessReadWrite()
Returns
Type | Description |
---|---|
IDisposable | Disposable lock object to be used with a using directive |
AccessReadWrite(CancellationToken)
Access the machine model for read/write operations
Declaration
public static IDisposable AccessReadWrite(CancellationToken cancellationToken)
Parameters
Type | Name | Description |
---|---|---|
CancellationToken | cancellationToken |
Returns
Type | Description |
---|---|
IDisposable | Disposable lock object to be used with a using directive |
AccessReadWriteAsync()
Access the machine model asynchronously for read/write operations
Declaration
public static Task<IDisposable> AccessReadWriteAsync()
Returns
Type | Description |
---|---|
Task<IDisposable> | Disposable lock object to be used with a using directive |
AccessReadWriteAsync(CancellationToken)
Access the machine model asynchronously for read/write operations
Declaration
public static Task<IDisposable> AccessReadWriteAsync(CancellationToken cancellationToken)
Parameters
Type | Name | Description |
---|---|---|
CancellationToken | cancellationToken |
Returns
Type | Description |
---|---|
Task<IDisposable> | Disposable lock object to be used with a using directive |
Diagnostics(StringBuilder)
Report the diagnostics of this class
Declaration
public static void Diagnostics(StringBuilder builder)
Parameters
Type | Name | Description |
---|---|---|
StringBuilder | builder | Target to write to |
GetCpuHardware()
Get the CPU hardware
Declaration
public static string? GetCpuHardware()
Returns
Type | Description |
---|---|
string | CPU hardware or null if unknown |
GetCpuNumCores()
Get the number of processor cores/threads
Declaration
public static int GetCpuNumCores()
Returns
Type | Description |
---|---|
int | Number of cores/threads or 1 if unknown |
GetDistribution()
Get the current Linux distribution
Declaration
public static string? GetDistribution()
Returns
Type | Description |
---|---|
string | Distribution name or null if unknown |
GetDistributionBuildTime()
Determine when the current Linux distribution was built
Declaration
public static DateTime? GetDistributionBuildTime()
Returns
Type | Description |
---|---|
DateTime? | Build datetime or null if unknown |
GetSbcModel()
Get the SBC model name
Declaration
public static string? GetSbcModel()
Returns
Type | Description |
---|---|
string | SBC model or null if unknown |
GetSbcSerial()
Get the SBC serial
Declaration
public static string? GetSbcSerial()
Returns
Type | Description |
---|---|
string | SBC model or null if unknown |
GetTotalMemory()
Get the total memory of this SBC
Declaration
public static long? GetTotalMemory()
Returns
Type | Description |
---|---|
long? |
HandleMacroErrorAsync(string, long, string)
Handle a macro file error asynchronously. Must be called WITHOUT locking this instance first!
Declaration
public static Task HandleMacroErrorAsync(string fileName, long lineNumber, string message)
Parameters
Type | Name | Description |
---|---|---|
string | fileName | |
long | lineNumber | |
string | message |
Returns
Type | Description |
---|---|
Task |
Exceptions
Type | Condition |
---|---|
NotImplementedException |
Init()
Initialize the object model provider with values that are not expected to change
Declaration
public static void Init()
Output(LogLevel, Message)
Output a generic message
Declaration
public static bool Output(LogLevel level, Message message)
Parameters
Type | Name | Description |
---|---|---|
LogLevel | level | Log level |
Message | message | Message to output |
Returns
Type | Description |
---|---|
bool | Whether the message has been written |
Output(Message)
Output a generic message
Declaration
public static void Output(Message message)
Parameters
Type | Name | Description |
---|---|---|
Message | message | Message to output |
Output(MessageType, string)
Output a generic message
Declaration
public static void Output(MessageType type, string content)
Parameters
Type | Name | Description |
---|---|---|
MessageType | type | Type of the message |
string | content | Content of the message |
OutputAsync(LogLevel, Message)
Output a generic message asynchronously
Declaration
public static Task<bool> OutputAsync(LogLevel level, Message message)
Parameters
Type | Name | Description |
---|---|---|
LogLevel | level | Log level |
Message | message | Message to output |
Returns
Type | Description |
---|---|
Task<bool> | Whether the message has been written |
OutputAsync(Message)
Output a generic message asynchronously
Declaration
public static Task OutputAsync(Message message)
Parameters
Type | Name | Description |
---|---|---|
Message | message | Message to output |
Returns
Type | Description |
---|---|
Task | Asynchronous task |
OutputAsync(MessageType, string)
Output a generic message asynchronously
Declaration
public static Task OutputAsync(MessageType type, string content)
Parameters
Type | Name | Description |
---|---|---|
MessageType | type | Type of the message |
string | content | Content of the message |
Returns
Type | Description |
---|---|
Task | Asynchronous task |
SetExecutingConfig(bool)
Flag asynchronously that a start-up file is being executed. Must be called WITHOUT locking this instance first!
Declaration
public static void SetExecutingConfig(bool executing)
Parameters
Type | Name | Description |
---|---|---|
bool | executing |
WaitForUpdate()
Wait for an update to occur
Declaration
public static void WaitForUpdate()
WaitForUpdate(CancellationToken)
Wait for an update to occur
Declaration
public static void WaitForUpdate(CancellationToken cancellationToken)
Parameters
Type | Name | Description |
---|---|---|
CancellationToken | cancellationToken | Cancellation token |
WaitForUpdateAsync()
Wait for an update to occur asynchronously
Declaration
public static Task WaitForUpdateAsync()
Returns
Type | Description |
---|---|
Task | Asynchronous task |
WaitForUpdateAsync(CancellationToken)
Wait for an update to occur asynchronously
Declaration
public static Task WaitForUpdateAsync(CancellationToken cancellationToken)
Parameters
Type | Name | Description |
---|---|---|
CancellationToken | cancellationToken | Cancellation token |
Returns
Type | Description |
---|---|
Task | Asynchronous task |