|
@@ -122,41 +122,44 @@ namespace parkMonitor.server.CoreThread
|
|
{
|
|
{
|
|
while (true)
|
|
while (true)
|
|
{
|
|
{
|
|
- queueCmd = (Command)queuingThread.GetMessage();
|
|
|
|
- if (queueCmd != null)
|
|
|
|
|
|
+ if (EntityForCore.ins.globalStatus)
|
|
{
|
|
{
|
|
- //远端或本地异常,遇到相应指令则退回
|
|
|
|
- if ((!queueCmd.manual && ConnectionPoolManager.malfunctionRemote) || (queueCmd.manual && ConnectionPoolManager.malfunctionLocal))
|
|
|
|
|
|
+ queueCmd = (Command)queuingThread.GetMessage();
|
|
|
|
+ if (queueCmd != null)
|
|
{
|
|
{
|
|
- queueCmd.returnedCount = 1;
|
|
|
|
- queuingThread.SetMessage((Command)queueCmd.Clone());
|
|
|
|
- Thread.Sleep(5000);
|
|
|
|
- }
|
|
|
|
- //判断当前计数是否允许线程创建,机械手资源争抢严重则将指令丢回队列
|
|
|
|
- else if (queueCmd.id / 6 + 1 == Robot.robot1.id)
|
|
|
|
- {
|
|
|
|
- if ((queueCmd.commandType=='s' && Robot.robot1.parkWaitCount >= 1) || (queueCmd.commandType=='f' && Robot.robot1.fetchWaitCount >= 1))
|
|
|
|
|
|
+ //远端或本地异常,遇到相应指令则退回
|
|
|
|
+ if ((!queueCmd.manual && ConnectionPoolManager.malfunctionRemote) || (queueCmd.manual && ConnectionPoolManager.malfunctionLocal))
|
|
{
|
|
{
|
|
- Log.WriteLog(LogType.NOT_DATABASE, LogFile.LOG, "等待机械手1资源线程过多:" + Robot.robot1.parkWaitCount + "," + Robot.robot1.fetchWaitCount);
|
|
|
|
- queueCmd.returnedCount = 10000;
|
|
|
|
|
|
+ queueCmd.returnedCount = 1;
|
|
queuingThread.SetMessage((Command)queueCmd.Clone());
|
|
queuingThread.SetMessage((Command)queueCmd.Clone());
|
|
- Thread.Sleep(15000);
|
|
|
|
- continue;
|
|
|
|
|
|
+ Thread.Sleep(5000);
|
|
}
|
|
}
|
|
- }
|
|
|
|
- else if (queueCmd.id / 6 + 1 == Robot.robot2.id)
|
|
|
|
- {
|
|
|
|
- if ((queueCmd.commandType == 's' && Robot.robot2.parkWaitCount >= 1) || (queueCmd.commandType == 'f' && Robot.robot2.fetchWaitCount >= 1))
|
|
|
|
|
|
+ //判断当前计数是否允许线程创建,机械手资源争抢严重则将指令丢回队列
|
|
|
|
+ else if (queueCmd.id / 6 + 1 == Robot.robot1.id)
|
|
{
|
|
{
|
|
- Log.WriteLog(LogType.NOT_DATABASE, LogFile.LOG, "等待机械手2资源线程过多:" + Robot.robot2.parkWaitCount + "," + Robot.robot2.fetchWaitCount);
|
|
|
|
- queueCmd.returnedCount = 10000;
|
|
|
|
- queuingThread.SetMessage((Command)queueCmd.Clone());
|
|
|
|
- Thread.Sleep(15000);
|
|
|
|
- continue;
|
|
|
|
|
|
+ if ((queueCmd.commandType == 's' && Robot.robot1.parkWaitCount >= 1) || (queueCmd.commandType == 'f' && Robot.robot1.fetchWaitCount >= 1))
|
|
|
|
+ {
|
|
|
|
+ Log.WriteLog(LogType.NOT_DATABASE, LogFile.LOG, "等待机械手1资源线程过多:" + Robot.robot1.parkWaitCount + "," + Robot.robot1.fetchWaitCount);
|
|
|
|
+ queueCmd.returnedCount = 10000;
|
|
|
|
+ queuingThread.SetMessage((Command)queueCmd.Clone());
|
|
|
|
+ Thread.Sleep(15000);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else if (queueCmd.id / 6 + 1 == Robot.robot2.id)
|
|
|
|
+ {
|
|
|
|
+ if ((queueCmd.commandType == 's' && Robot.robot2.parkWaitCount >= 1) || (queueCmd.commandType == 'f' && Robot.robot2.fetchWaitCount >= 1))
|
|
|
|
+ {
|
|
|
|
+ Log.WriteLog(LogType.NOT_DATABASE, LogFile.LOG, "等待机械手2资源线程过多:" + Robot.robot2.parkWaitCount + "," + Robot.robot2.fetchWaitCount);
|
|
|
|
+ queueCmd.returnedCount = 10000;
|
|
|
|
+ queuingThread.SetMessage((Command)queueCmd.Clone());
|
|
|
|
+ Thread.Sleep(15000);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
- break;
|
|
|
|
- }
|
|
|
|
|
|
+ }Thread.Sleep(2000);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
Task.WaitAll(getCmd);
|
|
Task.WaitAll(getCmd);
|