Commit 1c7108da 张东亮

同时启动环形线和单个移栽或者模块时,模块使用自己的定时器。避免与环行线定时器冲突

1 个父辈 9e1824ec
正在显示 76 个修改的文件 包含 31 行增加33 行删除
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
文件属性发生变化
...@@ -45,18 +45,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -45,18 +45,7 @@ namespace OnlineStore.DeviceLibrary
protected abstract void CheckFixtureProcess(); protected abstract void CheckFixtureProcess();
protected override void mainTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) protected override void mainTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{ {
if(Monitor.TryEnter(lockMainTimer)) TimerProcess();
{
try
{
TimerProcess();
}
finally
{
Monitor.Exit(lockMainTimer);
}
}
} }
public DateTime LastAlarmTime = DateTime.Now; public DateTime LastAlarmTime = DateTime.Now;
public override void Alarm(LineAlarmType alarmType) public override void Alarm(LineAlarmType alarmType)
...@@ -149,34 +138,43 @@ namespace OnlineStore.DeviceLibrary ...@@ -149,34 +138,43 @@ namespace OnlineStore.DeviceLibrary
protected int TimerMaxSeconds = 3; protected int TimerMaxSeconds = 3;
public void TimerProcess() public void TimerProcess()
{ {
if (Monitor.TryEnter(lockMainTimer))
TimeSpan span = DateTime.Now - lastProTimer;
if (isInPro && span.TotalSeconds < TimerMaxSeconds)
{
return;
}
isInPro = true;
lastProTimer = DateTime.Now;
try
{ {
if (IsDebug&&runStatus<=LineRunStatus.Wait) try
{ {
TimeSpan span = DateTime.Now - lastProTimer;
if (isInPro && span.TotalSeconds < TimerMaxSeconds)
{
return;
}
isInPro = true;
lastProTimer = DateTime.Now;
try
{
if (IsDebug && runStatus <= LineRunStatus.Wait)
{
isInPro = false;
return;
}
BaseTimerProcess();
if (TimerMaxSeconds > 3 && runStatus >= LineRunStatus.Runing)
{
TimerMaxSeconds = 3;
}
}
catch (Exception ex)
{
LogUtil.error(Name + "TimerProcess出错:", ex);
}
isInPro = false; isInPro = false;
return;
} }
BaseTimerProcess(); finally
if (TimerMaxSeconds > 3 && runStatus >= LineRunStatus.Runing)
{ {
TimerMaxSeconds = 3; Monitor.Exit(lockMainTimer);
} }
} }
catch (Exception ex)
{
LogUtil.error(Name + "TimerProcess出错:",ex);
}
isInPro = false;
} }
protected DateTime preIoTimerOutTime = DateTime.Now; protected DateTime preIoTimerOutTime = DateTime.Now;
protected virtual void IOTimeOutProcess() protected virtual void IOTimeOutProcess()
......
文件属性发生变化
文件属性发生变化
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!