diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2022-07-05 20:28:29 +0300 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2022-07-05 20:28:29 +0300 |
commit | 4613c0d9cb51640bc647c540fed19668db2112e9 (patch) | |
tree | 3b4e45c9809fa04d91fabc2d9fa7c6f65ccfd415 | |
parent | 372b4331b4871ad1b2c26aa569793d89c9a97220 (diff) |
Docstrings.
-rw-r--r-- | TuyaApi.cs | 3 | ||||
-rw-r--r-- | TuyaDevice.cs | 15 |
2 files changed, 12 insertions, 6 deletions
@@ -113,6 +113,7 @@ namespace com.clusterrr.TuyaNet /// <param name="headers">Additional headers.</param>
/// <param name="noToken">Execute query without token.</param>
/// <param name="forceTokenRefresh">Refresh access token even it's not expired.</param>
+ /// <param name="cancellationToken">Cancellation token.</param>
/// <returns>JSON string with response.</returns>
public async Task<string> RequestAsync(Method method, string uri, string body = null, Dictionary<string, string> headers = null, bool noToken = false, bool forceTokenRefresh = false, CancellationToken cancellationToken = default)
{
@@ -213,6 +214,7 @@ namespace com.clusterrr.TuyaNet /// </summary>
/// <param name="deviceId">Device ID.</param>
/// <param name="forceTokenRefresh">Refresh access token even it's not expired.</param>
+ /// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Device info.</returns>
public async Task<TuyaDeviceApiInfo> GetDeviceInfoAsync(string deviceId, bool forceTokenRefresh = false, CancellationToken cancellationToken = default)
{
@@ -227,6 +229,7 @@ namespace com.clusterrr.TuyaNet /// </summary>
/// <param name="anyDeviceId">ID of any registered device.</param>
/// <param name="forceTokenRefresh">Refresh access token even it's not expired.</param>
+ /// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Array of devices info.</returns>
public async Task<TuyaDeviceApiInfo[]> GetAllDevicesInfoAsync(string anyDeviceId, bool forceTokenRefresh = false, CancellationToken cancellationToken = default)
{
diff --git a/TuyaDevice.cs b/TuyaDevice.cs index 30f764c..da607cf 100644 --- a/TuyaDevice.cs +++ b/TuyaDevice.cs @@ -150,6 +150,7 @@ namespace com.clusterrr.TuyaNet /// <param name="retries">Number of retries in case of network error (default - 2).</param>
/// <param name="nullRetries">Number of retries in case of empty answer (default - 1).</param>
/// <param name="overrideRecvTimeout">Override receive timeout (default - ReceiveTimeout property).</param>
+ /// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Parsed and decrypred received data as instance of TuyaLocalResponse.</returns>
public async Task<TuyaLocalResponse> SendAsync(TuyaCommand command, string json, int retries = 2, int nullRetries = 1, int? overrideRecvTimeout = null, CancellationToken cancellationToken = default)
=> DecodeResponse(await SendAsync(EncodeRequest(command, json), retries, nullRetries, overrideRecvTimeout, cancellationToken));
@@ -161,6 +162,7 @@ namespace com.clusterrr.TuyaNet /// <param name="retries">Number of retries in case of network error (default - 2).</param>
/// <param name="nullRetries">Number of retries in case of empty answer (default - 1).</param>
/// <param name="overrideRecvTimeout">Override receive timeout (default - ReceiveTimeout property).</param>
+ /// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Received data (raw).</returns>
public async Task<byte[]> SendAsync(byte[] data, int retries = 2, int nullRetries = 1, int? overrideRecvTimeout = null, CancellationToken cancellationToken = default)
{
@@ -237,12 +239,8 @@ namespace com.clusterrr.TuyaNet }
if ((result.Length <= 28) && (nullRetries > 0)) // empty response
{
- try
- {
- await Task.Delay(NullRetriesInterval, cancellationToken);
- result = await ReceiveAsync(stream, nullRetries - 1, overrideRecvTimeout: overrideRecvTimeout, cancellationToken);
- }
- catch { }
+ await Task.Delay(NullRetriesInterval, cancellationToken);
+ result = await ReceiveAsync(stream, nullRetries - 1, overrideRecvTimeout: overrideRecvTimeout, cancellationToken);
}
return result;
}
@@ -253,6 +251,7 @@ namespace com.clusterrr.TuyaNet /// <param name="retries">Number of retries in case of network error (default - 2).</param>
/// <param name="nullRetries">Number of retries in case of empty answer (default - 1).</param>
/// <param name="overrideRecvTimeout">Override receive timeout (default - ReceiveTimeout property).</param>
+ /// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Dictionary of DP numbers and values.</returns>
public async Task<Dictionary<int, object>> GetDpsAsync(int retries = 5, int nullRetries = 1, int? overrideRecvTimeout = null, CancellationToken cancellationToken = default)
{
@@ -274,6 +273,7 @@ namespace com.clusterrr.TuyaNet /// <param name="nullRetries">Number of retries in case of empty answer (default - 1).</param>
/// <param name="overrideRecvTimeout">Override receive timeout (default - ReceiveTimeout property).</param>
/// <param name="allowEmptyResponse">Do not throw exception on empty Response</param>
+ /// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Dictionary of DP numbers and values.</returns>
public async Task<Dictionary<int, object>> SetDpAsync(int dp, object value, int retries = 2, int nullRetries = 1, int? overrideRecvTimeout = null, bool allowEmptyResponse = false, CancellationToken cancellationToken = default)
=> await SetDpsAsync(new Dictionary<int, object> { { dp, value } }, retries, nullRetries, overrideRecvTimeout, allowEmptyResponse, cancellationToken);
@@ -286,6 +286,7 @@ namespace com.clusterrr.TuyaNet /// <param name="nullRetries">Number of retries in case of empty answer (default - 1).</param>
/// <param name="overrideRecvTimeout">Override receive timeout (default - ReceiveTimeout property).</param>
/// <param name="allowEmptyResponse">Do not throw exception on empty Response</param>
+ /// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Dictionary of DP numbers and values.</returns>
public async Task<Dictionary<int, object>> SetDpsAsync(Dictionary<int, object> dps, int retries = 2, int nullRetries = 1, int? overrideRecvTimeout = null, bool allowEmptyResponse = false, CancellationToken cancellationToken = default)
{
@@ -315,6 +316,7 @@ namespace com.clusterrr.TuyaNet /// <param name="retries">Number of retries in case of network error (default - 2).</param>
/// <param name="nullRetries">Number of retries in case of empty answer (default - 1).</param>
/// <param name="overrideRecvTimeout">Override receive timeout (default - ReceiveTimeout property).</param>
+ /// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Dictionary of DP numbers and values.</returns>
public async Task<Dictionary<int, object>> UpdateDpsAsync(IEnumerable<int> dpIds, int retries = 5, int nullRetries = 1, int? overrideRecvTimeout = null, CancellationToken cancellationToken = default)
{
@@ -336,6 +338,7 @@ namespace com.clusterrr.TuyaNet /// Get current local key from Tuya Cloud API
/// </summary>
/// <param name="forceTokenRefresh">Refresh access token even it's not expired.</param>
+ /// <param name="cancellationToken">Cancellation token.</param>
public async Task RefreshLocalKeyAsync(bool forceTokenRefresh = false, CancellationToken cancellationToken = default)
{
if (string.IsNullOrEmpty(accessId)) throw new ArgumentException("Access ID is not specified", "accessId");
|