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

Merge branch 'master' of http://unque781.synology.me:3000/GSI/OHV

ys-hwang 6 лет назад
Родитель
Сommit
5171b79b17

+ 3 - 1
Dev/OHV/OHV.Common/Events/MessageEventArgs.cs

@@ -23,6 +23,7 @@ namespace OHV.Common.Events
             RspAutoModeChange,
             RspManualModeChange,
             RspAlarmReset,
+            RspVehicleModeChange,
         }
 
         public eGUIMessageKind Kind { get; set; }
@@ -55,10 +56,11 @@ namespace OHV.Common.Events
             ReqAutoModeChange,
             ReqManualModeChange,
             ReqAlarmReset,
+            ReqVehicleModeChange,
         }
 
         public eVCSMessageKind Kind { get; set; }
-        public int MessageKey { get; set; }
+        public string MessageKey { get; set; }
         public string MessageText { get; set; }
         public Command Command { get; set; }
         public Dictionary<string, object> Args { get; set; }

+ 2 - 0
Dev/OHV/OHV.Common/Shareds/ConstString.cs

@@ -29,5 +29,7 @@ namespace OHV.Common.Shareds
     public class MessageKey
     {
         public const string Alarm = "Alarm";
+        public const string AutoMode = "AutoMode";
+        public const string ManualMode = "ManualMode";
     }
 }

+ 11 - 1
Dev/OHV/OHV.Module.MainViews/Views/HistoryView.xaml

@@ -23,7 +23,7 @@
             <Grid Margin="15,15" Background="#263238">
                 <DockPanel>
                     <DataGrid ItemsSource="{Binding AlarmList}" CanUserSortColumns="True" CanUserAddRows="False" AutoGenerateColumns="False" materialDesign:DataGridAssist.CellPadding="13 8 8 8" 
-                                  materialDesign:DataGridAssist.ColumnHeaderPadding="8" Background="{x:Null}" IsReadOnly="True">
+                                  materialDesign:DataGridAssist.ColumnHeaderPadding="8" Background="{x:Null}" Foreground="White" IsReadOnly="True">
                         <DataGrid.Resources>
                             <Style TargetType="{x:Type DataGridRow}">
                                 <Style.Triggers>
@@ -45,6 +45,16 @@
                                 </DataGridTemplateColumn.CellTemplate>
                             </DataGridTemplateColumn>-->
 
+                            <materialDesign:DataGridTextColumn Header="OccurTime" Width="150" Binding="{Binding OccurTime }" EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnPopupEditingStyle}">
+                                <DataGridTextColumn.HeaderStyle>
+                                    <Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}">
+                                        <Setter Property="VerticalContentAlignment" Value="Center"/>
+                                        <Setter Property="HorizontalContentAlignment" Value="Center"/>
+                                        <Setter Property="Foreground" Value="White"/>
+                                    </Style>
+                                </DataGridTextColumn.HeaderStyle>
+                            </materialDesign:DataGridTextColumn>
+
                             <materialDesign:DataGridTextColumn Header="Level" Width="150" Binding="{Binding Level}" EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnPopupEditingStyle}">
                                 <DataGridTextColumn.HeaderStyle>
                                     <Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}">

+ 17 - 8
Dev/OHV/OHV.Module.MainViews/Views/HistoryViewModel.cs

@@ -16,8 +16,8 @@ namespace OHV.Module.MainViews.Views
     {
         SqliteManager sql;
 
-        ObservableCollection<Alarm> _alarmList;
-        public ObservableCollection<Alarm> AlarmList
+        List<HisAlarm> _alarmList;
+        public List<HisAlarm> AlarmList
         {
             get { return this._alarmList; }
             set { this.SetProperty( ref this._alarmList , value ); }
@@ -28,20 +28,29 @@ namespace OHV.Module.MainViews.Views
         public HistoryViewModel( SqliteManager _sql )
         {
             this.sql = _sql;
-            this.AlarmList = new ObservableCollection<Alarm>( sql.AlarmDAL.All );
+            this.sql.HisAlarmDAL.ChangedProperty += HisAlarmDAL_ChangedProperty;
+            this.AlarmList = new List<HisAlarm>( sql.HisAlarmDAL.All );
             this.AlarmResetCommand = new DelegateCommand( ExecuteAlarmResetCommand );
         }
 
+        private void HisAlarmDAL_ChangedProperty()
+        {
+            this.AlarmList.Clear();
+            this.AlarmList = null;
+
+            this.AlarmList = sql.HisAlarmDAL.All;
+        }
+
         async private void ExecuteAlarmResetCommand( )
         {
             //Grid Refresh 대안 찾을것
-            var backupList = this.AlarmList.ToList();
-            this.AlarmList.Clear();
+            //var backupList = this.AlarmList.ToList();
+            //this.AlarmList.Clear();
 
-            await Task.Delay( 1000 );
+            //await Task.Delay( 1000 );
 
-            var e = new ObservableCollection<Alarm>( backupList );
-            this.AlarmList = e;
+            //var e = new ObservableCollection<Alarm>( backupList );
+            //this.AlarmList = e;
         }
 
         public void Init( ) { }

+ 1 - 0
Dev/OHV/OHV.Vehicle/Concept/D_MainWindow.xaml.cs

@@ -51,6 +51,7 @@ namespace OHV.Vehicle.Concept
         {
             //throw new NotImplementedException();
             WindowExternal.MaximizeToFirstMonitor(this);
+            this.Activate();
 
             App.splashScreen.AddMessage("Done !");
             App.splashScreen.LoadComplete();

+ 41 - 11
Dev/OHV/OHV.Vehicle/Concept/D_MainWindowViewModel.cs

@@ -259,11 +259,10 @@ namespace OHV.Vehicle.Concept
                 {
                     var msg = new VCSMessageEventArgs
                     {
-                        Kind = VCSMessageEventArgs.eVCSMessageKind.ReqManualModeChange,
+                        Kind = VCSMessageEventArgs.eVCSMessageKind.ReqVehicleModeChange,
+                        MessageKey = MessageKey.ManualMode,
                     };
 
-                    this.StartEnable = true;
-                    this.StopEnable = false;
                     vcsMessagePublisher.Publish(msg);
                 }
             });
@@ -277,10 +276,9 @@ namespace OHV.Vehicle.Concept
                 {
                     var msg = new VCSMessageEventArgs
                     {
-                        Kind = VCSMessageEventArgs.eVCSMessageKind.ReqAutoModeChange,
+                        Kind = VCSMessageEventArgs.eVCSMessageKind.ReqVehicleModeChange,
+                        MessageKey = MessageKey.AutoMode,
                     };
-                    this.StartEnable = false;
-                    this.StopEnable = true;
                     vcsMessagePublisher.Publish(msg);
                 }
             });
@@ -317,6 +315,20 @@ namespace OHV.Vehicle.Concept
                 regionManager.RequestNavigate("MainView", selectItem);
         }
 
+        void VehicleModeChang(bool isAutoMode)
+        {
+            if (isAutoMode)
+            {
+                this.StartEnable = false;
+                this.StopEnable = true;
+            }
+            else
+            {
+                this.StartEnable = true;
+                this.StopEnable = false;
+            }
+        }
+
         private void UICallbackCommunication(GUIMessageEventArgs obj)
         {
             switch (obj.Kind)
@@ -334,11 +346,29 @@ namespace OHV.Vehicle.Concept
                     break;
                 case GUIMessageEventArgs.eGUIMessageKind.RspManualModeChange:
                     break;
+                case GUIMessageEventArgs.eGUIMessageKind.RspAlarmReset:
+                    break;
+                case GUIMessageEventArgs.eGUIMessageKind.RspVehicleModeChange:
+                    this.RspVehicleModeChange(obj);
+                    break;
                 default:
                     break;
             }
         }
 
+        private void RspVehicleModeChange(GUIMessageEventArgs obj)
+        {
+            if ( obj.Result.IsSuccess)
+            {
+                if (obj.MessageKey.Equals(MessageKey.AutoMode)) { this.VehicleModeChang(true); }
+                if (obj.MessageKey.Equals(MessageKey.ManualMode)) { this.VehicleModeChang(false); }
+            }
+            else
+            {
+
+            }
+        }
+
         void UICallBackModelPropertyChange(GUIMessageEventArgs args)
         {
             if (args.MessageKey.Equals(MessageKey.Alarm))
@@ -350,12 +380,12 @@ namespace OHV.Vehicle.Concept
 
         private void ExecuteTextCommand()
         {
-            var m = new VCSMessageEventArgs();
-            m.MessageKey = 1234;
-            m.MessageText = "Test Message";
-            m.Command = new Common.Model.Command() { CommandID = "TestCommand123", Type = Common.Shareds.eCommandType.Move };
+            //var m = new VCSMessageEventArgs();
+            //m.MessageKey = 1234;
+            //m.MessageText = "Test Message";
+            //m.Command = new Common.Model.Command() { CommandID = "TestCommand123", Type = Common.Shareds.eCommandType.Move };
 
-            this.eventAggregator.GetEvent<VCSMessagePubSubEvent>().Publish(m);
+            //this.eventAggregator.GetEvent<VCSMessagePubSubEvent>().Publish(m);
         }
 
 

+ 5 - 5
Dev/OHV/OHV.Vehicle/MainWindowViewModel.cs

@@ -145,12 +145,12 @@ namespace OHV.Vehicle
 
         private void ExecuteTextCommand()
         {
-            var m = new VCSMessageEventArgs();
-            m.MessageKey = 1234;
-            m.MessageText = "Test Message";
-            m.Command = new Common.Model.Command() { CommandID = "TestCommand123", Type = Common.Shareds.eCommandType.Move };
+            //var m = new VCSMessageEventArgs();
+            //m.MessageKey = 1234;
+            //m.MessageText = "Test Message";
+            //m.Command = new Common.Model.Command() { CommandID = "TestCommand123", Type = Common.Shareds.eCommandType.Move };
 
-            this.eventAggregator.GetEvent<VCSMessagePubSubEvent>().Publish(m);
+            //this.eventAggregator.GetEvent<VCSMessagePubSubEvent>().Publish(m);
         }
 
 

+ 4 - 0
Dev/OHV/OHV.Vehicle/OHV.Vehicle.csproj

@@ -62,6 +62,10 @@
     <Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
       <HintPath>..\packages\EntityFramework.6.3.0\lib\net45\EntityFramework.SqlServer.dll</HintPath>
     </Reference>
+    <Reference Include="FluentResults, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\Assambly\FluentResults.dll</HintPath>
+    </Reference>
     <Reference Include="GSG.NET">
       <HintPath>..\Assambly\GSG.NET.dll</HintPath>
     </Reference>

+ 6 - 2
Dev/OHV/VehicleControlSystem/ControlLayer/IO/EzIO.cs

@@ -432,6 +432,7 @@ namespace VehicleControlSystem.ControlLayer.IO
                     logger.E($"Exception [EzIO IORead Thread] - {ex.StackTrace}");
                 }
             }
+            logger.D("[EzIO] - Dispose");
         }
 
         void ReadBoardIO()
@@ -545,7 +546,7 @@ namespace VehicleControlSystem.ControlLayer.IO
 
         void PullQueueThread()
         {
-            for (; ; )
+            while(IsThreadAlive)
             {
                 try
                 {
@@ -564,12 +565,15 @@ namespace VehicleControlSystem.ControlLayer.IO
                     else
                         Assert.Fail("Unk Object {0}", o);
                 }
-                catch (ThreadAbortException) { }
+                catch (ThreadAbortException) 
+                {
+                }
                 catch (Exception e)
                 {
                     logger.E(e);
                 }
             }
+            logger.D("[EzIO] - PullQueue Thread Dispose");
         }
         #endregion
 

+ 1 - 0
Dev/OHV/VehicleControlSystem/Managers/AutoManager.cs

@@ -189,6 +189,7 @@ namespace VehicleControlSystem.Managers
                     logger.E($"{GetType().Name} - Thread Exception : {ex.StackTrace}");
                 }
             }
+            logger.D("[AutoManager] - Work Thread Dispose");
         }
 
 

+ 1 - 0
Dev/OHV/VehicleControlSystem/Managers/Scheduler.cs

@@ -135,6 +135,7 @@ namespace VehicleControlSystem.Managers
                     logger.E( ex );
                 }
             }
+            logger.D("[Scheduler] - Command Thread Dispose");
         }
 
         private void DoWork( Command cmd )

+ 34 - 2
Dev/OHV/VehicleControlSystem/VCSystem.cs

@@ -9,6 +9,7 @@ using GSG.NET.ObjectBase;
 using GSG.NET.Quartz;
 using OHV.Common.Events;
 using OHV.Common.Model;
+using OHV.Common.Shareds;
 using OHV.SqliteDAL;
 using Prism.Events;
 using Prism.Ioc;
@@ -101,16 +102,47 @@ namespace VehicleControlSystem
                 case VCSMessageEventArgs.eVCSMessageKind.ReqCommandList:
                     break;
                 case VCSMessageEventArgs.eVCSMessageKind.ReqAutoModeChange:
-                    RspAutoModeChange(true);
                     break;
                 case VCSMessageEventArgs.eVCSMessageKind.ReqManualModeChange:
-                    RspAutoModeChange(false);
+                    break;
+                case VCSMessageEventArgs.eVCSMessageKind.ModelPropertyChange:
+                    break;
+                case VCSMessageEventArgs.eVCSMessageKind.ReqAlarmReset:
+                    break;
+                case VCSMessageEventArgs.eVCSMessageKind.ReqVehicleModeChange:
+                    this.ReqVehicleModeChange(msg);
                     break;
                 default:
                     break;
             }
         }
 
+        private void ReqVehicleModeChange(VCSMessageEventArgs msg)
+        {
+            GUIMessageEventArgs reply;
+
+            if (msg.MessageKey.Equals(MessageKey.AutoMode))
+            {
+                int result = vehicle.InitializationVehicle();
+                if (result != 0)
+                {
+                    this.autoManager.ProcessAlarm(result); //Alarm 내용을 UI로 전달 해주니까 Reply 가 필요 없다.
+                    return;
+                }
+
+                this.autoManager.OperationModeProperty = OHV.Common.Shareds.eOperatationMode.AutoMode;
+                this.autoManager.AutoModeStateProperty = OHV.Common.Shareds.eAutoModeState.StartRun;
+                reply = new GUIMessageEventArgs { Kind = GUIMessageEventArgs.eGUIMessageKind.RspVehicleModeChange, Result = FluentResults.Results.Ok(), MessageKey = MessageKey.AutoMode };
+            }
+            else
+            {
+                this.autoManager.AutoModeStateProperty = OHV.Common.Shareds.eAutoModeState.WaitStop;
+                reply = new GUIMessageEventArgs { Kind = GUIMessageEventArgs.eGUIMessageKind.RspVehicleModeChange, Result = FluentResults.Results.Ok(), MessageKey = MessageKey.ManualMode };
+            }
+
+            GUIMessageEventPublish(reply);
+        }
+
         void RspIOObjectMessage()
         {
             var rspMsg = new GUIMessageEventArgs { Kind = GUIMessageEventArgs.eGUIMessageKind.RspIOObject, Args = this.IO };

+ 1 - 1
Dev/OHV/VehicleControlSystem/VehicleControlSystem.csproj

@@ -18,7 +18,7 @@
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
     <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>TRACE;DEBUG;SIMULATION</DefineConstants>
+    <DefineConstants>TRACE;DEBUG</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>