|
|
|
@ -63,7 +63,7 @@ namespace SparkClient.Model.Services |
|
|
|
/// </summary> |
|
|
|
/// </summary> |
|
|
|
/// <param name="url">请求的完整URL</param> |
|
|
|
/// <param name="url">请求的完整URL</param> |
|
|
|
/// <returns>HTTP响应</returns> |
|
|
|
/// <returns>HTTP响应</returns> |
|
|
|
private async Task<HttpSendResult> SendGetRequestAsync(string url, string sendCode = "") |
|
|
|
private async Task<HttpSendResult<T>> SendGetRequestAsync<T>(string url, string sendCode = "", JsonSerializerSettings settings = null)where T : ResponseStatus |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (sendCode.IsNullOrEmpty()) |
|
|
|
if (sendCode.IsNullOrEmpty()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -81,15 +81,15 @@ namespace SparkClient.Model.Services |
|
|
|
int statusCode = (int)result.StatusCode; |
|
|
|
int statusCode = (int)result.StatusCode; |
|
|
|
// 记录日志 |
|
|
|
// 记录日志 |
|
|
|
Logger.Info($"[SendCode={sendCode}]Response: Status={statusCode}, Body={responseBody}"); |
|
|
|
Logger.Info($"[SendCode={sendCode}]Response: Status={statusCode}, Body={responseBody}"); |
|
|
|
var tempEntity = JsonConvert.DeserializeObject<ResponseStatus>(responseBody); |
|
|
|
var tempEntity = JsonConvert.DeserializeObject<T>(responseBody, settings); |
|
|
|
if (StatusCodes.PreviousTaskIncomplete.Equals(tempEntity.Status)) |
|
|
|
if (StatusCodes.PreviousTaskIncomplete.Equals(tempEntity.Status)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
Logger.Info($"S009 请求重试"); |
|
|
|
Logger.Info($"S009 请求重试"); |
|
|
|
await Task.Delay(500); |
|
|
|
await Task.Delay(500); |
|
|
|
return await SendGetRequestAsync(url, sendCode); |
|
|
|
return await SendGetRequestAsync<T>(url, sendCode); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return new HttpSendResult() |
|
|
|
return new HttpSendResult<T>() |
|
|
|
{ |
|
|
|
{ |
|
|
|
StatusCode = statusCode, |
|
|
|
StatusCode = statusCode, |
|
|
|
Content = tempEntity, |
|
|
|
Content = tempEntity, |
|
|
|
@ -150,7 +150,7 @@ namespace SparkClient.Model.Services |
|
|
|
|
|
|
|
|
|
|
|
string url = $"{_baseUrl}/collect_images?light_level={lightLevel}&half_circle={halfCircle}"; |
|
|
|
string url = $"{_baseUrl}/collect_images?light_level={lightLevel}&half_circle={halfCircle}"; |
|
|
|
|
|
|
|
|
|
|
|
var response = await SendGetRequestAsync(url); |
|
|
|
var response = await SendGetRequestAsync<ResponseStatus>(url); |
|
|
|
|
|
|
|
|
|
|
|
if (response.StatusCode != 200) |
|
|
|
if (response.StatusCode != 200) |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -187,7 +187,7 @@ namespace SparkClient.Model.Services |
|
|
|
/// 启动图片收集任务。 |
|
|
|
/// 启动图片收集任务。 |
|
|
|
/// </summary> |
|
|
|
/// </summary> |
|
|
|
/// <returns>任务状态</returns> |
|
|
|
/// <returns>任务状态</returns> |
|
|
|
public Task<HttpSendResult> CollectImagesAsyncNotAwait() |
|
|
|
public Task<HttpSendResult<ResponseStatus>> CollectImagesAsyncNotAwait() |
|
|
|
{ |
|
|
|
{ |
|
|
|
try |
|
|
|
try |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -221,7 +221,7 @@ namespace SparkClient.Model.Services |
|
|
|
|
|
|
|
|
|
|
|
string url = $"{_baseUrl}/collect_images?light_level={lightLevel}&half_circle={halfCircle}"; |
|
|
|
string url = $"{_baseUrl}/collect_images?light_level={lightLevel}&half_circle={halfCircle}"; |
|
|
|
|
|
|
|
|
|
|
|
var result = SendGetRequestAsync(url); |
|
|
|
var result = SendGetRequestAsync<ResponseStatus>(url); |
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
return result; |
|
|
|
|
|
|
|
|
|
|
|
@ -330,7 +330,7 @@ namespace SparkClient.Model.Services |
|
|
|
|
|
|
|
|
|
|
|
try |
|
|
|
try |
|
|
|
{ |
|
|
|
{ |
|
|
|
var response = await SendGetRequestAsync(url); |
|
|
|
var response = await SendGetRequestAsync<ResponseStatus>(url); |
|
|
|
Logger.Debug($" CollectStatusAsync url :{ url} "); |
|
|
|
Logger.Debug($" CollectStatusAsync url :{ url} "); |
|
|
|
if (response.StatusCode == 200) |
|
|
|
if (response.StatusCode == 200) |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -467,7 +467,7 @@ namespace SparkClient.Model.Services |
|
|
|
GenImage = true; |
|
|
|
GenImage = true; |
|
|
|
try |
|
|
|
try |
|
|
|
{ |
|
|
|
{ |
|
|
|
var response = await SendGetRequestAsync(url); |
|
|
|
var response = await SendGetRequestAsync<ResponseStatus>(url); |
|
|
|
Logger.Debug(url); |
|
|
|
Logger.Debug(url); |
|
|
|
if (response.StatusCode == 200) |
|
|
|
if (response.StatusCode == 200) |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -500,7 +500,7 @@ namespace SparkClient.Model.Services |
|
|
|
Logger.Debug(url); |
|
|
|
Logger.Debug(url); |
|
|
|
try |
|
|
|
try |
|
|
|
{ |
|
|
|
{ |
|
|
|
var response = await SendGetRequestAsync(url); |
|
|
|
var response = await SendGetRequestAsync<ResponseStatus>(url); |
|
|
|
|
|
|
|
|
|
|
|
if (response.StatusCode == 200) |
|
|
|
if (response.StatusCode == 200) |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -518,6 +518,32 @@ namespace SparkClient.Model.Services |
|
|
|
return StatusCodes.DeviceNotFound; |
|
|
|
return StatusCodes.DeviceNotFound; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public async Task<GpioStatus> GetGpioStatus() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// GpioStatus |
|
|
|
|
|
|
|
string url = $"{_baseUrl}/gpio_check"; |
|
|
|
|
|
|
|
Logger.Info($"舱门状态检查开始:{url}"); |
|
|
|
|
|
|
|
try |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var response = await SendGetRequestAsync<GpioStatus>(url); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (response.StatusCode == 200) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var result = response.Content; |
|
|
|
|
|
|
|
Logger.Info($"Set Pump : {result.ToSafeAbundantString()} "); |
|
|
|
|
|
|
|
return result; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
Logger.Info($"舱门状态检查完毕,接口status非200视为关闭"); |
|
|
|
|
|
|
|
return GpioStatus.Default(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
catch (Exception e) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
string logMessage = $"[{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}] 发生异常: {e.Message}{Environment.NewLine}"; |
|
|
|
|
|
|
|
Logger.Error(logMessage); |
|
|
|
|
|
|
|
return GpioStatus.Default(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -541,4 +567,39 @@ namespace SparkClient.Model.Services |
|
|
|
/// </summary> |
|
|
|
/// </summary> |
|
|
|
public string device_id { get; set; } |
|
|
|
public string device_id { get; set; } |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class GpioStatus : ResponseStatus |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
public int Value1 { get; set; } |
|
|
|
|
|
|
|
public int Value2 { get; set; } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public bool LensGpioIsOpen() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return Value1 == 48; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public bool DiamondGpioIsOpen() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return Value2 == 48; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public bool LensGpioIsClose() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return Value1 == 49; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public bool DiamondGpioIsClose() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return Value2 == 49; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static GpioStatus Default() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return new GpioStatus |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Status = "S000", |
|
|
|
|
|
|
|
Value1 = 48, |
|
|
|
|
|
|
|
Value2 = 48 |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|