|
|
@@ -57,7 +57,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
get { return currentTag; }
|
|
|
set
|
|
|
{
|
|
|
- if ( SetField( ref this.currentTag , value ) )
|
|
|
+ if ( SetField( ref this.currentTag, value ) )
|
|
|
{
|
|
|
var info = sql.VehicleInfoDAL.GetInfo();
|
|
|
info.CurrentTag = value;
|
|
|
@@ -77,7 +77,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
get { return currentPosition; }
|
|
|
set
|
|
|
{
|
|
|
- if ( SetField( ref this.currentPosition , value ) )
|
|
|
+ if ( SetField( ref this.currentPosition, value ) )
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
@@ -87,41 +87,41 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
public double CurrentSpeed
|
|
|
{
|
|
|
get { return currentSpeed; }
|
|
|
- set { SetField( ref this.currentSpeed , value ); }
|
|
|
+ set { SetField( ref this.currentSpeed, value ); }
|
|
|
}
|
|
|
|
|
|
private double currentTorque;
|
|
|
public double CurrentTorque
|
|
|
{
|
|
|
get { return currentTorque; }
|
|
|
- set { SetField( ref this.currentTorque , value ); }
|
|
|
+ set { SetField( ref this.currentTorque, value ); }
|
|
|
}
|
|
|
|
|
|
private bool isContain;
|
|
|
public bool IsContain
|
|
|
{
|
|
|
get { return isContain; }
|
|
|
- set { SetField( ref this.isContain , value ); }
|
|
|
+ set { SetField( ref this.isContain, value ); }
|
|
|
}
|
|
|
|
|
|
eClampState _clampState;
|
|
|
public eClampState ClampState
|
|
|
{
|
|
|
get { return this._clampState; }
|
|
|
- set { this.SetField( ref this._clampState , value ); }
|
|
|
+ set { this.SetField( ref this._clampState, value ); }
|
|
|
}
|
|
|
|
|
|
private eSteeringState steeringState;
|
|
|
public eSteeringState SteeringState
|
|
|
{
|
|
|
get { return steeringState; }
|
|
|
- set { SetField( ref this.steeringState , value ); }
|
|
|
+ set { SetField( ref this.steeringState, value ); }
|
|
|
}
|
|
|
|
|
|
private int _obstacleDrive;
|
|
|
- public int ObstacleDrive { get { return this._obstacleDrive; } set { SetField( ref this._obstacleDrive , value ); } }
|
|
|
+ public int ObstacleDrive { get { return this._obstacleDrive; } set { SetField( ref this._obstacleDrive, value ); } }
|
|
|
private int _obstacleCurve;
|
|
|
- public int ObstacleCurve { get { return this._obstacleCurve; } set { SetField( ref this._obstacleCurve , value ); } }
|
|
|
+ public int ObstacleCurve { get { return this._obstacleCurve; } set { SetField( ref this._obstacleCurve, value ); } }
|
|
|
|
|
|
private eObstacleState obstacleState = eObstacleState.Normal;
|
|
|
public eObstacleState ObstacleStateProperty
|
|
|
@@ -129,7 +129,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
get { return obstacleState; }
|
|
|
set
|
|
|
{
|
|
|
- if ( SetField( ref this.obstacleState , value ) )
|
|
|
+ if ( SetField( ref this.obstacleState, value ) )
|
|
|
{
|
|
|
if ( value == eObstacleState.Blocked )
|
|
|
this.VehicleStateProperty = eVehicleState.Blocked;
|
|
|
@@ -143,7 +143,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
get { return vehicleState; }
|
|
|
set
|
|
|
{
|
|
|
- if ( SetField( ref this.vehicleState , value ) )
|
|
|
+ if ( SetField( ref this.vehicleState, value ) )
|
|
|
{
|
|
|
var info = sql.VehicleInfoDAL.GetInfo();
|
|
|
info.VehicleState = value;
|
|
|
@@ -158,7 +158,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
get { return machineMode; }
|
|
|
set
|
|
|
{
|
|
|
- if ( SetField( ref this.machineMode , value ) )
|
|
|
+ if ( SetField( ref this.machineMode, value ) )
|
|
|
{
|
|
|
var info = sql.VehicleInfoDAL.GetInfo();
|
|
|
info.MachineMode = value;
|
|
|
@@ -192,70 +192,70 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
public double BatteryVoltage
|
|
|
{
|
|
|
get { return this.batteryVoltage; }
|
|
|
- set { this.SetField( ref this.batteryVoltage , value ); }
|
|
|
+ set { this.SetField( ref this.batteryVoltage, value ); }
|
|
|
}
|
|
|
|
|
|
double batteryCurrent;
|
|
|
public double BatteryCurrent
|
|
|
{
|
|
|
get { return this.batteryCurrent; }
|
|
|
- set { this.SetField( ref this.batteryCurrent , value ); }
|
|
|
+ set { this.SetField( ref this.batteryCurrent, value ); }
|
|
|
}
|
|
|
|
|
|
double batteryState;
|
|
|
public double BatteryState
|
|
|
{
|
|
|
get { return this.batteryState; }
|
|
|
- set { this.SetField( ref this.batteryState , value ); }
|
|
|
+ set { this.SetField( ref this.batteryState, value ); }
|
|
|
}
|
|
|
|
|
|
double batteryChargeTime;
|
|
|
public double BatteryChargeTime
|
|
|
{
|
|
|
get { return this.batteryChargeTime; }
|
|
|
- set { this.SetField( ref this.batteryChargeTime , value ); }
|
|
|
+ set { this.SetField( ref this.batteryChargeTime, value ); }
|
|
|
}
|
|
|
|
|
|
double batteryDisChargeTime;
|
|
|
public double BatteryDisChargeTime
|
|
|
{
|
|
|
get { return this.batteryDisChargeTime; }
|
|
|
- set { this.SetField( ref this.batteryDisChargeTime , value ); }
|
|
|
+ set { this.SetField( ref this.batteryDisChargeTime, value ); }
|
|
|
}
|
|
|
|
|
|
double batteryStateOfCharge;
|
|
|
public double BatteryStateOfCharge
|
|
|
{
|
|
|
get { return this.batteryStateOfCharge; }
|
|
|
- set { this.SetField( ref this.batteryStateOfCharge , value ); }
|
|
|
+ set { this.SetField( ref this.batteryStateOfCharge, value ); }
|
|
|
}
|
|
|
|
|
|
double batteryStateOfHealth;
|
|
|
public double BatteryStateOfHealth
|
|
|
{
|
|
|
get { return this.batteryStateOfHealth; }
|
|
|
- set { this.SetField( ref this.batteryStateOfHealth , value ); }
|
|
|
+ set { this.SetField( ref this.batteryStateOfHealth, value ); }
|
|
|
}
|
|
|
|
|
|
double batteryCapacity;
|
|
|
public double BatteryCapacity
|
|
|
{
|
|
|
get { return this.batteryCapacity; }
|
|
|
- set { this.SetField( ref this.batteryCapacity , value ); }
|
|
|
+ set { this.SetField( ref this.batteryCapacity, value ); }
|
|
|
}
|
|
|
|
|
|
double batteryEnergy;
|
|
|
public double BatteryEnergy
|
|
|
{
|
|
|
get { return this.batteryEnergy; }
|
|
|
- set { this.SetField( ref this.batteryEnergy , value ); }
|
|
|
+ set { this.SetField( ref this.batteryEnergy, value ); }
|
|
|
}
|
|
|
|
|
|
double batteryTemperature;
|
|
|
public double BatteryTemperature
|
|
|
{
|
|
|
get { return this.batteryTemperature; }
|
|
|
- set { this.SetField( ref this.batteryTemperature , value ); }
|
|
|
+ set { this.SetField( ref this.batteryTemperature, value ); }
|
|
|
}
|
|
|
|
|
|
bool batteryIsConnect;
|
|
|
@@ -266,8 +266,8 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
this.BatteryIsConnect = this.bMUManager.IsConnected;
|
|
|
return this.bMUManager.IsConnected;
|
|
|
}
|
|
|
- set { this.SetField( ref this.batteryIsConnect , value ); }
|
|
|
- }
|
|
|
+ set { this.SetField( ref this.batteryIsConnect, value ); }
|
|
|
+ }
|
|
|
#endregion
|
|
|
public bool IsError { get; set; }
|
|
|
|
|
|
@@ -469,11 +469,11 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
|
|
|
public void ReqConveyorMove( string dir )
|
|
|
{
|
|
|
- if ( dir.Equals("CW") )
|
|
|
+ if ( dir.Equals( "CW" ) )
|
|
|
this.OnOffConveyor( true, false );
|
|
|
- else if ( dir.Equals("CCW"))
|
|
|
+ else if ( dir.Equals( "CCW" ) )
|
|
|
this.OnOffConveyor( true, true );
|
|
|
- else if ( dir.Equals("STOP") )
|
|
|
+ else if ( dir.Equals( "STOP" ) )
|
|
|
this.OnOffConveyor( false, false );
|
|
|
}
|
|
|
|
|
|
@@ -531,7 +531,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
this.bMUManager.Disconnect();
|
|
|
}
|
|
|
|
|
|
-#region Request Method
|
|
|
+ #region Request Method
|
|
|
private void ReqVehicleState( DriveControlEventArgs args )
|
|
|
{
|
|
|
VehicleInfo state = new VehicleInfo();
|
|
|
@@ -539,7 +539,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
state.CurrentSpeed = this.CurrentSpeed;
|
|
|
state.CurrentTag = this.CurrentTag;
|
|
|
state.CurrentTorque = this.CurrentTorque;
|
|
|
-
|
|
|
+
|
|
|
state.Voltage = this.BatteryVoltage;
|
|
|
state.Current = this.BatteryCurrent;
|
|
|
state.BatteryState = this.BatteryState;
|
|
|
@@ -653,9 +653,9 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
|
|
|
this.DriveControlEventPublish( msg );
|
|
|
}
|
|
|
-#endregion
|
|
|
+ #endregion
|
|
|
|
|
|
-#region Thread
|
|
|
+ #region Thread
|
|
|
void ThreadStart()
|
|
|
{
|
|
|
this.cancel.AddGo( new Action( this._ThSubCmdWorker ) );
|
|
|
@@ -770,9 +770,9 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
logger.D( "Vehicle - _ThSubCmdWorker Dispose" );
|
|
|
}
|
|
|
|
|
|
-#endregion
|
|
|
+ #endregion
|
|
|
|
|
|
-#region Control Action Method
|
|
|
+ #region Control Action Method
|
|
|
public void EStop()
|
|
|
{
|
|
|
OnOffConveyor( false );
|
|
|
@@ -783,7 +783,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
this.OccurVehicleAlarm( 23 );
|
|
|
}
|
|
|
|
|
|
-#region For Moving
|
|
|
+ #region For Moving
|
|
|
void Move( SubCmd sub )
|
|
|
{
|
|
|
if ( this.MoveTo( sub.TargetID ) )
|
|
|
@@ -836,7 +836,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
this.VehicleStateProperty = eVehicleState.Idle;
|
|
|
}
|
|
|
|
|
|
- PhysicalCheckupLogger.Instance.UploadPhysicalCheckupLog();
|
|
|
+ //PhysicalCheckupLogger.Instance.UploadPhysicalCheckupLog();
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
@@ -898,7 +898,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
|
|
|
Task CheckCrossPoint()
|
|
|
{
|
|
|
- var task = Task.Run( () =>
|
|
|
+ var task = Task.Run( () =>
|
|
|
{
|
|
|
long sTime = SwUtils.CurrentTimeMillis;
|
|
|
|
|
|
@@ -914,7 +914,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
|
|
|
return task;
|
|
|
}
|
|
|
-#endregion
|
|
|
+ #endregion
|
|
|
|
|
|
public bool LoadCarrier( SubCmd sub )
|
|
|
{
|
|
|
@@ -1004,9 +1004,9 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
this.VehicleStateProperty = eVehicleState.Charge;
|
|
|
|
|
|
this.iO.OutputOn( "OUT_PIO_SENSOR_ONOFF" );
|
|
|
-
|
|
|
+
|
|
|
this.PIOBatteryCharge( subCmd );
|
|
|
-
|
|
|
+
|
|
|
this.iO.OutputOff( "OUT_PIO_SENSOR_ONOFF" );
|
|
|
|
|
|
sql.CommandDAL.UpdateState( subCmd.CmdID, eCommandState.Complete );
|
|
|
@@ -1090,9 +1090,9 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-#endregion
|
|
|
+ #endregion
|
|
|
|
|
|
-#region Check Method
|
|
|
+ #region Check Method
|
|
|
bool CheckObstacle()
|
|
|
{
|
|
|
//if ( this.iO.IsOn( "IN_OBSTRUCTION_DETECT_SAFETY" ) || this.iO.IsOn( "IN_OBSTRUCTION_DETECT_ERROR" ) )
|
|
|
@@ -1122,11 +1122,11 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
-#endregion
|
|
|
+ #endregion
|
|
|
|
|
|
-#region Mechanical Method
|
|
|
+ #region Mechanical Method
|
|
|
|
|
|
-#region Conveyor
|
|
|
+ #region Conveyor
|
|
|
/// <summary>
|
|
|
/// (Run = true, CW = true CCW = false)
|
|
|
/// </summary>
|
|
|
@@ -1178,7 +1178,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
bool IsInverterError() => !this.iO.IsOn( "IN_CV_ERROR" ); //Normal Close 로 생각 됨.
|
|
|
bool IsLifterPositinCheck() => this.iO.IsOn( "IN_LIFTER_POSITION_DETECT" );
|
|
|
bool IsLifterDuplication() => this.iO.IsOn( "IN_LIFTER_DUPLICATION_DETECT" );
|
|
|
- bool IsPIOInterLockOn() => this.iO.IsOn( "OUT_PIO_INTERLOCK" );
|
|
|
+ bool IsPIOInterLockOn() => this.iO.IsOn( "IN_PIO_INTERLOCK" );
|
|
|
|
|
|
public int ConveyorLoad() => this.conveyor.ConveyorLoad();
|
|
|
|
|
|
@@ -1216,14 +1216,15 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
if ( this.IsInverterError() )
|
|
|
return 16;
|
|
|
|
|
|
- if ( this.IsLifterPositinCheck() )
|
|
|
+ if ( !this.IsLifterPositinCheck() )
|
|
|
return 14;
|
|
|
|
|
|
- if ( !this.IsLifterDuplication() )
|
|
|
- {
|
|
|
- this.OnFailReport?.Invoke( eFailCode.Load_PortHasNotCarrier );
|
|
|
- return 0;
|
|
|
- }
|
|
|
+ //Todo: Sensor Setting 이 후 주석 풀기.
|
|
|
+ //if ( !this.IsLifterDuplication() )
|
|
|
+ //{
|
|
|
+ // this.OnFailReport?.Invoke( eFailCode.Load_PortHasNotCarrier );
|
|
|
+ // return 0;
|
|
|
+ //}
|
|
|
|
|
|
if ( this.IsDetectedCenter() )
|
|
|
{
|
|
|
@@ -1235,10 +1236,10 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
loggerPIO.I( $"Start Load PIO - [{targetName}]" );
|
|
|
this.OnPIOStart?.Invoke( true );
|
|
|
|
|
|
- this.iO.WriteOutputIO( "OUT_PIO_RECEIVE_RUN" , true );
|
|
|
- loggerPIO.I( "[Vehicle] - 4 Receive Run On" );
|
|
|
+ this.iO.WriteOutputIO( "OUT_PIO_RECEIVABLE", true );
|
|
|
+ loggerPIO.I( "[Vehicle] - 4 Receivable" );
|
|
|
|
|
|
- if ( !this.iO.WaitChangeInputIO( true , pioTimeout , "IN_PIO_SENDABLE" ) )
|
|
|
+ if ( !this.iO.WaitChangeInputIO( true, pioTimeout, "IN_PIO_SENDABLE" ) )
|
|
|
{
|
|
|
PIOClear();
|
|
|
loggerPIO.E( "[Port] - 4 Ready Time Out" );
|
|
|
@@ -1248,28 +1249,31 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
loggerPIO.E( "[Port] - 4 Ready On" );
|
|
|
|
|
|
this.SetConveyorSpeed( true );
|
|
|
- this.OnOffConveyor( true , true );
|
|
|
- this.iO.WriteOutputIO( "OUT_PIO_RECEIVE_RUN" , true, 1000 );
|
|
|
+ this.OnOffConveyor( true, true );
|
|
|
+ this.iO.WriteOutputIO( "OUT_PIO_RECEIVE_RUN", true, 1000 ); //1Sec 이후 On
|
|
|
loggerPIO.I( "[Vehicle] - Conveyor Run" );
|
|
|
this.OnConveyorStart?.Invoke( true );
|
|
|
|
|
|
- if ( !this.iO.WaitChangeInputIO( true , pioTimeout , "IN_PIO_SEND_RUN" ) )
|
|
|
+ if ( !this.iO.WaitChangeInputIO( true, pioTimeout, "IN_PIO_SEND_RUN" ) )
|
|
|
{
|
|
|
- this.OnOffConveyor( false , true );
|
|
|
+ this.OnOffConveyor( false, true );
|
|
|
PIOClear();
|
|
|
loggerPIO.E( "[Port] - 5 Sending Run Time Out" );
|
|
|
this.OnFailReport?.Invoke( eFailCode.LoadPIOInterlockTimeout );
|
|
|
return 0;
|
|
|
}
|
|
|
+ loggerPIO.I( "[Port] - 5 Sending Run On" );
|
|
|
|
|
|
bool isStartDetected = false;
|
|
|
var sTime = SwUtils.CurrentTimeMillis;
|
|
|
while ( true )
|
|
|
{
|
|
|
- if ( SwUtils.Gt( sTime , 20 * ConstUtils.ONE_SECOND ) )
|
|
|
+ LockUtils.Wait( 10 );
|
|
|
+
|
|
|
+ if ( SwUtils.Gt( sTime, 20 * ConstUtils.ONE_SECOND ) )
|
|
|
{
|
|
|
PIOClear();
|
|
|
- this.OnOffConveyor( false , true );
|
|
|
+ this.OnOffConveyor( false, true );
|
|
|
loggerPIO.E( "[Vehicle] Conveyor Wait Time Out" );
|
|
|
this.OnFailReport?.Invoke( eFailCode.LoadPIOInterlockTimeout );
|
|
|
|
|
|
@@ -1302,16 +1306,22 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
this.OnOffConveyor( false ); //Stop
|
|
|
PIOClear();
|
|
|
this.OnConveyorStop?.Invoke( true );
|
|
|
+ loggerPIO.I( "[Vehicle] Conveyor Stop" );
|
|
|
|
|
|
- this.iO.WriteOutputIO( "OUT_PIO_RECIVE_COMPLITE" , true );
|
|
|
- if ( !this.iO.WaitChangeInputIO(true, pioTimeout, "IN_PIO_SEND_COMPLITE" ) )
|
|
|
+ this.iO.WriteOutputIO( "OUT_PIO_RECIVE_COMPLITE", true );
|
|
|
+ loggerPIO.I( "[Vehicle] Receive Complete On" );
|
|
|
+ if ( !this.iO.WaitChangeInputIO( true, pioTimeout, "IN_PIO_SEND_COMPLITE" ) )
|
|
|
{
|
|
|
this.iO.WriteOutputIO( "OUT_PIO_RECIVE_COMPLITE", false );
|
|
|
loggerPIO.E( "[Port] IN_PIO_SEND_COMPLITE On Time Out" );
|
|
|
}
|
|
|
- this.iO.WriteOutputIO( "OUT_PIO_RECIVE_COMPLITE", false );
|
|
|
+ loggerPIO.I( "[Port] Send Complete On" );
|
|
|
+
|
|
|
+ this.iO.WriteOutputIO( "OUT_PIO_RECIVE_COMPLITE", false, 1000 );
|
|
|
|
|
|
this.OnLoadComplete?.Invoke();
|
|
|
+
|
|
|
+ loggerPIO.I( $"End Load PIO - [{targetName}]" );
|
|
|
#endif
|
|
|
|
|
|
return 0;
|
|
|
@@ -1357,7 +1367,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- if ( this.IsLifterPositinCheck() )
|
|
|
+ if ( !this.IsLifterPositinCheck() )
|
|
|
return 13;
|
|
|
|
|
|
PIOClear();
|
|
|
@@ -1371,18 +1381,19 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- this.iO.WriteOutputIO( "OUT_PIO_READY" , true );
|
|
|
+ this.iO.WriteOutputIO( "OUT_PIO_READY", true );
|
|
|
loggerPIO.I( "[Vehicle] - 1 Ready On" );
|
|
|
|
|
|
- if ( !this.iO.WaitChangeInputIO( true , pioTimeout , "IN_PIO_RECEIVE_RUN" ) )
|
|
|
+ if ( !this.iO.WaitChangeInputIO( true, pioTimeout, "IN_PIO_RECEIVE_RUN" ) )
|
|
|
{
|
|
|
PIOClear();
|
|
|
loggerPIO.E( "[Port] - 2 Receive CV Run Timeout" );
|
|
|
this.OnFailReport?.Invoke( eFailCode.UnlaodPIOInterlockTimeout );
|
|
|
return 0;
|
|
|
}
|
|
|
+ loggerPIO.E( "[Port] - 2 Receive CV Run On" );
|
|
|
|
|
|
- this.iO.WriteOutputIO( "OUT_PIO_SENDING_RUN" , true );
|
|
|
+ this.iO.WriteOutputIO( "OUT_PIO_SENDING_RUN", true );
|
|
|
loggerPIO.I( "[Vehicle] - 2 Send Run On" );
|
|
|
|
|
|
this.SetConveyorSpeed( true );
|
|
|
@@ -1392,10 +1403,10 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
var sTime = SwUtils.CurrentTimeMillis;
|
|
|
while ( true )
|
|
|
{
|
|
|
- if ( SwUtils.Gt( sTime , 20 * ConstUtils.ONE_SECOND ) )
|
|
|
+ if ( SwUtils.Gt( sTime, 20 * ConstUtils.ONE_SECOND ) )
|
|
|
{
|
|
|
PIOClear();
|
|
|
- this.OnOffConveyor( false , true );
|
|
|
+ this.OnOffConveyor( false, true );
|
|
|
loggerPIO.E( "[Port] Conveyor Wait Time Out" );
|
|
|
this.OnFailReport?.Invoke( eFailCode.UnlaodPIOInterlockTimeout );
|
|
|
|
|
|
@@ -1409,7 +1420,10 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
if ( !IsDetectedLoadStart() && !IsDetectedCenter() )
|
|
|
{
|
|
|
if ( this.iO.IsOn( "IN_PIO_RECEIVE_COMPLITE" ) )
|
|
|
+ {
|
|
|
+ loggerPIO.I( "[Port] - 3 Receive Complete On" );
|
|
|
break;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1420,12 +1434,14 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
this.OnConveyorStop?.Invoke( false );
|
|
|
PIOClear();
|
|
|
|
|
|
- this.iO.WriteOutputIO( "OUT_PIO_SEND_COMPLITE" , true );
|
|
|
+ this.iO.WriteOutputIO( "OUT_PIO_SEND_COMPLITE", true );
|
|
|
Thread.Sleep( 1000 );
|
|
|
- this.iO.WriteOutputIO( "OUT_PIO_SEND_COMPLITE" , false );
|
|
|
+ this.iO.WriteOutputIO( "OUT_PIO_SEND_COMPLITE", false );
|
|
|
+ loggerPIO.I( "[Vehicle] - 3 Send Complete OnOff" );
|
|
|
|
|
|
this.OnUnloadComplete?.Invoke();
|
|
|
#endif
|
|
|
+ loggerPIO.I( $"End Unload PIO - [{targetName}]" );
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
@@ -1436,11 +1452,11 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
pio.FwEach( x => { this.iO.OutputOff( x ); } );
|
|
|
}
|
|
|
|
|
|
-#endregion
|
|
|
+ #endregion
|
|
|
|
|
|
-#endregion
|
|
|
+ #endregion
|
|
|
|
|
|
-#region Hardware Create Method
|
|
|
+ #region Hardware Create Method
|
|
|
void CreateSteering()
|
|
|
{
|
|
|
this.steering = new Steering( this.iO, this.sql, this.eventAggregator );
|
|
|
@@ -1471,7 +1487,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
this.bMUManager.OnChangedReceivedData += BMUManager_OnChangedReceivedData;
|
|
|
this.bMUManager.OnFirstColtd += BMUManager_OnFirstColtd;
|
|
|
|
|
|
- this.bMUManager.Connect(BMUManager.eCANSelect.Advantech);
|
|
|
+ this.bMUManager.Connect( BMUManager.eCANSelect.Advantech );
|
|
|
}
|
|
|
|
|
|
private void BMUManager_OnDisconnect( string obj, bool state )
|
|
|
@@ -1488,7 +1504,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
private void BMUManager_OnFirstColtd( List<ReceivedData> obj )
|
|
|
{
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private void BMUManager_OnChangedReceivedData( Serial.DataModel.ReceivedData obj )
|
|
|
{
|
|
|
var kind = CastTo<eDataKind>.From<Enum>( obj.DataKind );
|
|
|
@@ -1503,7 +1519,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
case eDataKind.BatteryState:
|
|
|
if ( obj.Value == null )
|
|
|
return;
|
|
|
- this.BatteryState = ( double )obj.Value;
|
|
|
+ this.BatteryState = (double)obj.Value;
|
|
|
break;
|
|
|
case eDataKind.ChargeCompleteTime:
|
|
|
if ( obj.Value == null || obj.Value <= 0 )
|
|
|
@@ -1513,31 +1529,31 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
case eDataKind.DisChargeCompleteTime:
|
|
|
if ( obj.Value == null || obj.Value <= 0 )
|
|
|
return;
|
|
|
- this.BatteryDisChargeTime = ( double )obj.Value / obj.Scale;
|
|
|
+ this.BatteryDisChargeTime = (double)obj.Value / obj.Scale;
|
|
|
break;
|
|
|
case eDataKind.SOC:
|
|
|
- this.BatteryStateOfCharge = ( double )obj.Value * obj.Scale;
|
|
|
+ this.BatteryStateOfCharge = (double)obj.Value * obj.Scale;
|
|
|
break;
|
|
|
case eDataKind.SOH:
|
|
|
- this.BatteryStateOfHealth = ( double )obj.Value * obj.Scale;
|
|
|
+ this.BatteryStateOfHealth = (double)obj.Value * obj.Scale;
|
|
|
break;
|
|
|
case eDataKind.ResidualCapacity:
|
|
|
- this.BatteryCapacity = ( double )obj.Value * obj.Scale;
|
|
|
+ this.BatteryCapacity = (double)obj.Value * obj.Scale;
|
|
|
break;
|
|
|
case eDataKind.ResidualEnergy:
|
|
|
- this.BatteryEnergy = ( double )obj.Value * obj.Scale;
|
|
|
+ this.BatteryEnergy = (double)obj.Value * obj.Scale;
|
|
|
break;
|
|
|
case eDataKind.Temperature:
|
|
|
- this.BatteryTemperature = ( double )obj.Value * obj.Scale;
|
|
|
+ this.BatteryTemperature = (double)obj.Value * obj.Scale;
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-#endregion
|
|
|
+ #endregion
|
|
|
|
|
|
-#region Help Method
|
|
|
+ #region Help Method
|
|
|
/// <summary>
|
|
|
/// 현재 좌표 값이 등록된 Route 에 맞는 위치인지 확인한다.
|
|
|
/// 판단 기준은 Route 에 Tolerance 범위를 사용.
|
|
|
@@ -1621,9 +1637,9 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
else
|
|
|
return;
|
|
|
}
|
|
|
-#endregion
|
|
|
+ #endregion
|
|
|
|
|
|
-#region Event Subscribe
|
|
|
+ #region Event Subscribe
|
|
|
private void Motion_PropertyChanged( object sender, System.ComponentModel.PropertyChangedEventArgs e )
|
|
|
{
|
|
|
var property = sender.GetType().GetProperty( e.PropertyName );
|
|
|
@@ -1693,7 +1709,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
if ( e != 0 )
|
|
|
{
|
|
|
logger.E( $"[Steering] - Control Error {e}" );
|
|
|
- this.OccurVehicleAlarm( e ) ;
|
|
|
+ this.OccurVehicleAlarm( e );
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -1708,6 +1724,6 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
}
|
|
|
|
|
|
}
|
|
|
-#endregion
|
|
|
+ #endregion
|
|
|
}
|
|
|
}
|