|
@@ -122,9 +122,19 @@ namespace parkMonitor.server.CoreThread
|
|
|
}
|
|
|
}
|
|
|
mt.EndTiming();
|
|
|
- if (mt.IsLonger(120, 1, true))
|
|
|
+ int activationCount = 0;
|
|
|
+ if (mt.IsLonger(5, 1, false,out activationCount))
|
|
|
{
|
|
|
- UILogServer.ins.info("无空闲机械手资源,继续等待");
|
|
|
+ if (activationCount == 1)
|
|
|
+ {
|
|
|
+ UILogServer.ins.info("无空闲机械手资源,继续等待");
|
|
|
+ }
|
|
|
+ if (MyTimer.restart && !mt.rolledBack)
|
|
|
+ {
|
|
|
+ mt.rolledBack = true;
|
|
|
+ UILogServer.ins.info("启动机械手资源超时,启动回滚");
|
|
|
+ //回退
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -135,7 +145,11 @@ namespace parkMonitor.server.CoreThread
|
|
|
/// </summary>
|
|
|
public class StopCmd : AbstractCmd
|
|
|
{
|
|
|
-
|
|
|
+ /// <summary>
|
|
|
+ /// 流程回滚函数
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="queueCmd"></param>
|
|
|
+ /// <param name="parkingSpaceID"></param>
|
|
|
private void rollback(Command queueCmd, int parkingSpaceID)
|
|
|
{
|
|
|
//命令回退
|
|
@@ -231,14 +245,19 @@ namespace parkMonitor.server.CoreThread
|
|
|
}
|
|
|
Thread.Sleep(200);
|
|
|
mt.EndTiming();
|
|
|
- if (mt.IsLonger(30, 1, true))
|
|
|
+ int activationCount = 0;
|
|
|
+ if (mt.IsLonger(5, 1, false, out activationCount))
|
|
|
{
|
|
|
- UILogServer.ins.info("未获得车位");
|
|
|
- while (!MyTimer.restart)
|
|
|
+ if (activationCount == 1)
|
|
|
+ {
|
|
|
+ UILogServer.ins.info("未获得车位");
|
|
|
+ }
|
|
|
+ if (MyTimer.restart && !mt.rolledBack)
|
|
|
{
|
|
|
- Thread.Sleep(2000);
|
|
|
+ mt.rolledBack = true;
|
|
|
+ UILogServer.ins.info("回退");
|
|
|
+ //return null;
|
|
|
}
|
|
|
- return null;
|
|
|
}
|
|
|
}
|
|
|
return ppp;
|
|
@@ -307,14 +326,21 @@ namespace parkMonitor.server.CoreThread
|
|
|
}
|
|
|
Thread.Sleep(1000);
|
|
|
mt.EndTiming();
|
|
|
- if (mt.IsLonger(60, 1, true))
|
|
|
+ int activationCount = 0;
|
|
|
+ if (mt.IsLonger(5, 1, false, out activationCount))
|
|
|
{
|
|
|
- UILogServer.ins.info("未获取激光数据,继续等待");
|
|
|
- while (!MyTimer.restart)
|
|
|
+ if (activationCount == 1)
|
|
|
+ {
|
|
|
+ UILogServer.ins.info("未获取激光数据,继续等待");
|
|
|
+ }
|
|
|
+ if (MyTimer.restart && !mt.rolledBack)
|
|
|
{
|
|
|
- Thread.Sleep(2000);
|
|
|
+ mt.rolledBack = true;
|
|
|
+ UILogServer.ins.info("回退");
|
|
|
+ //return null;
|
|
|
+ //回退
|
|
|
}
|
|
|
- return null;
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
return data;
|
|
@@ -322,7 +348,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
/// <summary>
|
|
|
/// 停车完成
|
|
|
/// </summary>
|
|
|
- private void WaitForStoreCompletionSignal(Command queueCmd, ref int parkingSpaceID, ref bool robotError)
|
|
|
+ private void WaitForStoreCompletionSignal(Command queueCmd, ref int parkingSpaceID, ref bool robotError, int status)
|
|
|
{
|
|
|
PLCMessage PLCMsg = null;
|
|
|
MyTimer mt = new MyTimer();
|
|
@@ -354,14 +380,19 @@ namespace parkMonitor.server.CoreThread
|
|
|
break;
|
|
|
}
|
|
|
mt.EndTiming();
|
|
|
- if (mt.IsLonger(5, 60, true))
|
|
|
+ int activationCount = 0;
|
|
|
+ if (mt.IsLonger(5, 1, false, out activationCount))
|
|
|
{
|
|
|
- UILogServer.ins.info("未获得停车完成信号,继续等待");
|
|
|
- while (!MyTimer.restart)
|
|
|
+ if (activationCount == 1)
|
|
|
+ {
|
|
|
+ UILogServer.ins.info("未获得停车完成信号,继续等待");
|
|
|
+ }
|
|
|
+ if (MyTimer.restart && !mt.rolledBack)
|
|
|
{
|
|
|
- Thread.Sleep(2000);
|
|
|
+ mt.rolledBack = true;
|
|
|
+ UILogServer.ins.info("回退");
|
|
|
+ //回退
|
|
|
}
|
|
|
- //系统回滚,复位车位状态,车位总数,车辆状态
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -389,14 +420,19 @@ namespace parkMonitor.server.CoreThread
|
|
|
}
|
|
|
Thread.Sleep(1000);
|
|
|
mt.EndTiming();
|
|
|
- if (mt.IsLonger(30, 1, true))
|
|
|
+ int activationCount = 0;
|
|
|
+ if (mt.IsLonger(5, 1, false, out activationCount))
|
|
|
{
|
|
|
- UILogServer.ins.info("未获取轮距雷达完成状态,继续等待");
|
|
|
- while (!MyTimer.restart)
|
|
|
+ if (activationCount == 1)
|
|
|
{
|
|
|
- Thread.Sleep(2000);
|
|
|
+ UILogServer.ins.info("未获取轮距雷达完成状态,继续等待");
|
|
|
+ }
|
|
|
+ if (MyTimer.restart && !mt.rolledBack)
|
|
|
+ {
|
|
|
+ mt.rolledBack = true;
|
|
|
+ UILogServer.ins.info("回退");
|
|
|
+ //回退
|
|
|
}
|
|
|
- //系统回滚
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -558,7 +594,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
|
|
|
Task storeCompletionSignal = Task.Factory.StartNew(() =>
|
|
|
{
|
|
|
- WaitForStoreCompletionSignal(queueCmd, ref parkingSpaceID, ref robotError);
|
|
|
+ WaitForStoreCompletionSignal(queueCmd, ref parkingSpaceID, ref robotError,1);
|
|
|
});
|
|
|
//storeSignal.Wait();
|
|
|
Task.WaitAll(dataFromWheelbase, storeCompletionSignal);
|
|
@@ -568,7 +604,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
PLC.SetMessage(cm);
|
|
|
Task storeResetSignal = Task.Factory.StartNew(() =>
|
|
|
{
|
|
|
- WaitForStoreSignal(queueCmd, ref parkingSpaceID, ref robotError, 0);
|
|
|
+ WaitForStoreCompletionSignal(queueCmd, ref parkingSpaceID, ref robotError, 0);
|
|
|
});
|
|
|
storeResetSignal.Wait();
|
|
|
robot.occupied = false;
|
|
@@ -692,14 +728,19 @@ namespace parkMonitor.server.CoreThread
|
|
|
break;
|
|
|
}
|
|
|
mt.EndTiming();
|
|
|
- if (mt.IsLonger(5, 60, true))
|
|
|
+ int activationCount = 0;
|
|
|
+ if (mt.IsLonger(5, 1, false, out activationCount))
|
|
|
{
|
|
|
- UILogServer.ins.info("未获得取车完成信号,继续等待");
|
|
|
- while (!MyTimer.restart)
|
|
|
+ if (activationCount == 1)
|
|
|
+ {
|
|
|
+ UILogServer.ins.info("未获得取车完成信号,继续等待");
|
|
|
+ }
|
|
|
+ if (MyTimer.restart && !mt.rolledBack)
|
|
|
{
|
|
|
- Thread.Sleep(2000);
|
|
|
+ mt.rolledBack = true;
|
|
|
+ //回退
|
|
|
+ UILogServer.ins.info("回退");
|
|
|
}
|
|
|
- //系统回滚
|
|
|
}
|
|
|
}
|
|
|
|