using Microsoft.Extensions.Hosting; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using SlnMesnac.Config; using SlnMesnac.Model.AirportApiEntity; using SQLitePCL; using SqlSugar; using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Text.Json; using TouchSocket.Rpc; using TouchSocket.Sockets; using TouchSocket.WebApi; using JsonSerializer = System.Text.Json.JsonSerializer; using Microsoft.Extensions.Logging; namespace SlnMesnac.TouchSocket { public class AirPorthttpClient : BackgroundService { private readonly AppConfig _appConfig; private readonly ILogger _logger; public AirPorthttpClient(AppConfig appConfig, ILogger logger) { _appConfig = appConfig; _logger = logger; } public static WebApiClient AirportAGVClient; public static WebApiClient AirportManipulatorClient; private WebApiClient CreateWebApiClient(string IpHost) { var client = new WebApiClient(); try { client.Connect(IpHost); _logger.LogInformation(IpHost + "连接成功"); } catch (Exception ex) { _logger.LogError("ERROR: " + ex.Message); return null; } return client; } protected override Task ExecuteAsync(CancellationToken stoppingToken) { try { AirportAGVClient = CreateWebApiClient(_appConfig.AGVIpConfig); } catch (Exception ex) { _logger.LogError("ERROR: " + ex.Message); return Task.FromException(ex); } return Task.CompletedTask; } /// /// /// /// public static string AGVCallRequest() { JToken responseValue = AirportAGVClient.InvokeT("POST:", null, new AGVSingalEntity()); return responseValue.ToString(); } /// /// AGV下发任务请求 /// /// /// public static AGVResponseEntity AGVAddTaskRequest(AGVRequestAddTaskEntity addTaskEntity) { JToken responseValue = AirportAGVClient.InvokeT("POST:/api/task/addTask", null, addTaskEntity); if (responseValue == null) { return new AGVResponseEntity(); } string json = responseValue.ToString(); if (string.IsNullOrEmpty(json)) { return new AGVResponseEntity(); } AGVResponseEntity responseEntity; responseEntity = JsonSerializer.Deserialize>(json); return responseEntity; } /// /// 获取AGV所有信息 /// /// /// public static AGVResponseEntity> AGVStateRequest() { JToken responseValue = AirportAGVClient.InvokeT("GET:http://192.168.40.81:5102/api/task/robot/getRobot", null); if (responseValue == null) { return new AGVResponseEntity>(); } string json = responseValue.ToString(); if (string.IsNullOrEmpty(json)) { return new AGVResponseEntity>(); } AGVResponseEntity> ResponseEntity; ResponseEntity = JsonSerializer.Deserialize>>(json); return ResponseEntity; } } }