Class CodeFile
Class to read G/M/T-codes from files
Implements
Inherited Members
Namespace: DuetControlServer.Files
Assembly: DuetControlServer.dll
Syntax
public class CodeFile : IDisposable
Constructors
CodeFile(CodeFile, CodeChannel)
Copy constructor
Declaration
public CodeFile(CodeFile copyFrom, CodeChannel channel)
Parameters
| Type | Name | Description |
|---|---|---|
| CodeFile | copyFrom | |
| CodeChannel | channel |
CodeFile(string, string, CodeChannel)
Constructor of the base class for reading from a G-code file
Declaration
public CodeFile(string fileName, string physicalFile, CodeChannel channel)
Parameters
| Type | Name | Description |
|---|---|---|
| string | fileName | Name of the file to process or null if it is optional |
| string | physicalFile | Physical path to the file |
| CodeChannel | channel | Channel to send the codes to |
Properties
Channel
Channel to send the codes to
Declaration
public CodeChannel Channel { get; }
Property Value
| Type | Description |
|---|---|
| CodeChannel |
FileName
File path to the file being executed
Declaration
public string FileName { get; }
Property Value
| Type | Description |
|---|---|
| string |
IsClosed
Indicates if this file is closed
Declaration
public bool IsClosed { get; }
Property Value
| Type | Description |
|---|---|
| bool |
Length
Returns the length of the file in bytes
Declaration
public long Length { get; }
Property Value
| Type | Description |
|---|---|
| long |
LineNumber
Current line number in the file
Declaration
public long LineNumber { get; }
Property Value
| Type | Description |
|---|---|
| long |
NextFilePosition
File position of the next code to actually run
Declaration
public long NextFilePosition { get; set; }
Property Value
| Type | Description |
|---|---|
| long |
PhysicalFileName
Physical file path to the file being executed
Declaration
public string PhysicalFileName { get; }
Property Value
| Type | Description |
|---|---|
| string |
Position
Gets or sets the current file position in bytes
Declaration
public long Position { get; set; }
Property Value
| Type | Description |
|---|---|
| long |
Methods
AddLocalVariable(string)
Add a new local variable to the current code block
Declaration
public void AddLocalVariable(string varName)
Parameters
| Type | Name | Description |
|---|---|---|
| string | varName | Name of the variable |
Close()
Close this file
Declaration
public void Close()
Dispose()
Dispose this instance
Declaration
public virtual void Dispose()
~CodeFile()
Finalizer of a base file
Declaration
protected ~CodeFile()
GetIterations(Code)
Get the current number of iterations of the current loop
Declaration
public int GetIterations(Code code)
Parameters
| Type | Name | Description |
|---|---|---|
| Code | code | Code that requested the number of iterations |
Returns
| Type | Description |
|---|---|
| int | Number of iterations |
Exceptions
| Type | Condition |
|---|---|
| CodeParserException | Query came outside a while loop |
Lock()
Lock this instance
Declaration
public IDisposable Lock()
Returns
| Type | Description |
|---|---|
| IDisposable | Disposable lock |
LockAsync()
Lock this instance asynchronously
Declaration
public AwaitableDisposable<IDisposable> LockAsync()
Returns
| Type | Description |
|---|---|
| AwaitableDisposable<IDisposable> | Disposable lock |
ReadCodeAsync(Code?)
Read the next available code and interpret conditional codes performing flow control
Declaration
public Task<Code?> ReadCodeAsync(Code? sharedCode = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Code | sharedCode | Code that may be reused |
Returns
| Type | Description |
|---|---|
| Task<Code> | Read code or null if none found |
Remarks
This instance must NOT be locked when this is called
Exceptions
| Type | Condition |
|---|---|
| CodeParserException | Failed to read the next code |
| OperationCanceledException | Failed to flush the pending codes |