|
|
@@ -26,15 +26,21 @@ namespace VehicleControlSystem.Managers
|
|
|
IEventAggregator eventAggregator = null;
|
|
|
Vehicle vehicle = null;
|
|
|
SqliteManager sql = null;
|
|
|
+ AutoManager autoManager;
|
|
|
|
|
|
public HostManager( IEventAggregator ea, Vehicle vehicle, SqliteManager sqlite, AutoManager autoManager, Scheduler scheduler )
|
|
|
{
|
|
|
this.eventAggregator = ea;
|
|
|
+
|
|
|
this.vehicle = vehicle;
|
|
|
this.vehicle.PropertyChanged += Vehicle_PropertyChanged;
|
|
|
+
|
|
|
this.sql = sqlite;
|
|
|
- autoManager.OnOccurAlarm += AutoManager_OnOccurAlarm;
|
|
|
- autoManager.OnClearAlarm += AutoManager_OnClearAlarm;
|
|
|
+
|
|
|
+ this.autoManager = autoManager;
|
|
|
+ this.autoManager.OnOccurAlarm += AutoManager_OnOccurAlarm;
|
|
|
+ this.autoManager.OnClearAlarm += AutoManager_OnClearAlarm;
|
|
|
+
|
|
|
scheduler.OnMaualAddedCommand += Scheduler_OnMaualAddedCommand;
|
|
|
}
|
|
|
|
|
|
@@ -434,24 +440,55 @@ namespace VehicleControlSystem.Managers
|
|
|
this.Reply( msg );
|
|
|
|
|
|
if ( msg.SubCode.Equals( "100" ) )
|
|
|
- {
|
|
|
Send_Scmd( );
|
|
|
- }
|
|
|
+
|
|
|
if ( msg.SubCode.Equals( "010" ) )
|
|
|
- {
|
|
|
Send_Bcmd( this.vehicle.BatteryVoltage );
|
|
|
+
|
|
|
+ if ( msg.SubCode.Equals( "011" ) )
|
|
|
+ {
|
|
|
+ this.autoManager.ActiveAlarms.ForEach( x =>
|
|
|
+ {
|
|
|
+ Send_Ecmd(x.AlarmId);
|
|
|
+ } );
|
|
|
+ }
|
|
|
+
|
|
|
+ if ( msg.SubCode.Equals( "111" ) )
|
|
|
+ {
|
|
|
+ var reply = new OCSMessage();
|
|
|
+
|
|
|
+ var mode = this.vehicle.MachineMode;
|
|
|
+ if ( mode == eMachineMode.HostMode )
|
|
|
+ {
|
|
|
+ reply.Kind = eKind.I;
|
|
|
+ reply.Tag = this.vehicle.CurrentTag.ToString( "0000" );
|
|
|
+ reply.IsSubCode1 = this.vehicle.IsContain;
|
|
|
+ reply.IsSubCode2 = vehicle.IsMoving;
|
|
|
+ reply.IsSubCode3 = vehicle.IsError;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ reply.Kind = eKind.O;
|
|
|
+ reply.Tag = this.vehicle.CurrentTag.ToString( "0000" );
|
|
|
+ reply.IsSubCode1 = this.vehicle.IsContain;
|
|
|
+ reply.IsSubCode2 = vehicle.IsMoving;
|
|
|
+ reply.IsSubCode3 = vehicle.IsError;
|
|
|
+ }
|
|
|
+
|
|
|
+ this.manager.Send( msg );
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private void ReceiveMCommand( OCSMessage msg )
|
|
|
{
|
|
|
- this.Reply( msg );
|
|
|
-
|
|
|
var cmd = new Command();
|
|
|
|
|
|
var info = sql.VehicleInfoDAL.GetAll().FirstOrDefault();
|
|
|
if ( info.MachineMode == eMachineMode.LocalMode )
|
|
|
{
|
|
|
+ msg.SubCode = "999";
|
|
|
+ this.Reply( msg );
|
|
|
+
|
|
|
loggerHost.E( $"[OCS] Cmd - Current Mode Local Mode " );
|
|
|
return;
|
|
|
}
|
|
|
@@ -475,9 +512,11 @@ namespace VehicleControlSystem.Managers
|
|
|
case "003": //Move and Charge
|
|
|
cmd.Type = eCommandType.Charging;
|
|
|
break;
|
|
|
- case "004": //Cancel
|
|
|
+ case "010": //Cancel
|
|
|
cmd.Type = eCommandType.Cancel;
|
|
|
- break;
|
|
|
+ sql.CommandDAL.Clean();
|
|
|
+ this.Reply( msg );
|
|
|
+ return;
|
|
|
default:
|
|
|
return;
|
|
|
}
|
|
|
@@ -494,6 +533,9 @@ namespace VehicleControlSystem.Managers
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ msg.SubCode = "999";
|
|
|
+ this.Reply( msg );
|
|
|
+
|
|
|
loggerHost.E( $"[OCS] Cmd - {msg.Kind} Message Tag [{msg.Tag}] - Already Load/Unload " );
|
|
|
return;
|
|
|
}
|
|
|
@@ -516,6 +558,10 @@ namespace VehicleControlSystem.Managers
|
|
|
case "003": //Cancel
|
|
|
cmd.Type = eCommandType.Charging;
|
|
|
break;
|
|
|
+ case "010": //Cancel
|
|
|
+ cmd.Type = eCommandType.Cancel;
|
|
|
+ this.Reply( msg );
|
|
|
+ return;
|
|
|
default:
|
|
|
return;
|
|
|
}
|
|
|
@@ -526,7 +572,7 @@ namespace VehicleControlSystem.Managers
|
|
|
logger.I( $"[Command] - Add Host : Target {cmd.TargetID} / Type {cmd.Type}" );
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+ this.Reply( msg );
|
|
|
}
|
|
|
|
|
|
private void Manager_OnT3Timeout( OHVConnector.OCSMessage msg )
|