|
@@ -10,6 +10,7 @@ using GSG.NET.Logging;
|
|
|
using GSG.NET.Utils;
|
|
using GSG.NET.Utils;
|
|
|
using OHV.Common.Events;
|
|
using OHV.Common.Events;
|
|
|
using OHV.Common.Model;
|
|
using OHV.Common.Model;
|
|
|
|
|
+using OHV.SqliteDAL;
|
|
|
using Prism.Events;
|
|
using Prism.Events;
|
|
|
|
|
|
|
|
namespace VehicleControlSystem.Managers
|
|
namespace VehicleControlSystem.Managers
|
|
@@ -31,14 +32,16 @@ namespace VehicleControlSystem.Managers
|
|
|
|
|
|
|
|
IEventAggregator eventAggregator;
|
|
IEventAggregator eventAggregator;
|
|
|
AutoManager autoManager;
|
|
AutoManager autoManager;
|
|
|
|
|
+ SqliteManager sql;
|
|
|
|
|
|
|
|
- public Scheduler(IEventAggregator ea, AutoManager autoManager)
|
|
|
|
|
|
|
+ public Scheduler(IEventAggregator ea, AutoManager autoManager, SqliteManager sql)
|
|
|
{
|
|
{
|
|
|
this.CommandsList = new List<Command>();
|
|
this.CommandsList = new List<Command>();
|
|
|
eventAggregator = ea;// CommonServiceLocator.ServiceLocator.Current.GetInstance<IEventAggregator>();
|
|
eventAggregator = ea;// CommonServiceLocator.ServiceLocator.Current.GetInstance<IEventAggregator>();
|
|
|
eventAggregator.GetEvent<VCSMessagePubSubEvent>().Subscribe(OnReceivedMessageEvent);
|
|
eventAggregator.GetEvent<VCSMessagePubSubEvent>().Subscribe(OnReceivedMessageEvent);
|
|
|
|
|
|
|
|
this.autoManager = autoManager;
|
|
this.autoManager = autoManager;
|
|
|
|
|
+ this.sql = sql;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void OnReceivedMessageEvent(VCSMessageEventArgs obj)
|
|
private void OnReceivedMessageEvent(VCSMessageEventArgs obj)
|
|
@@ -105,7 +108,7 @@ namespace VehicleControlSystem.Managers
|
|
|
break;
|
|
break;
|
|
|
case OHV.Common.Shareds.eAutoModeState.Run:
|
|
case OHV.Common.Shareds.eAutoModeState.Run:
|
|
|
{
|
|
{
|
|
|
- Command cmd = SqlManager.Instance.CommandDAL.GetCmd();
|
|
|
|
|
|
|
+ Command cmd = sql.CommandDAL.GetCmd();
|
|
|
if (cmd == null) continue;
|
|
if (cmd == null) continue;
|
|
|
|
|
|
|
|
DoWork(cmd);
|
|
DoWork(cmd);
|
|
@@ -129,7 +132,7 @@ namespace VehicleControlSystem.Managers
|
|
|
switch (cmd.State)
|
|
switch (cmd.State)
|
|
|
{
|
|
{
|
|
|
case OHV.Common.Shareds.eCommandState.Queued:
|
|
case OHV.Common.Shareds.eCommandState.Queued:
|
|
|
- if ( SqlManager.Instance.SubCmdDAL.GetCount() <= 0)
|
|
|
|
|
|
|
+ if (sql.SubCmdDAL.GetCount() <= 0)
|
|
|
{
|
|
{
|
|
|
switch (cmd.Type)
|
|
switch (cmd.Type)
|
|
|
{
|
|
{
|
|
@@ -144,29 +147,29 @@ namespace VehicleControlSystem.Managers
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- SqlManager.Instance.CommandDAL.UpdateState(cmd.CommandID, OHV.Common.Shareds.eCommandState.Assign);
|
|
|
|
|
|
|
+ sql.CommandDAL.UpdateState(cmd.CommandID, OHV.Common.Shareds.eCommandState.Assign);
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
case OHV.Common.Shareds.eCommandState.Assign: //Assign 되면 Vehicle 의 상태가 Busy 면 Processing 으로 전환.
|
|
case OHV.Common.Shareds.eCommandState.Assign: //Assign 되면 Vehicle 의 상태가 Busy 면 Processing 으로 전환.
|
|
|
{
|
|
{
|
|
|
- var subCmd = SqlManager.Instance.SubCmdDAL.GetSubCmd();
|
|
|
|
|
|
|
+ var subCmd = sql.SubCmdDAL.GetSubCmd();
|
|
|
if (subCmd == null) break;
|
|
if (subCmd == null) break;
|
|
|
|
|
|
|
|
if (!subCmd.CmdID.Equals(cmd.CommandID))
|
|
if (!subCmd.CmdID.Equals(cmd.CommandID))
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- SqlManager.Instance.CommandDAL.UpdateState(cmd.CommandID, OHV.Common.Shareds.eCommandState.Processing);
|
|
|
|
|
|
|
+ sql.CommandDAL.UpdateState(cmd.CommandID, OHV.Common.Shareds.eCommandState.Processing);
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
case OHV.Common.Shareds.eCommandState.Processing:
|
|
case OHV.Common.Shareds.eCommandState.Processing:
|
|
|
{
|
|
{
|
|
|
- var subCmd = SqlManager.Instance.SubCmdDAL.GetSubCmd();
|
|
|
|
|
|
|
+ var subCmd = sql.SubCmdDAL.GetSubCmd();
|
|
|
if (subCmd == null) // Move 명령을 수행 완료 했다고 판단.
|
|
if (subCmd == null) // Move 명령을 수행 완료 했다고 판단.
|
|
|
{
|
|
{
|
|
|
if ( cmd.IsSecondCommanded)
|
|
if ( cmd.IsSecondCommanded)
|
|
|
{
|
|
{
|
|
|
- SqlManager.Instance.CommandDAL.UpdateState(cmd.CommandID, OHV.Common.Shareds.eCommandState.Complete);
|
|
|
|
|
|
|
+ sql.CommandDAL.UpdateState(cmd.CommandID, OHV.Common.Shareds.eCommandState.Complete);
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -190,7 +193,7 @@ namespace VehicleControlSystem.Managers
|
|
|
}
|
|
}
|
|
|
else //Move Command
|
|
else //Move Command
|
|
|
{
|
|
{
|
|
|
- SqlManager.Instance.CommandDAL.UpdateState(cmd.CommandID, OHV.Common.Shareds.eCommandState.Complete);
|
|
|
|
|
|
|
+ sql.CommandDAL.UpdateState(cmd.CommandID, OHV.Common.Shareds.eCommandState.Complete);
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -200,11 +203,11 @@ namespace VehicleControlSystem.Managers
|
|
|
else //다른 아이디의 일을 하고 있을 경우 가 생길까??
|
|
else //다른 아이디의 일을 하고 있을 경우 가 생길까??
|
|
|
{ }
|
|
{ }
|
|
|
}
|
|
}
|
|
|
- SqlManager.Instance.CommandDAL.UpdateState(cmd.CommandID, OHV.Common.Shareds.eCommandState.Complete);
|
|
|
|
|
|
|
+ sql.CommandDAL.UpdateState(cmd.CommandID, OHV.Common.Shareds.eCommandState.Complete);
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
case OHV.Common.Shareds.eCommandState.Complete:
|
|
case OHV.Common.Shareds.eCommandState.Complete:
|
|
|
- SqlManager.Instance.CommandDAL.Delete(cmd);
|
|
|
|
|
|
|
+ sql.CommandDAL.Delete(cmd);
|
|
|
break;
|
|
break;
|
|
|
default:
|
|
default:
|
|
|
break;
|
|
break;
|
|
@@ -235,7 +238,7 @@ namespace VehicleControlSystem.Managers
|
|
|
TargetID = cmd.TargetID,
|
|
TargetID = cmd.TargetID,
|
|
|
CmdID = cmd.CommandID,
|
|
CmdID = cmd.CommandID,
|
|
|
};
|
|
};
|
|
|
- SqlManager.Instance.SubCmdDAL.Add(sub);
|
|
|
|
|
|
|
+ sql.SubCmdDAL.Add(sub);
|
|
|
logger.I($"{sub.ID} Sub Command Create - Type={sub.Type}, TargetID={sub.TargetID}, CommandID={sub.CmdID}");
|
|
logger.I($"{sub.ID} Sub Command Create - Type={sub.Type}, TargetID={sub.TargetID}, CommandID={sub.CmdID}");
|
|
|
|
|
|
|
|
return true;
|
|
return true;
|
|
@@ -247,7 +250,7 @@ namespace VehicleControlSystem.Managers
|
|
|
{
|
|
{
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- SqlManager.Instance.CommandDAL.Add(cmd);
|
|
|
|
|
|
|
+ sql.CommandDAL.Add(cmd);
|
|
|
logger.I($"{cmd.CommandID} Command Create - Type={cmd.Type}, TargetID={cmd.TargetID}");
|
|
logger.I($"{cmd.CommandID} Command Create - Type={cmd.Type}, TargetID={cmd.TargetID}");
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|