diff --git a/Client/View/MainForm.cs b/Client/View/MainForm.cs index a23cb81e..1c428ebe 100644 --- a/Client/View/MainForm.cs +++ b/Client/View/MainForm.cs @@ -179,8 +179,6 @@ namespace CMS_Client.View Browser.LoadHandler.OnLoadError += BrowserLoadsError; Browser.KeyboardHandler.OnKeyEvent += BrowserKeyPress; Browser.ContextMenuHandler.OnBeforeContextMenu += BrowserContextMenu; - Browser.DisplayHandler.OnConsoleMessage += BrowserConsoleMessage; - } #endregion @@ -356,13 +354,6 @@ namespace CMS_Client.View e.Model.Clear(); } - - //Override Javascript Console Message - private void BrowserConsoleMessage(object sender, CfxOnConsoleMessageEventArgs e) - { - e.SetReturnValue(true); - } - #endregion /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/Client/View/NcWindow.cs b/Client/View/NcWindow.cs index f73cb80c..af1efa7f 100644 --- a/Client/View/NcWindow.cs +++ b/Client/View/NcWindow.cs @@ -280,6 +280,7 @@ namespace CMS_Client.View public static void SetState(NcState St) { state = St; + CaptureHMI(); } @@ -373,6 +374,7 @@ namespace CMS_Client.View //Start the Hook if (MainViewHandle != IntPtr.Zero && ncprocess.MainWindowHandle != IntPtr.Zero && MainProcessPID != 0 && NcProcessPID != 0 && windowstarted) { + CaptureHMI(); //Detach the hook if (hhook != IntPtr.Zero) UnhookWinEvent(hhook); @@ -381,11 +383,11 @@ namespace CMS_Client.View procDelegate = new WinEventDelegate(WinEventProc); hhook = SetWinEventHook(EVENT_OBJECT_FOCUS, EVENT_OBJECT_FOCUS, IntPtr.Zero, procDelegate, 0, 0, WINEVENT_OUTOFCONTEXT); - //Start the new Thread of Image Captutre - in Standby (NICOLA CARMINATI 25/01/2018) - //if (CaptureThread != null) - // CaptureThread.Abort(); - //CaptureThread = new Thread(new ThreadStart(CaptureCycle)); - //CaptureThread.Start(); + //Start the new Thread of Image Captutre + if (CaptureThread != null) + CaptureThread.Abort(); + CaptureThread = new Thread(new ThreadStart(CaptureCycle)); + CaptureThread.Start(); //Start the new Thread of Follow-NC-Window if (Config.VendorHmiConfig.FollowNcWindow) @@ -447,13 +449,15 @@ namespace CMS_Client.View HideTaskBar(); //Resize the Popup opened on Nc Window - //if (ActualPID != LastHookedPID) - //{ - // //get the Handle of the Popup - // PopupHandle = GetLastActivePopup(ncprocess.MainWindowHandle); - // if (PopupHandle != ncprocess.MainWindowHandle) - // ResizeOutofBoundWindow(ncprocess.MainWindowHandle, PopupHandle); - //} + if (ActualPID != LastHookedPID) + { + //get the Handle of the Popup + PopupHandle = GetLastActivePopup(ncprocess.MainWindowHandle); + if (PopupHandle != ncprocess.MainWindowHandle) + { + ResizeOutofBoundWindow(ncprocess.MainWindowHandle, PopupHandle); + } + } } diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll index 8083bfd0..fa42ebde 100644 Binary files a/Libs/CMS_CORE_Library.dll and b/Libs/CMS_CORE_Library.dll differ diff --git a/Step.Config/ServerConfigController.cs b/Step.Config/ServerConfigController.cs index da446201..351ef3c6 100644 --- a/Step.Config/ServerConfigController.cs +++ b/Step.Config/ServerConfigController.cs @@ -100,8 +100,7 @@ namespace Step.Config { Name = element.Name.ToString(), Enabled = Convert.ToBoolean(element.Element("enabled").Value), - AllowExternalBrowser = Convert.ToBoolean(element.Element("allowExternalBrowser").Value), - NcNeeded = Convert.ToBoolean(element.Element("ncNeeded").Value) + AllowExternalBrowser = Convert.ToBoolean(element.Element("allowExternalBrowser").Value) }; } diff --git a/Step.Config/serverConfig.xml b/Step.Config/serverConfig.xml index 8cff7f97..62608464 100644 --- a/Step.Config/serverConfig.xml +++ b/Step.Config/serverConfig.xml @@ -16,37 +16,30 @@ true false - true false false - true true true - true false true - false true false - true true false - false false true - true \ No newline at end of file diff --git a/Step.Config/serverConfigValidator.xsd b/Step.Config/serverConfigValidator.xsd index 71d875c4..f2e4610b 100644 --- a/Step.Config/serverConfigValidator.xsd +++ b/Step.Config/serverConfigValidator.xsd @@ -14,7 +14,6 @@ - @@ -24,7 +23,6 @@ - @@ -33,7 +31,6 @@ - @@ -43,7 +40,6 @@ - @@ -53,7 +49,6 @@ - @@ -63,7 +58,6 @@ - @@ -73,7 +67,6 @@ - @@ -83,7 +76,6 @@ - @@ -93,7 +85,6 @@ - diff --git a/Step.Database/Migrations/Configuration.cs b/Step.Database/Migrations/Configuration.cs index 3f406166..ebdb1c8a 100644 --- a/Step.Database/Migrations/Configuration.cs +++ b/Step.Database/Migrations/Configuration.cs @@ -10,6 +10,8 @@ namespace Step.Database.Migrations public sealed class Configuration : DbMigrationsConfiguration { + private readonly bool _pendingMigrations; + public Configuration() { AutomaticMigrationsEnabled = true; diff --git a/Step.Model/ConfigModels/AreasConfigModel.cs b/Step.Model/ConfigModels/AreasConfigModel.cs index fbc7e723..82cbb662 100644 --- a/Step.Model/ConfigModels/AreasConfigModel.cs +++ b/Step.Model/ConfigModels/AreasConfigModel.cs @@ -11,6 +11,5 @@ namespace Step.Model.ConfigModels public string Name { get; set; } public bool Enabled { get; set; } public bool AllowExternalBrowser { get; set; } - public bool NcNeeded { get; set; } } } diff --git a/Step.Model/DTOModels/DTOAlarmsModel.cs b/Step.Model/DTOModels/DTOAlarmsModel.cs index 671965ba..0066b590 100644 --- a/Step.Model/DTOModels/DTOAlarmsModel.cs +++ b/Step.Model/DTOModels/DTOAlarmsModel.cs @@ -54,7 +54,7 @@ namespace Step.Model.DTOModels public DTOAlarmsModel IntersectModels(DTOAlarmsModel newAlarms) { DTOAlarmsModel result = new DTOAlarmsModel(); - // Get common data from Obj1 and Obj2 + // Get common data result.NcAlarms = NcAlarms.Where(x => newAlarms.NcAlarms.Contains(x as GenericAlarmModel)).ToList(); // Concat common data + new data result.NcAlarms = result.NcAlarms.Concat( @@ -82,9 +82,7 @@ namespace Step.Model.DTOModels public class GenericAlarmModel { - public uint id; - public string message; - public bool isWarning; + public string alarmMessage; public DateTime dateTime; public override bool Equals(object obj) @@ -94,7 +92,7 @@ namespace Step.Model.DTOModels if (item == null) return false; - if (item.id == id) + if (item.alarmMessage == alarmMessage) return true; else return false; @@ -103,10 +101,8 @@ namespace Step.Model.DTOModels public class ProcessAlarmModel { - public uint id; - public string message; - public int process; - public bool isWarning; + public string alarmMessage; + public ushort process; public DateTime dateTime; public override bool Equals(object obj) @@ -116,10 +112,40 @@ namespace Step.Model.DTOModels if (item == null) return false; - if (item.process == process && item.id == id ) + if (item.process == process && item.alarmMessage == alarmMessage ) return true; else return false; } } + class DTOAlarmsModelComparer : IEqualityComparer + { + public bool Equals(DTOAlarmsModel x, DTOAlarmsModel y) + { + if (x == null) + return false; + + if (x.NcAlarms.Count != y.NcAlarms.Count || x.PlcAlarms.Count != y.PlcAlarms.Count || x.ProcessAlarms.Count != y.ProcessAlarms.Count) + return false; + + bool isEqual = x.NcAlarms.All(y.NcAlarms.Contains); + if (!isEqual) + return false; + + isEqual = x.PlcAlarms.All(y.PlcAlarms.Contains); + if (!isEqual) + return false; + + isEqual = x.ProcessAlarms.All(y.ProcessAlarms.Contains); + if (!isEqual) + return false; + + return true; + } + + public int GetHashCode(DTOAlarmsModel obj) + { + throw new NotImplementedException(); + } + } } diff --git a/Step.Model/DTOModels/DTOPowerOnData.cs b/Step.Model/DTOModels/DTOPowerOnData.cs new file mode 100644 index 00000000..a8f31883 --- /dev/null +++ b/Step.Model/DTOModels/DTOPowerOnData.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using static CMS_CORE_Library.DataStructures; + +namespace Step.Model.DTOModels +{ + public class DTOPowerOnData + { + public PrePowerOnModel prePowerOn; + + public DTOPowerOnData() + { + prePowerOn = new PrePowerOnModel(); + } + } +} diff --git a/Step.Model/Step.Model.csproj b/Step.Model/Step.Model.csproj index 900fb179..83aa6ed2 100644 --- a/Step.Model/Step.Model.csproj +++ b/Step.Model/Step.Model.csproj @@ -79,6 +79,7 @@ DTOLanguageModel.cs.d.ts + @@ -113,6 +114,7 @@ - XCOPY $(ProjectDir)*.d.ts $(SolutionDir)Step\wwwroot\src\@types /C /Y /O + + \ No newline at end of file diff --git a/Step.NC/NcHandler.cs b/Step.NC/NcHandler.cs index bcd269f8..f89a9a47 100644 --- a/Step.NC/NcHandler.cs +++ b/Step.NC/NcHandler.cs @@ -115,7 +115,7 @@ namespace Step.NC public CmsError GetNcAlarms(out DTOAlarmsModel alarms) { alarms = new DTOAlarmsModel(); - List tmpAlarms = new List(); + List tmpAlarms = new List(); // Read NC active alarms CmsError cmsError = numericalControl.NC_RActiveAlarms(ref tmpAlarms); @@ -123,13 +123,11 @@ namespace Step.NC return cmsError; // Create response list from strings - foreach (AlarmModel ncAlarm in tmpAlarms) + foreach (string alarmMessage in tmpAlarms) { alarms.NcAlarms.Add(new GenericAlarmModel() { - id = ncAlarm.id, - message = ncAlarm.message, - isWarning = ncAlarm.isWarning, + alarmMessage = alarmMessage, dateTime = DateTime.Now }); } @@ -146,14 +144,12 @@ namespace Step.NC // Get process active alarms numericalControl.PROC_RActiveAlarms(i, ref tmpAlarms); // Create response list from strings - foreach (AlarmModel processAlarm in tmpAlarms) + foreach (string alarmMessage in tmpAlarms) { alarms.ProcessAlarms.Add(new ProcessAlarmModel() { - id = processAlarm.id, - message = processAlarm.message, - process = processAlarm.process, - isWarning = processAlarm.isWarning, + alarmMessage = alarmMessage, + process = i, dateTime = DateTime.Now }); } @@ -164,14 +160,12 @@ namespace Step.NC if (cmsError.errorCode != 0) return cmsError; - // Formatting response list from library alarm model - foreach (AlarmModel plcAlarm in tmpAlarms) + // Formatting response list from strings + foreach (string alarmMessage in tmpAlarms) { - alarms.NcAlarms.Add(new GenericAlarmModel() + alarms.PlcAlarms.Add(new GenericAlarmModel() { - id = plcAlarm.id, - message = plcAlarm.message, - isWarning = plcAlarm.isWarning, + alarmMessage = alarmMessage, dateTime = DateTime.Now }); } @@ -205,6 +199,7 @@ namespace Step.NC public CmsError GetAxesPositionsByProcess(ushort processNum, out DTOAxesModel axes) { + axes = new DTOAxesModel(); CmsError cmsError = numericalControl.AXES_RInterpPosition(processNum, ref axes.interpolated); @@ -228,10 +223,10 @@ namespace Step.NC return cmsError; } - public CmsError GetPowerOnData(out PreAndPostPowerOnModel powerOnData) + public CmsError GetPowerOnData(out DTOPowerOnData powerOnData) { - powerOnData = new PreAndPostPowerOnModel(); - CmsError cmsError = numericalControl.Nc_RPowerOnData(ref powerOnData); + powerOnData = new DTOPowerOnData(); + CmsError cmsError = numericalControl.Nc_RWPrePowerOnFunctions(R, ref powerOnData.prePowerOn); return cmsError; } diff --git a/Step.Tasks/ThreadsFunctions.cs b/Step.Tasks/ThreadsFunctions.cs index 5ee21889..5bceb9e9 100644 --- a/Step.Tasks/ThreadsFunctions.cs +++ b/Step.Tasks/ThreadsFunctions.cs @@ -42,9 +42,8 @@ public static class ThreadsFunctions libraryError = ncHandler.GetNcAlarms(out DTOAlarmsModel alarms); if (libraryError.errorCode != 0) ManageLibraryError(libraryError); - else - // Send through signalR - MessageServices.Current.Publish(SEND_ALARMS, null, alarms); + // Send through signalR + MessageServices.Current.Publish(SEND_ALARMS, null, alarms); } sw.Stop(); @@ -56,7 +55,7 @@ public static class ThreadsFunctions Thread.Sleep(200); } } - catch (ThreadAbortException) + catch (ThreadAbortException ex) { ncHandler.Dispose(); } @@ -95,7 +94,7 @@ public static class ThreadsFunctions Thread.Sleep(1000); } } - catch (ThreadAbortException) + catch (ThreadAbortException ex) { ncHandler.Dispose(); } @@ -122,9 +121,8 @@ public static class ThreadsFunctions libraryError = ncHandler.GetAxesPositions(out List genericData); if (libraryError.errorCode != 0) ManageLibraryError(libraryError); - else - // Send through signalR - MessageServices.Current.Publish(SEND_AXES, null, genericData); + // Send through signalR + MessageServices.Current.Publish(SEND_AXES, null, genericData); } sw.Stop(); @@ -135,7 +133,7 @@ public static class ThreadsFunctions Thread.Sleep(200); } } - catch (ThreadAbortException) + catch (ThreadAbortException ex) { ncHandler.Dispose(); } @@ -159,12 +157,11 @@ public static class ThreadsFunctions if (ncHandler.numericalControl.NC_IsConnected()) { // Get Data from NC - libraryError = ncHandler.GetPowerOnData(out PreAndPostPowerOnModel powerOnData); + libraryError = ncHandler.GetPowerOnData(out DTOPowerOnData powerOnData); if (libraryError.errorCode != 0) ManageLibraryError(libraryError); - else - // Send through signalR - MessageServices.Current.Publish(SEND_POWER_ON_DATA, null, powerOnData); + // Send through signalR + MessageServices.Current.Publish(SEND_POWER_ON_DATA, null, powerOnData); } sw.Stop(); @@ -176,7 +173,7 @@ public static class ThreadsFunctions Thread.Sleep(400); } } - catch (ThreadAbortException) + catch (ThreadAbortException ex) { ncHandler.Dispose(); } @@ -199,14 +196,16 @@ public static class ThreadsFunctions // Try reconnection CmsError cmsError = ncHandler.Connect(); if (cmsError.errorCode == CMS_ERROR_CODES.SIEMENS_ENVIRONMENT_NOT_FOUND || cmsError.errorCode == CMS_ERROR_CODES.SIEMENS_HMI_NOT_RUNNING) + { ManageLibraryError(cmsError); + } else if (cmsError.errorCode != CMS_ERROR_CODES.OK) ncHandler.Dispose(); Thread.Sleep(1000); // Send status to UI - MessageServices.Current.Publish(SEND_NC_STATUS, null, ncHandler.numericalControl.NC_IsConnected()); + MessageServices.Current.Publish(MVVM_NC_STATUS, null, ncHandler.numericalControl.NC_IsConnected()); } // Start/Restart NC threads ThreadsHandler.StartWorkers(); @@ -293,7 +292,7 @@ public static class ThreadsFunctions ReadPowerOnTimes = 0; } - MessageServices.Current.Publish(SEND_THREADS_STATUS, null, ThreadsHandler.RunningThreadStatus); + MessageServices.Current.Publish(MVVM_NC_THREADS, null, ThreadsHandler.RunningThreadStatus); Thread.Sleep(2000); } diff --git a/Step.Tasks/ThreadsHandler.cs b/Step.Tasks/ThreadsHandler.cs index b7ee9743..09eb2366 100644 --- a/Step.Tasks/ThreadsHandler.cs +++ b/Step.Tasks/ThreadsHandler.cs @@ -29,6 +29,7 @@ namespace Step.Core }; private volatile static List RunningThreadsList = new List(); internal volatile static Dictionary RunningThreadStatus = new Dictionary(); + private static Thread StatThread; public static void Start() { @@ -37,8 +38,8 @@ namespace Step.Core public static void StartWorkers() { - - RunningThreadStatus.Clear(); + lock (RunningThreadStatus) + RunningThreadStatus.Clear(); // For each function run in the list a thread ThreadFunctionsList.ForEach(threadFunction => @@ -52,11 +53,12 @@ namespace Step.Core lock (RunningThreadsList) RunningThreadsList.Add(t); - - RunningThreadStatus.Add(threadFunction.Method.Name, "---"); + lock (RunningThreadStatus) + if (!RunningThreadStatus.ContainsKey(threadFunction.Method.Name)) + RunningThreadStatus.Add(threadFunction.Method.Name, "---"); }); - MessageServices.Current.Publish(SEND_THREADS_STATUS, null, RunningThreadStatus); + MessageServices.Current.Publish(MVVM_NC_THREADS, null, RunningThreadStatus); } public static void Stop() @@ -73,9 +75,12 @@ namespace Step.Core lock (RunningThreadsList) RunningThreadsList.Clear(); - RunningThreadStatus.Clear(); - RunningThreadStatus.Add("TryNcConnection", "---"); - MessageServices.Current.Publish(SEND_THREADS_STATUS, null, RunningThreadStatus); + lock (RunningThreadStatus) + { + RunningThreadStatus.Clear(); + RunningThreadStatus.Add("TryNcConnection", "---"); + } + MessageServices.Current.Publish(MVVM_NC_THREADS, null, RunningThreadStatus); } } } diff --git a/Step.UI/ServerControlWindow.Designer.cs b/Step.UI/ServerControlWindow.Designer.cs index 6c186ca3..89e4b2ea 100644 --- a/Step.UI/ServerControlWindow.Designer.cs +++ b/Step.UI/ServerControlWindow.Designer.cs @@ -482,6 +482,7 @@ namespace Step.UI this.metroLabel1.TabIndex = 34; this.metroLabel1.Text = "Vendor:"; this.metroLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.metroLabel1.Click += new System.EventHandler(this.metroLabel1_Click); // // ThreadsInfo // diff --git a/Step.UI/ServerControlWindow.cs b/Step.UI/ServerControlWindow.cs index 1cd410db..49325f68 100644 --- a/Step.UI/ServerControlWindow.cs +++ b/Step.UI/ServerControlWindow.cs @@ -80,7 +80,7 @@ namespace Step.UI private void StopServerButton_Click(object sender, EventArgs e) { // Send message to listeners and close server - MessageServices.Current.Publish(SEND_STOP_SERVER); + MessageServices.Current.Publish(MVVM_STOP_SERVER); } private void NotifyIcon_Click(object sender, EventArgs e) @@ -123,7 +123,7 @@ namespace Step.UI private void InitializeMessageListeners() { - MessageServices.Current.Subscribe(SEND_MESSAGE, (a, b) => + MessageServices.Current.Subscribe(MVVM_SEND_MESSAGE, (a, b) => { // Cast object to ErrorMessageModel ErrorMessageModel message = (ErrorMessageModel)a; @@ -133,7 +133,7 @@ namespace Step.UI StepNotifyIcon.ShowBalloonTip(1000, message.Title, message.Message, (ToolTipIcon)message.ErrorLevel); }); - MessageServices.Current.Subscribe(SEND_NC_STATUS, (a, b) => + MessageServices.Current.Subscribe(MVVM_NC_STATUS, (a, b) => { bool newNcStatus = (bool)a; @@ -186,7 +186,7 @@ namespace Step.UI }); - MessageServices.Current.Subscribe(SEND_THREADS_STATUS, (a, b) => + MessageServices.Current.Subscribe(MVVM_NC_THREADS, (a, b) => { //Other type this.Invoke((MethodInvoker)delegate () { @@ -225,5 +225,10 @@ namespace Step.UI }); } + + private void metroLabel1_Click(object sender, EventArgs e) + { + + } } } diff --git a/Step.Utils/Constants.cs b/Step.Utils/Constants.cs index a6e14d9b..27d0323a 100644 --- a/Step.Utils/Constants.cs +++ b/Step.Utils/Constants.cs @@ -61,13 +61,13 @@ namespace Step.Utils public static string LANGUAGE_PACK_DIRECTORY = BASE_PATH + "\\languages\\"; public static string LANGUAGE_SCHEMA_PATH = BASE_PATH + "\\LanguageValidator.xsd"; - // MVVM Messages to server UI - public const string SEND_STOP_SERVER = "STOP_SERVER"; - public const string SEND_MESSAGE = "SEND_MESSAGE"; - public const string SEND_NC_STATUS = "NC_STATUS"; - public const string SEND_THREADS_STATUS = "THREAD_STATUS"; + // MVVM Messages names + public const string MVVM_STOP_SERVER = "STOP_SERVER"; + public const string MVVM_SEND_MESSAGE = "SEND_MESSAGE"; + public const string MVVM_NC_STATUS = "NC_STATUS"; + public const string MVVM_NC_THREADS = "THREAD_STATUS"; - // MVVM Messages to signalR tasks + // MVVM Messages tasks names public const string SEND_ALARMS = "SEND_ALARMS"; public const string SEND_POWER_ON_DATA = "SEND_POWER_ON_DATA"; public const string SEND_GENERIC_DATA = "SEND_GENERIC_DATA"; diff --git a/Step.Utils/ExceptionManager.cs b/Step.Utils/ExceptionManager.cs index fb3c9f13..c0efa7cb 100644 --- a/Step.Utils/ExceptionManager.cs +++ b/Step.Utils/ExceptionManager.cs @@ -102,7 +102,7 @@ namespace Step.Utils else { // Notify user - MessageServices.Current.Publish(SEND_MESSAGE, null, error); + MessageServices.Current.Publish(MVVM_SEND_MESSAGE, null, error); } } diff --git a/Step/Listeners/ListenersHandler.cs b/Step/Listeners/ListenersHandler.cs index cf7e6e4c..78b77cc7 100644 --- a/Step/Listeners/ListenersHandler.cs +++ b/Step/Listeners/ListenersHandler.cs @@ -1,7 +1,6 @@ using System.Collections.Generic; using Step.Listeners.Database; using Step.Listeners.SignalR; -using Step.Model.DTOModels; using TeamDev.SDK.MVVM; using static Step.Utils.Constants; @@ -25,28 +24,23 @@ namespace Step.Listeners infos.Add(MessageServices.Current.Subscribe(SEND_ALARMS, async (a, b) => { - SignalRListener.SendAlarmsToClient(a as DTOAlarmsModel); + SignalRListener.SendAlarmsToClient(a); })); infos.Add(MessageServices.Current.Subscribe(SEND_GENERIC_DATA, async (a, b) => { - SignalRListener.SendNcInfoToClient(a as DTONcGenericDataModel); + SignalRListener.SendNcInfoToClient(a); })); infos.Add(MessageServices.Current.Subscribe(SEND_AXES, async (a, b) => { - SignalRListener.SendAxesToClient(a as DTOAxesModel); + SignalRListener.SendAxesToClient(a); })); infos.Add(MessageServices.Current.Subscribe(SEND_POWER_ON_DATA, async (a, b) => { SignalRListener.SendPowerOnDataToClient(a); })); - - infos.Add(MessageServices.Current.Subscribe(SEND_NC_STATUS, async (a, b) => - { - SignalRListener.SendNcNetworkStatus(a); - })); } public static void Stop() diff --git a/Step/Listeners/SignalR/SignalRListener.cs b/Step/Listeners/SignalR/SignalRListener.cs index c8c9c23a..02d27d60 100644 --- a/Step/Listeners/SignalR/SignalRListener.cs +++ b/Step/Listeners/SignalR/SignalRListener.cs @@ -1,6 +1,10 @@ -using Microsoft.AspNet.SignalR; +using System; +using System.Diagnostics; +using System.Threading; +using Microsoft.AspNet.SignalR; using Step.Controllers.SignalR; using Step.Model.DTOModels; +using TeamDev.SDK.MVVM; namespace Step.Listeners.SignalR { @@ -9,25 +13,25 @@ namespace Step.Listeners.SignalR private static DTOAlarmsModel alarms = new DTOAlarmsModel(); private static DTOAxesModel axes = new DTOAxesModel(); - public static void SendNcInfoToClient(DTONcGenericDataModel taskName) + public static void SendNcInfoToClient(object taskName) { var context = GlobalHost.ConnectionManager.GetHubContext(); context.Clients.Group("ncData").machineInfo(taskName); } - public static void SendAlarmsToClient(DTOAlarmsModel newAlarmsData) + public static void SendAlarmsToClient(object newAlarmsData) { var context = GlobalHost.ConnectionManager.GetHubContext(); //if (!alarms.Equals(newAlarmsData)) //{ // Intersect old alarms data with new data - alarms = alarms.IntersectModels(newAlarmsData as DTOAlarmsModel); - context.Clients.Group("ncData").alarms(alarms); + alarms = alarms.IntersectModels(newAlarmsData as DTOAlarmsModel); + context.Clients.Group("ncData").alarms(alarms); //} } - public static void SendAxesToClient(DTOAxesModel newAxesData) + public static void SendAxesToClient(object newAxesData) { var context = GlobalHost.ConnectionManager.GetHubContext(); context.Clients.Group("ncData").axes(newAxesData); @@ -38,14 +42,5 @@ namespace Step.Listeners.SignalR var context = GlobalHost.ConnectionManager.GetHubContext(); context.Clients.Group("ncData").powerOn(newAxesData); } - - public static void SendNcNetworkStatus(object ncStatus) - { - if ((bool)ncStatus == false) - { - var context = GlobalHost.ConnectionManager.GetHubContext(); - context.Clients.Group("ncData").ncNetworkStatus(new { connected = false}); - } - } } } diff --git a/Step/program.cs b/Step/program.cs index 87b3eac1..3c9bfe09 100644 --- a/Step/program.cs +++ b/Step/program.cs @@ -31,7 +31,7 @@ namespace Step string configuredUri = "http://*:" + ServerStartupConfig.ServerPort.ToString(); // Register listener to "close application" messages - MessageServices.Current.Subscribe(SEND_STOP_SERVER, (a, b) => + MessageServices.Current.Subscribe(MVVM_STOP_SERVER, (a, b) => { StopRequest.Set(); }); diff --git a/Step/wwwroot/assets/images/Fanuc_Placeholder.JPG b/Step/wwwroot/assets/images/Fanuc_Placeholder.JPG deleted file mode 100644 index f0f5a028..00000000 Binary files a/Step/wwwroot/assets/images/Fanuc_Placeholder.JPG and /dev/null differ diff --git a/Step/wwwroot/assets/images/Osai_Placeholder.JPG b/Step/wwwroot/assets/images/Osai_Placeholder.JPG deleted file mode 100644 index bc99dd3d..00000000 Binary files a/Step/wwwroot/assets/images/Osai_Placeholder.JPG and /dev/null differ diff --git a/Step/wwwroot/assets/images/Siemens_Placeholder.JPG b/Step/wwwroot/assets/images/Siemens_Placeholder.JPG deleted file mode 100644 index d90a285d..00000000 Binary files a/Step/wwwroot/assets/images/Siemens_Placeholder.JPG and /dev/null differ diff --git a/Step/wwwroot/assets/styles/base/nc.less b/Step/wwwroot/assets/styles/base/nc.less index 27735eba..cbc1427e 100644 --- a/Step/wwwroot/assets/styles/base/nc.less +++ b/Step/wwwroot/assets/styles/base/nc.less @@ -17,7 +17,6 @@ height: 768px; width: 1024px; border: none; - background-image: url('../images/Osai_Placeholder.JPG') } #nc-softkeys-container{ diff --git a/Step/wwwroot/src/App.vue b/Step/wwwroot/src/App.vue index 1dbc93d3..67f0ef83 100644 --- a/Step/wwwroot/src/App.vue +++ b/Step/wwwroot/src/App.vue @@ -5,7 +5,7 @@
-
 
+
 
@@ -71,7 +71,14 @@ export default { this.$forceUpdate(); }); - + ms.subscribeToChannel("HMI-start-render", args => { + let NEWsrc = cmsClient.getScreenBase64(true); + if(this.HMIsrc != NEWsrc) + this.HMIsrc = NEWsrc; + else + Factory.Get(MessageService).publishToChannel("HMI-end-render"); + }); + let _this = this; Factory.Get(LoginService) .getUserInfo() @@ -117,6 +124,9 @@ export default { Factory.Get(MessageService).publishToChannel("HMI-hide"); } }, + HMIsrc: function() { + this.$nextTick(() => {Factory.Get(MessageService).publishToChannel("HMI-end-render")}); + }, loadingOperations: function(n, o) { if (o == 0 && n > 0) { iziToast.show({ @@ -177,7 +187,8 @@ export default { return { state: this.$store.state, applyBlur: false, - loadingOperations: 0 + loadingOperations: 0, + HMIsrc: "" }; } }; diff --git a/Step/wwwroot/src/app.business-logic.ts b/Step/wwwroot/src/app.business-logic.ts index 0eb277e2..ed0d8c13 100644 --- a/Step/wwwroot/src/app.business-logic.ts +++ b/Step/wwwroot/src/app.business-logic.ts @@ -149,10 +149,10 @@ if (typeof cmsClient != "undefined") { }); -/* Factory.Get(MessageService).subscribeToChannel("HMI-end-render", args => { + Factory.Get(MessageService).subscribeToChannel("HMI-end-render", args => { clearTimeout(RerenderInterval); RerenderInterval = setTimeout(ElaborateHMIStatus, 15); - }); */ + }); } @@ -185,23 +185,19 @@ function stopDrag(){ * */ function HideHmi() { HMIvisible = false; - ElaborateHMIStatus(); - //Factory.Get(MessageService).publishToChannel("HMI-start-render"); + Factory.Get(MessageService).publishToChannel("HMI-start-render"); } function showAlarms() { HMIAlarmsVisible = true; - ElaborateHMIStatus(); - //Factory.Get(MessageService).publishToChannel("HMI-start-render"); + Factory.Get(MessageService).publishToChannel("HMI-start-render"); } function showModal() { HMIModalsVisible = true; - ElaborateHMIStatus(); - //Factory.Get(MessageService).publishToChannel("HMI-start-render"); + Factory.Get(MessageService).publishToChannel("HMI-start-render"); } function startDrag() { HMIDragging = true; - ElaborateHMIStatus(); - //Factory.Get(MessageService).publishToChannel("HMI-start-render"); + Factory.Get(MessageService).publishToChannel("HMI-start-render"); } //Private function for elaborate status diff --git a/Step/wwwroot/src/services/hub.ts b/Step/wwwroot/src/services/hub.ts index 6066bda1..a8298110 100644 --- a/Step/wwwroot/src/services/hub.ts +++ b/Step/wwwroot/src/services/hub.ts @@ -25,7 +25,9 @@ export class Hub { // replace all alarms with the current ones - let tempList = alarms.NcAlarms.concat(alarms.PlcAlarms).concat(alarms.ProcessAlarms); + let tempList = alarms.NcAlarms + .concat(alarms.PlcAlarms) + .concat(alarms.ProcessAlarms); let _warnings = tempList.filter(v => v.isWarning); let _alarms = tempList.filter(v => !v.isWarning);