diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll index aa457c5e..d3a22791 100644 Binary files a/Libs/CMS_CORE_Library.dll and b/Libs/CMS_CORE_Library.dll differ diff --git a/Step.Model/DTOModels/DTONcGenericDataModel.cs b/Step.Model/DTOModels/DTONcGenericDataModel.cs index 9863b2ad..ab088a38 100644 --- a/Step.Model/DTOModels/DTONcGenericDataModel.cs +++ b/Step.Model/DTOModels/DTONcGenericDataModel.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using System.Reflection; namespace Step.Model.DTOModels @@ -17,7 +18,7 @@ namespace Step.Model.DTOModels public string PlcVersion { get; set; } public string UnitOfMeasurement { get; set; } public string ServerVersion { get; set; } - public string CoreLibraryVersion { get; set; } + public string CoreLibraryVersion { get; set; } private DateTime buildDate; private Version v; @@ -29,10 +30,12 @@ namespace Step.Model.DTOModels v = Assembly.GetEntryAssembly()?.GetName().Version; if(v != null) - buildDate = new DateTime(2000, 1, 1).AddDays(v.Build).AddSeconds(v.Revision * 2); + buildDate = new DateTime(2000, 1, 1).AddDays(v.Build).AddSeconds(v.Revision * 2); + // Get first 2 number of the version + var tmp = v.ToString().Split('.').Take(2).ToArray(); // Get Server version - ServerVersion = $"{v} ({buildDate.ToString("d")})"; + ServerVersion = $"{string.Join(".", tmp)} ({buildDate.ToString("d")})"; //Get Library Version CoreLibraryVersion = "2.0.0"; } diff --git a/Step.UI/ServerControlWindow.cs b/Step.UI/ServerControlWindow.cs index 967924f1..8f156ee5 100644 --- a/Step.UI/ServerControlWindow.cs +++ b/Step.UI/ServerControlWindow.cs @@ -7,6 +7,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.IO; +using System.Linq; using System.Reflection; using System.Runtime.InteropServices; using System.Threading; @@ -57,8 +58,9 @@ namespace Step.UI if (v != null) { DateTime buildDate = new DateTime(2000, 1, 1).AddDays(v.Build).AddSeconds(v.Revision * 2); + var tmp = v.ToString().Split('.').Take(2).ToArray(); this.Text = "Active Control Window"; - TXTVersion.Text = "V" + v + " (" + buildDate.ToString("d") + ")"; + TXTVersion.Text = "V" + String.Join(".", tmp) + " (" + buildDate.ToString("d") + ")"; } PswForm = new PasswordForm(); diff --git a/Step/Controllers/WebApi/ScadaController.cs b/Step/Controllers/WebApi/ScadaController.cs index 6c2c28e3..8c7bb4b6 100644 --- a/Step/Controllers/WebApi/ScadaController.cs +++ b/Step/Controllers/WebApi/ScadaController.cs @@ -29,24 +29,25 @@ namespace Step.Controllers.WebApi [Route("subscribe/{scadaId:int}"), HttpGet] public IHttpActionResult SubscribeScada(int scadaId) { - // Select schema + // Find schema ScadaSchemaModel selectedScadaSchema = ConfiguredScadaSchema .Where(x => x.Id == scadaId) .FirstOrDefault(); if (selectedScadaSchema == null) return BadRequest(); - // Add to the subscriber list - SubscribedScada.Add(selectedScadaSchema); - using (NcHandler ncHandler = new NcHandler()) + using (NcHandler ncHandler = new NcHandler()) { ncHandler.Connect(); // Read the selected scada data CmsError cmsError = ncHandler.ReadScadaData(selectedScadaSchema, out DTOScadaModel values); if (cmsError.IsError()) return BadRequest(cmsError.localizationKey); - + + // Add to the subscriber list + SubscribedScada.Add(selectedScadaSchema); + return Ok(values); } } diff --git a/Step/SetupActive.iss b/Step/SetupActive.iss index 946e30b3..9386e389 100644 --- a/Step/SetupActive.iss +++ b/Step/SetupActive.iss @@ -62,7 +62,6 @@ Name: custom; Description: CMS installation; Flags: iscustom ; Set NC types, this types are used to configure server config file [Components] -Name: Demo; Description: {#AppName} {cm:ForDemoNC}; Types: custom; Flags: exclusive Name: Fanuc; Description: {#AppName} {cm:ForFanucNC}; Types: custom; Flags: exclusive Name: Osai; Description: {#AppName} {cm:ForOsaiNC}; Types: custom; Flags: exclusive Name: Siemens; Description: {#AppName} {cm:ForSiemensNC}; Types: custom; Flags: exclusive @@ -98,38 +97,38 @@ italian.InstallingDotNet = Installando .Net english.InstallingDotNet = Installing .Net [Tasks] -Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone; Components: Demo Fanuc Osai Siemens -Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Demo Fanuc Osai Siemens -Name: startupicon; Description: {cm:CreateStartupIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Demo Fanuc Osai +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone; Components: Fanuc Osai Siemens +Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Fanuc Osai Siemens +Name: startupicon; Description: {cm:CreateStartupIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Fanuc Osai Name: sinumerikicons; Description: {cm:CreateSinumerikIcons}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Siemens [Files] Source: "{#MySourcePath}\Active.exe"; DestDir: "{app}"; Flags: ignoreversion ; Path to exe resources (dll, xml, config) -Source: "{#MySourcePath}\*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens -Source: "{#MySourcePath}\*.xml"; DestDir: "{app}"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens -Source: "{#MySourcePath}\*.config"; DestDir: "{app}"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens +Source: "{#MySourcePath}\*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: Fanuc Osai Siemens +Source: "{#MySourcePath}\*.xml"; DestDir: "{app}"; Flags: ignoreversion; Components: Fanuc Osai Siemens +Source: "{#MySourcePath}\*.config"; DestDir: "{app}"; Flags: ignoreversion; Components: Fanuc Osai Siemens ; Configuration files -Source: "{#MySourcePath}\Config\*.xml"; DestDir: "{app}\Config\"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens; Check: GetOverwriteConfig; +Source: "{#MySourcePath}\Config\*.xml"; DestDir: "{app}\Config\"; Flags: ignoreversion; Components: Fanuc Osai Siemens; Check: GetOverwriteConfig; ; Osai Library Source: "{#MySourcePath}\CndexLinkDotNet.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: Osai ; Languages Source: "{#MySourcePath}\Language\*.*"; DestDir: "{app}\Language\"; Flags: ignoreversion; Components: Osai -Source: "{#MySourcePath}\languages\*.*"; DestDir: "{app}\languages\"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens +Source: "{#MySourcePath}\languages\*.*"; DestDir: "{app}\languages\"; Flags: ignoreversion; Components: Fanuc Osai Siemens ; Client copy -Source: "{#MySourcePath}\Client\x64\*.*"; DestDir: "{app}\Client\"; Flags: recursesubdirs ignoreversion; Components: Demo Fanuc Osai Siemens; AfterInstall: DeleteLocalStorage +Source: "{#MySourcePath}\Client\x64\*.*"; DestDir: "{app}\Client\"; Flags: recursesubdirs ignoreversion; Components: Fanuc Osai Siemens; AfterInstall: DeleteLocalStorage ; WWWRoot Files -Source: "{#WwwRootPath}\favicon.ico"; DestDir: "{app}\view\"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens -Source: "{#WwwRootPath}\index.html"; DestDir: "{app}\view\"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens +Source: "{#WwwRootPath}\favicon.ico"; DestDir: "{app}\view\"; Flags: ignoreversion; Components: Fanuc Osai Siemens +Source: "{#WwwRootPath}\index.html"; DestDir: "{app}\view\"; Flags: ignoreversion; Components: Fanuc Osai Siemens ; WWWRoot Directories -Source: "{#WwwRootPath}\dist\*"; DestDir: "{app}\view\dist\"; Flags: recursesubdirs ignoreversion; Components: Demo Fanuc Osai Siemens -Source: "{#WwwRootPath}\libs\*"; DestDir: "{app}\view\libs\"; Flags: recursesubdirs ignoreversion; Components: Demo Fanuc Osai Siemens -Source: "{#WwwRootPath}\assets\*"; DestDir: "{app}\view\assets\"; Flags: recursesubdirs ignoreversion; Components: Demo Fanuc Osai Siemens -Source: "{#WwwRootPath}\scripts\*"; DestDir: "{app}\view\scripts\"; Flags: recursesubdirs ignoreversion; Components: Demo Fanuc Osai Siemens +Source: "{#WwwRootPath}\dist\*"; DestDir: "{app}\view\dist\"; Flags: recursesubdirs ignoreversion; Components: Fanuc Osai Siemens +Source: "{#WwwRootPath}\libs\*"; DestDir: "{app}\view\libs\"; Flags: recursesubdirs ignoreversion; Components: Fanuc Osai Siemens +Source: "{#WwwRootPath}\assets\*"; DestDir: "{app}\view\assets\"; Flags: recursesubdirs ignoreversion; Components: Fanuc Osai Siemens +Source: "{#WwwRootPath}\scripts\*"; DestDir: "{app}\view\scripts\"; Flags: recursesubdirs ignoreversion; Components: Fanuc Osai Siemens ; SCM Icon -Source: {#IconsPath}{#SCMIcoName}; DestDir: "{app}"; Flags: ignoreversion; Components: Demo Fanuc Osai Siemens; Check: GetStyleOption; +Source: {#IconsPath}{#SCMIcoName}; DestDir: "{app}"; Flags: ignoreversion; Components: Fanuc Osai Siemens; Check: GetStyleOption; ;.Net Installer Source: {#DotNetInstallerPath}\{#DotNetInstallerName}; DestDir: {tmp}; Flags: deleteafterinstall; @@ -145,10 +144,10 @@ Source: "{#InvDialPath}\*"; DestDir: "{app}\..\Utility\Cms_Inverter_Diagnosis\"; [Icons] ; Default icons -Name: {group}\{#AppName}; Filename: {app}\{#MyAppExeName}; Comment: {#AppName}; Components: Demo Fanuc Osai; Check: NOT GetStyleOption; -Name: {userdesktop}\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon; Comment: {#AppName}; Components: Demo Fanuc Osai; Check: NOT GetStyleOption; -Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: quicklaunchicon; Comment: {#AppName}; Components: Demo Fanuc Osai; Check: NOT GetStyleOption; -Name: {userstartup}\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: startupicon; Comment: {#AppName}; Components: Demo Fanuc Osai; Check: NOT GetStyleOption; +Name: {group}\{#AppName}; Filename: {app}\{#MyAppExeName}; Comment: {#AppName}; Components: Fanuc Osai; Check: NOT GetStyleOption; +Name: {userdesktop}\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon; Comment: {#AppName}; Components: Fanuc Osai; Check: NOT GetStyleOption; +Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: quicklaunchicon; Comment: {#AppName}; Components: Fanuc Osai; Check: NOT GetStyleOption; +Name: {userstartup}\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: startupicon; Comment: {#AppName}; Components: Fanuc Osai; Check: NOT GetStyleOption; ; Siemens startup icon with parameters "-start ..." Name: {group}\{#AppName}; Filename: {code:SiemensPath}{#SinumerikAppExeName}; Parameters: -start {app}\{#MyAppExeName}; IconFilename: "{app}\{#MyAppExeName}"; Comment: {#AppName}; Components: Siemens; Check: NOT GetStyleOption; @@ -157,10 +156,10 @@ Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AppName}; Filenam ; SCM ICONS ; Default icons -Name: {group}\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Comment: {#SCMAppName}; Components: Demo Fanuc Osai; Check: GetStyleOption; -Name: {userdesktop}\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Tasks: desktopicon; Comment: {#SCMAppName}; Components: Demo Fanuc Osai; Check: GetStyleOption; -Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Tasks: quicklaunchicon; Comment: {#SCMAppName}; Components: Demo Fanuc Osai; Check: GetStyleOption; -Name: {userstartup}\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Tasks: startupicon; Comment: {#SCMAppName}; Components: Demo Fanuc Osai; Check: GetStyleOption; +Name: {group}\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Comment: {#SCMAppName}; Components: Fanuc Osai; Check: GetStyleOption; +Name: {userdesktop}\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Tasks: desktopicon; Comment: {#SCMAppName}; Components: Fanuc Osai; Check: GetStyleOption; +Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Tasks: quicklaunchicon; Comment: {#SCMAppName}; Components: Fanuc Osai; Check: GetStyleOption; +Name: {userstartup}\{#SCMAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Tasks: startupicon; Comment: {#SCMAppName}; Components: Fanuc Osai; Check: GetStyleOption; ; SCM Siemens startup icon with parameters "-start ..." Name: {group}\{#SCMAppName}; Filename: {#IconsPath}{#SinumerikAppExeName}; Parameters: -start {app}\{#MyAppExeName}; IconFilename: {app}\{#SCMIcoName}; Comment: {#SCMAppName}; Components: Siemens; Check: GetStyleOption; diff --git a/Step/wwwroot/src/app_modules/scada/components/scada.ts b/Step/wwwroot/src/app_modules/scada/components/scada.ts index 903fd2de..8d177c2f 100644 --- a/Step/wwwroot/src/app_modules/scada/components/scada.ts +++ b/Step/wwwroot/src/app_modules/scada/components/scada.ts @@ -37,8 +37,8 @@ export default class Scada extends Vue { return; } - if (n >= 0) try { await awaiter(scadaService.Subscribe(n)); } catch (err) { }; - if (o >= 0) try { await awaiter(scadaService.Unsubscribe(o)); } catch (err) { }; + if (n >= 0) try { await awaiter(scadaService.Subscribe(n)); } catch (err) { this.currentScadaId = null }; + if (o && o >= 0) try { await awaiter(scadaService.Unsubscribe(o)); } catch (err) { }; } async beforeDestroy(){