Compare commits
104 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b2932d927c | |||
| 68add4e08d | |||
| 5585c11ef5 | |||
| b9caa4ac74 | |||
| cde514eed8 | |||
| fad45a5635 | |||
| 9bf2265082 | |||
| e488619ae5 | |||
| babd8b25da | |||
| 5894cd63ce | |||
| 5a19d44b34 | |||
| 577cbe5c9d | |||
| e881006857 | |||
| 83fb0acfd0 | |||
| 04b3588e7f | |||
| c00e695c15 | |||
| c228c454f6 | |||
| e86495eab5 | |||
| 63e636cd36 | |||
| 1458a4cf5d | |||
| 6cf7331081 | |||
| 43402a785f | |||
| 88561778ce | |||
| 0d395fca33 | |||
| 09fea8f0e3 | |||
| 42531aac49 | |||
| bbfc3ca64d | |||
| 50e76bd30c | |||
| 6f6559ce67 | |||
| 5c2f69b8d2 | |||
| 0f7ce076f9 | |||
| 127b4ba1de | |||
| 9e2ee7d5b6 | |||
| 2a0b3f7e72 | |||
| 36dc4171e5 | |||
| 29057c5431 | |||
| a1336f9918 | |||
| 7ded45280f | |||
| ef139a2365 | |||
| fe6498f6ed | |||
| 22ad46ab8c | |||
| e098409b83 | |||
| 083be20f02 | |||
| f7ff6629ce | |||
| 2a4c0e8335 | |||
| bd1488bc02 | |||
| bab9bf504a | |||
| c7f7c4f9c8 | |||
| 36e0927bd1 | |||
| 7b132793d0 | |||
| d01fcf7578 | |||
| 539ed2508d | |||
| cacae4eebf | |||
| 34e31666cd | |||
| 3b0dd98018 | |||
| 76fdf01d38 | |||
| 7918787ac6 | |||
| e797afabcb | |||
| c31edb94d5 | |||
| 86fd710aaa | |||
| f1f8f3aa97 | |||
| 83d6f40491 | |||
| 21cb4050b0 | |||
| 027eed8770 | |||
| 43de959bca | |||
| 5a56d53d90 | |||
| 89b0ce5f96 | |||
| e57d16d690 | |||
| fe25ae54e6 | |||
| 614acd2e40 | |||
| d70474c01f | |||
| 045dd808e5 | |||
| 92cb66d539 | |||
| 941535056d | |||
| f6d794d90c | |||
| 1f769677d1 | |||
| 9de1286290 | |||
| 59bacaa1a6 | |||
| abc8564f2f | |||
| 8bfd294525 | |||
| 47119e7828 | |||
| a8dbf3d15d | |||
| 7bbe807359 | |||
| 5884f229b1 | |||
| 8842111125 | |||
| 7110d05782 | |||
| fa41a5f577 | |||
| e09ca359dd | |||
| e01731685e | |||
| 9a9fa64200 | |||
| 83492b3a00 | |||
| 954224c80f | |||
| 64fbb2e106 | |||
| 95559497af | |||
| 71667b87a9 | |||
| 6919827661 | |||
| 76044293af | |||
| bc817fcbf6 | |||
| 45e62c635f | |||
| 0440202342 | |||
| 9a0705130a | |||
| bdf80680c2 | |||
| 729fa17209 | |||
| bf6e16a4d6 |
@@ -253,7 +253,7 @@ if($outFile -eq "True")
|
||||
if ($excludeNugetUpdate -ne 1) {
|
||||
Write-Host "Update the Nuget Packages"
|
||||
CheckNugetScm
|
||||
ExecuteLog "nuget restore"
|
||||
ExecuteLog "nuget restore Thermo.Active.sln "
|
||||
}
|
||||
|
||||
if ($version -ne "") {
|
||||
@@ -332,12 +332,14 @@ if ($zipOutput -eq 1) {
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\fonts"" -Destination ""view\Assets"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\images"" -Destination ""view\Assets"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\icons"" -Destination ""view\Assets"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\svg"" -Destination ""view\Assets"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\animations"" -Destination ""view\Assets"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\styles\style.css"" -Destination ""view\Assets\styles"" "
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\styles\style.css.map"" -Destination ""view\Assets\styles"" "
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\styles\iziToast.min.css"" -Destination ""view\Assets\styles"" "
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\styles\vue2-datepicker.css"" -Destination ""view\Assets\styles"" "
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\index.html"" -Destination ""view"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\favicon.ico"" -Destination ""view"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\config.development.json"" -Destination ""view"" -Recurse"
|
||||
|
||||
Write-Host "Copy view in Zip file"
|
||||
$outFile = Test-Path ".\View"
|
||||
|
||||
@@ -26,6 +26,7 @@ namespace Client2020.BrowserTools
|
||||
private static Dictionary<string, IntPtr> _editorOpened = new Dictionary<string, IntPtr>();
|
||||
public static string RECENT_FOLDER_KEY = "RECENT";
|
||||
private const string THERMO_RECIPE_PATH = @"C:\CMS\Recipes";
|
||||
private const string THERMO_RECIPE_FOLDER_NAME = @"Recipes";
|
||||
private const string THERMO_SCREENSHOT_PATH = @"C:\CMS\Screenshots";
|
||||
private const string CMS_PATH = @"C:\CMS";
|
||||
|
||||
@@ -313,6 +314,32 @@ namespace Client2020.BrowserTools
|
||||
return JsonConvert.SerializeObject("");
|
||||
}
|
||||
|
||||
public string backupSubRecipes(String p, String folder)
|
||||
{
|
||||
if (!Directory.Exists(p))
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("path_not_exists")));
|
||||
}
|
||||
|
||||
folder = folder.Remove(0,THERMO_RECIPE_FOLDER_NAME.Length);
|
||||
|
||||
try
|
||||
{
|
||||
string finalPath = p + "Backup_Recipes_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss");
|
||||
Directory.CreateDirectory(finalPath);
|
||||
this.CopyFilesRecursively(new DirectoryInfo(THERMO_RECIPE_PATH + folder), new DirectoryInfo(finalPath));
|
||||
File.WriteAllText(finalPath + "\\data.json", JsonConvert.SerializeObject(new FolderBackup(folder)));
|
||||
Process.Start(finalPath);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("error_during_backup")));
|
||||
}
|
||||
|
||||
return JsonConvert.SerializeObject("");
|
||||
}
|
||||
|
||||
|
||||
// Read all files in directory
|
||||
public string getFileList(string p)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Client2020.BrowserTools.Models
|
||||
{
|
||||
public class FolderBackup
|
||||
{
|
||||
public String AbsolutePath;
|
||||
public FolderBackup(String Str)
|
||||
{
|
||||
this.AbsolutePath = Str;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -76,6 +76,7 @@
|
||||
<Compile Include="BrowserTools\Models\Drive.cs" />
|
||||
<Compile Include="BrowserTools\Models\Errors\ErrorContainer.cs" />
|
||||
<Compile Include="BrowserTools\Models\File.cs" />
|
||||
<Compile Include="BrowserTools\Models\FolderBackup.cs" />
|
||||
<Compile Include="BrowserTools\Models\InfoFile.cs" />
|
||||
<Compile Include="BrowserTools\Models\JobToStep.cs" />
|
||||
<Compile Include="BrowserTools\Models\MetadataToFile.cs" />
|
||||
@@ -179,7 +180,7 @@
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
<ErrorText>Questo progetto fa riferimento a uno o più pacchetti NuGet che non sono presenti in questo computer. Usare lo strumento di ripristino dei pacchetti NuGet per scaricarli. Per altre informazioni, vedere http://go.microsoft.com/fwlink/?LinkID=322105. Il file mancante è {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\cef.redist.x64.84.4.1\build\cef.redist.x64.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\cef.redist.x64.84.4.1\build\cef.redist.x64.props'))" />
|
||||
<Error Condition="!Exists('..\packages\cef.redist.x86.84.4.1\build\cef.redist.x86.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\cef.redist.x86.84.4.1\build\cef.redist.x86.props'))" />
|
||||
|
||||
@@ -51,6 +51,14 @@
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Flir.Atlas.Image, Version=2.0.14266.1000, Culture=neutral, PublicKeyToken=caa391fd8e07c76b, processorArchitecture=x86">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\Program Files (x86)\FLIR Systems\FLIR Atlas SDK 6\bin\x86\Flir.Atlas.Image.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Flir.Atlas.Live, Version=2.0.14266.1000, Culture=neutral, PublicKeyToken=caa391fd8e07c76b, processorArchitecture=x86">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\Program Files (x86)\FLIR Systems\FLIR Atlas SDK 6\bin\x86\Flir.Atlas.Live.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using Flir.Atlas.Live.Device;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
@@ -26,6 +27,11 @@ namespace Thermo.Active.Thermocamera
|
||||
|
||||
public static readonly string BASE_PATH = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
|
||||
|
||||
/// <summary>
|
||||
/// Indica se la camera sia connessa
|
||||
/// </summary>
|
||||
public bool CameraIsConnected = false;
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
#region Public Constructors
|
||||
@@ -33,12 +39,15 @@ namespace Thermo.Active.Thermocamera
|
||||
/// <summary>
|
||||
/// Init classe
|
||||
/// </summary>
|
||||
/// <param name="isLive">Indica aabilitazione alive straming vs load dati storici</param>
|
||||
/// <param name="isLive">Indica aabilitazione a live straming vs load dati storici</param>
|
||||
public ThermoCamComunicator(bool isLive)
|
||||
{
|
||||
// init classe controllo camera
|
||||
TCamLive = new TCContr($"{Constants.WEBSITE_DIRECTORY}\\{Constants.THERMO_DATA_FOLDER}", $"{BASE_PATH}\\{Constants.CONFIG_DIRECTORY}");
|
||||
|
||||
// aggancio evento connesisone/disconnessione
|
||||
TCamLive.eh_CameraConnStatusChanged += TCamLive_eh_CameraConnStatusChanged;
|
||||
|
||||
// avvio classe gestione thermocamera...
|
||||
TCamLive.tryReloadConf();
|
||||
|
||||
@@ -49,6 +58,12 @@ namespace Thermo.Active.Thermocamera
|
||||
}
|
||||
}
|
||||
|
||||
private void TCamLive_eh_CameraConnStatusChanged(object sender, Flir.Atlas.Live.ConnectionStatusChangedEventArgs e)
|
||||
{
|
||||
// salvo stato connessione
|
||||
CameraIsConnected = e.Status == ConnectionStatus.Connected;
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
@@ -308,6 +308,7 @@
|
||||
"options_thermoregulator_9_setpoint": 0.0,
|
||||
"options_thermoregulator_10_enabled": 0.0,
|
||||
"options_thermoregulator_10_setpoint": 0.0
|
||||
"extraction_main_drawing_enabled": 0.0
|
||||
},
|
||||
"ChannelSetpoints": {
|
||||
"1": 0,
|
||||
|
||||
@@ -1,37 +1,55 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
enabledWord:
|
||||
bit 0 : Move Absolute [Ack]
|
||||
bit 1 : Jog inc + [Ack]
|
||||
bit 2 : Jog inc - [Ack]
|
||||
bit 3 : Allinea [Ack]
|
||||
bit 4 : Probe (Ack)
|
||||
bit 5 : SetSlavePosition (Ack)
|
||||
bit 6 : Azzera (Ack)
|
||||
bit 7 - bit14: not used
|
||||
bit15 : Target pos
|
||||
|
||||
Asse slave : 6
|
||||
Asse master gantry con proxy: 56
|
||||
Asse master gantry senza proxy: 2152
|
||||
Asse singolo con proxy: 16
|
||||
Asse singolo senza proxy: 2112
|
||||
-->
|
||||
<axes>
|
||||
<axis id="1" name="KI_Asse_W1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="2" name="KI_Asse_W2" type="LINEAR" enabled="true" master="1" enabledWord="6" />
|
||||
<axis id="3" name="KI_Asse_W3" type="LINEAR" enabled="false" master="1" enabledWord="6" />
|
||||
<axis id="4" name="KI_Asse_W4" type="LINEAR" enabled="false" master="1" enabledWord="6" />
|
||||
<axis id="5" name="KI_Asse_Z1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="6" name="KI_Asse_Z2" type="LINEAR" enabled="true" master="5" enabledWord="6" />
|
||||
<axis id="7" name="KI_Asse_Z3" type="LINEAR" enabled="true" master="5" enabledWord="6" />
|
||||
<axis id="8" name="KI_Asse_Z4" type="LINEAR" enabled="true" master="5" enabledWord="6" />
|
||||
<axis id="9" name="KI_Asse_R1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="10" name="KI_Asse_R2" type="LINEAR" enabled="false" master="9" enabledWord="6" />
|
||||
<axis id="11" name="KI_Asse_S1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="12" name="KI_Asse_S2" type="LINEAR" enabled="false" master="11" enabledWord="6" />
|
||||
<axis id="13" name="KI_Asse_CZ1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="14" name="KI_Asse_CZ2" type="LINEAR" enabled="true" master="13" enabledWord="6" />
|
||||
<axis id="15" name="KI_Asse_CZ3" type="LINEAR" enabled="true" master="13" enabledWord="6" />
|
||||
<axis id="16" name="KI_Asse_CZ4" type="LINEAR" enabled="true" master="13" enabledWord="6" />
|
||||
<axis id="17" name="KI_Asse_U1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="18" name="KI_Asse_U2" type="LINEAR" enabled="true" master="17" enabledWord="6" />
|
||||
<axis id="19" name="KI_Asse_P" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="20" name="KI_Asse_X" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="21" name="KI_Asse_CX1" type="LINEAR" enabled="true" master="0" enabledWord="72" />
|
||||
<axis id="22" name="KI_Asse_CX2" type="LINEAR" enabled="true" master="21" enabledWord="6" />
|
||||
<axis id="23" name="KI_Asse_CY1" type="LINEAR" enabled="true" master="0" enabledWord="72" />
|
||||
<axis id="24" name="KI_Asse_CY2" type="LINEAR" enabled="true" master="24" enabledWord="6" />
|
||||
<axis id="25" name="KI_Asse_F11" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="26" name="KI_Asse_F12" type="LINEAR" enabled="false" master="25" enabledWord="16" />
|
||||
<axis id="27" name="KI_Asse_F21" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="28" name="KI_Asse_F22" type="LINEAR" enabled="false" master="27" enabledWord="16" />
|
||||
<axis id="29" name="KI_Asse_F31" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="30" name="KI_Asse_F32" type="LINEAR" enabled="false" master="29" enabledWord="16" />
|
||||
<axis id="31" name="KI_Asse_F41" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="32" name="KI_Asse_F42" type="LINEAR" enabled="false" master="31" enabledWord="16" />
|
||||
<axis id="33" name="KI_Asse_E" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="34" name="KI_Asse_M" type="LINEAR" enabled="false" master="0" enabledWord="0" />
|
||||
<axis id="1" name="W1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="2" name="W2" type="LINEAR" enabled="true" master="1" enabledWord="6" />
|
||||
<axis id="3" name="W3" type="LINEAR" enabled="false" master="1" enabledWord="6" />
|
||||
<axis id="4" name="W4" type="LINEAR" enabled="false" master="1" enabledWord="6" />
|
||||
<axis id="5" name="Z1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="6" name="Z2" type="LINEAR" enabled="true" master="5" enabledWord="6" />
|
||||
<axis id="7" name="Z3" type="LINEAR" enabled="true" master="5" enabledWord="6" />
|
||||
<axis id="8" name="Z4" type="LINEAR" enabled="true" master="5" enabledWord="6" />
|
||||
<axis id="9" name="R1" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="10" name="R2" type="LINEAR" enabled="false" master="9" enabledWord="6" />
|
||||
<axis id="11" name="S1" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="12" name="S2" type="LINEAR" enabled="false" master="11" enabledWord="6" />
|
||||
<axis id="13" name="CZ1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="14" name="CZ2" type="LINEAR" enabled="true" master="13" enabledWord="6" />
|
||||
<axis id="15" name="CZ3" type="LINEAR" enabled="true" master="13" enabledWord="6" />
|
||||
<axis id="16" name="CZ4" type="LINEAR" enabled="true" master="13" enabledWord="6" />
|
||||
<axis id="17" name="U1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="18" name="U2" type="LINEAR" enabled="true" master="17" enabledWord="6" />
|
||||
<axis id="19" name="P" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="20" name="X" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="21" name="CX1" type="LINEAR" enabled="true" master="0" enabledWord="2152" />
|
||||
<axis id="22" name="CX2" type="LINEAR" enabled="true" master="21" enabledWord="6" />
|
||||
<axis id="23" name="CY1" type="LINEAR" enabled="true" master="0" enabledWord="2152" />
|
||||
<axis id="24" name="CY2" type="LINEAR" enabled="true" master="23" enabledWord="6" />
|
||||
<axis id="25" name="F11" type="LINEAR" enabled="true" master="0" enabledWord="2112" />
|
||||
<axis id="26" name="F12" type="LINEAR" enabled="false" master="25" enabledWord="6" />
|
||||
<axis id="27" name="F21" type="LINEAR" enabled="true" master="0" enabledWord="2112" />
|
||||
<axis id="28" name="F22" type="LINEAR" enabled="false" master="27" enabledWord="6" />
|
||||
<axis id="29" name="F31" type="LINEAR" enabled="true" master="0" enabledWord="2112" />
|
||||
<axis id="30" name="F32" type="LINEAR" enabled="false" master="29" enabledWord="6" />
|
||||
<axis id="31" name="F41" type="LINEAR" enabled="true" master="0" enabledWord="2112" />
|
||||
<axis id="32" name="F42" type="LINEAR" enabled="false" master="31" enabledWord="6" />
|
||||
<axis id="33" name="E" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="34" name="M" type="LINEAR" enabled="false" master="0" enabledWord="0" />
|
||||
</axes>
|
||||
@@ -3902,4 +3902,15 @@
|
||||
<scaleFactor>1</scaleFactor>
|
||||
<numDec>1</numDec>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<id>307</id>
|
||||
<category>Extraction</category>
|
||||
<subCategory_1>Main</subCategory_1>
|
||||
<subCategory_2></subCategory_2>
|
||||
<name>Drawing_Enabled</name>
|
||||
<description>Abilitazione valvola imbutitura</description>
|
||||
<format>boolean</format>
|
||||
<scaleFactor>1</scaleFactor>
|
||||
<numDec>1</numDec>
|
||||
</parameter>
|
||||
</recipe>
|
||||
@@ -4,6 +4,7 @@
|
||||
<ncVendor>S7NET</ncVendor>
|
||||
<!-- NO_NC/DEMO/FANUC/SIEMENS/OSAI/S7NET -->
|
||||
<showNcHMI>false</showNcHMI>
|
||||
<!--<ncIpAddress>192.168.139.1</ncIpAddress>-->
|
||||
<ncIpAddress>192.168.0.102</ncIpAddress>
|
||||
<ncPort>102</ncPort>
|
||||
<machineModel>Thermo 2020</machineModel>
|
||||
@@ -31,6 +32,8 @@
|
||||
<CMSConnectReady>true</CMSConnectReady>
|
||||
<maxAlarmsRows>50000</maxAlarmsRows>
|
||||
<alarmToDelete>5000</alarmToDelete>
|
||||
<maxSheetHistoryRows>10000</maxSheetHistoryRows>
|
||||
<sheetHistoryToDelete>500</sheetHistoryToDelete>
|
||||
</serverConfig>
|
||||
<extSoftwares>
|
||||
<software>
|
||||
@@ -113,6 +116,10 @@
|
||||
<key>RangeTempMax</key>
|
||||
<value>100</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>EnableThermocam</key>
|
||||
<value>true</value>
|
||||
</entry>
|
||||
</additionalParameters>
|
||||
<unitOfMeasures>
|
||||
<unitOfMeasure id="0" value="" />
|
||||
@@ -129,24 +136,25 @@
|
||||
<thread name="axis" value="200" />
|
||||
<thread name="channelsIoFast" value="300" />
|
||||
<thread name="channelsIoSlow" value="5000" />
|
||||
<thread name="area" value="500" />
|
||||
<thread name="area" value="2500" />
|
||||
<thread name="confReq" value="2000" />
|
||||
<thread name="expMan" value="30000" />
|
||||
<thread name="functionEnab" value="300" />
|
||||
<thread name="gauges" value="500" />
|
||||
<thread name="m154" value="500" />
|
||||
<thread name="m154" value="1000" />
|
||||
<thread name="mCommands" value="250" />
|
||||
<thread name="powerOn" value="500" />
|
||||
<thread name="prodCycle" value="1000" />
|
||||
<thread name="prodInfo" value="1000" />
|
||||
<thread name="prodPanel" value="500" />
|
||||
<thread name="modules" value="200" />
|
||||
<thread name="recipe" value="4000" />
|
||||
<thread name="recipe" value="1000" />
|
||||
<thread name="scada" value="1000" />
|
||||
<thread name="statusCommand" value="250" />
|
||||
<thread name="FlirCamera" value="500" />
|
||||
<thread name="userSK" value="250" />
|
||||
<thread name="warmers" value="500" />
|
||||
<thread name="warmers" value="2000" />
|
||||
<thread name="watchdog" value="250" />
|
||||
<thread name="stats" value="2000" />
|
||||
</sampling>
|
||||
</serverConfig>
|
||||
@@ -42,6 +42,8 @@
|
||||
<xs:element name="MTCApplicationName" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="maxAlarmsRows" type="xs:int" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="alarmToDelete" type="xs:int" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="maxSheetHistoryRows" type="xs:int" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="sheetHistoryToDelete" type="xs:int" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="CMSConnectReady" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
|
||||
@@ -129,7 +129,8 @@ namespace Thermo.Active.Config
|
||||
Name = x.Attribute("name").Value,
|
||||
MasterId = Convert.ToInt16(x.Attribute("master").Value),
|
||||
EnabledWord = Convert.ToInt16(x.Attribute("enabledWord").Value),
|
||||
Type = GetTActAxes_Type(x.Attribute("type").Value)
|
||||
Type = GetTActAxes_Type(x.Attribute("type").Value),
|
||||
IsVisible = Convert.ToBoolean(x.Attribute("enabled").Value)
|
||||
})
|
||||
.ToList();
|
||||
}
|
||||
@@ -1032,6 +1033,8 @@ namespace Thermo.Active.Config
|
||||
MTCApplicationName = x.Element("MTCApplicationName").Value,
|
||||
MaxAlarmsRows = Convert.ToInt32(x.Element("maxAlarmsRows").Value),
|
||||
AlarmToDelete = Convert.ToInt32(x.Element("alarmToDelete").Value),
|
||||
MaxSheetHistoryRows = Convert.ToInt32(x.Element("maxSheetHistoryRows").Value),
|
||||
SheetHistoryToDelete = Convert.ToInt32(x.Element("sheetHistoryToDelete").Value),
|
||||
CmsConnectReady = Convert.ToBoolean(x.Element("CMSConnectReady").Value)
|
||||
}).FirstOrDefault();
|
||||
|
||||
|
||||
@@ -49,6 +49,7 @@ public static class ThreadsFunctions
|
||||
public static int modulesRtCounter = 0;
|
||||
public static int recipeRtCounter = 0;
|
||||
public static bool reconnectionIsRunning = false;
|
||||
public static bool forcetakeSnapshot = false;
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
@@ -193,34 +194,45 @@ public static class ThreadsFunctions
|
||||
StatReset();
|
||||
NcAdapter ncAdapter = new NcAdapter();
|
||||
CmsError libraryError = NO_ERROR;
|
||||
// Run loop until NC is connected
|
||||
while (!ncAdapter.numericalControl.NC_IsConnected())
|
||||
try
|
||||
{
|
||||
// Try reconnection
|
||||
libraryError = ncAdapter.Connect();
|
||||
if (libraryError.errorCode == CMS_ERROR_CODES.SIEMENS_ENVIRONMENT_NOT_FOUND || libraryError.errorCode == CMS_ERROR_CODES.SIEMENS_HMI_NOT_RUNNING || libraryError.errorCode == CMS_ERROR_CODES.OSAI_TT_FOLDER_NOT_FOUND)
|
||||
ManageLibraryError(libraryError);
|
||||
else if (libraryError.errorCode != CMS_ERROR_CODES.OK)
|
||||
// Run loop until NC is connected
|
||||
while (!ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
// Try reconnection
|
||||
libraryError = ncAdapter.Connect();
|
||||
if (libraryError.errorCode == CMS_ERROR_CODES.SIEMENS_ENVIRONMENT_NOT_FOUND || libraryError.errorCode == CMS_ERROR_CODES.SIEMENS_HMI_NOT_RUNNING || libraryError.errorCode == CMS_ERROR_CODES.OSAI_TT_FOLDER_NOT_FOUND)
|
||||
ManageLibraryError(libraryError);
|
||||
else if (libraryError.errorCode != CMS_ERROR_CODES.OK)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
|
||||
// Send status to UI
|
||||
MessageServices.Current.Publish(SEND_NC_STATUS_UI, null, ncAdapter.numericalControl.NC_IsConnected());
|
||||
// Send status to signalr
|
||||
MessageServices.Current.Publish(SEND_NC_STATUS, null, ncAdapter.numericalControl.NC_IsConnected());
|
||||
|
||||
Thread.Sleep(1000);
|
||||
}
|
||||
|
||||
// Send status to UI
|
||||
MessageServices.Current.Publish(SEND_NC_STATUS_UI, null, ncAdapter.numericalControl.NC_IsConnected());
|
||||
// Send status to signalr
|
||||
MessageServices.Current.Publish(SEND_NC_STATUS, null, ncAdapter.numericalControl.NC_IsConnected());
|
||||
if (!libraryError.IsError())
|
||||
{
|
||||
if (ServerStartupConfig.AutoOpenCmsClient)
|
||||
StartCMSClient();
|
||||
|
||||
Thread.Sleep(1000);
|
||||
// Start/Restart NC threads
|
||||
ThreadsHandler.StartWorkers();
|
||||
reconnectionIsRunning = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!libraryError.IsError())
|
||||
catch (ThreadAbortException ex)
|
||||
{
|
||||
if (ServerStartupConfig.AutoOpenCmsClient)
|
||||
StartCMSClient();
|
||||
|
||||
// Start/Restart NC threads
|
||||
ThreadsHandler.StartWorkers();
|
||||
reconnectionIsRunning = false;
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -230,21 +242,35 @@ public static class ThreadsFunctions
|
||||
|
||||
internal static void StatThread()
|
||||
{
|
||||
int samplePeriod = samplMsec("stats") > 0 ? samplMsec("stats") : 1000;
|
||||
|
||||
while (true)
|
||||
{
|
||||
long totTime = 0;
|
||||
foreach (var value in Counter)
|
||||
{
|
||||
if (ThreadsHandler.RunningThreadStatus.ContainsKey(value.Key) && Counter[value.Key] != 0)
|
||||
{
|
||||
ThreadsHandler.RunningThreadStatus[value.Key] = $"{(Timers[value.Key] / Counter[value.Key])} ms x {Counter[value.Key]}";
|
||||
totTime += Timers[value.Key];
|
||||
ThreadsHandler.RunningThreadStatus[value.Key] = $"{((double)Timers[value.Key] / samplePeriod):P1} | {(Timers[value.Key] / Counter[value.Key])} ms x {Counter[value.Key]}";
|
||||
Timers[value.Key] = 0;
|
||||
Counter[value.Key] = 0;
|
||||
}
|
||||
}
|
||||
// aggiungo totale
|
||||
string grandTotal = $"{((double)totTime / samplePeriod):P1} | {totTime} ms";
|
||||
if (ThreadsHandler.RunningThreadStatus.ContainsKey(" TOTAL"))
|
||||
{
|
||||
ThreadsHandler.RunningThreadStatus[" TOTAL"] = grandTotal;
|
||||
}
|
||||
else
|
||||
{
|
||||
ThreadsHandler.RunningThreadStatus.Add(" TOTAL", grandTotal);
|
||||
}
|
||||
|
||||
MessageServices.Current.Publish(SEND_THREADS_STATUS, null, ThreadsHandler.RunningThreadStatus);
|
||||
|
||||
Thread.Sleep(2000);
|
||||
Thread.Sleep(samplePeriod);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -312,6 +338,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -325,77 +355,106 @@ public static class ThreadsFunctions
|
||||
public static void ManageFlirCamera()
|
||||
{
|
||||
NcAdapter ncAdapter = new NcAdapter();
|
||||
ThermoCamComunicator TCCom = new ThermoCamComunicator(true);
|
||||
Stopwatch sw = new Stopwatch();
|
||||
try
|
||||
// verifica abilitazione thermocam
|
||||
if (NcAdapter.EnableThermocam)
|
||||
{
|
||||
// Try connection
|
||||
CmsError libraryError = ncAdapter.Connect();
|
||||
if (libraryError.errorCode != 0)
|
||||
ManageLibraryError(libraryError);
|
||||
// avvio oggetto thermocam
|
||||
ThermoCamComunicator TCCom = new ThermoCamComunicator(true);
|
||||
Stopwatch sw = new Stopwatch();
|
||||
forcetakeSnapshot = false;
|
||||
|
||||
while (true)
|
||||
|
||||
RegistrationInfo takeReginfo = MessageServices.Current.Subscribe(TAKE_SNAPSHOT_THERMO, (a, b) =>
|
||||
{
|
||||
bool flirImageReq = false;
|
||||
sw.Restart();
|
||||
ThreadsFunctions.forcetakeSnapshot = true;
|
||||
});
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
try
|
||||
{
|
||||
// Try connection
|
||||
CmsError libraryError = ncAdapter.Connect();
|
||||
if (libraryError.errorCode != 0)
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
while (true)
|
||||
{
|
||||
// check if there is a photo request pending
|
||||
libraryError = ncAdapter.checkFlirImageRequest(out flirImageReq);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
bool flirImageReq = false;
|
||||
sw.Restart();
|
||||
|
||||
if (flirImageReq)
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
bool done = false;
|
||||
// if requested --> give ack!
|
||||
ncAdapter.ManageFlirStrobe();
|
||||
// requesto photo from library
|
||||
NcAdapter.lastThermoImage = TCCom.takePicture();
|
||||
done = !string.IsNullOrEmpty(NcAdapter.lastThermoImage);
|
||||
if (done)
|
||||
// check if there is a photo request pending
|
||||
libraryError = ncAdapter.checkFlirImageRequest(out flirImageReq);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
if (flirImageReq || forcetakeSnapshot)
|
||||
{
|
||||
// init
|
||||
List<Thermo.Cam.Utils.MeasurePoint> measuredpoints = new List<Thermo.Cam.Utils.MeasurePoint>();
|
||||
Dictionary<int, double> actualTemp = new Dictionary<int, double>();
|
||||
Dictionary<int, ThermoPoint> chPoints = new Dictionary<int, ThermoPoint>();
|
||||
// recupero punti centrali resistenze
|
||||
ncAdapter.GetWarmersChannelCenterPoints(out chPoints);
|
||||
// richiesta temperature per i punti
|
||||
done = TCCom.readMultiTemperatures("", chPoints, out measuredpoints);
|
||||
// converto in actualTemp
|
||||
foreach (var item in measuredpoints)
|
||||
forcetakeSnapshot = false;
|
||||
bool done = false;
|
||||
// if requested --> give ack!
|
||||
if (flirImageReq)
|
||||
ncAdapter.ManageFlirStrobe();
|
||||
// requesto photo from library
|
||||
NcAdapter.lastThermoImage = TCCom.takePicture();
|
||||
done = !string.IsNullOrEmpty(NcAdapter.lastThermoImage);
|
||||
if (done)
|
||||
{
|
||||
actualTemp.Add(item.Id, item.Temperature);
|
||||
// init
|
||||
List<Thermo.Cam.Utils.MeasurePoint> measuredpoints = new List<Thermo.Cam.Utils.MeasurePoint>();
|
||||
Dictionary<int, double> actualTemp = new Dictionary<int, double>();
|
||||
Dictionary<int, ThermoPoint> chPoints = new Dictionary<int, ThermoPoint>();
|
||||
// recupero punti centrali resistenze
|
||||
ncAdapter.GetWarmersChannelCenterPoints(out chPoints);
|
||||
// richiesta temperature per i punti
|
||||
done = TCCom.readMultiTemperatures("", chPoints, out measuredpoints);
|
||||
// converto in actualTemp
|
||||
foreach (var item in measuredpoints)
|
||||
{
|
||||
actualTemp.Add(item.Id, item.Temperature);
|
||||
}
|
||||
// salvo dati temp sul PLC
|
||||
ncAdapter.WriteRecipeWarmChTCamTempAct(actualTemp);
|
||||
NcAdapter.lastImageTaken = DateTime.Now;
|
||||
// give PLC strobe for uploaded Actual TEMP from image
|
||||
if(flirImageReq)
|
||||
ncAdapter.SendTCamImageReadyStrb();
|
||||
|
||||
|
||||
MessageServices.Current.Publish(SEND_NEWTCAMIMAGE, null, NcAdapter.lastImageTaken);
|
||||
|
||||
}
|
||||
// salvo dati temp sul PLC
|
||||
ncAdapter.WriteRecipeWarmChTCamTempAct(actualTemp);
|
||||
// give PLC strobe for uploaded Actual TEMP from image
|
||||
ncAdapter.SendTCamImageReadyStrb();
|
||||
}
|
||||
|
||||
// salvo status thermocam...
|
||||
NcAdapter.cameraIsConnected = TCCom.CameraIsConnected;
|
||||
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
// Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(samplMsec("FlirCamera"), (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
// Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(samplMsec("FlirCamera"), (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
// chiudo thermocam
|
||||
TCCom.Dispose();
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
// chiudo thermocam
|
||||
TCCom.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
MessageServices.Current.UnSubscribe(takeReginfo);
|
||||
ncAdapter.Dispose();
|
||||
// chiudo thermocam
|
||||
TCCom.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -470,6 +529,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ManageWatchdog()
|
||||
@@ -516,6 +579,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadAlarms()
|
||||
@@ -560,6 +627,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadAreaData()
|
||||
@@ -602,6 +673,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -655,6 +730,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -704,6 +783,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadEnabledFunctionality()
|
||||
@@ -748,6 +831,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadExpiredMaintenances()
|
||||
@@ -802,6 +889,11 @@ public static class ThreadsFunctions
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -846,6 +938,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadM154Data()
|
||||
@@ -1020,6 +1116,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadMComandsData()
|
||||
@@ -1066,6 +1166,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadModulesData()
|
||||
@@ -1108,6 +1212,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadPowerOnData()
|
||||
@@ -1150,6 +1258,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadProcessesPPStatus()
|
||||
@@ -1196,6 +1308,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadProdCycleData()
|
||||
@@ -1239,6 +1355,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadProdInfoData()
|
||||
@@ -1282,6 +1402,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadProdPanelData()
|
||||
@@ -1325,6 +1449,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadRecipeData()
|
||||
@@ -1351,39 +1479,46 @@ public static class ThreadsFunctions
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// Get new data from PLC
|
||||
libraryError = ncAdapter.ReadRecipeData(onlyRt, false, out Dictionary<string, DTORecipeParam> currRecipe);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
MessageServices.Current.Publish(SEND_THERMO_RECIPE_FULL, null, currRecipe);
|
||||
|
||||
// ora gestisco la overview!
|
||||
libraryError = ncAdapter.GetRecipeOverview(out Dictionary<RecipeSection, RecipeCatStatus> currOverview);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
MessageServices.Current.Publish(SEND_THERMO_RECIPE_OVERWIEW, null, currOverview);
|
||||
|
||||
// ora gestisco la lettura della overview di "modificata
|
||||
DTORecipeStatus message = new DTORecipeStatus()
|
||||
// controllo su redis che NON sia bloccata lettura ricetta..
|
||||
if (!RedisController.getRecipeReadSem)
|
||||
{
|
||||
recipeName = NcAdapter.RecipeLiveData.RecipeName,
|
||||
hasChanged = NcAdapter.RecipeLiveData.hasChanged
|
||||
};
|
||||
// Get new data from PLC
|
||||
libraryError = ncAdapter.ReadRecipeData(onlyRt, false, out Dictionary<string, DTORecipeParam> currRecipe);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
MessageServices.Current.Publish(SEND_THERMO_RECIPE_CHANGED, null, message);
|
||||
MessageServices.Current.Publish(SEND_THERMO_RECIPE_FULL, null, currRecipe);
|
||||
|
||||
// verifico se dal PLC è segnalato che i setpointHMI sono invalidati, nel qual caso INVIO
|
||||
bool setpointHmiInvalidated = false;
|
||||
libraryError = ncAdapter.checkSetpointInvalidated(out setpointHmiInvalidated);
|
||||
if (setpointHmiInvalidated)
|
||||
{
|
||||
// ora gestisco l'ack della richiesta
|
||||
libraryError = ncAdapter.doAckSetpointInvalidated();
|
||||
// ora gestisco la overview!
|
||||
libraryError = ncAdapter.GetRecipeOverview(out Dictionary<RecipeSection, RecipeCatStatus> currOverview);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
MessageServices.Current.Publish(SEND_THERMO_RECIPE_OVERWIEW, null, currOverview);
|
||||
|
||||
// ora gestisco la lettura della overview di "modificata
|
||||
DTORecipeStatus message = new DTORecipeStatus()
|
||||
{
|
||||
recipeName = NcAdapter.RecipeLiveData.RecipeName,
|
||||
hasChanged = NcAdapter.RecipeLiveData.hasChanged
|
||||
};
|
||||
|
||||
MessageServices.Current.Publish(SEND_THERMO_RECIPE_CHANGED, null, message);
|
||||
|
||||
// verifico se dal PLC è segnalato che i setpointHMI sono invalidati, nel qual caso INVIO
|
||||
bool setpointHmiInvalidated = false;
|
||||
libraryError = ncAdapter.checkSetpointInvalidated(out setpointHmiInvalidated);
|
||||
if (setpointHmiInvalidated)
|
||||
{
|
||||
// ora gestisco l'ack della richiesta
|
||||
libraryError = ncAdapter.doAckSetpointInvalidated();
|
||||
}
|
||||
// pubblico booleana dei setpointHMI invalidati
|
||||
MessageServices.Current.Publish(SEND_THERMO_RECIPE_SETPOINTHMI_CHANGED, null, setpointHmiInvalidated);
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
// pubblico booleana dei setpointHMI invalidati
|
||||
MessageServices.Current.Publish(SEND_THERMO_RECIPE_SETPOINTHMI_CHANGED, null, setpointHmiInvalidated);
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
@@ -1400,6 +1535,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadScadaData()
|
||||
@@ -1445,6 +1584,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadUserSoftKeysData()
|
||||
@@ -1489,6 +1632,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadWarmersData()
|
||||
@@ -1506,33 +1653,38 @@ public static class ThreadsFunctions
|
||||
bool useCache = false;
|
||||
while (true)
|
||||
{
|
||||
sw.Restart();
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
// controllo su redis che NON sia bloccata lettura ricetta..
|
||||
if (!RedisController.getWarmersReadSem)
|
||||
{
|
||||
if (cacheWarmers)
|
||||
sw.Restart();
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// every 10 reads all data...
|
||||
useCache = (readCount != 0);
|
||||
readCount++;
|
||||
// ciclo resettato ogni 20
|
||||
readCount = readCount % 20;
|
||||
if (cacheWarmers)
|
||||
{
|
||||
// every 10 reads all data...
|
||||
useCache = (readCount != 0);
|
||||
readCount++;
|
||||
// ciclo resettato ogni 20
|
||||
readCount = readCount % 20;
|
||||
}
|
||||
// Get new data from PLC
|
||||
libraryError = ncAdapter.ReadWarmers(useCache, out Dictionary<int, DTOWarmers> currWarmers);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
// pubblico
|
||||
MessageServices.Current.Publish(SEND_THERMO_WARMERS_DATA, null, currWarmers);
|
||||
}
|
||||
// Get new data from PLC
|
||||
libraryError = ncAdapter.ReadWarmers(useCache, out Dictionary<int, DTOWarmers> currWarmers);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
// pubblico
|
||||
MessageServices.Current.Publish(SEND_THERMO_WARMERS_DATA, null, currWarmers);
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
// Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
// Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(samplMsec("warmers"), (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
@@ -1541,6 +1693,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void RestoreConnection()
|
||||
@@ -1634,6 +1790,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
finally
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void StartCMSClient()
|
||||
|
||||
@@ -38,10 +38,6 @@
|
||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="S7.Net" publicKeyToken="d5812d469e84c693" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-0.8.1.0" newVersion="0.8.1.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -57,10 +57,6 @@
|
||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="S7.Net" publicKeyToken="d5812d469e84c693" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-0.8.1.0" newVersion="0.8.1.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -0,0 +1,83 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using static Thermo.Active.Config.ServerConfig;
|
||||
|
||||
namespace Thermo.Active.Database.Controllers
|
||||
{
|
||||
public class HistorySheetsController : IDisposable
|
||||
{
|
||||
private DatabaseContext dbCtx;
|
||||
|
||||
public HistorySheetsController()
|
||||
{
|
||||
// Initialize database context
|
||||
dbCtx = new DatabaseContext();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
dbCtx.Dispose();
|
||||
}
|
||||
|
||||
public HistorySheetModel Create(string recipe, short piece, float value1, float value2, float value3, ushort typeval)
|
||||
{
|
||||
HistorySheetModel mod = new HistorySheetModel()
|
||||
{
|
||||
DtEvent = DateTime.Now,
|
||||
RecipeName = recipe,
|
||||
NumDone = piece,
|
||||
FirstVal = value1,
|
||||
SecondVal = value2,
|
||||
ThirdVal = value3,
|
||||
TypeVal = typeval
|
||||
};
|
||||
|
||||
// Add to database
|
||||
dbCtx.HistorySheet.Add(mod);
|
||||
// Commit changes
|
||||
dbCtx.SaveChanges();
|
||||
|
||||
return mod;
|
||||
}
|
||||
|
||||
|
||||
public void Clean()
|
||||
{
|
||||
if (this.count() >= ServerStartupConfig.MaxSheetHistoryRows)
|
||||
{
|
||||
dbCtx.Database.ExecuteSqlCommand("DELETE FROM historysheets LIMIT {0}", ServerStartupConfig.SheetHistoryToDelete);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public List<HistorySheetModel> GetData(int start, int number)
|
||||
{
|
||||
// Get page numbers
|
||||
return dbCtx
|
||||
.HistorySheet
|
||||
.OrderByDescending(x => x.DtEvent).Skip(start).Take(number).ToList();
|
||||
}
|
||||
|
||||
public List<HistorySheetModel> GetData()
|
||||
{
|
||||
// Get page numbers
|
||||
return dbCtx
|
||||
.HistorySheet
|
||||
.OrderByDescending(x => x.DtEvent).ToList();
|
||||
}
|
||||
public int count()
|
||||
{
|
||||
// Get page numbers
|
||||
return dbCtx
|
||||
.HistorySheet.Count();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -21,6 +21,12 @@ namespace Thermo.Active.Database.Controllers
|
||||
// Initialize database context
|
||||
dbCtx = new DatabaseContext();
|
||||
}
|
||||
public void Dispose()
|
||||
{
|
||||
// Clear database context
|
||||
dbCtx.Dispose();
|
||||
}
|
||||
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
@@ -80,11 +86,6 @@ namespace Thermo.Active.Database.Controllers
|
||||
return prodData;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
// Clear database context
|
||||
dbCtx.Dispose();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get record by NumDone
|
||||
|
||||
@@ -36,6 +36,12 @@ namespace Thermo.Active.Database.Controllers
|
||||
private const string machineEventKpis = "Events:Kpis";
|
||||
private const string machineMessagePath = "Events:Messages";
|
||||
|
||||
|
||||
private const string thermoSemRecipe = "Thermo:Semaphore:All";
|
||||
private const string thermoSemWarmers = "Thermo:Semaphore:All";
|
||||
//private const string thermoSemRecipe = "Thermo:Semaphore:Recipe";
|
||||
//private const string thermoSemWarmers = "Thermo:Semaphore:Warmers";
|
||||
|
||||
public static void WriteProductionNotification(uint ProductionProcess, string Notification)
|
||||
{
|
||||
string redisHash = redUtil.man.redHash(redisNotificationAddress).Replace("%NN%", ProductionProcess.ToString("00"));
|
||||
@@ -246,5 +252,89 @@ namespace Thermo.Active.Database.Controllers
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Imposta semaforo Recipe
|
||||
/// </summary>
|
||||
/// <param name="doLock">true: imposto lock per 5 sec, false: tolgo lock (stringa vuota)</param>
|
||||
/// <returns></returns>
|
||||
public static bool setRecipeReadSem(bool doLock)
|
||||
{
|
||||
return setSemaphore(doLock, redUtil.man.redHash(thermoSemRecipe));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce semaforo Recipe
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static bool getRecipeReadSem
|
||||
{
|
||||
get
|
||||
{
|
||||
return getSemaphore(redUtil.man.redHash(thermoSemRecipe));
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Imposta semaforo Warmers
|
||||
/// </summary>
|
||||
/// <param name="doLock">true: imposto lock per 5 sec, false: tolgo lock (stringa vuota)</param>
|
||||
/// <returns></returns>
|
||||
public static bool setWarmersReadSem(bool doLock)
|
||||
{
|
||||
return setSemaphore(doLock, redUtil.man.redHash(thermoSemWarmers));
|
||||
}
|
||||
/// <summary>
|
||||
/// Restituisce semaforo Warmers
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static bool getWarmersReadSem
|
||||
{
|
||||
get
|
||||
{
|
||||
return getSemaphore(redUtil.man.redHash(thermoSemWarmers));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gestione generica SET semaforo
|
||||
/// </summary>
|
||||
/// <param name="doLock"></param>
|
||||
/// <param name="redisHash"></param>
|
||||
/// <returns></returns>
|
||||
private static bool setSemaphore(bool doLock, string redisHash)
|
||||
{
|
||||
bool answ = true;
|
||||
int ttlSec = 5;
|
||||
string rawData = $"{DateTime.Now}";
|
||||
try
|
||||
{
|
||||
if (doLock)
|
||||
{
|
||||
// imposto lock
|
||||
answ = redUtil.man.setRSV(redisHash, rawData, ttlSec);
|
||||
}
|
||||
else
|
||||
{
|
||||
// metto empty string a 1 sec
|
||||
answ = redUtil.man.setRSV(redisHash, "", 1);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Gestione generica GET semafoto
|
||||
/// </summary>
|
||||
/// <param name="redisHash"></param>
|
||||
/// <returns></returns>
|
||||
private static bool getSemaphore(string redisHash)
|
||||
{
|
||||
bool answ = true;
|
||||
string rawData = redUtil.man.getRSV(redisHash);
|
||||
// se non nulla --> ho semaforo!
|
||||
answ = !string.IsNullOrEmpty(rawData);
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace Thermo.Active.Database
|
||||
|
||||
// thermo!
|
||||
public DbSet<ProdInfoModel> ProdInfo { get; set; }
|
||||
|
||||
public DbSet<HistorySheetModel> HistorySheet { get; set; }
|
||||
|
||||
// Create migration string
|
||||
public static string CONNECTION_STRING = "Server = " + "localhost" + "; Database=" + DATABASE_NAME + ";Uid=" + DATABASE_USER + ";Pwd=" + DATABASE_PWD + ";";
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
// <auto-generated />
|
||||
namespace Thermo.Active.Database.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
|
||||
public sealed partial class HistorySheets : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(HistorySheets));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "202103191608500_HistorySheets"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
namespace Thermo.Active.Database.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class HistorySheets : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
CreateTable(
|
||||
"dbo.HistorySheets",
|
||||
c => new
|
||||
{
|
||||
DtEvent = c.DateTime(nullable: false, precision: 0),
|
||||
Recipe = c.String(unicode: false),
|
||||
FirstVal = c.Single(nullable: false),
|
||||
SecondVal = c.Single(nullable: false),
|
||||
ThirdVal = c.Single(nullable: false),
|
||||
})
|
||||
.PrimaryKey(t => t.DtEvent);
|
||||
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
DropTable("dbo.HistorySheets");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
+29
@@ -0,0 +1,29 @@
|
||||
// <auto-generated />
|
||||
namespace Thermo.Active.Database.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
|
||||
public sealed partial class HistorySheetsCycle : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(HistorySheetsCycle));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "202103191626072_HistorySheetsCycle"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
namespace Thermo.Active.Database.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class HistorySheetsCycle : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
AddColumn("dbo.HistorySheets", "NumDone", c => c.Short(nullable: false));
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
DropColumn("dbo.HistorySheets", "NumDone");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
+29
@@ -0,0 +1,29 @@
|
||||
// <auto-generated />
|
||||
namespace Thermo.Active.Database.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
|
||||
public sealed partial class addedTypeValHistory : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(addedTypeValHistory));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "202103221323362_addedTypeValHistory"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
namespace Thermo.Active.Database.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class addedTypeValHistory : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
AddColumn("dbo.HistorySheets", "TypeVal", c => c.Int(nullable: false));
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
DropColumn("dbo.HistorySheets", "TypeVal");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -124,6 +124,7 @@
|
||||
<ItemGroup>
|
||||
<Compile Include="Controllers\AlarmsController.cs" />
|
||||
<Compile Include="Controllers\FunctionsAccessController.cs" />
|
||||
<Compile Include="Controllers\HistorySheetsController.cs" />
|
||||
<Compile Include="Controllers\ProdInfoController.cs" />
|
||||
<Compile Include="Controllers\MachinesController.cs" />
|
||||
<Compile Include="Controllers\MaintenancesController.cs" />
|
||||
@@ -158,6 +159,18 @@
|
||||
<Compile Include="Migrations\202102171753226_Added_ThermoImage_prodInfo.Designer.cs">
|
||||
<DependentUpon>202102171753226_Added_ThermoImage_prodInfo.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\202103191608500_HistorySheets.cs" />
|
||||
<Compile Include="Migrations\202103191608500_HistorySheets.Designer.cs">
|
||||
<DependentUpon>202103191608500_HistorySheets.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\202103191626072_HistorySheetsCycle.cs" />
|
||||
<Compile Include="Migrations\202103191626072_HistorySheetsCycle.Designer.cs">
|
||||
<DependentUpon>202103191626072_HistorySheetsCycle.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\202103221323362_addedTypeValHistory.cs" />
|
||||
<Compile Include="Migrations\202103221323362_addedTypeValHistory.Designer.cs">
|
||||
<DependentUpon>202103221323362_addedTypeValHistory.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\Configuration.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Redis\redUtil.cs" />
|
||||
@@ -212,6 +225,15 @@
|
||||
<EmbeddedResource Include="Migrations\202102171753226_Added_ThermoImage_prodInfo.resx">
|
||||
<DependentUpon>202102171753226_Added_ThermoImage_prodInfo.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\202103191608500_HistorySheets.resx">
|
||||
<DependentUpon>202103191608500_HistorySheets.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\202103191626072_HistorySheetsCycle.resx">
|
||||
<DependentUpon>202103191626072_HistorySheetsCycle.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\202103221323362_addedTypeValHistory.resx">
|
||||
<DependentUpon>202103221323362_addedTypeValHistory.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -8,6 +8,7 @@ namespace Thermo.Active.Model.ConfigModels
|
||||
public int Id;
|
||||
public string Name { get; set; }
|
||||
public bool IsSelectable { get; set; } = true;
|
||||
public bool IsVisible { get; set; }
|
||||
public TACT_AXES_TYPE Type { get; set; }
|
||||
public int MasterId { get; set; } = 0;
|
||||
public int EnabledWord { get; set; } = 0;
|
||||
|
||||
@@ -18,5 +18,9 @@ namespace Thermo.Active.Model.ConfigModels
|
||||
|
||||
public int MaxAlarmsRows { get; set; }
|
||||
public int AlarmToDelete { get; set; }
|
||||
|
||||
|
||||
public int MaxSheetHistoryRows { get; set; }
|
||||
public int SheetHistoryToDelete { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,7 @@ namespace Thermo.Active.Model
|
||||
public const string AXES_CONFIG_PATH = CONFIG_DIRECTORY + "axesConfig.xml";
|
||||
public const string AXES_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + @"axesConfigValidator.xsd";
|
||||
public const string BROADCAST_DATA = "BROADCAST_DATA";
|
||||
public const string TAKE_SNAPSHOT_THERMO = "TAKE_SNAPSHOT_THERMO";
|
||||
|
||||
// File paths
|
||||
public const string CLIENT_EXE_NAME = @"Active_Client.exe";
|
||||
@@ -104,6 +105,7 @@ namespace Thermo.Active.Model
|
||||
|
||||
public const string SEND_AXIS_INFO = "SEND_AXIS_INFO";
|
||||
public const string SEND_CHANNELS_IO_DATA = "SEND_CHANNELS_IO_DATA";
|
||||
public const string SEND_NEWTCAMIMAGE = "SEND_NEWTCAMIMAGE";
|
||||
public const string SEND_CMSCONNECT_GW_REBOOT_STATUS = "SEND_CMSCONNECT_GW_REBOOT_STATUS";
|
||||
public const string SEND_ERROR_TO_UI = "SEND_ERROR_TO_UI";
|
||||
public const string SEND_EXPIRED_MAINTENANCES_DATA = "SEND_EXPIRED_MAINTENANCES_DATA";
|
||||
|
||||
@@ -18,6 +18,10 @@ namespace Thermo.Active.Model.DTOModels.ThAxes
|
||||
/// </summary>
|
||||
public string name { get; set; } = "";
|
||||
/// <summary>
|
||||
/// visible in the page
|
||||
/// </summary>
|
||||
public bool visible { get; set; } = false;
|
||||
/// <summary>
|
||||
/// Master (0--> is master, > 0 --> is slave)
|
||||
/// </summary>
|
||||
public int masterID { get; set; } = 0;
|
||||
|
||||
@@ -30,11 +30,21 @@ namespace Thermo.Active.Model.DTOModels.ThWarmers
|
||||
/// </summary>
|
||||
public bool ThermoCamOnOff { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Stato connessione ThermoCamera (in rete)
|
||||
/// </summary>
|
||||
public bool ThermoCamConnected { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Opzione ThermoCamera (set by PLC)
|
||||
/// </summary>
|
||||
public bool ThermoOptionActive { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Data ultima acquisizione
|
||||
/// </summary>
|
||||
public DateTime LastTakenImage { get; set; } = new DateTime(0);
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Public Methods
|
||||
@@ -59,7 +69,9 @@ namespace Thermo.Active.Model.DTOModels.ThWarmers
|
||||
return false;
|
||||
if (RangeTemperature != item.RangeTemperature)
|
||||
return false;
|
||||
|
||||
if (LastTakenImage != item.LastTakenImage)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Thermo.Active.Model.DatabaseModels
|
||||
{
|
||||
[Table("HistorySheets")]
|
||||
public class HistorySheetModel
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Column("DtEvent", Order = 0)]
|
||||
public DateTime DtEvent { get; set; }
|
||||
|
||||
[Column("Recipe")]
|
||||
public string RecipeName { get; set; }
|
||||
|
||||
[Column("NumDone")]
|
||||
public short NumDone { get; set; }
|
||||
|
||||
[Column("FirstVal")]
|
||||
public float FirstVal { get; set; }
|
||||
|
||||
[Column("SecondVal")]
|
||||
public float SecondVal { get; set; }
|
||||
|
||||
[Column("ThirdVal")]
|
||||
public float ThirdVal { get; set; }
|
||||
|
||||
[Column("TypeVal")]
|
||||
public int TypeVal { get; set; }
|
||||
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
}
|
||||
@@ -85,6 +85,7 @@
|
||||
<Compile Include="DatabaseModels\AlarmNoteModel.cs" />
|
||||
<Compile Include="DatabaseModels\AlarmOccurrencesModel.cs" />
|
||||
<Compile Include="DatabaseModels\AlarmUserModel.cs" />
|
||||
<Compile Include="DatabaseModels\HistorySheetModel.cs" />
|
||||
<Compile Include="DatabaseModels\FavoriteUserSoftKeyModel.cs" />
|
||||
<Compile Include="DatabaseModels\FunctionAccessModel.cs" />
|
||||
<Compile Include="ConfigModels\MessageModel.cs" />
|
||||
|
||||
+187
-14
@@ -135,6 +135,16 @@ namespace Thermo.Active.NC
|
||||
/// </summary>
|
||||
public NcThermo numericalControl;
|
||||
|
||||
/// <summary>
|
||||
/// Indica se la FLIR camera è connessa
|
||||
/// </summary>
|
||||
public static bool cameraIsConnected = false;
|
||||
|
||||
/// <summary>
|
||||
/// Indica se la FLIR camera è connessa
|
||||
/// </summary>
|
||||
public static DateTime lastImageTaken = new DateTime(0);
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
#region Public Constructors
|
||||
@@ -465,10 +475,16 @@ namespace Thermo.Active.NC
|
||||
// solo x S7...
|
||||
if (NcConfig.NcVendor == NC_VENDOR.S7NET)
|
||||
{
|
||||
// registro in redis blocco x lettura ricetta...
|
||||
RedisController.setRecipeReadSem(true);
|
||||
|
||||
// call NC for update
|
||||
CmsError libraryError = numericalControl.PLC_WRecipeEdit(confirmUpdate);
|
||||
if (libraryError.IsError())
|
||||
return libraryError;
|
||||
|
||||
// tolgo blocco x lettura ricetta...
|
||||
RedisController.setRecipeReadSem(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -523,7 +539,7 @@ namespace Thermo.Active.NC
|
||||
{
|
||||
CmsError libraryError = NO_ERROR;
|
||||
currCycleLog = new DTOCycleLog();
|
||||
|
||||
|
||||
// fix valori
|
||||
from = from > 0 ? from - 1 : 0;
|
||||
//selezione
|
||||
@@ -551,7 +567,7 @@ namespace Thermo.Active.NC
|
||||
// effettuo traduzione e riordino
|
||||
foreach (var item in currLogCycleData.OrderByDescending(i => i.DtEvent))
|
||||
{
|
||||
machineLog.events.Add(new CycleEvent() { dtEvent=item.DtEvent, code= item.Code });
|
||||
machineLog.events.Add(new CycleEvent() { dtEvent = item.DtEvent, code = item.Code });
|
||||
}
|
||||
// salvo
|
||||
lastCycleLogData = machineLog;
|
||||
@@ -582,31 +598,31 @@ namespace Thermo.Active.NC
|
||||
break;
|
||||
case AxisCommand.MoveAbsolute:
|
||||
doWrite = true;
|
||||
biteCommand = 0;
|
||||
biteCommand = 1;
|
||||
break;
|
||||
case AxisCommand.JogIncPlus:
|
||||
doWrite = true;
|
||||
biteCommand = 1;
|
||||
biteCommand = 2;
|
||||
break;
|
||||
case AxisCommand.JogIncMinus:
|
||||
doWrite = true;
|
||||
biteCommand = 2;
|
||||
biteCommand = 3;
|
||||
break;
|
||||
case AxisCommand.Align:
|
||||
doWrite = true;
|
||||
biteCommand = 3;
|
||||
biteCommand = 4;
|
||||
break;
|
||||
case AxisCommand.Probe:
|
||||
doWrite = true;
|
||||
biteCommand = 4;
|
||||
biteCommand = 5;
|
||||
break;
|
||||
case AxisCommand.SetSlavePosition:
|
||||
doWrite = true;
|
||||
biteCommand = 5;
|
||||
biteCommand = 6;
|
||||
break;
|
||||
case AxisCommand.Reset:
|
||||
doWrite = true;
|
||||
biteCommand = 6;
|
||||
biteCommand = 7;
|
||||
break;
|
||||
case AxisCommand.Num07:
|
||||
break;
|
||||
@@ -1409,7 +1425,9 @@ namespace Thermo.Active.NC
|
||||
|
||||
// leggo la ricetta dal PLC!
|
||||
var currRecipe = new Dictionary<string, DTORecipeParam>();
|
||||
libraryError = ReadFullRecipe(out currRecipe);
|
||||
//libraryError = ReadFullRecipe(out currRecipe);
|
||||
libraryError = ReadRecipeData(true, true, out currRecipe);
|
||||
|
||||
if (libraryError.IsError())
|
||||
return libraryError;
|
||||
|
||||
@@ -1680,7 +1698,7 @@ namespace Thermo.Active.NC
|
||||
var currRecipe = new Dictionary<string, DTORecipeParam>();
|
||||
|
||||
// read recipe
|
||||
libraryError = ReadRecipeData(false, true, out currRecipe);
|
||||
libraryError = ReadRecipeData(true, true, out currRecipe);
|
||||
if (libraryError.IsError())
|
||||
return libraryError;
|
||||
|
||||
@@ -1752,10 +1770,16 @@ namespace Thermo.Active.NC
|
||||
{
|
||||
if (NcFileAdapter.RecipeLiveData.ChannelSetpoints != null)
|
||||
{
|
||||
// registro in redis blocco x lettura ricetta...
|
||||
RedisController.setRecipeReadSem(true);
|
||||
|
||||
// se si in questo caso scrivo configurazione...
|
||||
WriteRecipeWarmConfig();
|
||||
// Ack !
|
||||
libraryError = numericalControl.PLC_WAckConfRiskRequest();
|
||||
|
||||
// tolgo in redis blocco x lettura ricetta...
|
||||
RedisController.setRecipeReadSem(false);
|
||||
}
|
||||
}
|
||||
if (ThermoReqConfRecipeStr)
|
||||
@@ -1783,8 +1807,12 @@ namespace Thermo.Active.NC
|
||||
return NOT_FOUND_ERROR;
|
||||
}
|
||||
}
|
||||
// registro in redis blocco x lettura ricetta...
|
||||
RedisController.setRecipeReadSem(true);
|
||||
// se si in questo caso scrivo configurazione attuale...
|
||||
WriteRecipeParams(updtRecipe, nMaxParamWrite, delayParamWrite);
|
||||
// tolgo in redis blocco x lettura ricetta...
|
||||
RedisController.setRecipeReadSem(false);
|
||||
|
||||
using (UserSoftkeysController controller = new UserSoftkeysController())
|
||||
{
|
||||
@@ -1801,6 +1829,9 @@ namespace Thermo.Active.NC
|
||||
newRisk.Add(item.Key, item.Value);
|
||||
}
|
||||
|
||||
// registro in redis blocco x lettura ricetta...
|
||||
RedisController.setRecipeReadSem(true);
|
||||
|
||||
// write to PLC SetPointHMI (%)
|
||||
libraryError = WriteRecipeWarmChSetpHMI(newRisk);
|
||||
if (libraryError.IsError())
|
||||
@@ -1815,6 +1846,9 @@ namespace Thermo.Active.NC
|
||||
libraryError = ConfirmRecipeData(true);
|
||||
if (libraryError.IsError())
|
||||
return libraryError;
|
||||
|
||||
// tolgo in redis blocco x lettura ricetta...
|
||||
RedisController.setRecipeReadSem(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1930,7 +1964,8 @@ namespace Thermo.Active.NC
|
||||
name = x.Name,
|
||||
masterID = x.MasterId,
|
||||
enabledWord = (AxisCommand)x.EnabledWord,
|
||||
type = x.Type.ToString()
|
||||
type = x.Type.ToString(),
|
||||
visible = x.IsVisible
|
||||
}).ToDictionary(x => x.ID, x => x);
|
||||
|
||||
// se ho valori in cache uso quelli, altrimenti init obj
|
||||
@@ -1947,7 +1982,8 @@ namespace Thermo.Active.NC
|
||||
name = x.Name,
|
||||
masterID = x.MasterId,
|
||||
enabledWord = (AxisCommand)x.EnabledWord,
|
||||
type = x.Type.ToString()
|
||||
type = x.Type.ToString(),
|
||||
visible = x.IsVisible
|
||||
}).ToDictionary(x => x.ID, x => x);
|
||||
}
|
||||
|
||||
@@ -2501,7 +2537,12 @@ namespace Thermo.Active.NC
|
||||
// save on DB! attenzione: RAW DATA perché salvo pezzo PRECEDENTE...
|
||||
using (ProdInfoController prodInfoController = new ProdInfoController())
|
||||
{
|
||||
prodInfoController.Create(pInfoRaw.NumTarget, pInfoRaw.NumDone, pInfoRaw.TimeWarm, pInfoRaw.TimeVent, pInfoRaw.TimeVacuum, pInfoRaw.TimeCycleGross, pInfoRaw.TimeCycleNet, pInfoRaw.MaterialTempEndWarm, pInfoRaw.MaterialTempEndVent, pInfoRaw.MoldTemp, pInfoRaw.VacuumReadVal, pInfoRaw.MouldEnergyOUT, pInfoRaw.MouldEnergyIN, false, pInfoRaw.ThermoImage);
|
||||
string imgName = string.IsNullOrEmpty(pInfoRaw.ThermoImage) ? "_last" : pInfoRaw.ThermoImage;
|
||||
if (imgName == "_last")
|
||||
{
|
||||
imgName = "UNDEFINED";
|
||||
}
|
||||
prodInfoController.Create(pInfoRaw.NumTarget, pInfoRaw.NumDone, pInfoRaw.TimeWarm, pInfoRaw.TimeVent, pInfoRaw.TimeVacuum, pInfoRaw.TimeCycleGross, pInfoRaw.TimeCycleNet, pInfoRaw.MaterialTempEndWarm, pInfoRaw.MaterialTempEndVent, pInfoRaw.MoldTemp, pInfoRaw.VacuumReadVal, pInfoRaw.MouldEnergyOUT, pInfoRaw.MouldEnergyIN, false, imgName);
|
||||
// indico di rileggere il DB...
|
||||
forceProdPanelDbReload = true;
|
||||
}
|
||||
@@ -2547,6 +2588,26 @@ namespace Thermo.Active.NC
|
||||
lastProdStart = DateTime.Now;
|
||||
}
|
||||
|
||||
|
||||
ThermoModels.HistorySheet sheetRaw = new ThermoModels.HistorySheet();
|
||||
libraryError = numericalControl.PLC_RHistorySheets(ref sheetRaw);
|
||||
if (libraryError.IsError())
|
||||
return libraryError;
|
||||
|
||||
if (sheetRaw.newData)
|
||||
{
|
||||
|
||||
using (HistorySheetsController HSC = new HistorySheetsController())
|
||||
{
|
||||
HSC.Create(NcFileAdapter.RecipeLiveData.RecipeName, prodInfoData.NumDone, (float) sheetRaw.Value1, (float) sheetRaw.Value2, (float) sheetRaw.Value3,sheetRaw.TypeVal);
|
||||
|
||||
// manage strobe/ack!
|
||||
libraryError = numericalControl.PLC_WAckHistorySheets();
|
||||
if (libraryError.IsError())
|
||||
return libraryError;
|
||||
}
|
||||
}
|
||||
|
||||
return libraryError;
|
||||
}
|
||||
|
||||
@@ -3113,6 +3174,16 @@ namespace Thermo.Active.NC
|
||||
return libraryError;
|
||||
}
|
||||
|
||||
public static bool EnableThermocam
|
||||
{
|
||||
get
|
||||
{
|
||||
bool answ = false;
|
||||
bool.TryParse(AdditionalParametersConfig["EnableThermocam"], out answ);
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
|
||||
public CmsError ReadTCamData(out DTOThermoCam currTCamData)
|
||||
{
|
||||
CmsError libraryError = NO_ERROR;
|
||||
@@ -3146,6 +3217,11 @@ namespace Thermo.Active.NC
|
||||
Min = minVal,
|
||||
Max = maxVal
|
||||
};
|
||||
// controllo se connessa
|
||||
currTCamData.ThermoCamConnected = cameraIsConnected;
|
||||
|
||||
// DataOra ultima immagine scattata
|
||||
currTCamData.LastTakenImage = lastImageTaken;
|
||||
}
|
||||
return libraryError;
|
||||
}
|
||||
@@ -3367,8 +3443,14 @@ namespace Thermo.Active.NC
|
||||
/// <returns></returns>
|
||||
public CmsError SetTCamActiv(bool enableTCam)
|
||||
{
|
||||
// registro in redis blocco x lettura ricetta...
|
||||
RedisController.setWarmersReadSem(true);
|
||||
|
||||
CmsError libraryError = numericalControl.PLC_WTCamActiv(enableTCam);
|
||||
|
||||
// tolgo in redis blocco x lettura ricetta...
|
||||
RedisController.setWarmersReadSem(false);
|
||||
|
||||
return libraryError;
|
||||
}
|
||||
|
||||
@@ -3379,8 +3461,14 @@ namespace Thermo.Active.NC
|
||||
/// <returns></returns>
|
||||
public CmsError SetTCamMode(bool enableTCam)
|
||||
{
|
||||
// registro in redis blocco x lettura ricetta...
|
||||
RedisController.setWarmersReadSem(true);
|
||||
|
||||
CmsError libraryError = numericalControl.PLC_WTCamMode(enableTCam);
|
||||
|
||||
// tolgo in redis blocco x lettura ricetta...
|
||||
RedisController.setWarmersReadSem(false);
|
||||
|
||||
return libraryError;
|
||||
}
|
||||
|
||||
@@ -3478,6 +3566,52 @@ namespace Thermo.Active.NC
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set AdvMode for AXES
|
||||
/// </summary>
|
||||
/// <param name="advMode">Boolean for advmode true/false</param>
|
||||
/// <returns></returns>
|
||||
public CmsError SetAxesAdvMode(bool advMode)
|
||||
{
|
||||
// solo x S7...
|
||||
if (NcConfig.NcVendor == NC_VENDOR.S7NET)
|
||||
{
|
||||
// scrivo!
|
||||
CmsError libraryError = numericalControl.PLC_WAxisGeneralControl(advMode);
|
||||
if (libraryError.IsError())
|
||||
return libraryError;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FUNCTION_NOT_ALLOWED_ERROR;
|
||||
}
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Get AdvMode for AXES
|
||||
/// </summary>
|
||||
/// <param name="advMode">Boolean for advmode true/false</param>
|
||||
/// <returns></returns>
|
||||
public CmsError GetAxesAdvMode(out bool advMode)
|
||||
{
|
||||
advMode = false;
|
||||
// solo x S7...
|
||||
if (NcConfig.NcVendor == NC_VENDOR.S7NET)
|
||||
{
|
||||
// scrivo!
|
||||
CmsError libraryError = numericalControl.PLC_RAxisGeneralStatus(ref advMode);
|
||||
if (libraryError.IsError())
|
||||
return libraryError;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FUNCTION_NOT_ALLOWED_ERROR;
|
||||
}
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public void WriteCandy(DateTime value, int machNumber)
|
||||
{
|
||||
long nDays;
|
||||
@@ -3569,8 +3703,15 @@ namespace Thermo.Active.NC
|
||||
/// <returns></returns>
|
||||
public CmsError WriteRecipeParams(Dictionary<string, DTORecipeParam> updtRecipe, int nMaxParamWrite, int delayParamWrite)
|
||||
{
|
||||
|
||||
// registro in redis blocco x lettura ricetta...
|
||||
RedisController.setRecipeReadSem(true);
|
||||
|
||||
CmsError libraryError = WriteRecipeParametersToPLC(updtRecipe, nMaxParamWrite, delayParamWrite);
|
||||
|
||||
// tolgo blocco x lettura ricetta...
|
||||
RedisController.setRecipeReadSem(false);
|
||||
|
||||
return libraryError;
|
||||
}
|
||||
|
||||
@@ -3581,8 +3722,15 @@ namespace Thermo.Active.NC
|
||||
/// <returns></returns>
|
||||
public CmsError WriteRecipeWarmChSetpHMI(Dictionary<int, int> updtSetpHmi)
|
||||
{
|
||||
// registro in redis blocco x lettura warmers...
|
||||
RedisController.setWarmersReadSem(true);
|
||||
|
||||
CmsError libraryError = numericalControl.PLC_WWarmerChSetpHmi(updtSetpHmi);
|
||||
|
||||
// tolgo blocco x lettura warmers...
|
||||
RedisController.setWarmersReadSem(false);
|
||||
|
||||
|
||||
return libraryError;
|
||||
}
|
||||
|
||||
@@ -3593,8 +3741,14 @@ namespace Thermo.Active.NC
|
||||
/// <returns></returns>
|
||||
public CmsError WriteRecipeWarmChTCamEnab(Dictionary<int, bool> actualStates)
|
||||
{
|
||||
// registro in redis blocco x lettura warmers...
|
||||
RedisController.setWarmersReadSem(true);
|
||||
|
||||
CmsError libraryError = numericalControl.PLC_WWarmerChTCamEnab(actualStates);
|
||||
|
||||
// tolgo blocco x lettura warmers...
|
||||
RedisController.setWarmersReadSem(false);
|
||||
|
||||
return libraryError;
|
||||
}
|
||||
|
||||
@@ -3605,8 +3759,14 @@ namespace Thermo.Active.NC
|
||||
/// <returns></returns>
|
||||
public CmsError WriteRecipeWarmChTCamTempAct(Dictionary<int, double> actualTemp)
|
||||
{
|
||||
// registro in redis blocco x lettura warmers...
|
||||
RedisController.setWarmersReadSem(true);
|
||||
|
||||
CmsError libraryError = numericalControl.PLC_WWarmerChTCamTempAct(actualTemp);
|
||||
|
||||
// tolgo blocco x lettura warmers...
|
||||
RedisController.setWarmersReadSem(false);
|
||||
|
||||
return libraryError;
|
||||
}
|
||||
|
||||
@@ -3617,8 +3777,14 @@ namespace Thermo.Active.NC
|
||||
/// <returns></returns>
|
||||
public CmsError WriteRecipeWarmChTCamTempSet(Dictionary<int, double> referenceTemp)
|
||||
{
|
||||
// registro in redis blocco x lettura warmers...
|
||||
RedisController.setWarmersReadSem(true);
|
||||
|
||||
CmsError libraryError = numericalControl.PLC_WWarmerChTCamTempSet(referenceTemp);
|
||||
|
||||
// tolgo blocco x lettura warmers...
|
||||
RedisController.setWarmersReadSem(false);
|
||||
|
||||
return libraryError;
|
||||
}
|
||||
|
||||
@@ -3632,6 +3798,9 @@ namespace Thermo.Active.NC
|
||||
Dictionary<int, int> newData = new Dictionary<int, int>();
|
||||
CmsError libraryError = NO_ERROR;
|
||||
|
||||
// registro in redis blocco x lettura warmers...
|
||||
RedisController.setWarmersReadSem(true);
|
||||
|
||||
// scrivo l'abilitazione dei canali...
|
||||
foreach (var item in RiskBoardConfig)
|
||||
{
|
||||
@@ -3693,6 +3862,10 @@ namespace Thermo.Active.NC
|
||||
numericalControl.PLC_WWarmerChTCamEnab(resetTCamEnab);
|
||||
numericalControl.PLC_WWarmerChTCamTempAct(resetTCamTemp);
|
||||
numericalControl.PLC_WWarmerChTCamTempSet(resetTCamTemp);
|
||||
|
||||
// tolgo blocco x lettura warmers...
|
||||
RedisController.setWarmersReadSem(false);
|
||||
|
||||
// esce
|
||||
return libraryError;
|
||||
}
|
||||
|
||||
@@ -38,10 +38,6 @@
|
||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="S7.Net" publicKeyToken="d5812d469e84c693" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-0.8.1.0" newVersion="0.8.1.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
+400
-400
@@ -30,436 +30,436 @@ namespace Thermo.Active.UI
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ServerControlWindow));
|
||||
this.StepNotifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
|
||||
this.NotifyIconMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.adminMachineToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.passwordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.goBackToStandardModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.resetSpindleHoursToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.resetCountersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.resetMachineWorkingHoursToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.StopServerItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.TXTstatus = new System.Windows.Forms.TextBox();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.stopServerButton = new System.Windows.Forms.Button();
|
||||
this.openUiButton = new System.Windows.Forms.Button();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.TXTVersion = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.TXTType = new System.Windows.Forms.Label();
|
||||
this.CHNcConnected = new System.Windows.Forms.CheckBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.TXTMachId = new System.Windows.Forms.Label();
|
||||
this.LISTThreadStatus = new System.Windows.Forms.ListView();
|
||||
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||
this.menuToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.closeCMSServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.serviceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.passwordToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.goBackToStandardModeToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.resetSpindleHoursToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.resetCountersToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.resetMachineWorkingHoursToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.NotifyIconMenu.SuspendLayout();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.panel1.SuspendLayout();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// StepNotifyIcon
|
||||
//
|
||||
this.StepNotifyIcon.BalloonTipText = "Active";
|
||||
this.StepNotifyIcon.ContextMenuStrip = this.NotifyIconMenu;
|
||||
this.StepNotifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("StepNotifyIcon.Icon")));
|
||||
this.StepNotifyIcon.Text = "Active";
|
||||
this.StepNotifyIcon.Visible = true;
|
||||
this.StepNotifyIcon.DoubleClick += new System.EventHandler(this.NotifyIcon_Click);
|
||||
//
|
||||
// NotifyIconMenu
|
||||
//
|
||||
this.NotifyIconMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ServerControlWindow));
|
||||
this.StepNotifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
|
||||
this.NotifyIconMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.adminMachineToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.passwordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.goBackToStandardModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.resetSpindleHoursToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.resetCountersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.resetMachineWorkingHoursToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.StopServerItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.TXTstatus = new System.Windows.Forms.TextBox();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.stopServerButton = new System.Windows.Forms.Button();
|
||||
this.openUiButton = new System.Windows.Forms.Button();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.TXTVersion = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.TXTType = new System.Windows.Forms.Label();
|
||||
this.CHNcConnected = new System.Windows.Forms.CheckBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.TXTMachId = new System.Windows.Forms.Label();
|
||||
this.LISTThreadStatus = new System.Windows.Forms.ListView();
|
||||
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||
this.menuToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.closeCMSServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.serviceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.passwordToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.goBackToStandardModeToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.resetSpindleHoursToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.resetCountersToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.resetMachineWorkingHoursToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.NotifyIconMenu.SuspendLayout();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.panel1.SuspendLayout();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// StepNotifyIcon
|
||||
//
|
||||
this.StepNotifyIcon.BalloonTipText = "Active";
|
||||
this.StepNotifyIcon.ContextMenuStrip = this.NotifyIconMenu;
|
||||
this.StepNotifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("StepNotifyIcon.Icon")));
|
||||
this.StepNotifyIcon.Text = "Active";
|
||||
this.StepNotifyIcon.Visible = true;
|
||||
this.StepNotifyIcon.DoubleClick += new System.EventHandler(this.NotifyIcon_Click);
|
||||
//
|
||||
// NotifyIconMenu
|
||||
//
|
||||
this.NotifyIconMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.adminMachineToolStripMenuItem,
|
||||
this.toolStripSeparator3,
|
||||
this.StopServerItem});
|
||||
this.NotifyIconMenu.Name = "NotifyIconMenu";
|
||||
this.NotifyIconMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
|
||||
this.NotifyIconMenu.Size = new System.Drawing.Size(175, 54);
|
||||
//
|
||||
// adminMachineToolStripMenuItem
|
||||
//
|
||||
this.adminMachineToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.NotifyIconMenu.Name = "NotifyIconMenu";
|
||||
this.NotifyIconMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
|
||||
this.NotifyIconMenu.Size = new System.Drawing.Size(175, 54);
|
||||
//
|
||||
// adminMachineToolStripMenuItem
|
||||
//
|
||||
this.adminMachineToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.passwordToolStripMenuItem,
|
||||
this.goBackToStandardModeToolStripMenuItem,
|
||||
this.toolStripSeparator,
|
||||
this.resetSpindleHoursToolStripMenuItem,
|
||||
this.resetCountersToolStripMenuItem,
|
||||
this.resetMachineWorkingHoursToolStripMenuItem});
|
||||
this.adminMachineToolStripMenuItem.Name = "adminMachineToolStripMenuItem";
|
||||
this.adminMachineToolStripMenuItem.Size = new System.Drawing.Size(174, 22);
|
||||
this.adminMachineToolStripMenuItem.Text = "Service";
|
||||
//
|
||||
// passwordToolStripMenuItem
|
||||
//
|
||||
this.passwordToolStripMenuItem.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Lock_icon;
|
||||
this.passwordToolStripMenuItem.Name = "passwordToolStripMenuItem";
|
||||
this.passwordToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||
this.passwordToolStripMenuItem.Text = "Password";
|
||||
this.passwordToolStripMenuItem.Click += new System.EventHandler(this.passwordToolStripMenuItem_Click);
|
||||
//
|
||||
// goBackToStandardModeToolStripMenuItem
|
||||
//
|
||||
this.goBackToStandardModeToolStripMenuItem.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Unlock_icon;
|
||||
this.goBackToStandardModeToolStripMenuItem.Name = "goBackToStandardModeToolStripMenuItem";
|
||||
this.goBackToStandardModeToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||
this.goBackToStandardModeToolStripMenuItem.Text = "Go back to standard mode";
|
||||
this.goBackToStandardModeToolStripMenuItem.Visible = false;
|
||||
this.goBackToStandardModeToolStripMenuItem.Click += new System.EventHandler(this.goBackToStandardModeToolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator
|
||||
//
|
||||
this.toolStripSeparator.Name = "toolStripSeparator";
|
||||
this.toolStripSeparator.Size = new System.Drawing.Size(231, 6);
|
||||
this.toolStripSeparator.Visible = false;
|
||||
//
|
||||
// resetSpindleHoursToolStripMenuItem
|
||||
//
|
||||
this.resetSpindleHoursToolStripMenuItem.Name = "resetSpindleHoursToolStripMenuItem";
|
||||
this.resetSpindleHoursToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||
this.resetSpindleHoursToolStripMenuItem.Text = "Reset Spindle Active Time";
|
||||
this.resetSpindleHoursToolStripMenuItem.Visible = false;
|
||||
this.resetSpindleHoursToolStripMenuItem.Click += new System.EventHandler(this.resetSpindleHoursToolStripMenuItem_Click);
|
||||
//
|
||||
// resetCountersToolStripMenuItem
|
||||
//
|
||||
this.resetCountersToolStripMenuItem.Name = "resetCountersToolStripMenuItem";
|
||||
this.resetCountersToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||
this.resetCountersToolStripMenuItem.Text = "Reset CMS-Active Counters";
|
||||
this.resetCountersToolStripMenuItem.Visible = false;
|
||||
this.resetCountersToolStripMenuItem.Click += new System.EventHandler(this.resetCountersToolStripMenuItem_Click);
|
||||
//
|
||||
// resetMachineWorkingHoursToolStripMenuItem
|
||||
//
|
||||
this.resetMachineWorkingHoursToolStripMenuItem.Name = "resetMachineWorkingHoursToolStripMenuItem";
|
||||
this.resetMachineWorkingHoursToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||
this.resetMachineWorkingHoursToolStripMenuItem.Text = "Reset Machine Working Hours";
|
||||
this.resetMachineWorkingHoursToolStripMenuItem.Visible = false;
|
||||
this.resetMachineWorkingHoursToolStripMenuItem.Click += new System.EventHandler(this.resetMachineWorkingHoursToolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator3
|
||||
//
|
||||
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||
this.toolStripSeparator3.Size = new System.Drawing.Size(171, 6);
|
||||
//
|
||||
// StopServerItem
|
||||
//
|
||||
this.StopServerItem.Name = "StopServerItem";
|
||||
this.StopServerItem.Size = new System.Drawing.Size(174, 22);
|
||||
this.StopServerItem.Text = "Close Active Server";
|
||||
this.StopServerItem.Click += new System.EventHandler(this.StopServerItem_Click);
|
||||
//
|
||||
// TXTstatus
|
||||
//
|
||||
this.TXTstatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
this.adminMachineToolStripMenuItem.Name = "adminMachineToolStripMenuItem";
|
||||
this.adminMachineToolStripMenuItem.Size = new System.Drawing.Size(174, 22);
|
||||
this.adminMachineToolStripMenuItem.Text = "Service";
|
||||
//
|
||||
// passwordToolStripMenuItem
|
||||
//
|
||||
this.passwordToolStripMenuItem.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Lock_icon;
|
||||
this.passwordToolStripMenuItem.Name = "passwordToolStripMenuItem";
|
||||
this.passwordToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||
this.passwordToolStripMenuItem.Text = "Password";
|
||||
this.passwordToolStripMenuItem.Click += new System.EventHandler(this.passwordToolStripMenuItem_Click);
|
||||
//
|
||||
// goBackToStandardModeToolStripMenuItem
|
||||
//
|
||||
this.goBackToStandardModeToolStripMenuItem.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Unlock_icon;
|
||||
this.goBackToStandardModeToolStripMenuItem.Name = "goBackToStandardModeToolStripMenuItem";
|
||||
this.goBackToStandardModeToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||
this.goBackToStandardModeToolStripMenuItem.Text = "Go back to standard mode";
|
||||
this.goBackToStandardModeToolStripMenuItem.Visible = false;
|
||||
this.goBackToStandardModeToolStripMenuItem.Click += new System.EventHandler(this.goBackToStandardModeToolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator
|
||||
//
|
||||
this.toolStripSeparator.Name = "toolStripSeparator";
|
||||
this.toolStripSeparator.Size = new System.Drawing.Size(231, 6);
|
||||
this.toolStripSeparator.Visible = false;
|
||||
//
|
||||
// resetSpindleHoursToolStripMenuItem
|
||||
//
|
||||
this.resetSpindleHoursToolStripMenuItem.Name = "resetSpindleHoursToolStripMenuItem";
|
||||
this.resetSpindleHoursToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||
this.resetSpindleHoursToolStripMenuItem.Text = "Reset Spindle Active Time";
|
||||
this.resetSpindleHoursToolStripMenuItem.Visible = false;
|
||||
this.resetSpindleHoursToolStripMenuItem.Click += new System.EventHandler(this.resetSpindleHoursToolStripMenuItem_Click);
|
||||
//
|
||||
// resetCountersToolStripMenuItem
|
||||
//
|
||||
this.resetCountersToolStripMenuItem.Name = "resetCountersToolStripMenuItem";
|
||||
this.resetCountersToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||
this.resetCountersToolStripMenuItem.Text = "Reset CMS-Active Counters";
|
||||
this.resetCountersToolStripMenuItem.Visible = false;
|
||||
this.resetCountersToolStripMenuItem.Click += new System.EventHandler(this.resetCountersToolStripMenuItem_Click);
|
||||
//
|
||||
// resetMachineWorkingHoursToolStripMenuItem
|
||||
//
|
||||
this.resetMachineWorkingHoursToolStripMenuItem.Name = "resetMachineWorkingHoursToolStripMenuItem";
|
||||
this.resetMachineWorkingHoursToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||
this.resetMachineWorkingHoursToolStripMenuItem.Text = "Reset Machine Working Hours";
|
||||
this.resetMachineWorkingHoursToolStripMenuItem.Visible = false;
|
||||
this.resetMachineWorkingHoursToolStripMenuItem.Click += new System.EventHandler(this.resetMachineWorkingHoursToolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator3
|
||||
//
|
||||
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||
this.toolStripSeparator3.Size = new System.Drawing.Size(171, 6);
|
||||
//
|
||||
// StopServerItem
|
||||
//
|
||||
this.StopServerItem.Name = "StopServerItem";
|
||||
this.StopServerItem.Size = new System.Drawing.Size(174, 22);
|
||||
this.StopServerItem.Text = "Close Active Server";
|
||||
this.StopServerItem.Click += new System.EventHandler(this.StopServerItem_Click);
|
||||
//
|
||||
// TXTstatus
|
||||
//
|
||||
this.TXTstatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.TXTstatus, 2);
|
||||
this.TXTstatus.Enabled = false;
|
||||
this.TXTstatus.Location = new System.Drawing.Point(3, 435);
|
||||
this.TXTstatus.Name = "TXTstatus";
|
||||
this.TXTstatus.ReadOnly = true;
|
||||
this.TXTstatus.Size = new System.Drawing.Size(438, 20);
|
||||
this.TXTstatus.TabIndex = 8;
|
||||
this.TXTstatus.Text = "...";
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.TXTstatus, 2);
|
||||
this.TXTstatus.Enabled = false;
|
||||
this.TXTstatus.Location = new System.Drawing.Point(3, 620);
|
||||
this.TXTstatus.Name = "TXTstatus";
|
||||
this.TXTstatus.ReadOnly = true;
|
||||
this.TXTstatus.Size = new System.Drawing.Size(438, 20);
|
||||
this.TXTstatus.TabIndex = 8;
|
||||
this.TXTstatus.Text = "...";
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tableLayoutPanel1.ColumnCount = 2;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel1.Controls.Add(this.stopServerButton, 1, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.openUiButton, 0, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.TXTstatus, 0, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.LISTThreadStatus, 0, 0);
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(12, 27);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 3;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 89F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 54F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(444, 457);
|
||||
this.tableLayoutPanel1.TabIndex = 58;
|
||||
//
|
||||
// stopServerButton
|
||||
//
|
||||
this.stopServerButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
this.tableLayoutPanel1.ColumnCount = 2;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel1.Controls.Add(this.stopServerButton, 1, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.openUiButton, 0, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.TXTstatus, 0, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.LISTThreadStatus, 0, 0);
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(12, 27);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 3;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 89F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 54F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(444, 642);
|
||||
this.tableLayoutPanel1.TabIndex = 58;
|
||||
//
|
||||
// stopServerButton
|
||||
//
|
||||
this.stopServerButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.stopServerButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||
this.stopServerButton.Location = new System.Drawing.Point(225, 381);
|
||||
this.stopServerButton.Name = "stopServerButton";
|
||||
this.stopServerButton.Size = new System.Drawing.Size(216, 48);
|
||||
this.stopServerButton.TabIndex = 3;
|
||||
this.stopServerButton.TabStop = false;
|
||||
this.stopServerButton.Text = "Close Active";
|
||||
this.stopServerButton.Click += new System.EventHandler(this.StopServerButton_Click);
|
||||
//
|
||||
// openUiButton
|
||||
//
|
||||
this.openUiButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
this.stopServerButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||
this.stopServerButton.Location = new System.Drawing.Point(225, 566);
|
||||
this.stopServerButton.Name = "stopServerButton";
|
||||
this.stopServerButton.Size = new System.Drawing.Size(216, 48);
|
||||
this.stopServerButton.TabIndex = 3;
|
||||
this.stopServerButton.TabStop = false;
|
||||
this.stopServerButton.Text = "Close Active";
|
||||
this.stopServerButton.Click += new System.EventHandler(this.StopServerButton_Click);
|
||||
//
|
||||
// openUiButton
|
||||
//
|
||||
this.openUiButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.openUiButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||
this.openUiButton.Location = new System.Drawing.Point(3, 381);
|
||||
this.openUiButton.Name = "openUiButton";
|
||||
this.openUiButton.Size = new System.Drawing.Size(216, 48);
|
||||
this.openUiButton.TabIndex = 58;
|
||||
this.openUiButton.TabStop = false;
|
||||
this.openUiButton.Text = "Open Active Client";
|
||||
this.openUiButton.Click += new System.EventHandler(this.OpenUiButton_Click);
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
this.openUiButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||
this.openUiButton.Location = new System.Drawing.Point(3, 566);
|
||||
this.openUiButton.Name = "openUiButton";
|
||||
this.openUiButton.Size = new System.Drawing.Size(216, 48);
|
||||
this.openUiButton.TabIndex = 58;
|
||||
this.openUiButton.TabStop = false;
|
||||
this.openUiButton.Text = "Open Active Client";
|
||||
this.openUiButton.Click += new System.EventHandler(this.OpenUiButton_Click);
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.panel1, 2);
|
||||
this.panel1.Controls.Add(this.label3);
|
||||
this.panel1.Controls.Add(this.TXTVersion);
|
||||
this.panel1.Controls.Add(this.label1);
|
||||
this.panel1.Controls.Add(this.TXTType);
|
||||
this.panel1.Controls.Add(this.CHNcConnected);
|
||||
this.panel1.Controls.Add(this.label2);
|
||||
this.panel1.Controls.Add(this.TXTMachId);
|
||||
this.panel1.Location = new System.Drawing.Point(3, 292);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(438, 83);
|
||||
this.panel1.TabIndex = 9;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(3, 49);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(78, 13);
|
||||
this.label3.TabIndex = 59;
|
||||
this.label3.Text = "Active Version:";
|
||||
//
|
||||
// TXTVersion
|
||||
//
|
||||
this.TXTVersion.AutoSize = true;
|
||||
this.TXTVersion.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.TXTVersion.Location = new System.Drawing.Point(87, 49);
|
||||
this.TXTVersion.Name = "TXTVersion";
|
||||
this.TXTVersion.Size = new System.Drawing.Size(19, 13);
|
||||
this.TXTVersion.TabIndex = 58;
|
||||
this.TXTVersion.Text = "---";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(3, 24);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(44, 13);
|
||||
this.label1.TabIndex = 54;
|
||||
this.label1.Text = "Vendor:";
|
||||
//
|
||||
// TXTType
|
||||
//
|
||||
this.TXTType.AutoSize = true;
|
||||
this.TXTType.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.TXTType.Location = new System.Drawing.Point(48, 24);
|
||||
this.TXTType.Name = "TXTType";
|
||||
this.TXTType.Size = new System.Drawing.Size(19, 13);
|
||||
this.TXTType.TabIndex = 53;
|
||||
this.TXTType.Text = "---";
|
||||
//
|
||||
// CHNcConnected
|
||||
//
|
||||
this.CHNcConnected.AutoCheck = false;
|
||||
this.CHNcConnected.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
this.CHNcConnected.Location = new System.Drawing.Point(340, 24);
|
||||
this.CHNcConnected.Name = "CHNcConnected";
|
||||
this.CHNcConnected.Size = new System.Drawing.Size(81, 20);
|
||||
this.CHNcConnected.TabIndex = 52;
|
||||
this.CHNcConnected.Text = "Connected";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(142, 24);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(63, 13);
|
||||
this.label2.TabIndex = 57;
|
||||
this.label2.Text = "Machine Id:";
|
||||
//
|
||||
// TXTMachId
|
||||
//
|
||||
this.TXTMachId.AutoSize = true;
|
||||
this.TXTMachId.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.TXTMachId.Location = new System.Drawing.Point(240, 24);
|
||||
this.TXTMachId.Name = "TXTMachId";
|
||||
this.TXTMachId.Size = new System.Drawing.Size(19, 13);
|
||||
this.TXTMachId.TabIndex = 56;
|
||||
this.TXTMachId.Text = "---";
|
||||
//
|
||||
// LISTThreadStatus
|
||||
//
|
||||
this.LISTThreadStatus.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.panel1, 2);
|
||||
this.panel1.Controls.Add(this.label3);
|
||||
this.panel1.Controls.Add(this.TXTVersion);
|
||||
this.panel1.Controls.Add(this.label1);
|
||||
this.panel1.Controls.Add(this.TXTType);
|
||||
this.panel1.Controls.Add(this.CHNcConnected);
|
||||
this.panel1.Controls.Add(this.label2);
|
||||
this.panel1.Controls.Add(this.TXTMachId);
|
||||
this.panel1.Location = new System.Drawing.Point(3, 477);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(438, 83);
|
||||
this.panel1.TabIndex = 9;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(3, 49);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(78, 13);
|
||||
this.label3.TabIndex = 59;
|
||||
this.label3.Text = "Active Version:";
|
||||
//
|
||||
// TXTVersion
|
||||
//
|
||||
this.TXTVersion.AutoSize = true;
|
||||
this.TXTVersion.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.TXTVersion.Location = new System.Drawing.Point(87, 49);
|
||||
this.TXTVersion.Name = "TXTVersion";
|
||||
this.TXTVersion.Size = new System.Drawing.Size(19, 13);
|
||||
this.TXTVersion.TabIndex = 58;
|
||||
this.TXTVersion.Text = "---";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(3, 24);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(44, 13);
|
||||
this.label1.TabIndex = 54;
|
||||
this.label1.Text = "Vendor:";
|
||||
//
|
||||
// TXTType
|
||||
//
|
||||
this.TXTType.AutoSize = true;
|
||||
this.TXTType.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.TXTType.Location = new System.Drawing.Point(48, 24);
|
||||
this.TXTType.Name = "TXTType";
|
||||
this.TXTType.Size = new System.Drawing.Size(19, 13);
|
||||
this.TXTType.TabIndex = 53;
|
||||
this.TXTType.Text = "---";
|
||||
//
|
||||
// CHNcConnected
|
||||
//
|
||||
this.CHNcConnected.AutoCheck = false;
|
||||
this.CHNcConnected.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
this.CHNcConnected.Location = new System.Drawing.Point(340, 24);
|
||||
this.CHNcConnected.Name = "CHNcConnected";
|
||||
this.CHNcConnected.Size = new System.Drawing.Size(81, 20);
|
||||
this.CHNcConnected.TabIndex = 52;
|
||||
this.CHNcConnected.Text = "Connected";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(142, 24);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(63, 13);
|
||||
this.label2.TabIndex = 57;
|
||||
this.label2.Text = "Machine Id:";
|
||||
//
|
||||
// TXTMachId
|
||||
//
|
||||
this.TXTMachId.AutoSize = true;
|
||||
this.TXTMachId.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.TXTMachId.Location = new System.Drawing.Point(240, 24);
|
||||
this.TXTMachId.Name = "TXTMachId";
|
||||
this.TXTMachId.Size = new System.Drawing.Size(19, 13);
|
||||
this.TXTMachId.TabIndex = 56;
|
||||
this.TXTMachId.Text = "---";
|
||||
//
|
||||
// LISTThreadStatus
|
||||
//
|
||||
this.LISTThreadStatus.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.columnHeader1,
|
||||
this.columnHeader2});
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.LISTThreadStatus, 2);
|
||||
this.LISTThreadStatus.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.LISTThreadStatus.HideSelection = false;
|
||||
this.LISTThreadStatus.Location = new System.Drawing.Point(3, 3);
|
||||
this.LISTThreadStatus.Name = "LISTThreadStatus";
|
||||
this.LISTThreadStatus.Size = new System.Drawing.Size(438, 283);
|
||||
this.LISTThreadStatus.TabIndex = 59;
|
||||
this.LISTThreadStatus.UseCompatibleStateImageBehavior = false;
|
||||
this.LISTThreadStatus.View = System.Windows.Forms.View.Details;
|
||||
//
|
||||
// columnHeader1
|
||||
//
|
||||
this.columnHeader1.Text = "Thread Name";
|
||||
this.columnHeader1.Width = 328;
|
||||
//
|
||||
// columnHeader2
|
||||
//
|
||||
this.columnHeader2.Text = "Time";
|
||||
this.columnHeader2.Width = 78;
|
||||
//
|
||||
// menuStrip1
|
||||
//
|
||||
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.LISTThreadStatus, 2);
|
||||
this.LISTThreadStatus.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.LISTThreadStatus.HideSelection = false;
|
||||
this.LISTThreadStatus.Location = new System.Drawing.Point(3, 3);
|
||||
this.LISTThreadStatus.Name = "LISTThreadStatus";
|
||||
this.LISTThreadStatus.Size = new System.Drawing.Size(438, 468);
|
||||
this.LISTThreadStatus.TabIndex = 59;
|
||||
this.LISTThreadStatus.UseCompatibleStateImageBehavior = false;
|
||||
this.LISTThreadStatus.View = System.Windows.Forms.View.Details;
|
||||
//
|
||||
// columnHeader1
|
||||
//
|
||||
this.columnHeader1.Text = "Thread Name";
|
||||
this.columnHeader1.Width = 200;
|
||||
//
|
||||
// columnHeader2
|
||||
//
|
||||
this.columnHeader2.Text = "Time";
|
||||
this.columnHeader2.Width = 230;
|
||||
//
|
||||
// menuStrip1
|
||||
//
|
||||
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.menuToolStripMenuItem});
|
||||
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.menuStrip1.Name = "menuStrip1";
|
||||
this.menuStrip1.Size = new System.Drawing.Size(468, 24);
|
||||
this.menuStrip1.TabIndex = 59;
|
||||
this.menuStrip1.Text = "menuStrip1";
|
||||
//
|
||||
// menuToolStripMenuItem
|
||||
//
|
||||
this.menuToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.menuStrip1.Name = "menuStrip1";
|
||||
this.menuStrip1.Size = new System.Drawing.Size(468, 24);
|
||||
this.menuStrip1.TabIndex = 59;
|
||||
this.menuStrip1.Text = "menuStrip1";
|
||||
//
|
||||
// menuToolStripMenuItem
|
||||
//
|
||||
this.menuToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.closeCMSServerToolStripMenuItem,
|
||||
this.toolStripSeparator2,
|
||||
this.serviceToolStripMenuItem});
|
||||
this.menuToolStripMenuItem.Name = "menuToolStripMenuItem";
|
||||
this.menuToolStripMenuItem.Size = new System.Drawing.Size(50, 20);
|
||||
this.menuToolStripMenuItem.Text = "Menu";
|
||||
//
|
||||
// closeCMSServerToolStripMenuItem
|
||||
//
|
||||
this.closeCMSServerToolStripMenuItem.Name = "closeCMSServerToolStripMenuItem";
|
||||
this.closeCMSServerToolStripMenuItem.Size = new System.Drawing.Size(174, 22);
|
||||
this.closeCMSServerToolStripMenuItem.Text = "Close Active Server";
|
||||
this.closeCMSServerToolStripMenuItem.Click += new System.EventHandler(this.closeCMSServerToolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator2
|
||||
//
|
||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||
this.toolStripSeparator2.Size = new System.Drawing.Size(171, 6);
|
||||
//
|
||||
// serviceToolStripMenuItem
|
||||
//
|
||||
this.serviceToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.menuToolStripMenuItem.Name = "menuToolStripMenuItem";
|
||||
this.menuToolStripMenuItem.Size = new System.Drawing.Size(50, 20);
|
||||
this.menuToolStripMenuItem.Text = "Menu";
|
||||
//
|
||||
// closeCMSServerToolStripMenuItem
|
||||
//
|
||||
this.closeCMSServerToolStripMenuItem.Name = "closeCMSServerToolStripMenuItem";
|
||||
this.closeCMSServerToolStripMenuItem.Size = new System.Drawing.Size(174, 22);
|
||||
this.closeCMSServerToolStripMenuItem.Text = "Close Active Server";
|
||||
this.closeCMSServerToolStripMenuItem.Click += new System.EventHandler(this.closeCMSServerToolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator2
|
||||
//
|
||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||
this.toolStripSeparator2.Size = new System.Drawing.Size(171, 6);
|
||||
//
|
||||
// serviceToolStripMenuItem
|
||||
//
|
||||
this.serviceToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.passwordToolStripMenuItem1,
|
||||
this.goBackToStandardModeToolStripMenuItem1,
|
||||
this.toolStripSeparator1,
|
||||
this.resetSpindleHoursToolStripMenuItem1,
|
||||
this.resetCountersToolStripMenuItem1,
|
||||
this.resetMachineWorkingHoursToolStripMenuItem1});
|
||||
this.serviceToolStripMenuItem.Name = "serviceToolStripMenuItem";
|
||||
this.serviceToolStripMenuItem.Size = new System.Drawing.Size(174, 22);
|
||||
this.serviceToolStripMenuItem.Text = "Service";
|
||||
//
|
||||
// passwordToolStripMenuItem1
|
||||
//
|
||||
this.passwordToolStripMenuItem1.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Lock_icon;
|
||||
this.passwordToolStripMenuItem1.Name = "passwordToolStripMenuItem1";
|
||||
this.passwordToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||
this.passwordToolStripMenuItem1.Text = "Password";
|
||||
this.passwordToolStripMenuItem1.Click += new System.EventHandler(this.passwordToolStripMenuItem1_Click);
|
||||
//
|
||||
// goBackToStandardModeToolStripMenuItem1
|
||||
//
|
||||
this.goBackToStandardModeToolStripMenuItem1.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Unlock_icon;
|
||||
this.goBackToStandardModeToolStripMenuItem1.Name = "goBackToStandardModeToolStripMenuItem1";
|
||||
this.goBackToStandardModeToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||
this.goBackToStandardModeToolStripMenuItem1.Text = "Go back to standard mode";
|
||||
this.goBackToStandardModeToolStripMenuItem1.Visible = false;
|
||||
this.goBackToStandardModeToolStripMenuItem1.Click += new System.EventHandler(this.goBackToStandardModeToolStripMenuItem1_Click);
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(231, 6);
|
||||
this.toolStripSeparator1.Visible = false;
|
||||
//
|
||||
// resetSpindleHoursToolStripMenuItem1
|
||||
//
|
||||
this.resetSpindleHoursToolStripMenuItem1.Name = "resetSpindleHoursToolStripMenuItem1";
|
||||
this.resetSpindleHoursToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||
this.resetSpindleHoursToolStripMenuItem1.Text = "Reset Spindle Active Time";
|
||||
this.resetSpindleHoursToolStripMenuItem1.Visible = false;
|
||||
this.resetSpindleHoursToolStripMenuItem1.Click += new System.EventHandler(this.resetSpindleHoursToolStripMenuItem1_Click);
|
||||
//
|
||||
// resetCountersToolStripMenuItem1
|
||||
//
|
||||
this.resetCountersToolStripMenuItem1.Name = "resetCountersToolStripMenuItem1";
|
||||
this.resetCountersToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||
this.resetCountersToolStripMenuItem1.Text = "Reset CMS-Active Counters";
|
||||
this.resetCountersToolStripMenuItem1.Visible = false;
|
||||
this.resetCountersToolStripMenuItem1.Click += new System.EventHandler(this.resetCountersToolStripMenuItem1_Click);
|
||||
//
|
||||
// resetMachineWorkingHoursToolStripMenuItem1
|
||||
//
|
||||
this.resetMachineWorkingHoursToolStripMenuItem1.Name = "resetMachineWorkingHoursToolStripMenuItem1";
|
||||
this.resetMachineWorkingHoursToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||
this.resetMachineWorkingHoursToolStripMenuItem1.Text = "Reset Machine Working Hours";
|
||||
this.resetMachineWorkingHoursToolStripMenuItem1.Visible = false;
|
||||
this.resetMachineWorkingHoursToolStripMenuItem1.Click += new System.EventHandler(this.resetMachineWorkingHoursToolStripMenuItem1_Click);
|
||||
//
|
||||
// ServerControlWindow
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(468, 496);
|
||||
this.Controls.Add(this.menuStrip1);
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MainMenuStrip = this.menuStrip1;
|
||||
this.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "ServerControlWindow";
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ServerControlWindow_FormClosing);
|
||||
this.Load += new System.EventHandler(this.ServerControlWindow_Load);
|
||||
this.NotifyIconMenu.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.panel1.PerformLayout();
|
||||
this.menuStrip1.ResumeLayout(false);
|
||||
this.menuStrip1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
this.serviceToolStripMenuItem.Name = "serviceToolStripMenuItem";
|
||||
this.serviceToolStripMenuItem.Size = new System.Drawing.Size(174, 22);
|
||||
this.serviceToolStripMenuItem.Text = "Service";
|
||||
//
|
||||
// passwordToolStripMenuItem1
|
||||
//
|
||||
this.passwordToolStripMenuItem1.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Lock_icon;
|
||||
this.passwordToolStripMenuItem1.Name = "passwordToolStripMenuItem1";
|
||||
this.passwordToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||
this.passwordToolStripMenuItem1.Text = "Password";
|
||||
this.passwordToolStripMenuItem1.Click += new System.EventHandler(this.passwordToolStripMenuItem1_Click);
|
||||
//
|
||||
// goBackToStandardModeToolStripMenuItem1
|
||||
//
|
||||
this.goBackToStandardModeToolStripMenuItem1.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Unlock_icon;
|
||||
this.goBackToStandardModeToolStripMenuItem1.Name = "goBackToStandardModeToolStripMenuItem1";
|
||||
this.goBackToStandardModeToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||
this.goBackToStandardModeToolStripMenuItem1.Text = "Go back to standard mode";
|
||||
this.goBackToStandardModeToolStripMenuItem1.Visible = false;
|
||||
this.goBackToStandardModeToolStripMenuItem1.Click += new System.EventHandler(this.goBackToStandardModeToolStripMenuItem1_Click);
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(231, 6);
|
||||
this.toolStripSeparator1.Visible = false;
|
||||
//
|
||||
// resetSpindleHoursToolStripMenuItem1
|
||||
//
|
||||
this.resetSpindleHoursToolStripMenuItem1.Name = "resetSpindleHoursToolStripMenuItem1";
|
||||
this.resetSpindleHoursToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||
this.resetSpindleHoursToolStripMenuItem1.Text = "Reset Spindle Active Time";
|
||||
this.resetSpindleHoursToolStripMenuItem1.Visible = false;
|
||||
this.resetSpindleHoursToolStripMenuItem1.Click += new System.EventHandler(this.resetSpindleHoursToolStripMenuItem1_Click);
|
||||
//
|
||||
// resetCountersToolStripMenuItem1
|
||||
//
|
||||
this.resetCountersToolStripMenuItem1.Name = "resetCountersToolStripMenuItem1";
|
||||
this.resetCountersToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||
this.resetCountersToolStripMenuItem1.Text = "Reset CMS-Active Counters";
|
||||
this.resetCountersToolStripMenuItem1.Visible = false;
|
||||
this.resetCountersToolStripMenuItem1.Click += new System.EventHandler(this.resetCountersToolStripMenuItem1_Click);
|
||||
//
|
||||
// resetMachineWorkingHoursToolStripMenuItem1
|
||||
//
|
||||
this.resetMachineWorkingHoursToolStripMenuItem1.Name = "resetMachineWorkingHoursToolStripMenuItem1";
|
||||
this.resetMachineWorkingHoursToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||
this.resetMachineWorkingHoursToolStripMenuItem1.Text = "Reset Machine Working Hours";
|
||||
this.resetMachineWorkingHoursToolStripMenuItem1.Visible = false;
|
||||
this.resetMachineWorkingHoursToolStripMenuItem1.Click += new System.EventHandler(this.resetMachineWorkingHoursToolStripMenuItem1_Click);
|
||||
//
|
||||
// ServerControlWindow
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(468, 681);
|
||||
this.Controls.Add(this.menuStrip1);
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MainMenuStrip = this.menuStrip1;
|
||||
this.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "ServerControlWindow";
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ServerControlWindow_FormClosing);
|
||||
this.Load += new System.EventHandler(this.ServerControlWindow_Load);
|
||||
this.NotifyIconMenu.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.panel1.PerformLayout();
|
||||
this.menuStrip1.ResumeLayout(false);
|
||||
this.menuStrip1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -267,16 +267,18 @@ namespace Thermo.Active.UI
|
||||
if (!isUpdatingThreads)
|
||||
{
|
||||
isUpdatingThreads = true;
|
||||
Dictionary<String, String> Threads = new Dictionary<String, String>((Dictionary<String, String>)a);
|
||||
//Begin the update
|
||||
LISTThreadStatus.BeginUpdate();
|
||||
//clear the List
|
||||
LISTThreadStatus.Items.Clear();
|
||||
//Add all items
|
||||
foreach (KeyValuePair<string, String> Thr in Threads)
|
||||
Dictionary<String, String> myThreads = new Dictionary<String, String>((Dictionary<String, String>)a);
|
||||
//Begin the update
|
||||
LISTThreadStatus.BeginUpdate();
|
||||
//clear the List
|
||||
LISTThreadStatus.Items.Clear();
|
||||
//Add all items
|
||||
foreach (KeyValuePair<string, String> Thr in myThreads)
|
||||
{
|
||||
LISTThreadStatus.Items.Add(new ListViewItem(new String[]{Thr.Key,Thr.Value }));
|
||||
//End the update
|
||||
LISTThreadStatus.EndUpdate();
|
||||
}
|
||||
//End the update
|
||||
LISTThreadStatus.EndUpdate();
|
||||
isUpdatingThreads = false;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -38,10 +38,6 @@
|
||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="S7.Net" publicKeyToken="d5812d469e84c693" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-0.8.1.0" newVersion="0.8.1.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -47,6 +47,10 @@ namespace Thermo.Active.Utils
|
||||
{
|
||||
Log.Info(message);
|
||||
}
|
||||
public static void LogDebug(string message)
|
||||
{
|
||||
Log.Debug(message);
|
||||
}
|
||||
|
||||
public static void LogWarning(string message)
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Automatically generated by nicola.carminati: 2021-02-25 -->
|
||||
<!-- Automatically generated by nicola.carminati: 2021-03-10 -->
|
||||
<root>
|
||||
<language_it>Italiano</language_it>
|
||||
<header_maintainance_request>Effettuare manutenzione</header_maintainance_request>
|
||||
@@ -358,8 +358,8 @@
|
||||
<underthehood_label_val>Valore</underthehood_label_val>
|
||||
<underthehood_label_force>Forzatura</underthehood_label_force>
|
||||
<underthehood_label_io>Gestione IO</underthehood_label_io>
|
||||
<underthehood_label_loga>Log - Lastre</underthehood_label_loga>
|
||||
<underthehood_label_logm>Log - Ciclo automatico</underthehood_label_logm>
|
||||
<underthehood_label_loga>Log - Ciclo automatico</underthehood_label_loga>
|
||||
<underthehood_label_logm>Log - Lastre</underthehood_label_logm>
|
||||
<underthehood_label_assi>Gestione assi</underthehood_label_assi>
|
||||
<underthehood_label_riscaldi>Gestione riscaldi</underthehood_label_riscaldi>
|
||||
<underthehood_btn_details>Dettagli</underthehood_btn_details>
|
||||
@@ -368,6 +368,68 @@
|
||||
<underthehood_label_channel>Canale</underthehood_label_channel>
|
||||
<underthehood_label_board>Board</underthehood_label_board>
|
||||
<underthehood_label_currenta>Corrente [A]</underthehood_label_currenta>
|
||||
<underthehood_label_currentp>Corrente [%%]</underthehood_label_currentp>
|
||||
<underthehood_label_currentp>Power [%%]</underthehood_label_currentp>
|
||||
<underthehood_label_status>Stato</underthehood_label_status>
|
||||
<underthehood_label_date>Data</underthehood_label_date>
|
||||
<underthehood_label_message>Messaggio</underthehood_label_message>
|
||||
<underthehood_btn_zero>Set Zero</underthehood_btn_zero>
|
||||
<underthehood_label_axis_enabled>Abilitato</underthehood_label_axis_enabled>
|
||||
<underthehood_label_axes>Asse</underthehood_label_axes>
|
||||
<underthehood_label_position>Posizione</underthehood_label_position>
|
||||
<underthehood_label_speed>Velocità</underthehood_label_speed>
|
||||
<underthehood_label_torque>Carico</underthehood_label_torque>
|
||||
<underthehood_label_errorcode>Cod. errore</underthehood_label_errorcode>
|
||||
<underthehood_label_motion>Fase mot.</underthehood_label_motion>
|
||||
<underthehood_btn_align>Allinea</underthehood_btn_align>
|
||||
<underthehood_btn_probe>Set Probe</underthehood_btn_probe>
|
||||
<underthehood_btn_setslaves>Set posizione slave</underthehood_btn_setslaves>
|
||||
<cmsconnect_info_lbl_title>Gestione CMS-Connect</cmsconnect_info_lbl_title>
|
||||
<cmsconnect_info_menu_conn_status>Stato connessione</cmsconnect_info_menu_conn_status>
|
||||
<cmsconnect_info_menu_networkconfig>Configurazione rete</cmsconnect_info_menu_networkconfig>
|
||||
<cmsconnect_info_menu_proxyconfig>Configurazione s. proxy</cmsconnect_info_menu_proxyconfig>
|
||||
<cmsconnect_info_menu_activation>Attivazione</cmsconnect_info_menu_activation>
|
||||
<cmsconnect_info_menu_messages>Messaggi</cmsconnect_info_menu_messages>
|
||||
<cmsconnect_info_menu_reboot>Riavvio</cmsconnect_info_menu_reboot>
|
||||
<cmsconnect_info_lbl_url>Url</cmsconnect_info_lbl_url>
|
||||
<cmsconnect_info_lbl_port>Porta</cmsconnect_info_lbl_port>
|
||||
<cmsconnect_info_btn_run_conn_test>Avvia test</cmsconnect_info_btn_run_conn_test>
|
||||
<star_keyboard_softkeys>Softkey in console</star_keyboard_softkeys>
|
||||
<footer_tooltip_under_hood>Sotto il cofano</footer_tooltip_under_hood>
|
||||
<underthehood_btn_move>Muovi</underthehood_btn_move>
|
||||
<modal_confirm_mode_manual>Confermi di voler passare alla modalità manuale?</modal_confirm_mode_manual>
|
||||
<cmsconnect_info_lbl_dhcp>Dhcp</cmsconnect_info_lbl_dhcp>
|
||||
<cmsconnect_info_lbl_netmask>Netmask</cmsconnect_info_lbl_netmask>
|
||||
<cmsconnect_info_lbl_dgateway>Default Gateway</cmsconnect_info_lbl_dgateway>
|
||||
<cmsconnect_info_lbl_dns>Server Dns</cmsconnect_info_lbl_dns>
|
||||
<cmsconnect_info_lbl_pref>Prefissi</cmsconnect_info_lbl_pref>
|
||||
<cmsconnect_info_lbl_pref_placeholder>aggiungi un prefisso in ogni linea</cmsconnect_info_lbl_pref_placeholder>
|
||||
<cmsconnect_info_lbl_proxy>Proxy</cmsconnect_info_lbl_proxy>
|
||||
<cmsconnect_info_lbl_ip>Ip</cmsconnect_info_lbl_ip>
|
||||
<cmsconnect_info_lbl_username>Username</cmsconnect_info_lbl_username>
|
||||
<cmsconnect_info_lbl_password>Password</cmsconnect_info_lbl_password>
|
||||
<cmsconnect_info_lbl_proxy_filters>Filtri proxy</cmsconnect_info_lbl_proxy_filters>
|
||||
<cmsconnect_info_lbl_dns_placeholder>aggiungi un indirizzo in ogni linea</cmsconnect_info_lbl_dns_placeholder>
|
||||
<cmsconnect_info_btn_load>Carica</cmsconnect_info_btn_load>
|
||||
<cmsconnect_info_btn_save>Salva</cmsconnect_info_btn_save>
|
||||
<connect_qrcode_activation_title>Scansiona il codice QR</connect_qrcode_activation_title>
|
||||
<connect_link_activation_title>E inserisci il codice:</connect_link_activation_title>
|
||||
<messages_lbl_create_message>Messaggio</messages_lbl_create_message>
|
||||
<cmsconnect_info_messages_duration>Durata</cmsconnect_info_messages_duration>
|
||||
<cmsconnect_info_messages_department>Dipartimento</cmsconnect_info_messages_department>
|
||||
<cmsconnect_info_messages_department_maintenance>Manutenzione</cmsconnect_info_messages_department_maintenance>
|
||||
<cmsconnect_info_messages_department_production>Produzione</cmsconnect_info_messages_department_production>
|
||||
<cmsconnect_info_btn_send_message>Invia messaggio</cmsconnect_info_btn_send_message>
|
||||
<cmsconnect_info_btn_reboot>Riavvia</cmsconnect_info_btn_reboot>
|
||||
<modal_axis_info>Info Asse</modal_axis_info>
|
||||
<axis_info_id>Id:</axis_info_id>
|
||||
<axis_info_name>Nome:</axis_info_name>
|
||||
<axis_info_torque>In coppia:</axis_info_torque>
|
||||
<axis_info_gantry>Gantry:</axis_info_gantry>
|
||||
<axis_info_moving>In movimento:</axis_info_moving>
|
||||
<axis_info_zero>Azzerato:</axis_info_zero>
|
||||
<axis_info_position>In posizione:</axis_info_position>
|
||||
<axis_info_error>In errore:</axis_info_error>
|
||||
<axis_info_brakealm>Allarme test freno:</axis_info_brakealm>
|
||||
<bitselect_select_none>Nessuno</bitselect_select_none>
|
||||
<bitselect_select_all>Tutti</bitselect_select_all>
|
||||
</root>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Automatically generated by nicola.carminati: 2021-02-25 -->
|
||||
<!-- Automatically generated by nicola.carminati: 2021-03-10 -->
|
||||
<root>
|
||||
<language_it>English</language_it>
|
||||
<header_maintainance_request>Maintenance request</header_maintainance_request>
|
||||
@@ -358,8 +358,8 @@
|
||||
<underthehood_label_val>Value</underthehood_label_val>
|
||||
<underthehood_label_force>Force</underthehood_label_force>
|
||||
<underthehood_label_io>IO Manager</underthehood_label_io>
|
||||
<underthehood_label_loga>Log - Sheets</underthehood_label_loga>
|
||||
<underthehood_label_logm>Log - Automatic cycle</underthehood_label_logm>
|
||||
<underthehood_label_loga>Log - Automatic cycle</underthehood_label_loga>
|
||||
<underthehood_label_logm>Log - Sheets</underthehood_label_logm>
|
||||
<underthehood_label_assi>Axes Manager</underthehood_label_assi>
|
||||
<underthehood_label_riscaldi>Warmers Manager</underthehood_label_riscaldi>
|
||||
<underthehood_btn_details>Details</underthehood_btn_details>
|
||||
@@ -368,6 +368,68 @@
|
||||
<underthehood_label_channel>Channel</underthehood_label_channel>
|
||||
<underthehood_label_board>Board</underthehood_label_board>
|
||||
<underthehood_label_currenta>Current [A]</underthehood_label_currenta>
|
||||
<underthehood_label_currentp>Current [%%]</underthehood_label_currentp>
|
||||
<underthehood_label_currentp>Power [%%]</underthehood_label_currentp>
|
||||
<underthehood_label_status>Status</underthehood_label_status>
|
||||
<underthehood_label_date>Date</underthehood_label_date>
|
||||
<underthehood_label_message>Message</underthehood_label_message>
|
||||
<underthehood_btn_zero>Zero</underthehood_btn_zero>
|
||||
<underthehood_label_axis_enabled>Enabled</underthehood_label_axis_enabled>
|
||||
<underthehood_label_axes>Axes</underthehood_label_axes>
|
||||
<underthehood_label_position>Position</underthehood_label_position>
|
||||
<underthehood_label_speed>Speed</underthehood_label_speed>
|
||||
<underthehood_label_torque>Torque</underthehood_label_torque>
|
||||
<underthehood_label_errorcode>Error Code</underthehood_label_errorcode>
|
||||
<underthehood_label_motion>Motion Ph.</underthehood_label_motion>
|
||||
<underthehood_btn_align>Align</underthehood_btn_align>
|
||||
<underthehood_btn_probe>Probe</underthehood_btn_probe>
|
||||
<underthehood_btn_setslaves>Set slaves position</underthehood_btn_setslaves>
|
||||
<cmsconnect_info_lbl_title>CMS-Connect Manager</cmsconnect_info_lbl_title>
|
||||
<cmsconnect_info_menu_conn_status>Connection status</cmsconnect_info_menu_conn_status>
|
||||
<cmsconnect_info_menu_networkconfig>Network configuration</cmsconnect_info_menu_networkconfig>
|
||||
<cmsconnect_info_menu_proxyconfig>Proxy configuration</cmsconnect_info_menu_proxyconfig>
|
||||
<cmsconnect_info_menu_activation>Activation</cmsconnect_info_menu_activation>
|
||||
<cmsconnect_info_menu_messages>Messages</cmsconnect_info_menu_messages>
|
||||
<cmsconnect_info_menu_reboot>Reboot</cmsconnect_info_menu_reboot>
|
||||
<cmsconnect_info_lbl_url>Url</cmsconnect_info_lbl_url>
|
||||
<cmsconnect_info_lbl_port>Port</cmsconnect_info_lbl_port>
|
||||
<cmsconnect_info_btn_run_conn_test>Run test</cmsconnect_info_btn_run_conn_test>
|
||||
<star_keyboard_softkeys>Softkey in console</star_keyboard_softkeys>
|
||||
<footer_tooltip_under_hood>Unther the Hood</footer_tooltip_under_hood>
|
||||
<underthehood_btn_move>Move</underthehood_btn_move>
|
||||
<modal_confirm_mode_manual>Are you sure you want to switch to manual mode?</modal_confirm_mode_manual>
|
||||
<cmsconnect_info_lbl_dhcp>Dhcp</cmsconnect_info_lbl_dhcp>
|
||||
<cmsconnect_info_lbl_netmask>Netmask</cmsconnect_info_lbl_netmask>
|
||||
<cmsconnect_info_lbl_dgateway>Default Gateway</cmsconnect_info_lbl_dgateway>
|
||||
<cmsconnect_info_lbl_dns>Dns</cmsconnect_info_lbl_dns>
|
||||
<cmsconnect_info_lbl_pref>Prefixes</cmsconnect_info_lbl_pref>
|
||||
<cmsconnect_info_lbl_pref_placeholder>add a prefix in a new line</cmsconnect_info_lbl_pref_placeholder>
|
||||
<cmsconnect_info_lbl_proxy>Proxy</cmsconnect_info_lbl_proxy>
|
||||
<cmsconnect_info_lbl_ip>Ip</cmsconnect_info_lbl_ip>
|
||||
<cmsconnect_info_lbl_username>Username</cmsconnect_info_lbl_username>
|
||||
<cmsconnect_info_lbl_password>Password</cmsconnect_info_lbl_password>
|
||||
<cmsconnect_info_lbl_proxy_filters>Proxy filters</cmsconnect_info_lbl_proxy_filters>
|
||||
<cmsconnect_info_lbl_dns_placeholder>add an address in a new line</cmsconnect_info_lbl_dns_placeholder>
|
||||
<cmsconnect_info_btn_load>Load</cmsconnect_info_btn_load>
|
||||
<cmsconnect_info_btn_save>Save</cmsconnect_info_btn_save>
|
||||
<connect_qrcode_activation_title>Scan the QRCode</connect_qrcode_activation_title>
|
||||
<connect_link_activation_title>and type the code:</connect_link_activation_title>
|
||||
<messages_lbl_create_message>Message</messages_lbl_create_message>
|
||||
<cmsconnect_info_messages_duration>Duration</cmsconnect_info_messages_duration>
|
||||
<cmsconnect_info_messages_department>Department</cmsconnect_info_messages_department>
|
||||
<cmsconnect_info_messages_department_maintenance>Maintenance</cmsconnect_info_messages_department_maintenance>
|
||||
<cmsconnect_info_messages_department_production>Production</cmsconnect_info_messages_department_production>
|
||||
<cmsconnect_info_btn_send_message>Send Message</cmsconnect_info_btn_send_message>
|
||||
<cmsconnect_info_btn_reboot>Reboot</cmsconnect_info_btn_reboot>
|
||||
<modal_axis_info>Axis Info</modal_axis_info>
|
||||
<axis_info_id>Id:</axis_info_id>
|
||||
<axis_info_name>Name:</axis_info_name>
|
||||
<axis_info_torque>In Torque:</axis_info_torque>
|
||||
<axis_info_gantry>Gantry:</axis_info_gantry>
|
||||
<axis_info_moving>Is Moving:</axis_info_moving>
|
||||
<axis_info_zero>Zeroed:</axis_info_zero>
|
||||
<axis_info_position>In Position:</axis_info_position>
|
||||
<axis_info_error>In Error:</axis_info_error>
|
||||
<axis_info_brakealm>Brake Test Alarm:</axis_info_brakealm>
|
||||
<bitselect_select_none>None</bitselect_select_none>
|
||||
<bitselect_select_all>All</bitselect_select_all>
|
||||
</root>
|
||||
@@ -15,7 +15,7 @@
|
||||
<add key="ClientSettingsProvider.ServiceUri" value="" />
|
||||
<add key="ServerServiceName" value="MariaDB" />
|
||||
<add key="nMaxParamWrite" value="5" />
|
||||
<add key="delayParamWrite" value="5" />
|
||||
<add key="delayParamWrite" value="10" />
|
||||
<add key="ewmaPar100" value="40" />
|
||||
<add key="flirSwapXY" value="true" />
|
||||
<add key="cacheWarmers" value="false" />
|
||||
@@ -115,10 +115,6 @@
|
||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="S7.Net" publicKeyToken="d5812d469e84c693" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-0.8.1.0" newVersion="0.8.1.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<connectionStrings>
|
||||
|
||||
@@ -8,6 +8,7 @@ using System.Security.Principal;
|
||||
using Thermo.Active.Config;
|
||||
using Thermo.Active.Database.Controllers;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Utils;
|
||||
using static Thermo.Active.Config.ServerConfig;
|
||||
using static Thermo.Active.Listeners.SignalRStaticObjects;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
@@ -28,7 +29,11 @@ namespace Thermo.Active.Attributes
|
||||
// Find user session on this machine
|
||||
SessionModel session = sessionsController.FindSessionByToken(token);
|
||||
if (session == null)
|
||||
{
|
||||
ThermoActiveLogger.LogError($"SignalRAuthorizeAttribute | AuthorizeHubConnection | session == null");
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return base.AuthorizeHubConnection(hubDescriptor, request);
|
||||
@@ -39,11 +44,16 @@ namespace Thermo.Active.Attributes
|
||||
var connectionId = hubIncomingInvokerContext.Hub.Context.ConnectionId;
|
||||
var request = hubIncomingInvokerContext.Hub.Context.Request;
|
||||
var token = request.QueryString.Get("Authorization");
|
||||
|
||||
if (!string.IsNullOrEmpty(token))
|
||||
{
|
||||
// check authorization
|
||||
if (!CheckAuthorization(FunctionAccess, token, out int machineId, out int userId))
|
||||
{
|
||||
ThermoActiveLogger.LogError($"SignalRAuthorizeAttribute | AuthorizeHubMethodInvocation | CheckAuthorization == false");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
var claims = new ClaimsIdentity(AUTHENTICATION_TYPE);
|
||||
claims.AddClaim(new Claim(USER_ID_KEY, userId.ToString()));
|
||||
@@ -66,11 +76,17 @@ namespace Thermo.Active.Attributes
|
||||
// Find user session on this machine
|
||||
SessionModel session = sessionsController.FindSessionByToken(token);
|
||||
if (session == null)
|
||||
{
|
||||
ThermoActiveLogger.LogError($"SignalRAuthorizeAttribute | CheckAuthorization | session == null");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check if the machine is the same where the user logged in
|
||||
if (session.MachineUser.MachineId != MachineConfig.MachineId)
|
||||
{
|
||||
ThermoActiveLogger.LogError($"SignalRAuthorizeAttribute | CheckAuthorization | session.MachineUser.MachineId != MachineConfig.MachineId | " + session.MachineUser.MachineId + "," + MachineConfig.MachineId);
|
||||
return false;
|
||||
}
|
||||
|
||||
machineId = session.MachineUser.MachineId;
|
||||
userId = session.MachineUser.UserId;
|
||||
@@ -91,12 +107,18 @@ namespace Thermo.Active.Attributes
|
||||
if (Action == ACTIONS.READ)
|
||||
{ // Check read permissions
|
||||
if (functionAccess.ReadLevelMin > machineUser.Role.Level)
|
||||
{
|
||||
ThermoActiveLogger.LogError($"SignalRAuthorizeAttribute | CheckAuthorization | functionAccess.ReadLevelMin > machineUser.Role.Level | " + functionAccess.ReadLevelMin + "," + machineUser.Role.Level);
|
||||
return false; // Not authorized
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Check write permissions
|
||||
if (functionAccess.WriteLevelMin > machineUser.Role.Level)
|
||||
{
|
||||
ThermoActiveLogger.LogError($"SignalRAuthorizeAttribute | CheckAuthorization | functionAccess.WriteLevelMin > machineUser.Role.Level | " + functionAccess.WriteLevelMin + "," + machineUser.Role.Level);
|
||||
return false; // Not authorized
|
||||
}
|
||||
}
|
||||
|
||||
// Check if PLC bit exists
|
||||
@@ -105,13 +127,21 @@ namespace Thermo.Active.Attributes
|
||||
// Check if functionality is enabled by PLC
|
||||
var functionalityIsEnabled = LastRuntimeFunctionality.Where(x => x.Name == functionName).FirstOrDefault();
|
||||
if (functionalityIsEnabled == null || functionalityIsEnabled.Enabled == false)
|
||||
return false;
|
||||
{
|
||||
ThermoActiveLogger.LogError($"SignalRAuthorizeAttribute | CheckAuthorization | functionalityIsEnabled == null || functionalityIsEnabled.Enabled == false | " + functionalityIsEnabled + "," + functionalityIsEnabled.Enabled);
|
||||
return false; // Not authorized
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ThermoActiveLogger.LogError($"SignalRAuthorizeAttribute | CheckAuthorization | functionAccess != null && ServerConfigController.CheckAreaStatus(functionAccess.Area) | " + functionAccess + "," + functionAccess.Area);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Authorized
|
||||
ThermoActiveLogger.LogInfo($"SignalRAuthorizeAttribute | CheckAuthorization | Authorized | ");
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,12 +22,14 @@ using static Thermo.Active.Model.Constants;
|
||||
namespace Thermo.Active.Controllers.WebApi
|
||||
{
|
||||
[RoutePrefix("api/maintenance_manager")]
|
||||
public class ApiMaintenanceController : ApiController
|
||||
public class ApiMaintenanceController : aBaseApiController // ApiController
|
||||
{
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Oggetto adapter condiviso da WebAPI
|
||||
/// </summary>
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
#endif
|
||||
|
||||
[Route("maintenances"), HttpGet]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.READ)]
|
||||
|
||||
@@ -10,7 +10,7 @@ using static Thermo.Active.Model.Constants;
|
||||
namespace Thermo.Active.Controllers.WebApi
|
||||
{
|
||||
[RoutePrefix("api/authorization")]
|
||||
public class AuthorizationController : ApiController
|
||||
public class AuthorizationController : ApiController
|
||||
{
|
||||
[Route("functions"), HttpGet]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.GENERAL, Action = ACTIONS.READ)]
|
||||
|
||||
@@ -13,12 +13,14 @@ using static Thermo.Active.Model.Constants;
|
||||
namespace Thermo.Active.Controllers.WebApi
|
||||
{
|
||||
[RoutePrefix("api/user_softkey")]
|
||||
public class FavoriteUserSoftkeyController : ApiController
|
||||
public class FavoriteUserSoftkeyController : aBaseApiController // ApiController
|
||||
{
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Oggetto adapter condiviso da WebAPI
|
||||
/// </summary>
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
#endif
|
||||
|
||||
|
||||
[Route("favorite"), HttpGet]
|
||||
|
||||
@@ -12,12 +12,14 @@ using static Thermo.Active.Utils.LanguageController;
|
||||
namespace Thermo.Active.Controllers.WebApi
|
||||
{
|
||||
[RoutePrefix("api/language")]
|
||||
public class LanguageController : ApiController
|
||||
public class LanguageController : aBaseApiController // ApiController
|
||||
{
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Oggetto adapter condiviso da WebAPI
|
||||
/// </summary>
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
#endif
|
||||
|
||||
[Route("languages"), HttpGet]
|
||||
public IHttpActionResult GetLanguageList()
|
||||
|
||||
@@ -8,12 +8,14 @@ using Thermo.Active.Utils;
|
||||
namespace Thermo.Active.Controllers.WebApi
|
||||
{
|
||||
[RoutePrefix("api/ModBlock")]
|
||||
public class ModulesController : ApiController
|
||||
public class ModulesController : aBaseApiController // ApiController
|
||||
{
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Oggetto adapter condiviso da WebAPI
|
||||
/// </summary>
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
#endif
|
||||
|
||||
[Route("current"), HttpGet]
|
||||
public IHttpActionResult GetCurrentModules()
|
||||
|
||||
@@ -8,13 +8,15 @@ using static Thermo.Active.Model.Constants;
|
||||
namespace Thermo.Active.Controllers.WebApi
|
||||
{
|
||||
[RoutePrefix("api/nc")]
|
||||
public class NcApiController : ApiController
|
||||
public class NcApiController : aBaseApiController // ApiController
|
||||
{
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Oggetto adapter condiviso da WebAPI
|
||||
/// </summary>
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
|
||||
#endif
|
||||
[Route("generic_data"), HttpGet]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.NC_DATA, Action = ACTIONS.READ)]
|
||||
public IHttpActionResult GetNcGenericData()
|
||||
|
||||
@@ -11,13 +11,16 @@ using static Thermo.Active.Model.Constants;
|
||||
namespace Thermo.Active.Controllers.WebApi
|
||||
{
|
||||
[RoutePrefix("api/prod")]
|
||||
public class ProdController : ApiController
|
||||
public class ProdController : aBaseApiController //ApiController
|
||||
{
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Oggetto adapter condiviso da WebAPI
|
||||
/// </summary>
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Request mode SETUP
|
||||
/// </summary>
|
||||
|
||||
@@ -26,12 +26,14 @@ using static Thermo.Active.Model.Constants;
|
||||
namespace Thermo.Active.Controllers.WebApi
|
||||
{
|
||||
[RoutePrefix("api/recipe")]
|
||||
public class RecipeController : ApiController
|
||||
public class RecipeController : aBaseApiController // ApiController
|
||||
{
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Oggetto adapter condiviso da WebAPI
|
||||
/// </summary>
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
#endif
|
||||
|
||||
[Route("overview"), HttpGet]
|
||||
public IHttpActionResult GetOverview()
|
||||
@@ -100,7 +102,8 @@ namespace Thermo.Active.Controllers.WebApi
|
||||
}
|
||||
|
||||
// read recipe!
|
||||
libraryError = ncAdapter.ReadFullRecipe(out Dictionary<string, DTORecipeParam> prevRecipe);
|
||||
//libraryError = ncAdapter.ReadFullRecipe(out Dictionary<string, DTORecipeParam> prevRecipe);
|
||||
libraryError = ncAdapter.ReadRecipeData(true, true, out Dictionary<string, DTORecipeParam> prevRecipe);
|
||||
if (libraryError.IsError())
|
||||
{
|
||||
ThermoActiveLogger.LogError($"GetRecipeOverview error | {libraryError.exception}");
|
||||
@@ -698,6 +701,7 @@ namespace Thermo.Active.Controllers.WebApi
|
||||
}
|
||||
|
||||
|
||||
|
||||
// copy data to PLC
|
||||
checkError = ncAdapter.ReadFullRecipe(out Dictionary<string, DTORecipeParam> prevRecipe);
|
||||
if (checkError.IsError())
|
||||
|
||||
@@ -13,12 +13,14 @@ namespace Thermo.Active.Controllers.WebApi
|
||||
{
|
||||
|
||||
[RoutePrefix("api/scada")]
|
||||
public class ScadaController : ApiController
|
||||
public class ScadaController : aBaseApiController // ApiController
|
||||
{
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Oggetto adapter condiviso da WebAPI
|
||||
/// </summary>
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
#endif
|
||||
|
||||
[Route("list"), HttpGet]
|
||||
public IHttpActionResult GetScadaList()
|
||||
|
||||
@@ -8,12 +8,14 @@ using Thermo.Active.Utils;
|
||||
namespace Thermo.Active.Controllers.WebApi
|
||||
{
|
||||
[RoutePrefix("api/starred_softkey")]
|
||||
public class StarredUserSoftKeyController : ApiController
|
||||
public class StarredUserSoftKeyController : aBaseApiController // ApiController
|
||||
{
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Oggetto adapter condiviso da WebAPI
|
||||
/// </summary>
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
#endif
|
||||
|
||||
[Route("get"), HttpGet]
|
||||
public IHttpActionResult GetStarredUserSoftkey()
|
||||
|
||||
@@ -15,6 +15,7 @@ using System.Windows.Media.Animation;
|
||||
using TeamDev.SDK.MVVM;
|
||||
using Thermo.Active.Config;
|
||||
using Thermo.Active.Database.Controllers;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using Thermo.Active.Model.DTOModels.ThIO;
|
||||
using Thermo.Active.Model.DTOModels.ThRecipe;
|
||||
@@ -28,12 +29,15 @@ using static Thermo.Active.Model.Constants;
|
||||
namespace Thermo.Active.Controllers.WebApi
|
||||
{
|
||||
[RoutePrefix("api/underthehood")]
|
||||
public class UnderTheHoodController : ApiController
|
||||
public class UnderTheHoodController : aBaseApiController // ApiController
|
||||
{
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Oggetto adapter condiviso da WebAPI
|
||||
/// </summary>
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
#endif
|
||||
|
||||
|
||||
[ResponseType(typeof(DTOCycleLog))]
|
||||
[Route("CycleLogRefresh"), HttpGet]
|
||||
@@ -71,7 +75,6 @@ namespace Thermo.Active.Controllers.WebApi
|
||||
|
||||
// recupero dati paginati
|
||||
libraryError = ncAdapter.GetCycleLog(from, to, out currCycleLog);
|
||||
|
||||
if (libraryError.IsError())
|
||||
{
|
||||
ThermoActiveLogger.LogError($"GetCycleLog error | {libraryError.exception}");
|
||||
@@ -81,7 +84,34 @@ namespace Thermo.Active.Controllers.WebApi
|
||||
return Ok(currCycleLog);
|
||||
}
|
||||
|
||||
[ResponseType(typeof(DTOChannelsIO))]
|
||||
[ResponseType(typeof(bool))]
|
||||
[Route("GetAxesAdvMode"), HttpGet]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)]
|
||||
public IHttpActionResult GetAxesAdvMode()
|
||||
{
|
||||
// Try connection
|
||||
CmsError libraryError = ncAdapter.Connect();
|
||||
if (libraryError.IsError())
|
||||
{
|
||||
ThermoActiveLogger.LogError($"NC Not connected! | ForceChAO | {libraryError.exception}");
|
||||
return InternalServerError();
|
||||
}
|
||||
|
||||
// chiamo scrittura
|
||||
bool advMode = false;
|
||||
libraryError = ncAdapter.GetAxesAdvMode(out advMode);
|
||||
if (libraryError.IsError())
|
||||
{
|
||||
ThermoActiveLogger.LogError($"GetCycleLog error | {libraryError.exception}");
|
||||
return BadRequest(libraryError.localizationKey);
|
||||
}
|
||||
|
||||
// ritorno solo fatto!
|
||||
return Ok(advMode);
|
||||
|
||||
}
|
||||
|
||||
[ResponseType(typeof(DTOChannelsIO))]
|
||||
[Route("channels_io"), HttpGet]
|
||||
public IHttpActionResult GetChannelsIO()
|
||||
{
|
||||
@@ -309,6 +339,25 @@ namespace Thermo.Active.Controllers.WebApi
|
||||
}
|
||||
}
|
||||
|
||||
[Route("SetAxesAdvMode"), HttpPut]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)]
|
||||
public IHttpActionResult SetAxesAdvMode(bool value)
|
||||
{
|
||||
// Try connection
|
||||
CmsError libraryError = ncAdapter.Connect();
|
||||
if (libraryError.IsError())
|
||||
{
|
||||
ThermoActiveLogger.LogError($"NC Not connected! | ForceChAO | {libraryError.exception}");
|
||||
return InternalServerError();
|
||||
}
|
||||
|
||||
// chiamo scrittura
|
||||
ncAdapter.SetAxesAdvMode(value);
|
||||
|
||||
// ritorno solo fatto!
|
||||
return Ok();
|
||||
}
|
||||
|
||||
[Route("io_sample_fast"), HttpPut]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)]
|
||||
public IHttpActionResult SetFastSample(bool value)
|
||||
@@ -319,5 +368,41 @@ namespace Thermo.Active.Controllers.WebApi
|
||||
// ritorno solo fatto!
|
||||
return Ok(expires);
|
||||
}
|
||||
|
||||
|
||||
[ResponseType(typeof(List<HistorySheetModel>))]
|
||||
[Route("SheetHistory"), HttpGet]
|
||||
public IHttpActionResult GetSheetHistory()
|
||||
{
|
||||
using (HistorySheetsController hsc = new HistorySheetsController())
|
||||
{
|
||||
List<HistorySheetModel> models = hsc.GetData();
|
||||
return Ok(models);
|
||||
}
|
||||
}
|
||||
|
||||
[ResponseType(typeof(List<HistorySheetModel>))]
|
||||
[Route("SheetHistoryFiltered"), HttpGet]
|
||||
public IHttpActionResult GetSheetHistoryFiltered(int start, int number)
|
||||
{
|
||||
using (HistorySheetsController hsc = new HistorySheetsController())
|
||||
{
|
||||
|
||||
List<HistorySheetModel> models = hsc.GetData(start, number);
|
||||
return Ok(models);
|
||||
}
|
||||
}
|
||||
|
||||
[ResponseType(typeof(int))]
|
||||
[Route("SheetHistoryCount"), HttpGet]
|
||||
public IHttpActionResult GetSheetHistoryCount()
|
||||
{
|
||||
using (HistorySheetsController hsc = new HistorySheetsController())
|
||||
{
|
||||
return Ok(hsc.count());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -18,14 +18,16 @@ using System.Linq;
|
||||
namespace Thermo.Active.Controllers.WebApi
|
||||
{
|
||||
[RoutePrefix("api/warmers")]
|
||||
public class WarmersController : ApiController
|
||||
public class WarmersController : aBaseApiController // ApiController
|
||||
{
|
||||
#region Protected Fields
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Oggetto adapter condiviso da WebAPI
|
||||
/// </summary>
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
#endif
|
||||
|
||||
protected static Dictionary<int, ThermoPoint> MeasurePoints = new Dictionary<int, ThermoPoint>();
|
||||
|
||||
@@ -589,6 +591,19 @@ namespace Thermo.Active.Controllers.WebApi
|
||||
return NotFound();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///Take photo Thermocam
|
||||
/// </summary>
|
||||
/// <param name="channelsTemp"></param>
|
||||
/// <returns></returns>
|
||||
[Route("takeTcamImage"), HttpPut]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.RECIPE_MANAGER, Action = ACTIONS.READ)]
|
||||
public IHttpActionResult TakeTcamImage()
|
||||
{
|
||||
MessageServices.Current.Publish(TAKE_SNAPSHOT_THERMO);
|
||||
return Ok();
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web.Http;
|
||||
using Thermo.Active.NC;
|
||||
|
||||
namespace Thermo.Active.Controllers.WebApi
|
||||
{
|
||||
public class aBaseApiController : ApiController
|
||||
{
|
||||
/// <summary>
|
||||
/// Oggetto adapter condiviso da WebAPI
|
||||
/// </summary>
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
|
||||
#if false
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
if (ncAdapter != null)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
@@ -50,7 +50,13 @@ namespace Thermo.Active.Listeners.Database
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void cleanHistorySheets()
|
||||
{
|
||||
using (HistorySheetsController HSC = new HistorySheetsController())
|
||||
{
|
||||
HSC.Clean();
|
||||
}
|
||||
}
|
||||
|
||||
public static void UpdateAlarms(object alarmsObj)
|
||||
{
|
||||
|
||||
@@ -68,6 +68,10 @@ namespace Thermo.Active.Listeners
|
||||
{
|
||||
SignalRListener.SendThermoChannelsIoData(a);
|
||||
}));
|
||||
infos.Add(MessageServices.Current.Subscribe(SEND_NEWTCAMIMAGE, (a, b) =>
|
||||
{
|
||||
SignalRListener.SendTCamNewImage(a);
|
||||
}));
|
||||
infos.Add(MessageServices.Current.Subscribe(SEND_ACTIVE_PROGRAM_DATA, (a, b) =>
|
||||
{
|
||||
SignalRListener.SendActiveProgramData(a);
|
||||
@@ -130,6 +134,7 @@ namespace Thermo.Active.Listeners
|
||||
}));
|
||||
infos.Add(MessageServices.Current.Subscribe(SEND_THERMO_PROD_INFO_DATA, (a, b) =>
|
||||
{
|
||||
SignalRDatabaseHandler.cleanHistorySheets();
|
||||
SignalRListener.SendThermoProdInfoData(a);
|
||||
}));
|
||||
infos.Add(MessageServices.Current.Subscribe(SEND_THERMO_PROD_CYCLE_DATA, (a, b) =>
|
||||
|
||||
@@ -326,6 +326,10 @@ namespace Thermo.Active.Listeners.SignalR
|
||||
lastSetpointHmiInvalid = currMessage;
|
||||
var context = GlobalHost.ConnectionManager.GetHubContext<NcHub>();
|
||||
context.Clients.Group("ncData").setpointHmiInvalid(currMessage);
|
||||
|
||||
context.Clients.Group("ncData").recipeFullDataInvalidSetpoint(LastRecipeFullData);
|
||||
context.Clients.Group("ncData").warmersData(LastWarmersData);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -611,6 +615,13 @@ namespace Thermo.Active.Listeners.SignalR
|
||||
}
|
||||
}
|
||||
|
||||
public static void SendTCamNewImage(object newImageDate)
|
||||
{
|
||||
DateTime imageDate = (DateTime)newImageDate;
|
||||
var context = GlobalHost.ConnectionManager.GetHubContext<NcHub>();
|
||||
context.Clients.Group("ncData").newThermoCamImage(newImageDate);
|
||||
}
|
||||
|
||||
public static void SetGatewayRebootStatus(object status)
|
||||
{
|
||||
string msg = status.ToString();
|
||||
@@ -679,7 +690,7 @@ namespace Thermo.Active.Listeners.SignalR
|
||||
// Send THERMO Recipe data
|
||||
group.recipeFullData(LastRecipeFullData);
|
||||
group.recipeOverData(LastRecipeOverData);
|
||||
group.setpointHmiInvalid();
|
||||
|
||||
// Send THERMO Modules data
|
||||
group.modulesData(LastModulesData);
|
||||
// Send THERMO Warmers data
|
||||
@@ -689,6 +700,8 @@ namespace Thermo.Active.Listeners.SignalR
|
||||
group.gaugeData(LastLiveProdData);
|
||||
// THERMO prod info data
|
||||
group.prodInfoData(LastProdInfoData);
|
||||
|
||||
group.prodPanelData(LastProdPanelData);
|
||||
// THERMO prod cycle data
|
||||
group.prodCycleData(LastProdCycleData);
|
||||
|
||||
|
||||
@@ -30,4 +30,4 @@ using System.Runtime.InteropServices;
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.1.174")]
|
||||
[assembly: AssemblyVersion("1.1.191")]
|
||||
|
||||
@@ -86,8 +86,7 @@ english.InstallingDotNet = Installing .Net
|
||||
[Tasks]
|
||||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone;
|
||||
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone;
|
||||
Name: startupicon; Description: {cm:CreateStartupIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone;
|
||||
Name: sinumerikicons; Description: {cm:CreateSinumerikIcons}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone;
|
||||
Name: startupicon; Description: {cm:CreateStartupIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone;
|
||||
|
||||
[Files]
|
||||
Source: "{#MySourcePath}\Thermo.Active.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||
@@ -98,8 +97,8 @@ Source: "{#MySourcePath}\*.config"; DestDir: "{app}"; Flags: ignoreversion;
|
||||
Source: "{#MySourcePath}\Config\*.xml"; DestDir: "{app}\Config\"; Flags: ignoreversion;
|
||||
; Languages
|
||||
Source: "{#MySourcePath}\languages\*.*"; DestDir: "{app}\languages\"; Flags: ignoreversion;
|
||||
; Libs
|
||||
Source: "{#MySourcePath}\lib\*.*"; DestDir: "{app}\lib\"; Flags: ignoreversion;
|
||||
; dll
|
||||
Source: "{#MySourcePath}\dll\*.*"; DestDir: "{app}\dll\"; Flags: ignoreversion recursesubdirs;
|
||||
; Client copy
|
||||
Source: "{#MySourcePath}\Client\*.*"; DestDir: "{app}\Client\"; Flags: recursesubdirs ignoreversion; AfterInstall: DeleteLocalStorage
|
||||
; WWWRoot Files
|
||||
|
||||
@@ -222,6 +222,7 @@
|
||||
<Compile Include="Attributes\WebApiAuthorizeAttribute.cs" />
|
||||
<Compile Include="Attributes\SignalRAuthorizeAttribute.cs" />
|
||||
<Compile Include="Controllers\SignalR\NcHub.cs" />
|
||||
<Compile Include="Controllers\WebApi\aBaseApiController.cs" />
|
||||
<Compile Include="Controllers\WebApi\ApiAlarmController.cs" />
|
||||
<Compile Include="Controllers\WebApi\UnderTheHoodController.cs" />
|
||||
<Compile Include="Controllers\WebApi\SchedTaskController.cs" />
|
||||
|
||||
Generated
+3
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"lockfileVersion": 1
|
||||
}
|
||||
@@ -119,6 +119,9 @@ namespace Thermo.Active
|
||||
ListenersHandler.Stop();
|
||||
// Close WinForm
|
||||
ServerControlWindow.Stop();
|
||||
|
||||
// force close
|
||||
Environment.Exit(0);
|
||||
}
|
||||
|
||||
private static bool ValidateAddress(string Addr)
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
@@ -2092,7 +2092,7 @@
|
||||
}
|
||||
|
||||
.body {
|
||||
height: calc(~"100%"- 64px);
|
||||
height: calc(~"100%" - 64px);
|
||||
overflow: hidden;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@@ -3476,7 +3476,6 @@
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #ffffff;
|
||||
top: 0;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
@@ -3485,6 +3484,9 @@
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
cursor: -webkit-grab;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.loading {
|
||||
@@ -3530,6 +3532,17 @@
|
||||
|
||||
}
|
||||
|
||||
.btngroup2{
|
||||
position: absolute;
|
||||
bottom: 510px;
|
||||
right: 0;
|
||||
margin-right: 20px;
|
||||
img{
|
||||
box-shadow: none;
|
||||
filter: grayscale(1)brightness(0)invert(1);
|
||||
}
|
||||
}
|
||||
|
||||
.btngroup {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
@@ -3562,6 +3575,9 @@
|
||||
cursor: pointer;
|
||||
color: #FFF;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
button:disabled {
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
grid-template-columns: 50% 50%;
|
||||
grid-template-rows: 70% 30%;
|
||||
display: grid;
|
||||
font-size: 18px;
|
||||
font-size: 27px;
|
||||
span {
|
||||
grid-column-start: 1;
|
||||
grid-column-end: -1;
|
||||
@@ -71,12 +71,14 @@
|
||||
}
|
||||
small {
|
||||
grid-row: 2;
|
||||
padding-left: 5px;
|
||||
font-size: 13px;
|
||||
padding-left: 10px;
|
||||
font-size: 15px;
|
||||
padding-bottom: 5px;
|
||||
&:last-of-type {
|
||||
padding-left: 0px;
|
||||
grid-column: 2;
|
||||
text-align: right;
|
||||
padding-right: 5px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,16 @@
|
||||
outline: 5px #1791ff auto;
|
||||
}
|
||||
}
|
||||
.doing{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 4em;
|
||||
height: calc(100% - 65px);
|
||||
color: #4f4f4f;
|
||||
}
|
||||
|
||||
.select_folder {
|
||||
height: 48px;
|
||||
|
||||
@@ -29,6 +29,16 @@
|
||||
.setup .notes_textarea:focus {
|
||||
outline: 5px #1791ff auto;
|
||||
}
|
||||
.setup .doing {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 4em;
|
||||
height: calc(100% - 65px);
|
||||
color: #4f4f4f;
|
||||
}
|
||||
.setup .select_folder {
|
||||
height: 48px;
|
||||
background-color: #fff;
|
||||
@@ -2311,7 +2321,7 @@ article .box .body {
|
||||
color: #fff;
|
||||
}
|
||||
.modal.modal-image .body {
|
||||
height: calc(100%-64px);
|
||||
height: calc(100% - 64px);
|
||||
overflow: hidden;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@@ -3658,7 +3668,6 @@ article .box .body {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #ffffff;
|
||||
top: 0;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
@@ -3667,6 +3676,9 @@ article .box .body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
cursor: -webkit-grab;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.imageViewerZoom .loading {
|
||||
position: absolute;
|
||||
@@ -3705,6 +3717,16 @@ article .box .body {
|
||||
margin-right: 20px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.imageViewerZoom .btngroup2 {
|
||||
position: absolute;
|
||||
bottom: 510px;
|
||||
right: 0;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.imageViewerZoom .btngroup2 img {
|
||||
box-shadow: none;
|
||||
filter: grayscale(1) brightness(0) invert(1);
|
||||
}
|
||||
.imageViewerZoom .btngroup {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
@@ -3720,8 +3742,6 @@ article .box .body {
|
||||
}
|
||||
.imageViewerZoom button {
|
||||
font-size: 20px;
|
||||
justify-content: center;
|
||||
display: flex;
|
||||
background-color: #ffffff;
|
||||
background-image: linear-gradient(to bottom, #1756ad, #002680);
|
||||
box-shadow: 0 3px 5px 0 rgba(0, 0, 0, 0.4);
|
||||
@@ -3734,6 +3754,9 @@ article .box .body {
|
||||
cursor: pointer;
|
||||
color: #FFF;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.imageViewerZoom button:disabled {
|
||||
background-color: #002680 !important;
|
||||
@@ -4871,7 +4894,7 @@ article .box .body {
|
||||
grid-template-columns: 50% 50%;
|
||||
grid-template-rows: 70% 30%;
|
||||
display: grid;
|
||||
font-size: 18px;
|
||||
font-size: 27px;
|
||||
}
|
||||
.warmers svg .resistance.id span {
|
||||
grid-column-start: 1;
|
||||
@@ -4880,13 +4903,15 @@ article .box .body {
|
||||
}
|
||||
.warmers svg .resistance.id small {
|
||||
grid-row: 2;
|
||||
padding-left: 5px;
|
||||
font-size: 13px;
|
||||
padding-left: 10px;
|
||||
font-size: 15px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
.warmers svg .resistance.id small:last-of-type {
|
||||
padding-left: 0px;
|
||||
grid-column: 2;
|
||||
text-align: right;
|
||||
padding-right: 5px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
.warmers .icon {
|
||||
font-size: 30px;
|
||||
|
||||
Generated
+18412
-18460
File diff suppressed because it is too large
Load Diff
@@ -333,6 +333,7 @@ declare module Recipe {
|
||||
options_thermoregulator_9_setpoint?: IValue,
|
||||
options_thermoregulator_10_enabled?: IValue,
|
||||
options_thermoregulator_10_setpoint?: IValue,
|
||||
extraction_main_drawing_enabled?: IValue,
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import { loginService, machineService, localizationService } from "./services";
|
||||
import { prodService } from "./services/prodService";
|
||||
import * as iziToast from "izitoast";
|
||||
import { underTheHoodService } from "./services/underTheHoodService";
|
||||
import { warmersService } from "./services/warmersService";
|
||||
|
||||
// import { UsersService } from "./services/usersService";
|
||||
|
||||
@@ -60,19 +61,16 @@ async function loadMachineConfig() {
|
||||
|
||||
await loginService.getUserInfo();
|
||||
|
||||
|
||||
try {
|
||||
let machine = new machineService();
|
||||
let result = await machine.getAreasConfiguration();
|
||||
machineStatusActions.setAreasConfg(store, result);
|
||||
|
||||
let mcresult = await machine.getMachineConfiguration();
|
||||
await underTheHoodService.getChannelsConfig();
|
||||
await warmersService.GetResistances();
|
||||
machineStatusActions.setWarmersParameters(store, mcresult.additionalParameters);
|
||||
|
||||
await prodService.GetProdPanel();
|
||||
|
||||
await underTheHoodService.getChannels();
|
||||
await underTheHoodService.getChannelsConfig();
|
||||
|
||||
// load default language
|
||||
if (!(store.state as AppModel).localization.currentLanguage) {
|
||||
|
||||
@@ -44,7 +44,6 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
sendMessage(){
|
||||
console.log(this.department);
|
||||
this.$emit("click", this.message, this.estimateTime, this.department);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
</nav>
|
||||
|
||||
<section class="main">
|
||||
<header>{{'star-keyboard-softkeys' | localize("Keyboard softkeys")}}</header>
|
||||
<header>{{'star_keyboard_softkeys' | localize("Keyboard softkeys")}}</header>
|
||||
<article>
|
||||
<button class="softkey star" :disabled="keyb1==0" :click="keyb1click">
|
||||
<span class="icon">
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<label :class="{red: value.isScrap}" v-else>{{value.numDone}}</label>
|
||||
<div class="col">
|
||||
<small>{{'history-item_warmup' | localize("tempo riscaldo")}}</small>
|
||||
<span>{{Math.floor(value.timeWarm / 60) | round(0)}}'{{value.timeWarm % 60 | round(0)}}''</span>
|
||||
<span>{{value.timeWarm | round(0)}}''</span>
|
||||
</div>
|
||||
<div class="col">
|
||||
<small>{{'history-item_vacuum' | localize("vuoto")}}</small>
|
||||
@@ -29,7 +29,7 @@
|
||||
</div>
|
||||
<div class="col">
|
||||
<small>{{'history_item_venttime' | localize("tempo ventilazione")}}</small>
|
||||
<span>{{value.timeVent / 60 | round(0)}}'{{value.timeVent % 60 | round(0)}}''</span>
|
||||
<span>{{value.timeVent | round(0)}}''</span>
|
||||
</div>
|
||||
<div class="col">
|
||||
<small>{{'history_item_cycletimegross' | localize("tempo ciclo lordo")}}</small>
|
||||
@@ -53,7 +53,7 @@
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<small>{{'history_item_vacuumtime' | localize("tempo vuoto")}}</small>
|
||||
<span>{{Math.floor(value.timeVacuum / 60) | round(0)}}'{{value.timeVacuum % 60 | round(0)}}''</span>
|
||||
<span>{{value.timeVacuum | round(0)}}''</span>
|
||||
</div>
|
||||
<div class="col">
|
||||
<small>{{'history_item_mouldenergyin' | localize("energia utilizzata in")}}</small>
|
||||
|
||||
@@ -9,7 +9,6 @@ export default class stats extends Vue {
|
||||
value: { [id: number]: number };
|
||||
|
||||
get Values(): number[] {
|
||||
console.log(this.value);
|
||||
var r: number[] = [];
|
||||
if (this.value)
|
||||
for (const i in this.value) {
|
||||
|
||||
@@ -10,18 +10,6 @@
|
||||
<line :x1="0" :x2="width" :y1="height*2/3" :y2="height*2/3" stroke="#353535" stroke-width="1" />
|
||||
<line :x1="0" :x2="width" :y1="height" :y2="height" stroke="#353535" stroke-width="1" />
|
||||
</g>
|
||||
<!--<g chart="chart-axis">
|
||||
<line
|
||||
v-for="(i,idx) in Values"
|
||||
:key="idx"
|
||||
:x1="idx * (width / 19)"
|
||||
:x2="idx * (width / 19)"
|
||||
:y1="0"
|
||||
:y2="height"
|
||||
stroke="#35353550"
|
||||
stroke-width="1"
|
||||
/>
|
||||
</g>-->
|
||||
<g>
|
||||
<polygon :points="calcPointFill" style="fill:#1791ff;stroke-width:0" fill-opacity="0.3" />
|
||||
<path fill="none" :d="pathData" v-if="pathData" stroke="#1791ff" stroke-width="4" />
|
||||
|
||||
@@ -113,7 +113,7 @@ export default class Dashboard extends Vue {
|
||||
|
||||
let min = Math.min(this.lastItem.numDone, ... this.items.map(i => i.numDone));
|
||||
|
||||
let result = await prodService.History(min - 1, min - 1)
|
||||
let result = await prodService.History(min - 1)
|
||||
for (const i of result) {
|
||||
this.itemsMap.set(i.numDone, i);
|
||||
}
|
||||
@@ -130,8 +130,6 @@ export default class Dashboard extends Vue {
|
||||
}
|
||||
|
||||
async mounted() {
|
||||
prodService.GetProdPanel();
|
||||
|
||||
let $this = this;
|
||||
setInterval(() => {
|
||||
$this.now = moment();
|
||||
@@ -202,13 +200,33 @@ export default class Dashboard extends Vue {
|
||||
}
|
||||
|
||||
incrementPyr() {
|
||||
this.recipe.pyrometer_pyrometer_setpoint.setpointHMI++;
|
||||
this.recipe.pyrometer_pyrometer_setpoint.setpointHMI++;
|
||||
this.recipe.pyrometer_upperthermoregulator_start_adjustment.setpointHMI++;
|
||||
this.recipe.pyrometer_upperthermoregulator_end_adjustment.setpointHMI++;
|
||||
this.recipe.pyrometer_lowerthermoregulator_start_adjustment.setpointHMI++;
|
||||
this.recipe.pyrometer_lowerthermoregulator_end_adjustment.setpointHMI++;
|
||||
this.debouncedRecipeSave();
|
||||
}
|
||||
decrementPyr() {
|
||||
this.recipe.pyrometer_pyrometer_setpoint.setpointHMI--;
|
||||
this.recipe.pyrometer_pyrometer_setpoint.setpointHMI--;
|
||||
this.recipe.pyrometer_upperthermoregulator_start_adjustment.setpointHMI--;
|
||||
this.recipe.pyrometer_upperthermoregulator_end_adjustment.setpointHMI--;
|
||||
this.recipe.pyrometer_lowerthermoregulator_start_adjustment.setpointHMI--;
|
||||
this.recipe.pyrometer_lowerthermoregulator_end_adjustment.setpointHMI--;
|
||||
this.debouncedRecipeSave();
|
||||
}
|
||||
|
||||
togglePyr() {
|
||||
if(this.recipe.pyrometer_pyrometer_enabled.setpointHMI == 1)
|
||||
this.recipe.pyrometer_pyrometer_enabled.setpointHMI = 0;
|
||||
else
|
||||
this.recipe.pyrometer_pyrometer_enabled.setpointHMI = 1;
|
||||
|
||||
this.debouncedRecipeSave();
|
||||
}
|
||||
get pyrOn(){
|
||||
return this.recipe.pyrometer_pyrometer_enabled.setpointHMI == 1;
|
||||
}
|
||||
debouncedRecipeSave = debounce(this.savePyr, 1000);
|
||||
|
||||
public async savePyr(){
|
||||
@@ -227,7 +245,11 @@ export default class Dashboard extends Vue {
|
||||
get payload() {
|
||||
return {
|
||||
pyrometer_pyrometer_enabled: this.recipe.pyrometer_pyrometer_enabled,
|
||||
pyrometer_pyrometer_setpoint: this.recipe.pyrometer_pyrometer_setpoint
|
||||
pyrometer_pyrometer_setpoint: this.recipe.pyrometer_pyrometer_setpoint,
|
||||
pyrometer_upperthermoregulator_start_adjustment: this.recipe.pyrometer_upperthermoregulator_start_adjustment,
|
||||
pyrometer_upperthermoregulator_end_adjustment: this.recipe.pyrometer_upperthermoregulator_end_adjustment,
|
||||
pyrometer_lowerthermoregulator_start_adjustment: this.recipe.pyrometer_lowerthermoregulator_start_adjustment,
|
||||
pyrometer_lowerthermoregulator_end_adjustment: this.recipe.pyrometer_lowerthermoregulator_end_adjustment,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -118,9 +118,11 @@
|
||||
<button @click="decrementPyr()" :disabled="!recipe.pyrometer_pyrometer_setpoint.status.enabled" >
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
<div :class="{'notenabled': recipe.pyrometer_pyrometer_enabled.setpointHMI == 0}">
|
||||
<div :class="{'notenabled': recipe.pyrometer_pyrometer_enabled.setpointHMI == 0}" @click="togglePyr">
|
||||
<small>{{'dashboard-setpoint' | localize('set point')}}</small>
|
||||
<span :class="{'strike': recipe.pyrometer_pyrometer_enabled.setpointHMI == 0}">{{recipe.pyrometer_pyrometer_setpoint.setpointHMI}}{{recipe.pyrometer_pyrometer_setpoint.unitMeasure}}</span>
|
||||
<div v-if="pyrOn">ON</div>
|
||||
<div v-else>OFF</div>
|
||||
</div>
|
||||
<button @click="incrementPyr()" :disabled="!recipe.pyrometer_pyrometer_setpoint.status.enabled" >
|
||||
<i class="fa fa-plus"></i>
|
||||
|
||||
@@ -37,12 +37,12 @@
|
||||
:current-time="gaugeData.timeAdv.value"
|
||||
></gantt>
|
||||
<div class="zoom-buttons">
|
||||
<button class="btn">
|
||||
<i class="fa fa-search-minus" @click="zoomFactor /= zoomStep"></i>
|
||||
<button class="btn" @click="zoomFactor /= zoomStep">
|
||||
<i class="fa fa-search-minus"></i>
|
||||
</button>
|
||||
<zoom :min="0" :max="2" :value="zoomFactor"></zoom>
|
||||
<button class="btn">
|
||||
<i class="fa fa-search-plus" @click="zoomFactor *= zoomStep"></i>
|
||||
<button class="btn" @click="zoomFactor *= zoomStep">
|
||||
<i class="fa fa-search-plus" ></i>
|
||||
</button>
|
||||
<button
|
||||
class="realign"
|
||||
|
||||
@@ -15,13 +15,19 @@ export default class backupRecipe extends Vue {
|
||||
@Prop()
|
||||
deferred: Deferred<string>;
|
||||
|
||||
folderlist = [];
|
||||
devicelist = [];
|
||||
device = "";
|
||||
folder = "";
|
||||
canDo = false;
|
||||
backupping = false;
|
||||
|
||||
|
||||
|
||||
mounted() {
|
||||
if (typeof cmsClient != "undefined") {
|
||||
this.devicelist = JSON.parse(cmsClient.getOSextDriveList());
|
||||
this.folderlist = JSON.parse(cmsClient.getAllRecipeDirectories());
|
||||
}
|
||||
this.canDo = false;
|
||||
}
|
||||
@@ -29,13 +35,38 @@ export default class backupRecipe extends Vue {
|
||||
|
||||
@Watch("device")
|
||||
valueCHange(){
|
||||
this.canDo = this.device.trim() != "";
|
||||
this.canDo = this.device.trim() != "" && this.folder.trim() != "";
|
||||
}
|
||||
|
||||
@Watch("folder")
|
||||
folderCHange(){
|
||||
this.canDo = this.device.trim() != "" && this.folder.trim() != "";
|
||||
}
|
||||
|
||||
run() {
|
||||
if (typeof cmsClient != "undefined") {
|
||||
this.canDo = false;
|
||||
var obj = JSON.parse(cmsClient.backupRecipes(this.device));
|
||||
this.backupping = true;
|
||||
setTimeout(() => {
|
||||
this.realBackup();
|
||||
}, 300);
|
||||
}
|
||||
}
|
||||
|
||||
close() {
|
||||
messageService.deleteChannel("esc_pressed");
|
||||
this.deferred.reject();
|
||||
ModalHelper.HideModal();
|
||||
}
|
||||
|
||||
realBackup(){
|
||||
if(this.folder == "ALL_SUBFOLDERS")
|
||||
var obj = JSON.parse(cmsClient.backupRecipes(this.device));
|
||||
else
|
||||
var obj = JSON.parse(cmsClient.backupSubRecipes(this.device,this.folder));
|
||||
|
||||
this.backupping = false;
|
||||
|
||||
if (obj.error) {
|
||||
(iziToast as any).error({
|
||||
title: "error",
|
||||
@@ -50,12 +81,5 @@ export default class backupRecipe extends Vue {
|
||||
this.deferred.resolve();
|
||||
ModalHelper.HideModal();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
close() {
|
||||
messageService.deleteChannel("esc_pressed");
|
||||
this.deferred.reject();
|
||||
ModalHelper.HideModal();
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,22 @@
|
||||
<template>
|
||||
<div class="setup">
|
||||
<modal type="save-as" :title="'modal_title_Backup' | localize('Backup Recipes folder')">
|
||||
<header slot="header-buttons">
|
||||
<div slot="header-buttons">
|
||||
<button class="modal-close" @click="close()">
|
||||
<i class="fa fa-remove"></i>
|
||||
</button>
|
||||
</header>
|
||||
<div class="form-group">
|
||||
</div>
|
||||
<div v-if="backupping" class="doing">Backup...</div>
|
||||
<div class="form-group" v-else>
|
||||
<label>{{'select_folder_name' | localize('Cartella')}}</label>
|
||||
<select v-model="folder" :placeholder="'folder_name' | localize('Nuova Cartella')" >
|
||||
<optgroup :label="'select_folder_all' | localize('Tutte')">
|
||||
<option value="ALL_SUBFOLDERS">{{'select_folder_all_folder' | localize('Tutte le cartelle')}}</option>
|
||||
</optgroup>
|
||||
<optgroup :label="'select_folder_sub' | localize('Sottocartelle')">
|
||||
<option v-for="folder in folderlist" :value="folder">{{folder}}</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
<label>{{'select_devices' | localize('Select Devices')}}</label>
|
||||
<select v-model="device" :placeholder="'select_devices' | localize('Select Devices')">
|
||||
<option v-for="device in devicelist" :value="device.Path">{{device.Name}}</option>
|
||||
|
||||
+2
-2
@@ -42,8 +42,8 @@ export default class SVGCaricatore extends Vue{
|
||||
minoreuguale:string="<=";
|
||||
|
||||
getPositionSheet(id,col){
|
||||
var vent = ((this.larghTelaioSVG + (this.dimVentose*2)) / (this.numVentose +1));
|
||||
var posX = (id*vent ) - (this.dimVentose*2);
|
||||
var vent = (this.larghTelaioSVG - (this.dimVentose*2)) / (this.numVentose -1);
|
||||
var posX = (id-1)*vent;
|
||||
if(col == 1)
|
||||
return "translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 0) translate("+ posX + ")";
|
||||
else if(col == 2)
|
||||
|
||||
@@ -122,10 +122,6 @@ export default class ShowCicloInfo extends Vue {
|
||||
if (el.status.visible && el.status.enabled)
|
||||
if (el.setpointHMI != el.setpointPLC) result = true;
|
||||
}
|
||||
for (const key in store.state.warmers.channels) {
|
||||
const el = store.state.warmers.channels[key];
|
||||
if (el.setpointHMI != el.setpointPLC) result = true;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,20 +4,20 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th width="200">{{axis.name | localize(axis.name)}}</th>
|
||||
<th width="200">{{axis.name}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>{{quoteLabel | localize(quoteLabel)}}</th>
|
||||
<td>{{axis.position | round}} {{'axis-position-um' | localize("mm")}}</td>
|
||||
<th>{{"underthehood_label_position" | localize(quoteLabel)}}</th>
|
||||
<td>{{axis.position | round}} {{"mm"}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{speedLabel | localize(speedLabel)}}</th>
|
||||
<td>{{axis.speed| round}} {{'axis-speed-um' | localize("mm/s")}}</td>
|
||||
<th>{{"underthehood_label_speed" | localize(speedLabel)}}</th>
|
||||
<td>{{axis.speed| round}} {{"mm/s"}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{loadLabel | localize(loadLabel)}}</th>
|
||||
<th>{{"underthehood_label_torque" | localize(loadLabel)}}</th>
|
||||
<td>{{axis.load| round(1)}} %</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
.bitSelect {
|
||||
position: relative;
|
||||
}
|
||||
.bitSelect .form {
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
color: #6d6d6d;
|
||||
min-width: 200px;
|
||||
width: fit-content;
|
||||
height: 48px;
|
||||
border-radius: 2px;
|
||||
box-shadow: inset 0 1px 3px 0 rgba(0, 0, 0, 0.5);
|
||||
border: none;
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
padding: 0 10px;
|
||||
align-items: center;
|
||||
justify-content: stretch;
|
||||
padding-right: 25px;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
}
|
||||
.bitSelect .form.error {
|
||||
outline: 2px #d0021b auto !important;
|
||||
}
|
||||
.bitSelect .form.disabled {
|
||||
background-color: rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
.bitSelect .form i {
|
||||
position: absolute;
|
||||
right: 4px;
|
||||
top: calc(50% - 7px);
|
||||
font-size: 14px;
|
||||
}
|
||||
.bitSelect > section.bitsections {
|
||||
position: absolute !important;
|
||||
top: 48px;
|
||||
right: 0;
|
||||
z-index: 10;
|
||||
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.5);
|
||||
border: solid 1px #bbbcbc;
|
||||
background-color: #fff;
|
||||
padding: 0 !important;
|
||||
display: grid !important;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
overflow: hidden;
|
||||
height: auto !important;
|
||||
width: 500px !important;
|
||||
border-top: 1px solid #979797;
|
||||
border-left: 1px solid #979797;
|
||||
}
|
||||
.bitSelect > section.bitsections .selall {
|
||||
grid-column-start: 1;
|
||||
grid-column-end: 3;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
margin: 24px 0px 0 0;
|
||||
height: 64px;
|
||||
border-top: 2px solid #bbbcbc;
|
||||
}
|
||||
.bitSelect > section.bitsections > article {
|
||||
height: 70px !important;
|
||||
display: grid !important;
|
||||
grid-template-columns: 68px 1fr;
|
||||
align-items: center;
|
||||
justify-items: center;
|
||||
border-bottom: 1px solid #979797;
|
||||
border-right: 1px solid #979797;
|
||||
}
|
||||
.bitSelect > section.bitsections > article label {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
justify-content: flex-start;
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
.bitSelect {
|
||||
position: relative;
|
||||
|
||||
.form {
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
color: #6d6d6d;
|
||||
min-width: 200px;
|
||||
width: fit-content;
|
||||
height: 48px;
|
||||
border-radius: 2px;
|
||||
box-shadow: inset 0 1px 3px 0 rgba(0, 0, 0, 0.5);
|
||||
border: none;
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
padding: 0 10px;
|
||||
align-items: center;
|
||||
justify-content: stretch;
|
||||
padding-right: 25px;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
|
||||
&.error{
|
||||
outline: 2px #d0021b auto !important;
|
||||
}
|
||||
|
||||
&.disabled{
|
||||
background-color: rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
|
||||
i {
|
||||
position: absolute;
|
||||
right: 4px;
|
||||
top: calc(50% - 7px);
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
> section.bitsections {
|
||||
position: absolute !important;
|
||||
top: 48px;
|
||||
right: 0;
|
||||
z-index: 10;
|
||||
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.5);
|
||||
border: solid 1px #bbbcbc;
|
||||
background-color: #fff;
|
||||
padding: 0 !important;
|
||||
display: grid !important;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
overflow: hidden;
|
||||
height: auto !important;
|
||||
width: 500px !important;
|
||||
|
||||
border-top: 1px solid #979797;
|
||||
border-left: 1px solid #979797;
|
||||
|
||||
.selall{
|
||||
grid-column-start:1;
|
||||
grid-column-end:3;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
margin: 24px 0px 0 0;
|
||||
height: 64px;
|
||||
border-top: 2px solid #bbbcbc;
|
||||
}
|
||||
|
||||
> article {
|
||||
height: 70px !important;
|
||||
display: grid !important;
|
||||
grid-template-columns: 68px 1fr;
|
||||
align-items: center;
|
||||
justify-items: center;
|
||||
border-bottom: 1px solid #979797;
|
||||
border-right: 1px solid #979797;
|
||||
|
||||
label {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
justify-content: flex-start;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
import Vue from "vue";
|
||||
import Component from "vue-class-component";
|
||||
import { Prop, Watch } from "vue-property-decorator";
|
||||
|
||||
@Component({})
|
||||
export default class bitSelect extends Vue {
|
||||
|
||||
|
||||
@Prop()
|
||||
value: Recipe.IValue;
|
||||
|
||||
opened: boolean = false;
|
||||
|
||||
get Value() {
|
||||
return this.value.setpointHMI;
|
||||
}
|
||||
|
||||
get key() {
|
||||
return this.value.key;
|
||||
}
|
||||
|
||||
set Value(v) {
|
||||
this.value.setpointHMI = v;
|
||||
}
|
||||
|
||||
openclose(){
|
||||
if(!this.value || !this.value.status || !this.value.status.enabled)
|
||||
return
|
||||
|
||||
this.opened = !this.opened
|
||||
}
|
||||
|
||||
get currentValue() {
|
||||
let result = []
|
||||
for (let index = 0; index < this.bitSize; index++) {
|
||||
if (this.bit_test(this.Value, index)) result.push(index + 1);
|
||||
}
|
||||
return result.join(", ");
|
||||
}
|
||||
|
||||
bits: {} = [];
|
||||
|
||||
mounted() {
|
||||
for (let i = 0; i < this.bitSize; i++) {
|
||||
Vue.set(this.bits, i, this.bit_test(this.Value, i))
|
||||
}
|
||||
}
|
||||
|
||||
@Prop({ default: 16 })
|
||||
bitSize: number;
|
||||
|
||||
bit_test(num, bit) {
|
||||
let result = ((num >> bit) % 2 != 0)
|
||||
return result;
|
||||
}
|
||||
|
||||
bit_change(num, bit, value) {
|
||||
if (value == true)
|
||||
this.Value = this.bit_set(num, bit)
|
||||
else
|
||||
this.Value = this.bit_clear(num, bit);
|
||||
}
|
||||
|
||||
bit_set(num, bit) {
|
||||
return num | 1 << bit;
|
||||
}
|
||||
|
||||
bit_clear(num, bit) {
|
||||
return num & ~(1 << bit);
|
||||
}
|
||||
|
||||
bit_visible(bit) {
|
||||
return this.bit_test(this.value.range.max,bit-1);
|
||||
}
|
||||
|
||||
setAll(){
|
||||
this.Value = this.value.range.max;
|
||||
|
||||
for (let i = 0; i < this.bitSize; i++) {
|
||||
Vue.set(this.bits, i, this.bit_test(this.Value, i))
|
||||
}
|
||||
}
|
||||
|
||||
clearAll(){
|
||||
this.Value = 0;
|
||||
|
||||
for (let i = 0; i < this.bitSize; i++) {
|
||||
Vue.set(this.bits, i, this.bit_test(this.Value, i))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
<template>
|
||||
<div class="bitSelect">
|
||||
<div
|
||||
class="form"
|
||||
@click="openclose"
|
||||
:class="{'error': value && value.status && value.status.hasError, 'disabled': value && value.status && !value.status.enabled}"
|
||||
>
|
||||
{{currentValue}}
|
||||
<i v-if="opened" class="fa fa-chevron-up" />
|
||||
<i v-else class="fa fa-chevron-down" />
|
||||
</div>
|
||||
<section class="bitsections" v-if="opened" @mousedown.prevent.stop>
|
||||
<template v-for="b in bitSize" >
|
||||
<article v-if="bit_visible(b)" :key="b">
|
||||
<div class="custom-checkbox" >
|
||||
<input
|
||||
type="checkbox"
|
||||
v-model="bits[b-1]"
|
||||
@input="bit_change(Value, b-1, !bits[b-1])"
|
||||
:id="`cb-${b}`"
|
||||
/>
|
||||
<label :for="`cb-${b}`"></label>
|
||||
</div>
|
||||
<label :for="`cb-${b}`">{{`${key}_${b}` | localize((b).toString())}}</label>
|
||||
</article>
|
||||
</template>
|
||||
<div class="selall">
|
||||
<button class="btn" @click="clearAll">{{'bitselect_select_none' | localize('Nessuno')}}</button>
|
||||
<button class="btn btn-success" @click="setAll">{{'bitselect_select_all' | localize('Tutti')}}</button>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</template>
|
||||
<script src="./bitSelect.ts" lang="ts"></script>
|
||||
<style lang="less" scoped>
|
||||
@import url(./bitSelect.less);
|
||||
</style>
|
||||
+9
@@ -31,6 +31,15 @@
|
||||
</div>
|
||||
<slider v-model="recipe.extraction_main_manual"></slider>
|
||||
</template>
|
||||
<template v-if="recipe.extraction_main_drawing_enabled.status.visible" >
|
||||
<div class="input-area" style="margin-top: 30px;">
|
||||
<label>{{'extraction_main_drawing_enabled'|localize('Drawing Enabled')}}</label>
|
||||
<toggle-button
|
||||
v-model="recipe.extraction_main_drawing_enabled.setpointHMI"
|
||||
:status="recipe.extraction_main_drawing_enabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
+4
-1
@@ -51,7 +51,8 @@ export default class ShowEstrazioneInfo extends Vue {
|
||||
(this.recipe.extraction_main_delay.status.visible && this.recipe.extraction_main_delay.status.hasError) ||
|
||||
(this.recipe.extraction_main_1_chart_setpointx.status.visible && this.recipe.extraction_main_1_chart_setpointx.status.hasError) ||
|
||||
(this.recipe.extraction_main_1_chart_setpointy.status.visible && this.recipe.extraction_main_1_chart_setpointy.status.hasError) ||
|
||||
(this.recipe.extraction_main_manual.status.visible && this.recipe.extraction_main_manual.status.hasError);
|
||||
(this.recipe.extraction_main_manual.status.visible && this.recipe.extraction_main_manual.status.hasError) ||
|
||||
(this.recipe.extraction_main_drawing_enabled.status.visible && this.recipe.extraction_main_drawing_enabled.status.hasError);
|
||||
}
|
||||
get auxHasErrors() {
|
||||
return (this.recipe.extraction_aux_enabled.status.visible && this.recipe.extraction_aux_enabled.status.hasError) ||
|
||||
@@ -74,6 +75,7 @@ export default class ShowEstrazioneInfo extends Vue {
|
||||
extraction_aux_1_chart_setpointx: this.recipe.extraction_aux_1_chart_setpointx,
|
||||
extraction_aux_1_chart_setpointy: this.recipe.extraction_aux_1_chart_setpointy,
|
||||
extraction_aux_manual: this.recipe.extraction_aux_manual,
|
||||
extraction_main_drawing_enabled: this.recipe.extraction_main_drawing_enabled,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -117,6 +119,7 @@ export default class ShowEstrazioneInfo extends Vue {
|
||||
'extraction_main_1_chart_setpointx',
|
||||
'extraction_main_1_chart_setpointy',
|
||||
'extraction_main_manual',
|
||||
'extraction_main_drawing_enabled',
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+8
-8
@@ -1,20 +1,20 @@
|
||||
<template>
|
||||
<div class="svg-area">
|
||||
<img src="assets/svg/disegno-cornice.svg" />
|
||||
<div class="borded_label" id="quota1" v-focus-on:general_sizes_frame_dim_y>
|
||||
<div>
|
||||
<img src="assets/icons/png/quota.png" />
|
||||
<span>{{recipe.general_sizes_frame_dim_y.valueAct}}</span>
|
||||
<small>{{recipe.general_sizes_frame_dim_y.unitMeasure}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="borded_label" id="quota2" v-focus-on:general_sizes_frame_dim_x>
|
||||
<div class="borded_label" id="quota1" v-focus-on:general_sizes_frame_dim_x>
|
||||
<div>
|
||||
<img src="assets/icons/png/quota.png" />
|
||||
<span>{{recipe.general_sizes_frame_dim_x.valueAct}}</span>
|
||||
<small>{{recipe.general_sizes_frame_dim_x.unitMeasure}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="borded_label" id="quota2" v-focus-on:general_sizes_frame_dim_y>
|
||||
<div>
|
||||
<img src="assets/icons/png/quota.png" />
|
||||
<span>{{recipe.general_sizes_frame_dim_y.valueAct}}</span>
|
||||
<small>{{recipe.general_sizes_frame_dim_y.unitMeasure}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<style scoped>
|
||||
|
||||
+10
-10
@@ -1,26 +1,26 @@
|
||||
<template>
|
||||
<div class="svg-area">
|
||||
<img src="assets/svg/disegno-piastra-riduzione.svg" />
|
||||
<div class="borded_label" id="quota1" v-focus-on:general_sizes_plate_dim_y>
|
||||
<div>
|
||||
<img src="assets/icons/png/quota.png" />
|
||||
<span>{{recipe.general_sizes_plate_dim_y.valueAct}}</span>
|
||||
<small>{{recipe.general_sizes_plate_dim_y.unitMeasure}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="borded_label" id="quota2" v-focus-on:general_sizes_plate_dim_x>
|
||||
<div class="borded_label" id="quota1" v-focus-on:general_sizes_plate_dim_x>
|
||||
<div>
|
||||
<img src="assets/icons/png/quota.png" />
|
||||
<span>{{recipe.general_sizes_plate_dim_x.valueAct}}</span>
|
||||
<small>{{recipe.general_sizes_plate_dim_x.unitMeasure}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="borded_label" id="quota2" v-focus-on:general_sizes_plate_dim_y>
|
||||
<div>
|
||||
<img src="assets/icons/png/quota.png" />
|
||||
<span>{{recipe.general_sizes_plate_dim_y.valueAct}}</span>
|
||||
<small>{{recipe.general_sizes_plate_dim_y.unitMeasure}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<style scoped>
|
||||
#quota1 {
|
||||
top: 471px;
|
||||
left: 118px;
|
||||
top: 471px;
|
||||
left: 118px;
|
||||
}
|
||||
#quota2 {
|
||||
top: 496px;
|
||||
|
||||
+3
-1
@@ -2,10 +2,12 @@ import Vue from 'vue';
|
||||
import Component from 'vue-class-component';
|
||||
import {Prop} from 'vue-property-decorator';
|
||||
import Slider from "@/app_modules_thermo/components/slider.vue";
|
||||
import bitSelector from "@/app_modules_thermo/setup/components/bitSelect.vue";
|
||||
|
||||
@Component({name:"nebulizzatori",
|
||||
components: {
|
||||
slider:Slider
|
||||
slider:Slider,
|
||||
bitSelector
|
||||
}
|
||||
})
|
||||
export default class Nebulizzatori extends Vue{
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<template v-if="recipe.cooling_nebulizer_type.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cooling_nebulizer_type'|localize('Tipo')}}</label>
|
||||
<combo v-model="recipe.cooling_nebulizer_type"></combo>
|
||||
<bit-selector v-model="recipe.cooling_nebulizer_type"></bit-selector>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.cooling_nebulizer_delay.status.visible">
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user