Skip to content

ThinkingHome.DeviceModel

ThinkingHome.DeviceModel

IDevice Interface

Контракт драйвера (провайдер-грань). Реализуется классом, умеющим общаться с конкретным физическим устройством. Регистрируется в IDeviceRegistry.

csharp
public interface IDevice

Properties

IDevice.Id Property

Стабильный идентификатор устройства.

csharp
string Id { get; }

Property Value

System.String

Methods

IDevice.Describe() Method

Описание устройства (discovery).

csharp
ThinkingHome.DeviceModel.DeviceDescriptor Describe();

Returns

DeviceDescriptor

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;

Event Type

System.Action<StateChange>

Опубликовано под лицензией MIT