浏览代码

충돌 병합

ys-hwang 6 年之前
父节点
当前提交
de8ba4bc48

+ 5 - 5
Dev/OHV/VehicleControlSystem/ControlLayer/Serial/DataModel/ReceivedData.cs

@@ -30,7 +30,7 @@ namespace VehicleControlSystem.ControlLayer.Serial.DataModel
         LowTemperature,
         BMUError,
     }
-
+    
     public class ReceivedData
     {
         public eDataKind DataKind { get; set; } = eDataKind.BatteryState;
@@ -40,19 +40,19 @@ namespace VehicleControlSystem.ControlLayer.Serial.DataModel
 
         public double? Value { 
             get 
-            { 
+            {
                 if ( this.DataKind != eDataKind.BatteryState )
                 {
                     double dOrg = 0d;
                     double.TryParse( this.OrgVule , out dOrg );
-                    
+
                     return dOrg;
                 }
                 else
                 {
                     return null;
                 }
-            } 
+            }
             set
             {
                 if(Value != (double)value)
@@ -62,7 +62,7 @@ namespace VehicleControlSystem.ControlLayer.Serial.DataModel
                 }
             }
         }
-        
+
 
         //public double Value 
         //{

+ 26 - 18
Dev/OHV/VehicleControlSystem/ControlLayer/Vehicle.cs

@@ -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;