Interface IDevice
Represents an interface for interacting with a Huddly device, providing methods to retrieve device information, perform various operations, and control device settings.
public interface IDevice : IImageSettings, IPtz
- Inherited Members
Properties
ConnectionState
Device ConnectionState
Once a device disconnects, it will not reconnect to the same instance.
ConnectionState ConnectionState { get; }
Property Value
ConnectionType
Device ConnectionType
ConnectionType ConnectionType { get; }
Property Value
FirmwareChecker
Get an IFirmwareChecker used for getting info on the latest available firmware release, and parsing information from firmware files that are relevant for the device.
IFirmwareChecker FirmwareChecker { get; }
Property Value
Id
Unique device identifier.
string Id { get; }
Property Value
LastActivity
UTC timestamp that records the last device activity.
DateTime LastActivity { get; }
Property Value
Manufacturer
Device Manufacturer
Manufacturer Manufacturer { get; }
Property Value
- Manufacturer
Model
Device Model
DeviceModel Model { get; }
Property Value
- DeviceModel
Serial
Device Serial
string Serial { get; }
Property Value
Methods
AddFeatureOption(FeatureOption, CancellationToken)
Add a FeatureOption to the device
Task<Result> AddFeatureOption(FeatureOption feature, CancellationToken ct = default)
Parameters
feature
FeatureOptionFeatureOption to add
ct
CancellationToken
Returns
EraseLog(CancellationToken)
Erase device logs
Task<Result> EraseLog(CancellationToken ct = default)
Parameters
Returns
GetDetector(DetectorOptions?, CancellationToken)
Get an IDetector used for subscribing to detections
Task<Result<IDetector>> GetDetector(DetectorOptions? options = null, CancellationToken ct = default)
Parameters
options
DetectorOptionsct
CancellationToken
Returns
GetFeatureOptions(CancellationToken)
Get device FeatureOptions
Task<Result<IList<FeatureOption>>> GetFeatureOptions(CancellationToken ct = default)
Parameters
Returns
- Task<Result<IList<FeatureOption>>>
A result with the current device feature options
GetFirmwareParser()
Obsolete: Use FirmwareChecker instead
[Obsolete("Use FirmwareChecker instead. Method will be removed in SDK version 3.")]
IFirmwareParser GetFirmwareParser()
Returns
GetFirmwareUpgrader(string, CancellationToken)
Get a IFirmwareUpgrader used for upgrading the device
Task<IFirmwareUpgrader> GetFirmwareUpgrader(string firmwarePath, CancellationToken ct = default)
Parameters
firmwarePath
stringFile path to a valid device firmware.
ct
CancellationToken
Returns
Remarks
To get a valid firmware, see GetLatestFirmwareReleaseInfo(FirmwareChannel, CancellationToken)
GetFirmwareVersion(CancellationToken)
Get the firmware version of the device
Task<Result<FirmwareVersion>> GetFirmwareVersion(CancellationToken ct = default)
Parameters
Returns
- Task<Result<FirmwareVersion>>
A result containing the current version of the device
GetFramingMode(CancellationToken)
Get the current framing mode of the camera
Task<Result<FramingMode>> GetFramingMode(CancellationToken ct = default)
Parameters
Returns
- Task<Result<FramingMode>>
A FramingValue Result.
GetFramingSubscriber(FramingSubscriberOptions, CancellationToken)
Get an IFramingSubscriber used for subscribing to device framing (PTZ) changes
Task<Result<IFramingSubscriber>> GetFramingSubscriber(FramingSubscriberOptions options, CancellationToken ct = default)
Parameters
options
FramingSubscriberOptionsct
CancellationToken
Returns
GetFramingZone(CancellationToken)
Get an FramingZone used for getting framing zone info
Task<Result<FramingZone>> GetFramingZone(CancellationToken ct = default)
Parameters
Returns
GetFramingZonePeopleDetectionResults(CancellationToken)
Get list of FramingZonePersonDetectionResult that are detected within the framing zone
Task<Result<IList<FramingZonePersonDetectionResult>>> GetFramingZonePeopleDetectionResults(CancellationToken ct = default)
Parameters
Returns
GetFwVersion(CancellationToken)
Obsolete: Use GetFirmwareVersion instead
[Obsolete("Use GetFirmwareVersion instead. Method will be removed in SDK version 3.")]
Task<Result<SemVersion>> GetFwVersion(CancellationToken ct = default)
Parameters
Returns
GetLatestFirmwareReleaseInfo(FirmwareChannel, CancellationToken)
Obsolete: Use FirmwareChecker instead
[Obsolete("Use FirmwareChecker.GetLatestRemoteVersion() instead. Method will be removed in SDK version 3.")]
Task<Result<FirmwareInfo>> GetLatestFirmwareReleaseInfo(FirmwareChannel channel = FirmwareChannel.Stable, CancellationToken ct = default)
Parameters
channel
FirmwareChannelct
CancellationToken
Returns
GetLog(Stream, CancellationToken)
Get device logs.
Task<Result> GetLog(Stream outputStream, CancellationToken ct = default)
Parameters
outputStream
StreamA stream to write the logs to
ct
CancellationToken
Returns
GetName(CancellationToken)
Get device name
Task<Result<string>> GetName(CancellationToken ct = default)
Parameters
Returns
GetStreamStatus(CancellationToken)
Get current stream status (stream name, active?, size)
Task<Result<StreamStatusContainer>> GetStreamStatus(CancellationToken ct = default)
Parameters
ct
CancellationTokenA cancellation token
Returns
- Task<Result<StreamStatusContainer>>
A Stream status result
GetSupportedFeatures(CancellationToken)
Get supported features of the device
Task<Result<SupportedFeatures>> GetSupportedFeatures(CancellationToken ct = default)
Parameters
Returns
- Task<Result<SupportedFeatures>>
The supported features of the device
Remarks
The currently supported features of a device is dynamic and prone to change. Consumers should use this method to get an updated overview of which features are currently supported. It is recommended to call this method on device connection for every device a consumer wants to communicate with.
GetTime(CancellationToken)
Get the device internal time
Task<Result<DateTime>> GetTime(CancellationToken ct = default)
Parameters
Returns
GetUptime(CancellationToken)
Get the device uptime
Task<Result<TimeSpan>> GetUptime(CancellationToken ct = default)
Parameters
Returns
IsFramingZoneEnabled(CancellationToken)
Get the current toggle for FramingZone
Task<Result<bool>> IsFramingZoneEnabled(CancellationToken ct = default)
Parameters
Returns
IsGreaterThanCurrentVersion(FirmwareInfo, CancellationToken)
Obsolete: Use GetFirmwareVersion in combination with FirmwareChecker instead
[Obsolete("Use GetFirmwareVersion().CompareTo() instead. Method will be removed in SDK version 3.")]
Task<Result<bool>> IsGreaterThanCurrentVersion(FirmwareInfo firmwareInfo, CancellationToken ct = default)
Parameters
firmwareInfo
FirmwareInfoct
CancellationToken
Returns
Reboot(CancellationToken)
Reboot the device.
Task<Result> Reboot(CancellationToken ct = default)
Parameters
Returns
Remarks
After calling this method successfully, the device instance will disconnect. To communicate with the device after it has booted, use the new IDevice instance emitted in the DeviceConnected event
ReportAudioOutputLevel(int, double[], CancellationToken)
Report the current host audio output level to the device
Task<Result> ReportAudioOutputLevel(int sampleRate, double[] samples, CancellationToken ct = default)
Parameters
sampleRate
intApproximate sample rate, in samples per second
samples
double[]Output level samples, in the normalized range [0.0, 1.0]
ct
CancellationToken
Returns
SetFramingMode(FramingMode, CancellationToken)
Set device framing mode
Task<Result> SetFramingMode(FramingMode value, CancellationToken ct = default)
Parameters
value
FramingModeThe new value. For accepted values, query GetSupportedFeatures(CancellationToken)
ct
CancellationToken
Returns
SetFramingZone(FramingZone, CancellationToken)
Set device framing zone
Task<Result> SetFramingZone(FramingZone value, CancellationToken ct = default)
Parameters
value
FramingZoneThe new value
ct
CancellationToken
Returns
SetTime(DateTime, CancellationToken)
Set the device internal time
Task<Result> SetTime(DateTime value, CancellationToken ct = default)
Parameters
value
DateTimeThe new value
ct
CancellationToken
Returns
SubscribeToStreamStatusChange(CancellationToken)
Subscribe to get continuous stream status when a stream opens/closes
try
{
await foreach (var streamStatus in device.SubscribeToStreamStatusChange(ct))
{
Console.WriteLine($"Received stream status: {streamStatus}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error receiving stream statuses: {ex.Message}");
}
IAsyncEnumerable<StreamStatusContainer> SubscribeToStreamStatusChange(CancellationToken ct = default)
Parameters
ct
CancellationTokenA cancellation token
Returns
ToggleFramingZone(Toggle, CancellationToken)
Set the current toggle for FramingZone
Task<Result> ToggleFramingZone(Toggle toggle, CancellationToken ct = default)
Parameters
toggle
ToggleA toggle value to turn on/off the feature
ct
CancellationToken