Commit df95c47d 张东亮

发送任务间隔长

1 个父辈 e3289279
......@@ -184,7 +184,7 @@ namespace Common
{
try
{
var wc = new MyWebClient(10000) { Encoding = encoding };
var wc = new MyWebClient(3000) { Encoding = encoding };
var readStream = wc.OpenRead(url);
using (var sr = new StreamReader(readStream, encoding))
{
......
......@@ -388,7 +388,7 @@ namespace DeviceLibrary
{
try
{
string ip = info.FleetIP;
string url = "http://" + ip + "/api/v2.0.0/mission_scheduler/search";
string body = "{\"filters\" : [{\"fieldname\": \"description\", \"operator\": \"LIKE\", \"value\": \"" + info.TaskRunState.Task.Name + "-" + info.TaskRunState.TaskTimeStamp + "-" + info.ID + "\"}]}";
......@@ -482,7 +482,7 @@ namespace DeviceLibrary
/// 删除当前所有任务
/// </summary>
/// <param name="info"></param>
static void Del_Mission(AgvInfo info)
static void Del_Mission(AgvInfo info)
{
try
{
......@@ -500,7 +500,7 @@ namespace DeviceLibrary
/// </summary>
/// <param name="authorization"></param>
/// <param name="id"></param>
static void Del_Mission_Fleet(AgvInfo agv)
static void Del_Mission_Fleet(AgvInfo agv)
{
try
{
......@@ -588,7 +588,7 @@ namespace DeviceLibrary
/// <param name="battery"></param>
/// <param name="mission_text"></param>
/// <returns></returns>
public static bool Get_State(AgvInfo info, out eAGVState stateID, out string stateText, out int battery, out string mission_text, out MirPosition position,out List<Mir_Error> mir_Errors)
public static bool Get_State(AgvInfo info, out eAGVState stateID, out string stateText, out int battery, out string mission_text, out MirPosition position, out List<Mir_Error> mir_Errors)
{
stateID = eAGVState.UNKNOWN;
stateText = "";
......@@ -629,13 +629,17 @@ namespace DeviceLibrary
position.Point.Y = Convert.ToSingle(posDic["y"]);
object[] errors = (object[])dic["errors"];
if(errors !=null)
if (errors != null)
{
foreach (var item in errors)
{
Dictionary<string, object> tmp = (Dictionary<string, object>)item;
mir_Errors.Add(new Mir_Error() { code=int.Parse(tmp["code"].ToString()),
description=tmp["description"].ToString(), module=tmp["module"].ToString() });
mir_Errors.Add(new Mir_Error()
{
code = int.Parse(tmp["code"].ToString()),
description = tmp["description"].ToString(),
module = tmp["module"].ToString()
});
}
}
return true;
......@@ -665,6 +669,8 @@ namespace DeviceLibrary
Dictionary<string, object> dic = (Dictionary<string, object>)serializer.DeserializeObject(json);
if (dic == null) return false;
if (!dic.ContainsKey("state_id"))
return false;
string s = dic["state_id"].ToString();
if (s == "3")
return true;
......@@ -756,7 +762,7 @@ namespace DeviceLibrary
ping.Dispose();
if (result.Status != System.Net.NetworkInformation.IPStatus.Success)
{
// log.Debug("Ping " + ip + " 请求没有响应");
// log.Debug("Ping " + ip + " 请求没有响应");
return false;
}
return true;
......@@ -792,7 +798,7 @@ namespace DeviceLibrary
{
var client = new RestClient(url) { Timeout = httpTimeout };
var request = new RestRequest(Method.POST);
request.Timeout =10000;
request.Timeout = 10000;
request.AddHeader("Host", ip);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Accept-Language", "zh_CN");
......@@ -836,7 +842,7 @@ namespace DeviceLibrary
request.AddHeader("Accept-Language", "zh_CN");
request.AddParameter("application/json", "", ParameterType.RequestBody);
int tryTimes = 5;
while(tryTimes>0)
while (tryTimes > 0)
{
IRestResponse response = client.Execute(request);
log.Info($"HttpDel URL: [{url}][{response.StatusCode}]");
......
......@@ -103,6 +103,7 @@ namespace DeviceLibrary
ChargePileManager.StopCharge(agv);
runInfo = "充电过程检测到任务,电量" + agv.Battery + "%大于最小电量" + BatteryMin + "%,中断充电执行任务";
JobRunStep.Msg = runInfo;
MiR_API.DelMission(agv);
JobRunStep.EndJob();
return job;
}
......@@ -132,6 +133,7 @@ namespace DeviceLibrary
ChargePileManager.StopCharge(agv);
runInfo = "充电过程检测到任务,电量" + agv.Battery + "%大于最小电量" + BatteryMin + "%,中断充电执行任务";
JobRunStep.Msg = runInfo;
MiR_API.DelMission(agv);
JobRunStep.EndJob();
return job;
}
......
......@@ -231,7 +231,7 @@ namespace DeviceLibrary
// //报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.CurTargetNode.Name, service.model.TransportStatus.ModeStr.agvButton,
$"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("f2")}分"), true);
$"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("f2")}分"), false);
}
}
else if (JobRunStep.IsStep(RunStep.SD_LiftToLine_10_CheckNextLine))
......@@ -423,7 +423,7 @@ namespace DeviceLibrary
////上报运输状态
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.SrcNode.Name, service.model.TransportStatus.ModeStr.auto,
$"等待电梯到达超时"));
$"等待电梯到达超时"),false);
}
......@@ -498,7 +498,7 @@ namespace DeviceLibrary
//上报位置
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service.model.TransportStatus.TypeStr.status, agv.Name, JobParam.SrcNode.Name, service.model.TransportStatus.ModeStr.auto,
$"电梯卸车"));
$"电梯卸车"), false);
//任务状态变更
MissionManager.SetMissionState(JobParam.GetMissionInfo().missionId, service.model.MissionState.返回到达电梯内, out string msg);
}
......
......@@ -158,7 +158,7 @@ namespace DeviceLibrary.bean.job
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service.model.TransportStatus.TypeStr.error, agv.Name, agv.Place.Name, service.model.TransportStatus.ModeStr.agvButton,
$"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("f2")}分"), true);
$"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("f2")}分"), false);
}
}
else if (JobRunStep.IsStep(RunStep.SD_Line_OneToMany_06_CheckNextLine))
......
......@@ -193,6 +193,7 @@ namespace DeviceLibrary
//4C车使用4D的标识
liftClient = $"{Common.AppConfigHelper.GetValue(SettingString.AppIdentity, "NEOTEL")}-{SettingString._4D}";
}
if (lift.LiftContext.HasShelfNeedLeave(JobParam.CurTargetNode.Name, liftClient, out JobParam.LiftStatus))
{
ChargePileManager.StopCharge(agv);
......@@ -207,7 +208,7 @@ namespace DeviceLibrary
JobRunStep.ToNextStep(RunStep.LineToLift_05_01_ToStandby);
//设置电梯占用
//SetLiftOccupied(JobParam.CurTargetNode.Name, agv);
runInfo = $"{JobParam.CurTargetNode.AliceName}已开门。电梯内有送料的料车但无工单信息,去待机点,需要手动清空电梯缓存并关闭电梯门";//
runInfo = $"{JobParam.CurTargetNode.AliceName}已开门。电梯内有送料的料车但无工单信息【{JsonHelper.SerializeObject(JobParam?.LiftStatus)}】,去待机点,需要手动清空电梯缓存并关闭电梯门【{LiftContext.GetLiftInfos()}】";//
ToStandby(agv);
JobRunStep.Msg = runInfo;
}
......@@ -244,7 +245,7 @@ namespace DeviceLibrary
////上报运输状态
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.CurTargetNode.Name, service.model.TransportStatus.ModeStr.auto,
$"等待电梯到达超时"));
$"等待电梯到达超时"), false);
}
}
else if (JobRunStep.IsStep(RunStep.LineToLift_05_01_ToStandby))
......
......@@ -111,7 +111,7 @@ namespace DeviceLibrary.bean.job
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service.model.TransportStatus.TypeStr.error, agv.Name, agv.Place.Name, service.model.TransportStatus.ModeStr.agvButton,
$"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("f2")}分"), true);
$"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("f2")}分"), false);
}
}
}
......
......@@ -176,7 +176,7 @@ namespace DeviceLibrary.bean.job
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.CurTargetNode.Name, service.model.TransportStatus.ModeStr.agvButton,
$"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("f2")}分"), true);
$"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("f2")}分"), false);
}
}
else if (JobRunStep.IsStep(RunStep.Steel_LiftToLine_10_CheckNextLine))
......
......@@ -170,7 +170,7 @@ namespace DeviceLibrary.bean.job
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.CurTargetNode.Name, service.model.TransportStatus.ModeStr.agvButton,
$"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("f2")}分"), true);
$"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("f2")}分"), false);
}
}
else if (JobRunStep.IsStep(RunStep.Steel_LiftToLine_10_CheckNextLine))
......@@ -281,7 +281,7 @@ namespace DeviceLibrary.bean.job
//上报运输状态
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.CurTargetNode.Name, service.model.TransportStatus.ModeStr.auto,
$"等待立库离开信号超时"));
$"等待立库离开信号超时"),false);
}
}
else if (JobRunStep.IsStep(RunStep.Steel_LiftToLine_18_PutOn))
......@@ -409,7 +409,7 @@ namespace DeviceLibrary.bean.job
//上报运输状态
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.SrcNode.Name, service.model.TransportStatus.ModeStr.auto,
$"等待电梯到达超时"));
$"等待电梯到达超时"),false);
}
}
else if (JobRunStep.IsStep(RunStep.Steel_LiftToLine_22_CheckLiftStatus))
......
......@@ -115,7 +115,7 @@ namespace DeviceLibrary
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service.model.TransportStatus.TypeStr.error, agv.Name, agv.Place.Name, service.model.TransportStatus.ModeStr.agvButton,
$"等待{JobParam.SrcNode.Name}确认超时{timeoutval.ToString("f2")}分"), true);
$"等待{JobParam.SrcNode.Name}确认超时{timeoutval.ToString("f2")}分"), false);
}
}
else if (JobRunStep.IsStep(RunStep.LineToLift_WaitConfirm))
......@@ -184,7 +184,7 @@ namespace DeviceLibrary
JobRunStep.ToNextStep(RunStep.LineToLift_05_01_ToStandby);
//设置电梯占用
//SetLiftOccupied(JobParam.CurTargetNode.Name, agv);
runInfo = $"{JobParam.CurTargetNode.AliceName}已开门。电梯内有送料的料车但无工单信息,去待机点,需要手动清空电梯缓存并关闭电梯门";//
runInfo = $"{JobParam.CurTargetNode.AliceName}已开门。电梯内有送料的料车但无工单信息【{JsonHelper.SerializeObject(JobParam?.LiftStatus)}】,去待机点,需要手动清空电梯缓存并关闭电梯门【{LiftContext.GetLiftInfos()}】";//
ToStandby(agv);
JobRunStep.Msg = runInfo;
}
......@@ -219,7 +219,7 @@ namespace DeviceLibrary
//上报运输状态
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.CurTargetNode.Name, service.model.TransportStatus.ModeStr.auto,
$"等待电梯到达超时"));
$"等待电梯到达超时"), false);
}
}
......
......@@ -472,14 +472,14 @@ namespace DeviceLibrary
}
static string agvreporttask = AppConfigHelper.GetValue(SettingString.ITS_UpdateLine, "http://10.85.17.233/ESMTCommonInterface/CommonService.asmx/") + "UpdateAGVtranstask";
/// <summary>
/// AGV反馈任务执行信息
/// </summary>
/// <param name="send"></param>
/// <returns></returns>
public static void UpdateAGVtranstask(string txt, bool isError = false)
public static void UpdateAGVtranstask(string txt, bool waiFinish = false)
{
Task task = Task.Factory.StartNew(() =>
......@@ -514,7 +514,10 @@ namespace DeviceLibrary
}
}
);
task.Wait();
if (waiFinish)
{
task.Wait();
}
}
#endregion
}
......
......@@ -289,7 +289,7 @@ namespace DeviceLibrary.manager
missionInfo = missions.Find(s => s.sourceWorkshop.Equals(agv.Scope.Workshop) && !s.sourceWorkshop.Equals(s.destinationWorkshop) &&
s.state.Equals(MissionState.创建) && !s.projectType.Equals(ProjectType.钢网入库) && !s.projectType.Equals(ProjectType.钢网领用) &&
agv.Scope.Tasks.Contains(s.projectType.ToString()) && AgvCanGetMission(s)&& CanExecuteLiftMission(s));
agv.Scope.Tasks.Contains(s.projectType.ToString()) && AgvCanGetMission(s) && CanExecuteLiftMission(s));
if (missionInfo != null)// && AgvCanGetMission(missionInfo)
{
liftname = missionInfo.liftName;//MissionManager.GetLiftName(missionInfo);
......@@ -348,7 +348,7 @@ namespace DeviceLibrary.manager
/// </summary>
/// <param name="missionType"></param>
/// <returns></returns>
public static MissionInfo GetReceiveMission(AgvInfo agv,string liftId)
public static MissionInfo GetReceiveMission(AgvInfo agv, string liftId)
{
MissionInfo missionInfo = null;
try
......@@ -360,7 +360,7 @@ namespace DeviceLibrary.manager
&& agv.Scope.Tasks.Contains(s.projectType.ToString())
&& !s.projectType.Equals(ProjectType.移远成品入库)
&& !s.projectType.Equals(ProjectType.钢网入库)
&& !s.projectType.Equals(ProjectType.钢网领用)&& s.liftName.Equals(liftId));
&& !s.projectType.Equals(ProjectType.钢网领用) && s.liftName.Equals(liftId));
if (missionInfo != null && AgvCanGetMission(missionInfo))
{
return missionInfo;
......@@ -607,7 +607,7 @@ namespace DeviceLibrary.manager
&& w.state != MissionState.取消 && w.state != MissionState.完成).ToList();
missionInfo = missions.Where(s => s.destinationWorkshop.Equals(SettingString._4C) &&
s.sourceWorkshop.Equals(SettingString._4D) &&agv.Scope.Workshop.Equals(SettingString._4D) &&
s.sourceWorkshop.Equals(SettingString._4D) && agv.Scope.Workshop.Equals(SettingString._4D) &&
//(s.projectType.Equals(ProjectType.PCB领用) || s.projectType.Equals(ProjectType.包材领用))&&
(s.state == MissionState.创建) && agv.Scope.Tasks.Contains(s.projectType.ToString())).FirstOrDefault();
if (missionInfo != null && AgvCanGetMission(missionInfo))
......@@ -932,6 +932,10 @@ namespace DeviceLibrary.manager
{
liftname = SettingString.LIFT_D2;
}
else if (missionInfo.destinationWorkshop.Equals(SettingString._3D))
{
liftname = SettingString.LIFT_D2;
}
}
if (missionInfo.sourceWorkshop.Equals(SettingString._4C))
{
......
......@@ -93,12 +93,12 @@ namespace DeviceLibrary.manager
/// 运输状态上报
/// </summary>
/// <param name="transportStatus"></param>
public static void UploadTransportStatus(service.model.TransportStatus transportStatus,bool iserror=false)
public static void UploadTransportStatus(service.model.TransportStatus transportStatus,bool waiFinish=true)
{
try
{
string txt = Common.JsonHelper.SerializeObject(transportStatus);
HttpManager.UpdateAGVtranstask(txt, iserror);
HttpManager.UpdateAGVtranstask(txt, waiFinish);
}
catch (Exception ex)
{
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!