Compare commits
77 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 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" />
|
||||
|
||||
@@ -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>
|
||||
@@ -31,6 +31,8 @@
|
||||
<CMSConnectReady>true</CMSConnectReady>
|
||||
<maxAlarmsRows>50000</maxAlarmsRows>
|
||||
<alarmToDelete>5000</alarmToDelete>
|
||||
<maxSheetHistoryRows>10000</maxSheetHistoryRows>
|
||||
<sheetHistoryToDelete>500</sheetHistoryToDelete>
|
||||
</serverConfig>
|
||||
<extSoftwares>
|
||||
<software>
|
||||
@@ -113,6 +115,10 @@
|
||||
<key>RangeTempMax</key>
|
||||
<value>100</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>EnableThermocam</key>
|
||||
<value>true</value>
|
||||
</entry>
|
||||
</additionalParameters>
|
||||
<unitOfMeasures>
|
||||
<unitOfMeasure id="0" value="" />
|
||||
@@ -129,7 +135,7 @@
|
||||
<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" />
|
||||
@@ -141,12 +147,13 @@
|
||||
<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();
|
||||
|
||||
|
||||
@@ -230,21 +230,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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -325,77 +339,94 @@ 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);
|
||||
|
||||
while (true)
|
||||
// avvio oggetto thermocam
|
||||
ThermoCamComunicator TCCom = new ThermoCamComunicator(true);
|
||||
Stopwatch sw = new Stopwatch();
|
||||
try
|
||||
{
|
||||
bool flirImageReq = false;
|
||||
sw.Restart();
|
||||
// Try connection
|
||||
CmsError libraryError = ncAdapter.Connect();
|
||||
if (libraryError.errorCode != 0)
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
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)
|
||||
{
|
||||
// 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)
|
||||
bool done = false;
|
||||
// if requested --> give ack!
|
||||
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
|
||||
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
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
// chiudo thermocam
|
||||
TCCom.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
}
|
||||
@@ -104,6 +104,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" />
|
||||
|
||||
+114
-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
|
||||
@@ -523,7 +533,7 @@ namespace Thermo.Active.NC
|
||||
{
|
||||
CmsError libraryError = NO_ERROR;
|
||||
currCycleLog = new DTOCycleLog();
|
||||
|
||||
|
||||
// fix valori
|
||||
from = from > 0 ? from - 1 : 0;
|
||||
//selezione
|
||||
@@ -551,7 +561,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 +592,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 +1419,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 +1692,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;
|
||||
|
||||
@@ -1930,7 +1942,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 +1960,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 +2515,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 +2566,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 +3152,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 +3195,11 @@ namespace Thermo.Active.NC
|
||||
Min = minVal,
|
||||
Max = maxVal
|
||||
};
|
||||
// controllo se connessa
|
||||
currTCamData.ThermoCamConnected = cameraIsConnected;
|
||||
|
||||
// DataOra ultima immagine scattata
|
||||
currTCamData.LastTakenImage = lastImageTaken;
|
||||
}
|
||||
return libraryError;
|
||||
}
|
||||
@@ -3478,6 +3532,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;
|
||||
|
||||
+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;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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>
|
||||
@@ -100,7 +100,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}");
|
||||
|
||||
@@ -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;
|
||||
@@ -71,7 +72,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 +81,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 +336,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 +365,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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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) =>
|
||||
|
||||
@@ -611,6 +611,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();
|
||||
|
||||
@@ -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.185")]
|
||||
|
||||
@@ -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
|
||||
|
||||
Generated
+3
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"lockfileVersion": 1
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
@@ -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;
|
||||
@@ -4871,7 +4881,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 +4890,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;
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -202,13 +202,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 +247,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>
|
||||
|
||||
@@ -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,72 @@
|
||||
.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 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,78 @@
|
||||
.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;
|
||||
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,85 @@
|
||||
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;
|
||||
}
|
||||
|
||||
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="opened = !opened"
|
||||
: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">
|
||||
|
||||
+10
-7
@@ -1,16 +1,19 @@
|
||||
import Vue from 'vue';
|
||||
import Component from 'vue-class-component';
|
||||
import {Prop} from 'vue-property-decorator';
|
||||
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:"ventilatori",
|
||||
components: {
|
||||
slider:Slider
|
||||
}
|
||||
@Component({
|
||||
name: "ventilatori",
|
||||
components: {
|
||||
slider: Slider,
|
||||
bitSelector
|
||||
}
|
||||
})
|
||||
export default class Ventilatori extends Vue{
|
||||
export default class Ventilatori extends Vue {
|
||||
|
||||
@Prop()
|
||||
recipe:Recipe.IRecipe;
|
||||
recipe: Recipe.IRecipe;
|
||||
|
||||
}
|
||||
+2
-1
@@ -6,7 +6,8 @@
|
||||
<template v-if="recipe.cooling_blowing_type.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cooling_blowing_type'|localize('Tipo')}}</label>
|
||||
<combo v-model="recipe.cooling_blowing_type"></combo>
|
||||
<!-- <combo v-model="recipe.cooling_blowing_type"></combo> -->
|
||||
<bit-selector v-model="recipe.cooling_blowing_type"></bit-selector>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.cooling_blowing_delay.status.visible">
|
||||
|
||||
+8
-4
@@ -10,13 +10,17 @@
|
||||
:style="{backgroundColor:`rgba(${currentColor})`}"
|
||||
>{{channel.setpointHMI}} %</div>
|
||||
<div
|
||||
class="resistance"
|
||||
class="resistance id"
|
||||
:key="selected"
|
||||
v-else-if="mode == 0"
|
||||
@click="click"
|
||||
v-on:touchend="click"
|
||||
:style="{backgroundColor:`rgba(${currentColor})`}"
|
||||
>{{channel.tCamTempSet}} °C</div>
|
||||
>
|
||||
<span>{{channel.tCamTempSet}} °C</span>
|
||||
<small> </small>
|
||||
<small>{{channel.tCamTempAct}} °C</small>
|
||||
</div>
|
||||
<div
|
||||
class="resistance"
|
||||
:key="selected"
|
||||
@@ -34,9 +38,9 @@
|
||||
v-else
|
||||
:style="{backgroundColor:`rgb(${currentColor})`}"
|
||||
>
|
||||
<span>ID: {{getOutput(channel.idChannel)}}</span>
|
||||
<span>Id: {{res.idGroup}} </span>
|
||||
<small>Bo: {{getBoard(channel.idChannel)}}</small>
|
||||
<small>Ch: {{channel.idChannel}}</small>
|
||||
<small>Out: {{getOutput(channel.idChannel)}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
+11
-2
@@ -68,17 +68,26 @@
|
||||
.modal.prophetimages section .image-selector .timeseries {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.modal.prophetimages section .image-selector .timeseries time {
|
||||
color: #002680;
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
align-items: center;
|
||||
}
|
||||
.modal.prophetimages section .image-selector .timeseries time:last-child {
|
||||
align-items: flex-end;
|
||||
}
|
||||
.modal.prophetimages section .image-selector .timeseries time:first-child {
|
||||
align-items: flex-start;
|
||||
}
|
||||
.modal.prophetimages section .image-selector .selector {
|
||||
color: #002680;
|
||||
font-size: 18px;
|
||||
@@ -101,7 +110,7 @@
|
||||
}
|
||||
.modal.prophetimages section .color-bar .color-line {
|
||||
height: 100%;
|
||||
background-image: linear-gradient(to bottom, #fff, #ffdf00 16%, #e40000 37%, #ab00a5 62%, #000ca4 86%, #000000);
|
||||
background-image: linear-gradient(to bottom, #ffffff, #ffffcc 16%, #ff9900 48%, #ff0066 64%, #3300ff 80%, #000033);
|
||||
}
|
||||
.modal.prophetimages section .color-bar .legend {
|
||||
display: flex;
|
||||
|
||||
+16
-7
@@ -69,17 +69,26 @@
|
||||
.timeseries {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
time {
|
||||
color: #002680;
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
align-items: center;
|
||||
}
|
||||
time:last-child{
|
||||
align-items:flex-end;
|
||||
}
|
||||
time:first-child{
|
||||
align-items:flex-start;
|
||||
}
|
||||
}
|
||||
|
||||
.selector {
|
||||
@@ -109,12 +118,12 @@
|
||||
height: 100%;
|
||||
background-image: linear-gradient(
|
||||
to bottom,
|
||||
#fff,
|
||||
#ffdf00 16%,
|
||||
#e40000 37%,
|
||||
#ab00a5 62%,
|
||||
#000ca4 86%,
|
||||
#000000
|
||||
rgba(255,255,255,1),
|
||||
rgba(255,255,204,1) 16%,
|
||||
rgba(255,153,0,1) 48%,
|
||||
rgba(255,0,102,1) 64%,
|
||||
rgba(51,0,255,1) 80%,
|
||||
rgba(0,0,51,1)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+6
@@ -32,6 +32,7 @@ export default class ThermoModal extends Vue {
|
||||
selectedImage: number = 0;
|
||||
serverPath = "/thermoprophet/colored";
|
||||
items: Prod.IProd[] = [];
|
||||
|
||||
get images() {
|
||||
return this.items.map(i => i.thermoImage)
|
||||
}
|
||||
@@ -48,6 +49,7 @@ export default class ThermoModal extends Vue {
|
||||
this.TCamData = await warmersService.GetTCamData();
|
||||
await warmersService.ResetMeasurePoints();
|
||||
|
||||
console.log(this.lastItem);
|
||||
let min = Math.min(this.lastItem.numDone);
|
||||
this.items.push(...await prodService.History(min - 1, min - 1))
|
||||
}
|
||||
@@ -63,6 +65,10 @@ export default class ThermoModal extends Vue {
|
||||
this.reloadMeasuresDelayed(this.images[this.selectedImage], this.measurePoints);
|
||||
}
|
||||
|
||||
getImageCycle(Sel){
|
||||
return this.items[Sel];
|
||||
}
|
||||
|
||||
@Watch("selectedImage")
|
||||
reloadMeasuresDelayed = debounce(async (image, points) => {
|
||||
let result = await warmersService.GetMeasurePoints(image);
|
||||
|
||||
+20
-6
@@ -6,10 +6,16 @@
|
||||
<div class="imagecontainer">
|
||||
<img
|
||||
:src="`${serverPath}/${images[parseInt(selectedImage)]}.jpg`"
|
||||
v-if="images.length && images[selectedImage]!='UNDEFINED'"
|
||||
@click="imageclick"
|
||||
v-if="images.length"
|
||||
ref="mainimage"
|
||||
/>
|
||||
/>
|
||||
<img
|
||||
src="assets\icons\png\NOCamera.png"
|
||||
v-if="images.length && images[selectedImage]=='UNDEFINED'"
|
||||
ref="mainimage"
|
||||
/>
|
||||
|
||||
<span>{{'thermo-long-tap-info' | localize("Long tap on image to add temperature inspectors")}}</span>
|
||||
|
||||
<div
|
||||
@@ -29,14 +35,21 @@
|
||||
</div>
|
||||
<div class="image-selector">
|
||||
<div class="timeseries">
|
||||
<!-- <time>{{'first-image' | localize("First image")}}</time>
|
||||
<time>{{'last-image' | localize("Last image")}}</time>-->
|
||||
<time>{{'last-image' | localize("Last image")}}</time>
|
||||
<time class="center"> </time>
|
||||
<time>{{'first-image' | localize("First image")}}</time>
|
||||
</div>
|
||||
<img
|
||||
:src="`${serverPath}/${images[parseInt(selectedImage)]}.jpg`"
|
||||
v-if="showPreview"
|
||||
v-if="showPreview && images[selectedImage]!='UNDEFINED'"
|
||||
class="selector"
|
||||
:style="`left:${(parseInt(selectedImage) / (images.length-1)) * 858}px`"
|
||||
/>
|
||||
<img
|
||||
src="assets\icons\png\NOCamera.png"
|
||||
v-if="showPreview && images[selectedImage]=='UNDEFINED'"
|
||||
class="selector"
|
||||
:style="`left:${(parseInt(selectedImage) / (images.length-1)) * 858}px; background-color:#ffffff;`"
|
||||
/>
|
||||
<input
|
||||
v-if="images.length"
|
||||
@@ -50,8 +63,9 @@
|
||||
<div class="selectorarea">
|
||||
<span
|
||||
class="selector"
|
||||
v-if="getImageCycle(selectedImage)"
|
||||
:style="`left:${(parseInt(selectedImage) / (images.length-1)) * 858}px`"
|
||||
>{{'thermo-cycle' | localize("Cycle")}} {{selectedImage}}</span>
|
||||
>{{'thermo-cycle' | localize("Cycle")}} {{getImageCycle(selectedImage).numDone}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</modal>
|
||||
|
||||
+54
@@ -8,6 +8,8 @@ import { warmersService } from "@/services/warmersService";
|
||||
import { awaiter } from '@/_base';
|
||||
import termoModal from "./thermoProphet-modal.vue";
|
||||
import { ModalHelper } from '@/components/modals';
|
||||
import moment from "moment";
|
||||
import { messageService } from "src/_base";
|
||||
|
||||
@Component({
|
||||
name: "thermocamera", components: {
|
||||
@@ -29,9 +31,15 @@ export default class Thermocamera extends Vue {
|
||||
thermoImageOpacity: number = 0;
|
||||
resistanceMode = 0;
|
||||
|
||||
timeoutLastTakenImage = 0;
|
||||
timeCamDiff = " ";
|
||||
|
||||
TCamData: {
|
||||
imageSize: { x: number, y: number },
|
||||
rangeTemperature: { max: number, min: number },
|
||||
thermoCamConnected: boolean,
|
||||
thermoOptionActive: boolean,
|
||||
lastTakenImage: Date,
|
||||
} = null;
|
||||
|
||||
@Watch("warmers", { deep: true })
|
||||
@@ -53,6 +61,13 @@ export default class Thermocamera extends Vue {
|
||||
async mounted() {
|
||||
this.ChangedTemps();
|
||||
this.TCamData = await warmersService.GetTCamData();
|
||||
|
||||
messageService.subscribeToChannel("new-thermocam-image", (args)=>{
|
||||
if(this.TCamData){
|
||||
console.log(args)
|
||||
this.TCamData.lastTakenImage = args[0];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
get selectedChannels(): Warmers.IChannel[] {
|
||||
@@ -75,6 +90,45 @@ export default class Thermocamera extends Vue {
|
||||
// return (store.state.warmers.tCamStatus.thermoCamMode);
|
||||
// }
|
||||
|
||||
get thermocameraImageUrl(){
|
||||
if(!this.TCamData || moment(this.TCamData.lastTakenImage).year() <= 2000)
|
||||
return "/thermoprophet/colored/_last.jpg?lastmod=NOTAVAILABLE";
|
||||
return "/thermoprophet/colored/_last.jpg?lastmod=" + this.TCamData.lastTakenImage;
|
||||
}
|
||||
|
||||
get thermocameraImageOk(): boolean {
|
||||
clearInterval(this.timeoutLastTakenImage);
|
||||
this.timeCamDiff = " "
|
||||
|
||||
if(!this.TCamData)
|
||||
return false;
|
||||
|
||||
if(moment(this.TCamData.lastTakenImage).year() > 2000)
|
||||
{
|
||||
this.lastTakenImageFuncion();
|
||||
this.timeoutLastTakenImage = setInterval(this.lastTakenImageFuncion,10000);
|
||||
return true;
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
lastTakenImageFuncion(){
|
||||
var today = moment(new Date());
|
||||
var end = moment(this.TCamData.lastTakenImage);
|
||||
var diff = (moment.duration(today.diff(end)) as any)._data;
|
||||
var seconds = diff.seconds;
|
||||
var minutes = diff.minutes;
|
||||
var hours = diff.hours;
|
||||
|
||||
if(hours >0)
|
||||
this.timeCamDiff = hours + "h " + minutes + "m ";
|
||||
else if(minutes >0)
|
||||
this.timeCamDiff = minutes + "m " + seconds + "s ";
|
||||
else
|
||||
this.timeCamDiff = seconds + "s";
|
||||
}
|
||||
|
||||
get thermocameraModeBTN(): boolean {
|
||||
return (store.state.warmers.tCamStatus.thermoCamOnOff);
|
||||
}
|
||||
|
||||
+4
-3
@@ -111,8 +111,8 @@
|
||||
@methodChanged="m => selectionMethod = m"
|
||||
:recipe="recipe"
|
||||
:resistanceMode="resistanceMode"
|
||||
thermoImage="/thermoprophet/colored/_last.jpg"
|
||||
:thermoImageVisible="thermocameraModeBTN"
|
||||
:thermoImage="thermocameraImageUrl"
|
||||
:thermoImageVisible="true"
|
||||
:thermoImageOpacity="thermoImageOpacity"
|
||||
:isThermoProphet="true"
|
||||
></warmers>
|
||||
@@ -128,8 +128,9 @@
|
||||
<button class="btn btn-info square" @click="openThermoModal()">
|
||||
<img src="/assets/icons/png/ico-bt-selez-image.png" />
|
||||
</button>
|
||||
<span>{{timeCamDiff}}</span>
|
||||
<input
|
||||
:disabled="!thermocameraModeBTN"
|
||||
:disabled="!thermocameraImageOk"
|
||||
type="range"
|
||||
orient="vertical"
|
||||
v-model="thermoImageOpacity"
|
||||
|
||||
+6
@@ -70,6 +70,9 @@ export default class VuotoPrincipale extends Vue {
|
||||
if(this.recipe.vacuum_main_2_chart_setpointx.setpointHMI <= 0 && this.recipe.vacuum_main_3_chart_setpointx.setpointHMI <= 0){
|
||||
|
||||
this.recipe.vacuum_main_1_chart_setpointx.setpointHMI = this.recipe.vacuum_main_max_time.setpointHMI;
|
||||
this.recipe.vacuum_main_2_chart_setpointx.setpointHMI = 0;
|
||||
this.recipe.vacuum_main_3_chart_setpointx.setpointHMI = 0;
|
||||
|
||||
}
|
||||
else if (this.recipe.vacuum_main_3_chart_setpointx.setpointHMI > 0){
|
||||
diff = this.recipe.vacuum_main_max_time.setpointHMI -
|
||||
@@ -86,6 +89,7 @@ export default class VuotoPrincipale extends Vue {
|
||||
this.recipe.vacuum_main_3_chart_setpointx.setpointHMI;
|
||||
|
||||
this.recipe.vacuum_main_2_chart_setpointx.setpointHMI = diff;
|
||||
this.recipe.vacuum_main_3_chart_setpointx.setpointHMI = 0;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@@ -103,6 +107,7 @@ export default class VuotoPrincipale extends Vue {
|
||||
this.recipe.vacuum_main_3_chart_setpointx.setpointHMI;
|
||||
|
||||
this.recipe.vacuum_main_2_chart_setpointx.setpointHMI = diff;
|
||||
this.recipe.vacuum_main_3_chart_setpointx.setpointHMI = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,6 +135,7 @@ export default class VuotoPrincipale extends Vue {
|
||||
{
|
||||
if(this.recipe.vacuum_main_3_chart_setpointx.setpointHMI <= 0){
|
||||
this.recipe.vacuum_main_2_chart_setpointx.setpointHMI = this.recipe.vacuum_main_max_time.setpointHMI - this.recipe.vacuum_main_1_chart_setpointx.setpointHMI;
|
||||
this.recipe.vacuum_main_3_chart_setpointx.setpointHMI = 0;
|
||||
}
|
||||
else{
|
||||
diff = this.recipe.vacuum_main_max_time.setpointHMI -
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
.labelOnOff {
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #e8e8e8;
|
||||
font-size: 18px;
|
||||
}
|
||||
.labelOnOff label {
|
||||
width: 200px;
|
||||
text-align: end;
|
||||
padding-right: 10px;
|
||||
}
|
||||
+15
@@ -1 +1,16 @@
|
||||
@import "../../../variable.less";
|
||||
|
||||
.labelOnOff{
|
||||
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #e8e8e8;
|
||||
font-size: 18px;
|
||||
label{
|
||||
width: 200px;
|
||||
text-align: end;
|
||||
padding-right: 10px;
|
||||
}
|
||||
}
|
||||
+38
-1
@@ -2,8 +2,45 @@ import { Component, Vue } from "vue-property-decorator";
|
||||
import Header from "../../../header/my-header.vue";
|
||||
import MenuSx from "../../../menu-sx/menu-sx.vue";
|
||||
import AssiTable from "../../../Assi/components/tables/assi-table/assi-table.vue";
|
||||
import { underTheHoodService } from "@/services/underTheHoodService";
|
||||
import { awaiter, messageService } from "@/_base";
|
||||
import { Modal as modal, ModalHelper } from "@/components/modals";
|
||||
|
||||
@Component({
|
||||
components: { Header, MenuSx, AssiTable }
|
||||
})
|
||||
export default class Assi extends Vue {}
|
||||
export default class Assi extends Vue {
|
||||
|
||||
isEditable = false;
|
||||
isComunicating = false;
|
||||
|
||||
async mounted(){
|
||||
this.isComunicating = true;
|
||||
this.isEditable = await awaiter (underTheHoodService.GetAxesAdvMode());
|
||||
this.isComunicating = false;
|
||||
}
|
||||
|
||||
async enableDisable(evt){
|
||||
this.isComunicating = true;
|
||||
evt.preventDefault();
|
||||
|
||||
if(!this.isEditable)
|
||||
{
|
||||
ModalHelper.AskConfirm( this.$options.filters.localize("modal_confirm_title", "Richiesta di conferma"),
|
||||
this.$options.filters.localize("softkey_confirm", "Confirm?"),
|
||||
async() => {
|
||||
await awaiter (underTheHoodService.SetAxesAdvMode(!this.isEditable));
|
||||
this.isEditable = !this.isEditable;
|
||||
}, null, "modal");
|
||||
}
|
||||
else
|
||||
{
|
||||
await awaiter (underTheHoodService.SetAxesAdvMode(!this.isEditable));
|
||||
this.isEditable = !this.isEditable;
|
||||
}
|
||||
|
||||
this.isComunicating = false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+16
-1
@@ -1,6 +1,21 @@
|
||||
<template>
|
||||
<div class="column-page-one-column">
|
||||
<AssiTable></AssiTable>
|
||||
<AssiTable :isEditable="isEditable"></AssiTable>
|
||||
<div class="menu">
|
||||
<div class="load">
|
||||
</div>
|
||||
<div class="toReload">
|
||||
<div class="labelOnOff">
|
||||
<label>{{'underthehood_label_axis_enabled' | localize('Enabled')}}</label>
|
||||
<div class="togglebutton">
|
||||
<label>
|
||||
<input type="checkbox" :checked="isEditable" :disabled="this.isComunicating" @click='enableDisable'>
|
||||
<span class="toggle">{{isEditable ?"ON":"OFF"}}</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<style lang="less">
|
||||
|
||||
+21
-2
@@ -3,6 +3,8 @@ import { AppModel } from "@/store";
|
||||
import { underTheHoodService } from "@/services/underTheHoodService";
|
||||
import { Prop, Watch } from "vue-property-decorator";
|
||||
import { awaiter, messageService } from "@/_base";
|
||||
import { ModalHelper } from "@/components/modals";
|
||||
import { ModalInfoAxis } from "@/modules/base-components";
|
||||
|
||||
@Component({})
|
||||
export default class AsseRowItem extends Vue {
|
||||
@@ -19,8 +21,10 @@ export default class AsseRowItem extends Vue {
|
||||
@Prop()
|
||||
isSlave: boolean;
|
||||
|
||||
isSendingCMD = false;
|
||||
@Prop()
|
||||
isEditable: boolean;
|
||||
|
||||
isSendingCMD = false;
|
||||
|
||||
get forcedValue() { return { setpointHMI: this.item.axPos, range: { min: -32768, max: 32767 } }; }
|
||||
|
||||
@@ -33,14 +37,29 @@ export default class AsseRowItem extends Vue {
|
||||
}
|
||||
|
||||
getNumber(value){
|
||||
return value.toFixed(2);;
|
||||
return value.toFixed(1);
|
||||
}
|
||||
|
||||
hexNumber(num){
|
||||
return num.toString(16);
|
||||
}
|
||||
|
||||
openCollapse(){
|
||||
this.$emit("openCollapse");
|
||||
}
|
||||
|
||||
|
||||
details() {
|
||||
ModalHelper.selectedAxisModal.id = this.item.id;
|
||||
ModalHelper.selectedAxisModal.name = this.item.name;
|
||||
ModalHelper.selectedAxisModal.status = this.item.statusCode;
|
||||
ModalHelper.ShowModal(ModalInfoAxis);
|
||||
}
|
||||
|
||||
async sendCommand(cmd,ax){
|
||||
if(!this.isEditable)
|
||||
return;
|
||||
|
||||
this.isSendingCMD = true;
|
||||
if(this.forcedValue.setpointHMI)
|
||||
await awaiter (underTheHoodService.sendAxisCommand(ax.id,cmd,this.forcedValue.setpointHMI));
|
||||
|
||||
+17
-20
@@ -11,12 +11,14 @@
|
||||
</td>
|
||||
<td class="transp" v-else> </td>
|
||||
<td>{{ item.name }}</td>
|
||||
<td>{{ getNumber(item.position) }}</td>
|
||||
<td>{{ getNumber(item.speed) }}</td>
|
||||
<td>{{ getNumber(item.load) }}</td>
|
||||
<td>{{ item.statusCode }}</td>
|
||||
<td>{{ item.errorCode }}</td>
|
||||
<td>{{ item.movPhase }}</td>
|
||||
<td class="left">{{ getNumber(item.position) }}</td>
|
||||
<td class="left">{{ getNumber(item.speed) }}</td>
|
||||
<td class="left">{{ getNumber(item.load) }}</td>
|
||||
<td class="left status" @click="details()" >
|
||||
0x{{ hexNumber(item.statusCode) }} <button class="btn button-details small">?</button>
|
||||
</td>
|
||||
<td class="left">0x{{ hexNumber(item.errorCode) }}</td>
|
||||
<td class="left">{{ item.movPhase }}</td>
|
||||
<td>
|
||||
<span class="buttons-container">
|
||||
<numeric
|
||||
@@ -24,31 +26,26 @@
|
||||
v-model="forcedValue"
|
||||
keyboard-position="left"
|
||||
/>
|
||||
<button v-if="isvisible(item.enabledWord,1)" @click="sendCommand('MoveAbsolute',item)" :disabled="isSendingCMD">
|
||||
<button v-if="isvisible(item.enabledWord,1)" @click="sendCommand('MoveAbsolute',item)" :disabled="isSendingCMD || !isEditable">
|
||||
<label>{{'underthehood_btn_move' | localize("Move")}}</label>
|
||||
</button>
|
||||
<button v-if="isvisible(item.enabledWord,8)" @click="sendCommand('Align',item)" :disabled="isSendingCMD">
|
||||
<button v-if="isvisible(item.enabledWord,8)" @click="sendCommand('Align',item)" :disabled="isSendingCMD || !isEditable">
|
||||
<label>{{'underthehood_btn_align' | localize("Align")}}</label>
|
||||
</button>
|
||||
<button v-if="isvisible(item.enabledWord,16)" @click="sendCommand('Probe',item)" :disabled="isSendingCMD">
|
||||
<button v-if="isvisible(item.enabledWord,16)" @click="sendCommand('Probe',item)" :disabled="isSendingCMD || !isEditable">
|
||||
<label>{{'underthehood_btn_probe' | localize("Probe")}}</label>
|
||||
</button>
|
||||
<button v-if="isvisible(item.enabledWord,32)" @click="sendCommand('SetSlavePosition',item)" :disabled="isSendingCMD">
|
||||
<button v-if="isvisible(item.enabledWord,32)" @click="sendCommand('SetSlavePosition',item)" :disabled="isSendingCMD || !isEditable">
|
||||
<label>{{'underthehood_btn_setslaves' | localize("Set slaves position")}}</label>
|
||||
</button>
|
||||
<button v-if="isvisible(item.enabledWord,64)" @click="sendCommand('Reset',item)" :disabled="isSendingCMD">
|
||||
<button v-if="isvisible(item.enabledWord,64)" @click="sendCommand('Reset',item)" :disabled="isSendingCMD || !isEditable">
|
||||
<label>{{'underthehood_btn_zero' | localize("Zero")}}</label>
|
||||
</button>
|
||||
|
||||
<button v-if="isvisible(item.enabledWord,2)" @click="sendCommand('JogIncMinus',item)" :disabled="isSendingCMD">
|
||||
<span class="controlli-icon pointer">
|
||||
<img src="assets/icons/sotto-cofano/png/ico-bt-minus.png" />
|
||||
</span>
|
||||
<button v-if="isvisible(item.enabledWord,2)" @click="sendCommand('JogIncMinus',item)" :disabled="isSendingCMD || !isEditable">
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
<button v-if="isvisible(item.enabledWord,4)" @click="sendCommand('JogIncPlus',item)" :disabled="isSendingCMD">
|
||||
<span class="controlli-icon pointer">
|
||||
<img src="assets/icons/sotto-cofano/png/ico-bt-plus.png" />
|
||||
</span>
|
||||
<button v-if="isvisible(item.enabledWord,4)" @click="sendCommand('JogIncPlus',item)" :disabled="isSendingCMD || !isEditable">
|
||||
<i class="fa fa-plus"></i>
|
||||
</button>
|
||||
</span>
|
||||
</td>
|
||||
|
||||
+14
@@ -22,6 +22,17 @@
|
||||
.assi-table td.transp {
|
||||
background-color: #657178;
|
||||
}
|
||||
.assi-table th.left,
|
||||
.assi-table td.left {
|
||||
text-align: end;
|
||||
}
|
||||
.assi-table th.status,
|
||||
.assi-table td.status {
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.assi-table .transpRow {
|
||||
background-color: #657178;
|
||||
height: 10px;
|
||||
@@ -59,6 +70,9 @@
|
||||
font-size: 18px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
.assi-table .buttons-container > button i {
|
||||
margin: 0px 10px;
|
||||
}
|
||||
.assi-table .buttons-container > button:disabled {
|
||||
background-image: none;
|
||||
background-color: #818a8f;
|
||||
|
||||
+12
@@ -25,6 +25,15 @@
|
||||
&.transp{
|
||||
background-color: #657178;
|
||||
}
|
||||
&.left{
|
||||
text-align: end;
|
||||
}
|
||||
&.status{
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
|
||||
.transpRow{
|
||||
@@ -69,6 +78,9 @@
|
||||
color: @very-light-pink;
|
||||
font-size: 18px;
|
||||
padding: 0 10px;
|
||||
i{
|
||||
margin: 0px 10px;
|
||||
}
|
||||
&:disabled{
|
||||
background-image: none;
|
||||
background-color: #818a8f;
|
||||
|
||||
+9
-3
@@ -1,12 +1,17 @@
|
||||
import { Component, Vue } from "vue-property-decorator";
|
||||
import { AppModel } from "@/store";
|
||||
import { underTheHoodService } from "@/services/underTheHoodService";
|
||||
import { Prop, Watch } from "vue-property-decorator";
|
||||
import AsseRowItem from "./asse-row-item.vue";
|
||||
|
||||
@Component({
|
||||
components: { AsseRowItem }
|
||||
})
|
||||
export default class AssiTable extends Vue {
|
||||
|
||||
@Prop()
|
||||
isEditable: boolean;
|
||||
|
||||
groupVisible: string[] = [];
|
||||
|
||||
get axis() {
|
||||
@@ -14,15 +19,15 @@ export default class AssiTable extends Vue {
|
||||
}
|
||||
|
||||
get masters(){
|
||||
return (<any>Object).values(this.axis).filter(ax => ax.masterID == 0);
|
||||
return (<any>Object).values(this.axis).filter(ax => ax.masterID == 0 && ax.visible == true);
|
||||
}
|
||||
|
||||
hasSlave(id){
|
||||
return ((<any>Object).values(this.axis).filter(ax => ax.masterID == id).length > 0);
|
||||
return ((<any>Object).values(this.axis).filter(ax => ax.masterID == id && ax.visible == true).length > 0);
|
||||
}
|
||||
|
||||
salves(id){
|
||||
return (<any>Object).values(this.axis).filter(ax => ax.masterID == id);
|
||||
return (<any>Object).values(this.axis).filter(ax => ax.masterID == id && ax.visible == true);
|
||||
}
|
||||
|
||||
openCollapse(group: string) {
|
||||
@@ -31,5 +36,6 @@ export default class AssiTable extends Vue {
|
||||
else this.groupVisible.push(group);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
+8
-6
@@ -5,12 +5,12 @@
|
||||
<tr>
|
||||
<th class="assi-selector"> </th>
|
||||
<th class="assi-axis">{{'underthehood_label_axes' | localize("Asse")}}</th>
|
||||
<th class="assi-position">{{'underthehood_label_position' | localize("Position")}}</th>
|
||||
<th class="assi-velocity">{{'underthehood_label_speed' | localize("Velocity")}}</th>
|
||||
<th class="assi-velocity">{{'underthehood_label_torque' | localize("Torque")}}</th>
|
||||
<th class="assi-velocity">{{'underthehood_label_status' | localize("Status")}}</th>
|
||||
<th class="assi-velocity">{{'underthehood_label_errorcode' | localize("Error Code")}}</th>
|
||||
<th class="fase-motion">{{'underthehood_label_motion' | localize("Fase Motion")}}</th>
|
||||
<th class="assi-position left">{{'underthehood_label_position' | localize("Position")}}</th>
|
||||
<th class="assi-velocity left">{{'underthehood_label_speed' | localize("Velocity")}}</th>
|
||||
<th class="assi-velocity left">{{'underthehood_label_torque' | localize("Torque")}}</th>
|
||||
<th class="assi-velocity left">{{'underthehood_label_status' | localize("Status")}}</th>
|
||||
<th class="assi-velocity left">{{'underthehood_label_errorcode' | localize("Error Code")}}</th>
|
||||
<th class="assi-velocity left">{{'underthehood_label_motion' | localize("Fase Motion")}}</th>
|
||||
<th class="assi-buttons"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -23,6 +23,7 @@
|
||||
:hasSlave="hasSlave(item.id)"
|
||||
:isSlave="false"
|
||||
:isOpened="groupVisible.includes(item.id)"
|
||||
:isEditable="isEditable"
|
||||
@openCollapse="openCollapse(item.id)"
|
||||
/>
|
||||
|
||||
@@ -34,6 +35,7 @@
|
||||
:hasSlave="false"
|
||||
:isSlave="true"
|
||||
:isOpened="groupVisible.includes(item.id)"
|
||||
:isEditable="isEditable"
|
||||
@openCollapse="openCollapse(item.id)"
|
||||
/>
|
||||
</template>
|
||||
|
||||
+2
-2
@@ -27,8 +27,8 @@ export default class outputRow extends Vue {
|
||||
async force(value: number) {
|
||||
if(!this.item.isForced && (this.item.forcedValue === undefined || value != this.item.forcedValue))
|
||||
{
|
||||
ModalHelper.AskConfirm( this.$options.filters.localize("modal_confirm_title", "Richiesta di conferma"),
|
||||
this.$options.filters.localize("softkey_confirm", "Confirm?"),
|
||||
ModalHelper.AskConfirm( this.$options.filters.localize("Richiesta di conferma","modal_confirm_title"),
|
||||
this.$options.filters.localize("Confirm?","softkey_confirm"),
|
||||
async() => {
|
||||
await underTheHoodService.forceChannel(this.group, this.item, value);
|
||||
}, null, "modal");
|
||||
|
||||
+11
@@ -1,3 +1,14 @@
|
||||
.main-container .button-details {
|
||||
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.4) !important;
|
||||
background-image: linear-gradient(to bottom, #818a8f 0%, #42494e 98%) !important;
|
||||
color: #e8e8e8 !important;
|
||||
}
|
||||
.main-container .button-details.small {
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
margin-right: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.main-container .log-ciclo-automatico-table tbody tr:nth-child(odd) {
|
||||
background-color: #747f85;
|
||||
}
|
||||
|
||||
+7
@@ -9,6 +9,13 @@
|
||||
#42494e 98%
|
||||
) !important;
|
||||
color: @very-light-pink !important;
|
||||
|
||||
&.small{
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
margin-right: 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.log-ciclo-automatico-table {
|
||||
|
||||
+31
-2
@@ -2,8 +2,37 @@ import { Component, Vue } from "vue-property-decorator";
|
||||
import Header from "../../../header/my-header.vue";
|
||||
import MenuSx from "../../../menu-sx/menu-sx.vue";
|
||||
import LogMisurazioniTable from "../../../LogMisurazioni/components/tables/log-misurazioni-table/log-misurazioni-table.vue";
|
||||
import { awaiter, messageService } from "@/_base";
|
||||
import { CustomPagination } from "@/components/pagination";
|
||||
import { Watch } from "vue-property-decorator";
|
||||
import { underTheHoodService } from "@/services/underTheHoodService";
|
||||
|
||||
@Component({
|
||||
components: { Header, MenuSx, LogMisurazioniTable }
|
||||
components: { Header, MenuSx, LogMisurazioniTable,CustomPagination }
|
||||
})
|
||||
export default class LogMisurazioni extends Vue {}
|
||||
export default class LogMisurazioni extends Vue {
|
||||
|
||||
currentPage: number = 0;
|
||||
itemsPerPage: number = 10;
|
||||
totalPages: number = 1;
|
||||
|
||||
rowData = [];
|
||||
|
||||
async mounted(){
|
||||
this.reload();
|
||||
}
|
||||
|
||||
@Watch("currentPage", { deep: true })
|
||||
async getLogs(){
|
||||
var from = ((this.currentPage) * 10);
|
||||
this.rowData = (await awaiter(underTheHoodService.GetHistorySheetsFitered(from,this.itemsPerPage)));
|
||||
}
|
||||
|
||||
|
||||
async reload(){
|
||||
this.currentPage = 0;
|
||||
this.totalPages = await awaiter(underTheHoodService.GetHistorySheetsCount()) / this.itemsPerPage;
|
||||
this.getLogs();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+13
-1
@@ -1,6 +1,18 @@
|
||||
<template>
|
||||
<div class="column-page-one-column">
|
||||
<LogMisurazioniTable></LogMisurazioniTable>
|
||||
<LogMisurazioniTable :rowData="rowData"></LogMisurazioniTable>
|
||||
<div class="menu">
|
||||
<div class="load">
|
||||
<custom-pagination
|
||||
v-model="currentPage"
|
||||
:items-per-page="itemsPerPage"
|
||||
:total-pages="totalPages"
|
||||
></custom-pagination>
|
||||
</div>
|
||||
<div class="toReload">
|
||||
<button class="btn" @click="reload()"><i class="fa fa-refresh"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<style lang="less">
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
.main-container th,
|
||||
.main-container td {
|
||||
padding: 0 5px;
|
||||
}
|
||||
.main-container th.left,
|
||||
.main-container td.left {
|
||||
text-align: end;
|
||||
}
|
||||
.main-container th.lastre-date,
|
||||
.main-container td.lastre-date {
|
||||
width: 20%;
|
||||
}
|
||||
.main-container th.lastre-recipe,
|
||||
.main-container td.lastre-recipe {
|
||||
width: 20%;
|
||||
}
|
||||
.main-container th.lastre-numpezzo,
|
||||
.main-container td.lastre-numpezzo {
|
||||
width: 10%;
|
||||
}
|
||||
.main-container th.lastre-type,
|
||||
.main-container td.lastre-type {
|
||||
width: 20%;
|
||||
}
|
||||
.main-container th.lastre-value,
|
||||
.main-container td.lastre-value {
|
||||
width: 30%;
|
||||
}
|
||||
+15
-12
@@ -3,21 +3,24 @@
|
||||
.main-container {
|
||||
th,
|
||||
td {
|
||||
&.misurazioni-value {
|
||||
width: 322px;
|
||||
max-width: 322px;
|
||||
padding: 0 5px;
|
||||
&.left{
|
||||
text-align: end;
|
||||
}
|
||||
&.misurazioni-recipe {
|
||||
width: 539px;
|
||||
max-width: 539px;
|
||||
&.lastre-date {
|
||||
width: 20%;
|
||||
}
|
||||
&.misurazioni-date {
|
||||
width: 313px;
|
||||
max-width: 313px;
|
||||
&.lastre-recipe {
|
||||
width: 20%;
|
||||
}
|
||||
&.misurazioni-type {
|
||||
width: 187px;
|
||||
max-width: 187px;
|
||||
&.lastre-numpezzo {
|
||||
width: 10%;
|
||||
}
|
||||
&.lastre-type {
|
||||
width: 20%;
|
||||
}
|
||||
&.lastre-value {
|
||||
width: 30%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+25
-75
@@ -1,83 +1,33 @@
|
||||
import { Component, Vue } from "vue-property-decorator";
|
||||
import { Prop } from "vue-property-decorator";
|
||||
import moment from "moment";
|
||||
|
||||
@Component({})
|
||||
export default class LogMisurazioniTable extends Vue {
|
||||
rowData = [];
|
||||
|
||||
@Prop({ default: []})
|
||||
rowData:any;
|
||||
|
||||
mounted() {
|
||||
this.rowData = [
|
||||
{
|
||||
date: "2020-09-16 00:23:20 UTC",
|
||||
recipe: "Recipe name [30]",
|
||||
type: "Lenght",
|
||||
value: "568.08 mm [589.92 mm - 21.84 mm]"
|
||||
},
|
||||
{
|
||||
date: "2020-09-16 00:23:20 UTC",
|
||||
recipe: "Recipe name [30]",
|
||||
type: "Lenght",
|
||||
value: "568.08 mm [589.92 mm - 21.84 mm]"
|
||||
},
|
||||
{
|
||||
date: "2020-09-16 00:23:20 UTC",
|
||||
recipe: "Recipe name [30]",
|
||||
type: "Lenght",
|
||||
value: "568.08 mm [589.92 mm - 21.84 mm]"
|
||||
},
|
||||
{
|
||||
date: "2020-09-16 00:23:20 UTC",
|
||||
recipe: "Recipe name [30]",
|
||||
type: "Lenght",
|
||||
value: "568.08 mm [589.92 mm - 21.84 mm]"
|
||||
},
|
||||
{
|
||||
date: "2020-09-16 00:23:20 UTC",
|
||||
recipe: "Recipe name [30]",
|
||||
type: "Lenght",
|
||||
value: "568.08 mm [589.92 mm - 21.84 mm]"
|
||||
},
|
||||
{
|
||||
date: "2020-09-16 00:23:20 UTC",
|
||||
recipe: "Recipe name [30]",
|
||||
type: "Lenght",
|
||||
value: "568.08 mm [589.92 mm - 21.84 mm]"
|
||||
},
|
||||
{
|
||||
date: "2020-09-16 00:23:20 UTC",
|
||||
recipe: "Recipe name [30]",
|
||||
type: "Lenght",
|
||||
value: "568.08 mm [589.92 mm - 21.84 mm]"
|
||||
},
|
||||
{
|
||||
date: "2020-09-16 00:23:20 UTC",
|
||||
recipe: "Recipe name [30]",
|
||||
type: "Lenght",
|
||||
value: "568.08 mm [589.92 mm - 21.84 mm]"
|
||||
},
|
||||
{
|
||||
date: "2020-09-16 00:23:20 UTC",
|
||||
recipe: "Recipe name [30]",
|
||||
type: "Lenght",
|
||||
value: "568.08 mm [589.92 mm - 21.84 mm]"
|
||||
},
|
||||
{
|
||||
date: "2020-09-16 00:23:20 UTC",
|
||||
recipe: "Recipe name [30]",
|
||||
type: "Lenght",
|
||||
value: "568.08 mm [589.92 mm - 21.84 mm]"
|
||||
},
|
||||
{
|
||||
date: "2020-09-16 00:23:20 UTC",
|
||||
recipe: "Recipe name [30]",
|
||||
type: "Lenght",
|
||||
value: "568.08 mm [589.92 mm - 21.84 mm]"
|
||||
},
|
||||
{
|
||||
date: "2020-09-16 00:23:20 UTC",
|
||||
recipe: "Recipe name [30]",
|
||||
type: "Lenght",
|
||||
value: "568.08 mm [589.92 mm - 21.84 mm]"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
convertDate(date) {
|
||||
return moment(date).format('L');
|
||||
}
|
||||
convertDateToTime(date) {
|
||||
return moment(date).format('LTS');
|
||||
}
|
||||
|
||||
convertType(item){
|
||||
if (!item || item == 0)
|
||||
return "ND"
|
||||
else if (item == 1)
|
||||
return "PALLET HEIGHT"
|
||||
else if (item == 2)
|
||||
return "SHEET TICKNESS"
|
||||
else if (item == 2)
|
||||
return "SHEET LENGTH"
|
||||
else
|
||||
return "ND"
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user