|
|
@@ -227,7 +227,7 @@ 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;
|
|
|
@@ -432,7 +432,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
this.autoManager = auto;
|
|
|
this.autoManager.OnOperationModeChanged += AutoManager_OnOperationModeChanged;
|
|
|
|
|
|
- this.refObjects = vehicleRef;
|
|
|
+ //this.refObjects = vehicleRef;
|
|
|
|
|
|
this.obstacleBitList.AddRange( new string[]
|
|
|
{
|
|
|
@@ -1208,7 +1208,8 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
Thread.Sleep( 1000 );
|
|
|
loggerPIO.E( "[Port] - 4 Ready On" );
|
|
|
|
|
|
- this.iO.WriteOutputIO( "OUT_PIO_RECEIVABLE", true );
|
|
|
+ this.refObjects.IO.WriteOutputIO( "OUT_PIO_RECEIVABLE" , true );
|
|
|
+ //this.iO.WriteOutputIO( "OUT_PIO_RECEIVABLE", true );
|
|
|
loggerPIO.I( "[Vehicle] - 4 Receivable" );
|
|
|
|
|
|
//if ( !this.iO.WaitChangeInputIO( true, 20000, "IN_PIO_SEND_RUN" ) )
|
|
|
@@ -1220,7 +1221,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
Thread.Sleep( 1000 );
|
|
|
loggerPIO.I( "[Port] - 5 Sending Run On" );
|
|
|
|
|
|
- this.iO.WriteOutputIO( "OUT_PIO_RECEIVE_RUN", true );
|
|
|
+ this.refObjects.IO.WriteOutputIO( "OUT_PIO_RECEIVE_RUN", true );
|
|
|
loggerPIO.I( "[Vehicle] - 5 Receive Run On" );
|
|
|
|
|
|
this.VehicleStateProperty = eVehicleState.Charge;
|
|
|
@@ -1275,7 +1276,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
|
|
|
this.PIOClear();
|
|
|
|
|
|
- this.iO.WriteOutputIO( "OUT_PIO_RECIVE_COMPLITE", true );
|
|
|
+ this.refObjects.IO.WriteOutputIO( "OUT_PIO_RECIVE_COMPLITE", true );
|
|
|
loggerPIO.I( "[Vehicle] Receive Complete On" );
|
|
|
|
|
|
//if ( !this.iO.WaitChangeInputIO( true, 20000, "IN_PIO_SEND_COMPLITE" ) )
|
|
|
@@ -1288,7 +1289,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
loggerPIO.I( "[Port] Send Complete On" );
|
|
|
|
|
|
Thread.Sleep( 1000 );
|
|
|
- this.iO.WriteOutputIO( "OUT_PIO_RECIVE_COMPLITE", false );
|
|
|
+ this.refObjects.IO.WriteOutputIO( "OUT_PIO_RECIVE_COMPLITE", false );
|
|
|
|
|
|
this.OnChargingFull?.Invoke();
|
|
|
|
|
|
@@ -1408,7 +1409,7 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
loggerPIO.I( $"Start Load PIO - [{targetName}]" );
|
|
|
this.OnPIOStart?.Invoke( true );
|
|
|
|
|
|
- this.iO.WriteOutputIO( "OUT_PIO_RECEIVE_RUN", true );
|
|
|
+ this.refObjects.IO.WriteOutputIO( "OUT_PIO_RECEIVE_RUN", true );
|
|
|
loggerPIO.I( "[Vehicle] - 4 Receive Run On" );
|
|
|
|
|
|
Thread.Sleep( 1000 );//상대 IO 기다린다 생각.
|
|
|
@@ -1570,14 +1571,15 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
|
|
|
Thread.Sleep( 1000 );
|
|
|
|
|
|
- this.iO.WriteOutputIO( "OUT_PIO_READY", true );
|
|
|
+ this.refObjects.IO.WriteOutputIO( "OUT_PIO_READY", true );
|
|
|
loggerPIO.I( "[Vehicle] - 1 Ready On" );
|
|
|
|
|
|
Thread.Sleep( 1000 );
|
|
|
this.OnConveyorStart?.Invoke( false );
|
|
|
|
|
|
Thread.Sleep( 10000 );
|
|
|
- this.conveyor.OnOffConveyor( false ); //Stop
|
|
|
+ this.refObjects.Conveyor.OnOffConveyor( false );
|
|
|
+ //this.conveyor.OnOffConveyor( false ); //Stop
|
|
|
this.OnConveyorStop?.Invoke( false );
|
|
|
PIOClear();
|
|
|
|
|
|
@@ -1826,16 +1828,22 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
{
|
|
|
}
|
|
|
|
|
|
+ double DoubleTwoDot(double value, double scale)
|
|
|
+ {
|
|
|
+ return Math.Truncate( value * scale * 100 ) / 100;
|
|
|
+ }
|
|
|
+
|
|
|
private void BMUManager_OnChangedReceivedData( Serial.DataModel.ReceivedData obj )
|
|
|
{
|
|
|
var kind = CastTo<eDataKind>.From<Enum>( obj.DataKind );
|
|
|
switch ( kind )
|
|
|
{
|
|
|
case eDataKind.Voltage:
|
|
|
- this.BatteryVoltage = (double)obj.Value * obj.Scale;
|
|
|
+ this.batteryVoltage = Math.Truncate( ( ( double )obj.Value * obj.Scale ) * 100 ) / 100;
|
|
|
+ this.BatteryVoltage = this.DoubleTwoDot((double)obj.Value , obj.Scale );
|
|
|
break;
|
|
|
case eDataKind.Current:
|
|
|
- this.BatteryCurrent = (double)obj.Value * obj.Scale;
|
|
|
+ this.BatteryCurrent = Math.Truncate( ( ( double )obj.Value * obj.Scale ) * 100 ) / 100;
|
|
|
break;
|
|
|
case eDataKind.BatteryState:
|
|
|
if ( obj.Value == null )
|
|
|
@@ -1845,27 +1853,27 @@ namespace VehicleControlSystem.ControlLayer
|
|
|
case eDataKind.ChargeCompleteTime:
|
|
|
if ( obj.Value == null /*|| obj.Value <= 0 */)
|
|
|
return;
|
|
|
- this.BatteryChargeTime = (double)obj.Value / obj.Scale;
|
|
|
+ this.BatteryChargeTime = Math.Truncate( ( ( double )obj.Value * obj.Scale ) * 100 ) / 100;
|
|
|
break;
|
|
|
case eDataKind.DisChargeCompleteTime:
|
|
|
if ( obj.Value == null || obj.Value <= 0 )
|
|
|
return;
|
|
|
- this.BatteryDisChargeTime = (double)obj.Value / obj.Scale;
|
|
|
+ this.BatteryDisChargeTime = Math.Truncate( ( ( double )obj.Value * obj.Scale ) * 100 ) / 100;
|
|
|
break;
|
|
|
case eDataKind.SOC:
|
|
|
- this.BatteryStateOfCharge = (double)obj.Value * obj.Scale;
|
|
|
+ this.BatteryStateOfCharge = Math.Truncate( ( ( double )obj.Value * obj.Scale ) * 100 ) / 100;
|
|
|
break;
|
|
|
case eDataKind.SOH:
|
|
|
- this.BatteryStateOfHealth = (double)obj.Value * obj.Scale;
|
|
|
+ this.BatteryStateOfHealth = Math.Truncate( ( ( double )obj.Value * obj.Scale ) * 100 ) / 100;
|
|
|
break;
|
|
|
case eDataKind.ResidualCapacity:
|
|
|
- this.BatteryCapacity = (double)obj.Value * obj.Scale;
|
|
|
+ this.BatteryCapacity = Math.Truncate( ( ( double )obj.Value * obj.Scale ) * 100 ) / 100;
|
|
|
break;
|
|
|
case eDataKind.ResidualEnergy:
|
|
|
- this.BatteryEnergy = (double)obj.Value * obj.Scale;
|
|
|
+ this.BatteryEnergy = Math.Truncate( ( ( double )obj.Value * obj.Scale ) * 100 ) / 100;
|
|
|
break;
|
|
|
case eDataKind.Temperature:
|
|
|
- this.BatteryTemperature = (double)obj.Value * obj.Scale;
|
|
|
+ this.BatteryTemperature = Math.Truncate( ( ( double )obj.Value * obj.Scale ) * 100 ) / 100;
|
|
|
break;
|
|
|
default:
|
|
|
break;
|