using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using Bro.Common.Helper; using static Bro.Common.Helper.EnumHelper; namespace Bro.Common.Interface { public delegate void DeviceStateChangedDelegate(IDevice device, DeviceState state); public interface IDevice : IProcessID, IDisposable, INotifyPropertyChanged, ISimpleDevice { IInitialConfig InitialConfig { get; set; } EnumHelper.DeviceState CurrentState { get; set; } Action OnDeviceException { get; set; } Action OnLog { get; set; } Action OnDeviceStateChanged { get; set; } event DeviceStateChangedDelegate OnDeviceStateChangedWithDeviceInfo; void StateChange(EnumHelper.DeviceState stateToBe); IOperationConfig SetAndRun(IOperationConfig config); } public interface ISimpleDevice { string Id { get; set; } string Name { get; set; } } }