Class SbcTriggerService
- Namespace
- DuetControlServer.Model
- Assembly
- DuetControlServer.dll
Singleton hosted service that tracks and evaluates M581.1 expression-based triggers whose expressions reference SBC object model fields (which RRF cannot evaluate)
public sealed class SbcTriggerService : BackgroundService, IHostedService, IDisposable
- Inheritance
-
SbcTriggerService
- Implements
- Inherited Members
Constructors
SbcTriggerService(CodeFactory, Expressions, ObjectModel, Observer, ILogger<SbcTriggerService>)
Singleton hosted service that tracks and evaluates M581.1 expression-based triggers whose expressions reference SBC object model fields (which RRF cannot evaluate)
public SbcTriggerService(CodeFactory codeFactory, Expressions expressions, ObjectModel model, Observer observer, ILogger<SbcTriggerService> logger)
Parameters
codeFactoryCodeFactoryFactory to create code instances
expressionsExpressionsExpression evaluator
modelObjectModelObject model
observerObserverObject model observer
loggerILogger<SbcTriggerService>Logger
Methods
ConfigureAsync(Code, CancellationToken)
Register, update, or remove an SBC expression trigger from an M581.1 code. Returns null if the expression contains no SBC fields (so RRF can handle M581.1 itself), or a Message when the request was fully handled by this service.
public Task<Message?> ConfigureAsync(Code code, CancellationToken cancellationToken)
Parameters
codeCodeM581.1 code with T, P, and optional R parameters
cancellationTokenCancellationTokenCancellation token
Returns
ExecuteAsync(CancellationToken)
Background loop that re-evaluates all registered triggers after each batch of OM changes. Fires the corresponding trigger macro on a false-to-true transition.
protected override Task ExecuteAsync(CancellationToken stoppingToken)
Parameters
stoppingTokenCancellationToken
Returns
Remove(int)
Remove a DSF-managed trigger, if one is registered for the given slot. Called when plain M581 (re)configures or deletes a trigger so RRF takes back ownership.
public void Remove(int triggerNumber)
Parameters
triggerNumberintTrigger number (0–31)
StartAsync(CancellationToken)
Subscribes to OM change notifications when started
public override Task StartAsync(CancellationToken cancellationToken)
Parameters
cancellationTokenCancellationToken
Returns
StopAsync(CancellationToken)
Unsubscribes from OM change notifications when stopped
public override Task StopAsync(CancellationToken cancellationToken)
Parameters
cancellationTokenCancellationToken