1.初始化项目。保险起见bin目录完整提交 2.基于现场代码为调整过的初始项目(此次提交还未解决代码差异问题)

This commit is contained in:
龚记林
2026-08-19 11:14:30 +08:00
parent b820c71956
commit 2b30644d28
382 changed files with 140652 additions and 1 deletions
@@ -0,0 +1,203 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Nancy;
using Nancy.Hosting.Self;
using Newtonsoft.Json;
namespace HxBusiness
{
public class BusinessManage
{
#region
private ConnectedManager _webClient;
private ConnectedManager webClient
{
get
{
if (_webClient != null) return _webClient;
else
{
_webClient = new ConnectedManager();
return _webClient;
}
}
}
private ApiModel _apiModel;
public ApiModel apiModel
{
get
{
if (_apiModel != null) return _apiModel;
else
{
_apiModel = new ApiModel()
{
requestUrl = "http://192.168.128.1:8080",
leaveUrl = "http://192.168.128.1:8080",
sendUrl = "http://192.168.128.1:8080"
};
return _apiModel;
}
}
set
{
_apiModel = value;
}
}
#endregion
public BusinessManage()
{
try
{
//启动服务
//数据处理
string result = new ConfigBiz().ReadDb<ApiModel>();
if (string.IsNullOrEmpty(result)) throw new Exception("请配置url");
apiModel = JsonConvert.DeserializeObject<ApiModel>(result);
//启动api服务
//HostConfiguration hostConfigs = new HostConfiguration();
//hostConfigs.UrlReservations.CreateAutomatically = true;
//Uri uri = new Uri(apiModel.sendUrl);
//var host = new NancyHost(hostConfigs, uri);
//host.Start();
WriteTxt.SaveLog1("启动api");
}
catch (Exception ex)
{
WriteTxt.SaveLog1("初始化失败!" + ex.ToString(), "异常日志");
}
}
public void Request(string agvid, string rfid, AgvState state)
{
if (state == null || !state.agvid.ToString().Equals(agvid)) return;
if (state.state == E_State.)
{
int requestCount = 0;
bool result = false;
ThreadPool.QueueUserWorkItem((o) =>
{
while (!result)
{
if (requestCount % 2 == 0)
{
result = RequestLeaved(agvid, rfid);
requestCount++;
}
Thread.Sleep(1000);
}
});
}
}
/// <summary>
/// 请求离开
/// </summary>
/// <param name="agvid">设备编号</param>
/// <param name="rfid">请求时地标</param>
/// <returns></returns>
public bool RequestLeaved(string agvid, string rfid)
{
try
{
if (apiModel == null)
{
WriteTxt.SaveLog1("路口请求时配置为空!", "异常日志");
return false;
}
if (string.IsNullOrEmpty(agvid) || string.IsNullOrEmpty(rfid))
{
WriteTxt.SaveLog1("路口请求时请求参数为空!", "异常日志");
return false;
}
RequestModel model = new RequestModel()
{
equipmentCode = agvid,
requestCode = "AGV" + agvid + "-" + rfid,
arriveTime = DateTime.Now.ToString("yyyyMMddHHmmssfff"),
taskPriority = 100,
taskDeadLine = DateTime.Now.ToString("yyyyMMddHHmmssfff"),
allowedQueueUp = false,
interchangePointCode = rfid
};
string postStr = JsonConvert.SerializeObject(model);
string result = webClient.PostForUrl(apiModel.requestUrl, postStr);
WriteTxt.SaveLog1(string.Format("路口请求url:{0},请求数据:{1},获取回复:{2}", apiModel.requestUrl, postStr, result));
ResponseModel response = JsonConvert.DeserializeObject<ResponseModel>(result);
if (response.code == 0)
return true;
return false;
}
catch (Exception ex)
{
WriteTxt.SaveLog1("路口请求离开异常!" + ex.ToString(), "异常日志");
return false;
}
}
/// <summary>
/// 离开释放
/// </summary>
/// <param name="agvid">设备编号</param>
/// <param name="rfid">离开时地标</param>
/// <returns></returns>
public bool ByLeaved(string agvid, string rfid, string Cross_Location_Go)
{
try
{
if (apiModel == null)
{
WriteTxt.SaveLog1("离开时请求时配置为空!", "异常日志");
return false;
}
if (string.IsNullOrEmpty(agvid) || string.IsNullOrEmpty(rfid))
{
WriteTxt.SaveLog1("离开时请求时请求参数为空!", "异常日志");
return false;
}
RequestLeavedModel model = new RequestLeavedModel()
{
adapterCode = "HUAXIAO",
equipmentCode = agvid,
requestCode = "AGV" + agvid + "-" + Cross_Location_Go,
leaveTime = DateTime.Now.ToString("yyyyMMddHHmmssfff")
};
string postStr = JsonConvert.SerializeObject(model);
string result = webClient.PostForUrl(apiModel.leaveUrl, postStr);
WriteTxt.SaveLog1(string.Format("离开请求url:{0},请求数据:{1},获取回复:{2}", apiModel.requestUrl, postStr, result));
ResponseModel response = JsonConvert.DeserializeObject<ResponseModel>(result);
if (response.code == 0)
return true;
return false;
}
catch (Exception ex)
{
WriteTxt.SaveLog1("离开时请求离开异常!" + ex.ToString(), "异常日志");
return false;
}
}
/// <summary>
/// 被通知启动
/// </summary>
/// <returns></returns>
public bool GetStart()
{
return true;
}
/// <summary>
/// 被通知停止
/// </summary>
/// <returns></returns>
public bool GetStop()
{
return true;
}
}
}