Просмотр исходного кода

DryRun 중 배터리 10%이하면 충전2 위치로 이동 후 충전 시작 DryRun Stop기능 추가

unque781 6 лет назад
Родитель
Сommit
143094b0a6

+ 1 - 1
Dev/OHV/Assambly/GSG.NET.XML

@@ -1805,7 +1805,7 @@
             </summary>
         </member>
         <member name="M:GSG.NET.OSView.Mgnt.MemVirtualKB">
-            <summary>
+            <summary>   
             <para>Virtual Memory Size KB 단위 추출</para>
             </summary>
         </member>

BIN
Dev/OHV/Assambly/GSG.NET.dll


BIN
Dev/OHV/Assambly/GSG.NET.pdb


BIN
Dev/OHV/Assambly/OHVConnector.dll


BIN
Dev/OHV/Assambly/OHVConnector.pdb


+ 3 - 0
Dev/OHV/OHV.SqliteDAL/DAL/AbstractDAL.cs

@@ -208,6 +208,9 @@ namespace OHV.SqliteDAL.DAL
             lock ( this.lockObj )
             {
                 T existing = table.Find( id );
+                if ( existing == null )
+                    return;
+
                 table.Remove( existing );
                 this.Save();
             }

+ 6 - 6
Dev/OHV/VehicleControlSystem/ControlLayer/Vehicle.cs

@@ -906,8 +906,8 @@ namespace VehicleControlSystem.ControlLayer
                 result = this.StopBatteryCharge();
                 if ( result != 0 )
                 {
-                    OccurVehicleAlarm( result );
-                    return;
+                    //OccurVehicleAlarm( result );
+                    //return;
                 }
             }
 
@@ -995,8 +995,8 @@ namespace VehicleControlSystem.ControlLayer
                     }
                     else
                     {
-                        logger.D( "[Wait Move Done] - Main Command not Exist Motion command 없음" );
-                        return 41;
+                        logger.D( "[Wait Move Done] - Main Command not Exist Motion command, New Command Exist" );
+                        break;
                     }
                 }
 
@@ -1315,8 +1315,8 @@ namespace VehicleControlSystem.ControlLayer
 
             this.refObjects.IO.WriteOutputIO( "OUT_PIO_RECIVE_COMPLITE", true );
             loggerPIO.I( "[Vehicle] Receive Complete On" );
-
-            if ( !this.refObjects.IO.WaitChangeInputIO( true, 20000, "IN_PIO_SEND_COMPLITE" ) )
+            
+            if ( !this.refObjects.IO.WaitChangeInputIO( true, 10000, "IN_PIO_SEND_COMPLITE" ) )
             {
                 this.refObjects.IO.WriteOutputIO( "OUT_PIO_RECIVE_COMPLITE", false );
                 loggerPIO.E( "[Port]  IN_PIO_SEND_COMPLITE On Time Out" );

+ 48 - 30
Dev/OHV/VehicleControlSystem/Managers/HostManager.cs

@@ -426,48 +426,66 @@ namespace VehicleControlSystem.Managers
             if ( hasCommand != null )
             {
                 if ( !hasCommand.IsSecondCommanded )
+                {
+                    switch ( msg.SubCode )
+                    {
+                        case "000": //Move
+                            cmd.Type = eCommandType.Move;
+                            break;
+                        case "001": //Move and Load
+                            cmd.Type = eCommandType.MoveNLoad;
+                            break;
+                        case "002": //Move and Unload
+                            cmd.Type = eCommandType.MoveNUnload;
+                            break;
+                        case "003": //Move and Charge
+                            cmd.Type = eCommandType.Charging;
+                            break;
+                        default:
+                            return;
+                    }
+                    cmd.ByWho = eCommandByWho.HostOverWrite;
+
+                    cmd.TargetID = msg.Tag;
+
+                    this.sql.CommandDAL.Insert( cmd );
+                    logger.I( $"[Command] - Add Host : Target {cmd.TargetID} / Type {cmd.Type}" );
+
                     sql.CommandDAL.Delete( hasCommand.CommandID );
+                }
                 else
                 {
                     loggerHost.E( $"[OCS] Cmd - {msg.Kind} Message Tag [{msg.Tag}] - Already Load/Unload " );
                     return;
                 }
-                cmd.ByWho = eCommandByWho.HostOverWrite;
             }
             else
-                cmd.ByWho = eCommandByWho.Host;
-
-
-            switch ( msg.SubCode )
             {
-                case "000": //Move
-                    cmd.Type = eCommandType.Move;
-                    break;
-                case "001": //Move and Load
-                    cmd.Type = eCommandType.MoveNLoad;
-                    break;
-                case "002": //Move and Unload
-                    cmd.Type = eCommandType.MoveNUnload;
-                    break;
-                case "003": //Move and Charge
-                    cmd.Type = eCommandType.Charging;
-                    break;
-                default:
-                    return;
-            }
+                cmd.TargetID = msg.Tag;
 
-            //Todo: 등록 되어 있는 경로 가 있는 지 확인 필요.
-            //var route = this.sql.RouteDal.GetRouteFromOCSMatchID( msg.Tag );
-            //if ( route == null )
-            //{
-            //    loggerHost.E( $"[OCS] Message Tag [{msg.Tag}] - not found route" );
-            //    return;
-            //}
+                switch ( msg.SubCode )
+                {
+                    case "000": //Move
+                        cmd.Type = eCommandType.Move;
+                        break;
+                    case "001": //Move and Load
+                        cmd.Type = eCommandType.MoveNLoad;
+                        break;
+                    case "002": //Move and Unload
+                        cmd.Type = eCommandType.MoveNUnload;
+                        break;
+                    case "003": //Move and Charge
+                        cmd.Type = eCommandType.Charging;
+                        break;
+                    default:
+                        return;
+                }
+                cmd.ByWho = eCommandByWho.Host;
 
-            cmd.TargetID = msg.Tag;
+                this.sql.CommandDAL.Insert( cmd );
+                logger.I( $"[Command] - Add Host : Target {cmd.TargetID} / Type {cmd.Type}" );
+            }
 
-            this.sql.CommandDAL.Insert( cmd );
-            logger.I( $"[Command] - Add Host : Target {cmd.TargetID} / Type {cmd.Type}" );
         }
 
         private void Manager_OnT3Timeout( OHVConnector.OCSMessage msg )

+ 34 - 7
Dev/OHV/VehicleControlSystem/Managers/Scheduler.cs

@@ -13,6 +13,8 @@ using OHV.Common.Model;
 using OHV.Common.Shareds;
 using OHV.SqliteDAL;
 using Prism.Events;
+using VehicleControlSystem.ControlLayer.Serial.BatteryTabos;
+using VehicleControlSystem.ControlLayer.Serial.DataModel;
 
 namespace VehicleControlSystem.Managers
 {
@@ -34,12 +36,13 @@ namespace VehicleControlSystem.Managers
         IEventAggregator eventAggregator;
         AutoManager autoManager;
         SqliteManager sql = null;
+        BMUManager bMUManager = null;
 
         public event Action<Command> OnMaualAddedCommand;
 
         public bool IsCreateDryRunCommand { get; set; } = false;
 
-        public Scheduler( IEventAggregator ea, AutoManager autoManager, SqliteManager sqlite )
+        public Scheduler( IEventAggregator ea, AutoManager autoManager, SqliteManager sqlite, BMUManager bMU )
         {
             this.CommandsList = new List<Command>();
             eventAggregator = ea;// CommonServiceLocator.ServiceLocator.Current.GetInstance<IEventAggregator>();
@@ -47,6 +50,7 @@ namespace VehicleControlSystem.Managers
 
             this.autoManager = autoManager;
             this.sql = sqlite;
+            this.bMUManager = bMU;
         }
 
         private void OnReceivedMessageEvent( VCSMessageEventArgs obj )
@@ -154,21 +158,44 @@ namespace VehicleControlSystem.Managers
             logger.D("[Scheduler] - Command Thread Dispose");
         }
 
+
+        int copyTarget = 0;
+
         void DryRunTest()
         {
             if ( !IsCreateDryRunCommand )
                 return;
 
+            if ( this.bMUManager.ReceivedDataDic[eDataKind.SOC].Value <= 10 )
+            {
+                var targetPoint = "2";
+                Command cmd = new Command() { TargetID = targetPoint, Type = eCommandType.Charging };
+                cmd.ByWho = eCommandByWho.LocalSystem;
+
+                this.AddCommand( cmd );
+
+                this.IsCreateDryRunCommand = false;
+                return;
+            }
+
             var ram = NumUtils.Random( 0, RouteManager.Instance.Equipments.Count - 1 );
-            var target = RouteManager.Instance.Equipments[ram];
-            if ( target.Name.Equals( "CHARGING_01" ) || target.pointID == 17 )
+            if ( ram == this.copyTarget )
                 return;
+            else
+            {
+                this.copyTarget = ram;
 
-            var targetPoint = target.pointID.ToString();
-            Command cmd = new Command() { TargetID = targetPoint, Type = eCommandType.Move };
-            cmd.ByWho = eCommandByWho.LocalSystem;
+                var target = RouteManager.Instance.Equipments[ram];
+                //if ( target.Name.Equals( "CHARGING_01" ) || target.pointID == 17 )
+                //    return;
 
-            this.AddCommand( cmd );
+                var targetPoint = target.pointID.ToString();
+                Command cmd = new Command() { TargetID = targetPoint, Type = eCommandType.Move };
+                cmd.ByWho = eCommandByWho.LocalSystem;
+
+                this.AddCommand( cmd );
+                LockUtils.Wait( 2000 );
+            }
         }
 
         private void DoWork( Command cmd )

+ 1 - 1
Dev/OHV/VehicleControlSystem/VCSystem.cs

@@ -110,7 +110,7 @@ namespace VehicleControlSystem
 
             //Process
             this.autoManager = new AutoManager( this.IO, this.eventAggregator, this.sql );
-            this.scheduler = new Scheduler( eventAggregator, this.autoManager, this.sql );
+            this.scheduler = new Scheduler( eventAggregator, this.autoManager, this.sql, this.bMUManager );
 
             this.vehicle = new Vehicle( refObject, this.IO, this.sql, this.eventAggregator, this.autoManager );
             this.vehicle.PropertyChanged += Vehicle_PropertyChanged;

BIN
Dev/OHVDriveLogger/OHVDriveLogger/.vs/OHVDriveLogger/v16/Server/sqlite3/storage.ide


+ 7 - 1
Dev/OHVDriveLogger/OHVDriveLogger/OHVDriveLogger/OHVDriveLogger.csproj

@@ -43,7 +43,7 @@
     <Prefer32Bit>true</Prefer32Bit>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'RRmode|AnyCPU'">
-    <OutputPath>\\192.168.127.10\DriveLogger\</OutputPath>
+    <OutputPath>\\192.168.127.20\DriveLogger\</OutputPath>
     <DefineConstants>TRACE</DefineConstants>
     <Optimize>true</Optimize>
     <DebugType>pdbonly</DebugType>
@@ -53,6 +53,9 @@
     <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
     <Prefer32Bit>true</Prefer32Bit>
   </PropertyGroup>
+  <PropertyGroup>
+    <ApplicationIcon>DataLogger.ico</ApplicationIcon>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="FluentFTP">
       <HintPath>..\..\..\OHV\Assambly\FluentFTP.dll</HintPath>
@@ -140,5 +143,8 @@
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </None>
   </ItemGroup>
+  <ItemGroup>
+    <Content Include="DataLogger.ico" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>