ThinkingHome.DeviceModel
ThinkingHome.DeviceModel
IDevice Interface
Контракт драйвера (провайдер-грань). Реализуется классом, умеющим общаться с конкретным физическим устройством. Регистрируется в IDeviceRegistry.
csharp
public interface IDeviceProperties
IDevice.Id Property
Стабильный идентификатор устройства.
csharp
string Id { get; }Property Value
Methods
IDevice.Describe() Method
Описание устройства (discovery).
csharp
ThinkingHome.DeviceModel.DeviceDescriptor Describe();Returns
IDevice.ExecuteAsync(DeviceCommand, CancellationToken) Method
Исполнить команду (execute). Незнакомую команду вернуть как Unsupported.
csharp
System.Threading.Tasks.Task<ThinkingHome.DeviceModel.CommandOutcome> ExecuteAsync(ThinkingHome.DeviceModel.Commands.DeviceCommand command, System.Threading.CancellationToken ct=default(System.Threading.CancellationToken));Parameters
command DeviceCommand
ct System.Threading.CancellationToken
Returns
System.Threading.Tasks.Task<CommandOutcome>
IDevice.QueryAsync(CancellationToken) Method
Опросить текущее состояние (query).
csharp
System.Threading.Tasks.Task<ThinkingHome.DeviceModel.State.DeviceSnapshot> QueryAsync(System.Threading.CancellationToken ct=default(System.Threading.CancellationToken));Parameters
ct System.Threading.CancellationToken
Returns
System.Threading.Tasks.Task<DeviceSnapshot>
Events
IDevice.Changed Event
Изменение состояния (report/push).
csharp
event Action<StateChange> Changed;