/// <summary> /// This method is called whenever an actor is activated. /// An actor is activated the first time any of its methods are invoked. /// </summary> protected override async Task OnActivateAsync() { ActorEventSource.Current.ActorMessage(this, "Actor activated."); var result = await StateManager.TryGetStateAsync <AttributeMetaData>(MetadataState); if (!result.HasValue) { var metadata = new AttributeMetaData(); await StateManager.TryAddStateAsync(MetadataState, metadata); } else { metadata = result.Value; this.context = metadata.Context; if (metadata.IsLimitAlarms) { var result1 = await StateManager.TryGetStateAsync <LimitAlarmData>(AlarmState); if (result1.HasValue) { this.limitAlarmData = result1.Value; } } } }
/// <summary> /// This method is called whenever an actor is activated. /// An actor is activated the first time any of its methods are invoked. /// </summary> protected async override Task OnActivateAsync() { ActorEventSource.Current.ActorMessage(this, "Actor activated."); var result = await StateManager.TryGetStateAsync <LimitAlarmData>(MetadataState); if (!result.HasValue) { var metadata = new LimitAlarmData(); await StateManager.TryAddStateAsync(MetadataState, metadata); } }
private static void AddLimitData(AttributeData attribute, List <LimitAlarmDesc> limits) { LimitAlarmData limitAlarmData = new LimitAlarmData(); foreach (var limit in limits) { limitAlarmData.AddLimitAlarm(limit); } attribute.AlamLimitData = limitAlarmData; attribute.AttributeMetaData.IsLimitAlarms = true; }
public async Task SetData(AttributeData data) { await StateManager.SetStateAsync(MetadataState, data.AttributeMetaData); metadata = data.AttributeMetaData; if (data.AttributeMetaData.IsLimitAlarms) { ////var limitAlarm = GetlimitAlarmActorPoxy(this.Id.ToString() + "_LimitAlarm"); ////await limitAlarm.SetData(data.AlamLimitData); await StateManager.SetStateAsync(AlarmState, data.AlamLimitData); this.limitAlarmData = data.AlamLimitData; } if (data.AttributeMetaData.IsIO) { var ioExtention = GetIOExtentionActorPoxy(this.Id.ToString() + "_IO"); await ioExtention.SetData(data.IOExtentionData); } }
public async Task SetData(LimitAlarmData data) { await StateManager.SetStateAsync(MetadataState, data); }