执行代码清理,修复warning

This commit is contained in:
2023-11-06 19:59:12 +08:00
parent c6b8dfc861
commit 1dbb17f103
118 changed files with 5046 additions and 4111 deletions

View File

@@ -20,8 +20,8 @@ namespace Tnb.WarehouseMgr
{
private readonly ElevatorControlConfiguration _elevatorCtlCfg = new();
private readonly BackgroundService _agvHeartbeatMonitor;
private static Dictionary<string, Func<BackgroundService, bool>> _fetchStartedStausValue = new();
private bool isFrontDoorBit = false; //是否到前门位
private static readonly Dictionary<string, Func<BackgroundService, bool>> _fetchStartedStausValue = new();
private readonly bool isFrontDoorBit = false; //是否到前门位
public ElevatorControlService()
{
@@ -36,17 +36,17 @@ namespace Tnb.WarehouseMgr
[HttpPost]
public async Task<dynamic> CallLiftTest(string devName, int floor)
{
var isSuccefuly = false;
(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) = await GetElevatorStatus(devName, CancellationToken.None);
bool isSuccefuly = false;
(int sysStatus, int runStatus, _, int doorStatus, int agvStatus) = await GetElevatorStatus(devName, CancellationToken.None);
//判断当前楼层是否是放货楼层,如不是则呼叫电梯到当前楼层
if (sysStatus.ToEnum<EnumSysStatus>() == EnumSysStatus. && runStatus.ToEnum<EnumRunStatus>() == EnumRunStatus. &&
agvStatus.ToEnum<EnumAgvStatus>() != EnumAgvStatus.AGV运行状态)
{
if (doorStatus.ToEnum<EnumDoorStatus>() != EnumDoorStatus.)
{
await SendOpenCloseCmd(devName, (int)EnumAgvControl.);
_ = await SendOpenCloseCmd(devName, (int)EnumAgvControl.);
}
var result = await WriteTagAsync(devName, ElevatorConsts.FloorExecute, floor); //呼叫电梯到指定楼层
dynamic result = await WriteTagAsync(devName, ElevatorConsts.FloorExecute, floor); //呼叫电梯到指定楼层
if (!string.IsNullOrEmpty(result))
{
JObject jo = JObject.Parse(result);
@@ -60,7 +60,7 @@ namespace Tnb.WarehouseMgr
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<dynamic> ThreeFloorElevatorFlow()
public dynamic ThreeFloorElevatorFlow()
{
//test by close door
//_agvHeartbeatMonitor.StartAsync(CancellationToken.None);
@@ -118,7 +118,7 @@ namespace Tnb.WarehouseMgr
private Task<object> SetRequestParameter(string tagName, object value)
{
var tcs = new TaskCompletionSource<object>();
TaskCompletionSource<object> tcs = new();
dynamic reqParam = new ExpandoObject();
reqParam.DevName = _elevatorCtlCfg.DevName;
reqParam.TagName = tagName;
@@ -131,15 +131,14 @@ namespace Tnb.WarehouseMgr
private Task<Dictionary<string, string>> SetParameter(dynamic obj)
{
var parameters = new Dictionary<string, string>()
Dictionary<string, string> parameters = new()
{
["DevName"] = _elevatorCtlCfg.DevName,
["token"] = _elevatorCtlCfg.token,
};
var dynamicDic = obj as IDictionary<string, object>;
if (dynamicDic != null)
if (obj is IDictionary<string, object> dynamicDic)
{
foreach (var (k, v) in dynamicDic)
foreach ((string k, object v) in dynamicDic)
{
parameters[k] = v?.ToString() ?? string.Empty;
}
@@ -150,18 +149,21 @@ namespace Tnb.WarehouseMgr
/// <summary>
/// 向系统发送开关门指令
/// </summary>
/// <param name="devName"></param>
/// <param name="value">开关门指令</param>
/// <returns></returns>
public async Task<bool> SendOpenCloseCmd(string devName, int value)
{
var dicCommand = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
dicCommand["DevName"] = devName;
dicCommand["token"] = _elevatorCtlCfg.token;
dicCommand["TagName"] = "DoorExecute";
dicCommand["Value"] = value.ToString();
Dictionary<string, string> dicCommand = new(StringComparer.OrdinalIgnoreCase)
{
["DevName"] = devName,
["token"] = _elevatorCtlCfg.token,
["TagName"] = "DoorExecute",
["Value"] = value.ToString()
};
try
{
await HttpClientHelper.GetAsync(_elevatorCtlCfg.WriteTagUrl, pars: dicCommand);
_ = await HttpClientHelper.GetAsync(_elevatorCtlCfg.WriteTagUrl, pars: dicCommand);
}
catch (Exception)
{
@@ -177,43 +179,51 @@ namespace Tnb.WarehouseMgr
private async Task<dynamic> SetAgvControlStatus(int value)
{
var dicCommand = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
dicCommand["DevName"] = _elevatorCtlCfg.DevName;
dicCommand["TagName"] = "AGVControl";
dicCommand["Value"] = value.ToString();
dicCommand["token"] = _elevatorCtlCfg.token;
Dictionary<string, string> dicCommand = new(StringComparer.OrdinalIgnoreCase)
{
["DevName"] = _elevatorCtlCfg.DevName,
["TagName"] = "AGVControl",
["Value"] = value.ToString(),
["token"] = _elevatorCtlCfg.token
};
return await HttpClientHelper.GetAsync(_elevatorCtlCfg.WriteTagUrl, pars: dicCommand);
}
/// <summary>
/// 向指定的标签属性写入值
/// </summary>
/// <param name="devName"></param>
/// <param name="tagName"></param>
/// <param name="value"></param>
/// <returns></returns>
public async Task<dynamic> WriteTagAsync(string devName, string tagName, int value)
{
var dicCommand = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
dicCommand["DevName"] = devName;
dicCommand["token"] = _elevatorCtlCfg.token;
dicCommand["TagName"] = tagName;
dicCommand["Value"] = value.ToString();
Dictionary<string, string> dicCommand = new(StringComparer.OrdinalIgnoreCase)
{
["DevName"] = devName,
["token"] = _elevatorCtlCfg.token,
["TagName"] = tagName,
["Value"] = value.ToString()
};
return await HttpClientHelper.GetAsync(_elevatorCtlCfg.WriteTagUrl, pars: dicCommand);
}
/// <summary>
/// 根据标签名称获取标签值
/// </summary>
/// <param name="devName"></param>
/// <param name="tagName"></param>
/// <returns></returns>
public async Task<int> GetTagAsync(string devName, string tagName)
{
var dicCommand = new Dictionary<string, string>();
dicCommand["DevName"] = devName;
dicCommand["token"] = _elevatorCtlCfg.token;
dicCommand["TagName"] = tagName;
var result = await HttpClientHelper.GetAsync(_elevatorCtlCfg.GetTagUrl, pars: dicCommand);
Dictionary<string, string> dicCommand = new()
{
["DevName"] = devName,
["token"] = _elevatorCtlCfg.token,
["TagName"] = tagName
};
string result = await HttpClientHelper.GetAsync(_elevatorCtlCfg.GetTagUrl, pars: dicCommand);
JObject jo = JObject.Parse(result);
return jo.Value<int>("V");
}
@@ -221,21 +231,24 @@ namespace Tnb.WarehouseMgr
/// <summary>
/// 获取电梯状态
/// </summary>
/// <param name="devName"></param>
/// <param name="token"></param>
/// <returns></returns>
public async Task<(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus)> GetElevatorStatus(string devName, CancellationToken token)
{
(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) multi = (-1, -1, -1, -1, -1);
var pars = new Dictionary<string, string>();
pars["DevName"] = devName;
pars["Pos"] = "1";
pars["Count"] = "11";
pars["token"] = _elevatorCtlCfg.token;
var url = _elevatorCtlCfg.GetTagListUrl;
var systemInfo = await HttpClientHelper.GetAsync(url, pars: pars);
var jo = JObject.Parse(systemInfo);
var objs = jo["Items"].Values<JObject>().ToList();
Dictionary<string, string> pars = new()
{
["DevName"] = devName,
["Pos"] = "1",
["Count"] = "11",
["token"] = _elevatorCtlCfg.token
};
string url = _elevatorCtlCfg.GetTagListUrl;
string systemInfo = await HttpClientHelper.GetAsync(url, pars: pars);
JObject jo = JObject.Parse(systemInfo);
List<JObject?> objs = jo["Items"].Values<JObject>().ToList();
//if (objs?.Count == 4)
{
if (objs[0].Value<string>("Name").Equals("SysStatus")
@@ -252,15 +265,16 @@ namespace Tnb.WarehouseMgr
/// <summary>
/// 检查Agv状态
/// </summary>
/// <param name="devName"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<bool> CheckAgvStatus(string devName, CancellationToken cancellationToken)
{
var isInAgvStatus = false;
var agvStatus = await GetTagAsync(devName, ElevatorConsts.AGVStatus);
bool isInAgvStatus = false;
int agvStatus = await GetTagAsync(devName, ElevatorConsts.AGVStatus);
if (agvStatus.ToEnum<EnumAgvStatus>() != EnumAgvStatus.AGV运行状态)
{
var result = await WriteTagAsync(devName, ElevatorConsts.AGVControl, 1);
dynamic result = await WriteTagAsync(devName, ElevatorConsts.AGVControl, 1);
JObject jo = JObject.Parse(result);
if (jo != null && jo.Value<string>("Result").Equals("Ok", StringComparison.OrdinalIgnoreCase))
{
@@ -278,17 +292,17 @@ namespace Tnb.WarehouseMgr
/// <returns></returns>
public async Task<bool> CallLift(string devName, int floor, CancellationToken cancellationToken)
{
var isSuccefuly = false;
(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) = await GetElevatorStatus(devName, CancellationToken.None);
bool isSuccefuly = false;
(int sysStatus, int runStatus, _, int doorStatus, int agvStatus) = await GetElevatorStatus(devName, CancellationToken.None);
//判断当前楼层是否是放货楼层,如不是则呼叫电梯到当前楼层
if (sysStatus.ToEnum<EnumSysStatus>() == EnumSysStatus. && runStatus.ToEnum<EnumRunStatus>() == EnumRunStatus. &&
agvStatus.ToEnum<EnumAgvStatus>() != EnumAgvStatus.AGV运行状态)
{
if (doorStatus.ToEnum<EnumDoorStatus>() != EnumDoorStatus.)
{
await SendOpenCloseCmd(devName, (int)EnumAgvControl.);
_ = await SendOpenCloseCmd(devName, (int)EnumAgvControl.);
}
var result = await WriteTagAsync(devName, ElevatorConsts.FloorExecute, floor); //呼叫电梯到指定楼层
dynamic result = await WriteTagAsync(devName, ElevatorConsts.FloorExecute, floor); //呼叫电梯到指定楼层
if (!string.IsNullOrEmpty(result))
{
JObject jo = JObject.Parse(result);
@@ -301,7 +315,7 @@ namespace Tnb.WarehouseMgr
public class ElevatorData
{
public string name { get; set; }
public string value { get; set; }
public string? name { get; set; }
public string? value { get; set; }
}
}