diff --git a/Client.Config/SubModels/VendorHmi.cs b/Client.Config/SubModels/VendorHmi.cs
index 138949e8..f59ebc89 100644
--- a/Client.Config/SubModels/VendorHmi.cs
+++ b/Client.Config/SubModels/VendorHmi.cs
@@ -10,7 +10,7 @@ namespace Client.Config.SubModels
{
public Boolean Enabled { get; set; }
public Boolean FollowNcWindow { get; set; }
- public ushort Type { get; set; } /* 0: Demo - 1: Fanuc - 2: Siemens - 3: Osai */
+ public ushort Type { get; set; } /* 0: Demo - 1: Fanuc - 2: Siemens - 3: Osai - 4: Siemens S7 */
public string IpAddress { get; set; }
public string Port { get; set; }
diff --git a/Client/View/NcWindow.cs b/Client/View/NcWindow.cs
index f55d6477..518bf019 100644
--- a/Client/View/NcWindow.cs
+++ b/Client/View/NcWindow.cs
@@ -1283,6 +1283,21 @@ namespace Active_Client.View
ncWindowHeight = HMI_WINDOW_HEIGHT_OSAI;
ncWindowX = HMI_WINDOW_POS_X_OSAI;
ncWindowY = HMI_WINDOW_POS_Y_OSAI;
+ }; break;
+
+ // 4: Siemens S7
+ case 4:
+ {
+ processname = DemoName;
+ processpath = @"C:\CMS\ACTIVE\DEMO" + DemoPath;
+ ncWindowWidth = 0;
+ ncWindowHeight = 0;
+ ncWindowX = 0;
+ ncWindowY = 0; ;
+ //ncWindowWidth = HMI_WINDOW_WIDTH_SIEMENS;
+ //ncWindowHeight = HMI_WINDOW_HEIGHT_SIEMENS;
+ //ncWindowX = HMI_WINDOW_POS_X_SIEMENS;
+ //ncWindowY = HMI_WINDOW_POS_Y_SIEMENS;
}; break;
}
}
diff --git a/Client/View/OpeningForm.cs b/Client/View/OpeningForm.cs
index 9fa1a0f3..8196fbc6 100644
--- a/Client/View/OpeningForm.cs
+++ b/Client/View/OpeningForm.cs
@@ -257,6 +257,8 @@ namespace Active_Client.View
Config.VendorHmiConfig.Type = 2;
else if (ncVendorName.Equals("OSAI"))
Config.VendorHmiConfig.Type = 3;
+ else if (ncVendorName.Equals("S7NET"))
+ Config.VendorHmiConfig.Type = 4;
else
{
setStatus("Close the application!", "Errror in configuration, from server");
diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll
index 48dde955..523efeac 100644
Binary files a/Libs/CMS_CORE_Library.dll and b/Libs/CMS_CORE_Library.dll differ
diff --git a/Libs/CMS_CORE_Library.dll.config b/Libs/CMS_CORE_Library.dll.config
new file mode 100644
index 00000000..0cdd501f
--- /dev/null
+++ b/Libs/CMS_CORE_Library.dll.config
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Libs/System.Windows.Interactivity.dll b/Libs/System.Windows.Interactivity.dll
new file mode 100644
index 00000000..931c744c
Binary files /dev/null and b/Libs/System.Windows.Interactivity.dll differ
diff --git a/Thermo.Active.CmsConnectGateway/Properties/AssemblyInfo.cs b/Thermo.Active.CmsConnectGateway/Properties/AssemblyInfo.cs
index 8255f089..541dc50d 100644
--- a/Thermo.Active.CmsConnectGateway/Properties/AssemblyInfo.cs
+++ b/Thermo.Active.CmsConnectGateway/Properties/AssemblyInfo.cs
@@ -5,12 +5,12 @@ using System.Runtime.InteropServices;
// Le informazioni generali relative a un assembly sono controllate dal seguente
// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
// associate a un assembly.
-[assembly: AssemblyTitle("Step.CmsConnect")]
+[assembly: AssemblyTitle("Thermo.Active.CmsConnect")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Step.CmsConnect")]
-[assembly: AssemblyCopyright("Copyright © 2019")]
+[assembly: AssemblyProduct("Thermo.Active.CmsConnect")]
+[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/Thermo.Active.Config/Config/areasConfig.xml b/Thermo.Active.Config/Config/areasConfig.xml
index 242d2df5..ae8abc83 100644
--- a/Thermo.Active.Config/Config/areasConfig.xml
+++ b/Thermo.Active.Config/Config/areasConfig.xml
@@ -5,11 +5,6 @@
false
true
-
- true
- false
- true
-
false
true
diff --git a/Thermo.Active.Config/Config/areasConfigValidator.xsd b/Thermo.Active.Config/Config/areasConfigValidator.xsd
index d3ed43d6..f63495a7 100644
--- a/Thermo.Active.Config/Config/areasConfigValidator.xsd
+++ b/Thermo.Active.Config/Config/areasConfigValidator.xsd
@@ -13,16 +13,6 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/Thermo.Active.Config/Config/recipeConfig.xml b/Thermo.Active.Config/Config/recipeConfig.xml
new file mode 100644
index 00000000..b7a4972b
--- /dev/null
+++ b/Thermo.Active.Config/Config/recipeConfig.xml
@@ -0,0 +1,2757 @@
+
+
+
+ 1
+ General
+ Sizes
+ Mould
+ Dim_X
+ Dimensione X
+ integer
+
+
+ 2
+ General
+ Sizes
+ Mould
+ Dim_Y
+ Dimensione Y
+ integer
+
+
+ 3
+ General
+ Sizes
+ Mould
+ Max_Height
+ Altezza massima
+ integer
+
+
+ 4
+ General
+ Sizes
+ Mould
+ Min_Height
+ Altezza minima negativa
+ integer
+
+
+ 5
+ General
+ Sizes
+ Mould
+ Base_Height
+ Altezza base
+ integer
+
+
+ 6
+ General
+ Sizes
+ Sheet
+ Material
+ Materiale
+ enum
+
+
+ 7
+ General
+ Sizes
+ Sheet
+ Dim_X
+ Dimensione X
+ integer
+
+
+ 8
+ General
+ Sizes
+ Sheet
+ Dim_Y
+ Dimensione Y
+ integer
+
+
+ 9
+ General
+ Sizes
+ Sheet
+ Thickness
+ Spessore
+ integer
+
+
+ 10
+ General
+ Sizes
+ Plate
+ Type
+ Tipo
+ enum
+
+
+ 11
+ General
+ Sizes
+ Plate
+ Dim_X
+ Apertura X
+ integer
+
+
+ 12
+ General
+ Sizes
+ Plate
+ Dim_Y
+ Apertura Y
+ integer
+
+
+ 13
+ General
+ Sizes
+ Frame
+ Traverses
+ Traversini
+ enum
+
+
+ 14
+ General
+ Sizes
+ Frame
+ Dim_X
+ Apertura X
+ integer
+
+
+ 15
+ General
+ Sizes
+ Frame
+ Dim_Y
+ Apertura Y
+ integer
+
+
+ 16
+ General
+ Sizes
+ UpperPlate
+ Max_Height
+ Altezza massima
+ integer
+
+
+ 17
+ General
+ Area
+
+ Working_DxSx
+ Zona lavoro DX/SX
+ boolean
+
+
+ 18
+ Positions
+ Mould
+ Lower
+ Position
+ Quota
+ integer
+
+
+ 19
+ Positions
+ Mould
+ Lower
+ Speed
+ Velocità discesa
+ integer
+
+
+ 20
+ Positions
+ Mould
+ Intermediate
+ Position
+ Quota
+ integer
+
+
+ 21
+ Positions
+ Mould
+ Upper
+ Position
+ Quota
+ integer
+
+
+ 22
+ Positions
+ Mould
+ Upper
+ Speed
+ Velocità salita
+ integer
+
+
+ 23
+ Positions
+ Mould
+ UpperDeceleration
+ Position
+ Quota
+ integer
+
+
+ 24
+ Positions
+ Mould
+ UpperDeceleration
+ Speed
+ Velocità di rallentamento salita
+ integer
+
+
+ 25
+ Positions
+ Mould
+ LowerDeceleration
+ Position
+ Quota
+ integer
+
+
+ 26
+ Positions
+ Mould
+ LowerDeceleration
+ Speed
+ Velocità di rallentamento discesa
+ integer
+
+
+ 27
+ Positions
+ Frame
+ Lower
+ Position
+ Quota
+ integer
+
+
+ 28
+ Positions
+ Frame
+ Lower
+ Speed
+ Velocità discesa
+ integer
+
+
+ 29
+ Positions
+ Frame
+ Upper
+ Position
+ Quota
+ integer
+
+
+ 30
+ Positions
+ Frame
+ Upper
+ Speed
+ Velocità salita
+ integer
+
+
+ 31
+ Positions
+ Frame
+ Intermediate
+ Position
+ Quota
+ integer
+
+
+ 32
+ Positions
+ Frame
+ Intermediate
+ Speed
+ Velocità a quota intermedia
+ integer
+
+
+ 33
+ Positions
+ Frame
+ Unload
+ Position
+ Quota
+ integer
+
+
+ 34
+ Positions
+ UpperPlate
+ Lower
+ Position
+ Quota
+ integer
+
+
+ 35
+ Positions
+ UpperPlate
+ Lower
+ Speed
+ Velocità discesa
+ integer
+
+
+ 36
+ Positions
+ UpperPlate
+ Upper
+ Position
+ Quota
+ integer
+
+
+ 37
+ Positions
+ UpperPlate
+ Upper
+ Speed
+ Velocità salita
+ integer
+
+
+ 38
+ Positions
+ UpperPlate
+ UpperDeceleration
+ Position
+ Quota
+ integer
+
+
+ 39
+ Positions
+ UpperPlate
+ UpperDeceleration
+ Speed
+ Velocità di rallentamento salita
+ integer
+
+
+ 40
+ Positions
+ UpperPlate
+ LowerDeceleration
+ Position
+ Quota
+ integer
+
+
+ 41
+ Positions
+ UpperPlate
+ LowerDeceleration
+ Speed
+ Velocità di rallentamento discesa
+ integer
+
+
+ 42
+ Cycle
+ Forming
+
+ Type
+ Tipo
+ enum
+
+
+ 43
+ Cycle
+ Forming
+
+ Pause_Cycle
+ Pausa ciclo
+ boolean
+
+
+ 44
+ Cycle
+ Forming
+
+ Cooling_Enabled
+ Raffreddamento fine ciclo
+ boolean
+
+
+ 45
+ Cycle
+ Forming
+
+ BlowingBox_Enabled
+ Ventilazione cassone fine ciclo
+ boolean
+
+
+ 46
+ Cycle
+ AcrylicFrame
+
+ Enabled
+ Abilitazione
+ boolean
+
+
+ 47
+ Cycle
+ AcrylicFrame
+
+ Time
+ Durata
+ integer
+
+
+ 48
+ Cycle
+ UpperOverheating
+
+ Enabled
+ Abilitazione
+ boolean
+
+
+ 49
+ Cycle
+ UpperOverheating
+
+ Time
+ Durata
+ integer
+
+
+ 50
+ Cycle
+ Crystallisation
+
+ Type
+ Tipo
+ enum
+
+
+ 51
+ Cycle
+ Crystallisation
+
+ Time
+ Durata
+ integer
+
+
+ 52
+ Cycle
+ Loader
+
+ Enable
+ Abilitazione
+ boolean
+
+
+ 53
+ Cycle
+ Loader
+
+ Lifter_LowerPosition_Delay
+ Ritardo discesa sollevatore
+ integer
+
+
+ 54
+ Cycle
+ Loader
+
+ Lifter_UpperPosition_Delay
+ Ritardo salita sollevatore
+ integer
+
+
+ 55
+ Cycle
+ Loader
+
+ Split_Sheet_Time
+ Durata separazione lastra
+ integer
+
+
+ 56
+ Cycle
+ Loader
+
+ Ejector_Position
+ Quota espulsore
+ integer
+
+
+ 57
+ Cycle
+ Loader
+
+ Pallet_Height
+ Altezza bancale
+ integer
+
+
+ 58
+ Cycle
+ Loader
+
+ Center_X
+ Centratura X
+ boolean
+
+
+ 59
+ Cycle
+ Loader
+
+ Center_Y
+ Centratura Y
+ boolean
+
+
+ 60
+ Cycle
+ Loader
+
+ CheckTichness_Enabled
+ Controllo spessore
+ boolean
+
+
+ 61
+ Cycle
+ Loader
+
+ Suckers_Vacuum
+ Vuoto ventose
+ boolean
+
+
+ 62
+ Cycle
+ Loader
+
+ Ionizer_Enabled
+ Abilitazione Ionizzatore
+ boolean
+
+
+ 63
+ Cycle
+ Loader
+
+ ManualUnloading_Enabled
+ Funzione scarico pezzo manuale
+ boolean
+
+
+ 64
+ Heats
+ LowerHeaters
+
+ Max_Time
+ Durata massima
+ integer
+
+
+ 65
+ Heats
+ LowerHeaters
+
+ Movement_Enabled
+ Abilizazione movimento
+ boolean
+
+
+ 66
+ Heats
+ LowerHeaters
+
+ Enabled
+ Abilitazione riscaldo
+ boolean
+
+
+ 67
+ Heats
+ LowerHeaters
+
+ Oscillation
+ Oscillazione
+ boolean
+
+
+ 68
+ Heats
+ UpperHeaters
+
+ Max_Time
+ Durata massima
+ integer
+
+
+ 69
+ Heats
+ UpperHeaters
+
+ Movement_Enabled
+ Abilitazione movimento
+ boolean
+
+
+ 70
+ Heats
+ UpperHeaters
+
+ Enabled
+ Abilitazione riscaldo
+ boolean
+
+
+ 71
+ Heats
+ UpperHeaters
+
+ Oscillation
+ Oscillazione
+ boolean
+
+
+ 72
+ Heats
+ DecomSustain
+
+ Type
+ Tipo
+ enum
+
+
+ 73
+ Heats
+ DecomSustain
+
+ Decompression_Flow
+ Portata sostentamento (%)
+ integer
+
+
+ 74
+ Heats
+ DecomSustain
+
+ Min_Blowing_Time
+ Durata minima soffio (ms)
+ integer
+
+
+ 75
+ Heats
+ DecomSustain
+
+ Sustain_Delay
+ Ritardo sostentamento
+ integer
+
+
+ 76
+ Heats
+ DecomSustain
+
+ Decompression_Delay
+ Ritardo decompressione
+ integer
+
+
+ 77
+ Heats
+ DecomSustain
+
+ Decompression_Duration
+ Durata decompressione
+ integer
+
+
+ 78
+ Heats
+ DecomSustain
+
+ Smoke_Function_Enabled
+ Funzione "fumo"
+ boolean
+
+
+ 79
+ Pyrometer
+ Pyrometer
+
+ Enabled
+ Abilitazione
+ boolean
+
+
+ 80
+ Pyrometer
+ Pyrometer
+
+ Setpoint
+ Setpoint (°C/10 int)
+ integer
+
+
+ 81
+ Pyrometer
+ Pyrometer
+
+ Delay
+ Ritardo
+ integer
+
+
+ 82
+ Pyrometer
+ UpperThermoregulator
+
+ Start_Adjustment
+ Inizio regolazione (°C/10)
+ integer
+
+
+ 83
+ Pyrometer
+ UpperThermoregulator
+
+ End_Adjustment
+ Fine regolazione (°C/10)
+ integer
+
+
+ 84
+ Pyrometer
+ UpperThermoregulator
+
+ Min_Percentage
+ Percentuale Minimo (%)
+ integer
+
+
+ 85
+ Pyrometer
+ UpperThermoregulator
+
+ Max_Percentage
+ Percentuale Massimo (%)
+ integer
+
+
+ 86
+ Pyrometer
+ UpperThermoregulator
+
+ Sleep_Enabled
+ Abilitazione Riposo
+ boolean
+
+
+ 87
+ Pyrometer
+ UpperThermoregulator
+
+ Sleep_Percentage
+ Percentuale Riposo (%)
+ integer
+
+
+ 88
+ Pyrometer
+ LowerThermoregulator
+
+ Start_Adjustment
+ Inizio regolazione (°C/10)
+ integer
+
+
+ 89
+ Pyrometer
+ LowerThermoregulator
+
+ End_Adjustment
+ Fine regolazione (°C/10)
+ integer
+
+
+ 90
+ Pyrometer
+ LowerThermoregulator
+
+ Min_Percentage
+ Percentuale Minimo (%)
+ integer
+
+
+ 91
+ Pyrometer
+ LowerThermoregulator
+
+ Max_Percentage
+ Percentuale Massimo (%)
+ integer
+
+
+ 92
+ Pyrometer
+ LowerThermoregulator
+
+ Sleep_Enabled
+ Abilitazione Riposo
+ boolean
+
+
+ 93
+ Pyrometer
+ LowerThermoregulator
+
+ Sleep_Percentage
+ Percentuale Riposo (%)
+ integer
+
+
+ 94
+ Pyrometer
+ UpperThermoregulator
+
+ Sleep_Temperature
+ Temperatura a riposo (°C/10)
+ integer
+
+
+ 95
+ Pyrometer
+ UpperThermoregulator
+
+ Working_Temperature
+ Temperatura a regime (°C/10)
+ integer
+
+
+ 96
+ Pyrometer
+ LowerThermoregulator
+
+ Sleep_Temperature
+ Temperatura a riposo (°C/10)
+ integer
+
+
+ 97
+ Pyrometer
+ LowerThermoregulator
+
+ Working_Temperature
+ Temperatura a regime (°C/10)
+ integer
+
+
+ 98
+ Drawing
+
+
+ Type
+ Tipo
+ enum
+
+
+ 99
+ Drawing
+
+
+ Height
+ Altezza bolla (mm)
+ integer
+
+
+ 100
+ Drawing
+
+
+ Delay
+ Ritardo
+ integer
+
+
+ 101
+ Drawing
+
+ 1
+ Chart_SetpointX
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 102
+ Drawing
+
+ 1
+ Chart_SetpointY
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 103
+ Drawing
+
+
+ Photocell
+ Scelta fotocellula
+ enum
+
+
+ 104
+ Drawing
+
+
+ Mantaining_Flow
+ Portata mantenimento (%)
+ integer
+
+
+ 105
+ Drawing
+
+
+ Manual
+ Portata manuale (%)
+ integer
+
+
+ 106
+ Drawing
+
+
+ Mould_Up_Delay
+ Ritardo Salita Stampo
+ integer
+
+
+ 107
+ UpperPlate
+ Cycle
+
+ Type
+ Tipo
+ enum
+
+
+ 108
+ UpperPlate
+ Cycle
+
+ Delay
+ Ritardo
+ integer
+
+
+ 109
+ UpperPlate
+ Cycle
+
+ Time
+ Durata
+ integer
+
+
+ 110
+ UpperPlate
+ Air
+
+ Enable
+ Abilitazione
+ boolean
+
+
+ 111
+ UpperPlate
+ Air
+
+ Delay
+ Ritardo
+ integer
+
+
+ 112
+ UpperPlate
+ Air
+
+ Max_Time
+ Durata massima
+ integer
+
+
+ 113
+ UpperPlate
+ Air
+ 1
+ Chart_SetpointX
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 114
+ UpperPlate
+ Air
+ 1
+ Chart_SetpointY
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 115
+ UpperPlate
+ Air
+ 2
+ Chart_SetpointX
+ Setpoint 2 Portata/Tempo
+ integer
+
+
+ 116
+ UpperPlate
+ Air
+ 2
+ Chart_SetpointY
+ Setpoint 2 Portata/Tempo
+ integer
+
+
+ 117
+ UpperPlate
+ Air
+ 3
+ Chart_SetpointX
+ Setpoint 3 Portata/Tempo
+ integer
+
+
+ 118
+ UpperPlate
+ Air
+ 3
+ Chart_SetpointY
+ Setpoint 3 Portata/Tempo
+ integer
+
+
+ 119
+ UpperPlate
+ Air
+
+ Manual
+ Portata manuale (%)
+ integer
+
+
+ 120
+ UpperPlate
+ Vacuum
+
+ Enable
+ Abilitazione
+ boolean
+
+
+ 121
+ UpperPlate
+ Vacuum
+
+ Delay
+ Ritardo
+ integer
+
+
+ 122
+ UpperPlate
+ Vacuum
+
+ Max_Time
+ Durata massima
+ integer
+
+
+ 123
+ UpperPlate
+ Vacuum
+ 1
+ Chart_SetpointX
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 124
+ UpperPlate
+ Vacuum
+ 1
+ Chart_SetpointY
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 125
+ UpperPlate
+ Vacuum
+ 2
+ Chart_SetpointX
+ Setpoint 2 Portata/Tempo
+ integer
+
+
+ 126
+ UpperPlate
+ Vacuum
+ 2
+ Chart_SetpointY
+ Setpoint 2 Portata/Tempo
+ integer
+
+
+ 127
+ UpperPlate
+ Vacuum
+ 3
+ Chart_SetpointX
+ Setpoint 3 Portata/Tempo
+ integer
+
+
+ 128
+ UpperPlate
+ Vacuum
+ 3
+ Chart_SetpointY
+ Setpoint 3 Portata/Tempo
+ integer
+
+
+ 129
+ UpperPlate
+ Vacuum
+
+ Manual
+ Portata manuale (%)
+ integer
+
+
+ 130
+ UpperPlate
+ Extraction
+
+ Enable
+ Abilitazione
+ boolean
+
+
+ 131
+ UpperPlate
+ Extraction
+
+ Delay
+ Ritardo
+ integer
+
+
+ 132
+ UpperPlate
+ Extraction
+ 1
+ Chart_SetpointX
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 133
+ UpperPlate
+ Extraction
+ 1
+ Chart_SetpointY
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 134
+ UpperPlate
+ Extraction
+
+ Manual
+ Portata manuale (%)
+ integer
+
+
+ 135
+ Cooling
+ Blowing
+
+ Type
+ Tipo
+ enum
+
+
+ 136
+ Cooling
+ Blowing
+
+ Delay
+ Ritardo
+ integer
+
+
+ 137
+ Cooling
+ Blowing
+
+ Time
+ Durata
+ integer
+
+
+ 138
+ Cooling
+ Pyrometer
+
+ Enabled
+ Abilitazione
+ boolean
+
+
+ 139
+ Cooling
+ Pyrometer
+
+ Setpoint
+ Setpoint (°C/10 int)
+ integer
+
+
+ 140
+ Cooling
+ Pyrometer
+
+ Delay
+ Ritardo
+ integer
+
+
+ 141
+ Cooling
+ Nebulizer
+
+ Type
+ Tipo
+ enum
+
+
+ 142
+ Cooling
+ Nebulizer
+
+ Delay
+ Ritardo
+ integer
+
+
+ 143
+ Cooling
+ Nebulizer
+
+ Time
+ Durata
+ integer
+
+
+ 144
+ Cooling
+ Telescopic
+
+ Enable
+ Abilitazione
+ boolean
+
+
+ 145
+ Cooling
+ Telescopic
+
+ Position
+ Quota
+ integer
+
+
+ 146
+ Cooling
+ Telescopic
+
+ Swing_Enable
+ Abilitazione Oscillazione
+ integer
+
+
+ 147
+ Cooling
+ Telescopic
+
+ Swing_Stroke
+ Corsa Oscillazione
+ integer
+
+
+ 148
+ Cooling
+ Shutter
+ 1
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 149
+ Cooling
+ Shutter
+ 2
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 150
+ Cooling
+ Shutter
+ 3
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 151
+ Cooling
+ Shutter
+ 4
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 152
+ Cooling
+ Shutter
+ 5
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 153
+ Cooling
+ Shutter
+ 6
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 154
+ Cooling
+ Shutter
+ 7
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 155
+ Cooling
+ Shutter
+ 8
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 156
+ Cooling
+ Shutter
+ 9
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 157
+ Cooling
+ Shutter
+ 10
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 158
+ Cooling
+ Shutter
+ 11
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 159
+ Cooling
+ Shutter
+ 12
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 160
+ Cooling
+ Shutter
+ 13
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 161
+ Cooling
+ Shutter
+ 14
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 162
+ Cooling
+ Shutter
+ 15
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 163
+ Cooling
+ Shutter
+ 16
+ Opening_Perc
+ Apertura percentuale
+ integer
+
+
+ 164
+ Vacuum
+ Main
+
+ Start
+ Partenza
+ enum
+
+
+ 165
+ Vacuum
+ Main
+
+ Delay
+ Ritardo
+ integer
+
+
+ 166
+ Vacuum
+ Main
+
+ Max_Time
+ Durata massima
+ integer
+
+
+ 167
+ Vacuum
+ Main
+ 1
+ Chart_SetpointX
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 168
+ Vacuum
+ Main
+ 1
+ Chart_SetpointY
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 169
+ Vacuum
+ Main
+ 2
+ Chart_SetpointX
+ Setpoint 2 Portata/Tempo
+ integer
+
+
+ 170
+ Vacuum
+ Main
+ 2
+ Chart_SetpointY
+ Setpoint 2 Portata/Tempo
+ integer
+
+
+ 171
+ Vacuum
+ Main
+ 3
+ Chart_SetpointX
+ Setpoint 3 Portata/Tempo
+ integer
+
+
+ 172
+ Vacuum
+ Main
+ 3
+ Chart_SetpointY
+ Setpoint 3 Portata/Tempo
+ integer
+
+
+ 173
+ Vacuum
+ Main
+
+ Manual
+ Portata manuale (%)
+ integer
+
+
+ 174
+ Vacuum
+ Direct
+
+ Enabled
+ Abilitazione
+ boolean
+
+
+ 175
+ Vacuum
+ Direct
+
+ Delay
+ Ritardo
+ integer
+
+
+ 176
+ Vacuum
+ Direct
+
+ Time
+ Durata
+ integer
+
+
+ 177
+ Vacuum
+ Aux
+
+ Enabled
+ Abilitazione
+ boolean
+
+
+ 178
+ Vacuum
+ Aux
+
+ Delay
+ Ritardo
+ integer
+
+
+ 179
+ Vacuum
+ Aux
+
+ Max_Time
+ Durata massima
+ integer
+
+
+ 180
+ Vacuum
+ Aux
+ 1
+ Chart_SetpointX
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 181
+ Vacuum
+ Aux
+ 1
+ Chart_SetpointY
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 182
+ Vacuum
+ Aux
+ 2
+ Chart_SetpointX
+ Setpoint 2 Portata/Tempo
+ integer
+
+
+ 183
+ Vacuum
+ Aux
+ 2
+ Chart_SetpointY
+ Setpoint 2 Portata/Tempo
+ integer
+
+
+ 184
+ Vacuum
+ Aux
+ 3
+ Chart_SetpointX
+ Setpoint 3 Portata/Tempo
+ integer
+
+
+ 185
+ Vacuum
+ Aux
+ 3
+ Chart_SetpointY
+ Setpoint 3 Portata/Tempo
+ integer
+
+
+ 186
+ Vacuum
+ Aux
+
+ Manual
+ Portata manuale (%)
+ integer
+
+
+ 187
+ Vacuum
+ Pre
+
+ Enabled
+ Abilitazione
+ boolean
+
+
+ 188
+ Vacuum
+ Pre
+
+ Delay
+ Ritardo
+ integer
+
+
+ 189
+ Vacuum
+ Pre
+
+ Max_Time
+ Durata massima
+ integer
+
+
+ 190
+ Vacuum
+ Pre
+ 1
+ Chart_SetpointX
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 191
+ Vacuum
+ Pre
+ 1
+ Chart_SetpointY
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 192
+ Vacuum
+ Pre
+ 2
+ Chart_SetpointX
+ Setpoint 2 Portata/Tempo
+ integer
+
+
+ 193
+ Vacuum
+ Pre
+ 2
+ Chart_SetpointY
+ Setpoint 2 Portata/Tempo
+ integer
+
+
+ 194
+ Vacuum
+ Pre
+ 3
+ Chart_SetpointX
+ Setpoint 3 Portata/Tempo
+ integer
+
+
+ 195
+ Vacuum
+ Pre
+ 3
+ Chart_SetpointY
+ Setpoint 3 Portata/Tempo
+ integer
+
+
+ 196
+ Extraction
+ Main
+
+ Type
+ Tipo
+ enum
+
+
+ 197
+ Extraction
+ Main
+
+ Mould_Dw_Delay
+ Ritardo Discesa Stampo
+ integer
+
+
+ 198
+ Extraction
+ Main
+
+ Delay
+ Ritardo
+ integer
+
+
+ 199
+ Extraction
+ Main
+ 1
+ Chart_SetpointX
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 200
+ Extraction
+ Main
+ 1
+ Chart_SetpointY
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 201
+ Extraction
+ Main
+
+ Manual
+ Portata manuale (%)
+ integer
+
+
+ 202
+ Extraction
+ Aux
+
+ Enabled
+ Abilitazione
+ boolean
+
+
+ 203
+ Extraction
+ Aux
+
+ Delay
+ Ritardo
+ integer
+
+
+ 204
+ Extraction
+ Aux
+ 1
+ Chart_SetpointX
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 205
+ Extraction
+ Aux
+ 1
+ Chart_SetpointY
+ Setpoint 1 Portata/Tempo
+ integer
+
+
+ 206
+ Extraction
+ Aux
+
+ Manual
+ Portata manuale (%)
+ integer
+
+
+ 207
+ Options
+ UndercutMould
+ 1
+ Mode
+ Modalità
+ enum
+
+
+ 208
+ Options
+ UndercutMould
+ 1
+ Position
+ Quota
+ integer
+
+
+ 209
+ Options
+ UndercutMould
+ 1
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 210
+ Options
+ UndercutMould
+ 1
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 211
+ Options
+ UndercutMould
+ 2
+ Mode
+ Modalità
+ enum
+
+
+ 212
+ Options
+ UndercutMould
+ 2
+ Position
+ Quota
+ integer
+
+
+ 213
+ Options
+ UndercutMould
+ 2
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 214
+ Options
+ UndercutMould
+ 2
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 215
+ Options
+ UndercutMould
+ 3
+ Mode
+ Modalità
+ enum
+
+
+ 216
+ Options
+ UndercutMould
+ 3
+ Position
+ Quota
+ integer
+
+
+ 217
+ Options
+ UndercutMould
+ 3
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 218
+ Options
+ UndercutMould
+ 3
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 219
+ Options
+ UndercutMould
+ 4
+ Mode
+ Modalità
+ enum
+
+
+ 220
+ Options
+ UndercutMould
+ 4
+ Position
+ Quota
+ integer
+
+
+ 221
+ Options
+ UndercutMould
+ 4
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 222
+ Options
+ UndercutMould
+ 4
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 223
+ Options
+ UndercutMould
+ 5
+ Mode
+ Modalità
+ enum
+
+
+ 224
+ Options
+ UndercutMould
+ 5
+ Position
+ Quota
+ integer
+
+
+ 225
+ Options
+ UndercutMould
+ 5
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 226
+ Options
+ UndercutMould
+ 5
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 227
+ Options
+ UndercutMould
+ 6
+ Mode
+ Modalità
+ enum
+
+
+ 228
+ Options
+ UndercutMould
+ 6
+ Position
+ Quota
+ integer
+
+
+ 229
+ Options
+ UndercutMould
+ 6
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 230
+ Options
+ UndercutMould
+ 6
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 231
+ Options
+ UndercutMould
+ 7
+ Mode
+ Modalità
+ enum
+
+
+ 232
+ Options
+ UndercutMould
+ 7
+ Position
+ Quota
+ integer
+
+
+ 233
+ Options
+ UndercutMould
+ 7
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 234
+ Options
+ UndercutMould
+ 7
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 235
+ Options
+ UndercutMould
+ 8
+ Mode
+ Modalità
+ enum
+
+
+ 236
+ Options
+ UndercutMould
+ 8
+ Position
+ Quota
+ integer
+
+
+ 237
+ Options
+ UndercutMould
+ 8
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 238
+ Options
+ UndercutMould
+ 8
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 239
+ Options
+ UndercutMould
+ 9
+ Mode
+ Modalità
+ enum
+
+
+ 240
+ Options
+ UndercutMould
+ 9
+ Position
+ Quota
+ integer
+
+
+ 241
+ Options
+ UndercutMould
+ 9
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 242
+ Options
+ UndercutMould
+ 9
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 243
+ Options
+ UndercutMould
+ 10
+ Mode
+ Modalità
+ enum
+
+
+ 244
+ Options
+ UndercutMould
+ 10
+ Position
+ Quota
+ integer
+
+
+ 245
+ Options
+ UndercutMould
+ 10
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 246
+ Options
+ UndercutMould
+ 10
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 247
+ Options
+ UndercutUpperPlate
+ 1
+ Mode
+ Modalità
+ enum
+
+
+ 248
+ Options
+ UndercutUpperPlate
+ 1
+ Position
+ Quota
+ integer
+
+
+ 249
+ Options
+ UndercutUpperPlate
+ 1
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 250
+ Options
+ UndercutUpperPlate
+ 1
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 251
+ Options
+ UndercutUpperPlate
+ 2
+ Mode
+ Modalità
+ enum
+
+
+ 252
+ Options
+ UndercutUpperPlate
+ 2
+ Position
+ Quota
+ integer
+
+
+ 253
+ Options
+ UndercutUpperPlate
+ 2
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 254
+ Options
+ UndercutUpperPlate
+ 2
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 255
+ Options
+ UndercutUpperPlate
+ 3
+ Mode
+ Modalità
+ enum
+
+
+ 256
+ Options
+ UndercutUpperPlate
+ 3
+ Position
+ Quota
+ integer
+
+
+ 257
+ Options
+ UndercutUpperPlate
+ 3
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 258
+ Options
+ UndercutUpperPlate
+ 3
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 259
+ Options
+ UndercutUpperPlate
+ 4
+ Mode
+ Modalità
+ enum
+
+
+ 260
+ Options
+ UndercutUpperPlate
+ 4
+ Position
+ Quota
+ integer
+
+
+ 261
+ Options
+ UndercutUpperPlate
+ 4
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 262
+ Options
+ UndercutUpperPlate
+ 4
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 263
+ Options
+ UndercutUpperPlate
+ 5
+ Mode
+ Modalità
+ enum
+
+
+ 264
+ Options
+ UndercutUpperPlate
+ 5
+ Position
+ Quota
+ integer
+
+
+ 265
+ Options
+ UndercutUpperPlate
+ 5
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 266
+ Options
+ UndercutUpperPlate
+ 5
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 267
+ Options
+ UndercutUpperPlate
+ 6
+ Mode
+ Modalità
+ enum
+
+
+ 268
+ Options
+ UndercutUpperPlate
+ 6
+ Position
+ Quota
+ integer
+
+
+ 269
+ Options
+ UndercutUpperPlate
+ 6
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 270
+ Options
+ UndercutUpperPlate
+ 6
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 271
+ Options
+ UndercutUpperPlate
+ 7
+ Mode
+ Modalità
+ enum
+
+
+ 272
+ Options
+ UndercutUpperPlate
+ 7
+ Position
+ Quota
+ integer
+
+
+ 273
+ Options
+ UndercutUpperPlate
+ 7
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 274
+ Options
+ UndercutUpperPlate
+ 7
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 275
+ Options
+ UndercutUpperPlate
+ 8
+ Mode
+ Modalità
+ enum
+
+
+ 276
+ Options
+ UndercutUpperPlate
+ 8
+ Position
+ Quota
+ integer
+
+
+ 277
+ Options
+ UndercutUpperPlate
+ 8
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 278
+ Options
+ UndercutUpperPlate
+ 8
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 279
+ Options
+ UndercutUpperPlate
+ 9
+ Mode
+ Modalità
+ enum
+
+
+ 280
+ Options
+ UndercutUpperPlate
+ 9
+ Position
+ Quota
+ integer
+
+
+ 281
+ Options
+ UndercutUpperPlate
+ 9
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 282
+ Options
+ UndercutUpperPlate
+ 9
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 283
+ Options
+ UndercutUpperPlate
+ 10
+ Mode
+ Modalità
+ enum
+
+
+ 284
+ Options
+ UndercutUpperPlate
+ 10
+ Position
+ Quota
+ integer
+
+
+ 285
+ Options
+ UndercutUpperPlate
+ 10
+ Delay_Acti
+ Ritardo attivazione
+ integer
+
+
+ 286
+ Options
+ UndercutUpperPlate
+ 10
+ Delay_Dis
+ Ritardo disattivazione
+ integer
+
+
+ 287
+ Options
+ Thermoregulator
+ 1
+ Enabled
+ Abilitazione Termoregolatore 1
+ boolean
+
+
+ 288
+ Options
+ Thermoregulator
+ 1
+ Setpoint
+ Setpoint Termoregolatore 1
+ boolean
+
+
+ 289
+ Options
+ Thermoregulator
+ 2
+ Enabled
+ Abilitazione Termoregolatore 2
+ boolean
+
+
+ 290
+ Options
+ Thermoregulator
+ 2
+ Setpoint
+ Setpoint Termoregolatore 2
+ boolean
+
+
+ 291
+ Options
+ Thermoregulator
+ 3
+ Enabled
+ Abilitazione Termoregolatore 3
+ boolean
+
+
+ 292
+ Options
+ Thermoregulator
+ 3
+ Setpoint
+ Setpoint Termoregolatore 3
+ boolean
+
+
+ 293
+ Options
+ Thermoregulator
+ 4
+ Enabled
+ Abilitazione Termoregolatore 4
+ boolean
+
+
+ 294
+ Options
+ Thermoregulator
+ 4
+ Setpoint
+ Setpoint Termoregolatore 4
+ boolean
+
+
+ 295
+ Options
+ Thermoregulator
+ 5
+ Enabled
+ Abilitazione Termoregolatore 5
+ boolean
+
+
+ 296
+ Options
+ Thermoregulator
+ 5
+ Setpoint
+ Setpoint Termoregolatore 5
+ boolean
+
+
+ 297
+ Options
+ Thermoregulator
+ 6
+ Enabled
+ Abilitazione Termoregolatore 6
+ boolean
+
+
+ 298
+ Options
+ Thermoregulator
+ 6
+ Setpoint
+ Setpoint Termoregolatore 6
+ boolean
+
+
+ 299
+ Options
+ Thermoregulator
+ 7
+ Enabled
+ Abilitazione Termoregolatore 7
+ boolean
+
+
+ 300
+ Options
+ Thermoregulator
+ 7
+ Setpoint
+ Setpoint Termoregolatore 7
+ boolean
+
+
+ 301
+ Options
+ Thermoregulator
+ 8
+ Enabled
+ Abilitazione Termoregolatore 8
+ boolean
+
+
+ 302
+ Options
+ Thermoregulator
+ 8
+ Setpoint
+ Setpoint Termoregolatore 8
+ boolean
+
+
+ 303
+ Options
+ Thermoregulator
+ 9
+ Enabled
+ Abilitazione Termoregolatore 9
+ boolean
+
+
+ 304
+ Options
+ Thermoregulator
+ 9
+ Setpoint
+ Setpoint Termoregolatore 9
+ boolean
+
+
+ 305
+ Options
+ Thermoregulator
+ 10
+ Enabled
+ Abilitazione Termoregolatore 10
+ boolean
+
+
+ 306
+ Options
+ Thermoregulator
+ 10
+ Setpoint
+ Setpoint Termoregolatore 10
+ boolean
+
+
\ No newline at end of file
diff --git a/Thermo.Active.Config/Config/recipeConfigValidator.xsd b/Thermo.Active.Config/Config/recipeConfigValidator.xsd
new file mode 100644
index 00000000..1add1fe6
--- /dev/null
+++ b/Thermo.Active.Config/Config/recipeConfigValidator.xsd
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Thermo.Active.Config/Config/serverConfig.xml b/Thermo.Active.Config/Config/serverConfig.xml
index ec14f78a..925c2628 100644
--- a/Thermo.Active.Config/Config/serverConfig.xml
+++ b/Thermo.Active.Config/Config/serverConfig.xml
@@ -1,10 +1,10 @@
- DEMO
- true
- localhost
- 8080
+ S7NET
+ false
+ 192.168.0.102
+ 102
Ares 37 OF
C:\PartPrg\
//PARTPRG:/
diff --git a/Thermo.Active.Config/Config/serverConfigValidator.xsd b/Thermo.Active.Config/Config/serverConfigValidator.xsd
index 3348c807..325b6c0c 100644
--- a/Thermo.Active.Config/Config/serverConfigValidator.xsd
+++ b/Thermo.Active.Config/Config/serverConfigValidator.xsd
@@ -1,78 +1,79 @@
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Thermo.Active.Config/Config/toolManagerConfig.xml b/Thermo.Active.Config/Config/toolManagerConfig.xml
deleted file mode 100644
index 16c8352e..00000000
--- a/Thermo.Active.Config/Config/toolManagerConfig.xml
+++ /dev/null
@@ -1,923 +0,0 @@
-
-
-
- DIAMETER
- true
- true
- true
- true
- true
- true
- true
- true
- true
- true
- true
- true
- true
- true
-
-
-
- Cooling
- Raffreddamento
-
-
- Cooling 1
- Raffreddamento 1
-
-
- Cooling 2
- Raffreddamento 2
-
-
- Cooling 3
- Raffreddamento 3
-
-
- Cooling 4
- Raffreddamento 4
-
-
- Cooling 5
- Raffreddamento 5
-
-
- Cooling 6
- Raffreddamento 6
-
-
- Cooling 7
- Raffreddamento 7
-
-
-
-
- 1
- true
-
- Magazine 1
- Magazzino 1
-
-
-
- 2
- false
-
- Magazine 2
- Magazzino 2
-
-
-
- 3
- false
-
- Magazine 3
- Magazzino 3
-
-
-
-
-
-
- 0
- false
-
- Generic
- Generico
- Générique
- Allgemein
- Opće
- Generic
- Algemeen
- Γενικό
- Общий
- Ogólny
- Generisk
- Generel
- Genérico
- Genérico
-
-
-
-
- 10
- false
-
- Angular Transmission
- Rinvio Angolare
- Transmission Angulaire
- Scheibe
- Disk
- Transmisie unghiulară
- Hoekige transmissie
- Γωνιακή μετάδοση
- Угловой контрпривод
- Przekładnia kątowa
- Vinkelöverföring
- Vinkel mellemarm
- Transmissão Angular
- Reenvío Angular
-
-
-
-
- 70
- false
-
- Ultrasound disk amplitude 15%%
- Disco ultrasuoni amplitude 15%%
- Disque à ultrasons, amplitude 15%%
- Ultraschallscheibenamplitude 15%%
- Amplituda ultrazvučnog diska 15%%
- Disc de ultrasunete, amplitudine 15%%
- Ultrasoon schijf amplitude 15%%
- Δίσκος υπερήχων πλάτους 15%%
- Ультразвуковой диск амплитуда 15%%
- Tarcza ultradźwiękowa amplituda 15%%
- Amplitud ultraljudsskiva 15%%
- Ultralydsskive amplitude 15%%
- Disco ultrassom amplitude 15%%
- Disco ultrasonidos amplitud 15%%
-
-
-
-
- 71
- false
-
- Ultrasound disk amplitude 20%%
- Disco ultrasuoni amplitude 20%%
- Disque à ultrasons, amplitude 20%%
- Ultraschallscheibenamplitude 20%%
- Amplituda ultrazvučnog diska 20%%
- Disc de ultrasunete, amplitudine 20%%
- Ultrasoon schijf amplitude 20%%
- Δίσκος υπερήχων πλάτους 20%%
- Ультразвуковой диск амплитуда 20%%
- Tarcza ultradźwiękowa amplituda 20%%
- Amplitud ultraljudsskiva 20%%
- Ultralydsskive amplitude 20%%
- Disco ultrassom amplitude 20%%
- Disco ultrasonidos amplitud 20%%
-
-
-
-
- 72
- false
-
- Ultrasound disk amplitude 30%%
- Disco ultrasuoni amplitude 30%%
- Disque à ultrasons, amplitude 30%%
- Ultraschallscheibenamplitude 30%%
- Amplituda ultrazvučnog diska 30%%
- Disc de ultrasunete, amplitudine 30%%
- Ultrasoon schijf amplitude 30%%
- Δίσκος υπερήχων πλάτους 30%%
- Ультразвуковой диск амплитуда 30%%
- Tarcza ultradźwiękowa amplituda 30%%
- Amplitud ultraljudsskiva 30%%
- Ultralydsskive amplitude 30%%
- Disco ultrassom amplitude 30%%
- Disco ultrasonidos amplitud 30%%
-
-
-
-
- 73
- false
-
- Ultrasound disk amplitude 40%%
- Disco ultrasuoni amplitude 40%%
- Disque à ultrasons, amplitude 40%%
- Ultraschallscheibenamplitude 40%%
- Amplituda ultrazvučnog diska 40%%
- Disc de ultrasunete, amplitudine 40%%
- Ultrasoon schijf amplitude 40%%
- Δίσκος υπερήχων πλάτους 40%%
- Ультразвуковой диск амплитуда 40%%
- Tarcza ultradźwiękowa amplituda 40%%
- Amplitud ultraljudsskiva 40%%
- Ultralydsskive amplitude 40%%
- Disco ultrassom amplitude 40%%
- Disco ultrasonidos amplitud 40%%
-
-
-
-
- 74
- false
-
- Ultrasound disk amplitude 50%%
- Disco ultrasuoni amplitude 50%%
- Disque à ultrasons, amplitude 50%%
- Ultraschallscheibenamplitude 50%%
- Amplituda ultrazvučnog diska 50%%
- Disc de ultrasunete, amplitudine 50%%
- Ultrasoon schijf amplitude 50%%
- Δίσκος υπερήχων πλάτους 50%%
- Ультразвуковой диск амплитуда 50%%
- Tarcza ultradźwiękowa amplituda 50%%
- Amplitud ultraljudsskiva 50%%
- Ultralydsskive amplitude 50%%
- Disco ultrassom amplitude 50%%
- Disco ultrasonidos amplitud 50%%
-
-
-
-
- 75
- false
-
- Ultrasound disk amplitude 60%%
- Disco ultrasuoni amplitude 60%%
- Disque à ultrasons, amplitude 60%%
- Ultraschallscheibenamplitude 60%%
- Amplituda ultrazvučnog diska 60%%
- Disc de ultrasunete, amplitudine 60%%
- Ultrasoon schijf amplitude 60%%
- Δίσκος υπερήχων πλάτους 60%%
- Ультразвуковой диск амплитуда 60%%
- Tarcza ultradźwiękowa amplituda 60%%
- Amplitud ultraljudsskiva 60%%
- Ultralydsskive amplitude 60%%
- Disco ultrassom amplitude 60%%
- Disco ultrasonidos amplitud 60%%
-
-
-
-
- 76
- false
-
- Ultrasound disk amplitude 70%%
- Disco ultrasuoni amplitude 70%%
- Disque à ultrasons, amplitude 70%%
- Ultraschallscheibenamplitude 70%%
- Amplituda ultrazvučnog diska 70%%
- Disc de ultrasunete, amplitudine 70%%
- Ultrasoon schijf amplitude 70%%
- Δίσκος υπερήχων πλάτους 70%%
- Ультразвуковой диск амплитуда 70%%
- Tarcza ultradźwiękowa amplituda 70%%
- Amplitud ultraljudsskiva 70%%
- Ultralydsskive amplitude 70%%
- Disco ultrassom amplitude 70%%
- Disco ultrasonidos amplitud 70%%
-
-
-
-
- 77
- false
-
- Ultrasound disk amplitude 80%%
- Disco ultrasuoni amplitude 80%%
- Disque à ultrasons, amplitude 80%%
- Ultraschallscheibenamplitude 80%%
- Amplituda ultrazvučnog diska 80%%
- Disc de ultrasunete, amplitudine 80%%
- Ultrasoon schijf amplitude 80%%
- Δίσκος υπερήχων πλάτους 80%%
- Ультразвуковой диск амплитуда 80%%
- Tarcza ultradźwiękowa amplituda 80%%
- Amplitud ultraljudsskiva 80%%
- Ultralydsskive amplitude 80%%
- Disco ultrassom amplitude 80%%
- Disco ultrasonidos amplitud 80%%
-
-
-
-
- 78
- false
-
- Ultrasound disk amplitude 90%%
- Disco ultrasuoni amplitude 90%%
- Disque à ultrasons, amplitude 90%%
- Ultraschallscheibenamplitude 90%%
- Amplituda ultrazvučnog diska 90%%
- Disc de ultrasunete, amplitudine 90%%
- Ultrasoon schijf amplitude 90%%
- Δίσκος υπερήχων πλάτους 90%%
- Ультразвуковой диск амплитуда 90%%
- Tarcza ultradźwiękowa amplituda 90%%
- Amplitud ultraljudsskiva 90%%
- Ultralydsskive amplitude 90%%
- Disco ultrassom amplitude 90%%
- Disco ultrasonidos amplitud 90%%
-
-
-
-
- 79
- false
-
- Ultrasound disk amplitude 100%%
- Disco ultrasuoni amplitude 100%%
- Disque à ultrasons, amplitude 100%%
- Ultraschallscheibenamplitude 100%%
- Amplituda ultrazvučnog diska 100%%
- Disc de ultrasunete, amplitudine 100%%
- Ultrasoon schijf amplitude 100%%
- Δίσκος υπερήχων πλάτους 100%%
- Ультразвуковой диск амплитуда 100%%
- Tarcza ultradźwiękowa amplituda 100%%
- Amplitud ultraljudsskiva 100%%
- Ultralydsskive amplitude 100%%
- Disco ultrassom amplitude 100%%
- Disco ultrasonidos amplitud 100%%
-
-
-
-
- 80
- false
-
- Ultrasound blade amplitude 10%%
- Lama ultrasuoni amplitude 10%%
- Lame à ultrasons, amplitude 10%%
- Ultraschallklingenamplitude 10%%
- Amplituda ultrazvučne oštrice 10%%
- Lama cu ultrasunete, amplitudine 10%%
- Ultrasoon mes amplitude 10%%
- Λεπίδα υπερήχων πλάτους 10%%
- Ультразвуковой резец амплитуда 10%%
- Ostrze ultradźwiękowe amplituda 10%%
- Amplitud ultraljudsblad 10%%
- Ultralydsklinge amplitude 10%%
- Lâmina ultrassom amplitude 10%%
- Cuchilla ultrasonidos amplitud 10%%
-
-
-
-
- 81
- false
-
- Ultrasound blade amplitude 20%%
- Lama ultrasuoni amplitude 20%%
- Lame à ultrasons, amplitude 20%%
- Ultraschallklingenamplitude 20%%
- Amplituda ultrazvučne oštrice 20%%
- Lama cu ultrasunete, amplitudine 20%%
- Ultrasoon mes amplitude 20%%
- Λεπίδα υπερήχων πλάτους 20%%
- Ультразвуковой резец амплитуда 20%%
- Ostrze ultradźwiękowe amplituda 20%%
- Amplitud ultraljudsblad 20%%
- Ultralydsklinge amplitude 20%%
- Lâmina ultrassom amplitude 20%%
- Cuchilla ultrasonidos amplitud 20%%
-
-
-
-
- 82
- false
-
- Ultrasound blade amplitude 30%%
- Lama ultrasuoni amplitude 30%%
- Lame à ultrasons, amplitude 30%%
- Ultraschallklingenamplitude 30%%
- Amplituda ultrazvučne oštrice 30%%
- Lama cu ultrasunete, amplitudine 30%%
- Ultrasoon mes amplitude 30%%
- Λεπίδα υπερήχων πλάτους 30%%
- Ультразвуковой резец амплитуда 30%%
- Ostrze ultradźwiękowe amplituda 30%%
- Amplitud ultraljudsblad 30%%
- Ultralydsklinge amplitude 30%%
- Lâmina ultrassom amplitude 30%%
- Cuchilla ultrasonidos amplitud 30%%
-
-
-
-
- 83
- false
-
- Ultrasound blade amplitude 40%%
- Lama ultrasuoni amplitude 40%%
- Lame à ultrasons, amplitude 40%%
- Ultraschallklingenamplitude 40%%
- Amplituda ultrazvučne oštrice 40%%
- Lama cu ultrasunete, amplitudine 40%%
- Ultrasoon mes amplitude 40%%
- Λεπίδα υπερήχων πλάτους 40%%
- Ультразвуковой резец амплитуда 40%%
- Ostrze ultradźwiękowe amplituda 40%%
- Amplitud ultraljudsblad 40%%
- Ultralydsklinge amplitude 40%%
- Lâmina ultrassom amplitude 40%%
- Cuchilla ultrasonidos amplitud 40%%
-
-
-
-
- 84
- false
-
- Ultrasound blade amplitude 50%%
- Lama ultrasuoni amplitude 50%%
- Lame à ultrasons, amplitude 50%%
- Ultraschallklingenamplitude 50%%
- Amplituda ultrazvučne oštrice 50%%
- Lama cu ultrasunete, amplitudine 50%%
- Ultrasoon mes amplitude 50%%
- Λεπίδα υπερήχων πλάτους 50%%
- Ультразвуковой резец амплитуда 50%%
- Ostrze ultradźwiękowe amplituda 50%%
- Amplitud ultraljudsblad 50%%
- Ultralydsklinge amplitude 50%%
- Lâmina ultrassom amplitude 50%%
- Cuchilla ultrasonidos amplitud 50%%
-
-
-
-
- 85
- false
-
- Ultrasound blade amplitude 60%%
- Lama ultrasuoni amplitude 60%%
- Lame à ultrasons, amplitude 60%%
- Ultraschallklingenamplitude 60%%
- Amplituda ultrazvučne oštrice 60%%
- Lama cu ultrasunete, amplitudine 60%%
- Ultrasoon mes amplitude 60%%
- Λεπίδα υπερήχων πλάτους 60%%
- Ультразвуковой резец амплитуда 60%%
- Ostrze ultradźwiękowe amplituda 60%%
- Amplitud ultraljudsblad 60%%
- Ultralydsklinge amplitude 60%%
- Lâmina ultrassom amplitude 60%%
- Cuchilla ultrasonidos amplitud 60%%
-
-
-
-
- 86
- false
-
- Ultrasound blade amplitude 70%%
- Lama ultrasuoni amplitude 70%%
- Lame à ultrasons, amplitude 70%%
- Ultraschallklingenamplitude 70%%
- Amplituda ultrazvučne oštrice 70%%
- Lama cu ultrasunete, amplitudine 70%%
- Ultrasoon mes amplitude 70%%
- Λεπίδα υπερήχων πλάτους 70%%
- Ультразвуковой резец амплитуда 70%%
- Ostrze ultradźwiękowe amplituda 70%%
- Amplitud ultraljudsblad 70%%
- Ultralydsklinge amplitude 70%%
- Lâmina ultrassom amplitude 70%%
- Cuchilla ultrasonidos amplitud 70%%
-
-
-
-
- 87
- false
-
- Ultrasound blade amplitude 80%%
- Lama ultrasuoni amplitude 80%%
- Lame à ultrasons, amplitude 80%%
- Ultraschallklingenamplitude 80%%
- Amplituda ultrazvučne oštrice 80%%
- Lama cu ultrasunete, amplitudine 80%%
- Ultrasoon mes amplitude 80%%
- Λεπίδα υπερήχων πλάτους 80%%
- Ультразвуковой резец амплитуда 80%%
- Ostrze ultradźwiękowe amplituda 80%%
- Amplitud ultraljudsblad 80%%
- Ultralydsklinge amplitude 80%%
- Lâmina ultrassom amplitude 80%%
- Cuchilla ultrasonidos amplitud 80%%
-
-
-
-
- 88
- false
-
- Ultrasound blade amplitude 90%%
- Lama ultrasuoni amplitude 90%%
- Lame à ultrasons, amplitude 90%%
- Ultraschallklingenamplitude 90%%
- Amplituda ultrazvučne oštrice 90%%
- Lama cu ultrasunete, amplitudine 90%%
- Ultrasoon mes amplitude 90%%
- Λεπίδα υπερήχων πλάτους 90%%
- Ультразвуковой резец амплитуда 90%%
- Ostrze ultradźwiękowe amplituda 90%%
- Amplitud ultraljudsblad 90%%
- Ultralydsklinge amplitude 90%%
- Lâmina ultrassom amplitude 90%%
- Cuchilla ultrasonidos amplitud 90%%
-
-
-
-
- 89
- false
-
- Ultrasound blade amplitude 100%%
- Lama ultrasuoni amplitude 100%%
- Lame à ultrasons, amplitude 100%%
- Ultraschallklingenamplitude 100%%
- Amplituda ultrazvučne oštrice 100%%
- Lama cu ultrasunete, amplitudine 100%%
- Ultrasoon mes amplitude 100%%
- Λεπίδα υπερήχων πλάτους 100%%
- Ультразвуковой резец амплитуда 100%%
- Ostrze ultradźwiękowe amplituda 100%%
- Amplitud ultraljudsblad 100%%
- Ultralydsklinge amplitude 100%%
- Lâmina ultrassom amplitude 100%%
- Cuchilla ultrasonidos amplitud 100%%
-
-
-
-
- 90
- false
-
- Blade 1
- Lama 1
- Lame 1
- Klinge 1
- List pile 1
- Lama 1
- Mes 1
- Λάμα 1
- Резец 1
- Ostrze 1
- Blad 1
- Klinge 1
- Lâmina 1
- Cuchilla 1
-
-
-
-
- 91
- false
-
- Blade 2
- Lama 2
- Lame 2
- Klinge 2
- List pile 2
- Lama 2
- Mes 2
- Λάμα 2
- Резец 2
- Ostrze 2
- Blad 2
- Klinge 2
- Lâmina 2
- Cuchilla 2
-
-
-
-
- 92
- false
-
- Blade 3
- Lama 3
- Lame 3
- Klinge 3
- List pile 3
- Lama 3
- Mes 3
- Λάμα 3
- Резец 3
- Ostrze 3
- Blad 3
- Klinge 3
- Lâmina 3
- Cuchilla 3
-
-
-
-
- 93
- false
-
- Blade 4
- Lama 4
- Lame 4
- Klinge 4
- List pile 4
- Lama 4
- Mes 4
- Λάμα 4
- Резец 4
- Ostrze 4
- Blad 4
- Klinge 4
- Lâmina 4
- Cuchilla 4
-
-
-
-
- 94
- false
-
- Blade 5
- Lama 5
- Lame 5
- Klinge 5
- List pile 5
- Lama 5
- Mes 5
- Λάμα 5
- Резец 5
- Ostrze 5
- Blad 5
- Klinge 5
- Lâmina 5
- Cuchilla 5
-
-
-
-
- 95
- false
-
- Blade 6
- Lama 6
- Lame 6
- Klinge 6
- List pile 6
- Lama 6
- Mes 6
- Λάμα 6
- Резец 6
- Ostrze 6
- Blad 6
- Klinge 6
- Lâmina 6
- Cuchilla 6
-
-
-
-
- 96
- false
-
- Blade 7
- Lama 7
- Lame 7
- Klinge 7
- List pile 7
- Lama 7
- Mes 7
- Λάμα 7
- Резец 7
- Ostrze 7
- Blad 7
- Klinge 7
- Lâmina 7
- Cuchilla 7
-
-
-
-
- 97
- false
-
- Blade ⌀300
- Lama ⌀300
- Lame ⌀300
- Klinge ⌀300
- List pile ⌀300
- Lama ⌀300
- Mes ⌀300
- Λάμα ⌀300
- Резец ⌀300
- Ostrze ⌀300
- Blad ⌀300
- Klinge ⌀300
- Lâmina ⌀300
- Cuchilla ⌀300
-
-
-
-
- 98
- false
-
- Blade ⌀400
- Lama ⌀400
- Lame ⌀400
- Klinge ⌀400
- List pile ⌀400
- Lama ⌀400
- Mes ⌀400
- Λάμα ⌀400
- Резец ⌀400
- Ostrze ⌀400
- Blad ⌀400
- Klinge ⌀400
- Lâmina ⌀400
- Cuchilla ⌀400
-
-
-
-
- 99
- false
-
- Blade ⌀500
- Lama ⌀500
- Lame ⌀500
- Klinge ⌀500
- List pile ⌀500
- Lama ⌀500
- Mes ⌀500
- Λάμα ⌀500
- Резец ⌀500
- Ostrze ⌀500
- Blad ⌀500
- Klinge ⌀500
- Lâmina ⌀500
- Cuchilla ⌀500
-
-
-
-
- 101
- false
-
- Radio Probe 1 - Reciever 1
- Radio Probe 1 - Ricevitore 1
- Radio Probe 1 - Récepteur 1
- Radio Probe 1 - Empfänger 1
- Radio Probe 1 - Prijemnik 1
- Probe Radio 1 - Receptor 1
- Radio Probe 1 - Ontvanger 1
- Ραδιο-ανιχνευτής 1 - Δέκτης 1
- Радиодатчик 1 - Приемник 1
- Sonda radiowa 1 - Odbiornik 1
- Radiosond 1 - Mottagare 1
- Radio Sonde 1 - Modtager 1
- Sonda Probe 1 - Receptor 1
- Radio Probe 1 - Receptor 1
-
-
-
-
- 102
- false
-
- Radio Probe 2 - Reciever 1
- Radio Probe 2 - Ricevitore 1
- Radio Probe 2 - Récepteur 1
- Radio Probe 2 - Empfänger 1
- Radio Probe 2 - Prijemnik 1
- Probe Radio 2 - Receptor 1
- Radio Probe 2 - Ontvanger 1
- Ραδιο-ανιχνευτής 2 - Δέκτης 1
- Радиодатчик 2 - Приемник 1
- Sonda radiowa 2 - Odbiornik 1
- Radiosond 2 - Mottagare 1
- Radio Sonde 2 - Modtager 1
- Sonda Probe 2 - Receptor 1
- Radio Probe 2 - Receptor 1
-
-
-
-
- 103
- false
-
- Radio Probe 3 - Reciever 1
- Radio Probe 3 - Ricevitore 1
- Radio Probe 3 - Récepteur 1
- Radio Probe 3 - Empfänger 1
- Radio Probe 3 - Prijemnik 1
- Probe Radio 3 - Receptor 1
- Radio Probe 3 - Ontvanger 1
- Ραδιο-ανιχνευτής 3 - Δέκτης 1
- Радиодатчик 3 - Приемник 1
- Sonda radiowa 3 - Odbiornik 1
- Radiosond 3 - Mottagare 1
- Radio Sonde 3 - Modtager 1
- Sonda Probe 3 - Receptor 1
- Radio Probe 3 - Receptor 1
-
-
-
-
- 104
- false
-
- Radio Probe 4 - Reciever 1
- Radio Probe 4 - Ricevitore 1
- Radio Probe 4 - Récepteur 1
- Radio Probe 4 - Empfänger 1
- Radio Probe 4 - Prijemnik 1
- Probe Radio 4 - Receptor 1
- Radio Probe 4 - Ontvanger 1
- Ραδιο-ανιχνευτής 4 - Δέκτης 1
- Радиодатчик 4 - Приемник 1
- Sonda radiowa 4 - Odbiornik 1
- Radiosond 4 - Mottagare 1
- Radio Sonde 4 - Modtager 1
- Sonda Probe 4 - Receptor 1
- Radio Probe 4 - Receptor 1
-
-
-
-
- 105
- false
-
- Radio Probe 1 - Reciever 2
- Radio Probe 1 - Ricevitore 2
- Radio Probe 1 - Récepteur 2
- Radio Probe 1 - Empfänger 2
- Radio Probe 1 - Prijemnik 2
- Probe Radio 1 - Receptor 2
- Radio Probe 1 - Ontvanger 2
- Ραδιο-ανιχνευτής 1 - Δέκτης 2
- Радиодатчик 1 - Приемник 2
- Sonda radiowa 1 - Odbiornik 2
- Radiosond 1 - Mottagare 2
- Radio Sonde 1 - Modtager 2
- Sonda Probe 1 - Receptor 2
- Radio Probe 1 - Receptor 2
-
-
-
-
- 106
- false
-
- Radio Probe 2 - Reciever 2
- Radio Probe 2 - Ricevitore 2
- Radio Probe 2 - Récepteur 2
- Radio Probe 2 - Empfänger 2
- Radio Probe 2 - Prijemnik 2
- Probe Radio 2 - Receptor 2
- Radio Probe 2 - Ontvanger 2
- Ραδιο-ανιχνευτής 2 - Δέκτης 2
- Радиодатчик 2 - Приемник 2
- Sonda radiowa 2 - Odbiornik 2
- Radiosond 2 - Mottagare 2
- Radio Sonde 2 - Modtager 2
- Sonda Probe 2 - Receptor 2
- Radio Probe 2 - Receptor 2
-
-
-
-
- 107
- false
-
- Radio Probe 3 - Reciever 2
- Radio Probe 3 - Ricevitore 2
- Radio Probe 3 - Récepteur 2
- Radio Probe 3 - Empfänger 2
- Radio Probe 3 - Prijemnik 2
- Probe Radio 3 - Receptor 2
- Radio Probe 3 - Ontvanger 2
- Ραδιο-ανιχνευτής 3 - Δέκτης 2
- Радиодатчик 3 - Приемник 2
- Sonda radiowa 3 - Odbiornik 2
- Radiosond 3 - Mottagare 2
- Radio Sonde 3 - Modtager 2
- Sonda Probe 3 - Receptor 2
- Radio Probe 3 - Receptor 2
-
-
-
-
- 108
- false
-
- Radio Probe 4 - Reciever 2
- Radio Probe 4 - Ricevitore 2
- Radio Probe 4 - Récepteur 2
- Radio Probe 4 - Empfänger 2
- Radio Probe 4 - Prijemnik 2
- Probe Radio 4 - Receptor 2
- Radio Probe 4 - Ontvanger 2
- Ραδιο-ανιχνευτής 4 - Δέκτης 2
- Радиодатчик 4 - Приемник 2
- Sonda radiowa 4 - Odbiornik 2
- Radiosond 4 - Mottagare 2
- Radio Sonde 4 - Modtager 2
- Sonda Probe 4 - Receptor 2
- Radio Probe 4 - Receptor 2
-
-
-
-
-
\ No newline at end of file
diff --git a/Thermo.Active.Config/Config/toolManagerConfigValidator.xsd b/Thermo.Active.Config/Config/toolManagerConfigValidator.xsd
deleted file mode 100644
index 6be1591d..00000000
--- a/Thermo.Active.Config/Config/toolManagerConfigValidator.xsd
+++ /dev/null
@@ -1,175 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Thermo.Active.Config/Config/userSoftKeyConfig.xml b/Thermo.Active.Config/Config/userSoftKeyConfig.xml
index 0ecfd008..e89c7c77 100644
--- a/Thermo.Active.Config/Config/userSoftKeyConfig.xml
+++ b/Thermo.Active.Config/Config/userSoftKeyConfig.xml
@@ -205,7 +205,7 @@
true
-
+
true
@@ -348,7 +348,7 @@
true
-
+
-
+
false
@@ -399,7 +399,7 @@
true
-
+
-
+
false
@@ -435,7 +435,7 @@
true
-
+
false
diff --git a/Thermo.Active.Config/Properties/AssemblyInfo.cs b/Thermo.Active.Config/Properties/AssemblyInfo.cs
index 2c3e382c..5e52dbf9 100644
--- a/Thermo.Active.Config/Properties/AssemblyInfo.cs
+++ b/Thermo.Active.Config/Properties/AssemblyInfo.cs
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// Le informazioni generali relative a un assembly sono controllate dal seguente
// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
// associate a un assembly.
-[assembly: AssemblyTitle("Step.Config")]
+[assembly: AssemblyTitle("Thermo.Active.Config")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Step.Config")]
+[assembly: AssemblyProduct("Thermo.Active.Config")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/Thermo.Active.Config/ServerConfig.cs b/Thermo.Active.Config/ServerConfig.cs
index 24e5a0fd..361d1889 100644
--- a/Thermo.Active.Config/ServerConfig.cs
+++ b/Thermo.Active.Config/ServerConfig.cs
@@ -32,11 +32,10 @@ namespace Thermo.Active.Config
public static List NcSoftKeysConfig;
public static List InitialAlarmsConfig;
public static List HeadsConfig;
- public static ToolManagerConfigModel ToolManagerConfig;
+ public static List RecipeConfig;
public static CmsConnectConfigModel CmsConnectConfig;
public static AreasConfigModel ProductionConfig;
- public static AreasConfigModel ToolingConfig;
public static AreasConfigModel ReportConfig;
public static AreasConfigModel AlarmsConfig;
public static AreasConfigModel MaintenanceConfig;
diff --git a/Thermo.Active.Config/ServerConfigController.cs b/Thermo.Active.Config/ServerConfigController.cs
index 0db2f861..68df96f3 100644
--- a/Thermo.Active.Config/ServerConfigController.cs
+++ b/Thermo.Active.Config/ServerConfigController.cs
@@ -33,7 +33,7 @@ namespace Thermo.Active.Config
ReadUserSoftKeysConfig();
ReadAlarmsConfig();
ReadHeadsConfig();
- ReadToolManagerConfig();
+ ReadRecipeConfig();
// ReadCMSConnectConfig();
ReadMacros();
ReadScadaFile();
@@ -113,10 +113,6 @@ namespace Thermo.Active.Config
SetAreaValue(ref ProductionConfig, element);
break;
- case AREAS.TOOLING_KEY:
- SetAreaValue(ref ToolingConfig, element);
- break;
-
case AREAS.REPORT_KEY:
SetAreaValue(ref ReportConfig, element);
break;
@@ -181,9 +177,6 @@ namespace Thermo.Active.Config
{
case AREAS.PRODUCTION_KEY:
return ProductionConfig.Enabled;
-
- case AREAS.TOOLING_KEY:
- return ToolingConfig.Enabled;
case AREAS.REPORT_KEY:
return ProductionConfig.Enabled;
@@ -580,98 +573,27 @@ namespace Thermo.Active.Config
.ToList();
}
- private static void ReadToolManagerConfig()
+ private static void ReadRecipeConfig()
{
- XDocument xmlConfigFile = GetXmlHandlerWithValidator(TOOL_MANAGER_CONFIG_SCHEMA_PATH, TOOL_MANAGER_CONFIG_PATH);
+ XDocument xmlConfigFile = GetXmlHandlerWithValidator(RECIPE_CONFIG_SCHEMA_PATH, RECIPE_CONFIG_PATH);
- // Read config from XML file
- ToolManagerConfig = xmlConfigFile
+ // Read head config from XML file
+ RecipeConfig = xmlConfigFile
.Root
- .Descendants("toolManagerConfig")
- .Select(x => new ToolManagerConfigModel()
- {
- ToolMetricType = x.Element("toolMetricType").Value,
- FamilyOpt = Convert.ToBoolean(x.Element("familyOpt").Value),
- ShankOpt = Convert.ToBoolean(x.Element("shankOpt").Value),
- MagPosTypeOpt = Convert.ToBoolean(x.Element("magPositionOpt").Value),
- OffsetOpt = Convert.ToBoolean(x.Element("offsetOpt").Value),
- ReviveOpt = Convert.ToBoolean(x.Element("reviveOpt").Value),
- GammaOpt = Convert.ToBoolean(x.Element("gammaOpt").Value),
- LifeOpt = Convert.ToBoolean(x.Element("lifeOpt").Value),
- TcpOpt = Convert.ToBoolean(x.Element("tcpOpt").Value),
- CoolingOpt = Convert.ToBoolean(x.Element("coolingOpt").Value),
- MultidimensionalShankOpt = Convert.ToBoolean(x.Element("multidimensionalShankOpt").Value),
- SelfAdaptivePathOpt = Convert.ToBoolean(x.Element("selfAdaptivePathOpt").Value),
- DynamicCompensationOpt = Convert.ToBoolean(x.Element("dynamicCompensationOpt").Value),
- BallufOpt = Convert.ToBoolean(x.Element("ballufOpt").Value),
- IntegrityCheckOpt = Convert.ToBoolean(x.Element("integrityCheckOpt").Value)
- })
- .FirstOrDefault();
-
-
- ToolManagerConfig.CooligsTranslations = xmlConfigFile
- .Root
- .Descendants("coolingLocalizedNames")
- .Select(x => new CooligTranslations()
- {
- Cooling = x.Element("cooling").Elements().ToDictionary( // Read localized names of cooling and convert into a dictionary
- y => y.Attribute("langKey").Value, y => y.Value
- ),
- Cooling1 = x.Element("cooling1").Elements().ToDictionary(
- y => y.Attribute("langKey").Value, y => y.Value
- ),
- Cooling2 = x.Element("cooling2").Elements().ToDictionary(
- y => y.Attribute("langKey").Value, y => y.Value
- ),
- Cooling3 = x.Element("cooling3").Elements().ToDictionary(
- y => y.Attribute("langKey").Value, y => y.Value
- ),
- Cooling4 = x.Element("cooling4").Elements().ToDictionary(
- y => y.Attribute("langKey").Value, y => y.Value
- ),
- Cooling5 = x.Element("cooling5").Elements().ToDictionary(
- y => y.Attribute("langKey").Value, y => y.Value
- ),
- Cooling6 = x.Element("cooling6").Elements().ToDictionary(
- y => y.Attribute("langKey").Value, y => y.Value
- ),
- Cooling7 = x.Element("cooling7").Elements().ToDictionary(
- y => y.Attribute("langKey").Value, y => y.Value
- )
-
- })
- .FirstOrDefault();
-
- ToolManagerConfig.MagazineNames = xmlConfigFile
- .Root
- .Descendants("magazineNames")
.Elements()
- .Select(x => new MagazineNamesModel()
+ .Select(x => new RecipeConfigModel()
{
- MagazineId = Convert.ToInt32(x.Element("id").Value),
- AssistedTooling = Convert.ToBoolean(x.Element("assistedTooling").Value),
- LocalizedNames = x.Element("localizedNames").Elements().ToDictionary( // Read localized names and convert into a dictionary
- y => y.Attribute("langKey").Value, y => y.Value
- ),
- })
- .ToList();
-
- ToolManagerConfig.ToolTypes = xmlConfigFile
- .Root
- .Descendants("toolTypes")
- .Elements()
- .Select(x => new ToolTypeConfigModel()
- {
- Id = Convert.ToInt32(x.Element("id").Value),
- Disabled = Convert.ToBoolean(x.Element("disabled").Value),
- LocalizedNames = x.Element("localizedNames").Elements().ToDictionary( // Read localized names and convert into a dictionary
- y => y.Attribute("langKey").Value, y => y.Value
- ),
+ Id = Convert.ToInt16(x.Element("id").Value),
+ Category = GetTActCategory(x.Element("category").Value),
+ SubCategory_1 = x.Element("subCategory_1").Value,
+ SubCategory_2 = x.Element("subCategory_2").Value,
+ Name = x.Element("name").Value,
+ Description = x.Element("description").Value,
+ Format = x.Element("format").Value
})
.ToList();
}
-
private static void ReadCMSConnectConfig()
{
String _tempUSR, _tempPSW;
diff --git a/Thermo.Active.Config/Thermo.Active.Config.csproj b/Thermo.Active.Config/Thermo.Active.Config.csproj
index 62ecc67b..e171df4b 100644
--- a/Thermo.Active.Config/Thermo.Active.Config.csproj
+++ b/Thermo.Active.Config/Thermo.Active.Config.csproj
@@ -69,9 +69,8 @@
Always
-
+
PreserveNewest
- Designer
PreserveNewest
@@ -87,7 +86,7 @@
PreserveNewest
Designer
-
+
Designer
@@ -113,9 +112,6 @@
Designer
-
- Designer
-
@@ -158,5 +154,10 @@
Designer
+
+
+ Designer
+
+
\ No newline at end of file
diff --git a/Thermo.Active.Core/Properties/AssemblyInfo.cs b/Thermo.Active.Core/Properties/AssemblyInfo.cs
index 1a5f3024..1fa0d271 100644
--- a/Thermo.Active.Core/Properties/AssemblyInfo.cs
+++ b/Thermo.Active.Core/Properties/AssemblyInfo.cs
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// Le informazioni generali relative a un assembly sono controllate dal seguente
// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
// associate a un assembly.
-[assembly: AssemblyTitle("Step.Core")]
+[assembly: AssemblyTitle("Thermo.Active.Core")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Step.Tasks")]
+[assembly: AssemblyProduct("Thermo.Active.Tasks")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/Thermo.Active.Core/Thermo.Active.Core.csproj b/Thermo.Active.Core/Thermo.Active.Core.csproj
index a83c57bf..c757ec32 100644
--- a/Thermo.Active.Core/Thermo.Active.Core.csproj
+++ b/Thermo.Active.Core/Thermo.Active.Core.csproj
@@ -32,9 +32,6 @@
4
-
- ..\Libs\CMS_CORE_Library.dll
-
@@ -63,6 +60,10 @@
+
+ {4abf8eef-2b23-483e-acdc-53214fe28681}
+ CMS_CORE_Library
+
{3f5c2483-fc87-43ef-92a8-66ff7d0e440f}
Thermo.Active.Config
diff --git a/Thermo.Active.Core/ThreadsFunctions.cs b/Thermo.Active.Core/ThreadsFunctions.cs
index 35555f59..1329d902 100644
--- a/Thermo.Active.Core/ThreadsFunctions.cs
+++ b/Thermo.Active.Core/ThreadsFunctions.cs
@@ -5,7 +5,6 @@ using Thermo.Active.Database.Controllers;
using Thermo.Active.Model.DTOModels;
using Thermo.Active.Model.DTOModels.AlarmModels;
using Thermo.Active.Model.DTOModels.Scada;
-using Thermo.Active.Model.DTOModels.ToolModels;
using Thermo.Active.NC;
using Thermo.Active.Utils;
using System;
@@ -22,20 +21,22 @@ using TeamDev.SDK.MVVM;
using static CMS_CORE_Library.Models.DataStructures;
using static Thermo.Active.Config.ServerConfig;
using static Thermo.Active.Model.Constants;
-using static Thermo.Active.Utils.ExceptionManager;
+using static Thermo.Active.Utils.ExceptionManager;
+using Thermo.Active.Model.DTOModels.Recipe;
-public static class ThreadsFunctions
+public static class ThreadsFunctions
{
+ public static int recipeRtCounter = 5;
public static bool reconnectionIsRunning = false;
private static ConcurrentDictionary Timers = new ConcurrentDictionary();
private static ConcurrentDictionary Counter = new ConcurrentDictionary();
private static Thread ConnThread;
-
+
#region Functions
- public static void ManageWatchdog()
+ public static void ManageWatchdog()
{
NcAdapter ncAdapter = new NcAdapter();
Stopwatch sw = new Stopwatch();
@@ -48,7 +49,7 @@ public static class ThreadsFunctions
while (true)
{
- sw.Restart();
+ sw.Restart();
//if(errorCounter == MAX_NUM_OF_WATCHDOG_ERROR)
//{
@@ -56,7 +57,7 @@ public static class ThreadsFunctions
//}
// Check if client is connected
- if (ncAdapter.numericalControl.NC_IsConnected())
+ if (ncAdapter.numericalControl.NC_IsConnected())
{
// Manage watchdog
libraryError = ncAdapter.ManageWatchdog();
@@ -66,7 +67,7 @@ public static class ThreadsFunctions
errorCounter++;
}
else if (libraryError == NO_ERROR)
- errorCounter = 0;
+ errorCounter = 0;
}
else
RestoreConnection();
@@ -376,6 +377,7 @@ public static class ThreadsFunctions
}
}
+#if false
public static void ReadHeadsData()
{
NcAdapter ncAdapter = new NcAdapter();
@@ -418,7 +420,8 @@ public static class ThreadsFunctions
{
ncAdapter.Dispose();
}
- }
+ }
+#endif
public static void ReadAxesNamesData()
{
@@ -508,50 +511,7 @@ public static class ThreadsFunctions
}
}
- public static void ReadMagazinesStatus()
- {
- SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter();
- Stopwatch sw = new Stopwatch();
-
- try
- {
- // Try connection
- CmsError libraryError = ncAdapter.Connect();
- if (libraryError.errorCode != 0)
- ManageLibraryError(libraryError);
-
- while (true)
- {
- sw.Restart();
-
- if (ncAdapter.numericalControl.NC_IsConnected())
- {
- // Get Data from config and PLC
- libraryError = ncAdapter.GetMagazineStatus(out DTOMagazineActionModel magazineStatus);
- if (libraryError.errorCode != 0)
- ManageLibraryError(libraryError);
- else
- // Send through signalR
- MessageServices.Current.Publish(SEND_MAGAZINES_STATUS, null, magazineStatus);
- }
- else
- RestoreConnection();
-
- sw.Stop();
-
- //Update thread timer
- UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
-
- // Wait
- Thread.Sleep(CalcSleepTime(1000, (int)sw.ElapsedMilliseconds));
- }
- }
- catch (ThreadAbortException)
- {
- ncAdapter.Dispose();
- }
- }
-
+#if false
public static void ReadActiveProgramData()
{
NcFileAdapter ncAdapter = new NcFileAdapter();
@@ -595,110 +555,10 @@ public static class ThreadsFunctions
{
ncAdapter.Dispose();
}
- }
-
- public static void UpdateToolsData()
- {
- NcToolTableAdapter ncAdapter = new NcToolTableAdapter();
- Stopwatch sw = new Stopwatch();
-
- if(NcConfig.NcVendor != NC_VENDOR.SIEMENS)
- {
- try
- {
- // Try connection
- CmsError libraryError = ncAdapter.Connect();
- if (libraryError.errorCode != 0)
- ManageLibraryError(libraryError);
-
- while (true)
- {
- sw.Restart();
-
- // Check if client is connected
- if (ncAdapter.numericalControl.NC_IsConnected())
- {
- // Get new data from PLC
- libraryError = ncAdapter.GetUpdatedToolsData(out Dictionary updatedStatus, out Dictionary updatedLives);
- if (libraryError.IsError())
- ManageLibraryError(libraryError);
-
- MessageServices.Current.Publish(UPDATE_TOOLS_DATA, null,
- new DTONewToolDataModel
- {
- UpdatedStatus = updatedStatus,
- UpdatedLives = updatedLives
- });
- }
- else
- RestoreConnection();
- sw.Stop();
-
- //Update thread timer
- UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
-
- // Wait
- Thread.Sleep(CalcSleepTime(1000, (int)sw.ElapsedMilliseconds));
- }
- }
- catch (ThreadAbortException)
- {
- ncAdapter.Dispose();
- }
- }
- }
-
- public static void ReadNcMagazineActive()
- {
- if (NcConfig.NcVendor != NC_VENDOR.SIEMENS)
- {
- NcToolTableAdapter ncAdapter = new NcToolTableAdapter();
- Stopwatch sw = new Stopwatch();
- try
- {
- // Try connection
- CmsError libraryError = ncAdapter.Connect();
- if (libraryError.errorCode != 0)
- ManageLibraryError(libraryError);
-
- while (true)
- {
- sw.Restart();
-
- // Check if client is connected
- if (ncAdapter.numericalControl.NC_IsConnected())
- {
- // Get new data from PLC
- libraryError = ncAdapter.GetNcMagazineStatus(out Dictionary status);
- if (libraryError.IsError())
- ManageLibraryError(libraryError);
-
- MessageServices.Current.Publish(NC_MAGAZINE_IS_ACTIVE, null, status);
-
- libraryError = ncAdapter.ReadAssistedToolingProcedure(out DTOAssistedToolingEndValueModel data);
- if (libraryError.IsError())
- ManageLibraryError(libraryError);
-
- MessageServices.Current.Publish(ASSISTED_TOOLING_DATA, null, data);
- }
- else
- RestoreConnection();
- sw.Stop();
-
- //Update thread timer
- UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
-
- // Wait
- Thread.Sleep(CalcSleepTime(500, (int)sw.ElapsedMilliseconds));
- }
- }
- catch (ThreadAbortException)
- {
- ncAdapter.Dispose();
- }
- }
- }
+ }
+#endif
+#if false
public static void ReadPartProgramQueueData()
{
NcFileAdapter ncAdapter = new NcFileAdapter();
@@ -744,9 +604,10 @@ public static class ThreadsFunctions
{
ncAdapter.Dispose();
}
- }
+ }
+#endif
- public static void ReadScadaData()
+ public static void ReadScadaData()
{
NcAdapter ncAdapter = new NcAdapter();
Stopwatch sw = new Stopwatch();
@@ -790,7 +651,192 @@ public static class ThreadsFunctions
ncAdapter.Dispose();
}
}
+ public static void ReadGaugeData()
+ {
+ NcAdapter ncAdapter = new NcAdapter();
+ Stopwatch sw = new Stopwatch();
+ try
+ {
+ // Try connection
+ CmsError libraryError = ncAdapter.Connect();
+ if (libraryError.errorCode != 0)
+ ManageLibraryError(libraryError);
+
+ while (true)
+ {
+ sw.Restart();
+
+ // Check if client is connected
+ if (ncAdapter.numericalControl.NC_IsConnected())
+ {
+
+ // Get new data from PLC
+ libraryError = ncAdapter.ReadGaugeData(out ThermoModels.GaugeModel gaugeData);
+ if (libraryError.IsError())
+ ManageLibraryError(libraryError);
+
+ MessageServices.Current.Publish(SEND_THERMO_GAUGE_DATA, null, gaugeData);
+ }
+ else
+ RestoreConnection();
+
+ sw.Stop();
+
+ //Update thread timer
+ UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
+ // Wait
+ Thread.Sleep(CalcSleepTime(500, (int)sw.ElapsedMilliseconds));
+ }
+ }
+ catch (ThreadAbortException)
+ {
+ ncAdapter.Dispose();
+ }
+ }
+ public static void ReadRecipeData()
+ {
+ NcAdapter ncAdapter = new NcAdapter();
+ Stopwatch sw = new Stopwatch();
+
+
+ try
+ {
+ // Try connection
+ CmsError libraryError = ncAdapter.Connect();
+ if (libraryError.errorCode != 0)
+ ManageLibraryError(libraryError);
+
+ while (true)
+ {
+ // ogni n counter leggo anche dati NON RT
+ recipeRtCounter--;
+ bool onlyRt = recipeRtCounter > 0;
+ //check reset...
+ recipeRtCounter = recipeRtCounter < 0 ? 5 : recipeRtCounter;
+
+ sw.Restart();
+
+ // Check if client is connected
+ if (ncAdapter.numericalControl.NC_IsConnected())
+ {
+ // Get new data from PLC
+ libraryError = ncAdapter.ReadRecipeData(onlyRt, out Dictionary currRecipe);
+ if (libraryError.IsError())
+ ManageLibraryError(libraryError);
+
+ MessageServices.Current.Publish(SEND_THERMO_RECIPE_FULL, null, currRecipe);
+ }
+ else
+ RestoreConnection();
+
+ sw.Stop();
+
+ // Update thread timer
+ UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
+ // Wait
+ Thread.Sleep(CalcSleepTime(250, (int)sw.ElapsedMilliseconds));
+ }
+ }
+ catch (ThreadAbortException)
+ {
+ ncAdapter.Dispose();
+ }
+ }
+ public static void ReadWarmersData()
+ {
+ // TODO FIXME
+#if false
+ NcAdapter ncAdapter = new NcAdapter();
+ Stopwatch sw = new Stopwatch();
+
+ try
+ {
+ // Try connection
+ CmsError libraryError = ncAdapter.Connect();
+ if (libraryError.errorCode != 0)
+ ManageLibraryError(libraryError);
+
+ while (true)
+ {
+ sw.Restart();
+
+ // Check if client is connected
+ if (ncAdapter.numericalControl.NC_IsConnected())
+ {
+ List scadaToRead = ProductionScadaSchema.Concat(SubscribedScada).ToList();
+
+ // Get new data from PLC
+ libraryError = ncAdapter.ReadScadasData(scadaToRead, out List scadas);
+ if (libraryError.IsError())
+ ManageLibraryError(libraryError);
+
+ MessageServices.Current.Publish(SEND_SCADA_DATA, null, scadas);
+ }
+ else
+ RestoreConnection();
+
+ sw.Stop();
+
+ //Update thread timer
+ UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
+ // Wait
+ Thread.Sleep(CalcSleepTime(500, (int)sw.ElapsedMilliseconds));
+ }
+ }
+ catch (ThreadAbortException)
+ {
+ ncAdapter.Dispose();
+ }
+#endif
+ }
+ public static void ReadModulesData()
+ {
+ // TODO FIXME
+#if false
+ NcAdapter ncAdapter = new NcAdapter();
+ Stopwatch sw = new Stopwatch();
+
+ try
+ {
+ // Try connection
+ CmsError libraryError = ncAdapter.Connect();
+ if (libraryError.errorCode != 0)
+ ManageLibraryError(libraryError);
+
+ while (true)
+ {
+ sw.Restart();
+
+ // Check if client is connected
+ if (ncAdapter.numericalControl.NC_IsConnected())
+ {
+ List scadaToRead = ProductionScadaSchema.Concat(SubscribedScada).ToList();
+
+ // Get new data from PLC
+ libraryError = ncAdapter.ReadScadasData(scadaToRead, out List scadas);
+ if (libraryError.IsError())
+ ManageLibraryError(libraryError);
+
+ MessageServices.Current.Publish(SEND_SCADA_DATA, null, scadas);
+ }
+ else
+ RestoreConnection();
+
+ sw.Stop();
+
+ //Update thread timer
+ UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
+ // Wait
+ Thread.Sleep(CalcSleepTime(500, (int)sw.ElapsedMilliseconds));
+ }
+ }
+ catch (ThreadAbortException)
+ {
+ ncAdapter.Dispose();
+ }
+#endif
+ }
public static void ReadM154Data()
{
NcAdapter ncAdapter = new NcAdapter();
@@ -845,7 +891,7 @@ public static class ThreadsFunctions
foreach (M154DataModel m154 in data)
{
//if (CmsConnectConfig.Enabled)
- if(ServerStartupConfig.CmsConnectReady)
+ if (ServerStartupConfig.CmsConnectReady)
{
if (m154.Parameters.Count() >= 2 && m154.Parameters[0] == "SOUR")
@@ -974,7 +1020,7 @@ public static class ThreadsFunctions
{
List availableLanguages = LanguageController.GetLanguageListFromDirectory();
if (availableLanguages == null)
- return ;
+ return;
ICollection cultureInfos = new List();
@@ -985,7 +1031,7 @@ public static class ThreadsFunctions
// Filter available language with
availableLanguages = availableLanguages.Where(x => cultureInfos.Any(y => y.TwoLetterISOLanguageName == x.IsoId)).ToList();
-
+
// Fill redis DB
int count = 1;
Dictionary defAlarmsNamesEn = null;
@@ -994,10 +1040,10 @@ public static class ThreadsFunctions
{
Dictionary alarmsNames = GetPlcAlarmsTranslations(lang.IsoId);
- if(lang.IsoId.ToLower() == "en")
+ if (lang.IsoId.ToLower() == "en")
{
defAlarmsNamesEn = alarmsNames;
- if(!RedisController.WriteAlarmsConfigEn(alarmsNames))
+ if (!RedisController.WriteAlarmsConfigEn(alarmsNames))
ManageError(ERROR_LEVEL.FATAL, CMS_CONNECT_SETUP_ALARM_MESSAGE);
}
else if (lang.IsoId.ToLower() == "it")
@@ -1008,7 +1054,7 @@ public static class ThreadsFunctions
}
else
if (!RedisController.WriteAlarmsConfigCurr(alarmsNames))
- ManageError(ERROR_LEVEL.FATAL, CMS_CONNECT_SETUP_ALARM_MESSAGE);
+ ManageError(ERROR_LEVEL.FATAL, CMS_CONNECT_SETUP_ALARM_MESSAGE);
if (count == 3)
break;
@@ -1018,10 +1064,10 @@ public static class ThreadsFunctions
if (availableLanguages.Count < 3 && defAlarmsNamesEn != null)
if (!RedisController.WriteAlarmsConfigCurr(defAlarmsNamesEn))
- ManageError(ERROR_LEVEL.FATAL, CMS_CONNECT_SETUP_ALARM_MESSAGE);
- else if (availableLanguages.Count < 3 && defAlarmsNamesIt != null)
- if (!RedisController.WriteAlarmsConfigCurr(defAlarmsNamesIt))
ManageError(ERROR_LEVEL.FATAL, CMS_CONNECT_SETUP_ALARM_MESSAGE);
+ else if (availableLanguages.Count < 3 && defAlarmsNamesIt != null)
+ if (!RedisController.WriteAlarmsConfigCurr(defAlarmsNamesIt))
+ ManageError(ERROR_LEVEL.FATAL, CMS_CONNECT_SETUP_ALARM_MESSAGE);
}
catch (ThreadAbortException)
@@ -1037,44 +1083,28 @@ public static class ThreadsFunctions
private static void TryNcConnection()
{
// Stop all the NC threads
- ThreadsHandler.Stop();
- StatReset();
+ ThreadsHandler.Stop();
+ StatReset();
NcAdapter ncAdapter = new NcAdapter();
CmsError cmsError = NO_ERROR;
// Run loop until NC is connected
- while (!ncAdapter.numericalControl.NC_IsConnected())
+ while (!ncAdapter.numericalControl.NC_IsConnected())
{
// Try reconnection
cmsError = ncAdapter.Connect();
- if (cmsError.errorCode == CMS_ERROR_CODES.SIEMENS_ENVIRONMENT_NOT_FOUND || cmsError.errorCode == CMS_ERROR_CODES.SIEMENS_HMI_NOT_RUNNING || cmsError.errorCode == CMS_ERROR_CODES.OSAI_TT_FOLDER_NOT_FOUND)
+ if (cmsError.errorCode == CMS_ERROR_CODES.SIEMENS_ENVIRONMENT_NOT_FOUND || cmsError.errorCode == CMS_ERROR_CODES.SIEMENS_HMI_NOT_RUNNING || cmsError.errorCode == CMS_ERROR_CODES.OSAI_TT_FOLDER_NOT_FOUND)
ManageLibraryError(cmsError);
else if (cmsError.errorCode != CMS_ERROR_CODES.OK)
{
ncAdapter.Dispose();
}
- if (cmsError.errorCode == CMS_ERROR_CODES.SIEMENS_TOOL_TABLE_ERROR)
- ManageLibraryError(cmsError);
-
// Send status to UI
MessageServices.Current.Publish(SEND_NC_STATUS, null, ncAdapter.numericalControl.NC_IsConnected());
Thread.Sleep(1000);
}
-
- if(NcConfig.NcVendor == NC_VENDOR.FANUC || NcConfig.NcVendor == NC_VENDOR.OSAI)
- {
- using (NcToolTableAdapter toolTable = new NcToolTableAdapter())
- {
- toolTable.Connect();
- // After reconecction write option
- cmsError = toolTable.SetupNcToolManager();
- if (cmsError.IsError())
- ManageLibraryError(cmsError);
- // cmsError = toolTable.RestoreTableLock();
- }
- }
if (!cmsError.IsError())
{
if (ServerStartupConfig.AutoOpenCmsClient)
@@ -1122,7 +1152,6 @@ public static class ThreadsFunctions
case CMS_ERROR_CODES.SIEMENS_ENVIRONMENT_NOT_FOUND:
case CMS_ERROR_CODES.OSAI_TT_FOLDER_NOT_FOUND:
case CMS_ERROR_CODES.OPTION_NOT_CONSISTENT:
- case CMS_ERROR_CODES.SIEMENS_TOOL_TABLE_ERROR:
ManageError(ERROR_LEVEL.FATAL, cmsError.localizationKey);
break;
@@ -1139,7 +1168,7 @@ public static class ThreadsFunctions
break;
}
}
-
+
internal static void UpdateStat(string functionName, long timer)
{
if (!Timers.ContainsKey(functionName))
@@ -1158,16 +1187,16 @@ public static class ThreadsFunctions
{
while (true)
{
- foreach(var value in Counter)
+ foreach (var value in Counter)
{
- if(ThreadsHandler.RunningThreadStatus.ContainsKey(value.Key) && Counter[value.Key] != 0)
+ if (ThreadsHandler.RunningThreadStatus.ContainsKey(value.Key) && Counter[value.Key] != 0)
{
ThreadsHandler.RunningThreadStatus[value.Key] = (Timers[value.Key] / Counter[value.Key]) + " mS";
Timers[value.Key] = 0;
Counter[value.Key] = 0;
}
}
-
+
MessageServices.Current.Publish(SEND_THREADS_STATUS, null, ThreadsHandler.RunningThreadStatus);
Thread.Sleep(2000);
@@ -1271,7 +1300,7 @@ public static class ThreadsFunctions
message = string.Format(NOT_FOUND_ALARM_MESSAGE, i);
}
// Add to dictionary
- returnValue.Add(i.ToString("D6") + "|900",message);
+ returnValue.Add(i.ToString("D6") + "|900", message);
}
return returnValue;
}
diff --git a/Thermo.Active.Core/ThreadsHandler.cs b/Thermo.Active.Core/ThreadsHandler.cs
index 2bea030d..ff2a4420 100644
--- a/Thermo.Active.Core/ThreadsHandler.cs
+++ b/Thermo.Active.Core/ThreadsHandler.cs
@@ -18,17 +18,18 @@ namespace Thermo.Active.Core
ThreadsFunctions.ReadEnabledFunctionality,
ThreadsFunctions.ReadExpiredMaintenances,
ThreadsFunctions.ReadAxesPositionsData,
- ThreadsFunctions.ReadMagazinesStatus,
ThreadsFunctions.ReadUserSoftKeysData,
- ThreadsFunctions.ReadHeadsData,
+ //ThreadsFunctions.ReadHeadsData,
ThreadsFunctions.ReadAxesNamesData,
- ThreadsFunctions.ReadActiveProgramData,
- ThreadsFunctions.UpdateToolsData,
- ThreadsFunctions.ReadNcMagazineActive,
+ //ThreadsFunctions.ReadActiveProgramData,
//ThreadsFunctions.ReadPartProgramQueueData,
ThreadsFunctions.ReadScadaData,
- ThreadsFunctions.ReadM154Data
+ ThreadsFunctions.ReadM154Data, // levare?
// ThreadsFunctions.ReadNcSoftKeysData,
+ ThreadsFunctions.ReadGaugeData,
+ ThreadsFunctions.ReadRecipeData,
+ ThreadsFunctions.ReadWarmersData,
+ ThreadsFunctions.ReadModulesData
};
private static Action ThreadSetupCmsConnect = ThreadsFunctions.SetupCmsConnect;
@@ -47,6 +48,7 @@ namespace Thermo.Active.Core
{
Thread t = new Thread(() => ThreadSetupCmsConnect());
t.Start();
+ Thread.Sleep(50);
}
}
@@ -63,6 +65,8 @@ namespace Thermo.Active.Core
threadFunction()
);
t.Start();
+ // aggiungo pausa x evitare sovrapposizioni chiamate
+ Thread.Sleep(50);
// Add thread to running threads list
lock (RunningThreadsList)
RunningThreadsList.Add(t);
diff --git a/Thermo.Active.Database/Controllers/NcToolManagerController.cs b/Thermo.Active.Database/Controllers/NcToolManagerController.cs
deleted file mode 100644
index c1816182..00000000
--- a/Thermo.Active.Database/Controllers/NcToolManagerController.cs
+++ /dev/null
@@ -1,685 +0,0 @@
-using Thermo.Active.Model.DatabaseModels;
-using Thermo.Active.Model.DTOModels.ToolModels;
-using Thermo.Active.Utils;
-using System;
-using System.Collections.Generic;
-using System.Data.Entity;
-using System.Linq;
-using static Thermo.Active.Utils.SupportFunctions;
-using static Thermo.Active.Model.Constants;
-
-namespace Thermo.Active.Database.Controllers
-{
- public class NcToolManagerController : IDisposable
- {
- public DatabaseContext dbCtx;
-
- public NcToolManagerController()
- {
- // Initialize database context
- dbCtx = new DatabaseContext();
- }
-
- public void Dispose()
- {
- // Clear database context
- dbCtx.Dispose();
- }
-
- public List FindFamilies()
- {
- List families = dbCtx
- .Families
- .Include("Tools")
- .ToList();
-
- return families;
- }
-
- public List GetFamilies()
- {
- List dbFamilies = FindFamilies();
-
- return dbFamilies
- .Select(x => (DTONcFamilyModel)x)
- .ToList();
- }
-
- public List FindFamiliesByShankId(int shankId)
- {
- DbNcShankModel shank = FindShankWithTools(shankId);
- // Get only families id
- short[] ids = shank.Tools.Select(x => x.FamilyId).ToArray();
-
- return FindFamilies() // Get Families
- .Where(x => ids.Contains(x.FamilyId)) // Filter by ids
- .ToList();
- }
-
- public DbNcToolModel FindTool(int toolId)
- {
- return dbCtx.Tools
- .Where(x => x.ToolId == toolId)
- .FirstOrDefault();
- }
-
- public DbNcToolModel FindToolWithDependencies(int toolId)
- {
- return dbCtx.Tools
- .Where(x => x.ToolId == toolId)
- .Include("Family")
- .Include("Shank")
- .FirstOrDefault();
- }
-
- public DbNcShankModel FindShankWithTools(int shankId)
- {
- return dbCtx.Shanks
- .Include("Tools")
- .Where(x => x.ShankId == shankId)
- .FirstOrDefault();
- }
-
- public DbNcFamilyModel FindFamily(int familyId)
- {
- return dbCtx
- .Families
- .Where(x => x.FamilyId == familyId)
- .Include("Tools")
- .FirstOrDefault();
- }
-
- public List FindToolsWithDependencies()
- {
- List tools = dbCtx
- .Tools
- .Include("Family")
- .Include("Shank")
- .ToList();
-
- return tools;
- }
-
- public List FindToolsByShankIdWithDependencies(int shankId)
- {
- List tools = FindToolsWithDependencies()
- .Where(x => x.ShankId == shankId)
- .ToList();
-
- return tools;
- }
-
- public List FindTools()
- {
- List tools = dbCtx
- .Tools
- .ToList();
-
- return tools;
- }
-
- public List GetTools()
- {
- List dbTools = FindToolsWithDependencies();
-
- return dbTools
- .Select(x => (DTONcToolModel)x)
- .ToList();
- }
-
- public List FindShanks()
- {
- List shanks = dbCtx
- .Shanks
- .Include("MagazinePosition")
- .ToList();
-
- return shanks;
- }
-
- public DbNcShankModel FindShank(int shankId)
- {
- return dbCtx.Shanks
- .Where(x => x.ShankId == shankId)
- .FirstOrDefault();
- }
-
- public DbNcShankModel FindShanksByPositions(int magazineId, int positionId)
- {
- DbNcShankModel shank = FindShanks()
- .Where(x => x.MagazineId == magazineId && x.PositionId == positionId)
- .FirstOrDefault();
-
- return shank;
- }
-
- public List FindShanksByFamilyId(int familyId)
- {
- return dbCtx
- .Tools
- .Include("Shank")
- .Where(x => x.FamilyId == familyId && x.ShankId != null)
- .Select(x => x.Shank)
- .ToList();
- }
-
- public DbNcShankModel FindShankByToolId(int toolId)
- {
- return dbCtx
- .Tools
- .Include("Shank")
- .Where(x => x.ToolId == toolId && x.ShankId != null)
- .Select(x => x.Shank)
- .FirstOrDefault();
- }
-
- public List GetShanks()
- {
- // Get shank from database
- List dbShanks = dbCtx
- .Shanks
- .Include("Tools")
- .ToList();
-
- // Populate dto shanks
- List dtoShanks = dbShanks
- .Select(x => (DTONcShankModel)x)
- .ToList();
-
- return dtoShanks;
- }
-
- public List GetShanksWithSpace()
- {
- // Populate nks
- List dtoShanks = GetShanks();
-
- List dtoFamilies = GetFamilies();
-
- // Calculate & set space occupied for each shank
- foreach(var shank in dtoShanks)
- {
- // Get only families id
- short[] ids = shank.ChildsTools.Select(x => x.FamilyId).ToArray();
-
- // Get Families data
- List families = dtoFamilies
- .Where(x => ids.Contains(x.Id))
- .ToList();
-
- if (families.Count() > 0)
- {
- // Find max between families
- shank.MaxRight = families.Max(x => x.RightSize);
- shank.MaxLeft = families.Max(x => x.LeftSize);
- }
- }
-
- return dtoShanks;
- }
-
- public DTONcShankModel GetShank(int shankId)
- {
- // Get shank from database
- DTONcShankModel dtoShanks = GetShanksWithSpace()
- .Where(x => x.Id == shankId)
- .FirstOrDefault();
-
- return dtoShanks;
- }
-
- public List FindMagazinesPositions()
- {
- List positions = dbCtx
- .MagazinePositions
- .ToList();
-
- return positions;
- }
-
- public List FindMagazinePositions(byte magId)
- {
- return dbCtx
- .MagazinePositions
- .Where(x => x.MagazineId == magId)
- .ToList();
- }
-
- public void GetShankMaxSpaceOccupied(int shankId, out int maxRight, out int maxLeft)
- {
- // Get families
- List families = FindFamiliesByShankId(shankId);
- // Find max
- maxRight = families.Max(x => x.RightSize);
- maxLeft = families.Max(x => x.LeftSize);
- }
-
- public List GetMagazinePositions(byte magId)
- {
- // Get only magazine positions that match with magazineId
- List magPos = FindMagazinePositions(magId).Select(x => (DTONcMagazinePositionModel)x).ToList();
- // Get&filter shanks by magazineId in order to get only mounted shanks in the current magazineId
- List shanks = dbCtx.Shanks.Where(x => x.MagazineId == magId).ToList();
-
- foreach(DbNcShankModel shank in shanks)
- {
- // Populate magazinePosition shank Id
- var pos = magPos
- .FirstOrDefault(x => x.PositionId == shank.PositionId);
-
- if(pos != null)
- pos.ShankId = shank.ShankId;
- }
- // Convert in DTOModel and return
- return magPos;
- }
-
- public DbNcMagazinePositionModel FindMagazinePosition(byte magId, byte posId)
- {
- DbNcMagazinePositionModel positions = dbCtx
- .MagazinePositions
- .FirstOrDefault(x => x.MagazineId == magId && x.PositionId == posId);
-
- return positions;
- }
-
- public List GetMountedShanks(int magazineId)
- {
- List dtoShanks = GetShanksWithSpace()
- .Where(x => x.MagazineId != null && x.MagazineId == magazineId)
- .ToList();
-
- return dtoShanks;
- }
-
- public List GetMountedTools()
- {
- List tools = FindToolsWithDependencies()
- .Where(x => x.Shank != null && x.Shank.MagazineId != null)
- .ToList();
-
- return tools;
- }
-
- public List GetAvailableShanksWithChilds()
- {
- List dtoShanks = GetShanksWithSpace()
- .Where(x => x.MagazineId == null && x.ChildsTools.Count > 0)
- .ToList();
-
- return dtoShanks;
- }
-
- public List GetAvailableTools()
- {
- List dtoTools = GetTools()
- .Where(x => x.ShankId == null || x.ShankId == 0)
- .ToList();
-
- return dtoTools;
- }
-
- public DbNcToolModel AddTool(DTONewNcToolModel dtoTool, short toolId)
- {
- // Copy data
- DbNcToolModel dbTool = (DbNcToolModel)dtoTool;
-
- if (toolId == 0)
- // Get next id
- dbTool.ToolId = GetFirstFreeId(dbCtx.Tools.Select(x => x.ToolId).ToList());
- else
- dbTool.ToolId = toolId;
-
- dbCtx.Tools.Add(dbTool);
-
- dbCtx.SaveChanges();
- // Get foreign key data
- dbCtx.Entry(dbTool).Reference(x => x.Family).Load();
- dbCtx.Entry(dbTool).Reference(x => x.Shank).Load();
-
- return dbTool;
- }
-
- public DbNcToolModel UpdateTool(int toolId, DTONewNcToolModel dtoTool)
- {
- DbNcToolModel tool = FindTool(toolId);
-
- tool.Status = ((DbNcToolModel)dtoTool).Status;
- var shankId = tool.ShankId;
-
- // Update db model
- SupportFunctions.CopyProperties(dtoTool, tool);
- tool.ShankId = shankId;
-
- // Save
- dbCtx.SaveChanges();
-
- return tool;
- }
-
- public DbNcToolModel UpdateToolOffset(int toolId, int position, short offsetId)
- {
- DbNcToolModel tool = FindTool(toolId);
-
- switch (position)
- {
- case 1:
- tool.OffsetId1 = offsetId;
- break;
- case 2:
- tool.OffsetId2 = offsetId;
- break;
- case 3:
- tool.OffsetId3 = offsetId;
- break;
- }
-
- // Save
- dbCtx.SaveChanges();
-
- return tool;
- }
-
- public void DeleteTool(int toolId)
- {
- DbNcToolModel tool = FindTool(toolId);
- if(tool != null)
- DeleteTool(tool);
- }
-
- public void DeleteTool(DbNcToolModel tool)
- {
- dbCtx.Tools.Remove(tool);
-
- dbCtx.SaveChanges();
- }
-
- public DbNcFamilyModel AddFamily(DTONcFamilyModel family)
- {
- DbNcFamilyModel dbFamily = (DbNcFamilyModel)family;
-
- // Get next free id if id is 0
- if (dbFamily.FamilyId == 0)
- dbFamily.FamilyId = GetFirstFreeId(dbCtx.Families.Select(x => x.FamilyId).ToList());
-
- dbFamily.Name = DEFAULT_FAM_NAME + dbFamily.FamilyId;
- dbCtx.Families.Add(dbFamily);
-
- dbCtx.SaveChanges();
-
- return dbFamily;
- }
-
- public DbNcFamilyModel UpdateFamily(int familyId, DTONewNcFamilyModel family)
- {
- DbNcFamilyModel dbFamily = FindFamily(familyId);
- // Copy data from NewModel to DbModel
- SupportFunctions.CopyProperties(family, dbFamily);
- // Set cooling byte
- dbFamily.CoolingByte = ((DbNcFamilyModel)family).CoolingByte;
-
- dbCtx.SaveChanges();
- // Connect tools data
- dbCtx.Entry(dbFamily).Collection(x => x.Tools).Load();
-
- return dbFamily;
- }
-
- public void DeleteFamily(int famId)
- {
- var family = FindFamily(famId);
-
- dbCtx.Families.Remove(family);
-
- dbCtx.SaveChanges();
- }
-
- public DbNcShankModel AddShank(DTONewNcShankModel shank, short shankId = 0)
- {
- DbNcShankModel dbShank = (DbNcShankModel)shank;
-
- if (shankId == 0)
- // Get next id
- dbShank.ShankId = GetFirstFreeId(dbCtx.Shanks.Select(x => x.ShankId).ToList());
- else
- dbShank.ShankId = shankId;
-
- dbCtx.Shanks.Add(dbShank);
-
- dbCtx.SaveChanges();
-
-
- return dbShank;
- }
-
- public DbNcShankModel UpdateShank(int shankId, DTONewNcShankModel dtoShank)
- {
- DbNcShankModel ncShank = FindShankWithTools(shankId);
-
- return UpdateShank(ncShank, dtoShank);
- }
-
- public DbNcShankModel UpdateShank(DbNcShankModel dbShank, DTONewNcShankModel dtoShank)
- {
- dbShank.Balluf = dtoShank.Balluf;
- dbShank.MagazinePositionType = dtoShank.MagazinePositionType;
-
- dbCtx.SaveChanges();
-
- dbCtx.Entry(dbShank).Collection(x => x.Tools).Load();
-
- return dbShank;
- }
-
- public DbNcShankModel DeleteNcShank(int shankId)
- {
- DbNcShankModel shank = FindShankWithTools(shankId);
- DeleteNcShank(shank);
-
- return shank;
- }
-
- public void DeleteNcShank(DbNcShankModel shank)
- {
- dbCtx.Shanks.Remove(shank);
-
- dbCtx.SaveChanges();
- }
-
- public DbNcMagazinePositionModel UpdatePosition(DbNcMagazinePositionModel dbPos, DTONcMagazinePositionModel dtoPos)
- {
- dbCtx.MagazinePositions.Attach(dbPos);
- dbPos.Type = dtoPos.Type;
- dbPos.Disabled = dtoPos.Disabled;
-
- dbCtx.SaveChanges();
-
- return dbPos;
- }
-
- public DbNcMagazinePositionModel LoadShankInMagazine(byte magazineId, byte positionId, DbNcShankModel shank)
- {
- dbCtx.Shanks.Attach(shank);
- // Set ids with new positions
- shank.MagazineId = magazineId;
- shank.PositionId = positionId;
-
- // Set original Ids
- shank.OriginMagazineId = magazineId;
- shank.OriginPositionId = positionId;
-
- dbCtx.SaveChanges();
-
- return FindMagazinePosition(magazineId, positionId);
- }
-
- public DbNcMagazinePositionModel UnloadShankInMagazine(byte magazineId, byte positionId, DbNcShankModel shank)
- {
- dbCtx.Shanks.Attach(shank);
- // set id to null
- shank.MagazineId = null;
- shank.PositionId = null;
-
- shank.OriginMagazineId = null;
- shank.OriginPositionId = null;
-
- dbCtx.SaveChanges();
-
- return FindMagazinePosition(magazineId, positionId);
- }
-
- public DTONcShankModel LoadToolIntoShank(DbNcToolModel tool, short shankId)
- {
- dbCtx.Tools.Attach(tool);
- // Set tool shankId
- tool.ShankId = shankId;
-
- dbCtx.SaveChanges();
-
- return GetShank(shankId);
- }
-
- public DTONcShankModel UnloadToolFromShank(DbNcToolModel tool)
- {
- dbCtx.Tools.Attach(tool);
- int? shankId = tool.ShankId;
- // Set to null shankId
- tool.ShankId = null;
-
- dbCtx.SaveChanges();
-
- return GetShank(shankId.Value);
- }
-
- public void SetupMagazinePositions(List config)
- {
- dbCtx.MagazinePositions.AddRange(config);
- dbCtx.SaveChanges();
- }
-
- public void UpdateToolsData(List tools)
- {
- foreach (var tool in tools)
- {
- DbNcToolModel tmpTool = dbCtx.Tools.Where(x => x.ToolId == tool.ToolId).FirstOrDefault();
- tmpTool = tool;
- }
-
- dbCtx.SaveChanges();
- }
-
- public DTOExportToolTableModel GetExportData()
- {
- return new DTOExportToolTableModel
- {
- Tools = FindTools(),
- Families = FindFamilies(),
- Shanks = FindShanks()
- .Select(x => {
- // Reset positional Data
- x.MagazineId = null;
- x.PositionId = null;
- x.OriginMagazineId = null;
- x.OriginPositionId = null;
-
- return x; })
- .ToList()
- };
- }
-
- public List ImportData(DTOExportToolTableModel data)
- {
- List importStatus = new List();
-
- List tools = FindTools();
- List families = FindFamilies();
- List shanks = FindShanks();
-
- if(data.Families != null)
- // loop thought new families
- foreach (var family in data.Families)
- {
- // Check if not exist
- if (families.FirstOrDefault(x => x.FamilyId == family.FamilyId) == null)
- {
- dbCtx.Families.Add(family);
- // Set status
- importStatus.Add(new DTOImportStatusModel()
- {
- Id = family.FamilyId,
- Status = IMPORT_STATUS.OK.ToString(),
- Type = "FAMILY"
- });
- }
- else
- {
- // Set duplicated status
- importStatus.Add(new DTOImportStatusModel()
- {
- Id = family.FamilyId,
- Status = IMPORT_STATUS.EXIST.ToString(),
- Type = "FAMILY"
- });
- }
- }
-
- if(data.Shanks != null)
- // loop thought new shanks
- foreach (var shank in data.Shanks)
- {
- // Check if not exist
- if (shanks.FirstOrDefault(x => x.ShankId == shank.ShankId) == null)
- {
- dbCtx.Shanks.Add(shank);
- importStatus.Add(new DTOImportStatusModel()
- {
- Id = shank.ShankId,
- Status = IMPORT_STATUS.OK.ToString(),
- Type = "SHANK"
- });
- }
- else
- {
- importStatus.Add(new DTOImportStatusModel()
- {
- Id = shank.ShankId,
- Status = IMPORT_STATUS.EXIST.ToString(),
- Type = "SHANK"
- });
- }
- }
-
- if(data.Tools != null)
- // loop thought new tools
- foreach (var tool in data.Tools)
- {
- // Check if not exist
- if (tools.FirstOrDefault(x => x.ToolId == tool.ToolId) == null)
- {
- dbCtx.Tools.Add(tool);
- importStatus.Add(new DTOImportStatusModel()
- {
- Id = tool.ToolId,
- Status = IMPORT_STATUS.EXIST.ToString(),
- Type = "TOOL"
- });
- }
- else
- {
- importStatus.Add(new DTOImportStatusModel()
- {
- Id = tool.ToolId,
- Status = IMPORT_STATUS.EXIST.ToString(),
- Type = "TOOL"
- });
- }
- }
-
- // Save
- dbCtx.SaveChanges();
-
- return importStatus;
- }
-
- }
-}
\ No newline at end of file
diff --git a/Thermo.Active.Database/DatabaseContext.cs b/Thermo.Active.Database/DatabaseContext.cs
index ca40fcc0..bfddd88d 100644
--- a/Thermo.Active.Database/DatabaseContext.cs
+++ b/Thermo.Active.Database/DatabaseContext.cs
@@ -1,7 +1,7 @@
using Microsoft.Win32;
using MySql.Data.Entity;
using Thermo.Active.Database.Controllers;
-using Thermo.Active.Database.Migrations;
+using Thermo.Active.Database.Migrations;
using Thermo.Active.Model.DatabaseModels;
using System;
@@ -34,9 +34,6 @@ namespace Thermo.Active.Database
public DbSet MaintenanceFiles { get; set; }
// Tool tables
public DbSet Families { get; set; }
- public DbSet Shanks { get; set; }
- public DbSet Tools { get; set; }
- public DbSet MagazinePositions { get; set; }
public DbSet Queue { get; set; }
// Alarms
public DbSet AlarmDescriptions { get; set; }
@@ -85,7 +82,7 @@ namespace Thermo.Active.Database
{
// Run migrations and seed.
migrator.Update();
- }
+ }
FindOrCreateMachineUniqueId();
diff --git a/Thermo.Active.Database/Migrations/201806130949510_InitMigration.Designer.cs b/Thermo.Active.Database/Migrations/201806130949510_InitMigration.Designer.cs
deleted file mode 100644
index d11ed5ce..00000000
--- a/Thermo.Active.Database/Migrations/201806130949510_InitMigration.Designer.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-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 InitMigration : IMigrationMetadata
- {
- private readonly ResourceManager Resources = new ResourceManager(typeof(InitMigration));
-
- string IMigrationMetadata.Id
- {
- get { return "201806130949510_InitMigration"; }
- }
-
- string IMigrationMetadata.Source
- {
- get { return null; }
- }
-
- string IMigrationMetadata.Target
- {
- get { return Resources.GetString("Target"); }
- }
- }
-}
diff --git a/Thermo.Active.Database/Migrations/201806130949510_InitMigration.cs b/Thermo.Active.Database/Migrations/201806130949510_InitMigration.cs
deleted file mode 100644
index 48d0155f..00000000
--- a/Thermo.Active.Database/Migrations/201806130949510_InitMigration.cs
+++ /dev/null
@@ -1,165 +0,0 @@
-namespace Thermo.Active.Database.Migrations
-{
- using System;
- using System.Data.Entity.Migrations;
-
- public partial class InitMigration : DbMigration
- {
- public override void Up()
- {
- CreateTable(
- "dbo.function_access",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- name = c.String(unicode: false),
- write_level_min = c.Int(nullable: false),
- read_level_min = c.Int(nullable: false),
- area = c.String(unicode: false),
- enabled = c.Boolean(nullable: false),
- plc_id = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id);
-
- CreateTable(
- "dbo.machine",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- name = c.String(unicode: false),
- unique_id = c.String(unicode: false),
- })
- .PrimaryKey(t => t.id);
-
- CreateTable(
- "dbo.machine_user",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- machine_id = c.Int(nullable: false),
- user_id = c.Int(nullable: false),
- role_id = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.machine", t => t.machine_id, cascadeDelete: true)
- .ForeignKey("dbo.role", t => t.role_id, cascadeDelete: true)
- .ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true)
- .Index(t => new { t.machine_id, t.user_id }, unique: true, clustered: true, name: "unique_machine_user")
- .Index(t => t.role_id);
-
- CreateTable(
- "dbo.role",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- name = c.String(unicode: false),
- level = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id);
-
- CreateTable(
- "dbo.user",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- username = c.String(nullable: false, unicode: false),
- first_name = c.String(unicode: false),
- last_name = c.String(unicode: false),
- password = c.String(unicode: false),
- security_stamp = c.String(unicode: false),
- language = c.String(unicode: false),
- })
- .PrimaryKey(t => t.id);
-
- CreateTable(
- "dbo.maintenance",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- intervall = c.Double(),
- deadline = c.DateTime(nullable: false, precision: 0),
- type = c.Int(nullable: false),
- counter_id = c.Int(nullable: false),
- title = c.String(unicode: false),
- description = c.String(unicode: false),
- unit_of_measure = c.Int(),
- creation_date = c.DateTime(nullable: false, precision: 0),
- last_expiration_date = c.DateTime(precision: 0),
- user_id = c.Int(),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.user", t => t.user_id)
- .Index(t => t.user_id);
-
- CreateTable(
- "dbo.maintenance_note",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- message = c.String(unicode: false),
- maintenance_id = c.Int(),
- user_id = c.Int(),
- timestamp = c.DateTime(nullable: false, precision: 0),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.maintenance", t => t.maintenance_id)
- .ForeignKey("dbo.user", t => t.user_id)
- .Index(t => t.maintenance_id)
- .Index(t => t.user_id);
-
- CreateTable(
- "dbo.performed_maintenance",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- date = c.DateTime(nullable: false, precision: 0),
- counter_value = c.Int(nullable: false),
- maintenance = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.maintenance", t => t.maintenance, cascadeDelete: true)
- .Index(t => t.maintenance);
-
- CreateTable(
- "dbo.session",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- token = c.String(unicode: false),
- machine_user_id = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.machine_user", t => t.machine_user_id, cascadeDelete: true)
- .Index(t => t.machine_user_id);
-
- }
-
- public override void Down()
- {
- DropForeignKey("dbo.session", "machine_user_id", "dbo.machine_user");
- DropForeignKey("dbo.performed_maintenance", "maintenance", "dbo.maintenance");
- DropForeignKey("dbo.maintenance_note", "user_id", "dbo.user");
- DropForeignKey("dbo.maintenance_note", "maintenance_id", "dbo.maintenance");
- DropForeignKey("dbo.maintenance", "user_id", "dbo.user");
- DropForeignKey("dbo.machine_user", "user_id", "dbo.user");
- DropForeignKey("dbo.machine_user", "role_id", "dbo.role");
- DropForeignKey("dbo.machine_user", "machine_id", "dbo.machine");
- DropIndex("dbo.session", new[] { "machine_user_id" });
- DropIndex("dbo.performed_maintenance", new[] { "maintenance" });
- DropIndex("dbo.maintenance_note", new[] { "user_id" });
- DropIndex("dbo.maintenance_note", new[] { "maintenance_id" });
- DropIndex("dbo.maintenance", new[] { "user_id" });
- DropIndex("dbo.machine_user", new[] { "role_id" });
- DropIndex("dbo.machine_user", "unique_machine_user");
- DropTable("dbo.session");
- DropTable("dbo.performed_maintenance");
- DropTable("dbo.maintenance_note");
- DropTable("dbo.maintenance");
- DropTable("dbo.user");
- DropTable("dbo.role");
- DropTable("dbo.machine_user");
- DropTable("dbo.machine");
- DropTable("dbo.function_access");
- }
- }
-}
diff --git a/Thermo.Active.Database/Migrations/201806130949510_InitMigration.resx b/Thermo.Active.Database/Migrations/201806130949510_InitMigration.resx
deleted file mode 100644
index b4e7b9c7..00000000
--- a/Thermo.Active.Database/Migrations/201806130949510_InitMigration.resx
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 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
-
-
- dbo
-
-
\ No newline at end of file
diff --git a/Thermo.Active.Database/Migrations/201807120908403_InitMigration.Designer.cs b/Thermo.Active.Database/Migrations/201807120908403_InitMigration.Designer.cs
deleted file mode 100644
index 29f6c6e4..00000000
--- a/Thermo.Active.Database/Migrations/201807120908403_InitMigration.Designer.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-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 InitMigration : IMigrationMetadata
- {
- private readonly ResourceManager Resources = new ResourceManager(typeof(InitMigration));
-
- string IMigrationMetadata.Id
- {
- get { return "201807120908403_InitMigration"; }
- }
-
- string IMigrationMetadata.Source
- {
- get { return null; }
- }
-
- string IMigrationMetadata.Target
- {
- get { return Resources.GetString("Target"); }
- }
- }
-}
diff --git a/Thermo.Active.Database/Migrations/201807120908403_InitMigration.cs b/Thermo.Active.Database/Migrations/201807120908403_InitMigration.cs
deleted file mode 100644
index d480f387..00000000
--- a/Thermo.Active.Database/Migrations/201807120908403_InitMigration.cs
+++ /dev/null
@@ -1,196 +0,0 @@
-namespace Thermo.Active.Database.Migrations
-{
- using System;
- using System.Data.Entity.Migrations;
-
- public partial class InitMigration : DbMigration
- {
- public override void Up()
- {
- CreateTable(
- "dbo.favorite_user_softkey",
- c => new
- {
- user_softkey_id = c.Int(nullable: false),
- user_id = c.Int(nullable: false),
- })
- .PrimaryKey(t => new { t.user_softkey_id, t.user_id });
-
- CreateTable(
- "dbo.function_access",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- name = c.String(unicode: false),
- write_level_min = c.Int(nullable: false),
- read_level_min = c.Int(nullable: false),
- area = c.String(unicode: false),
- enabled = c.Boolean(nullable: false),
- plc_id = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id);
-
- CreateTable(
- "dbo.machine",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- name = c.String(unicode: false),
- unique_id = c.String(unicode: false),
- })
- .PrimaryKey(t => t.id);
-
- CreateTable(
- "dbo.machine_user",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- machine_id = c.Int(nullable: false),
- user_id = c.Int(nullable: false),
- role_id = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.machine", t => t.machine_id, cascadeDelete: true)
- .ForeignKey("dbo.role", t => t.role_id, cascadeDelete: true)
- .ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true)
- .Index(t => new { t.machine_id, t.user_id }, unique: true, clustered: true, name: "unique_machine_user")
- .Index(t => t.role_id);
-
- CreateTable(
- "dbo.role",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- name = c.String(unicode: false),
- level = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id);
-
- CreateTable(
- "dbo.user",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- username = c.String(nullable: false, unicode: false),
- first_name = c.String(unicode: false),
- last_name = c.String(unicode: false),
- password = c.String(unicode: false),
- security_stamp = c.String(unicode: false),
- language = c.String(unicode: false),
- })
- .PrimaryKey(t => t.id);
-
- CreateTable(
- "dbo.maintenance_file",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- file_name = c.String(unicode: false),
- local_file_name = c.String(unicode: false),
- maintenance_id = c.Int(nullable: false),
- user_id = c.Int(),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.maintenance", t => t.maintenance_id, cascadeDelete: true)
- .ForeignKey("dbo.user", t => t.user_id)
- .Index(t => t.maintenance_id)
- .Index(t => t.user_id);
-
- CreateTable(
- "dbo.maintenance",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- intervall = c.Double(),
- deadline = c.DateTime(nullable: false, precision: 0),
- type = c.Int(nullable: false),
- counter_id = c.Int(nullable: false),
- title = c.String(unicode: false),
- description = c.String(unicode: false),
- unit_of_measure = c.Int(),
- creation_date = c.DateTime(nullable: false, precision: 0),
- last_expiration_date = c.DateTime(precision: 0),
- user_id = c.Int(),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.user", t => t.user_id)
- .Index(t => t.user_id);
-
- CreateTable(
- "dbo.maintenance_note",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- message = c.String(unicode: false),
- user_id = c.Int(nullable: false),
- maintenance_id = c.Int(nullable: false),
- timestamp = c.DateTime(nullable: false, precision: 0),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.maintenance", t => t.maintenance_id, cascadeDelete: true)
- .ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true)
- .Index(t => t.user_id)
- .Index(t => t.maintenance_id);
-
- CreateTable(
- "dbo.performed_maintenance",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- date = c.DateTime(nullable: false, precision: 0),
- counter_value = c.Int(nullable: false),
- maintenance = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.maintenance", t => t.maintenance, cascadeDelete: true)
- .Index(t => t.maintenance);
-
- CreateTable(
- "dbo.session",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- token = c.String(unicode: false),
- machine_user_id = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.machine_user", t => t.machine_user_id, cascadeDelete: true)
- .Index(t => t.machine_user_id);
-
- }
-
- public override void Down()
- {
- DropForeignKey("dbo.session", "machine_user_id", "dbo.machine_user");
- DropForeignKey("dbo.performed_maintenance", "maintenance", "dbo.maintenance");
- DropForeignKey("dbo.maintenance_note", "user_id", "dbo.user");
- DropForeignKey("dbo.maintenance_note", "maintenance_id", "dbo.maintenance");
- DropForeignKey("dbo.maintenance_file", "user_id", "dbo.user");
- DropForeignKey("dbo.maintenance_file", "maintenance_id", "dbo.maintenance");
- DropForeignKey("dbo.maintenance", "user_id", "dbo.user");
- DropForeignKey("dbo.machine_user", "user_id", "dbo.user");
- DropForeignKey("dbo.machine_user", "role_id", "dbo.role");
- DropForeignKey("dbo.machine_user", "machine_id", "dbo.machine");
- DropIndex("dbo.session", new[] { "machine_user_id" });
- DropIndex("dbo.performed_maintenance", new[] { "maintenance" });
- DropIndex("dbo.maintenance_note", new[] { "maintenance_id" });
- DropIndex("dbo.maintenance_note", new[] { "user_id" });
- DropIndex("dbo.maintenance", new[] { "user_id" });
- DropIndex("dbo.maintenance_file", new[] { "user_id" });
- DropIndex("dbo.maintenance_file", new[] { "maintenance_id" });
- DropIndex("dbo.machine_user", new[] { "role_id" });
- DropIndex("dbo.machine_user", "unique_machine_user");
- DropTable("dbo.session");
- DropTable("dbo.performed_maintenance");
- DropTable("dbo.maintenance_note");
- DropTable("dbo.maintenance");
- DropTable("dbo.maintenance_file");
- DropTable("dbo.user");
- DropTable("dbo.role");
- DropTable("dbo.machine_user");
- DropTable("dbo.machine");
- DropTable("dbo.function_access");
- DropTable("dbo.favorite_user_softkey");
- }
- }
-}
diff --git a/Thermo.Active.Database/Migrations/201807120908403_InitMigration.resx b/Thermo.Active.Database/Migrations/201807120908403_InitMigration.resx
deleted file mode 100644
index 85236052..00000000
--- a/Thermo.Active.Database/Migrations/201807120908403_InitMigration.resx
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 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
-
-
- dbo
-
-
\ No newline at end of file
diff --git a/Thermo.Active.Database/Migrations/201810100646276_InitMigration.Designer.cs b/Thermo.Active.Database/Migrations/201810100646276_InitMigration.Designer.cs
deleted file mode 100644
index 433f4493..00000000
--- a/Thermo.Active.Database/Migrations/201810100646276_InitMigration.Designer.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-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 InitMigration : IMigrationMetadata
- {
- private readonly ResourceManager Resources = new ResourceManager(typeof(InitMigration));
-
- string IMigrationMetadata.Id
- {
- get { return "201810100646276_InitMigration"; }
- }
-
- string IMigrationMetadata.Source
- {
- get { return null; }
- }
-
- string IMigrationMetadata.Target
- {
- get { return Resources.GetString("Target"); }
- }
- }
-}
diff --git a/Thermo.Active.Database/Migrations/201810100646276_InitMigration.cs b/Thermo.Active.Database/Migrations/201810100646276_InitMigration.cs
deleted file mode 100644
index c169289c..00000000
--- a/Thermo.Active.Database/Migrations/201810100646276_InitMigration.cs
+++ /dev/null
@@ -1,340 +0,0 @@
-namespace Thermo.Active.Database.Migrations
-{
- using System;
- using System.Data.Entity.Migrations;
-
- public partial class InitMigration : DbMigration
- {
- public override void Up()
- {
- CreateTable(
- "dbo.alarm_description",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- title = c.String(unicode: false),
- description = c.String(unicode: false),
- })
- .PrimaryKey(t => t.id);
-
- CreateTable(
- "dbo.alarm_occurrence",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- alarm_id = c.Int(),
- source = c.Int(nullable: false),
- type = c.Int(nullable: false),
- processes = c.Int(nullable: false),
- timestamp = c.DateTime(nullable: false, precision: 0),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.alarm_description", t => t.alarm_id)
- .Index(t => t.alarm_id);
-
- CreateTable(
- "dbo.alarm_user",
- c => new
- {
- user_id = c.Int(nullable: false),
- alarm_occurence_id = c.Int(nullable: false),
- })
- .PrimaryKey(t => new { t.user_id, t.alarm_occurence_id })
- .ForeignKey("dbo.alarm_occurrence", t => t.alarm_occurence_id, cascadeDelete: true)
- .ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true)
- .Index(t => t.user_id)
- .Index(t => t.alarm_occurence_id);
-
- CreateTable(
- "dbo.user",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- username = c.String(nullable: false, unicode: false),
- first_name = c.String(unicode: false),
- last_name = c.String(unicode: false),
- password = c.String(unicode: false),
- security_stamp = c.String(unicode: false),
- language = c.String(unicode: false),
- })
- .PrimaryKey(t => t.id);
-
- CreateTable(
- "dbo.family",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- name = c.String(unicode: false),
- type = c.Byte(nullable: false),
- right_size = c.Byte(nullable: false),
- left_size = c.Byte(nullable: false),
- tcp_table = c.Byte(nullable: false),
- gamma = c.Byte(nullable: false),
- rotation_type = c.Byte(nullable: false),
- cooling_byte = c.Byte(nullable: false),
- max_speed = c.Int(nullable: false),
- max_load = c.Byte(nullable: false),
- min_load_pct_autoload = c.Byte(nullable: false),
- max_load_pct_autoload = c.Byte(nullable: false),
- dynamic_compensation = c.Byte(nullable: false),
- min_load_dynamic_comp = c.Byte(nullable: false),
- max_load_dynamic_comp = c.Byte(nullable: false),
- life_type = c.Byte(nullable: false),
- nominal_life = c.Int(nullable: false),
- revive_delta = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id);
-
- CreateTable(
- "dbo.tool",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- offset_length = c.Int(nullable: false),
- residual_life = c.Int(nullable: false),
- residual_revive = c.Int(nullable: false),
- status = c.Byte(nullable: false),
- family_id = c.Int(nullable: false),
- shank_id = c.Int(),
- offsetId1 = c.Int(),
- offsetId2 = c.Int(),
- offsetId3 = c.Int(),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.family", t => t.family_id, cascadeDelete: true)
- .ForeignKey("dbo.shank", t => t.shank_id)
- .Index(t => t.family_id)
- .Index(t => t.shank_id);
-
- CreateTable(
- "dbo.shank",
- c => new
- {
- magazine_id = c.Byte(),
- position_id = c.Byte(),
- id = c.Int(nullable: false, identity: true),
- balluf = c.Int(),
- magazine_position_type = c.Byte(nullable: false),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.magazine_position", t => new { t.magazine_id, t.position_id })
- .Index(t => new { t.magazine_id, t.position_id });
-
- CreateTable(
- "dbo.magazine_position",
- c => new
- {
- magazine_id = c.Byte(nullable: false),
- position_id = c.Byte(nullable: false),
- type = c.Byte(nullable: false),
- disabled = c.Boolean(nullable: false),
- })
- .PrimaryKey(t => new { t.magazine_id, t.position_id });
-
- CreateTable(
- "dbo.favorite_user_softkey",
- c => new
- {
- user_softkey_id = c.Int(nullable: false),
- user_id = c.Int(nullable: false),
- })
- .PrimaryKey(t => new { t.user_softkey_id, t.user_id });
-
- CreateTable(
- "dbo.function_access",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- name = c.String(unicode: false),
- write_level_min = c.Int(nullable: false),
- read_level_min = c.Int(nullable: false),
- area = c.String(unicode: false),
- enabled = c.Boolean(nullable: false),
- plc_id = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id);
-
- CreateTable(
- "dbo.machine",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- name = c.String(unicode: false),
- unique_id = c.String(unicode: false),
- })
- .PrimaryKey(t => t.id);
-
- CreateTable(
- "dbo.machine_user",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- machine_id = c.Int(nullable: false),
- user_id = c.Int(nullable: false),
- role_id = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.machine", t => t.machine_id, cascadeDelete: true)
- .ForeignKey("dbo.role", t => t.role_id, cascadeDelete: true)
- .ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true)
- .Index(t => new { t.machine_id, t.user_id }, unique: true, clustered: true, name: "unique_machine_user")
- .Index(t => t.role_id);
-
- CreateTable(
- "dbo.role",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- name = c.String(unicode: false),
- level = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id);
-
- CreateTable(
- "dbo.maintenance_file",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- file_name = c.String(unicode: false),
- local_file_name = c.String(unicode: false),
- maintenance_id = c.Int(nullable: false),
- user_id = c.Int(),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.maintenance", t => t.maintenance_id, cascadeDelete: true)
- .ForeignKey("dbo.user", t => t.user_id)
- .Index(t => t.maintenance_id)
- .Index(t => t.user_id);
-
- CreateTable(
- "dbo.maintenance",
- c => new
- {
- id = c.Int(nullable: false),
- intervall = c.Double(),
- deadline = c.DateTime(nullable: false, precision: 0),
- type = c.Int(nullable: false),
- counter_id = c.Int(nullable: false),
- title = c.String(unicode: false),
- description = c.String(unicode: false),
- unit_of_measure = c.Int(),
- creation_date = c.DateTime(nullable: false, precision: 0),
- last_expiration_date = c.DateTime(precision: 0),
- user_id = c.Int(),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.user", t => t.user_id)
- .Index(t => t.user_id);
-
- CreateTable(
- "dbo.maintenance_note",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- message = c.String(unicode: false),
- user_id = c.Int(nullable: false),
- maintenance_id = c.Int(nullable: false),
- timestamp = c.DateTime(nullable: false, precision: 0),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.maintenance", t => t.maintenance_id, cascadeDelete: true)
- .ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true)
- .Index(t => t.user_id)
- .Index(t => t.maintenance_id);
-
- CreateTable(
- "dbo.performed_maintenance",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- date = c.DateTime(nullable: false, precision: 0),
- counter_value = c.Int(nullable: false),
- maintenance = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.maintenance", t => t.maintenance, cascadeDelete: true)
- .Index(t => t.maintenance);
-
- CreateTable(
- "dbo.queue",
- c => new
- {
- id = c.Int(nullable: false),
- process = c.Int(nullable: false),
- part_program_name = c.String(unicode: false),
- reps = c.Int(nullable: false),
- remaining_reps = c.Int(nullable: false),
- absolute_path = c.String(unicode: false),
- status = c.Int(nullable: false),
- })
- .PrimaryKey(t => new { t.id, t.process });
-
- CreateTable(
- "dbo.session",
- c => new
- {
- id = c.Int(nullable: false, identity: true),
- token = c.String(unicode: false),
- machine_user_id = c.Int(nullable: false),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.machine_user", t => t.machine_user_id, cascadeDelete: true)
- .Index(t => t.machine_user_id);
-
- }
-
- public override void Down()
- {
- DropForeignKey("dbo.session", "machine_user_id", "dbo.machine_user");
- DropForeignKey("dbo.performed_maintenance", "maintenance", "dbo.maintenance");
- DropForeignKey("dbo.maintenance_note", "user_id", "dbo.user");
- DropForeignKey("dbo.maintenance_note", "maintenance_id", "dbo.maintenance");
- DropForeignKey("dbo.maintenance_file", "user_id", "dbo.user");
- DropForeignKey("dbo.maintenance_file", "maintenance_id", "dbo.maintenance");
- DropForeignKey("dbo.maintenance", "user_id", "dbo.user");
- DropForeignKey("dbo.machine_user", "user_id", "dbo.user");
- DropForeignKey("dbo.machine_user", "role_id", "dbo.role");
- DropForeignKey("dbo.machine_user", "machine_id", "dbo.machine");
- DropForeignKey("dbo.tool", "shank_id", "dbo.shank");
- DropForeignKey("dbo.shank", new[] { "magazine_id", "position_id" }, "dbo.magazine_position");
- DropForeignKey("dbo.tool", "family_id", "dbo.family");
- DropForeignKey("dbo.alarm_user", "user_id", "dbo.user");
- DropForeignKey("dbo.alarm_user", "alarm_occurence_id", "dbo.alarm_occurrence");
- DropForeignKey("dbo.alarm_occurrence", "alarm_id", "dbo.alarm_description");
- DropIndex("dbo.session", new[] { "machine_user_id" });
- DropIndex("dbo.performed_maintenance", new[] { "maintenance" });
- DropIndex("dbo.maintenance_note", new[] { "maintenance_id" });
- DropIndex("dbo.maintenance_note", new[] { "user_id" });
- DropIndex("dbo.maintenance", new[] { "user_id" });
- DropIndex("dbo.maintenance_file", new[] { "user_id" });
- DropIndex("dbo.maintenance_file", new[] { "maintenance_id" });
- DropIndex("dbo.machine_user", new[] { "role_id" });
- DropIndex("dbo.machine_user", "unique_machine_user");
- DropIndex("dbo.shank", new[] { "magazine_id", "position_id" });
- DropIndex("dbo.tool", new[] { "shank_id" });
- DropIndex("dbo.tool", new[] { "family_id" });
- DropIndex("dbo.alarm_user", new[] { "alarm_occurence_id" });
- DropIndex("dbo.alarm_user", new[] { "user_id" });
- DropIndex("dbo.alarm_occurrence", new[] { "alarm_id" });
- DropTable("dbo.session");
- DropTable("dbo.queue");
- DropTable("dbo.performed_maintenance");
- DropTable("dbo.maintenance_note");
- DropTable("dbo.maintenance");
- DropTable("dbo.maintenance_file");
- DropTable("dbo.role");
- DropTable("dbo.machine_user");
- DropTable("dbo.machine");
- DropTable("dbo.function_access");
- DropTable("dbo.favorite_user_softkey");
- DropTable("dbo.magazine_position");
- DropTable("dbo.shank");
- DropTable("dbo.tool");
- DropTable("dbo.family");
- DropTable("dbo.user");
- DropTable("dbo.alarm_user");
- DropTable("dbo.alarm_occurrence");
- DropTable("dbo.alarm_description");
- }
- }
-}
diff --git a/Thermo.Active.Database/Migrations/201810100646276_InitMigration.resx b/Thermo.Active.Database/Migrations/201810100646276_InitMigration.resx
deleted file mode 100644
index 0b0d5630..00000000
--- a/Thermo.Active.Database/Migrations/201810100646276_InitMigration.resx
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- H4sIAAAAAAAEAOVd2W4jOZZ9H2D+QdBjT7WVzkQD0wm7G0rbWW20t7GcVT1PAh2i5EDFoorFZddgvmwe5pPmF4aMlfsSjEXKhl+sCPLw8vLwcruX8X//879nf30Lg9krTFI/js7npycf5jMYefHGj3bn8zzb/vHf53/9y7/+y9nVJnyb/VSn+4TToZxRej5/ybL958Ui9V5gCNKT0PeSOI232YkXhwuwiRcfP3z48+L0dAERxBxhzWZnj3mU+SEsfqCfF3HkwX2Wg+A23sAgrZ6jN6sCdXYHQpjugQfP56sM7k8uQQaeQQrns2XgAyTECgbb+QxEUZyBDIn4+VsKV1kSR7vVHj0AwdP7HqJ0WxDgXIXon9vkprX48BHXYtFmrKG8PM3i0BLw9FOllgWbvZNy543akOKukIKzd1zrQnnn82UAkvASpl7i73ERaaHq+Ywt+vNFkOBslaaLVI2+y+Y5EWP9MGtz/NBwBVEK//0wu8iDLE/geQTzLAEoxUP+HPje3+H7U/wLjM6jPAjIKqBKoHfUA/ToIYn3MMneH+GWrNj1Zj5b0JkXbO4mL5uxrO51lH36OJ/dITHAcwAbrhCqWWVxAn+EEUxABjcPIMtggpr6egMLbXMiMAU++VkA6+IQO1Efm89uwdsNjHbZy/kc/TufffXf4KZ+UonwLfJRl0SZsiSHulKIdum5rLNFyyo91+49L08SZEygM9VYqCmZ1srSmXM0xFjsYzstV7Y6+yrOE69lL7K3J8ub5ePtenX/7fHiSiC6pjMgHAHa038+2GOhn4gaKUx12tT1zxANGiDc1zCIixA/1CPdgVd/VzSTRuvz2SMMioTpi7+vqy4i+ZrP+jWJw8c4kPUwLse6abTYKtsTSHYwM68kGmyTVF4z/JooqS2fq5E0ZSMSVRN58rri3c1Xg+1gtxqMiQwWLp+3UkPZtro0ly5obR+t+iHJvCHJKux2em7bdDeTCpTppFLj/3SiFmlE8hl3Jsd+dJhdqK/O0N/ojsuLQNjH9NKyy371kzS766dodUk3YKSCHkCa/hYnm8ELWkFkBFDrUrOOwUpbByDa5WDXtwKNbcHl8533FYR+8O5gERiQiexCKUEXy9DmHMs2jNJnnuI4IOf0X94ze1vy6O9espX/uxvKDdy6gzx5+yec3AnkRxCGwE0jFQecVXuB2ge1fJnXAQexZbWH0HGeh+kXg42bJH6EMR68bJlnceAMV4rUF9zlOxqOfe8iDvcwSgG5HeNS295hy1r3DXvjb6EzZe/i0I9AgLHc2PYIX/1XeAmDDPS1nsDmTrzkxeMTfltOoEtrT87CRe+55a0wkdOilkLsPvI2EBONu7j8LqNunW+sMfd+u01hVg6oruRN/U3eTzcokcru4IaFZqxZnjp1b9OJkEaQFxD9woHoG/IujrTYZSNeb06tdkrrXB875fqkziU1SLWh6csisRsDSrNlKmTRWAYyVulkIhavNRKWaZy2LjBgAeNoM1uMiYxm00dsraa4cw1oNr+AIMi3Vh3nFuzA734EH+LU72WmXANeMxNAzZ5BVbwml7RrsNWQ9pKWTWs+D91jFEmFvUeV3rarm06QjLq6enpEm4POXZ2tsmOvF8JNZABIShscBpBctjUZst5je6Qn6U4Op4zdlnF+ilO3UiDWQRBpcIx59xW8xomfQbx9u4q32S/QZWtMhjbVsFOKYEi6rjvtRCku80j70yvzRs4jDzfh0sOn1C7tywNNtf1JSdJpG5RD+K62Q3/G/fAGvsLg1o9cl21g0w/SMoFg8JpfRR0MpmAACLyBuuMt8F7QAOXQD0mEyUb0QoRuI3STdawuV+l6YOahxL/mRL3GPt6qFOt44s2iTEuwrqMyk300oplyu+/JgOjkJujRf6WqmHBBxTJm3SRuV1WyNNw6UJrQdgGI4czELVMqZMWP9YIWqXrzpeHgWW8aYQK9lO4eNRjYwb402ScyLHW/sLUoZv3pyKaJxbxuoFmOH2UwApEHv/pOhBEhTeWBnWWoP4WoATs5X1O5x+IR1tk4XIo9EIxWGsGKQUZb84GxkUNix3n2rqlMpElXpxVYd02GHocjQUn8kCRJZCa4+9BEwPZjcKadAVMMt58BW3SQfs4rETpMXkEzoFzGeeHBpAsYApugmC7aRj3oQjpul9d3T1d3y7uLq26BHRdxjqvkamCOPfBKuNTN7re3EKSI+VKdf7u7flrff13fXi1X3x6vtNpOYEFBTABnMmBn3au3vZ8oIAccFkwMqdaImhnQAYznXZz1ZEAbpImMaBfLOeqGAUzT/j2ih9lR6HHK1fZB227ex0SsIaXBREyYVtUdxRmGmIi1JSlsCJ3ITHB3W/IAk22chHDTz4xMCjeRVRHJ08XSyHDGsj69jLTVJOknEOSOTn0uBqazXZByS2YcjDJwHc0sl1On+48c5vA6g6HLGS8DcjDDtrgfloHX0wzxJiuiRsBRCgNJhh7tEhCOsgXzCPeOEe+PMETkR9K5Qy2f0zjIM4g09jJ4zWnv4173TVeILm7OXyTCVJ43pQid3GnarGONgkVdR9iwtDiRtDyWk84WSS6sqcTteCZLww1h0oR2o1YeEnSn7/C4Tr8GYNfek2RE/wtU4wxEWfpvJFgfzEcNvIFJ8I4IQTYX3Ta3MHyGSX1oczGfFROh8/kHrhWplA83bdJTXnWlkrSKK3e1elEbhppGaVePj/ePpnr7efl4d333o5Pu+H1BRw2ygBPp8R8P68vl05WpKm+XF3+7vrtaY9kff1reyHTK5nu6vhVk+ujYENxmYY9twmBP0zxhaNowl6Yt8TeZ9rmmbhJ+MmmmZZrGnl9ouTY3ZlcE0SJcRZtZt/uC2v1kyV1et6iN/D1qFTTEnM//wNXeuujGxZ8pWnBlHV32h5MTvpXQVAgmePYBgoKRCV7j8fMmP/L8PQg6Scqgic+rxXfT4WZvCmffXMI9jPDMqVPTGUvF3ATGC9jIwUwgdao9WxDsNSC1/MIdJaMMbt9hmET45Vmy1+BaKssOc8o21Nl9dAkDmMHZ0isvkLwAqQc2/FwUGYxNX2TXVsyYTqqro+zprm3c3uQan+XF9N+QbvQyYAA+U8sHogAp9sERl6yBCSukd6J1pijZSG4SjEBGYSywjCzqwOCWLczdAuZsVN+FQBdAXRx0aKRUVcSEE7LrhKx4qWouVyFGoqYquFVFIqNIV5pPZGS3HWNNwmSZwiSxpUPNZA2lNCGFKnRUfCYgDR61JrNBq05QhdGtdBkibWZDmasRerfRTDy2aZfql9oScUyaVnIVgoOdpTTuKMII1JIGi8jaXx85QjifcRFQ5jzTBp7w5RzoZEBXEzObJYnvs2Kqru2cJZmCsEW4kDGL6NihgahKhR4RhRChOgdPUrIOJrwQx/G40ZNsLDcZpiCmcmWvCRcbiJhHuL5X1mGkFb6ysQ5+jS92cZZzRunvTBKTdSW0IabKXdqEmP3NIJWyjEYwhdKPiWDimCoDGmgCrIS0IwIZO1FPHaNlQfVDsJJmtTKb4SmcaLvSWtm+vUg1FdFNraksBG9gah+GZRXLM751FTfCMVlYcbCEASU0kRNCGhKBR51oqA6+OFYLq6zVZBZW2b5HaGGZcBorthlY2P6ofZSLKk09xrfM4sY7eMtsFq4i45Nl7ErLLUVAlzmb7WJgjspaW1VtXJNt1ebHYrelju0y7um93Fu60TEY5vzWOshbbLNNT2ldbSw273uw3Lr260Wa3olbxkCgPBnK0fr3VgE7+Dl8ywSuzUjEyrs5raJLWM5h3BXMJC6V6XzWhl9o3Fk5OgugCX9CGTLvcmgCjNtCCkl0Dg2WDMYcoXA+8YXV47x/NFDV1eNCHOIIXINSHNPKYMiTbg0O67kgg5S4iGjVxl35LCpAfs+0Dr+6pjct7+kVQYtuN9bqpDAEIjj6aNcQR0Y/3shrALGtEwERB3lakai9B7FUom0fc1wNpj0enoprQInVkwZYNN0RgStmtJoSihBpASIXf63r4eWQJhKOnoEwOMRYIzfTYjf9+YzIrLLemtAOatpjGdzRqEE0tnBjcudADrYYenRkp0y0Tk31LY8dkOnZMNqAr7g+3oCtcGWUdBrVBxdYNJi7IsvoVK32+Lm+qmbURN9ZT9SUnkATAnXQiPh7SbxK9L7UVC2U3tRENarpi0IfSrdpAqmdU/WiE+WXZ8TqMfbn5epn4tFLVLWerWm0ZuK6S6AK5m49s6v6/I2OXAIXUAUjaCdQB2rR3p5adXfQhvzual4lZq6LzP6txnmRamxqMqlQktZVUYA6hK7Ki7MNFMW7zKnrQznN9aMiykWOgKxm3P0rRzaQGbhtqWsiG8wclDP0iCa59FCkHK3rkOx8RKcccjGg1I3KU2hY3UguCFaqycABRn9mL9r8FyuvWlOaKVDt72LYOn2p1IByKh8LfR0NqNdReyNSUHI1olJtBh4C3XwEJAyptgvMtKj2CBiFg+w9jYbKNOeg5By6X/UNTULDe/h45XU4EXU4EyVqLtlpUijW7gB0OHLKr4Xi1Wt20mZ31kbO5JtNMIXetAdrptMgha7qC6uaw5rm3dli5b3AEFQPzhYoiQf3WQ7KZUpav7gF+70f7dI2Z/VkttoDD9Xj4o+r+ewtDKL0fP6SZfvPi0VaQKcnoe8lcRpvsxMvDhdgEy8+fvjw58Xp6SIsMRZeSqqcPVpqSsriBOwg8xbf0rlBI0qSZvXh03x2sQm5ZOzRlGQHsy5NdvrEN2W9wVnnxP/Xl+nBfXOHneyUij/eq4C+otriT2oUFYeqTT8JEIJaeQAlZi8UrO9OuYiDPIzKh74whFMGUd37TgJk5SNzDGrzlkTakC8EYaULRkHcYSfXJtwpMt3Y5lQgNwgdmcCdKnYkgh5HyQP6Go/ujBBdfUOi4Szh2g6zNqokTir4GLEapfx4AkXV4ok5QnXXKR6gSJh9+9im54RwlYFwz/aeEKbl48NifDnYOHK9PSbsSHIFgEzRtS8EqeUcj6wdeC3vJCWtY/y+OFkQg0/UgK5t59JsPbWYXWNhhAiEkG/18qk5UjGhuOOgtvjx2hYMf7GDxwpAB6gHkKa/xQmjpX3z1MK4QsRZ3Fq8MUqrV2upRZKBrgMQ7fLisw90VeunB9M3mhOc7t2D9Z6x7yRaBCk9mwtluncWnpG2ZMTHGe6j66O/e8lW/u8MTIIfr9PiuUVXg1sBVoCeWkM9efsn8MxNc739OgOCjz+poH4EYQhonF35yEJNlQcdr/CkerO21fwFaj9Ezy/vGYPolS/Wz8Ubc8Bb8LbaQ8jQMgRv67R8bAV1EwMBUlA8tQDyIwz04GXLPIsDHtOPCsz13svWoEliLam8gErozgVcvqOO6XsXcbiHUQoEC6YywdqjUlirSFtOoyqywA6q0hdUq6xrQTf+FvIdJUBPrTvJXYyqDQKMyFjL8sU6KN5YdGT46r/CSxhkjElIihfrTfnmYEbK8mjbbZhsnUO7DZKK/KrByW2AvN9uU5iVN+PTOHHxZh1Ur2zaPvU3uYhNSfWmA53KjCWtJKBJ9dJielh9CIKaF1bPLKbRwnnKtvSrsdwMqC93oiQq3Ci6NOv15lTUpsVje6yPYizu7moTrE9irE8HZBIqJxU3m0B4enczCioAKxbZ8ecLCIJ8SyM8V89shkLaAYofrcIqxXpf+1HZDl3k9XxCZLuKk5f3UavPWr6D2vzgPczc6CqOIujGXEOsw27X4fZbL/0Ur7AYcTbN04PhmDBGpDvNpLEk9iwzh5Jvvhe5hFuoafnOkhiWO7JTtSkTl+PQnIL4nQ4taYIinX9RmafeL/oZM/IGvsIArThpqN/wKzShRu/WoW+1en2EYCMGTdCbbphLlJXZ6C+emCNcRQITBiOpBZMa58Dj7HLgHVaXaTxxu/cVKjjNvpOos8vH0eYCzu7doopkcukX3yL/15wTIy+eHmZLu54sceGDnZu8wzkTEyzt0PRi/oSVz/qgo6N8mzjgBEqwh/hB8aj0Te/OnzZq1J44irw2Sh178CyGOPZY45UPopywVTl/YBcDIYjk7WIkTGCks4AsQ10ZA7s1Pi6aJ8AWPbU/So7RUzFegF+tO6Ey957Qxqx13/wep/uU/2kvfO2Bq9YDmrT57JrsGsEkr4AxM371VGhqpGt4NPcOinAz2rWvfjrmfkL1HXdWN1752HZ7Y0LXR8UEMrvf3kKQ5gnr/IJerePtOqxfWqgNLXmwJIjk7Plw9Wa9AXYHxNgT5upt7ycS4MInBjYJrPGPz+aUMQu9GJ72Jgkn46OAkdoNt2k0TFPOZSisH44+gx5kMMRUx66fh+/1KY796E5Q+W0k9iy1wJLupwgg3OjLWzFbq1WNT8V3bMVD1Gv5qm8SHxDtyqtnutOMvaLGnlxahGGsX+VcLnQtt/MMTTL0aJeAkF8b7NHL9b58a706eIR7RrykeGKDgEmHlC+Cql6tbUGXzynCyeADYN0zQPVmvQd27hl2Tg9THb7XcWXdOwt1CZN9T1Fnlyq3zOUYeIS/U84MouUj62070XSh3rqbas7IheqxSZrSqyfN7yZUrwqTo+L3Ck3gaLxCA2kVssfGzZVJ5jOkrld/g2Pmbt9XvwYFbU6Kfy8CH1W4TXELIn+LZjDl1+Pnfzr503y2DHyQlhGWVUTgZ/YSSKMQwdNPOEQQbsIFm90+0BCjpOmGIivRXSQhTKJx4Ozv8J1tcP46Tp45Zws24xnDSpynvCfNxyou+tyPEFEATSY2yMahaUCExxpYiD2f3eVBgE+TsDtVkPJ3pTLw1Rq1LCGIo115P2eLUtzFqQGhlqc2UGSn0LeBOqTtaJugDYEjCuEuSL2ONvDtfP5fRabPs+t/rOt8P8zuE9TpPs8+zP7btuVS6i7gomRbAhWbLt3zE9FyDkK0C6YSBE+1s2Jd9ZBAz08L6/JBg2vHRskJkxkNpQOJIK0+lkxP4aY8O4pV2WQMs6A3LX4XopMIFgIZN6pTex6gWWnD2+QW2QiIDG5zGyeI0DY3oDawzQ2HjWhzrV4dzjbIGKiMCjtamvZBB3IMyjM/eu8yhpCBZY5QRFyZIxIRVuaIVAWWuSqJjilzRKPjyRzBiHCy7hOJNpLMVRpx+FgPdewfVRwn1pcC6FitvhTQKyoRAOaIRAd/dechHfNlimM1lEhip452IGGCr1x0T4Vc9QBUh1l1h6p3Gx3pSURY2U3Bm4xOS4E2LMuu9Dqfy0qXiOMSNoMNxsceMD4ZY1j1alnw03DdmoouYflp0LhE/jURWuLS1lSEygAindqLNLDxqwPNOtNSFlVmZXCsmGoQ7GRGWmV4kyC9In7Jke22W18qmjpsw3WfCDahVCXQM5oi9NXkZpFHFrtnqmAj8x03w60zsrDuo7hoF64n7eqigY52WtfH/gAXReQyp6Njh7ojlZFDbhVrAoeM+6vAClVhQ71zUh58809NRiJ+Z5BtQnUAzNGqnoyesVg9VNomD/DbadwPs+v0IkAIMIGbz7MnpHT8qIy7Kn93WOV0OWtRiflxGDGb6B+7tViVbYgTGEkEztFStpcjkzKWZwDjrIuAOVq1E6EujrpnI2fc4FgvYbt+R+d22oYZ5jDYachSue2ORkRLNRLxL5XTQZwXJzW2zjN17IuD64J6QdjtbKaNgnFxzJjSvUg4+aLDXjpvmDCxLr22nTjcxbQIIz0csAmQBJoc7XjUhKw4Unc6F56DGblG9vN6MIsrOVpmDmC6mMgUl5N4IhylM+GGWKYoA0K6ckG8Uy0O9xh6YtMU6wDBB5a4Wb8yCsRl346OJ3HYt6OjSBwd0Khz3R7Xd/JYjKO1VlVAh+sijInksDUtVPYezAvxeaZKRKGvu+bz5Oy3m/lwhaqi7aelBUlu8yDz94HvITmR8T854S491X2dnC+GT0GX8geuCERCmGCOgOACyZYl2JzzjPUjz9+DQF1rJpu5MV40BbBvLuEeRpjDSj2YFCz/9s3ZoimF6YM65VDf+zLgmeHn2ftv91MuTu0+uoQBzOBs6ZXRQBcg9cCG79KoJ22U0rV735xYxKvheNiJDX3QUHVxVpfAgmmYyH9sj2hgcdtKm/U7pZldQ49PLXl8yxh8or+pXvrMSwnFutWTbcm9G4VctHcmKw/xZhBq6T9f0zvBdJ8C4AtUXBU/GsNaV7s168ukJJvY8YltZkkqqyka4xDIFkG+GoxKpvdjW/p1idfLqpupLfmovIZ+BGFHN5NFhZXE7UQlA4pOa+ssG3p0Uyf/lsUoJGHdSeqvEUuZQrn9kA1KvxhlJOV8YQTyDD1V01xh3DvDDO7QFZkv+d2009AMV0bKsdZThGxQ4uk/DbtUN94eBrWktwxPw6sjWFweAq9GXWB24tW0S0z2RLBXXmnmTNxpJM0P9uX3wA/tFYEHzI/Gv25NPFRMnxwadzCDJHAWlMhFJBhoOtWBC/3xT3XruGhaRTtOHA4VpzFXk7NnKrNlR5uDMV2NK9b3YLpavzKJXESC79F0qe6BPnzT1VLxKGbwh8O6qUyeHd2mNXlSR7+jtXty10VSOEWq78YCGjpxSgpX3oo9CjdJT641sVLWbcB22z4YiI6UOxopD/1iyA3YUe2g5iZl+QbsmHaQuVO4koS7/5cjWnVNMem8IXAma93dNF5n5f3C5/PNc4yoUTrQla4pis+eiMXgnY7EUvDp5ELErUuUkQxE1xIXTiSQl4p5oC1PVZSmFCN8zv2BK4VLISqrPKw3Ko048BOWRbwXlZQVAfAG5ZDnlcKCyASikopTOaOiJAf5wlIlaUUCcBe2aIWR3sDByyJPKm7fMvWavCpDL47gygqBJKJUQiGqhGvgCX3m2eLp00iuXPq1uAHKc1DDglR9lU+iKNDMNBBnYVxxxDtROfjAxqBWoj0bQc1EycS1a9ebOOTWRgKD0s1KtimUWLepCiaS6aodxfz3YTgJFFN2TgxFWpEs+zr52kYlbDgMLwaXQlT4r8WHXnSF0dNFriT6tdBulym4gogpkmZOwXviz4jMqlmGxoefmjCrZ1XF5zZkSbiZo9Z3mwXlU7BTfVpdpqqUO5vLVGjonj5EJXlMzoS3YMSrvlVVrPX0+uGXhLJ9MUJ2qdiTVV7ouiuovd7Fl6qCZCZb1IF7p1CFcI7aoBBvelGEysNUohNjp1SuWsp5alNFSSqNyvjpdgNIvuqZPaVHo5Y8AsfHfiowEXOkHnsCTZh594m2l/h60C8UqpDNiMXfbx9AIYVvmYk2eCc0qiLcJJv5kPhBK0E2rhh4TPU2soyvBJHXjlAJWveeHpUgnsiLv/7cqxLErilqfRi4s/RXPQNHAjEakWAYhRkwR+VtMQR7plKK2EtArRsDz4LhWcQt4eXfPB5IYQYsUh18D8GiUZVidvAqUFCHE9uB+KTdkNF8othdidITQoHezE4T+xukFaeABAr9wlgh3Gcxm3dni3Lzp3qAfnKfvzxbPOYRvvGm/HUJU3/XQpwhzAh61JFZk+Y62sb1ER4jUZ2EuXbiFmZgAzKwTDJ/Czz8RV68S+1Hu/ms+L7z+fwqfIab6+g+z/Z5hqoMw2f60ASfAKrKP1twMp/dlztDfVQBienjS4Luoy+5H2waub8K7rqQQOCjxepCENyWGb4YZPfeIN3F7Ha6DKhSX3Mi+gTDfYDA0vtoBfCXNuxlQwy+gTvgvT9UHzGVg+gbglb72aUP8EU4aYXR5kc/EYc34dtf/h+A4KaaG0IBAA==
-
-
- dbo
-
-
\ No newline at end of file
diff --git a/Thermo.Active.Database/Migrations/201902121508312_InitMigration.Designer.cs b/Thermo.Active.Database/Migrations/201902121508312_InitMigration.Designer.cs
deleted file mode 100644
index 03a5de66..00000000
--- a/Thermo.Active.Database/Migrations/201902121508312_InitMigration.Designer.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-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 InitMigration : IMigrationMetadata
- {
- private readonly ResourceManager Resources = new ResourceManager(typeof(InitMigration));
-
- string IMigrationMetadata.Id
- {
- get { return "201902121508312_InitMigration"; }
- }
-
- string IMigrationMetadata.Source
- {
- get { return null; }
- }
-
- string IMigrationMetadata.Target
- {
- get { return Resources.GetString("Target"); }
- }
- }
-}
diff --git a/Thermo.Active.Database/Migrations/201902121508312_InitMigration.resx b/Thermo.Active.Database/Migrations/201902121508312_InitMigration.resx
deleted file mode 100644
index a6f7580f..00000000
--- a/Thermo.Active.Database/Migrations/201902121508312_InitMigration.resx
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 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
-
-
- dbo
-
-
\ No newline at end of file
diff --git a/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.cs b/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.cs
deleted file mode 100644
index 00e4634e..00000000
--- a/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-namespace Thermo.Active.Database.Migrations
-{
- using System;
- using System.Data.Entity.Migrations;
-
- public partial class InitMigrtion : DbMigration
- {
- public override void Up()
- {
- AddColumn("dbo.performed_maintenance", "control_word", c => c.Int(nullable: false));
- }
-
- public override void Down()
- {
- DropColumn("dbo.performed_maintenance", "control_word");
- }
- }
-}
diff --git a/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.resx b/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.resx
deleted file mode 100644
index 7f764a3f..00000000
--- a/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.resx
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 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
-
-
- dbo
-
-
\ No newline at end of file
diff --git a/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.Designer.cs b/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.Designer.cs
deleted file mode 100644
index 58626ccf..00000000
--- a/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.Designer.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-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 UserDeleteMigratin : IMigrationMetadata
- {
- private readonly ResourceManager Resources = new ResourceManager(typeof(UserDeleteMigratin));
-
- string IMigrationMetadata.Id
- {
- get { return "201904041054202_UserDeleteMigratin"; }
- }
-
- string IMigrationMetadata.Source
- {
- get { return null; }
- }
-
- string IMigrationMetadata.Target
- {
- get { return Resources.GetString("Target"); }
- }
- }
-}
diff --git a/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.cs b/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.cs
deleted file mode 100644
index e2b4987a..00000000
--- a/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-namespace Thermo.Active.Database.Migrations
-{
- using System;
- using System.Data.Entity.Migrations;
-
- public partial class UserDeleteMigratin : DbMigration
- {
- public override void Up()
- {
- AddColumn("dbo.user", "deleted", c => c.Boolean(nullable: false));
- }
-
- public override void Down()
- {
- DropColumn("dbo.user", "deleted");
- }
- }
-}
diff --git a/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.resx b/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.resx
deleted file mode 100644
index 327dd2cd..00000000
--- a/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.resx
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 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
-
-
- dbo
-
-
\ No newline at end of file
diff --git a/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.Designer.cs b/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.Designer.cs
similarity index 81%
rename from Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.Designer.cs
rename to Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.Designer.cs
index 0afc3993..fc25aff0 100644
--- a/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.Designer.cs
+++ b/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.Designer.cs
@@ -7,13 +7,13 @@ namespace Thermo.Active.Database.Migrations
using System.Resources;
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
- public sealed partial class InitMigrtion : IMigrationMetadata
+ public sealed partial class ThermoStart : IMigrationMetadata
{
- private readonly ResourceManager Resources = new ResourceManager(typeof(InitMigrtion));
+ private readonly ResourceManager Resources = new ResourceManager(typeof(ThermoStart));
string IMigrationMetadata.Id
{
- get { return "201903070940012_InitMigrtion"; }
+ get { return "202004241109233_Thermo-Start"; }
}
string IMigrationMetadata.Source
diff --git a/Thermo.Active.Database/Migrations/201902121508312_InitMigration.cs b/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.cs
similarity index 84%
rename from Thermo.Active.Database/Migrations/201902121508312_InitMigration.cs
rename to Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.cs
index 64ab87fb..43f57be3 100644
--- a/Thermo.Active.Database/Migrations/201902121508312_InitMigration.cs
+++ b/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.cs
@@ -3,7 +3,7 @@ namespace Thermo.Active.Database.Migrations
using System;
using System.Data.Entity.Migrations;
- public partial class InitMigration : DbMigration
+ public partial class ThermoStart : DbMigration
{
public override void Up()
{
@@ -42,6 +42,7 @@ namespace Thermo.Active.Database.Migrations
password = c.String(unicode: false),
security_stamp = c.String(unicode: false),
language = c.String(unicode: false),
+ deleted = c.Boolean(nullable: false),
})
.PrimaryKey(t => t.id);
@@ -95,7 +96,6 @@ namespace Thermo.Active.Database.Migrations
{
id = c.Short(nullable: false),
name = c.String(unicode: false),
- type = c.Byte(nullable: false),
right_size = c.Byte(nullable: false),
left_size = c.Byte(nullable: false),
tcp_table = c.Byte(nullable: false),
@@ -115,54 +115,6 @@ namespace Thermo.Active.Database.Migrations
})
.PrimaryKey(t => t.id);
- CreateTable(
- "dbo.tool",
- c => new
- {
- id = c.Short(nullable: false),
- offset_length = c.Short(nullable: false),
- residual_life = c.Int(nullable: false),
- residual_revive = c.Int(nullable: false),
- status = c.Byte(nullable: false),
- family_id = c.Short(nullable: false),
- shank_id = c.Short(),
- offsetId1 = c.Short(),
- offsetId2 = c.Short(),
- offsetId3 = c.Short(),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.family", t => t.family_id, cascadeDelete: true)
- .ForeignKey("dbo.shank", t => t.shank_id)
- .Index(t => t.family_id)
- .Index(t => t.shank_id);
-
- CreateTable(
- "dbo.shank",
- c => new
- {
- magazine_id = c.Byte(),
- position_id = c.Int(),
- id = c.Short(nullable: false),
- balluf = c.Int(),
- magazine_position_type = c.Byte(nullable: false),
- origin_magazine_id = c.Byte(),
- origin_position_id = c.Int(),
- })
- .PrimaryKey(t => t.id)
- .ForeignKey("dbo.magazine_position", t => new { t.magazine_id, t.position_id })
- .Index(t => new { t.magazine_id, t.position_id });
-
- CreateTable(
- "dbo.magazine_position",
- c => new
- {
- magazine_id = c.Byte(nullable: false),
- position_id = c.Int(nullable: false),
- type = c.Byte(nullable: false),
- disabled = c.Boolean(nullable: false),
- })
- .PrimaryKey(t => new { t.magazine_id, t.position_id });
-
CreateTable(
"dbo.favorite_user_softkey",
c => new
@@ -281,6 +233,7 @@ namespace Thermo.Active.Database.Migrations
id = c.Int(nullable: false, identity: true),
date = c.DateTime(nullable: false, precision: 0),
counter_value = c.Int(nullable: false),
+ control_word = c.Int(nullable: false),
maintenance = c.Int(nullable: false),
maintainers_id = c.Int(),
})
@@ -332,9 +285,6 @@ namespace Thermo.Active.Database.Migrations
DropForeignKey("dbo.machine_user", "user_id", "dbo.user");
DropForeignKey("dbo.machine_user", "role_id", "dbo.role");
DropForeignKey("dbo.machine_user", "machine_id", "dbo.machine");
- DropForeignKey("dbo.tool", "shank_id", "dbo.shank");
- DropForeignKey("dbo.shank", new[] { "magazine_id", "position_id" }, "dbo.magazine_position");
- DropForeignKey("dbo.tool", "family_id", "dbo.family");
DropForeignKey("dbo.alarm_note", "user_id", "dbo.user");
DropForeignKey("dbo.alarm_user", "user_id", "dbo.user");
DropForeignKey("dbo.alarm_user", "alarm_occurence_id", "dbo.alarm_occurrence");
@@ -350,9 +300,6 @@ namespace Thermo.Active.Database.Migrations
DropIndex("dbo.maintenance_file", new[] { "maintenance_id" });
DropIndex("dbo.machine_user", new[] { "role_id" });
DropIndex("dbo.machine_user", "unique_machine_user");
- DropIndex("dbo.shank", new[] { "magazine_id", "position_id" });
- DropIndex("dbo.tool", new[] { "shank_id" });
- DropIndex("dbo.tool", new[] { "family_id" });
DropIndex("dbo.alarm_note", new[] { "user_id" });
DropIndex("dbo.alarm_user", new[] { "alarm_occurence_id" });
DropIndex("dbo.alarm_user", new[] { "user_id" });
@@ -369,9 +316,6 @@ namespace Thermo.Active.Database.Migrations
DropTable("dbo.machine");
DropTable("dbo.function_access");
DropTable("dbo.favorite_user_softkey");
- DropTable("dbo.magazine_position");
- DropTable("dbo.shank");
- DropTable("dbo.tool");
DropTable("dbo.family");
DropTable("dbo.alarm_note");
DropTable("dbo.alarm_user");
diff --git a/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.resx b/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.resx
new file mode 100644
index 00000000..02b9c9f2
--- /dev/null
+++ b/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.resx
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 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
+
+
+ dbo
+
+
\ No newline at end of file
diff --git a/Thermo.Active.Database/Migrations/Configuration.cs b/Thermo.Active.Database/Migrations/Configuration.cs
index a001cdc6..d33a5d5e 100644
--- a/Thermo.Active.Database/Migrations/Configuration.cs
+++ b/Thermo.Active.Database/Migrations/Configuration.cs
@@ -1,21 +1,24 @@
namespace Thermo.Active.Database.Migrations
{
+ using System;
+ using System.Data.Entity;
+ using System.Linq;
using Thermo.Active.Model.DatabaseModels;
using System.Data.Entity.Migrations;
using static Thermo.Active.Model.Constants.FUNCTIONALITY_NAMES;
using static Thermo.Active.Model.Constants.AREAS;
using static Thermo.Active.Model.Constants;
- public sealed class Configuration : DbMigrationsConfiguration
+ internal sealed class Configuration : DbMigrationsConfiguration
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
- ContextKey = "Step.Database.DatabaseContext";
+ ContextKey = "Thermo.Active.Database.DatabaseContext";
}
- protected override void Seed(DatabaseContext context)
+ protected override void Seed(Thermo.Active.Database.DatabaseContext context)
{
// This method will be called after migrating to the latest version. 0-99 Customer. 100 - 199 CMS
context.Roles.AddOrUpdate(
@@ -26,30 +29,27 @@ namespace Thermo.Active.Database.Migrations
new RoleModel() { RoleId = (int)ROLE_IDS.CUSTOMER_OPERATOR, Level = 20, Name = "Operator" },
new RoleModel() { RoleId = (int)ROLE_IDS.CUSTOMER_MAINTAINER, Level = 10, Name = "Maintainer" }
);
-
+
context.FunctionsAccess.AddOrUpdate(
// General Function, if plcId is 0 then the functionality is not connected to the NC
- new FunctionAccessModel() { Name = GENERAL, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0},
- new FunctionAccessModel() { Name = USER_FUNCTIONS, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0},
- new FunctionAccessModel() { Name = NC_DATA, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0},
- new FunctionAccessModel() { Name = ALARM_CMD, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 1},
- new FunctionAccessModel() { Name = STARTUP_ICONS, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 2},
-
+ new FunctionAccessModel() { Name = GENERAL, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
+ new FunctionAccessModel() { Name = USER_FUNCTIONS, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
+ new FunctionAccessModel() { Name = NC_DATA, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
+ new FunctionAccessModel() { Name = ALARM_CMD, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 1 },
+ new FunctionAccessModel() { Name = STARTUP_ICONS, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 2 },
+
// Under hood
- new FunctionAccessModel() { Name = PROCESS_CMD, Area = UNDER_HOOD, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 3},
- new FunctionAccessModel() { Name = NC_SOFTKEY, Area = UNDER_HOOD, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 4},
- new FunctionAccessModel() { Name = USER_SOFTKEY, Area = UNDER_HOOD, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 5},
- new FunctionAccessModel() { Name = HEADS_CMD, Area = UNDER_HOOD, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 6},
- new FunctionAccessModel() { Name = AXES_SELECTION, Area = UNDER_HOOD, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 7},
-
- new FunctionAccessModel() { Name = TOOL_MANAGER, Area = TOOLING_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 8},
- new FunctionAccessModel() { Name = MAINTENANCE, Area = MAINTENANCE_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 9},
+ new FunctionAccessModel() { Name = PROCESS_CMD, Area = UNDER_HOOD, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 3 },
+ new FunctionAccessModel() { Name = NC_SOFTKEY, Area = UNDER_HOOD, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 4 },
+ new FunctionAccessModel() { Name = USER_SOFTKEY, Area = UNDER_HOOD, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 5 },
+ new FunctionAccessModel() { Name = HEADS_CMD, Area = UNDER_HOOD, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 6 },
+ new FunctionAccessModel() { Name = AXES_SELECTION, Area = UNDER_HOOD, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 7 },
+ new FunctionAccessModel() { Name = MAINTENANCE, Area = MAINTENANCE_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 9 },
- // Main Areas
+ // Main Areas
new FunctionAccessModel() { Name = "productionArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 20, ReadLevelMin = 1, PlcId = 0 },
- new FunctionAccessModel() { Name = "toolingArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 20, ReadLevelMin = 1, PlcId = 0 },
new FunctionAccessModel() { Name = "reportArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 30, ReadLevelMin = 1, PlcId = 0 },
new FunctionAccessModel() { Name = "alarmsArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
new FunctionAccessModel() { Name = "maintenanceArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
@@ -62,4 +62,4 @@ namespace Thermo.Active.Database.Migrations
context.SaveChanges();
}
}
-}
\ No newline at end of file
+}
diff --git a/Thermo.Active.Database/Properties/AssemblyInfo.cs b/Thermo.Active.Database/Properties/AssemblyInfo.cs
index 38bed75f..2ebd8c06 100644
--- a/Thermo.Active.Database/Properties/AssemblyInfo.cs
+++ b/Thermo.Active.Database/Properties/AssemblyInfo.cs
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// Le informazioni generali relative a un assembly sono controllate dal seguente
// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
// associate a un assembly.
-[assembly: AssemblyTitle("Step.Database")]
+[assembly: AssemblyTitle("Thermo.Active.Database")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Step.Database")]
+[assembly: AssemblyProduct("Thermo.Active.Database")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/Thermo.Active.Database/Thermo.Active.Database.csproj b/Thermo.Active.Database/Thermo.Active.Database.csproj
index 8bb4ffd8..f580e258 100644
--- a/Thermo.Active.Database/Thermo.Active.Database.csproj
+++ b/Thermo.Active.Database/Thermo.Active.Database.csproj
@@ -34,7 +34,8 @@
4
-
+
+ False
..\Libs\CMS_CORE_Library.dll
@@ -115,24 +116,15 @@
-
-
-
- 201902121508312_InitMigration.cs
-
-
-
- 201903070940012_InitMigrtion.cs
-
-
-
- 201904041054202_UserDeleteMigratin.cs
+
+
+ 202004241109233_Thermo-Start.cs
@@ -170,16 +162,9 @@
-
- 201902121508312_InitMigration.cs
-
-
- 201903070940012_InitMigrtion.cs
-
-
- 201904041054202_UserDeleteMigratin.cs
+
+ 202004241109233_Thermo-Start.cs
-
\ No newline at end of file
diff --git a/Thermo.Active.Database/Thermo.Active.Database.csproj.user b/Thermo.Active.Database/Thermo.Active.Database.csproj.user
new file mode 100644
index 00000000..9b86104e
--- /dev/null
+++ b/Thermo.Active.Database/Thermo.Active.Database.csproj.user
@@ -0,0 +1,6 @@
+
+
+
+ ShowAllFiles
+
+
\ No newline at end of file
diff --git a/Thermo.Active.Model/ConfigModels/MagazineNamesModel.cs b/Thermo.Active.Model/ConfigModels/MagazineNamesModel.cs
deleted file mode 100644
index 2d6e6e03..00000000
--- a/Thermo.Active.Model/ConfigModels/MagazineNamesModel.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Thermo.Active.Model.ConfigModels
-{
- public class MagazineNamesModel
- {
- public int MagazineId { get; set; }
-
- public bool AssistedTooling { get; set; }
-
- public Dictionary LocalizedNames { get; set; }
- }
-}
diff --git a/Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs b/Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs
new file mode 100644
index 00000000..e7370a02
--- /dev/null
+++ b/Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs
@@ -0,0 +1,16 @@
+using System.Collections.Generic;
+using static Thermo.Active.Model.Constants;
+
+namespace Thermo.Active.Model.ConfigModels
+{
+ public class RecipeConfigModel
+ {
+ public int Id;
+ public TACT_PARAM_TYPE Category { get; set; }
+ public string SubCategory_1 { get; set; }
+ public string SubCategory_2 { get; set; }
+ public string Name { get; set; }
+ public string Description { get; set; }
+ public string Format { get; set; }
+ }
+}
diff --git a/Thermo.Active.Model/ConfigModels/ToolManagerConfigModel.cs b/Thermo.Active.Model/ConfigModels/ToolManagerConfigModel.cs
deleted file mode 100644
index 61f5e328..00000000
--- a/Thermo.Active.Model/ConfigModels/ToolManagerConfigModel.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Thermo.Active.Model.ConfigModels
-{
- public class ToolManagerConfigModel
- {
-
- public string ToolMetricType { get; set; }
- public bool FamilyOpt { get; set; }
- public bool ShankOpt { get; set; }
- public bool MagPosTypeOpt { get; set; }
- public bool OffsetOpt { get; set; }
- public bool ReviveOpt { get; set; }
- public bool GammaOpt { get; set; }
- public bool LifeOpt { get; set; }
- public bool TcpOpt { get; set; }
- public bool CoolingOpt { get; set; }
- public bool MultidimensionalShankOpt { get; set; }
- public bool SelfAdaptivePathOpt { get; set; }
- public bool DynamicCompensationOpt { get; set; }
- public bool BallufOpt { get; set; }
- public bool IntegrityCheckOpt { get; set; }
-
- public CooligTranslations CooligsTranslations { get; set; }
-
- public List MagazineNames { get; set; }
-
- public List ToolTypes { get; set; }
- }
-
- public class CooligTranslations
- {
- public Dictionary Cooling { get; set; }
- public Dictionary Cooling1 { get; set; }
- public Dictionary Cooling2 { get; set; }
- public Dictionary Cooling3 { get; set; }
- public Dictionary Cooling4 { get; set; }
- public Dictionary Cooling5 { get; set; }
- public Dictionary Cooling6 { get; set; }
- public Dictionary Cooling7 { get; set; }
- }
-}
diff --git a/Thermo.Active.Model/ConfigModels/ToolTypeConfigModel.cs b/Thermo.Active.Model/ConfigModels/ToolTypeConfigModel.cs
deleted file mode 100644
index 7e4d8976..00000000
--- a/Thermo.Active.Model/ConfigModels/ToolTypeConfigModel.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Thermo.Active.Model.ConfigModels
-{
- public class ToolTypeConfigModel
- {
- public int Id { get; set; }
-
- public bool Disabled { get; set; }
-
- public Dictionary LocalizedNames { get; set; }
- }
-}
diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs
index c1dc190f..b3e58e33 100644
--- a/Thermo.Active.Model/Constants.cs
+++ b/Thermo.Active.Model/Constants.cs
@@ -5,7 +5,7 @@ namespace Thermo.Active.Model
{
public static class Constants
{
- public static bool IS_BETA = false;
+ public static bool IS_BETA = false;
public static string NOT_FOUND_ALARM_MESSAGE = "Alarm_id_{0} : Message not found";
public static string NOT_CONFIGURATED_ALARM_MESSAGE = "Alarm_id_{0} : Message not configurated";
public static string CMS_CONNECT_SETUP_ALARM_MESSAGE = "Error during CMS-Connect setup: Redis Db Not Found";
@@ -20,7 +20,7 @@ namespace Thermo.Active.Model
public enum SCADA_ELEMENT_TYPE
{
BUTTON = 0,
- IMAGE = 1,
+ IMAGE = 1,
INPUT = 2,
PROGRESS_BAR = 3,
LABEL = 4,
@@ -32,12 +32,12 @@ namespace Thermo.Active.Model
public static string READ = "read";
public static string WRITE = "write";
}
-
+
public const int MIN_CMS_ROLE = 100;
public const int MIN_ADMIN_ROLE = 30;
public enum ROLE_IDS
- {
+ {
CMS_SERVICE = 1,
CMS_UT = 2,
CUSTOMER_ADMIN = 3,
@@ -74,6 +74,22 @@ namespace Thermo.Active.Model
LASER = 3
}
+ public enum TACT_PARAM_TYPE
+ {
+ ND = 0,
+ General,
+ Positions,
+ Cycle,
+ Heats,
+ Pyrometer,
+ Drawing,
+ UpperPlate,
+ Cooling,
+ Vacuum,
+ Extraction,
+ Options
+ }
+
public enum MAINTENANCE_UNIT_OF_MEASURE
{
mm = 0,
@@ -118,13 +134,14 @@ namespace Thermo.Active.Model
public const string FANUC = "FANUC";
public const string SIEMENS = "SIEMENS";
public const string OSAI = "OSAI";
+ public const string S7NET = "S7NET";
}
// Database config
public const string DATABASE_USER = "root";
public const string DATABASE_PWD = "root";
- public const string DATABASE_NAME = "step";
+ public const string DATABASE_NAME = "ThermoActive";
// Registry key
public const string REGISTER_MACHINE_ID_KEY_NAME = "MachineUniqueId";
@@ -144,11 +161,10 @@ namespace Thermo.Active.Model
public const string PROD_SFT_CONFIG_KEY = "softwareProdConfig";
public const string AREAS_CONFIG_KEY = "areasConfig";
- // Step Areas
+ // Active Areas
public class AREAS
{
public const string PRODUCTION_KEY = "production";
- public const string TOOLING_KEY = "tooling";
public const string REPORT_KEY = "report";
public const string ALARMS_KEY = "alarms";
public const string MAINTENANCE_KEY = "maintenance";
@@ -158,13 +174,15 @@ namespace Thermo.Active.Model
public const string UNDER_HOOD = "underHood";
public const string JOBEDITOR_KEY = "jobeditor";
public const string USERS_KEY = "users";
+ public const string THERMO_KEY = "thermo";
+ public const string RISC_KEY = "risc";
}
// Config File Names
public static readonly string BASE_PATH = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
#if DEBUG
- public static readonly string CLIENT_PATH_64 = BASE_PATH + @"\Client_Debug\x64\" + CLIENT_EXE_NAME;
+ public static readonly string CLIENT_PATH_64 = BASE_PATH + @"\Client_Debug\x64\" + CLIENT_EXE_NAME;
public static readonly string CLIENT_PATH_86 = BASE_PATH + @"\Client_Debug\x84\" + CLIENT_EXE_NAME;
public static string WEBSITE_DIRECTORY = Path.Combine(BASE_PATH, "..", "wwwroot");
#else
@@ -173,14 +191,14 @@ namespace Thermo.Active.Model
public static string WEBSITE_DIRECTORY = BASE_PATH + "\\view";
#endif
public const string CONFIG_DIRECTORY = "Config\\";
- public const string RESOURCE_DIRECTORY = @"Step.Config.Config.";
+ public const string RESOURCE_DIRECTORY = @"Thermo.Active.Config.Config.";
public const string SERVER_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + @"serverConfigValidator.xsd";
public const string SERVER_CONFIG_PATH = CONFIG_DIRECTORY + "serverConfig.xml";
public const string AREAS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "areasConfigValidator.xsd";
public const string AREAS_CONFIG_PATH = CONFIG_DIRECTORY + "areasConfig.xml";
- public const string MAINTENANCES_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "maintenancesConfigValidator.xsd";
+ public const string MAINTENANCES_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "maintenancesConfigValidator.xsd";
public const string CUSTOMER_CONTACTS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "customerContactConfigValidator.xsd";
public const string MAINTENANCES_CONFIG_PATH = CONFIG_DIRECTORY + "maintenancesConfig.xml";
public const string CUSTOMER_CONTACTS = CMS_FOLDER_PATH + "ContactInfo.xml";
@@ -188,19 +206,19 @@ namespace Thermo.Active.Model
public const string USER_SOFTKEYS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "userSoftKeyConfigValidator.xsd";
public const string USER_SOFTKEYS_CONFIG_PATH = CONFIG_DIRECTORY + "userSoftKeyConfig.xml";
-
+
public const string ALARMS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "alarmsConfigValidator.xsd";
public const string ALARMS_CONFIG_PATH = CONFIG_DIRECTORY + "alarmsConfig.xml";
public const string HEADS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "headsConfigValidator.xsd";
public const string HEADS_CONFIG_PATH = CONFIG_DIRECTORY + "headsConfig.xml";
+ public const string RECIPE_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "recipeConfigValidator.xsd";
+ public const string RECIPE_CONFIG_PATH = CONFIG_DIRECTORY + "recipeConfig.xml";
+
public const string NC_SOFTKEYS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "ncSoftKeyConfigValidator.xsd";
public const string NC_SOFTKEYS_CONFIG_PATH = CONFIG_DIRECTORY + "ncSoftKeyConfig.xml";
- public const string TOOL_MANAGER_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "toolManagerConfigValidator.xsd";
- public const string TOOL_MANAGER_CONFIG_PATH = CONFIG_DIRECTORY + "toolManagerConfig.xml";
-
public const string CMS_CONNECT_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "cmsConnectConfigValidator.xsd";
public const string CMS_CONNECT_CONFIG_PATH = CONFIG_DIRECTORY + "cmsConnectConfig.xml";
@@ -241,14 +259,17 @@ namespace Thermo.Active.Model
public const string SEND_NC_SOFTKEYS_DATA = "SEND_NC_SOFTKEYS_DATA";
public const string SEND_HEADS_DATA = "SEND_HEADS_DATA";
public const string SEND_AXIS_NAMES_DATA = "SEND_AXIS_NAMES_DATA";
- public const string SEND_MAGAZINES_STATUS = "SEND_MAGAZINES_STATUS";
public const string SEND_ACTIVE_PROGRAM_DATA = "SEND_ACTIVE_PROGRAM_DATA";
- public const string UPDATE_TOOLS_DATA = "UPDATE_TOOLS_DATA";
- public const string NC_MAGAZINE_IS_ACTIVE = "UPDATE_NC_MAGAZINE_STATUS";
public const string SEND_QUEUE_DATA = "SEND_QUEUE_DATA";
public const string SEND_M155_DATA = "SEND_M155_DATA";
public const string SEND_SCADA_DATA = "SEND_SCADA_DATA";
- public const string ASSISTED_TOOLING_DATA = "ASSISTED_TOOLING_DATA";
+
+ // MVVM Messages for Thermo active specs
+ public const string SEND_THERMO_RECIPE_FULL = "SEND_THERMO_RECIPE_FULL";
+ public const string SEND_THERMO_RECIPE_OVERWIEW = "SEND_THERMO_RECIPE_OVERWIEW";
+ public const string SEND_THERMO_MODULE_DATA = "SEND_THERMO_MODULE_DATA";
+ public const string SEND_THERMO_WARMERS_DATA = "SEND_THERMO_WARMERS_DATA";
+ public const string SEND_THERMO_GAUGE_DATA = "SEND_THERMO_GAUGE_DATA";
public const string BROADCAST_DATA = "BROADCAST_DATA";
@@ -271,38 +292,36 @@ namespace Thermo.Active.Model
public const string NC_SOFTKEY = "ncSoftkeys";
public const string USER_SOFTKEY = "userSoftkeys";
public const string HEADS_CMD = "headsCmd";
- public const string TOOL_MANAGER = "toolManager";
public const string MAINTENANCE = "maintenance";
public const string AXES_SELECTION = "axesSoftkeys";
+ public const string THERMO_MANAGER = "thermoManager";
+ public const string RISC_MANAGER = "riscManager";
}
public static class API_ERROR_KEYS
{
public const string INCORRECT_PARAMETERS = "error_incorrect_parameters";
- public const string MAGAZINE_POSITION_OCCUPIED = "error_magazine_position_occupied";
- public const string TOOL_IS_MOUNTED = "error_tool_mounted";
public const string OPTION_NOT_ACTIVE = "error_option_not_active";
- public const string MAG_POS_DISABLED = "error_mag_pos_disabled";
public const string ID_ALREADY_EXIST = "error_id_already_exist";
public const string PASSWORD_IS_INVALID = "error_password_is_invalid";
public const string IMPORT_FILE_NOT_VALID = "error_import_file_not_valid";
public const string DUPLICATED_USERNAME = "error_duplicated_username";
- public const string CUSTOMER_FILE_INVALID = "contactinfo_error_customer_configfile";
+ public const string CUSTOMER_FILE_INVALID = "contactinfo_error_customer_configfile";
}
// File paths
public const string CLIENT_EXE_NAME = @"Active_Client.exe";
- public const string CLIENT_EXE_NAME_NOEXT = @"Active_Client";
+ public const string CLIENT_EXE_NAME_NOEXT = @"Active_Client";
public const string MAINTENANCE_ATTACHMENT_PATH = @"C:\CMS\Active\attachment\maintenance\";
public const string CMS_FOLDER_PATH = @"C:\CMS\";
public const string ALARM_ATTACHMENT_PATH = @"C:\CMS\Active\attachment\alarm\";
public const string TEMP_FOLDER = @"C:\CMS\Active\TMP\";
public const string TEMP_PP_FOLDER = TEMP_FOLDER + @"pp\";
- public const string JOB_TMP_DIRECTORY = TEMP_PP_FOLDER + @"job\";
+ public const string JOB_TMP_DIRECTORY = TEMP_PP_FOLDER + @"job\";
public const string QUEUE_TMP_FOLDER = TEMP_PP_FOLDER + @"queue\";
- public const string PART_PRG_IMAGES = TEMP_FOLDER + @"pp_img\";
-
+ public const string PART_PRG_IMAGES = TEMP_FOLDER + @"pp_img\";
+
public const string SCADA_DIRECTORY = @"C:\CMS\Active\scada\";
public static readonly string[] VALID_FILE_EXTENSIONS = { "", ".txt", ".cnc", ".ini", ".mpf", ".spf" };
@@ -330,7 +349,7 @@ namespace Thermo.Active.Model
"dd/MM/yyyy",
"MM/dd/yyyy",
"dd.MM.yyyy",
- "MM.dd.yyyy"
+ "MM.dd.yyyy"
};
}
}
\ No newline at end of file
diff --git a/Thermo.Active.Model/DTOModels/DTOGaugeDataModel.cs b/Thermo.Active.Model/DTOModels/DTOGaugeDataModel.cs
new file mode 100644
index 00000000..ce04a94e
--- /dev/null
+++ b/Thermo.Active.Model/DTOModels/DTOGaugeDataModel.cs
@@ -0,0 +1,33 @@
+using CMS_CORE_Library.Models;
+using System.Linq;
+using static CMS_CORE_Library.Models.DataStructures;
+using static CMS_CORE_Library.Models.ThermoModels;
+
+namespace Thermo.Active.Model.DTOModels
+{
+ public class DTOGaugeDataModel : GaugeModel
+ {
+ public override bool Equals(object obj)
+ {
+ if (!(obj is DTOGaugeDataModel item))
+ return false;
+
+ if (TimeAdv != item.TimeAdv)
+ return false;
+ if (Power != item.Power)
+ return false;
+ if (Vacuum != item.Vacuum)
+ return false;
+ if (Air != item.Air)
+ return false;
+
+ return true;
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/Thermo.Active.Model/DTOModels/DTOHeadModel.cs b/Thermo.Active.Model/DTOModels/DTOHeadModel.cs
index 44591fc0..8ac417f3 100644
--- a/Thermo.Active.Model/DTOModels/DTOHeadModel.cs
+++ b/Thermo.Active.Model/DTOModels/DTOHeadModel.cs
@@ -57,67 +57,13 @@ namespace Thermo.Active.Model.DTOModels
}
}
- public class DTOToolInSpindleModel
- {
- // Siemens data
- public string ToolName;
- public int ChildId;
- // Fanuc-Osai
- public int FamilyId;
- public int ShankId;
-
- public bool Disabled { get; set; }
- public bool Broken { get; set; }
- public bool Measured { get; set; }
- public int ResidualLife { get; set; }
-
- public int MaxSpeed { get; set; }
- public byte MaxLoad { get; set; }
-
- public override bool Equals(object obj)
- {
- // Object is not a DTOSpindleModel
- if (!(obj is DTOToolInSpindleModel item))
- return false;
-
- // Compare the fields
- if (ToolName != item.ToolName)
- return false;
-
- if (ChildId != item.ChildId)
- return false;
-
- if (Disabled != item.Disabled)
- return false;
-
- if (Broken != item.Broken)
- return false;
-
- if (Measured != item.Measured)
- return false;
-
- if (ResidualLife != item.ResidualLife)
- return false;
-
- if (MaxSpeed != item.MaxSpeed)
- return false;
-
- if (MaxLoad != item.MaxLoad)
- return false;
-
- return true;
- }
- }
-
public class DTOSpindleModel : DTOHeadModel
{
public int ActualSpeed;
public short Load;
- public ushort MountedTool;
public bool Configured;
public ROTATION Rotation;
public bool FixedHead;
- public DTOToolInSpindleModel ToolData;
public override bool Equals(object obj)
{
@@ -132,18 +78,12 @@ namespace Thermo.Active.Model.DTOModels
if (Load != item.Load)
return false;
- if (MountedTool != item.MountedTool)
- return false;
-
if (Configured != item.Configured)
return false;
if (Rotation != item.Rotation)
return false;
- if (ToolData != null && !ToolData.Equals(item.ToolData))
- return false;
-
// Call Parent equals
return base.Equals(item);
}
diff --git a/Thermo.Active.Model/DTOModels/DTOProcessDataModel.cs.d.ts b/Thermo.Active.Model/DTOModels/DTOProcessDataModel.cs.d.ts
deleted file mode 100644
index 3590a2dc..00000000
--- a/Thermo.Active.Model/DTOModels/DTOProcessDataModel.cs.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare module server {
- interface dTOProcessDataModel {
- }
-}
diff --git a/Thermo.Active.Model/DTOModels/DTOStartupConfigurationModel.cs b/Thermo.Active.Model/DTOModels/DTOStartupConfigurationModel.cs
index e325d831..d7a2dc51 100644
--- a/Thermo.Active.Model/DTOModels/DTOStartupConfigurationModel.cs
+++ b/Thermo.Active.Model/DTOModels/DTOStartupConfigurationModel.cs
@@ -10,7 +10,6 @@ namespace Thermo.Active.Model.DTOModels
public class DTOStartupConfigurationModel
{
public AreasConfigModel ProductionConfig;
- public AreasConfigModel ToolingConfig;
public AreasConfigModel ReportConfig;
public AreasConfigModel AlarmsConfig;
public AreasConfigModel MaintenanceConfig;
diff --git a/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataFieldsModel.cs b/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataFieldsModel.cs
index add26fd4..d185ff58 100644
--- a/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataFieldsModel.cs
+++ b/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataFieldsModel.cs
@@ -7,12 +7,10 @@ namespace Thermo.Active.Model.DTOModels.JobModels
{
public string Description;
public TimeSpan ExecutionTime;
- public List Tools;
public List Customs;
public DTOMetadataFieldsModel()
{
- Tools = new List();
Customs = new List();
}
}
diff --git a/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataModel.cs b/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataModel.cs
index d4bcda06..37edce0e 100644
--- a/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataModel.cs
+++ b/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataModel.cs
@@ -5,13 +5,11 @@ namespace Thermo.Active.Model.DTOModels.JobModels
public class DTOMetadataModel
{
public DTOGenericParamModel Generics;
- public List Tools;
public List Customs;
public DTOMetadataModel()
{
Generics = new DTOGenericParamModel();
- Tools = new List();
Customs = new List();
}
}
diff --git a/Thermo.Active.Model/DTOModels/Recipe/DTORecipeConfigModel .cs b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeConfigModel .cs
new file mode 100644
index 00000000..4c5157aa
--- /dev/null
+++ b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeConfigModel .cs
@@ -0,0 +1,17 @@
+using System.Collections.Generic;
+using Thermo.Active.Model.ConfigModels;
+
+namespace Thermo.Active.Model.DTOModels.Recipe
+{
+ public class DTORecipeConfigModel
+ {
+ public int Id;
+ public string Category;
+ public string SubCategory_1;
+ public string SubCategory_2;
+ public string Name;
+ public string Description;
+ public string Format;
+ public string Label;
+ }
+}
\ No newline at end of file
diff --git a/Thermo.Active.Model/DTOModels/Recipe/DTORecipeOverview.cs b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeOverview.cs
new file mode 100644
index 00000000..2ce188b7
--- /dev/null
+++ b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeOverview.cs
@@ -0,0 +1,19 @@
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Thermo.Active.Model.DTOModels.Recipe
+{
+
+ [JsonConverter(typeof(StringEnumConverter))]
+ public enum RecipeCatStatus
+ {
+ Unchanged = 0,
+ ChangedOk,
+ HasError
+ }
+}
diff --git a/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs
new file mode 100644
index 00000000..c308032d
--- /dev/null
+++ b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs
@@ -0,0 +1,89 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Thermo.Active.Model.DTOModels.Recipe
+{
+ public class DTORecipeParam
+ {
+ public int Id { get; set; } = 0;
+ public RPRange Range { get; set; }
+ public RPStatus Status { get; set; }
+ public string UnitMeasure { get; set; }
+ public double ValueAct { get; set; }
+
+ public override bool Equals(object obj)
+ {
+ if (!(obj is DTORecipeParam item))
+ return false;
+
+ if (Id!= item.Id)
+ return false;
+ if (!Range.Equals(item.Range))
+ return false;
+ if (!Status.Equals(item.Status))
+ return false;
+ if (UnitMeasure != item.UnitMeasure)
+ return false;
+ if (ValueAct != item.ValueAct)
+ return false;
+
+ return true;
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+ }
+
+ public struct RPRange
+ {
+ public double Min { get; set; }
+ public double Max { get; set; }
+ public override bool Equals(object obj)
+ {
+ if (!(obj is RPRange item))
+ return false;
+
+ if (Min != item.Min)
+ return false;
+ if (Max != item.Max)
+ return false;
+
+ return true;
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+ }
+ public struct RPStatus
+ {
+ public bool Visible { get; set; }
+ public bool Enabled { get; set; }
+ public bool HasError { get; set; }
+ public override bool Equals(object obj)
+ {
+ if (!(obj is RPStatus item))
+ return false;
+
+ if (Visible != item.Visible)
+ return false;
+ if (Enabled != item.Enabled)
+ return false;
+ if (HasError != item.HasError)
+ return false;
+
+ return true;
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode();
+ }
+ }
+}
diff --git a/Thermo.Active.Model/DTOModels/Recipe/RecipeParam.cs b/Thermo.Active.Model/DTOModels/Recipe/RecipeParam.cs
new file mode 100644
index 00000000..0be98501
--- /dev/null
+++ b/Thermo.Active.Model/DTOModels/Recipe/RecipeParam.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Thermo.Active.Model.DTOModels.Recipe
+{
+ ///
+ /// Struttura parametri "lenti" (lettura NON frequente)
+ ///
+ public class RecipeParam
+ {
+ public int Id { get; set; }
+ public double SetpointHMI { get; set; }
+ public double SetpointPLC { get; set; }
+ public double ValueMax { get; set; }
+ public double ValueMin { get; set; }
+ public string UnitMeasure { get; set; }
+ }
+}
diff --git a/Thermo.Active.Model/DTOModels/Recipe/RecipeParamRT.cs b/Thermo.Active.Model/DTOModels/Recipe/RecipeParamRT.cs
new file mode 100644
index 00000000..97628808
--- /dev/null
+++ b/Thermo.Active.Model/DTOModels/Recipe/RecipeParamRT.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Thermo.Active.Model.DTOModels.Recipe
+{
+ ///
+ /// Struttura parametri "veloci" (RT=RealTime, lettura frequente)
+ ///
+ public class RecipeParamRT
+ {
+ public short Id { get; set; }
+ public short StatusBit { get; set; }
+ public double ValueAct { get; set; }
+ }
+
+ [Flags]
+ public enum StatusVal
+ {
+ None = 0x0,
+ Visible = 0x1,
+ Enabled = 0x2,
+ HasError = 0x4
+ }
+}
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTOAssistedToolingModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTOAssistedToolingModel.cs
deleted file mode 100644
index 60fdbeac..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTOAssistedToolingModel.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-using static CMS_CORE_Library.Models.DataStructures;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
- public class DTOAssistedToolingModel
- {
- public ushort ToolId { get; set; }
- public ushort MagazineId { get; set; }
- public ushort PositionId { get; set; }
- public ASSISTED_TOOLING_ACTION Action { get; set; }
- }
-
- public class DTOAssistedToolingEndValueModel : AssistedToolingModel
- {
- public DTOAssistedToolingEndValueModel()
- {
-
- }
-
- public DTOAssistedToolingEndValueModel(AssistedToolingModel data)
- {
- Action = data.Action;
- IsActive = data.IsActive;
- MagazineId = data.MagazineId;
- PositionId = data.PositionId;
- ToolId = data.ToolId;
- }
-
- public override bool Equals(object obj)
- {
-
- if (!(obj is DTOAssistedToolingEndValueModel item))
- return false;
-
- if (IsActive != item.IsActive)
- return false;
-
- if (ToolId != item.ToolId)
- return false;
-
- if (MagazineId != item.MagazineId)
- return false;
-
- if (PositionId != item.PositionId)
- return false;
-
- if (Action != item.Action)
- return false;
-
- return true;
- }
-
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
- }
-}
\ No newline at end of file
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTOEdgeModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTOEdgeModel.cs
deleted file mode 100644
index 8c3c3e7c..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTOEdgeModel.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using CMS_CORE_Library.Models;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
- public class DTOEdgeModel
- {
- public double ResidualLife { get; set; }
-
- public double NominalLife { get; set; }
-
- public double PreAlmLife { get; set; }
-
- [Required]
- public Dictionary EdgeAdditionalParams { get; set; }
-
- public static explicit operator EdgeModel(DTOEdgeModel obj)
- {
- return new EdgeModel()
- {
- Id = 0,
- NominalLife = obj.NominalLife,
- ResidualLife = obj.ResidualLife,
- PreAlmLife = obj.PreAlmLife,
- EdgeAdditionalParams = obj.EdgeAdditionalParams
- };
- }
- }
-}
\ No newline at end of file
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTOExportToolTableModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTOExportToolTableModel.cs
deleted file mode 100644
index ac88d8a9..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTOExportToolTableModel.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using Thermo.Active.Model.DatabaseModels;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
- public class DTOExportToolTableModel
- {
- public List Tools { get; set; }
- public List Families { get; set; }
- public List Shanks { get; set; }
- }
-
- public class DTOImportStatusModel
- {
- public int Id { get; set; }
-
- public string Status { get; set; }
-
- public string Type { get; set; }
- }
-
- public enum IMPORT_STATUS
- {
- OK = 0,
- EXIST = 1
- }
-}
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTOMagazineStatusModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTOMagazineStatusModel.cs
deleted file mode 100644
index 7aebcdc9..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTOMagazineStatusModel.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using CMS_CORE_Library.Models;
-using static CMS_CORE_Library.Models.DataStructures;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
- public class DTOMagazineActionModel
- {
- public MAGAZINE_ACTIONS action;
- public int OriginMagazine;
- public int OriginPosition;
- public int DestinationMagazine;
- public int DestinationPosition;
- public MagazineActionToolModel Tool;
-
- public static explicit operator DTOMagazineActionModel(MagazineActionModel magazineStatus)
- {
- return new DTOMagazineActionModel()
- {
- action = magazineStatus.Action,
- OriginMagazine = magazineStatus.OriginMagazine,
- OriginPosition = magazineStatus.OriginPosition,
- DestinationMagazine = magazineStatus.DestinationMagazine,
- DestinationPosition = magazineStatus.DestinationPosition,
- Tool = magazineStatus.Tool
- };
- }
-
- public override bool Equals(object obj)
- {
-
- // Object is not a DTOMagazineStatusModel instance
- if (!(obj is DTOMagazineActionModel item))
- return false;
-
- if (item.action != action)
- return false;
-
- return true;
- }
-
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
- }
-}
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTONcFamilyModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTONcFamilyModel.cs
deleted file mode 100644
index 018f138f..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTONcFamilyModel.cs
+++ /dev/null
@@ -1,242 +0,0 @@
-using Thermo.Active.Model.DatabaseModels;
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
- public class DTONewNcFamilyModel
- {
- [Required]
- public string Name { get; set; }
-
- [Required]
- public byte ToolType { get; set; }
-
- [Required]
- public byte RightSize { get; set; }
-
- [Required]
- public byte LeftSize { get; set; }
-
- [Required]
- public byte TcpTable { get; set; }
-
- [Required]
- public byte Gamma { get; set; }
-
- [Required]
- public byte RotationType { get; set; }
-
- [Required]
- public bool Cooling { get; set; }
- [Required]
- public bool Cooling1 { get; set; }
- [Required]
- public bool Cooling2 { get; set; }
- [Required]
- public bool Cooling3 { get; set; }
- [Required]
- public bool Cooling4 { get; set; }
- [Required]
- public bool Cooling5 { get; set; }
- [Required]
- public bool Cooling6 { get; set; }
- [Required]
- public bool Cooling7 { get; set; }
-
- [Required]
- public int MaxSpeed { get; set; }
-
- [Required]
- public byte MaxLoad { get; set; }
-
- [Required]
- public byte MinLoadPctAutoload { get; set; }
-
- [Required]
- public byte MaxLoadPctAutoload { get; set; }
-
- [Required]
- public byte DynamicCompensation { get; set; }
-
- [Required]
- public byte MinLoadDynamicCompensation { get; set; }
-
- [Required]
- public byte MaxLoadDynamicCompensation { get; set; }
-
- [Required]
- public byte LifeType { get; set; }
-
- [Required]
- public int NominalLife { get; set; }
-
- [Required]
- public int ReviveDelta { get; set; }
-
- public static explicit operator DTONewNcFamilyModel(DbNcFamilyModel obj)
- {
- // Get bit values
- BitArray coolingByte = new BitArray(new byte[] { obj.CoolingByte });
- bool[] bits = new bool[8];
- coolingByte.CopyTo(bits, 0);
-
- return new DTONcFamilyModel()
- {
- Id = obj.FamilyId,
- Name = obj.Name,
- ToolType = obj.ToolType,
- RightSize = obj.RightSize,
- LeftSize = obj.LeftSize,
- TcpTable = obj.TcpTable,
- Gamma = obj.Gamma,
- RotationType = obj.RotationType,
- Cooling = bits[0],
- Cooling1 = bits[1],
- Cooling2 = bits[2],
- Cooling3 = bits[3],
- Cooling4 = bits[4],
- Cooling5 = bits[5],
- Cooling6 = bits[6],
- Cooling7 = bits[7],
- MaxSpeed = obj.MaxSpeed,
- MaxLoad = obj.MaxLoad,
- MinLoadDynamicCompensation = obj.MinLoadDynamicCompensation,
- MaxLoadDynamicCompensation = obj.MaxLoadDynamicCompensation,
- MaxLoadPctAutoload = obj.MaxLoadPctAutoload,
- MinLoadPctAutoload = obj.MinLoadPctAutoload,
- DynamicCompensation = obj.DynamicCompensation,
- LifeType = obj.LifeType,
- NominalLife = obj.NominalLife,
- ReviveDelta = obj.ReviveDelta
- };
- }
-
- public static explicit operator DbNcFamilyModel(DTONewNcFamilyModel obj)
- {
- // Prepare status byte
- bool[] result = new bool[8] { obj.Cooling, obj.Cooling1, obj.Cooling2, obj.Cooling3, obj.Cooling4, obj.Cooling5, obj.Cooling6, obj.Cooling7 };
- byte coolingByte = ConvertArrayToByte(result);
-
- return new DbNcFamilyModel()
- {
- Name = obj.Name,
- ToolType = obj.ToolType,
- RightSize = obj.RightSize,
- LeftSize = obj.LeftSize,
- TcpTable = obj.TcpTable,
- Gamma = obj.Gamma,
- RotationType = obj.RotationType,
- CoolingByte = coolingByte,
- MaxSpeed = obj.MaxSpeed,
- MaxLoad = obj.MaxLoad,
- MinLoadDynamicCompensation = obj.MinLoadDynamicCompensation,
- MaxLoadDynamicCompensation = obj.MaxLoadDynamicCompensation,
- MaxLoadPctAutoload = obj.MaxLoadPctAutoload,
- MinLoadPctAutoload = obj.MinLoadPctAutoload,
- DynamicCompensation = obj.DynamicCompensation,
- LifeType = obj.LifeType,
- NominalLife = obj.NominalLife,
- ReviveDelta = obj.ReviveDelta,
- };
- }
-
- protected static byte ConvertArrayToByte(bool[] bits)
- {
- BitArray bitField = new BitArray(bits); //BitArray takes a bool[]
- byte[] bytes = new byte[1];
- bitField.CopyTo(bytes, 0);
-
- return bytes[0];
- }
- }
-
- public class DTONcFamilyModel : DTONewNcFamilyModel
- {
- public short Id { get; set; }
-
- public List ChildTools { get; set; }
-
- public static explicit operator DTONcFamilyModel(DbNcFamilyModel obj)
- {
- List tools = new List();
-
- if (obj.Tools != null)
- foreach (DbNcToolModel tool in obj.Tools)
- {
- tools.Add((DTONcToolModel)tool);
- }
-
- // Get bit values
- BitArray coolingByte = new BitArray(new byte[] { obj.CoolingByte });
- bool[] bits = new bool[8];
- coolingByte.CopyTo(bits, 0);
-
- return new DTONcFamilyModel()
- {
- Id = obj.FamilyId,
- Name = obj.Name,
- ToolType = obj.ToolType,
- RightSize = obj.RightSize,
- LeftSize = obj.LeftSize,
- TcpTable = obj.TcpTable,
- Gamma = obj.Gamma,
- RotationType = obj.RotationType,
- Cooling = bits[0],
- Cooling1 = bits[1],
- Cooling2 = bits[2],
- Cooling3 = bits[3],
- Cooling4 = bits[4],
- Cooling5 = bits[5],
- Cooling6 = bits[6],
- Cooling7 = bits[7],
- MaxSpeed = obj.MaxSpeed,
- MaxLoad = obj.MaxLoad,
- MinLoadDynamicCompensation = obj.MinLoadDynamicCompensation,
- MaxLoadDynamicCompensation = obj.MaxLoadDynamicCompensation,
- MaxLoadPctAutoload = obj.MaxLoadPctAutoload,
- MinLoadPctAutoload = obj.MinLoadPctAutoload,
- DynamicCompensation = obj.DynamicCompensation,
- LifeType = obj.LifeType,
- NominalLife = obj.NominalLife,
- ReviveDelta = obj.ReviveDelta,
- ChildTools = tools
- };
- }
-
- public static explicit operator DbNcFamilyModel(DTONcFamilyModel obj)
- {
- // Prepare status byte
- bool[] result = new bool[8] { obj.Cooling, obj.Cooling1, obj.Cooling2, obj.Cooling3, obj.Cooling4, obj.Cooling5, obj.Cooling6, obj.Cooling7 };
- byte coolingByte = ConvertArrayToByte(result);
-
- return new DbNcFamilyModel()
- {
- FamilyId = obj.Id,
- Name = obj.Name,
- ToolType = obj.ToolType,
- RightSize = obj.RightSize,
- LeftSize = obj.LeftSize,
- TcpTable = obj.TcpTable,
- Gamma = obj.Gamma,
- RotationType = obj.RotationType,
- CoolingByte = coolingByte,
- MaxSpeed = obj.MaxSpeed,
- MaxLoad = obj.MaxLoad,
- MinLoadDynamicCompensation = obj.MinLoadDynamicCompensation,
- MaxLoadDynamicCompensation = obj.MaxLoadDynamicCompensation,
- MaxLoadPctAutoload = obj.MaxLoadPctAutoload,
- MinLoadPctAutoload = obj.MinLoadPctAutoload,
- DynamicCompensation = obj.DynamicCompensation,
- LifeType = obj.LifeType,
- NominalLife = obj.NominalLife,
- ReviveDelta = obj.ReviveDelta,
- };
- }
- }
-}
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTONcMagazinePositionModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTONcMagazinePositionModel.cs
deleted file mode 100644
index 50af1469..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTONcMagazinePositionModel.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using Thermo.Active.Model.DatabaseModels;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
- public class DTONcMagazinePositionModel
- {
- public byte MagazineId { get; set; }
-
- public int PositionId { get; set; }
-
- [Required]
- public bool Disabled { get; set; }
-
- [Required]
- public byte Type { get; set; }
-
- public int? ShankId { get; set; }
-
- public static explicit operator DTONcMagazinePositionModel(DbNcMagazinePositionModel obj)
- {
- return new DTONcMagazinePositionModel()
- {
- MagazineId = obj.MagazineId,
- PositionId = obj.PositionId,
- Disabled = obj.Disabled,
- Type = obj.Type
- };
- }
-
- public static explicit operator DbNcMagazinePositionModel(DTONcMagazinePositionModel obj)
- {
- return new DbNcMagazinePositionModel()
- {
- MagazineId = obj.MagazineId,
- PositionId = obj.PositionId,
- Disabled = obj.Disabled,
- Type = obj.Type
- };
- }
- }
-}
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTONcMountedShankModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTONcMountedShankModel.cs
deleted file mode 100644
index 306401d2..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTONcMountedShankModel.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
- public class DTONcMountedShankModel
- {
- public byte PositionId;
- public byte MagazineId;
- public int ShankId;
- }
-}
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTONcShankModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTONcShankModel.cs
deleted file mode 100644
index 58696241..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTONcShankModel.cs
+++ /dev/null
@@ -1,93 +0,0 @@
-using Thermo.Active.Model.DatabaseModels;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
- public class DTONewNcShankModel
- {
- [Required]
- public ushort? Balluf { get; set; }
-
- [Required]
- public byte MagazinePositionType { get; set; }
-
- public static explicit operator DTONewNcShankModel(DbNcShankModel obj)
- {
- return new DTONewNcShankModel()
- {
- Balluf = (ushort)obj.Balluf,
- MagazinePositionType = obj.MagazinePositionType
- };
- }
-
- public static explicit operator DbNcShankModel(DTONewNcShankModel obj)
- {
- return new DbNcShankModel()
- {
- Balluf = obj.Balluf,
- MagazinePositionType = obj.MagazinePositionType
- };
- }
- }
-
- public class DTONcShankModel : DTONewNcShankModel
- {
- public short Id { get; set; }
-
- [Range(1, byte.MaxValue)]
- public byte? MagazineId { get; set; }
-
- [Range(1, ushort.MaxValue)]
- public int? PositionId { get; set; }
-
- [Range(1, byte.MaxValue)]
- public byte? OriginMagazineId { get; set; }
-
- [Range(1, ushort.MaxValue)]
- public int? OriginPositionId { get; set; }
-
- public int MaxLeft { get; set; }
-
- public int MaxRight { get; set; }
-
- public List ChildsTools { get; set; }
-
- public static explicit operator DTONcShankModel(DbNcShankModel obj)
- {
- List tools = new List();
-
- if (obj.Tools != null)
- foreach (DbNcToolModel tool in obj.Tools)
- {
- tools.Add((DTONcToolModel)tool);
- }
-
- return new DTONcShankModel()
- {
- Id = obj.ShankId,
- Balluf = (ushort?)obj.Balluf,
- MagazinePositionType = obj.MagazinePositionType,
- MagazineId = obj.MagazineId,
- PositionId = obj.PositionId,
- OriginMagazineId = obj.OriginMagazineId,
- OriginPositionId = obj.OriginPositionId,
- ChildsTools = tools
- };
- }
-
- public static explicit operator DbNcShankModel(DTONcShankModel obj)
- {
- return new DbNcShankModel()
- {
- ShankId = obj.Id,
- Balluf = obj.Balluf,
- MagazinePositionType = obj.MagazinePositionType,
- MagazineId = obj.MagazineId,
- PositionId = obj.PositionId,
- OriginMagazineId = obj.OriginMagazineId,
- OriginPositionId = obj.OriginPositionId,
- };
- }
- }
-}
\ No newline at end of file
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTONcToolModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTONcToolModel.cs
deleted file mode 100644
index b2cf2f65..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTONcToolModel.cs
+++ /dev/null
@@ -1,209 +0,0 @@
-using CMS_CORE_Library.Models;
-using Thermo.Active.Model.DatabaseModels;
-using System.Collections;
-using System.ComponentModel.DataAnnotations;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
-
- public class DTONcTool
- {
- [Required]
- public short OffsetLength { get; set; }
-
- [Required]
- public int ResidualLife { get; set; }
-
- [Required]
- public int ResidualRevive { get; set; }
-
- [Required]
- // Foreign keys
- public short FamilyId { get; set; }
-
- [Required]
- public bool Disabled { get; set; }
-
- [Required]
- public bool Broken { get; set; }
-
- [Required]
- public bool Measured { get; set; }
-
- [Required]
- public bool IntegrityCheck { get; set; }
-
- [Required]
- public bool ClockwiseRotation { get; set; }
-
- [Required]
- public bool CounterClockwiseRotation { get; set; }
-
- public short? ShankId { get; set; } = null;
-
- public static explicit operator DTONcTool(DbNcToolModel obj)
- {
- // Get bit values
- BitArray statusBits = new BitArray(obj.Status);
- bool[] bits = new bool[8];
- statusBits.CopyTo(bits, 0);
-
- return new DTONcTool()
- {
- FamilyId = obj.FamilyId,
- ShankId = (short)(obj.ShankId == null ? 0 : obj.ShankId.Value),
- OffsetLength = obj.OffsetLength,
- ResidualLife = obj.ResidualLife,
- ResidualRevive = obj.ResidualRevive,
- Disabled = bits[0],
- Broken = bits[1],
- Measured = bits[2],
- IntegrityCheck = bits[3],
- ClockwiseRotation = bits[4],
- CounterClockwiseRotation = bits[5],
- };
- }
-
- public static explicit operator DbNcToolModel(DTONcTool obj)
- {
- // Prepare status byte
- bool[] result = new bool[8] { obj.Disabled, obj.Broken, obj.Measured, obj.IntegrityCheck, obj.ClockwiseRotation, obj.CounterClockwiseRotation, false, false };
- byte status = ConvertArrayToByte(result);
-
- return new DbNcToolModel()
- {
- FamilyId = obj.FamilyId,
- ShankId = obj.ShankId,
- OffsetLength = obj.OffsetLength,
- ResidualLife = obj.ResidualLife,
- ResidualRevive = obj.ResidualRevive,
- Status = status
- };
- }
-
- protected static byte ConvertArrayToByte(bool[] bits)
- {
- BitArray bitField = new BitArray(bits); //BitArray takes a bool[]
- byte[] bytes = new byte[1];
- bitField.CopyTo(bytes, 0);
-
- return bytes[0];
- }
- }
-
- public class DTONcToolModel : DTONewNcToolModel
- {
- public short Id { get; set; }
-
- public OffsetModel Offset1 { get; set; }
-
- public OffsetModel Offset2 { get; set; }
-
- public OffsetModel Offset3 { get; set; }
-
-
- public static explicit operator DTONcToolModel(DbNcToolModel obj)
- {
- // Get bit values
- BitArray statusBits = new BitArray(new byte[] { obj.Status });
- bool[] bits = new bool[8];
- statusBits.CopyTo(bits, 0);
-
- return new DTONcToolModel()
- {
- Id = obj.ToolId,
- FamilyId = obj.FamilyId,
- ShankId = obj.ShankId,
- OffsetLength = obj.OffsetLength,
- ResidualLife = obj.ResidualLife,
- ResidualRevive = obj.ResidualRevive,
- Disabled = bits[0],
- Broken = bits[1],
- Measured = bits[2],
- IntegrityCheck = bits[3],
- ClockwiseRotation = bits[4],
- CounterClockwiseRotation = bits[5],
- OffsetId1 = obj.OffsetId1,
- OffsetId2 = obj.OffsetId2,
- OffsetId3 = obj.OffsetId3
- };
- }
-
- public static explicit operator DbNcToolModel(DTONcToolModel obj)
- {
- // Prepare status byte
- bool[] result = new bool[8] { obj.Disabled, obj.Broken, obj.Measured, obj.IntegrityCheck, obj.ClockwiseRotation, obj.CounterClockwiseRotation, false, false };
- byte status = ConvertArrayToByte(result);
-
- return new DbNcToolModel()
- {
- ToolId = obj.Id,
- FamilyId = obj.FamilyId,
- ShankId = obj.ShankId,
- OffsetLength = obj.OffsetLength,
- ResidualLife = obj.ResidualLife,
- ResidualRevive = obj.ResidualRevive,
- Status = status,
- OffsetId1 = obj.OffsetId1,
- OffsetId2 = obj.OffsetId2,
- OffsetId3 = obj.OffsetId3
- };
- }
- }
-
- public class DTONewNcToolModel : DTONcTool
- {
- public short? OffsetId1 { get; set; }
-
- public short? OffsetId2 { get; set; }
-
- public short? OffsetId3 { get; set; }
-
-
- public static explicit operator DTONewNcToolModel(DbNcToolModel obj)
- {
- // Get bit values
- BitArray statusBits = new BitArray(obj.Status);
- bool[] bits = new bool[8];
- statusBits.CopyTo(bits, 0);
-
- return new DTONewNcToolModel()
- {
- FamilyId = obj.FamilyId,
- ShankId = (short)(obj.ShankId == null ? 0 : obj.ShankId.Value),
- OffsetLength = obj.OffsetLength,
- ResidualLife = obj.ResidualLife,
- ResidualRevive = obj.ResidualRevive,
- Disabled = bits[0],
- Broken = bits[1],
- Measured = bits[2],
- IntegrityCheck = bits[3],
- ClockwiseRotation = bits[4],
- CounterClockwiseRotation = bits[5],
- OffsetId1 = obj.OffsetId1,
- OffsetId2 = obj.OffsetId2,
- OffsetId3 = obj.OffsetId3
- };
- }
-
- public static explicit operator DbNcToolModel(DTONewNcToolModel obj)
- {
- // Prepare status byte
- bool[] result = new bool[8] { obj.Disabled, obj.Broken, obj.Measured, obj.IntegrityCheck, obj.ClockwiseRotation, obj.CounterClockwiseRotation, false, false};
- byte status = ConvertArrayToByte(result);
-
- return new DbNcToolModel()
- {
- FamilyId = obj.FamilyId,
- ShankId = obj.ShankId,
- OffsetLength = obj.OffsetLength,
- ResidualLife = obj.ResidualLife,
- ResidualRevive = obj.ResidualRevive,
- Status = status,
- OffsetId1 = obj.OffsetId1,
- OffsetId2 = obj.OffsetId2,
- OffsetId3 = obj.OffsetId3
- };
- }
- }
-}
\ No newline at end of file
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTONewToolDataModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTONewToolDataModel.cs
deleted file mode 100644
index 071e997a..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTONewToolDataModel.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
- public class DTONewToolDataModel
- {
- public Dictionary UpdatedStatus;
- public Dictionary UpdatedLives;
- }
-}
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTONewToolWithFamilyModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTONewToolWithFamilyModel.cs
deleted file mode 100644
index 386facf8..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTONewToolWithFamilyModel.cs
+++ /dev/null
@@ -1,138 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
- // Tool with family data
-
- public class DTONewNcToolWithFamilyModel : DTONewNcToolModel
- {
- // Family fields
- public string Name { get; set; }
-
- public byte ToolType { get; set; }
-
- public byte RightSize { get; set; }
-
- public byte LeftSize { get; set; }
-
- public byte TcpTable { get; set; }
-
- public byte Gamma { get; set; }
-
- public byte RotationType { get; set; }
-
- public bool Cooling { get; set; }
-
- public bool Cooling1 { get; set; }
-
- public bool Cooling2 { get; set; }
-
- public bool Cooling3 { get; set; }
-
- public bool Cooling4 { get; set; }
-
- public bool Cooling5 { get; set; }
-
- public bool Cooling6 { get; set; }
-
- public bool Cooling7 { get; set; }
-
- public int MaxSpeed { get; set; }
-
- public byte MaxLoad { get; set; }
-
- public byte MinLoadPctAutoload { get; set; }
-
- public byte MaxLoadPctAutoload { get; set; }
-
- public byte DynamicCompensation { get; set; }
-
- public byte MinLoadDynamicCompensation { get; set; }
-
- public byte MaxLoadDynamicCompensation { get; set; }
-
- public byte LifeType { get; set; }
-
- public int NominalLife { get; set; }
-
- public int ReviveDelta { get; set; }
- }
-
-
- public class DTONcToolWithFamilyModel : DTONcToolModel
- {
- // Family fields
- [Required]
- public string Name { get; set; }
-
- [Required]
- public byte ToolType { get; set; }
-
- [Required]
- public byte RightSize { get; set; }
-
- [Required]
- public byte LeftSize { get; set; }
-
- [Required]
- public byte TcpTable { get; set; }
-
- [Required]
- public byte Gamma { get; set; }
-
- [Required]
- public byte RotationType { get; set; }
-
- [Required]
- public bool Cooling { get; set; }
- [Required]
- public bool Cooling1 { get; set; }
- [Required]
- public bool Cooling2 { get; set; }
- [Required]
- public bool Cooling3 { get; set; }
- [Required]
- public bool Cooling4 { get; set; }
- [Required]
- public bool Cooling5 { get; set; }
- [Required]
- public bool Cooling6 { get; set; }
- [Required]
- public bool Cooling7 { get; set; }
-
- [Required]
- public int MaxSpeed { get; set; }
-
- [Required]
- public byte MaxLoad { get; set; }
-
- [Required]
- public byte MinLoadPctAutoload { get; set; }
-
- [Required]
- public byte MaxLoadPctAutoload { get; set; }
-
- [Required]
- public byte DynamicCompensation { get; set; }
-
- [Required]
- public byte MinLoadDynamicCompensation { get; set; }
-
- [Required]
- public byte MaxLoadDynamicCompensation { get; set; }
-
- [Required]
- public byte LifeType { get; set; }
-
- [Required]
- public int NominalLife { get; set; }
-
- [Required]
- public int ReviveDelta { get; set; }
- }
-}
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTOSelfAdaptiveModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTOSelfAdaptiveModel.cs
deleted file mode 100644
index 99f94d3c..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTOSelfAdaptiveModel.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using CMS_CORE_Library.Models;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
- public class DTOSelfAdaptiveModel
- {
- public byte Step { get; set; }
- }
-}
\ No newline at end of file
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTOShankModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTOShankModel.cs
deleted file mode 100644
index 0aec9f04..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTOShankModel.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using CMS_CORE_Library.Models;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Linq;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
- public class DTOShankModel
- {
- public int Id;
- [Required]
- public string Name { get; set; }
- [Required]
- public bool IsEnabled { get; set; }
- [Required]
- public bool IsInhibited { get; set; }
- [Required]
- public bool InChangeTool { get; set; }
- [Required]
- public bool InFixedPlace { get; set; }
- [Required]
- public bool InUse { get; set; }
- [Required]
- public int LeftSize { get; set; }
- [Required]
- public int RightSize { get; set; }
- [Required]
- public int MagazinePositionType { get; set; }
-
- public List ChildsTools { get; set; }
-
- public static explicit operator ShankModel(DTOShankModel obj)
- {
- List childs = obj.ChildsTools?.Select(x => new ShankChildModel
- {
- Id = x.Id,
- FamilyName = x.FamilyName,
- MultitoolId = x.MultitoolId,
- ToolType = x.ToolType
- }).ToList();
-
-
- return new ShankModel()
- {
- Id = 0,
- Name = obj.Name,
- IsEnabled = obj.IsEnabled,
- IsInhibited = obj.IsInhibited,
- InChangeTool = obj.InChangeTool,
- InFixedPlace = obj.InFixedPlace,
- InUse = obj.InUse,
- LeftSize = obj.LeftSize,
- RightSize = obj.RightSize,
- MagazinePositionType = obj.MagazinePositionType,
- ChildsTools = childs
- };
- }
- }
- public class DTOShankChildModel
- {
- public int Id;
- [Required]
- public int MultitoolId;
- [Required]
- public string FamilyName;
- [Required]
- public int ToolType;
- }
-}
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTOSiemensToolModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTOSiemensToolModel.cs
deleted file mode 100644
index f9d1d8a2..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTOSiemensToolModel.cs
+++ /dev/null
@@ -1,128 +0,0 @@
-using CMS_CORE_Library.Models;
-using System.ComponentModel.DataAnnotations;
-using static CMS_CORE_Library.Models.DataStructures;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
- public class DTOSiemensToolModel
- {
- [Required]
- public string FamilyName { get; set; }
-
- [Required]
- public int MagazinePositionType { get; set; }
-
- [Required]
- public int ToolType { get; set; }
-
- public SIEMENS_LIFE_TYPE LifeType { get; set; }
-
- [Required]
- public int LeftSize { get; set; }
-
- [Required]
- public int RightSize { get; set; }
-
- [Required]
- public double MaxSpeed { get; set; }
-
- [Required]
- public double MaxAcceleration { get; set; }
-
- [Required]
- public ROTATION Rotation { get; set; }
-
- [Required]
- public bool Cooling1 { get; set; }
-
- [Required]
- public bool Cooling2 { get; set; }
-
- [Required]
- public bool IsEnabled { get; set; }
-
- [Required]
- public bool IsActive { get; set; }
-
- [Required]
- public bool InFixedPlace { get; set; }
-
- [Required]
- public bool IsInhibited { get; set; }
-
- [Required]
- public bool IsMeasured { get; set; }
-
- [Required]
- public bool InChangeTool { get; set; }
-
- [Required]
- public bool IsInUse { get; set; }
-
- [Required]
- public bool PreAlarm { get; set; }
- // Custom fields
- [Required]
- public int Load { get; set; }
-
- [Required]
- public int Gamma { get; set; }
-
- [Required]
- public int MaxLoadPctAutoload { get; set; }
-
- [Required]
- public int MinLoadPctAutoload { get; set; }
-
- [Required]
- public int ToolTypeCode { get; set; }
-
- public DTONcShankModel Shank { get; set; }
-
- public static explicit operator SiemensToolModel(DTOSiemensToolModel dtoModel)
- {
- return new SiemensToolModel()
- {
- MagazinePositionType = dtoModel.MagazinePositionType,
- ToolType = dtoModel.ToolType,
- LifeType = dtoModel.LifeType,
- FamilyName = dtoModel.FamilyName,
- MaxSpeed = dtoModel.MaxSpeed,
- //MaxAcceleration = dtoModel.MaxAcceleration,
- IsEnabled = dtoModel.IsEnabled,
- IsActive = dtoModel.IsActive,
- IsInhibited = dtoModel.IsInhibited,
- IsInUse = dtoModel.IsInUse,
- IsMeasured = dtoModel.IsMeasured,
- InChangeTool = dtoModel.InChangeTool,
- InFixedPlace = dtoModel.InFixedPlace,
- PreAlarm = dtoModel.PreAlarm,
-
- Cooling1 = dtoModel.Cooling1,
- Cooling2 = dtoModel.Cooling2,
- LeftSize = dtoModel.LeftSize,
- RightSize = dtoModel.RightSize,
- Rotation = dtoModel.Rotation,
-
- Load = dtoModel.Load,
- Gamma = dtoModel.Gamma,
- MaxLoadPctAutoload = dtoModel.MaxLoadPctAutoload,
- MinLoadPctAutoload = dtoModel.MinLoadPctAutoload,
- ToolTypeCode = dtoModel.ToolTypeCode
- };
- }
- }
-
- public class DTOMagazinesPositionsModel
- {
- [Required]
- public bool Disabled { get; set; }
- }
-
- public class DTOFamilyModel
- {
- [Required]
- public string Name { get; set; }
- }
-
-}
\ No newline at end of file
diff --git a/Thermo.Active.Model/DTOModels/ToolModels/DTOUpdateMagazineModel.cs b/Thermo.Active.Model/DTOModels/ToolModels/DTOUpdateMagazineModel.cs
deleted file mode 100644
index addd6019..00000000
--- a/Thermo.Active.Model/DTOModels/ToolModels/DTOUpdateMagazineModel.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-
-namespace Thermo.Active.Model.DTOModels.ToolModels
-{
- public class DTOSiemensUpdateMagazineModel
- {
- [Required]
- public int ToolId { get; set; }
- }
-
- public class DTONcUpdateMagazineModel
- {
- [Required]
- public int ShankId { get; set; }
- }
-}
\ No newline at end of file
diff --git a/Thermo.Active.Model/DatabaseModels/NcFamilyModel.cs b/Thermo.Active.Model/DatabaseModels/NcFamilyModel.cs
index 7344453b..2336f030 100644
--- a/Thermo.Active.Model/DatabaseModels/NcFamilyModel.cs
+++ b/Thermo.Active.Model/DatabaseModels/NcFamilyModel.cs
@@ -18,9 +18,6 @@ namespace Thermo.Active.Model.DatabaseModels
[Column("name")]
public string Name { get; set; }
- [Column("type")]
- public byte ToolType { get; set; }
-
[Column("right_size")]
public byte RightSize { get; set; }
@@ -69,16 +66,12 @@ namespace Thermo.Active.Model.DatabaseModels
[Column("revive_delta")]
public int ReviveDelta { get; set; }
- [JsonIgnore]
- [IgnoreDataMember]
- public List Tools { get; set; }
public static explicit operator NcFamilyModel(DbNcFamilyModel obj)
{
return new NcFamilyModel()
{
FamilyId = (ushort)obj.FamilyId,
- ToolType = obj.ToolType,
RightSize = obj.RightSize,
LeftSize = obj.LeftSize,
TcpTable = obj.TcpTable,
@@ -103,7 +96,6 @@ namespace Thermo.Active.Model.DatabaseModels
return new DbNcFamilyModel()
{
FamilyId = (short)obj.FamilyId,
- ToolType = obj.ToolType,
RightSize = obj.RightSize,
LeftSize = obj.LeftSize,
TcpTable = obj.TcpTable,
diff --git a/Thermo.Active.Model/DatabaseModels/NcMagazinePositionModel.cs b/Thermo.Active.Model/DatabaseModels/NcMagazinePositionModel.cs
deleted file mode 100644
index b356ce23..00000000
--- a/Thermo.Active.Model/DatabaseModels/NcMagazinePositionModel.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using System;
-using System.ComponentModel.DataAnnotations;
-using System.ComponentModel.DataAnnotations.Schema;
-using CMS_CORE_Library.Models;
-
-namespace Thermo.Active.Model.DatabaseModels
-{
- [Table("magazine_position")]
- public class DbNcMagazinePositionModel
- {
- [Key, Column("magazine_id", Order = 0)]
- public byte MagazineId { get; set; }
-
- [Key, Column("position_id", Order = 1)]
- public int PositionId { get; set; }
-
- [Column("type")]
- public byte Type { get; set; }
-
- [Column("disabled")]
- public bool Disabled { get; set; }
-
- public static explicit operator NcMagazinePositionModel(DbNcMagazinePositionModel obj)
- {
- return new NcMagazinePositionModel()
- {
- MagazineId = obj.MagazineId,
- PositionId = (ushort)obj.PositionId,
- Type = obj.Type
- };
- }
- }
-}
diff --git a/Thermo.Active.Model/DatabaseModels/NcShankModel.cs b/Thermo.Active.Model/DatabaseModels/NcShankModel.cs
deleted file mode 100644
index 36b44a60..00000000
--- a/Thermo.Active.Model/DatabaseModels/NcShankModel.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.ComponentModel.DataAnnotations.Schema;
-using System.Runtime.Serialization;
-using CMS_CORE_Library.Models;
-using Newtonsoft.Json;
-
-namespace Thermo.Active.Model.DatabaseModels
-{
- [Table("shank")]
- public class DbNcShankModel
- {
- [Key]
- [DatabaseGenerated(DatabaseGeneratedOption.None)]
- [Column("id")]
- public short ShankId { get; set; }
-
- [Column("balluf")]
- public int? Balluf { get; set; }
-
- [Column("magazine_position_type")]
- public byte MagazinePositionType { get; set; }
-
- [ForeignKey("MagazinePosition"), Column("magazine_id", Order = 0)]
- public byte? MagazineId { get; set; }
-
- [ForeignKey("MagazinePosition"), Column("position_id", Order = 1)]
- public int? PositionId { get; set; }
-
- [Column("origin_magazine_id")]
- public byte? OriginMagazineId { get; set; }
-
- [Column("origin_position_id")]
- public int? OriginPositionId { get; set; }
-
-
- [JsonIgnore]
- [IgnoreDataMember]
- public DbNcMagazinePositionModel MagazinePosition { get; set; }
-
-
- [JsonIgnore]
- [IgnoreDataMember]
- public List Tools { get; set; }
-
- public static explicit operator NcShankModel(DbNcShankModel obj)
- {
- return new NcShankModel()
- {
- ShankId = (ushort)obj.ShankId,
- Balluf = obj.Balluf == null ? (ushort)0 : (ushort)obj.Balluf.Value,
- MagazineId = obj.MagazineId == null ? (byte)0 : obj.MagazineId.Value,
- PositionId = obj.PositionId == null ? (ushort)0 : (ushort)obj.PositionId.Value,
- MagazinePositionType = obj.MagazinePositionType,
- OriginMagazineId = obj.OriginMagazineId == null ? (byte)0 : obj.OriginMagazineId.Value,
- OriginPositionId = obj.OriginPositionId == null ? (ushort)0 : (ushort)obj.OriginPositionId.Value,
- };
- }
-
- public static explicit operator DbNcShankModel(NcShankModel obj)
- {
- return new DbNcShankModel()
- {
- ShankId = (short)obj.ShankId,
- Balluf = obj.Balluf == 0 ? null : (ushort?)obj.Balluf,
- MagazineId = obj.MagazineId == 0 ? null : (byte?)obj.MagazineId,
- PositionId = obj.PositionId == 0 ? null : (ushort?)obj.PositionId,
- MagazinePositionType = obj.MagazinePositionType,
- OriginMagazineId = obj.OriginMagazineId == 0 ? null : (byte?)obj.OriginMagazineId,
- OriginPositionId = obj.OriginPositionId == 0 ? null : (ushort?)obj.OriginPositionId,
- };
- }
- }
-}
\ No newline at end of file
diff --git a/Thermo.Active.Model/DatabaseModels/NcToolModel.cs b/Thermo.Active.Model/DatabaseModels/NcToolModel.cs
deleted file mode 100644
index 0038799a..00000000
--- a/Thermo.Active.Model/DatabaseModels/NcToolModel.cs
+++ /dev/null
@@ -1,91 +0,0 @@
-using CMS_CORE_Library.Models;
-using Newtonsoft.Json;
-using System.ComponentModel.DataAnnotations;
-using System.ComponentModel.DataAnnotations.Schema;
-using System.Runtime.Serialization;
-
-namespace Thermo.Active.Model.DatabaseModels
-{
- [Table("tool")]
- public class DbNcToolModel
- {
- [Key]
- [DatabaseGenerated(DatabaseGeneratedOption.None)]
- [Column("id")]
- public short ToolId { get; set; }
-
- [Column("offset_length")]
- public short OffsetLength { get; set; }
-
- [Column("residual_life")]
- public int ResidualLife { get; set; }
-
- [Column("residual_revive")]
- public int ResidualRevive { get; set; }
-
- [Column("status")]
- public byte Status { get; set; }
-
- // Foreign keys
- [Column("family_id")]
- [ForeignKey("Family")]
- public short FamilyId { get; set; }
-
- [Column("shank_id")]
- [DatabaseGenerated(DatabaseGeneratedOption.None)]
-
- [ForeignKey("Shank")]
- public short? ShankId { get; set; }
-
- [Column("offsetId1")]
- public short? OffsetId1 { get; set; }
-
- [Column("offsetId2")]
- public short? OffsetId2 { get; set; }
-
- [Column("offsetId3")]
- public short? OffsetId3 { get; set; }
-
- [JsonIgnore]
- [IgnoreDataMember]
- public virtual DbNcFamilyModel Family { get; set; }
-
- [JsonIgnore]
- [IgnoreDataMember]
- public virtual DbNcShankModel Shank { get; set; }
-
- public static explicit operator NcToolModel(DbNcToolModel obj)
- {
- return new NcToolModel()
- {
- ToolId = obj.ToolId,
- FamilyId = obj.FamilyId,
- OffsetLength = obj.OffsetLength,
- ResidualLife = (ushort)obj.ResidualLife,
- Status = obj.Status,
- ResidualRevive = (ushort)obj.ResidualRevive,
- ShankId = (short)(obj.ShankId == null ? 0 : obj.ShankId.Value),
- OffsetId1 = (ushort)(obj.OffsetId1 == null ? 0 : obj.OffsetId1.Value),
- OffsetId2 = (ushort)(obj.OffsetId2 == null ? 0 : obj.OffsetId2.Value),
- OffsetId3 = (ushort)(obj.OffsetId3 == null ? 0 : obj.OffsetId3.Value)
- };
- }
-
- public static explicit operator DbNcToolModel(NcToolModel obj)
- {
- return new DbNcToolModel()
- {
- ToolId = obj.ToolId,
- FamilyId = obj.FamilyId,
- OffsetLength = obj.OffsetLength,
- ResidualLife = (ushort)obj.ResidualLife,
- Status = obj.Status,
- ResidualRevive = (ushort)obj.ResidualRevive,
- ShankId = obj.ShankId == 0 ? null : (short?)obj.ShankId,
- OffsetId1 = obj.OffsetId1 == 0 ? null : (short?)obj.OffsetId1,
- OffsetId2 = obj.OffsetId2 == 0 ? null : (short?)obj.OffsetId2,
- OffsetId3 = obj.OffsetId3 == 0 ? null : (short?)obj.OffsetId3
- };
- }
- }
-}
\ No newline at end of file
diff --git a/Thermo.Active.Model/Properties/AssemblyInfo.cs b/Thermo.Active.Model/Properties/AssemblyInfo.cs
index d5e23549..1750672a 100644
--- a/Thermo.Active.Model/Properties/AssemblyInfo.cs
+++ b/Thermo.Active.Model/Properties/AssemblyInfo.cs
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
-[assembly: AssemblyTitle("Step.Model")]
+[assembly: AssemblyTitle("Thermo.Active.Model")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Step.Model")]
+[assembly: AssemblyProduct("Thermo.Active.Model")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/Thermo.Active.Model/Thermo.Active.Model.csproj b/Thermo.Active.Model/Thermo.Active.Model.csproj
index b5572c5c..b4394495 100644
--- a/Thermo.Active.Model/Thermo.Active.Model.csproj
+++ b/Thermo.Active.Model/Thermo.Active.Model.csproj
@@ -33,9 +33,6 @@
4
-
- ..\Libs\CMS_CORE_Library.dll
-
..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll
@@ -66,16 +63,14 @@
+
-
-
-
@@ -91,9 +86,6 @@
-
-
-
@@ -103,12 +95,15 @@
+
+
+
@@ -118,12 +113,11 @@
+
+
+
-
-
-
-
@@ -144,17 +138,6 @@
-
-
-
-
-
-
-
-
-
-
-
DtsGenerator
@@ -173,6 +156,12 @@
+
+
+ {4abf8eef-2b23-483e-acdc-53214fe28681}
+ CMS_CORE_Library
+
+
diff --git a/Thermo.Active.NC/NcAdapter.cs b/Thermo.Active.NC/NcAdapter.cs
index b0654fa0..3558caf1 100644
--- a/Thermo.Active.NC/NcAdapter.cs
+++ b/Thermo.Active.NC/NcAdapter.cs
@@ -4,8 +4,9 @@ using CMS_CORE_Library.Fanuc;
using CMS_CORE_Library.Models;
using CMS_CORE_Library.Osai;
using CMS_CORE_Library.Siemens;
+using CMS_CORE_Library.S7Net;
using Thermo.Active.Database.Controllers;
-using Thermo.Active.Model.DatabaseModels;
+using Thermo.Active.Model.DatabaseModels;
using Thermo.Active.Model.DTOModels;
using Thermo.Active.Model.DTOModels.AlarmModels;
using Thermo.Active.Model.DTOModels.MaintenanceModels;
@@ -21,12 +22,18 @@ using System.Text.RegularExpressions;
using static CMS_CORE_Library.Models.DataStructures;
using static Thermo.Active.Config.ServerConfig;
using static Thermo.Active.Model.Constants;
+using Thermo.Active.Model.DTOModels.Recipe;
namespace Thermo.Active.NC
{
public class NcAdapter : IDisposable
{
- public Nc numericalControl;
+ ///
+ /// check e usare dati simulati/reali (in fase implementazione)
+ ///
+ public bool simData = true;
+
+ public NcThermo numericalControl;
public NcAdapter() =>
// Choose NC
@@ -52,22 +59,13 @@ namespace Thermo.Active.NC
return null;
}
- public Nc SetNumericalControl()
+ public NcThermo SetNumericalControl()
{
// Return new Numerical control instance choosed from the configuration
switch (NcConfig.NcVendor)
{
- case NC_VENDOR.DEMO:
- return new Nc_Demo(NcConfig.NcIpAddress, NcConfig.NcPort);
-
- case NC_VENDOR.FANUC:
- return new Nc_Fanuc(NcConfig.NcIpAddress, NcConfig.NcPort, 2000);
-
- case NC_VENDOR.SIEMENS:
- return new Nc_Siemens(2000);
-
- case NC_VENDOR.OSAI:
- return new Nc_Osai(NcConfig.NcIpAddress, NcConfig.NcPort, 2000);
+ case NC_VENDOR.S7NET:
+ return new Nc_S7Net(NcConfig.NcIpAddress, NcConfig.NcPort, 2000);
}
return null;
@@ -116,7 +114,7 @@ namespace Thermo.Active.NC
return cmsError;
}
- public CmsError GetAxesPositionsByProcess(ushort processNum, out DTOAxesModel axes)
+ public CmsError GetAxesPositionsByProcess(ushort processNum, out DTOAxesModel axes)
{
axes = new DTOAxesModel();
@@ -232,7 +230,7 @@ namespace Thermo.Active.NC
// Max process number
genericData.ProcessNumber = procNum;
// Get Installation Date
- genericData.InstallationDate = DateTime.ParseExact(NcConfig.InstallationDate, DATE_FORMATS, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal);
+ genericData.InstallationDate = DateTime.ParseExact(NcConfig.InstallationDate, DATE_FORMATS, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal);
// Get PLC version
genericData.PlcVersion = "1.0.0";
// Get PLC version
@@ -241,8 +239,8 @@ namespace Thermo.Active.NC
return cmsError;
genericData.UnitOfMeasurement = tmpInfo;
- // Get Server version
- genericData.ServerVersion = SupportFunctions.GetSoftwareVersionAndBuildDate();
+ // Get Server version
+ genericData.ServerVersion = SupportFunctions.GetSoftwareVersionAndBuildDate();
return cmsError;
}
@@ -539,7 +537,7 @@ namespace Thermo.Active.NC
if (performed != null)
perfVal = performed.CounterValue;
- counterValue = (uint) Math.Ceiling(SupportFunctions.ConvertInUmeas(counterVal, currMaintenance.UnitOfMeasure.Value));
+ counterValue = (uint)Math.Ceiling(SupportFunctions.ConvertInUmeas(counterVal, currMaintenance.UnitOfMeasure.Value));
// Calc percentage = PLC - PERFORMED VALUE * 100 / interval
percentage = ((counterVal - perfVal) * 100) / SupportFunctions.ConvertInMinutes(currMaintenance.Interval.Value, currMaintenance.UnitOfMeasure.Value);
@@ -601,7 +599,7 @@ namespace Thermo.Active.NC
}
}
- if(performed != null && performed.ControlWord == -2)
+ if (performed != null && performed.ControlWord == -2)
{
performed = null;
}
@@ -864,50 +862,36 @@ namespace Thermo.Active.NC
Id = head.Id,
Process = head.Process,
Type = configuredHead.Type.ToString(),
- FixedHead = configuredHead.FixedHead,
+ FixedHead = configuredHead.FixedHead,
inWarning = head.Load_Abrasive >= configuredHead.WarningLimit,
- inAlarm = head.Load_Abrasive >= configuredHead.AlarmLimit,
+ inAlarm = head.Load_Abrasive >= configuredHead.AlarmLimit,
OverrideEditable = head.OverrideEditable,
ActualSpeed = head.ActualSpeed_Pressure,
- Load = head.Load_Abrasive,
- MountedTool = (ushort)head.MountedTool_Vacum,
+ Load = head.Load_Abrasive,
Override = head.Override,
IsActive = head.IsActive,
IsSelected = head.IsSelected,
AbrasiveIsActive = head.AbrasiveIsActive,
Configured = head.Configured,
Rotation = head.Rotation,
- WorkedTime = head.WorkedTime,
- ToolData = head.Tool == null ? null : new DTOToolInSpindleModel()
- {
- ChildId = head.Tool.ChildId,
- ToolName = head.Tool.ToolName,
- Disabled = head.Tool.Disabled,
- Measured = head.Tool.Measured,
- Broken = head.Tool.Broken,
- MaxSpeed = (int)head.Tool.MaxSpeed,
- MaxLoad = (byte)head.Tool.MaxLoad,
- ResidualLife = (int)head.Tool.ResidualLife
- }
+ WorkedTime = head.WorkedTime
});
}
break;
- case HEAD_TYPE.AWJ:
+
+ case HEAD_TYPE.WJ:
{
- float vacumValue = (float)head.MountedTool_Vacum / 100;
- heads.Add(new DTOAbrasiveWaterJet()
+ heads.Add(new DTOWaterJet()
{
Id = head.Id,
Process = head.Process,
Type = configuredHead.Type.ToString(),
FixedHead = configuredHead.FixedHead,
- inWarning = vacumValue >= configuredHead.WarningLimit,
- inAlarm = vacumValue >= configuredHead.AlarmLimit,
- OverrideEditable = head.OverrideEditable,
+ inAlarm = false,
+ inWarning = false,
ActualPressure = head.ActualSpeed_Pressure,
- Abrasive = Convert.ToUInt16(head.Load_Abrasive),
- Vacum = vacumValue,
+ OverrideEditable = head.OverrideEditable,
Override = head.Override,
IsActive = head.IsActive,
IsSelected = head.IsSelected,
@@ -916,6 +900,57 @@ namespace Thermo.Active.NC
});
}
break;
+ }
+ }
+
+ return cmsError;
+ }
+
+ // !!!FARE!!! è copia delle heads
+ public CmsError GetRecipeData(out List heads)
+ {
+ // Returned value
+ heads = new List();
+ // Number of configured heads
+ int headsNumber = HeadsConfig.Count;
+
+ List plcHeads = new List();
+ // Read value from PLC
+ CmsError cmsError = numericalControl.PLC_RHeadsData(plcHeads, headsNumber);
+ if (cmsError.IsError())
+ return cmsError;
+
+ foreach (var head in plcHeads)
+ {
+ // Get current head config
+ var configuredHead = HeadsConfig.Find(x => x.Id == head.Id);
+ // Create different model according on type
+ switch (configuredHead.Type)
+ {
+ case HEAD_TYPE.SPINDLE:
+ {
+ heads.Add(new DTOSpindleModel()
+ {
+ Id = head.Id,
+ Process = head.Process,
+ Type = configuredHead.Type.ToString(),
+ FixedHead = configuredHead.FixedHead,
+ inWarning = head.Load_Abrasive >= configuredHead.WarningLimit,
+ inAlarm = head.Load_Abrasive >= configuredHead.AlarmLimit,
+ OverrideEditable = head.OverrideEditable,
+ ActualSpeed = head.ActualSpeed_Pressure,
+ Load = head.Load_Abrasive,
+ Override = head.Override,
+ IsActive = head.IsActive,
+ IsSelected = head.IsSelected,
+ AbrasiveIsActive = head.AbrasiveIsActive,
+ Configured = head.Configured,
+ Rotation = head.Rotation,
+ WorkedTime = head.WorkedTime
+ });
+ }
+ break;
+
case HEAD_TYPE.WJ:
{
@@ -959,7 +994,7 @@ namespace Thermo.Active.NC
Process = x.Process,
Type = x.Type.ToString(),
Value = x.Value
- }).ToList();
+ }).ToList();
return NO_ERROR;
}
@@ -999,9 +1034,9 @@ namespace Thermo.Active.NC
scadas.Add(scadaValue);
// Add id to read scada
alreadyReadScada.Add(schema.Id);
- }
+ }
}
-
+
return cmsError;
}
@@ -1025,6 +1060,78 @@ namespace Thermo.Active.NC
return NO_ERROR;
}
+ public CmsError ReadGaugeData(out ThermoModels.GaugeModel gaugeData)
+ {
+ gaugeData = new ThermoModels.GaugeModel();
+ CmsError cmsError = numericalControl.PLC_RGaugeData(ref gaugeData);
+
+ return cmsError;
+ }
+
+ public CmsError ReadRecipeData(bool refreshOnlyRT, out Dictionary currentRecipe)
+ {
+ // init obj
+ currentRecipe = new Dictionary();
+ RPRange currRange = new RPRange();
+ RPStatus currStatus = new RPStatus();
+ // solo x S7...
+ if (NcConfig.NcVendor == NC_VENDOR.S7NET)
+ {
+ Dictionary currPlcRecipe = new Dictionary();
+ CmsError cmsError = numericalControl.PLC_RRecipeParamList(refreshOnlyRT, ref currPlcRecipe);
+ if (cmsError.IsError())
+ return cmsError;
+ DTORecipeParam currParam = new DTORecipeParam();
+ // leggo l'intero array delle DB... QUI FAKE sulle DB configurate...
+ List recipeConfig = RecipeConfig.Select(x => new DTORecipeConfigModel()
+ {
+ Id = x.Id,
+ Category = x.Category.ToString(),
+ SubCategory_1 = x.SubCategory_1,
+ SubCategory_2 = x.SubCategory_2,
+ Name = x.Name,
+ Description = x.Description,
+ Format = x.Format,
+ Label = $"{x.Category}_{x.SubCategory_1}_{x.SubCategory_2}_{x.Name}".Replace("__", "_").Replace("__", "_").ToLower()
+ }).ToList();
+
+ foreach (var item in recipeConfig)
+ {
+ if (currPlcRecipe.ContainsKey(item.Id))
+ {
+ // recupero da mem PLC
+ var paramPLC = currPlcRecipe[item.Id];
+ currRange = new RPRange()
+ {
+ Min = paramPLC.ValMin,
+ Max = paramPLC.ValMax,
+ };
+ currStatus = new RPStatus()
+ {
+ Visible = paramPLC.Visible,
+ Enabled = paramPLC.Enabled,
+ HasError = paramPLC.HasError
+ };
+ // calcolo intero oggetto
+ currParam = new DTORecipeParam()
+ {
+ Range = currRange,
+ Status = currStatus,
+ UnitMeasure = "",
+ ValueAct = paramPLC.ValueAct
+ };
+ }
+ currentRecipe.Add(item.Label, currParam);
+ }
+ }
+ else
+ {
+ currentRecipe = new Dictionary();
+ }
+
+ return NO_ERROR;
+ }
+
public CmsError ReadNcScada(ScadaSchemaModel scadaSchema, out DTOScadaModel scadaValue)
{
//ReadScadaDataSiemens(scadaSchema, out scadaValue);
@@ -1049,7 +1156,7 @@ namespace Thermo.Active.NC
{
if (layer.Labels.ElementAtOrDefault(i) != null)
{
- if(layer.Labels[i].MemEnabledIndex != null)
+ if (layer.Labels[i].MemEnabledIndex != null)
{
// Read enabled from PLC
cmsError = numericalControl.PLC_RScadaValue(layer.Labels[i].MemEnabledIndex, SCADA_MEM_TYPE.BOOL, ref val);
@@ -1079,7 +1186,7 @@ namespace Thermo.Active.NC
return cmsError;
// Populate & add new object into scada model
- scadaValue.Buttons.Add(new DTOScadaButtonModel()
+ scadaValue.Buttons.Add(new DTOScadaButtonModel()
{
Id = layer.Buttons[i].Id,
IsEnabled = Convert.ToBoolean(val)
@@ -1100,7 +1207,7 @@ namespace Thermo.Active.NC
Id = layer.Images[i].Id,
IsVisible = negate ? !Convert.ToBoolean(val) : Convert.ToBoolean(val)
});
- }
+ }
if (layer.ProgressBars.ElementAtOrDefault(i) != null)
{
@@ -1141,7 +1248,7 @@ namespace Thermo.Active.NC
{
IsEnabled = false, //Convert.ToBoolean(val),
Value = val2
- }
+ }
});
}
else
@@ -1169,7 +1276,7 @@ namespace Thermo.Active.NC
});
}
}
-
+
}
}
@@ -1325,7 +1432,8 @@ namespace Thermo.Active.NC
Id = enabled.Id,
IsEnabled = Convert.ToBoolean(enabled.Value)
});
- } break;
+ }
+ break;
case (int)SCADA_ELEMENT_TYPE.IMAGE:
case (int)SCADA_ELEMENT_TYPE.NEGATE_IMAGE:
{
@@ -1333,9 +1441,10 @@ namespace Thermo.Active.NC
scadaValue.Images.Add(new DTOScadaImageModel()
{
Id = enabled.Id,
- IsVisible = enabled.ObjectType == (int)SCADA_ELEMENT_TYPE.NEGATE_IMAGE? !Convert.ToBoolean(enabled.Value) : Convert.ToBoolean(enabled.Value)
+ IsVisible = enabled.ObjectType == (int)SCADA_ELEMENT_TYPE.NEGATE_IMAGE ? !Convert.ToBoolean(enabled.Value) : Convert.ToBoolean(enabled.Value)
});
- } break;
+ }
+ break;
case (int)SCADA_ELEMENT_TYPE.LABEL:
{
// Populate & add new object into scada model
@@ -1344,23 +1453,24 @@ namespace Thermo.Active.NC
Id = enabled.Id,
IsVisible = Convert.ToBoolean(enabled.Value)
});
- } break;
- }
+ }
+ break;
+ }
}
for (int i = 0; i < inputData.Count() - 1; i += 2)
{
var obj = inputData[i];
var enabled = inputData[i + 1];
-
+
// Populate & add new object into scada model
scadaValue.Inputs.Add(new DTOScadaInputModel()
{
Id = obj.Id,
Value = new DTOScadaValueModel()
{
- IsEnabled = obj.Action.ToLower() == SCADA_ACTION.READ ? false : Convert.ToBoolean(enabled.Value),
- Value = obj.Value
+ IsEnabled = obj.Action.ToLower() == SCADA_ACTION.READ ? false : Convert.ToBoolean(enabled.Value),
+ Value = obj.Value
}
});
}
@@ -1371,6 +1481,146 @@ namespace Thermo.Active.NC
return cmsError;
}
+ ///
+ /// Legge tutti i parametri della ricetta
+ ///
+ /// Oggetto ricetta corrente HMI
+ ///
+ public CmsError ReadFullRecipe(out Dictionary currRecipe)
+ {
+ CmsError cmsError = NO_ERROR;
+ currRecipe = new Dictionary();
+
+ DTORecipeParam currParam = new DTORecipeParam();
+ RPRange currRange = new RPRange();
+ RPStatus currStatus = new RPStatus();
+
+ if (simData)
+ {
+ // leggo l'intero array delle DB... QUI FAKE sulle DB configurate...
+ List recipeConfig = RecipeConfig.Select(x => new DTORecipeConfigModel()
+ {
+ Id = x.Id,
+ Category = x.Category.ToString(),
+ SubCategory_1 = x.SubCategory_1,
+ SubCategory_2 = x.SubCategory_2,
+ Name = x.Name,
+ Description = x.Description,
+ Format = x.Format,
+ Label = $"{x.Category}_{x.SubCategory_1}_{x.SubCategory_2}_{x.Name}".Replace("__", "_").Replace("__", "_").ToLower()
+ }).ToList();
+
+ int minVal, maxVal, actVal;
+ Random rnd = new Random();
+ foreach (var item in recipeConfig)
+ {
+ // randomizzo valori...
+ minVal = rnd.Next(0, 10);
+ maxVal = rnd.Next(100, 200);
+ actVal = rnd.Next(minVal - 5, maxVal + 5);
+ currRange = new RPRange()
+ {
+ Min = minVal,
+ Max = maxVal,
+ };
+ currStatus = new RPStatus()
+ {
+ Visible = true,
+ Enabled = true,
+ HasError = (actVal < minVal || actVal > maxVal)
+ };
+ currParam = new DTORecipeParam()
+ {
+ Range = currRange,
+ Status = currStatus,
+ UnitMeasure = "",
+ ValueAct = actVal
+ };
+ currRecipe.Add(item.Label, currParam);
+ }
+ }
+ else
+ {
+ // gestione errore
+ cmsError = ReadRecipeData(false, out currRecipe);
+ if (cmsError.IsError())
+ return cmsError;
+ }
+
+ // restituisco cod errore se trovato
+ return cmsError;
+ }
+
+
+ ///
+ /// Legge tutti i parametri della ricetta e calcolo la overview dei vari steps
+ ///
+ /// Oggetto overview ricetta corrente HMI
+ ///
+ public CmsError GetRecipeOverview(out Dictionary currOverview)
+ {
+ CmsError cmsError = NO_ERROR;
+ currOverview = new Dictionary();
+
+ // !!!FARE davvero!!!
+#if false
+ // gestione errore
+ cmsError = ReadScadaData(schema, out currParam);
+ if (cmsError.IsError())
+ return cmsError;
+#endif
+
+ // calcolo!
+
+ // leggo l'intero array delle DB... QUI FAKE sulle DB configurate...
+ List recipeConfig = RecipeConfig.Select(x => new DTORecipeConfigModel()
+ {
+ Id = x.Id,
+ Category = x.Category.ToString(),
+ SubCategory_1 = x.SubCategory_1,
+ SubCategory_2 = x.SubCategory_2,
+ Name = x.Name,
+ Description = x.Description,
+ Format = x.Format,
+ Label = $"{x.Category}_{x.SubCategory_1}_{x.SubCategory_2}_{x.Name}".Replace("__", "_").Replace("__", "_").ToLower()
+ }).ToList();
+
+ RecipeCatStatus currStatus = RecipeCatStatus.Unchanged;
+ int countCat = 0;
+ foreach (var item in recipeConfig)
+ {
+ // ogni 20 incremento...
+ if (countCat < 20)
+ {
+ currStatus = RecipeCatStatus.Unchanged;
+ }
+ else if (countCat < 40)
+ {
+ currStatus = RecipeCatStatus.ChangedOk;
+ }
+ else
+ {
+ currStatus = RecipeCatStatus.HasError;
+ }
+ // se non c'è aggiungo
+ if (!currOverview.ContainsKey(item.Category))
+ {
+ currOverview.Add(item.Category, currStatus);
+ countCat = 0;
+ }
+ else
+ {
+ // se il valore è maggiore --> aggiorno
+ currOverview[item.Category] = (int)currStatus > (int)currOverview[item.Category] ? currStatus : currOverview[item.Category];
+ }
+ countCat++;
+ }
+
+ // restituisco cod errore se trovato
+ return cmsError;
+ }
+
+
#endregion Read Data
#region Write data
@@ -1443,7 +1693,7 @@ namespace Thermo.Active.NC
public CmsError SetActiveScreen(short screen)
{
// Set to true power on data by id
- return numericalControl.NC_SetScreenVisible((Nc.SCREEN_PAGE)screen);
+ return numericalControl.NC_SetScreenVisible((NcThermo.SCREEN_PAGE)screen);
}
public CmsError WriteM155Data(int process, double responseValue)
@@ -1462,7 +1712,7 @@ namespace Thermo.Active.NC
{
// Choose which list contains the maximum number of elements
int max = layer.Buttons.Count();
-
+
if (layer.Labels.Count() > max)
max = layer.Labels.Count();
@@ -1493,11 +1743,11 @@ namespace Thermo.Active.NC
SupportFunctions.ConvertStringMachineNumberIntoNumber(strMachNumber, out bool containsLetters, out int machNumber);
// Read Data from NC & elaborate it
- long NcCandy = 0;
+ long NcCandy = 0;
cmsError = numericalControl.PLC_RCandy(ref NcCandy);
if (cmsError.IsError())
return cmsError;
-
+
bool bNC_OK = CandiesController.GetDataFromLincense(NcCandy, containsLetters, out long NCLic, out int NCMatr, out long NCParam);
bool bNC_VALID = machNumber == NCMatr && bNC_OK;
@@ -1517,7 +1767,7 @@ namespace Thermo.Active.NC
return cmsError;
// Manage Expired Lincense Bit
- if(CandiesController.ElaborateExpiredBit(newDate, bNcCandy, out bool bNewCandy))
+ if (CandiesController.ElaborateExpiredBit(newDate, bNcCandy, out bool bNewCandy))
{
//Write Expired Lincense Bit on NC
cmsError = numericalControl.PLC_WExpiredCandy(bNewCandy);
@@ -1528,14 +1778,14 @@ namespace Thermo.Active.NC
return NO_ERROR;
}
- public void WriteCandy(DateTime value,int machNumber)
+ public void WriteCandy(DateTime value, int machNumber)
{
long nDays;
- long Lic=0;
+ long Lic = 0;
nDays = (value.Ticks / TimeSpan.TicksPerDay);
//Imposto nel registro
- CandiesController.SetPCLincense(machNumber,nDays);
+ CandiesController.SetPCLincense(machNumber, nDays);
//Imposto nel CN
Lic = long.Parse(CandiesController.SetLincenseFromData(machNumber, nDays));
diff --git a/Thermo.Active.NC/NcToolTableAdapter.cs b/Thermo.Active.NC/NcToolTableAdapter.cs
deleted file mode 100644
index 763b81bb..00000000
--- a/Thermo.Active.NC/NcToolTableAdapter.cs
+++ /dev/null
@@ -1,911 +0,0 @@
-using CMS_CORE_Library.Models;
-using Thermo.Active.Database.Controllers;
-using Thermo.Active.Model.DatabaseModels;
-using Thermo.Active.Model.DTOModels.ToolModels;
-using Thermo.Active.Utils;
-using System.Collections.Generic;
-using System.Data.Entity;
-using System.Linq;
-using static CMS_CORE_Library.Models.DataStructures;
-using static Thermo.Active.Config.ServerConfig;
-using static Thermo.Active.Model.Constants;
-
-namespace Thermo.Active.NC
-{
- public class NcToolTableAdapter : NcAdapter
- {
- public CmsError GetToolsData(out List dtoTools)
- {
- dtoTools = new List();
-
- CmsError cmsError = NO_ERROR;
-
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- List tools = toolsManager.FindToolsWithDependencies();
-
- foreach (DbNcToolModel tool in tools)
- {
- DTONcToolModel dtoTool = (DTONcToolModel)tool;
-
- cmsError = GetToolData(tool, ref dtoTool);
-
- dtoTools.Add(dtoTool);
- }
-
- return cmsError;
- }
- }
-
- public CmsError GetToolData(DbNcToolModel tool, ref DTONcToolModel dtoTool)
- {
- dtoTool = (DTONcToolModel)tool;
-
- OffsetModel offset = new OffsetModel();
- CmsError cmsError = NO_ERROR;
-
- if (tool.OffsetId1 != null && tool.OffsetId1 != 0)
- {
- // Read first offset data
- cmsError = numericalControl.TOOLS_ROffset((short)tool.OffsetId1, ref offset);
- if (cmsError.IsError())
- return cmsError;
-
- dtoTool.Offset1 = offset;
- }
- if (tool.OffsetId2 != null && tool.OffsetId2 != 0)
- {
- // Read second offset data
- cmsError = numericalControl.TOOLS_ROffset((short)tool.OffsetId2, ref offset);
- if (cmsError.IsError())
- return cmsError;
-
- dtoTool.Offset2 = offset;
- }
- if (tool.OffsetId3 != null && tool.OffsetId3 != 0)
- {
- // Read third offset data
- cmsError = numericalControl.TOOLS_ROffset((short)tool.OffsetId3, ref offset);
- if (cmsError.IsError())
- return cmsError;
-
- dtoTool.Offset3 = offset;
- }
-
- return cmsError;
- }
-
- public CmsError AddTool(DTONewNcToolModel tool, out DTONcToolModel dtoTool, short toolId)
- {
- dtoTool = new DTONcToolModel();
-
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- DbNcToolModel ncTool = toolsManager.AddTool(tool, toolId);
-
- if (!ToolManagerConfig.OffsetOpt)
- {
- CmsError cmsError = UpdateToolOffsetId(ncTool.ToolId, 1, ncTool.ToolId, out DTONcToolModel toolWithOffset);
- if (cmsError.IsError())
- return cmsError;
-
- ncTool.OffsetId1 = ncTool.ToolId;
- }
-
- GetToolData(ncTool, ref dtoTool);
-
- return NO_ERROR;
- }
- }
-
- public CmsError UpdateTool(int toolId, DTONewNcToolModel newTool, out DTONcToolModel toolWithOffsets, DTONewNcToolWithFamilyModel dtoToolWithFamily)
- {
- toolWithOffsets = new DTONcToolModel();
- CmsError cmsError = NO_ERROR;
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- using (var dbContextTransaction = toolsManager.dbCtx.Database.BeginTransaction())
- {
- // If family option is not active, update family data
- if (!ToolManagerConfig.FamilyOpt)
- {
- // Copy only family
- DTONewNcFamilyModel newFamily = new DTONewNcFamilyModel();
- SupportFunctions.CopyProperties(dtoToolWithFamily, newFamily);
- // Update only family data
- newFamily = (DTONcFamilyModel)toolsManager.UpdateFamily(dtoToolWithFamily.FamilyId, newFamily);
- }
-
- // Update database tool Tool
- DbNcToolModel dbTool = toolsManager.UpdateTool(toolId, newTool);
-
- // Populate updated tool with offset data
- cmsError = GetToolData(dbTool, ref toolWithOffsets);
- if (cmsError.IsError())
- {
- dbContextTransaction.Rollback();
- return cmsError;
- }
-
- bool startIsActive = false;
-
- // Check if tool is loaded into a shank
- if (dbTool.ShankId != null)
- {
- // Check if shank is loaded into magazine
- DbNcShankModel shank = toolsManager.FindShankWithTools(dbTool.ShankId.Value);
- if (shank.MagazineId != null)
- {
- startIsActive = true;
- // Create backup of data stored on the NC and block memory/files accesses
- cmsError = numericalControl.TOOLS_WStartEditData();
- if (cmsError.IsError())
- {
- ManageErrorAndTransaction(cmsError, dbContextTransaction, startIsActive);
- return cmsError;
- }
-
- // If family option is not active, update NC data
- //if (!ToolManagerConfig.FamilyOpt)
- //{
- // Update Nc families
- cmsError = UpdateNcFamily(toolsManager);
- if (cmsError.IsError())
- ManageErrorAndTransaction(cmsError, dbContextTransaction, true);
- //}
-
- // Update tool
- cmsError = UpdateNcTools(toolsManager);
- }
- }
-
- ManageErrorAndTransaction(cmsError, dbContextTransaction, startIsActive);
-
- return NO_ERROR;
- }
- }
- }
-
- public CmsError UpdateNcTools(NcToolManagerController toolsManager = null)
- {
- if (toolsManager == null)
- toolsManager = new NcToolManagerController();
-
- List shanks = toolsManager
- .FindShanks()
- .Where(x => x.MagazineId != null)
- .Select(x => (NcShankModel)x)
- .ToList();
-
- // Get tools
- List tools = toolsManager
- .FindTools()
- .Select(x => (NcToolModel)x)
- .Where(x => shanks.Any(y => y.ShankId == x.ShankId)) // Find only mounted tools
- .ToList();
-
- // Update tools
- return numericalControl.TOOLS_WUpdateTools(tools);
- }
-
- public CmsError UpdateOffset(short offsetId, OffsetModel offsetData)
- {
- return numericalControl.TOOLS_WOffset(offsetId, ref offsetData);
- }
-
- public CmsError UpdateToolOffsetId(int toolId, int positionId, short offsetId, out DTONcToolModel toolWithOffsets)
- {
- toolWithOffsets = new DTONcToolModel();
-
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- using (var dbContextTransaction = toolsManager.dbCtx.Database.BeginTransaction())
- {
- // Update database tool Tool
- DbNcToolModel dbTool = toolsManager.UpdateToolOffset(toolId, positionId, offsetId);
-
- // Populate updated tool with offset data
- CmsError cmsError = GetToolData(dbTool, ref toolWithOffsets);
- if (cmsError.IsError())
- {
- dbContextTransaction.Rollback();
- return cmsError;
- }
-
- bool startIsActive = false;
-
- // Check if tool is loaded into a shank
- if (dbTool.ShankId != null)
- {
- // Check if shank is loaded into magazine
- DbNcShankModel shank = toolsManager.FindShankWithTools(dbTool.ShankId.Value);
- if (shank.MagazineId != null)
- {
- startIsActive = true;
- // Create backup of data stored on the NC and block file accesses
- cmsError = numericalControl.TOOLS_WStartEditData();
- if (cmsError.IsError())
- {
- ManageErrorAndTransaction(cmsError, dbContextTransaction, startIsActive);
- return cmsError;
- }
-
- // R tool
- cmsError = UpdateNcTools(toolsManager);
- }
- }
-
- ManageErrorAndTransaction(cmsError, dbContextTransaction, startIsActive);
-
- return NO_ERROR;
- }
- }
- }
-
- public CmsError DeleteNcTool(DbNcToolModel tool)
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- using (var dbContextTransaction = toolsManager.dbCtx.Database.BeginTransaction())
- {
- if (!ToolManagerConfig.FamilyOpt)
- {
- DbNcFamilyModel fam = toolsManager.FindFamily(tool.FamilyId);
- // Check if family is connected to other tools
- if (fam != null && fam.Tools.Count() == 1)
- {
- toolsManager.DeleteFamily(fam.FamilyId);
- }
- }
-
- DbNcShankModel shank = null;
- if (!ToolManagerConfig.ShankOpt && tool.ShankId != null)
- {
- // If option is active find & delete tool shank
- shank = toolsManager.FindShankWithTools(tool.ShankId.Value);
-
- toolsManager.DeleteNcShank(shank.ShankId);
- }
-
- // Delete db tool
- toolsManager.DeleteTool(tool.ToolId);
-
- bool startIsActive = false;
- CmsError cmsError = NO_ERROR;
-
- if (tool.ShankId != null && shank != null)
- {
- if (shank.MagazineId != null)
- {
- startIsActive = true;
- // Create backup of data stored on the NC and block file accesses
- cmsError = numericalControl.TOOLS_WStartEditData();
- if (cmsError.IsError())
- {
- ManageErrorAndTransaction(cmsError, dbContextTransaction, startIsActive);
- return cmsError;
- }
-
- // Update Nc data
- cmsError = UpdateNcTools(toolsManager);
- }
- }
-
- ManageErrorAndTransaction(cmsError, dbContextTransaction, startIsActive);
-
- return cmsError;
- }
- }
- }
-
- public CmsError UpdateShank(int shankId, DTONewNcShankModel dtoShank, out DTONcShankModel shank)
- {
- shank = new DTONcShankModel();
-
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- using (var dbContextTransaction = toolsManager.dbCtx.Database.BeginTransaction())
- {
- bool startIsActive = false;
- CmsError cmsError = NO_ERROR;
-
- // Update db data
- shank = (DTONcShankModel)toolsManager.UpdateShank(shankId, dtoShank);
- if (shank.MagazineId != null)
- {
- startIsActive = true;
- // Create backup of data stored on the NC and block file accesses
- cmsError = numericalControl.TOOLS_WStartEditData();
- if (cmsError.IsError())
- {
- ManageErrorAndTransaction(cmsError, dbContextTransaction, startIsActive);
- return cmsError;
- }
-
- // Update nc data
- cmsError = UpdateNcShanks(toolsManager);
- }
-
- ManageErrorAndTransaction(cmsError, dbContextTransaction, startIsActive);
-
- return cmsError;
- }
- }
- }
-
- public CmsError DeleteNcShank(int shankId)
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- CmsError cmsError = NO_ERROR;
- using (var dbContextTransaction = toolsManager.dbCtx.Database.BeginTransaction())
- {
- // Delete database shank
- DbNcShankModel deletedShank = toolsManager.DeleteNcShank(shankId);
- bool startIsActive = false;
- if (deletedShank.MagazineId != null)
- {
- startIsActive = true;
- // Create backup of data stored on the NC and block file accesses
- cmsError = numericalControl.TOOLS_WStartEditData();
- if (cmsError.IsError())
- {
- ManageErrorAndTransaction(cmsError, dbContextTransaction, startIsActive);
- return cmsError;
- }
-
- // Update nc data
- cmsError = UpdateNcShanks(toolsManager);
- }
-
- ManageErrorAndTransaction(cmsError, dbContextTransaction, startIsActive);
-
- return cmsError;
- }
- }
- }
-
- private CmsError UpdateNcShanks(NcToolManagerController toolsManager)
- {
- // Get mounted shanks
- List shanks = toolsManager
- .FindShanks()
- .Where(x => x.MagazineId != null)
- .Select(x => (NcShankModel)x)
- .ToList();
-
- // Update nc data
- return numericalControl.TOOLS_WUpdateShanks(shanks);
- }
-
- public DTONcFamilyModel AddFamily(DTONcFamilyModel family)
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- return (DTONcFamilyModel)toolsManager.AddFamily(family);
- }
- }
-
- public CmsError UpdateFamily(int familyId, DTONewNcFamilyModel family, out DTONcFamilyModel newFamily)
- {
- newFamily = new DTONcFamilyModel();
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- using (var dbContextTransaction = toolsManager.dbCtx.Database.BeginTransaction())
- {
- // Update db family
- newFamily = (DTONcFamilyModel)toolsManager.UpdateFamily(familyId, family);
-
- // Create backup of data stored on the NC and block file accesses
- CmsError cmsError = numericalControl.TOOLS_WStartEditData();
- if (cmsError.IsError())
- {
- ManageErrorAndTransaction(cmsError, dbContextTransaction, true);
- return cmsError;
- }
-
- // Update Nc families
- cmsError = UpdateNcFamily(toolsManager);
-
- ManageErrorAndTransaction(cmsError, dbContextTransaction, true);
-
- return cmsError;
- }
- }
- }
-
- public CmsError DeleteNcFamily(int famId)
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- using (var dbContextTransaction = toolsManager.dbCtx.Database.BeginTransaction())
- {
- // Create backup of data stored on the NC and block file accesses
- CmsError cmsError = numericalControl.TOOLS_WStartEditData();
- if (cmsError.IsError())
- return cmsError;
-
- // Check if shank opt is disabled
- if (!ToolManagerConfig.ShankOpt)
- {
- // If the relationship is 1:1 (tool:shank) i have to remove shanks manually
- // Tools are deleted thanks to foreign keys constraint
- List shanks = toolsManager.FindShanksByFamilyId(famId);
- foreach (var shank in shanks)
- {
- if (shank != null)
- toolsManager.DeleteNcShank(shank.ShankId);
- }
- }
-
- toolsManager.DeleteFamily(famId);
-
- // Update Nc families
- cmsError = UpdateNcFamily(toolsManager);
-
- ManageErrorAndTransaction(cmsError, dbContextTransaction, true);
-
- return cmsError;
- }
- }
- }
-
- private CmsError UpdateNcFamily(NcToolManagerController toolsManager)
- {
- // Get mounted shanks
- List shanks = toolsManager
- .FindShanks()
- .Where(x => x.MagazineId != null)
- .Select(x => (NcShankModel)x)
- .ToList();
-
- // Get tools
- List tools = toolsManager
- .FindTools()
- .Select(x => (NcToolModel)x)
- .Where(x => shanks.Any(y => y.ShankId == x.ShankId)) // Find only mounted tools
- .ToList();
-
- List families = toolsManager
- .FindFamilies()
- .Select(x => (NcFamilyModel)x)
- .Where(x => tools.Any(y => y.FamilyId == x.FamilyId)) // Find only families of mounted tools
- .ToList();
-
- // Update nc families
- return numericalControl.TOOLS_WUpdateFamilies(families);
- }
-
- public CmsError UpdateMagazinePosition(DbNcMagazinePositionModel dbPos, DTONcMagazinePositionModel dtoPos, out DTONcMagazinePositionModel magPos)
- {
- magPos = new DTONcMagazinePositionModel();
-
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- using (DbContextTransaction dbContextTransaction = toolsManager.dbCtx.Database.BeginTransaction())
- {
- // Create backup of data stored on the NC and block file accesses
- CmsError cmsError = StartEditData();
- if (cmsError.IsError())
- {
- ManageErrorAndTransaction(cmsError, dbContextTransaction, true);
- return cmsError;
- }
-
- // Update database data
- magPos = (DTONcMagazinePositionModel)toolsManager.UpdatePosition(dbPos, dtoPos);
-
- // Get magazines positions
- List positions = toolsManager.FindMagazinesPositions()
- .Select(x => (NcMagazinePositionModel)x)
- .ToList();
- // Update Nc data
- cmsError = numericalControl.TOOLS_WUpdateMagazinePositions(positions);
-
- ManageErrorAndTransaction(cmsError, dbContextTransaction, true);
-
- return cmsError;
- }
- }
- }
-
- private void ManageErrorAndTransaction(CmsError cmsError, DbContextTransaction dbContextTransaction, bool ncStartIsActive)
- {
- // Check cmsError, manage transaction and if startIsActive = true manage Nc backup created with TOOLS_WStartEditData()
- if (cmsError.IsError())
- {
- // Close transaction
- dbContextTransaction.Rollback();
- // Restore backup
- if (ncStartIsActive)
- numericalControl.TOOLS_WRestoreBackup();
- }
- else
- {
- // Close transaction
- dbContextTransaction.Commit();
- // Stop editing ncData
- if (ncStartIsActive)
- numericalControl.TOOLS_WStopEditData();
- }
- }
-
- public DTONcShankModel LoadIntoShank(DbNcToolModel tool, short shankId)
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- return toolsManager.LoadToolIntoShank(tool, shankId);
- }
- }
-
- public DTONcShankModel UnloadFromShank(DbNcToolModel tool)
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- return toolsManager.UnloadToolFromShank(tool);
- }
- }
-
- public CmsError SetupNcToolManager()
- {
- CmsError cmsError = UpdateMagazinePositionConf(out bool newDb);
- if (cmsError.IsError())
- return cmsError;
-
- cmsError = WriteOption();
- if (cmsError.IsError())
- return cmsError;
-
- using (NcToolManagerController toolManager = new NcToolManagerController())
- {
- // If database was empty read data from NC and update database
- if (newDb)
- {
- List tools = new List();
- List families = new List();
- List shanks = new List();
-
- // Read data from Nc memory
- cmsError = numericalControl.TOOLS_RStoredData(ref tools, ref families, ref shanks);
- if (cmsError.IsError())
- return cmsError;
-
- // Check if there are data
- if (tools.Count() > 0 || families.Count() > 0 || shanks.Count() > 0)
- {
- // Populate import object
- DTOExportToolTableModel exp = new DTOExportToolTableModel()
- {
- Tools = tools.Select(x => (DbNcToolModel)x).ToList(),
- Families = families.Select(x =>
- {
- var fam = (DbNcFamilyModel)x;
- fam.Name = "Fam" + fam.FamilyId.ToString();
- return fam;
- }).ToList(),
- Shanks = shanks.Select(x => (DbNcShankModel)x).ToList()
- };
-
- // Import
- toolManager.ImportData(exp);
- }
- }
-
- List databaseTool = toolManager.GetTools();
- bool exist = false;
- if (databaseTool != null && databaseTool.Count() > 0)
- // Check options consistency with database data
- exist = databaseTool.Exists(x =>
- (!ToolManagerConfig.FamilyOpt && x.FamilyId != x.Id) || // Check family
- (!ToolManagerConfig.ShankOpt && x.ShankId != x.Id) || // Check shanks
- (!ToolManagerConfig.OffsetOpt && x.OffsetId1 != x.Id && x.OffsetId2 != null && x.OffsetId3 != null) // Check offsets
- );
-
- if (exist)
- return OPTION_NOT_CONSISTENT_ERROR;
-
- // Check if there are blocked magazines, and release them
- cmsError = RestoreTableLock();
- if (cmsError.IsError())
- return cmsError;
-
- }
-
- return NO_ERROR;
- }
-
- public CmsError UpdateMagazinePositionConf(out bool newDb)
- {
- newDb = false;
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Get database configured positions
- List dbPositions = toolsManager.FindMagazinesPositions();
- if (dbPositions.Count <= 0)
- {
- // THe software is using a new database
- newDb = true;
-
- CmsError cmsError = GetMagazineConfiguration(out List config);
- if (cmsError.IsError())
- return cmsError;
-
- // Setup new positions list in order to be saved in the database
- List fromConfigPosition = new List();
- foreach (var conf in config)
- {
- for (byte i = 1; i <= conf.MaxPositions; i++)
- {
- // Create new position
- fromConfigPosition.Add(new DbNcMagazinePositionModel()
- {
- MagazineId = conf.Id,
- PositionId = i,
- Disabled = false,
- Type = 0
- });
- }
- }
-
- // Update database
- toolsManager.SetupMagazinePositions(fromConfigPosition);
-
- return cmsError;
- }
-
- return NO_ERROR;
- }
- }
-
- public CmsError WriteOption()
- {
- ToolManagerOptionsModel options = new ToolManagerOptionsModel();
- SupportFunctions.CopyProperties(ToolManagerConfig, options);
-
- return numericalControl.TOOLS_WOptions(options);
- }
-
- public CmsError GetMagazineConfiguration(out List config)
- {
- config = new List();
- // Read configuration
- return numericalControl.TOOLS_RMagazineConfig(ref config);
- }
-
- public CmsError StartEditData()
- {
- return numericalControl.TOOLS_WStartEditData();
- }
-
- public CmsError StopEditData()
- {
- return numericalControl.TOOLS_WStopEditData();
- }
-
- public CmsError StartEditTooling(int magazineId)
- {
- return numericalControl.TOOLS_WStartEditTooling(magazineId);
- }
-
- public CmsError StopEditTooling(int magazineId)
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Get mounted shanks
- List shanks = toolsManager
- .FindShanks()
- .Where(x => x.MagazineId != null)
- .Select(x => (NcShankModel)x)
- .ToList();
- // Update shanks
- CmsError cmsError = numericalControl.TOOLS_WUpdateShanks(shanks);
- if (cmsError.IsError())
- return cmsError;
-
- // Get magazine positions
- List positions = toolsManager.FindMagazinesPositions()
- .Select(x => (NcMagazinePositionModel)x)
- .ToList();
- // Update positions
- cmsError = numericalControl.TOOLS_WUpdateMagazinePositions(positions);
- if (cmsError.IsError())
- return cmsError;
-
- // Get tools
- List tools = toolsManager
- .FindTools()
- .Select(x => (NcToolModel)x)
- .Where(x => shanks.Any(y => y.ShankId == x.ShankId)) // Find only mounted tools
- .ToList();
-
- // Update tools
- cmsError = numericalControl.TOOLS_WUpdateTools(tools);
- if (cmsError.IsError())
- return cmsError;
-
- // Get families
- List families = toolsManager
- .FindFamilies()
- .Select(x => (NcFamilyModel)x)
- .Where(x => tools.Any(y => y.FamilyId == x.FamilyId)) // Find only families of mounted tools
- .ToList();
-
- // Update families
- cmsError = numericalControl.TOOLS_WUpdateFamilies(families);
- if (cmsError.IsError())
- return cmsError;
- }
-
- return numericalControl.TOOLS_WStopEditTooling(magazineId);
- }
-
- public CmsError GetUpdatedToolsData(out Dictionary updatedStatus, out Dictionary updatedLives)
- {
- updatedStatus = new Dictionary();
- updatedLives = new Dictionary();
- return numericalControl.TOOLS_RUpdatedToolsData(ref updatedStatus, ref updatedLives);
- }
-
- public CmsError CheckIfShankCanFit(int magazineId, int positionId, DbNcShankModel shankToBeLoaded)
- {
- CmsError cmsError = GetMagazineConfiguration(out List magazinesConfig);
- if (cmsError.IsError())
- return cmsError;
-
- NcMagazineConfigModel magConfig = magazinesConfig.FirstOrDefault(x => x.Id == magazineId);// Get only current magazine config
- if (magConfig == null)
- return INCORRECT_PARAMETERS_ERROR;
-
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- List magazineMountedTools = toolsManager.GetMountedTools();
-
- // Check if there is a tool already mounted the selected position (magazineId, positionId)
- var toolAlreadyMounted = magazineMountedTools.FirstOrDefault(x => x.Shank.MagazineId == magazineId && x.Shank.PositionId == positionId);
- if (toolAlreadyMounted != null)
- return MAGAZINE_POSITION_OCCUPIED_ERROR;
-
- // Get shank occupied space
- toolsManager.GetShankMaxSpaceOccupied(shankToBeLoaded.ShankId, out int maxRight, out int maxLeft);
-
- // Check if tool can fit in the position considering other tools
- foreach (var mountedTool in magazineMountedTools)
- {
- // Check if is not the same position && if is different check if the position is on the same magazine
- if (mountedTool.Shank.PositionId != positionId && mountedTool.Shank.MagazineId == magazineId)
- {
- int decPosition, incPosition;
- decPosition = incPosition = mountedTool.Shank.PositionId.Value;
- // if it is a circular magazine move position before ( for left case ) or after ( right case ) the location you want to mount the tool
- if (magConfig.Type != NC_MAGAZINE_TYPE.BOX_MAGAZINE)
- {
- decPosition = decPosition < positionId ? decPosition + magConfig.MaxPositions : decPosition;
- incPosition = incPosition > positionId ? incPosition - magConfig.MaxPositions : incPosition;
- }
-
- // Right check
- if (positionId < decPosition)
- {
- if (!(magConfig.Type == NC_MAGAZINE_TYPE.BOX_MAGAZINE && mountedTool.Shank.PositionId == 1))
- {
- // Calculate left space occupied (with mounted shank)
- double leftMounted = decPosition - (mountedTool.Family.LeftSize / 2.0);
- // Calculate right space needed (with shank to be loaded)
- double rightToBeMount = positionId + (maxRight / 2.0);
- if (leftMounted < rightToBeMount)
- return MAGAZINE_POSITION_OCCUPIED_ERROR;
- }
- }
-
- // Left check
- if (positionId > incPosition)
- {
- if (!(magConfig.Type == NC_MAGAZINE_TYPE.BOX_MAGAZINE && mountedTool.Shank.PositionId == magConfig.MaxPositions))
- {
- // Calculate right space occupied (with mounted shank)
- double rightMounted = incPosition + (mountedTool.Family.RightSize / 2.0);
- // Calculate left space needed (with shank to be loaded)
- double leftToBeMounted = positionId - (maxLeft / 2.0);
- if (rightMounted > leftToBeMounted)
- return MAGAZINE_POSITION_OCCUPIED_ERROR;
- }
- }
- }
- }
- }
-
- return NO_ERROR;
- }
-
- public CmsError GetNcMagazineStatus(out Dictionary status)
- {
- status = new Dictionary();
- return numericalControl.TOOLS_RMagazineStatus(ref status);
- }
-
- public CmsError StartAssistedToolingProcedure(ushort toolId, ushort familyId, ushort shankId, ushort magazineId, ushort positionId, ASSISTED_TOOLING_ACTION action)
- {
- return numericalControl.PLC_WAssistedToolingCmd(toolId, familyId, shankId, magazineId, positionId, action);
- }
-
- public CmsError ReadAssistedToolingProcedure(out DTOAssistedToolingEndValueModel data)
- {
- data = new DTOAssistedToolingEndValueModel();
- AssistedToolingModel tmpData = new AssistedToolingModel();
- CmsError cmsError = numericalControl.PLC_RAssistedToolingData(ref tmpData);
- if (cmsError.IsError())
- return cmsError;
-
- data = new DTOAssistedToolingEndValueModel(tmpData);
-
- return cmsError;
- }
-
- public CmsError TerminateAssistedProcedure(int magazineId, bool writeData)
- {
- if (writeData)
- {
- CmsError cmsError = StartEditTooling(magazineId);
- if (!cmsError.IsError())
- {
- // Write tool table new data
- cmsError = StopEditTooling(magazineId);
- if (!cmsError.IsError())
- {
- // Close procedure
- return numericalControl.PLC_WTerminateAssistedToolingProcedure();
- }
- }
- return cmsError;
- }
- else
- {
- return numericalControl.PLC_WTerminateAssistedToolingProcedure();
- }
- }
-
- public CmsError GetSelfAdaptiveStep(out DTOSelfAdaptiveModel step)
- {
- step = new DTOSelfAdaptiveModel();
- byte intStep = 0;
-
- //Get the value
- CmsError cmsError = numericalControl.TOOLS_RAdatpivePathStep(ref intStep);
- step.Step = intStep;
- return cmsError;
- }
-
- public CmsError SetSelfAdaptiveStep(DTOSelfAdaptiveModel step)
- {
- //Limit Value
- if (step.Step > 100)
- step.Step = 100;
- if (step.Step < 0)
- step.Step = 0;
-
- //Set the value
- return numericalControl.TOOLS_WAdatpivePathStep(step.Step);
- }
-
- public CmsError RestoreTableLock()
- {
- List ids = new List();
- // check if there are magazines blocked by Active previously
- CmsError cmsError = numericalControl.TOOLS_RMagazineBlock(ref ids);
- if (cmsError.IsError())
- return cmsError;
-
- if (ids.Count() > 0)
- {
- // Update tables
- cmsError = StopEditTooling(ids.FirstOrDefault());
- if (cmsError.IsError())
- return cmsError;
- // Free magazines
- return numericalControl.TOOLS_WFreeMagazines();
- }
-
- return NO_ERROR;
- }
- }
-}
\ No newline at end of file
diff --git a/Thermo.Active.NC/Properties/AssemblyInfo.cs b/Thermo.Active.NC/Properties/AssemblyInfo.cs
index 434975d4..846fbf6b 100644
--- a/Thermo.Active.NC/Properties/AssemblyInfo.cs
+++ b/Thermo.Active.NC/Properties/AssemblyInfo.cs
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// Le informazioni generali relative a un assembly sono controllate dal seguente
// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
// associate a un assembly.
-[assembly: AssemblyTitle("Step.NC")]
+[assembly: AssemblyTitle("Thermo.Active.NC")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Step.NC")]
+[assembly: AssemblyProduct("Thermo.Active.NC")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/Thermo.Active.NC/SiemensToolTableAdapter.cs b/Thermo.Active.NC/SiemensToolTableAdapter.cs
deleted file mode 100644
index 4e3cc91c..00000000
--- a/Thermo.Active.NC/SiemensToolTableAdapter.cs
+++ /dev/null
@@ -1,272 +0,0 @@
-using CMS_CORE_Library.Models;
-using Thermo.Active.Model.DTOModels.ToolModels;
-using System.Collections.Generic;
-using System.Linq;
-using static Thermo.Active.Config.ServerConfig;
-using static Thermo.Active.Model.Constants;
-
-namespace Thermo.Active.NC
-{
- public class SiemensToolTableAdapter : NcAdapter
- {
- public CmsError GetToolTableConfiguration(out ToolTableConfiguration config)
- {
- config = new ToolTableConfiguration();
- CmsError cmsError = numericalControl.TOOLS_RConfiguration(ref config);
- if (cmsError.IsError())
- return cmsError;
-
- // Set magazine assisted tooling from config
- foreach (var magConfig in ToolManagerConfig.MagazineNames)
- {
- var mag = config.Magazines.FirstOrDefault(x => magConfig.MagazineId == x.Id);
- if (mag != null)
- mag.AssistedToolingIsActive = magConfig.AssistedTooling;
- }
-
- config.RadiusMetricType = (ToolManagerConfig.ToolMetricType == RADIUS_METRIC);
-
- config.SelfAdaptivePathOptionActive = true;
- if (!ToolManagerConfig.SelfAdaptivePathOpt)
- config.SelfAdaptivePathOptionActive = false;
-
- if (NcConfig.NcVendor != NC_VENDOR.SIEMENS && NcConfig.NcVendor != NC_VENDOR.DEMO)
- {
- // Setup options
- config.FamilyOptionActive = true;
- config.MultitoolOptionActive = true;
- config.OffsetOptionActive = true;
- config.LifeOption = true;
-
- // Add categories to be removed
- List categories = new List();
- if (!ToolManagerConfig.ShankOpt)
- {
- config.MultitoolOptionActive = false;
- categories.Add("shankType");
- config.ToolsConfiguration = config.ToolsConfiguration.Where(x => !(x.Name == "shankId")).ToList();
- }
-
- if (!ToolManagerConfig.FamilyOpt)
- {
- config.FamilyOptionActive = false;
- categories.Add("family");
- config.ToolsConfiguration = config.ToolsConfiguration.Where(x => !(x.Name == "familyId")).ToList();
- config.ToolsConfiguration = config.FamiliesConfiguration.FamilyConfiguration.Concat(config.ToolsConfiguration).ToList();
- }
-
- if (!ToolManagerConfig.OffsetOpt)
- config.OffsetOptionActive = false;
-
- categories.Add("offset");
-
- if (!ToolManagerConfig.TcpOpt)
- categories.Add("tcp");
-
- if (!ToolManagerConfig.CoolingOpt)
- categories.Add("cooling");
-
- if (!ToolManagerConfig.DynamicCompensationOpt)
- categories.Add("dynamicCompensation");
-
- if (!ToolManagerConfig.GammaOpt)
- categories.Add("gamma");
-
- if (!ToolManagerConfig.LifeOpt)
- {
- categories.Add("life");
- config.LifeOption = false;
- }
-
- if (!ToolManagerConfig.MagPosTypeOpt)
- categories.Add("magPos");
-
- if (!ToolManagerConfig.MultidimensionalShankOpt)
- categories.Add("shankOpt");
-
- if (!ToolManagerConfig.SelfAdaptivePathOpt)
- categories.Add("selfAdaptive");
-
- if (!ToolManagerConfig.BallufOpt)
- categories.Add("balluf");
-
- if (!ToolManagerConfig.ReviveOpt)
- categories.Add("revive");
-
- if (!ToolManagerConfig.IntegrityCheckOpt)
- categories.Add("integrityCheck");
-
- // Remove category from configurations
- config.ToolsConfiguration = config.ToolsConfiguration.Where(x => !categories.Contains(x.Category) && !categories.Contains(x.SubCategory)).ToList();
-
- // Remove categories from familyConfig
- config.FamiliesConfiguration.FamilyConfiguration = config.FamiliesConfiguration.FamilyConfiguration.Where(x => !categories.Contains(x.Category)).ToList();
- // Remove also SUBCATEGORIES because "ReadOnlyFamily" configuration has category field not populated
- config.FamiliesConfiguration.FamilyReadOnlyConfiguration = config.FamiliesConfiguration.FamilyReadOnlyConfiguration.Where(x => !categories.Contains(x.SubCategory)).ToList();
-
- config.ShanksConfiguration.ShankConfiguration = config.ShanksConfiguration.ShankConfiguration.Where(x => !categories.Contains(x.Category)).ToList();
- config.MagazinePosConfiguration = config.MagazinePosConfiguration.Where(x => !categories.Contains(x.Category)).ToList();
-
- // Update tool types list
- config.FamiliesConfiguration.FamilyConfiguration.Where(x => x.Name == "toolType").FirstOrDefault().SelectValues = GetToolTypeList();
- }
- else if (NcConfig.NcVendor == NC_VENDOR.SIEMENS) // IF == SIEMENS
- {
- // Update Tool types list
- config.ToolsConfiguration.Where(x => x.Name == "toolTypeCode").FirstOrDefault().SelectValues = GetToolTypeList();
- }
-
- return cmsError;
- }
-
- private Dictionary GetToolTypeList()
- {
- return ToolManagerConfig
- .ToolTypes.Where(x => !x.Disabled)
- .ToDictionary(x => x.Id, x => x.Id.ToString());
- }
-
- public CmsError GetToolTableData(out List config)
- {
- config = new List();
- return numericalControl.TOOLS_RToolsData(ref config);
- }
-
- public CmsError GetShanksData(out List shanks)
- {
- shanks = new List();
- return numericalControl.TOOLS_RShanksData(ref shanks);
- }
-
- public CmsError GetFamiliesData(out List families)
- {
- families = new List();
- return numericalControl.TOOLS_RFamilyData(ref families);
- }
-
- public CmsError GetMagazinesPositionsData(out List magazinesPositions)
- {
- magazinesPositions = new List();
- return numericalControl.TOOLS_RMagazinePositions(ref magazinesPositions);
- }
-
- public CmsError GetMagazineStatus(out DTOMagazineActionModel magazineStatus)
- {
- // Set up models
- magazineStatus = new DTOMagazineActionModel();
- MagazineActionModel libModel = new MagazineActionModel();
- // Read status from NC
- CmsError cmsError = numericalControl.TOOLS_RMagazineAction(ref libModel);
- if (cmsError.IsError())
- return cmsError;
-
- magazineStatus = (DTOMagazineActionModel)libModel;
-
- return cmsError;
- }
-
- public CmsError AddTool(ref SiemensToolModel tool)
- {
- return numericalControl.TOOLS_WAddTool(ref tool);
- }
-
- public CmsError UpdateTool(ref SiemensToolModel tool)
- {
- return numericalControl.TOOLS_WUpdateTool(ref tool);
- }
-
- public CmsError AddFamily(string name, out FamilyModel family)
- {
- family = new FamilyModel()
- {
- Name = name
- };
-
- return numericalControl.TOOLS_WAddFamily(ref family);
- }
-
- public CmsError AddShank(ref ShankModel shank)
- {
- return numericalControl.TOOLS_WAddShank(ref shank);
- }
-
- public CmsError UpdateShank(ref ShankModel shank)
- {
- return numericalControl.TOOLS_WUpdateShank(ref shank);
- }
-
- public CmsError UpdateFamilyName(string oldName, string newName)
- {
- return numericalControl.TOOLS_WUpdateFamilyData(oldName, newName);
- }
-
- public CmsError UpdateMagazinePosition(PositionModel magazinePosition)
- {
- return numericalControl.TOOLS_WUpdatePosition(magazinePosition);
- }
-
- public CmsError DeleteTool(int id)
- {
- return numericalControl.TOOLS_WDeleteTool(id);
- }
-
- public CmsError DeleteShank(int id)
- {
- return numericalControl.TOOLS_WDeleteShank(id);
- }
-
- public CmsError DeleteFamily(string name)
- {
- return numericalControl.TOOLS_WDeleteFamily(name);
- }
-
- public CmsError AddEdge(int toolId, ref EdgeModel edge)
- {
- return numericalControl.TOOLS_WAddEdge(toolId, ref edge);
- }
-
- public CmsError UpdateEdge(int toolId, ref EdgeModel edge)
- {
- return numericalControl.TOOLS_WUpdateEdge(toolId, ref edge);
- }
-
- public CmsError DeleteEdge(int toolId, int edgeId)
- {
- return numericalControl.TOOLS_WDeleteEdge(toolId, edgeId);
- }
-
- public CmsError GetMagazinePositionsAndTools(int magazineId, out List magazinePos)
- {
- magazinePos = new List();
- return numericalControl.TOOLS_RMountedTools(magazineId, ref magazinePos);
- }
-
- public CmsError GetNotInMagazinesTools(out List multiTools, out List tools)
- {
- multiTools = new List();
- tools = new List();
- return numericalControl.TOOLS_RAvailableTools(ref multiTools, ref tools);
- }
-
- public CmsError LoadToolInMagazine(int magazineId, NewToolInMagazineModel newMag, out MountedToolModel mounted)
- {
- mounted = new MountedToolModel();
- return numericalControl.TOOLS_WLoadToolInMagazine(magazineId, newMag, ref mounted);
- }
-
- public CmsError UnloadToolInMagazine(int magazineId, int positionId)
- {
- return numericalControl.TOOLS_WUnloadToolFromMagazine(magazineId, positionId);
- }
-
- public CmsError LoadTooolIntoShank(int shankId, int positionId, int toolId)
- {
- return numericalControl.TOOLS_WLoadToolIntoShank(shankId, positionId, toolId);
- }
-
- public CmsError UnloadTooolFromShank(int shankId, int positionId)
- {
- return numericalControl.TOOLS_WUnloadToolFromShank(shankId, positionId);
- }
- }
-}
\ No newline at end of file
diff --git a/Thermo.Active.NC/Thermo.Active.NC.csproj b/Thermo.Active.NC/Thermo.Active.NC.csproj
index 6403ab16..58647d15 100644
--- a/Thermo.Active.NC/Thermo.Active.NC.csproj
+++ b/Thermo.Active.NC/Thermo.Active.NC.csproj
@@ -32,10 +32,6 @@
4
-
- False
- ..\Libs\CMS_CORE_Library.dll
-
@@ -49,9 +45,7 @@
-
-
@@ -72,6 +66,10 @@
+
+ {4abf8eef-2b23-483e-acdc-53214fe28681}
+ CMS_CORE_Library
+
{3f5c2483-fc87-43ef-92a8-66ff7d0e440f}
Thermo.Active.Config
diff --git a/Thermo.Active.UI/Thermo.Active.UI.csproj b/Thermo.Active.UI/Thermo.Active.UI.csproj
index 2d2d420a..003f6231 100644
--- a/Thermo.Active.UI/Thermo.Active.UI.csproj
+++ b/Thermo.Active.UI/Thermo.Active.UI.csproj
@@ -34,10 +34,6 @@
Resources\CMS_Icon.ico
-
- False
- ..\Libs\CMS_CORE_Library.dll
-
@@ -139,6 +135,10 @@
+
+ {4abf8eef-2b23-483e-acdc-53214fe28681}
+ CMS_CORE_Library
+
{3f5c2483-fc87-43ef-92a8-66ff7d0e440f}
Thermo.Active.Config
diff --git a/Thermo.Active.Utils/Properties/AssemblyInfo.cs b/Thermo.Active.Utils/Properties/AssemblyInfo.cs
index 6346de32..a54242da 100644
--- a/Thermo.Active.Utils/Properties/AssemblyInfo.cs
+++ b/Thermo.Active.Utils/Properties/AssemblyInfo.cs
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// Le informazioni generali relative a un assembly sono controllate dal seguente
// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
// associate a un assembly.
-[assembly: AssemblyTitle("Step.Utils")]
+[assembly: AssemblyTitle("Thermo.Active.Utils")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Step.Utils")]
+[assembly: AssemblyProduct("Thermo.Active.Utils")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/Thermo.Active.Utils/Thermo.Active.Utils.csproj b/Thermo.Active.Utils/Thermo.Active.Utils.csproj
index f31dbe64..84d52738 100644
--- a/Thermo.Active.Utils/Thermo.Active.Utils.csproj
+++ b/Thermo.Active.Utils/Thermo.Active.Utils.csproj
@@ -32,10 +32,6 @@
4
-
- False
- ..\Libs\CMS_CORE_Library.dll
-
..\packages\MySql.Data.6.10.4\lib\net452\MySql.Data.dll
@@ -146,6 +142,10 @@
+
+ {4abf8eef-2b23-483e-acdc-53214fe28681}
+ CMS_CORE_Library
+
{631375DD-06D3-49BB-8130-D9DDB34C429D}
Thermo.Active.Model
diff --git a/Thermo.Active.Utils/supportFunctions.cs b/Thermo.Active.Utils/supportFunctions.cs
index bf12feed..269cd3f8 100644
--- a/Thermo.Active.Utils/supportFunctions.cs
+++ b/Thermo.Active.Utils/supportFunctions.cs
@@ -20,7 +20,7 @@ namespace Thermo.Active.Utils
{
private static readonly string CMSCONNECT_TOKEN = "59f1qik5PYfiJLiXZ4xZ05pjzx5E9FscQWtj4lmfLKXaF1OAxkvu7ziBzXFBuuVQ";
- public static SOFTKEY_TYPE GetSoftKeyType(string type)
+ public static SOFTKEY_TYPE GetSoftKeyType(string type)
{
switch (type)
{
@@ -40,6 +40,17 @@ namespace Thermo.Active.Utils
}
}
+ public static TACT_PARAM_TYPE GetTActCategory(string strCategory)
+ {
+ TACT_PARAM_TYPE answ = TACT_PARAM_TYPE.ND;
+ try
+ {
+ answ = (TACT_PARAM_TYPE)Enum.Parse(typeof(TACT_PARAM_TYPE), strCategory);
+ }
+ catch { }
+ return answ;
+ }
+
public static int GetPlcIdFromNcSoftKey(string softKey)
{
switch (softKey)
@@ -72,7 +83,7 @@ namespace Thermo.Active.Utils
case "xTen": return 26;
case "xHundred": return 27;
case "xThousand": return 28;
- case "overstroke": return 30;
+ case "overstroke": return 30;
case "feedByPass": return 31;
default: return -1;
}
@@ -153,7 +164,7 @@ namespace Thermo.Active.Utils
List listOfPossibleIds = Enumerable.Range(1, objIds.Max() + 1).Select(x => (short)x).ToList();
- IEnumerable res = listOfPossibleIds.Except(objIds).ToList();
+ IEnumerable res = listOfPossibleIds.Except(objIds).ToList();
if (res.Count() > 0)
return res.First();
@@ -162,7 +173,7 @@ namespace Thermo.Active.Utils
}
public static string GetImageBase64String(string directoryPath, string imageName)
- {
+ {
string fileName = Path.GetFileNameWithoutExtension(imageName);
foreach (string ext in VALID_IMAGE_EXTENSIONS)
{
@@ -199,7 +210,7 @@ namespace Thermo.Active.Utils
return null;
EmptyFolder(jobFolderPath);
-
+
using (ZipArchive zipExtractor = ZipFile.OpenRead(filePath))
{
// Setup main job fields
@@ -249,7 +260,6 @@ namespace Thermo.Active.Utils
{
job.Metadata.Generics.Description = metasFromFile.Description;
job.Metadata.Generics.ExecutionTime = metasFromFile.ExecutionTime;
- job.Metadata.Tools = metasFromFile.Tools;
job.Metadata.Customs = metasFromFile.Customs;
}
}
@@ -308,7 +318,7 @@ namespace Thermo.Active.Utils
string filePath = JOB_TMP_DIRECTORY + "\\" + processId + "\\";
if (!Directory.Exists(filePath))
return null;
-
+
// Setup main Fields
DTOJobModel jobData = new DTOJobModel()
{
@@ -349,7 +359,6 @@ namespace Thermo.Active.Utils
{
jobData.Metadata.Generics.Description = metasFromFile.Description;
jobData.Metadata.Generics.ExecutionTime = metasFromFile.ExecutionTime;
- jobData.Metadata.Tools = metasFromFile.Tools;
jobData.Metadata.Customs = metasFromFile.Customs;
}
}
@@ -374,7 +383,7 @@ namespace Thermo.Active.Utils
return SCADA_MEM_TYPE.WORD;
case "INT":
- return SCADA_MEM_TYPE.INT;
+ return SCADA_MEM_TYPE.INT;
case "REAL":
return SCADA_MEM_TYPE.REAL;
@@ -409,7 +418,7 @@ namespace Thermo.Active.Utils
public static string GetSoftwareVersionAndBuildDate()
{
- Version v = Assembly.GetEntryAssembly()?.GetName().Version;
+ Version v = Assembly.GetEntryAssembly()?.GetName().Version;
if (v != null)
{
// Get first 2 number of the version
@@ -426,7 +435,7 @@ namespace Thermo.Active.Utils
return "";
}
-
+
public static Boolean DecodeCMSConnectGatewayLogin(string encryptedString, out string login, out string password)
{
@@ -498,7 +507,10 @@ namespace Thermo.Active.Utils
{
intMachineVal = 0;
containsLetters = Regex.IsMatch(machineNumber, @".*?[a-zA-Z].*?");
-
+ if (string.IsNullOrEmpty(machineNumber))
+ {
+ machineNumber = "0000";
+ }
if (containsLetters)
// Convert ASCII string to a single INT
intMachineVal = SupportFunctions.ConvertAsciiStringToInt(machineNumber);
diff --git a/Thermo.Active.sln b/Thermo.Active.sln
index 0eb674ba..7ddc594b 100644
--- a/Thermo.Active.sln
+++ b/Thermo.Active.sln
@@ -39,11 +39,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Client.Chromium", "Client.C
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Thermo.Active.CmsConnectGateway", "Thermo.Active.CmsConnectGateway\Thermo.Active.CmsConnectGateway.csproj", "{49B04D99-0ECD-4900-86D3-7098D61314D7}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CMS_CORE_Library", "..\cms_core_library\CMS_CORE_Library\CMS_CORE_Library.csproj", "{4ABF8EEF-2B23-483E-ACDC-53214FE28681}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
+ Debug2|Any CPU = Debug2|Any CPU
+ Debug2|x64 = Debug2|x64
+ Debug2|x86 = Debug2|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
@@ -55,6 +60,12 @@ Global
{AFED34E1-77DB-4D81-830A-A8D0A190573D}.Debug|x64.Build.0 = Debug|Any CPU
{AFED34E1-77DB-4D81-830A-A8D0A190573D}.Debug|x86.ActiveCfg = Debug|Any CPU
{AFED34E1-77DB-4D81-830A-A8D0A190573D}.Debug|x86.Build.0 = Debug|Any CPU
+ {AFED34E1-77DB-4D81-830A-A8D0A190573D}.Debug2|Any CPU.ActiveCfg = Debug|Any CPU
+ {AFED34E1-77DB-4D81-830A-A8D0A190573D}.Debug2|Any CPU.Build.0 = Debug|Any CPU
+ {AFED34E1-77DB-4D81-830A-A8D0A190573D}.Debug2|x64.ActiveCfg = Debug|Any CPU
+ {AFED34E1-77DB-4D81-830A-A8D0A190573D}.Debug2|x64.Build.0 = Debug|Any CPU
+ {AFED34E1-77DB-4D81-830A-A8D0A190573D}.Debug2|x86.ActiveCfg = Debug|Any CPU
+ {AFED34E1-77DB-4D81-830A-A8D0A190573D}.Debug2|x86.Build.0 = Debug|Any CPU
{AFED34E1-77DB-4D81-830A-A8D0A190573D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AFED34E1-77DB-4D81-830A-A8D0A190573D}.Release|Any CPU.Build.0 = Release|Any CPU
{AFED34E1-77DB-4D81-830A-A8D0A190573D}.Release|x64.ActiveCfg = Release|Any CPU
@@ -67,6 +78,12 @@ Global
{631375DD-06D3-49BB-8130-D9DDB34C429D}.Debug|x64.Build.0 = Debug|Any CPU
{631375DD-06D3-49BB-8130-D9DDB34C429D}.Debug|x86.ActiveCfg = Debug|Any CPU
{631375DD-06D3-49BB-8130-D9DDB34C429D}.Debug|x86.Build.0 = Debug|Any CPU
+ {631375DD-06D3-49BB-8130-D9DDB34C429D}.Debug2|Any CPU.ActiveCfg = Debug|Any CPU
+ {631375DD-06D3-49BB-8130-D9DDB34C429D}.Debug2|Any CPU.Build.0 = Debug|Any CPU
+ {631375DD-06D3-49BB-8130-D9DDB34C429D}.Debug2|x64.ActiveCfg = Debug|Any CPU
+ {631375DD-06D3-49BB-8130-D9DDB34C429D}.Debug2|x64.Build.0 = Debug|Any CPU
+ {631375DD-06D3-49BB-8130-D9DDB34C429D}.Debug2|x86.ActiveCfg = Debug|Any CPU
+ {631375DD-06D3-49BB-8130-D9DDB34C429D}.Debug2|x86.Build.0 = Debug|Any CPU
{631375DD-06D3-49BB-8130-D9DDB34C429D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{631375DD-06D3-49BB-8130-D9DDB34C429D}.Release|Any CPU.Build.0 = Release|Any CPU
{631375DD-06D3-49BB-8130-D9DDB34C429D}.Release|x64.ActiveCfg = Release|Any CPU
@@ -79,6 +96,12 @@ Global
{20FC0937-E7CA-4693-95F9-7A948EFD173B}.Debug|x64.Build.0 = Debug|Any CPU
{20FC0937-E7CA-4693-95F9-7A948EFD173B}.Debug|x86.ActiveCfg = Debug|Any CPU
{20FC0937-E7CA-4693-95F9-7A948EFD173B}.Debug|x86.Build.0 = Debug|Any CPU
+ {20FC0937-E7CA-4693-95F9-7A948EFD173B}.Debug2|Any CPU.ActiveCfg = Debug|Any CPU
+ {20FC0937-E7CA-4693-95F9-7A948EFD173B}.Debug2|Any CPU.Build.0 = Debug|Any CPU
+ {20FC0937-E7CA-4693-95F9-7A948EFD173B}.Debug2|x64.ActiveCfg = Debug|Any CPU
+ {20FC0937-E7CA-4693-95F9-7A948EFD173B}.Debug2|x64.Build.0 = Debug|Any CPU
+ {20FC0937-E7CA-4693-95F9-7A948EFD173B}.Debug2|x86.ActiveCfg = Debug|Any CPU
+ {20FC0937-E7CA-4693-95F9-7A948EFD173B}.Debug2|x86.Build.0 = Debug|Any CPU
{20FC0937-E7CA-4693-95F9-7A948EFD173B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{20FC0937-E7CA-4693-95F9-7A948EFD173B}.Release|Any CPU.Build.0 = Release|Any CPU
{20FC0937-E7CA-4693-95F9-7A948EFD173B}.Release|x64.ActiveCfg = Release|Any CPU
@@ -91,6 +114,12 @@ Global
{357D5EE1-FFC8-489B-9232-22CF474D9A6F}.Debug|x64.Build.0 = Debug|Any CPU
{357D5EE1-FFC8-489B-9232-22CF474D9A6F}.Debug|x86.ActiveCfg = Debug|Any CPU
{357D5EE1-FFC8-489B-9232-22CF474D9A6F}.Debug|x86.Build.0 = Debug|Any CPU
+ {357D5EE1-FFC8-489B-9232-22CF474D9A6F}.Debug2|Any CPU.ActiveCfg = Debug|Any CPU
+ {357D5EE1-FFC8-489B-9232-22CF474D9A6F}.Debug2|Any CPU.Build.0 = Debug|Any CPU
+ {357D5EE1-FFC8-489B-9232-22CF474D9A6F}.Debug2|x64.ActiveCfg = Debug|Any CPU
+ {357D5EE1-FFC8-489B-9232-22CF474D9A6F}.Debug2|x64.Build.0 = Debug|Any CPU
+ {357D5EE1-FFC8-489B-9232-22CF474D9A6F}.Debug2|x86.ActiveCfg = Debug|Any CPU
+ {357D5EE1-FFC8-489B-9232-22CF474D9A6F}.Debug2|x86.Build.0 = Debug|Any CPU
{357D5EE1-FFC8-489B-9232-22CF474D9A6F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{357D5EE1-FFC8-489B-9232-22CF474D9A6F}.Release|Any CPU.Build.0 = Release|Any CPU
{357D5EE1-FFC8-489B-9232-22CF474D9A6F}.Release|x64.ActiveCfg = Release|Any CPU
@@ -103,6 +132,12 @@ Global
{3F5C2483-FC87-43EF-92A8-66FF7D0E440F}.Debug|x64.Build.0 = Debug|Any CPU
{3F5C2483-FC87-43EF-92A8-66FF7D0E440F}.Debug|x86.ActiveCfg = Debug|Any CPU
{3F5C2483-FC87-43EF-92A8-66FF7D0E440F}.Debug|x86.Build.0 = Debug|Any CPU
+ {3F5C2483-FC87-43EF-92A8-66FF7D0E440F}.Debug2|Any CPU.ActiveCfg = Debug|Any CPU
+ {3F5C2483-FC87-43EF-92A8-66FF7D0E440F}.Debug2|Any CPU.Build.0 = Debug|Any CPU
+ {3F5C2483-FC87-43EF-92A8-66FF7D0E440F}.Debug2|x64.ActiveCfg = Debug|Any CPU
+ {3F5C2483-FC87-43EF-92A8-66FF7D0E440F}.Debug2|x64.Build.0 = Debug|Any CPU
+ {3F5C2483-FC87-43EF-92A8-66FF7D0E440F}.Debug2|x86.ActiveCfg = Debug|Any CPU
+ {3F5C2483-FC87-43EF-92A8-66FF7D0E440F}.Debug2|x86.Build.0 = Debug|Any CPU
{3F5C2483-FC87-43EF-92A8-66FF7D0E440F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3F5C2483-FC87-43EF-92A8-66FF7D0E440F}.Release|Any CPU.Build.0 = Release|Any CPU
{3F5C2483-FC87-43EF-92A8-66FF7D0E440F}.Release|x64.ActiveCfg = Release|Any CPU
@@ -115,6 +150,12 @@ Global
{66FA29DB-925A-402B-A4C7-D3D780FB1BC3}.Debug|x64.Build.0 = Debug|x64
{66FA29DB-925A-402B-A4C7-D3D780FB1BC3}.Debug|x86.ActiveCfg = Debug|x86
{66FA29DB-925A-402B-A4C7-D3D780FB1BC3}.Debug|x86.Build.0 = Debug|x86
+ {66FA29DB-925A-402B-A4C7-D3D780FB1BC3}.Debug2|Any CPU.ActiveCfg = Debug|Any CPU
+ {66FA29DB-925A-402B-A4C7-D3D780FB1BC3}.Debug2|Any CPU.Build.0 = Debug|Any CPU
+ {66FA29DB-925A-402B-A4C7-D3D780FB1BC3}.Debug2|x64.ActiveCfg = Debug|x64
+ {66FA29DB-925A-402B-A4C7-D3D780FB1BC3}.Debug2|x64.Build.0 = Debug|x64
+ {66FA29DB-925A-402B-A4C7-D3D780FB1BC3}.Debug2|x86.ActiveCfg = Debug|x86
+ {66FA29DB-925A-402B-A4C7-D3D780FB1BC3}.Debug2|x86.Build.0 = Debug|x86
{66FA29DB-925A-402B-A4C7-D3D780FB1BC3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{66FA29DB-925A-402B-A4C7-D3D780FB1BC3}.Release|Any CPU.Build.0 = Release|Any CPU
{66FA29DB-925A-402B-A4C7-D3D780FB1BC3}.Release|x64.ActiveCfg = Release|x64
@@ -127,6 +168,12 @@ Global
{CBEB631B-ABFA-4042-9779-C0060B0DFEFE}.Debug|x64.Build.0 = Debug|Any CPU
{CBEB631B-ABFA-4042-9779-C0060B0DFEFE}.Debug|x86.ActiveCfg = Debug|Any CPU
{CBEB631B-ABFA-4042-9779-C0060B0DFEFE}.Debug|x86.Build.0 = Debug|Any CPU
+ {CBEB631B-ABFA-4042-9779-C0060B0DFEFE}.Debug2|Any CPU.ActiveCfg = Debug|Any CPU
+ {CBEB631B-ABFA-4042-9779-C0060B0DFEFE}.Debug2|Any CPU.Build.0 = Debug|Any CPU
+ {CBEB631B-ABFA-4042-9779-C0060B0DFEFE}.Debug2|x64.ActiveCfg = Debug|Any CPU
+ {CBEB631B-ABFA-4042-9779-C0060B0DFEFE}.Debug2|x64.Build.0 = Debug|Any CPU
+ {CBEB631B-ABFA-4042-9779-C0060B0DFEFE}.Debug2|x86.ActiveCfg = Debug|Any CPU
+ {CBEB631B-ABFA-4042-9779-C0060B0DFEFE}.Debug2|x86.Build.0 = Debug|Any CPU
{CBEB631B-ABFA-4042-9779-C0060B0DFEFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CBEB631B-ABFA-4042-9779-C0060B0DFEFE}.Release|Any CPU.Build.0 = Release|Any CPU
{CBEB631B-ABFA-4042-9779-C0060B0DFEFE}.Release|x64.ActiveCfg = Release|Any CPU
@@ -139,6 +186,12 @@ Global
{205A6ADE-FB5A-45CB-9C51-9817E7BB8939}.Debug|x64.Build.0 = Debug|Any CPU
{205A6ADE-FB5A-45CB-9C51-9817E7BB8939}.Debug|x86.ActiveCfg = Debug|Any CPU
{205A6ADE-FB5A-45CB-9C51-9817E7BB8939}.Debug|x86.Build.0 = Debug|Any CPU
+ {205A6ADE-FB5A-45CB-9C51-9817E7BB8939}.Debug2|Any CPU.ActiveCfg = Debug|Any CPU
+ {205A6ADE-FB5A-45CB-9C51-9817E7BB8939}.Debug2|Any CPU.Build.0 = Debug|Any CPU
+ {205A6ADE-FB5A-45CB-9C51-9817E7BB8939}.Debug2|x64.ActiveCfg = Debug|Any CPU
+ {205A6ADE-FB5A-45CB-9C51-9817E7BB8939}.Debug2|x64.Build.0 = Debug|Any CPU
+ {205A6ADE-FB5A-45CB-9C51-9817E7BB8939}.Debug2|x86.ActiveCfg = Debug|Any CPU
+ {205A6ADE-FB5A-45CB-9C51-9817E7BB8939}.Debug2|x86.Build.0 = Debug|Any CPU
{205A6ADE-FB5A-45CB-9C51-9817E7BB8939}.Release|Any CPU.ActiveCfg = Release|Any CPU
{205A6ADE-FB5A-45CB-9C51-9817E7BB8939}.Release|Any CPU.Build.0 = Release|Any CPU
{205A6ADE-FB5A-45CB-9C51-9817E7BB8939}.Release|x64.ActiveCfg = Release|Any CPU
@@ -151,6 +204,12 @@ Global
{34434B22-D546-4A5C-B575-49720C77643A}.Debug|x64.Build.0 = Debug|Any CPU
{34434B22-D546-4A5C-B575-49720C77643A}.Debug|x86.ActiveCfg = Debug|Any CPU
{34434B22-D546-4A5C-B575-49720C77643A}.Debug|x86.Build.0 = Debug|Any CPU
+ {34434B22-D546-4A5C-B575-49720C77643A}.Debug2|Any CPU.ActiveCfg = Debug|Any CPU
+ {34434B22-D546-4A5C-B575-49720C77643A}.Debug2|Any CPU.Build.0 = Debug|Any CPU
+ {34434B22-D546-4A5C-B575-49720C77643A}.Debug2|x64.ActiveCfg = Debug|Any CPU
+ {34434B22-D546-4A5C-B575-49720C77643A}.Debug2|x64.Build.0 = Debug|Any CPU
+ {34434B22-D546-4A5C-B575-49720C77643A}.Debug2|x86.ActiveCfg = Debug|Any CPU
+ {34434B22-D546-4A5C-B575-49720C77643A}.Debug2|x86.Build.0 = Debug|Any CPU
{34434B22-D546-4A5C-B575-49720C77643A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{34434B22-D546-4A5C-B575-49720C77643A}.Release|Any CPU.Build.0 = Release|Any CPU
{34434B22-D546-4A5C-B575-49720C77643A}.Release|x64.ActiveCfg = Release|Any CPU
@@ -163,6 +222,12 @@ Global
{DE54FF4C-8390-4489-882A-1BC7D99EF185}.Debug|x64.Build.0 = Debug|Any CPU
{DE54FF4C-8390-4489-882A-1BC7D99EF185}.Debug|x86.ActiveCfg = Debug|Any CPU
{DE54FF4C-8390-4489-882A-1BC7D99EF185}.Debug|x86.Build.0 = Debug|Any CPU
+ {DE54FF4C-8390-4489-882A-1BC7D99EF185}.Debug2|Any CPU.ActiveCfg = Debug|Any CPU
+ {DE54FF4C-8390-4489-882A-1BC7D99EF185}.Debug2|Any CPU.Build.0 = Debug|Any CPU
+ {DE54FF4C-8390-4489-882A-1BC7D99EF185}.Debug2|x64.ActiveCfg = Debug|Any CPU
+ {DE54FF4C-8390-4489-882A-1BC7D99EF185}.Debug2|x64.Build.0 = Debug|Any CPU
+ {DE54FF4C-8390-4489-882A-1BC7D99EF185}.Debug2|x86.ActiveCfg = Debug|Any CPU
+ {DE54FF4C-8390-4489-882A-1BC7D99EF185}.Debug2|x86.Build.0 = Debug|Any CPU
{DE54FF4C-8390-4489-882A-1BC7D99EF185}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DE54FF4C-8390-4489-882A-1BC7D99EF185}.Release|Any CPU.Build.0 = Release|Any CPU
{DE54FF4C-8390-4489-882A-1BC7D99EF185}.Release|x64.ActiveCfg = Release|Any CPU
@@ -175,6 +240,12 @@ Global
{B2366B08-96BD-4F6B-B748-B45089B87A14}.Debug|x64.Build.0 = Debug|Any CPU
{B2366B08-96BD-4F6B-B748-B45089B87A14}.Debug|x86.ActiveCfg = Debug|Any CPU
{B2366B08-96BD-4F6B-B748-B45089B87A14}.Debug|x86.Build.0 = Debug|Any CPU
+ {B2366B08-96BD-4F6B-B748-B45089B87A14}.Debug2|Any CPU.ActiveCfg = Debug|Any CPU
+ {B2366B08-96BD-4F6B-B748-B45089B87A14}.Debug2|Any CPU.Build.0 = Debug|Any CPU
+ {B2366B08-96BD-4F6B-B748-B45089B87A14}.Debug2|x64.ActiveCfg = Debug|Any CPU
+ {B2366B08-96BD-4F6B-B748-B45089B87A14}.Debug2|x64.Build.0 = Debug|Any CPU
+ {B2366B08-96BD-4F6B-B748-B45089B87A14}.Debug2|x86.ActiveCfg = Debug|Any CPU
+ {B2366B08-96BD-4F6B-B748-B45089B87A14}.Debug2|x86.Build.0 = Debug|Any CPU
{B2366B08-96BD-4F6B-B748-B45089B87A14}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B2366B08-96BD-4F6B-B748-B45089B87A14}.Release|Any CPU.Build.0 = Release|Any CPU
{B2366B08-96BD-4F6B-B748-B45089B87A14}.Release|x64.ActiveCfg = Release|Any CPU
@@ -187,6 +258,12 @@ Global
{F9F17F23-660E-488C-A7FA-6A5B35D64313}.Debug|x64.Build.0 = Debug|Any CPU
{F9F17F23-660E-488C-A7FA-6A5B35D64313}.Debug|x86.ActiveCfg = Debug|Any CPU
{F9F17F23-660E-488C-A7FA-6A5B35D64313}.Debug|x86.Build.0 = Debug|Any CPU
+ {F9F17F23-660E-488C-A7FA-6A5B35D64313}.Debug2|Any CPU.ActiveCfg = Debug|Any CPU
+ {F9F17F23-660E-488C-A7FA-6A5B35D64313}.Debug2|Any CPU.Build.0 = Debug|Any CPU
+ {F9F17F23-660E-488C-A7FA-6A5B35D64313}.Debug2|x64.ActiveCfg = Debug|Any CPU
+ {F9F17F23-660E-488C-A7FA-6A5B35D64313}.Debug2|x64.Build.0 = Debug|Any CPU
+ {F9F17F23-660E-488C-A7FA-6A5B35D64313}.Debug2|x86.ActiveCfg = Debug|Any CPU
+ {F9F17F23-660E-488C-A7FA-6A5B35D64313}.Debug2|x86.Build.0 = Debug|Any CPU
{F9F17F23-660E-488C-A7FA-6A5B35D64313}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F9F17F23-660E-488C-A7FA-6A5B35D64313}.Release|Any CPU.Build.0 = Release|Any CPU
{F9F17F23-660E-488C-A7FA-6A5B35D64313}.Release|x64.ActiveCfg = Release|Any CPU
@@ -199,12 +276,36 @@ Global
{49B04D99-0ECD-4900-86D3-7098D61314D7}.Debug|x64.Build.0 = Debug|Any CPU
{49B04D99-0ECD-4900-86D3-7098D61314D7}.Debug|x86.ActiveCfg = Debug|Any CPU
{49B04D99-0ECD-4900-86D3-7098D61314D7}.Debug|x86.Build.0 = Debug|Any CPU
+ {49B04D99-0ECD-4900-86D3-7098D61314D7}.Debug2|Any CPU.ActiveCfg = Debug|Any CPU
+ {49B04D99-0ECD-4900-86D3-7098D61314D7}.Debug2|Any CPU.Build.0 = Debug|Any CPU
+ {49B04D99-0ECD-4900-86D3-7098D61314D7}.Debug2|x64.ActiveCfg = Debug|Any CPU
+ {49B04D99-0ECD-4900-86D3-7098D61314D7}.Debug2|x64.Build.0 = Debug|Any CPU
+ {49B04D99-0ECD-4900-86D3-7098D61314D7}.Debug2|x86.ActiveCfg = Debug|Any CPU
+ {49B04D99-0ECD-4900-86D3-7098D61314D7}.Debug2|x86.Build.0 = Debug|Any CPU
{49B04D99-0ECD-4900-86D3-7098D61314D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{49B04D99-0ECD-4900-86D3-7098D61314D7}.Release|Any CPU.Build.0 = Release|Any CPU
{49B04D99-0ECD-4900-86D3-7098D61314D7}.Release|x64.ActiveCfg = Release|Any CPU
{49B04D99-0ECD-4900-86D3-7098D61314D7}.Release|x64.Build.0 = Release|Any CPU
{49B04D99-0ECD-4900-86D3-7098D61314D7}.Release|x86.ActiveCfg = Release|Any CPU
{49B04D99-0ECD-4900-86D3-7098D61314D7}.Release|x86.Build.0 = Release|Any CPU
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|x64.ActiveCfg = Debug|x64
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|x64.Build.0 = Debug|x64
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|x86.ActiveCfg = Debug|x86
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|x86.Build.0 = Debug|x86
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug2|Any CPU.ActiveCfg = Debug2|Any CPU
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug2|Any CPU.Build.0 = Debug2|Any CPU
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug2|x64.ActiveCfg = Debug2|x64
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug2|x64.Build.0 = Debug2|x64
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug2|x86.ActiveCfg = Debug2|x86
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug2|x86.Build.0 = Debug2|x86
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|x64.ActiveCfg = Release|x64
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|x64.Build.0 = Release|x64
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|x86.ActiveCfg = Release|x86
+ {4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Thermo.Active/App.config b/Thermo.Active/App.config
index b48014f9..38af01d7 100644
--- a/Thermo.Active/App.config
+++ b/Thermo.Active/App.config
@@ -4,81 +4,153 @@
https://go.microsoft.com/fwlink/?LinkId=301879
-->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Thermo.Active/App_Start/Startup.cs b/Thermo.Active/App_Start/Startup.cs
index 12991bdc..6bf7ef02 100644
--- a/Thermo.Active/App_Start/Startup.cs
+++ b/Thermo.Active/App_Start/Startup.cs
@@ -64,7 +64,7 @@ namespace Thermo.Active.App_Start
RequestPath = PathString.Empty,
FileSystem = new PhysicalFileSystem(WEBSITE_DIRECTORY)
};
-
+
app.UseFileServer(options);
if (!ServerPortIsAvailable(ServerStartupConfig.ServerPort))
{
@@ -106,7 +106,7 @@ namespace Thermo.Active.App_Start
app.Map("/signalr", map =>
{
map.UseCors(CorsOptions.AllowAll);
-
+
map.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions()
{
Provider = new SignalROAuthBearerProvider(),
diff --git a/Thermo.Active/Controllers/WebApi/ConfigurationController.cs b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs
index 49e93f0c..f5756fbf 100644
--- a/Thermo.Active/Controllers/WebApi/ConfigurationController.cs
+++ b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs
@@ -8,6 +8,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using static Thermo.Active.Config.ServerConfig;
+using Thermo.Active.Model.DTOModels.Recipe;
namespace Thermo.Active.Controllers.WebApi
{
@@ -24,7 +25,6 @@ namespace Thermo.Active.Controllers.WebApi
ScadaConfig = ScadaConfig,
MaintenanceConfig = MaintenanceConfig,
ReportConfig = ReportConfig,
- ToolingConfig = ToolingConfig,
UtilitiesConfig = UtilitiesConfig,
JobEditorConfig = JobEditorConfig,
UsersConfig = UsersConfig
@@ -103,6 +103,49 @@ namespace Thermo.Active.Controllers.WebApi
return Ok(heads);
}
+ [Route("recipe"), HttpGet]
+ public IHttpActionResult GetRecipeConfig()
+ {
+ List recipeConfig = RecipeConfig.Select(x => new DTORecipeConfigModel()
+ {
+ Id = x.Id,
+ Category = x.Category.ToString(),
+ SubCategory_1 = x.SubCategory_1,
+ SubCategory_2 = x.SubCategory_2,
+ Name = x.Name,
+ Description = x.Description,
+ Format = x.Format,
+ Label = $"{x.Category}_{x.SubCategory_1}_{x.SubCategory_2}_{x.Name}".Replace("__", "_").Replace("__", "_").ToLower()
+ }).ToList();
+
+ return Ok(recipeConfig);
+ }
+
+#if false
+ [Route("ThermoParams"), HttpGet]
+ public IHttpActionResult GetThermoParamsConfig()
+ {
+ // TODO FIXME
+
+ // passa i parametri di configurazione es min/max dei gauge...
+
+
+ List recipeConfig = RecipeConfig.Select(x => new DTORecipeConfigModel()
+ {
+ Id = x.Id,
+ Category = x.Category.ToString(),
+ SubCategory_1 = x.SubCategory_1,
+ SubCategory_2 = x.SubCategory_2,
+ Name = x.Name,
+ Description = x.Description,
+ Format = x.Format,
+ Label = $"{x.Category}_{x.SubCategory_1}_{x.SubCategory_2}_{x.Name}".Replace("__", "_").Replace("__", "_").ToLower()
+ }).ToList();
+
+ return Ok(recipeConfig);
+ }
+#endif
+
[Route("alarms"), HttpGet]
public IHttpActionResult GetAlarmsConfig()
{
@@ -127,20 +170,6 @@ namespace Thermo.Active.Controllers.WebApi
return Ok(alarmsConfig);
}
- [Route("tool_manager"), HttpGet]
- public IHttpActionResult GetToolTableConfiguration()
- {
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
- CmsError libraryError = ncAdapter.GetToolTableConfiguration(out ToolTableConfiguration toolTableConfiguration);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(toolTableConfiguration);
- }
- }
-
[Route("cmscontact"), HttpGet]
public IHttpActionResult GetCmsContact()
{
diff --git a/Thermo.Active/Controllers/WebApi/LanguageController.cs b/Thermo.Active/Controllers/WebApi/LanguageController.cs
index 9ff377aa..06d0ac3a 100644
--- a/Thermo.Active/Controllers/WebApi/LanguageController.cs
+++ b/Thermo.Active/Controllers/WebApi/LanguageController.cs
@@ -54,20 +54,9 @@ namespace Thermo.Active.Controllers.WebApi
Dictionary alarmsNames = GetPlcAlarmsTranslations(language);
Dictionary headsNames = GetLocalizedHeadsNames(language);
- Dictionary magazinesNames = GetToolManagerTranslations(language);
Dictionary scadaTranslations = GetScadaTranslations(language);
- // Cooling
- if (NcConfig.NcVendor != NC_VENDOR.SIEMENS)
- {
- Dictionary coolingNames = GetCoolingTranslations(language);
- foreach (var coolingItem in coolingNames)
- {
- translations[coolingItem.Key] = coolingItem.Value;
- }
- }
-
// Concat maintenances dictionary with translations dictionary
translations = translations.Concat(maintenanceNames).ToDictionary(x => x.Key, x => x.Value);
// Softkeys
@@ -76,8 +65,6 @@ namespace Thermo.Active.Controllers.WebApi
translations = translations.Concat(alarmsNames).ToDictionary(x => x.Key, x => x.Value);
// Heads
translations = translations.Concat(headsNames).ToDictionary(x => x.Key, x => x.Value);
- // Magazines
- translations = translations.Concat(magazinesNames).ToDictionary(x => x.Key, x => x.Value);
// Scada
translations = translations.Concat(scadaTranslations).ToDictionary(x => x.Key, x => x.Value);
@@ -127,6 +114,7 @@ namespace Thermo.Active.Controllers.WebApi
);
}
+
private static string GetValueFromLocalizationList(Dictionary localizedNames, string language, string defaultString)
{
// Find text from names by language id
@@ -173,86 +161,6 @@ namespace Thermo.Active.Controllers.WebApi
}
}
- private static Dictionary GetCoolingTranslations(string language)
- {
- Dictionary dictionary = new Dictionary();
-
- // Find translated key
- var key = ToolManagerConfig.CooligsTranslations.Cooling.Where(x => x.Key == language).FirstOrDefault();
- if (key.Value != null)
- {
- // Add translated value \
- dictionary.Add("tooling_family_param_cooling", key.Value);
- dictionary.Add("tooling_equipment_param_cooling", key.Value);
- }
- key = ToolManagerConfig.CooligsTranslations.Cooling1.Where(x => x.Key == language).FirstOrDefault();
- if (key.Value != null)
- {
- dictionary.Add("tooling_family_param_cooling1", key.Value);
- dictionary.Add("tooling_equipment_param_cooling1", key.Value);
- }
- key = ToolManagerConfig.CooligsTranslations.Cooling2.Where(x => x.Key == language).FirstOrDefault();
- if (key.Value != null)
- {
- dictionary.Add("tooling_family_param_cooling2", key.Value);
- dictionary.Add("tooling_equipment_param_cooling2", key.Value);
- }
- key = ToolManagerConfig.CooligsTranslations.Cooling3.Where(x => x.Key == language).FirstOrDefault();
- if (key.Value != null)
- {
- dictionary.Add("tooling_family_param_cooling3", key.Value);
- dictionary.Add("tooling_equipment_param_cooling3", key.Value);
- }
- key = ToolManagerConfig.CooligsTranslations.Cooling4.Where(x => x.Key == language).FirstOrDefault();
- if (key.Value != null)
- {
- dictionary.Add("tooling_family_param_cooling4", key.Value);
- dictionary.Add("tooling_equipment_param_cooling4", key.Value);
- }
- key = ToolManagerConfig.CooligsTranslations.Cooling5.Where(x => x.Key == language).FirstOrDefault();
- if (key.Value != null)
- {
- dictionary.Add("tooling_family_param_cooling5", key.Value);
- dictionary.Add("tooling_equipment_param_cooling5", key.Value);
- }
- key = ToolManagerConfig.CooligsTranslations.Cooling6.Where(x => x.Key == language).FirstOrDefault();
- if (key.Value != null)
- {
- dictionary.Add("tooling_family_param_cooling6", key.Value);
- dictionary.Add("tooling_equipment_param_cooling6", key.Value);
- }
- key = ToolManagerConfig.CooligsTranslations.Cooling7.Where(x => x.Key == language).FirstOrDefault();
- if (key.Value != null)
- {
- dictionary.Add("tooling_family_param_cooling7", key.Value);
- dictionary.Add("tooling_equipment_param_cooling7", key.Value);
- }
- return dictionary;
- }
-
- private static Dictionary GetToolManagerTranslations(string language)
- {
- Dictionary translatedNames = new Dictionary();
-
- foreach (var mag in ToolManagerConfig.MagazineNames)
- {
- translatedNames.Add(
- "magazine_name_" + mag.MagazineId,
- GetValueFromLocalizationList(mag.LocalizedNames, language, "Magazine_" + mag.MagazineId)
- );
- }
-
- foreach(var toolType in ToolManagerConfig.ToolTypes)
- {
- translatedNames.Add(
- "tooling_equipment_list_select_" + toolType.Id,
- GetValueFromLocalizationList(toolType.LocalizedNames, language, "Magazine_" + toolType.Id)
- );
- }
-
- return translatedNames;
- }
-
private static Dictionary GetScadaTranslations(string language)
{
Dictionary translatedNames = new Dictionary();
diff --git a/Thermo.Active/Controllers/WebApi/NcToolManagerController.cs b/Thermo.Active/Controllers/WebApi/NcToolManagerController.cs
deleted file mode 100644
index 45e25a29..00000000
--- a/Thermo.Active/Controllers/WebApi/NcToolManagerController.cs
+++ /dev/null
@@ -1,1052 +0,0 @@
-using CMS_CORE_Library.Models;
-using Newtonsoft.Json;
-using Thermo.Active.Database.Controllers;
-using Thermo.Active.Model.DatabaseModels;
-using Thermo.Active.Model.DTOModels;
-using Thermo.Active.Model.DTOModels.ToolModels;
-using Thermo.Active.NC;
-using Thermo.Active.Utils;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Diagnostics;
-using System.IO;
-using System.Linq;
-using System.Net;
-using System.Net.Http;
-using System.Text;
-using System.Threading.Tasks;
-using System.Web;
-using System.Web.Http;
-using static Thermo.Active.Config.ServerConfig;
-using static Thermo.Active.Listeners.SignalRStaticObjects;
-using static Thermo.Active.Model.Constants;
-
-namespace Thermo.Active.Controllers.WebApi
-{
- [RoutePrefix("api/tool_manager/nc")]
- public class NcToolManagerApiController : ApiController
- {
- #region Tools
-
- [Route("tools"), HttpGet]
- public IHttpActionResult GetNcToolTable()
- {
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- ncAdapter.Connect();
- CmsError cmsError = ncAdapter.GetToolsData(out List tools);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- // Add family data to tools
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Get families
- List families = toolsManager.GetFamilies();
-
- List toolsWithFamilies = new List();
- // Create tool&family return objecs
- foreach (var tool in tools)
- {
- toolsWithFamilies.Add
- (
- CreateToolAndFamilyObj( // Create return model with family data & tool data
- tool,
- families.Where(x => x.Id == tool.FamilyId).FirstOrDefault() // Find matching family
- )
- );
- }
-
- return Ok(toolsWithFamilies);
- }
- }
- }
-
- [Route("tool/{toolId:int}/{familyId:int}"), HttpPost]
- public IHttpActionResult AddToolWithId(short toolId, short familyId)
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Check if exists a tool with the same id
- DbNcToolModel dbTool = toolsManager.FindTool(toolId);
- if (dbTool != null)
- return BadRequest(API_ERROR_KEYS.ID_ALREADY_EXIST);
-
- // Create default family
- DTONcFamilyModel defaultFamily = new DTONcFamilyModel();
- // Copy data from static obj preconfigured
- SupportFunctions.CopyProperties(DTO_TOOL_WITH_FAM, defaultFamily);
-
- // Overwrite the custom model id
- defaultFamily.Id = familyId;
-
- // Check if FAMILY option is active
- if (ToolManagerConfig.FamilyOpt)
- {
- // Check if id is already occupied
- DbNcFamilyModel dbFam = null;
-
- // Check Family id
- // 0 : Create new family
- // N : Set tool familyId with input id
-
- if (familyId == 0)
- // Add new family
- dbFam = toolsManager.AddFamily(defaultFamily);
- else
- {
- // check if family exist & set da
- dbFam = toolsManager.FindFamily(familyId);
- if (dbFam == null)
- return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
- }
-
- // Set return value
- //DTO_TOOL_WITH_FAM.FamilyId = dbFam.FamilyId;
- //DTO_TOOL_WITH_FAM.Name = dbFam.Name;
-
- SupportFunctions.CopyProperties(dbFam, DTO_TOOL_WITH_FAM);
- }
- else
- {
- defaultFamily.Id = toolId;
- // Add new family
- DbNcFamilyModel dbFam = toolsManager.AddFamily(defaultFamily);
-
- // Set return value
- DTO_TOOL_WITH_FAM.FamilyId = dbFam.FamilyId;
- DTO_TOOL_WITH_FAM.Name = dbFam.Name;
- }
-
- // Check if option is active
- if (!ToolManagerConfig.ShankOpt)
- {
- // If option is not active create a shank
- DTONewNcShankModel newShank = new DTONewNcShankModel()
- {
- Balluf = 0,
- MagazinePositionType = 0
- };
-
- // Create a new shank
- DbNcShankModel ncShank = toolsManager.AddShank(newShank, toolId);
- // Connect tool to new shank
- DTO_TOOL_WITH_FAM.ShankId = ncShank.ShankId;
- }
- else
- DTO_TOOL_WITH_FAM.ShankId = null;
- }
-
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- ncAdapter.Connect();
-
- // Add tool
- CmsError cmsError = ncAdapter.AddTool(DTO_TOOL_WITH_FAM, out DTONcToolModel newTool, toolId);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- // if offset option is disabled set first offset id equal to toolId
- if (!ToolManagerConfig.OffsetOpt)
- {
- ncAdapter.UpdateToolOffsetId(newTool.Id, 1, newTool.Id, out DTONcToolModel toolWithOffset);
- newTool.OffsetId1 = newTool.Id;
- newTool.Offset1 = toolWithOffset.Offset1;
- }
-
- return Ok(CreateToolAndFamilyObj(newTool, DTO_TOOL_WITH_FAM));
- }
- }
-
- [Route("tool/{toolId:int}"), HttpPut]
- public IHttpActionResult PutTool(int toolId, [FromBody][Required]DTONewNcToolWithFamilyModel dtoToolWithFamily)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- DbNcToolModel tool = null;
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Check if tool exists
- tool = toolsManager.FindTool(toolId);
- if (tool == null)
- return NotFound();
-
- // Check if tool is mounted in spindle
- if (ToolIsInSpindle(toolId))
- return BadRequest(API_ERROR_KEYS.TOOL_IS_MOUNTED);
-
- if (tool.FamilyId != dtoToolWithFamily.FamilyId)
- {
- // Check if family exists
- DbNcFamilyModel fam = toolsManager.FindFamily(dtoToolWithFamily.FamilyId);
- if (fam == null)
- return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
-
- // Change return fam data
- if (ToolManagerConfig.FamilyOpt)
- {
- dtoToolWithFamily.Name = fam.Name;
- }
- }
-
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- ncAdapter.Connect();
-
- // Update
- CmsError cmsError = ncAdapter.UpdateTool(toolId, dtoToolWithFamily, out DTONcToolModel newTool, dtoToolWithFamily);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- return Ok(CreateToolAndFamilyObj(newTool, dtoToolWithFamily));
- }
- }
- }
-
- [Route("tool/{toolId:int}"), HttpDelete]
- public IHttpActionResult DeleteTool(int toolId)
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- DbNcToolModel tool = toolsManager.FindToolWithDependencies(toolId);
- if (tool == null)
- return NotFound();
-
- // Check if tool is mounted in magazine (a tool to be mounted in spindle must be in magazine)
- if(tool.Shank != null && tool.Shank.MagazineId != null && tool.Shank.PositionId != null)
- return BadRequest(API_ERROR_KEYS.TOOL_IS_MOUNTED);
-
- // Check if tool is mounted in spindle
- //if (ToolIsInSpindle(toolId))
- // return BadRequest(API_ERROR_KEYS.TOOL_IS_MOUNTED);
-
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- ncAdapter.Connect();
-
- CmsError cmsError;
- cmsError = ncAdapter.DeleteNcTool(tool);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- return Ok();
- }
- }
- }
-
- #endregion Tools
-
- #region Offsets
-
- [Route("offset/{offsetId:int}"), HttpPut]
- public IHttpActionResult UpdateOffset(short offsetId, OffsetModel offsetData)
- {
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- ncAdapter.Connect();
-
- CmsError cmsError = ncAdapter.UpdateOffset(offsetId, offsetData);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- offsetData.Id = offsetId;
-
- return Ok(offsetData);
- }
- }
-
- [Route("tool/{toolId:int}/position/{positionId:int}/offset/{offsetId:int}"), HttpPut]
- public IHttpActionResult UpdateToolOffset(int toolId, int positionId, short offsetId)
- {
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- ncAdapter.Connect();
-
- CmsError cmsError = ncAdapter.UpdateToolOffsetId(toolId, positionId, offsetId, out DTONcToolModel tool);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- return Ok(tool);
- }
- }
-
- #endregion Offsets
-
- #region Shanks
-
- [Route("shanks"), HttpGet]
- public IHttpActionResult GetShanks()
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- return Ok(toolsManager.GetShanks());
- }
- }
-
- [Route("shank/{shankId:int}"), HttpPost]
- public IHttpActionResult AddShank(short shankId)
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Check if exists a tool with the same id
- DbNcShankModel dbShank = toolsManager.FindShank(shankId);
- if (dbShank != null)
- return BadRequest(API_ERROR_KEYS.ID_ALREADY_EXIST);
- }
-
- if (!ToolManagerConfig.ShankOpt)
- return BadRequest(API_ERROR_KEYS.OPTION_NOT_ACTIVE);
-
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- DTONewNcShankModel dtoShank = new DTONewNcShankModel()
- {
- Balluf = 0,
- MagazinePositionType = 0
- };
- DTONcShankModel shank = (DTONcShankModel)toolsManager.AddShank(dtoShank, shankId);
-
- return Ok(shank);
- }
- }
-
- [Route("shank/{shankId:int}"), HttpPut]
- public IHttpActionResult PutShank(int shankId, [FromBody][Required]DTONewNcShankModel dtoShank)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Check if shank exists
- DbNcShankModel shank = toolsManager.FindShankWithTools(shankId);
- if (shank == null)
- return NotFound();
-
- // Check if tools are mounted in spindle
- foreach (var tool in shank.Tools)
- {
- if (ToolIsInSpindle(tool.ToolId))
- return BadRequest(API_ERROR_KEYS.TOOL_IS_MOUNTED);
- }
-
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- CmsError cmsError = ncAdapter.Connect();
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- // Update shank
- cmsError = ncAdapter.UpdateShank(shankId, dtoShank, out DTONcShankModel newShank);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- return Ok(newShank);
- }
- }
- }
-
- [Route("shank/{shankId:int}"), HttpDelete]
- public IHttpActionResult DeleteShank(int shankId)
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Check if shank exists
- DbNcShankModel shank = toolsManager.FindShankWithTools(shankId);
- if (shank == null)
- return NotFound();
-
- // Check if tools are mounted in spindle
- foreach (var tool in shank.Tools)
- {
- if (ToolIsInSpindle(tool.ToolId))
- return BadRequest(API_ERROR_KEYS.TOOL_IS_MOUNTED);
- }
-
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- CmsError cmsError = ncAdapter.Connect();
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- cmsError = ncAdapter.DeleteNcShank(shank.ShankId);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- return Ok();
- }
- }
- }
-
- #endregion Shanks
-
- #region Families
-
- [Route("families"), HttpGet]
- public IHttpActionResult GetFamilies()
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- List families = toolsManager.GetFamilies();
-
- return Ok(families);
- }
- }
-
- [Route("family/{familyId:int}"), HttpPost]
- public IHttpActionResult AddFamily(short familyId)
- {
- // Create default family
- DTONcFamilyModel defaultFamily = new DTONcFamilyModel();
- // Copy data from static obj configured
- SupportFunctions.CopyProperties(DTO_TOOL_WITH_FAM, defaultFamily);
- defaultFamily.Id = familyId;
-
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- DTONcFamilyModel newFamily = ncAdapter.AddFamily(defaultFamily);
-
- return Ok(newFamily);
- }
- }
-
- [Route("family/{familyId:int}"), HttpPut]
- public IHttpActionResult PutFamily(int familyId, [FromBody][Required]DTONewNcFamilyModel dtoFamily)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Check if family exists
- DbNcFamilyModel family = toolsManager.FindFamily(familyId);
- if (family == null)
- return NotFound();
-
- // Check if tools are mounted in spindle
- foreach (var tool in family.Tools)
- {
- if (ToolIsInSpindle(tool.ToolId))
- return BadRequest(API_ERROR_KEYS.TOOL_IS_MOUNTED);
- }
-
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- CmsError cmsError = ncAdapter.Connect();
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- // Update into db and NC
- cmsError = ncAdapter.UpdateFamily(familyId, dtoFamily, out DTONcFamilyModel newFamily);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- return Ok(newFamily);
- }
- }
- }
-
- [Route("family/{familyId:int}"), HttpDelete]
- public IHttpActionResult DeleteFamily(int familyId)
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Find if exists
- DbNcFamilyModel family = toolsManager.FindFamily(familyId);
- if (family == null)
- return NotFound();
-
- // Check if tools are mounted in spindle
- foreach (var tool in family.Tools)
- {
- //
- var t = toolsManager.FindToolWithDependencies(tool.ToolId);
- if(t.Shank != null && t.Shank.MagazineId != null && t.Shank.PositionId != null)
- return BadRequest(API_ERROR_KEYS.TOOL_IS_MOUNTED);
-
- //if (ToolIsInSpindle(tool.ToolId))
- // return BadRequest(API_ERROR_KEYS.TOOL_IS_MOUNTED);
- }
-
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- CmsError cmsError = ncAdapter.Connect();
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- //Delete
- cmsError = ncAdapter.DeleteNcFamily(familyId);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- return Ok();
- }
- }
- }
-
- #endregion Families
-
- #region Magazine positions
-
- [Route("magazines_positions"), HttpGet]
- public IHttpActionResult GetMagazinesPositions()
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- List magazines = toolsManager.FindMagazinesPositions();
-
- return Ok(magazines);
- }
- }
-
- [Route("magazine/{magazineId:int}/positions"), HttpGet]
- public IHttpActionResult GetMagazinesPositions(byte magazineId)
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- List magazine = toolsManager.GetMagazinePositions(magazineId);
-
- return Ok(magazine);
- }
- }
-
- [Route("magazine/{magazineId}/position/{positionId}"), HttpPut]
- public IHttpActionResult PutMagazinePosition([Required]byte magazineId, [Required]byte positionId, [FromBody]DTONcMagazinePositionModel dtoPos)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Check if magazine&position exists
- DbNcMagazinePositionModel pos = toolsManager.FindMagazinePosition(magazineId, positionId);
- if (pos == null)
- return NotFound();
-
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- ncAdapter.Connect();
- CmsError cmsError = ncAdapter.UpdateMagazinePosition(pos, dtoPos, out DTONcMagazinePositionModel newPos);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- return Ok(newPos);
- }
- }
- }
-
- #endregion Magazine positions
-
-
- [Route("magazine/{magazineId:int}/mounted_shanks"), HttpGet]
- public IHttpActionResult GetMagazineTools(byte magazineId)
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Check if magazine exists
- List pos = toolsManager.FindMagazinePositions(magazineId);
- if (pos.Count <= 0)
- return NotFound();
-
- List mountedShank = toolsManager.GetMountedShanks(magazineId);
-
- return Ok(mountedShank);
- }
- }
-
- [Route("magazine/available_shanks"), HttpGet]
- public IHttpActionResult GetAvailableShanks()
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- List shanks = new List();
-
- shanks = toolsManager.GetAvailableShanksWithChilds();
-
- return Ok(shanks);
- }
- }
-
- [Route("magazine/available_tools"), HttpGet]
- public IHttpActionResult GetAvailableTools()
- {
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- List tools = toolsManager.GetAvailableTools();
-
- return Ok(tools);
- }
- }
-
- [Route("magazine/{magazineId:int}/load/position/{positionId:int}"), HttpPut]
- public IHttpActionResult LoadToolInToMagazine(byte magazineId, byte positionId, [FromBody][Required] DTONcUpdateMagazineModel shankId)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
- if (shankId.ShankId == 0)
- return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
-
- DTONcShankModel dtoShank = new DTONcShankModel();
-
- // Check data
- DbNcShankModel shank;
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Check if shank exists
- shank = toolsManager.FindShankWithTools(shankId.ShankId);
- if (shank == null)
- return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
-
- // Check if shank is already loaded somewhere
- if (shank.MagazineId != null)
- return BadRequest(API_ERROR_KEYS.TOOL_IS_MOUNTED);
-
- // Check if magazine position exists
- DbNcMagazinePositionModel magPos = toolsManager.FindMagazinePosition(magazineId, positionId);
- if (magPos == null)
- return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
- // Check position type
- //if (shank.Tools.FirstOrDefault().Family.ToolType != magPos.Type)
- // return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
-
- // Check if the mag pos is disabled
- if (magPos.Disabled == true)
- return BadRequest(API_ERROR_KEYS.MAG_POS_DISABLED);
-
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- // Get Configuration
- ncAdapter.Connect();
-
- // Check if shank can fit
- CmsError cmsError = ncAdapter.CheckIfShankCanFit(
- magazineId,
- positionId,
- shank // mounted tools
- );
-
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- dtoShank = toolsManager.GetShank(shank.ShankId);
- }
-
- // Update shank data
- DTONcMagazinePositionModel magazinePos = (DTONcMagazinePositionModel)toolsManager.LoadShankInMagazine(magazineId, positionId, shank);
- // Set shankId
- magazinePos.ShankId = shank.ShankId;
-
- dtoShank.MagazineId = magazineId;
- dtoShank.PositionId = positionId;
-
- return Ok(dtoShank);
- }
- }
-
- [Route("magazine/{magazineId:int}/unload/position/{positionId:int}"), HttpPut]
- public IHttpActionResult UnloadToolInToMagazine(byte magazineId, byte positionId, [FromBody][Required] DTONcUpdateMagazineModel shankId)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
- if (shankId.ShankId == 0)
- return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
-
- // Check data
- DbNcShankModel shank;
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Check if shank exists
- shank = toolsManager.FindShankWithTools(shankId.ShankId);
- if (shank == null)
- return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
-
- // Check if tools are mounted in spindle
- foreach (var tool in shank.Tools)
- {
- if (ToolIsInSpindle(tool.ToolId))
- return BadRequest(API_ERROR_KEYS.TOOL_IS_MOUNTED);
- }
-
- // Check if magazine position exists
- DbNcMagazinePositionModel magPos = toolsManager.FindMagazinePosition(magazineId, positionId);
- if (magPos == null)
- return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
- //// Check if the mag pos is disabled
- //if (magPos.Disabled == true)
- // return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
-
- // Check if magazine position is not occupied
- DbNcShankModel shankMounted = toolsManager.FindShanksByPositions(magazineId, positionId);
- if (shankMounted == null)
- return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
-
- DTONcMagazinePositionModel magazinePos = (DTONcMagazinePositionModel)toolsManager.UnloadShankInMagazine(magazineId, positionId, shank);
-
- return Ok(magazinePos);
- }
- }
-
- [Route("shank/{shankId:int}/load/tool/{toolId:int}"), HttpPut]
- public IHttpActionResult LoadToolIntoShank(short shankId, int toolId)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- DbNcToolModel tool;
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Check if shank exists
- DbNcShankModel shank = toolsManager.FindShankWithTools(shankId);
- if (shank == null)
- return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
-
- tool = toolsManager.FindTool(toolId);
- if (tool == null)
- return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
- }
-
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- ncAdapter.Connect();
-
- DTONcShankModel shank = ncAdapter.LoadIntoShank(tool, shankId);
-
- return Ok(shank);
- }
- }
-
- [Route("shank/{shankId:int}/unload/tool/{toolId:int}"), HttpPut]
- public IHttpActionResult UnloadToolIntoShank(int shankId, int toolId)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- DbNcToolModel tool;
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Check if shank exists
- DbNcShankModel shank = toolsManager.FindShankWithTools(shankId);
- if (shank == null)
- return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
-
- tool = toolsManager.FindTool(toolId);
- if (tool == null)
- return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
- }
-
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- ncAdapter.Connect();
-
- DTONcShankModel shank = ncAdapter.UnloadFromShank(tool);
-
- return Ok(shank);
- }
- }
-
- [Route("start_edit_tooling/{magazineId:int}"), HttpPut]
- public IHttpActionResult StartEditTooling(int magazineId)
- {
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- ncAdapter.Connect();
-
- CmsError cmsError = ncAdapter.StartEditTooling(magazineId);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- return Ok();
- }
- }
-
- [Route("stop_edit_tooling/{magazineId:int}"), HttpPut]
- public IHttpActionResult StopEditTooling(int magazineId)
- {
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- ncAdapter.Connect();
-
- Stopwatch st = new Stopwatch();
- st.Restart();
- CmsError cmsError = ncAdapter.StopEditTooling(magazineId);
- Console.WriteLine("TOOL TABLE WRITE TIME " + st.ElapsedMilliseconds);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- return Ok();
- }
- }
-
- [Route("assisted_tooling/"), HttpPost]
- public IHttpActionResult StartAssistedTooling(DTOAssistedToolingModel data)
- {
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- ncAdapter.Connect();
-
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- var tool = toolsManager.FindTool(data.ToolId);
- if (tool == null)
- return BadRequest();
-
- CmsError cmsError = ncAdapter.StartAssistedToolingProcedure(data.ToolId, (ushort)tool.FamilyId, (ushort)tool.ShankId, data.MagazineId, data.PositionId, data.Action);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
- }
-
- return Ok();
- }
- }
-
- [Route("export"), HttpPost]
- public IHttpActionResult ExportToolTable()
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- DTOExportToolTableModel expData = toolsManager.GetExportData();
-
- return Ok(expData);
- }
- }
-
- [Route("import"), HttpPost]
- public async Task ImportToolTable()
- {
- // Check whether the POST operation is MultiPart?
- if (!Request.Content.IsMimeMultipartContent())
- throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
-
- var filesReadToProvider = await Request.Content.ReadAsMultipartAsync();
-
- var stream = filesReadToProvider.Contents.FirstOrDefault();
- if (stream == null)
- return BadRequest();
-
- var fileBytes = await stream.ReadAsByteArrayAsync();
-
- // Convert bytes into json string
- string jsonString = Encoding.UTF8.GetString(fileBytes);
-
- bool val = IsValidJson(jsonString, out DTOExportToolTableModel importData);
- if (!val)
- return BadRequest(API_ERROR_KEYS.IMPORT_FILE_NOT_VALID);
-
- if(importData.Families == null || importData.Shanks == null || importData.Tools == null)
- return BadRequest(API_ERROR_KEYS.IMPORT_FILE_NOT_VALID);
-
- using (NcToolManagerController toolsManager = new NcToolManagerController())
- {
- // Import data in the database
- List importStatus = toolsManager.ImportData(importData);
-
- return Ok(importStatus);
- }
- }
-
- [Route("selfadaptivepathstep"), HttpGet]
- public IHttpActionResult GetSelfAdaptivePathStep()
- {
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- DTOSelfAdaptiveModel sam;
-
- CmsError cmsError = ncAdapter.Connect();
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- cmsError = ncAdapter.GetSelfAdaptiveStep(out sam);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- return Ok(sam);
- }
- }
-
- [Route("selfadaptivepathstep"), HttpPut]
- public IHttpActionResult SetSelfAdaptivePathStep([FromBody][Required]DTOSelfAdaptiveModel dtoSelfAdaptiveModel)
- {
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- CmsError cmsError = ncAdapter.Connect();
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- cmsError = ncAdapter.SetSelfAdaptiveStep(dtoSelfAdaptiveModel);
- if (cmsError.IsError())
- return BadRequest(cmsError.localizationKey);
-
- return Ok();
- }
- }
- #region Private Functions
-
- private static DTONcToolWithFamilyModel DTO_TOOL_WITH_FAM = new DTONcToolWithFamilyModel()
- {
- Id = 0,
- Name = DEFAULT_FAM_NAME,
- OffsetId1 = null,
- OffsetId2 = null,
- OffsetId3 = null,
- LeftSize = 1,
- RightSize = 1
- };
-
- private bool IsValidJson(string jsonString, out DTOExportToolTableModel data)
- {
- data = new DTOExportToolTableModel();
- if (string.IsNullOrWhiteSpace(jsonString))
- return false;
-
- try
- {
- // Deserialize the string into DTO object
- data = JsonConvert.DeserializeObject(jsonString);
- return true;
- }
- catch (Exception)
- {
- return false;
- }
- }
-
- private DTONcToolWithFamilyModel CreateToolAndFamilyObj(DTONcToolModel tool, DTONewNcToolWithFamilyModel familyData)
- {
- DTONcToolWithFamilyModel familyTool = new DTONcToolWithFamilyModel();
- // Copy family fields
- SupportFunctions.CopyProperties(familyData, familyTool);
- // Copy tool fields
- SupportFunctions.CopyProperties(tool, familyTool);
-
- return familyTool;
- }
-
- private DTONcToolWithFamilyModel CreateToolAndFamilyObj(DTONcToolModel tool, DTONcToolWithFamilyModel familyData)
- {
- DTONcToolWithFamilyModel familyTool = new DTONcToolWithFamilyModel();
- // Copy family fields
- SupportFunctions.CopyProperties(familyData, familyTool);
- // Copy tool fields
- SupportFunctions.CopyProperties(tool, familyTool);
-
- return familyTool;
- }
-
- private DTONcToolWithFamilyModel CreateToolAndFamilyObj(DTONcToolModel tool, DTONcFamilyModel familyData)
- {
- DTONcToolWithFamilyModel familyTool = new DTONcToolWithFamilyModel();
- // Copy family fields
- SupportFunctions.CopyProperties(familyData, familyTool);
- // Copy tool fields
- SupportFunctions.CopyProperties(tool, familyTool);
-
- return familyTool;
- }
-
- private bool ToolIsInSpindle(int toolId)
- {
- foreach (var head in LastHeadsData.ToList())
- {
- if (head is DTOSpindleModel)
- {
- var spindle = head as DTOSpindleModel;
- if (!spindle.FixedHead && spindle.MountedTool == toolId)
- return true;
- }
- }
-
- return false;
- }
-
- #endregion
- }
-
- //[Route("tool_old"), HttpPost]
- //public IHttpActionResult AddTool([FromBody][Required]DTONewNcToolWithFamilyModel dtoToolWithFamily)
- //{
- // if (!ModelState.IsValid)
- // return BadRequest(ModelState);
-
- // short familyId = 0;
- // using (NcToolManagerController toolsManager = new NcToolManagerController())
- // {
- // // Check if option is active
- // if (ToolManagerConfig.FamilyOpt)
- // {
- // if (dtoToolWithFamily.FamilyId == 0)
- // {
- // // If param equal to 0 create a new family
- // DTONcFamilyModel newFamily = new DTONcFamilyModel() { Name = "NewFamily", LeftSize = 1, RightSize = 1 };
- // // Add new family & update family id
- // DbNcFamilyModel newFam = toolsManager.AddFamily(newFamily);
- // dtoToolWithFamily.FamilyId = newFam.FamilyId;
- // dtoToolWithFamily.Name = newFam.Name;
- // }
- // else
- // {
- // // Check if family exists
- // DbNcFamilyModel fam = toolsManager.FindFamily(dtoToolWithFamily.FamilyId);
- // if (fam == null)
- // return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
-
- // // Update return data
- // if (ToolManagerConfig.FamilyOpt)
- // {
- // dtoToolWithFamily.Name = fam.Name;
- // }
- // }
- // }
- // else
- // {
- // // Copy only family data from tool&fam model
- // DTONcFamilyModel newFamily = new DTONcFamilyModel();
- // SupportFunctions.CopyProperties(dtoToolWithFamily, newFamily);
-
- // // Add new family
- // DbNcFamilyModel dbFam = toolsManager.AddFamily(newFamily);
- // if (dbFam == null)
- // return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
- // dtoToolWithFamily.FamilyId = dbFam.FamilyId;
-
- // // Set common id
- // familyId = dbFam.FamilyId;
- // }
-
- // // Check if option is active
- // if (!ToolManagerConfig.ShankOpt)
- // {
- // // If option is not active create a shank
- // DTONewNcShankModel newShank = new DTONewNcShankModel()
- // {
- // Balluf = 0,
- // MagazinePositionType = 0
- // };
-
- // // Create a new shank
- // DbNcShankModel ncShank = toolsManager.AddShank(newShank, familyId);
- // // Connect tool to new shank
- // dtoToolWithFamily.ShankId = ncShank.ShankId;
- // }
- // else
- // dtoToolWithFamily.ShankId = null;
- // }
-
- // using (ncAdapter ncAdapter = new ncAdapter())
- // {
- // ncAdapter.Connect();
-
- // // Add tool
- // CmsError cmsError = ncAdapter.AddTool(dtoToolWithFamily, out DTONcToolModel newTool, familyId);
- // if (cmsError.IsError())
- // return BadRequest(cmsError.localizationKey);
-
- // return Ok(CreateToolAndFamilyObj(newTool, dtoToolWithFamily));
- // }
- //}
-
-}
\ No newline at end of file
diff --git a/Thermo.Active/Controllers/WebApi/RecipeController.cs b/Thermo.Active/Controllers/WebApi/RecipeController.cs
new file mode 100644
index 00000000..4bf64e2a
--- /dev/null
+++ b/Thermo.Active/Controllers/WebApi/RecipeController.cs
@@ -0,0 +1,51 @@
+using CMS_CORE_Library.Models;
+using Thermo.Active.Model.DTOModels;
+using Thermo.Active.NC;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Threading.Tasks;
+using System.Web.Http;
+using static CMS_CORE_Library.Models.DataStructures;
+using static Thermo.Active.Config.ServerConfig;
+using static Thermo.Active.Model.Constants;
+using Thermo.Active.Model.DTOModels.Recipe;
+
+namespace Thermo.Active.Controllers.WebApi
+{
+ [RoutePrefix("api/recipe")]
+ public class RecipeController : ApiController
+ {
+ [Route("overview"), HttpGet]
+ public IHttpActionResult GetOverview()
+ {
+ using (NcAdapter ncAdapter = new NcAdapter())
+ {
+ // serve?!?!?
+ //ncAdapter.Connect();
+ CmsError cmsError = ncAdapter.GetRecipeOverview(out Dictionary currOverview);
+ if (cmsError.IsError())
+ return BadRequest(cmsError.localizationKey);
+
+ return Ok(currOverview);
+ }
+ }
+ [Route("current"), HttpGet]
+ public IHttpActionResult GetCurrentParameters()
+ {
+ using (NcAdapter ncAdapter = new NcAdapter())
+ {
+ // serve?!?!?
+ //ncAdapter.Connect();
+ CmsError cmsError = ncAdapter.ReadFullRecipe(out Dictionary currentRecipe);
+ if (cmsError.IsError())
+ return BadRequest(cmsError.localizationKey);
+
+ return Ok(currentRecipe);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Thermo.Active/Controllers/WebApi/SiemensToolManagerController.cs b/Thermo.Active/Controllers/WebApi/SiemensToolManagerController.cs
deleted file mode 100644
index 68e49411..00000000
--- a/Thermo.Active/Controllers/WebApi/SiemensToolManagerController.cs
+++ /dev/null
@@ -1,449 +0,0 @@
-using CMS_CORE_Library.Models;
-using Thermo.Active.Model.DatabaseModels;
-using Thermo.Active.Model.DTOModels.ToolModels;
-using Thermo.Active.NC;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Linq;
-using System.Web.Http;
-
-namespace Thermo.Active.Controllers.WebApi
-{
- [RoutePrefix("api/tool_manager")]
- public class SiemensToolManagerController : ApiController
- {
- [Route("tools"), HttpGet]
- public IHttpActionResult GetToolTable()
- {
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
- CmsError libraryError = ncAdapter.GetToolTableData(out List tools);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(tools);
- }
- }
-
- [Route("siemens/tool"), HttpPost]
- public IHttpActionResult AddTool([FromBody][Required]DTOSiemensToolModel tool)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- // Convert from DTOModel to library model
- SiemensToolModel siemensModel = (SiemensToolModel)tool; ;
-
- ncAdapter.Connect();
- CmsError libraryError = ncAdapter.AddTool(ref siemensModel);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(siemensModel);
- }
- }
-
- [Route("siemens/tool/{id}"), HttpPut]
- public IHttpActionResult UpdateTool(int id, [FromBody][Required]DTOSiemensToolModel tool)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- // Convert from DTOModel to library model
- SiemensToolModel siemensModel = (SiemensToolModel)tool;
- siemensModel.Id = id;
-
- ncAdapter.Connect();
- CmsError libraryError = ncAdapter.UpdateTool(ref siemensModel);
-
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(siemensModel);
- }
- }
-
- [Route("tool/{id:int}"), HttpDelete]
- public IHttpActionResult DeleteTool(int id)
- {
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
- // Call delete library function
- CmsError libraryError = ncAdapter.DeleteTool(id);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok();
- }
- }
-
- [Route("families"), HttpGet]
- public IHttpActionResult GetFamilies()
- {
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
- CmsError libraryError = ncAdapter.GetFamiliesData(out List families);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(families);
- }
- }
-
- [Route("family"), HttpPost]
- public IHttpActionResult AddFamily([FromBody] DTOFamilyModel family)
- {
- if (String.IsNullOrEmpty(family.Name))
- return BadRequest();
-
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
- CmsError libraryError = ncAdapter.AddFamily(family.Name, out FamilyModel newFamily);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(newFamily);
- }
- }
-
- [Route("family/{oldName}"), HttpPut]
- public IHttpActionResult PutFamily(string oldName, [FromBody]DTOFamilyModel family)
- {
- if (string.IsNullOrEmpty(family.Name))
- return BadRequest();
-
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
-
- CmsError libraryError = ncAdapter.UpdateFamilyName(oldName, family.Name);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(family);
- }
- }
-
- [Route("family/{name}"), HttpDelete]
- public IHttpActionResult DeleteFamily(string name)
- {
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
- // Call delete library function
- CmsError libraryError = ncAdapter.DeleteFamily(name);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok();
- }
- }
-
- [Route("magazines_positions"), HttpGet]
- public IHttpActionResult GetMagazinesPositions()
- {
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
- CmsError libraryError = ncAdapter.GetMagazinesPositionsData(out List magazines);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(magazines);
- }
- }
-
- [Route("magazine/{magazineId:int}/positions"), HttpGet]
- public IHttpActionResult GetMagazinePositions(int magazineId)
- {
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
- CmsError libraryError = ncAdapter.GetMagazinesPositionsData(out List magazines);
- // Filter by magazine id
- magazines = magazines.Where(x => x.MagazineId == magazineId).ToList();
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(magazines);
- }
- }
-
- [Route("magazine/{magazineId}/position/{positionId}"), HttpPut]
- public IHttpActionResult PutMagazinePosition([Required]int magazineId, [Required]int positionId, [FromBody]DTOMagazinesPositionsModel magazinesPos)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
-
- // Create Library model
- PositionModel pos = new PositionModel()
- {
- PositionId = positionId,
- MagazineId = magazineId,
- Disabled = magazinesPos.Disabled
- };
- // Update
- CmsError libraryError = ncAdapter.UpdateMagazinePosition(pos);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok();
- }
- }
-
- [Route("shanks"), HttpGet]
- public IHttpActionResult GetShanks()
- {
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
- CmsError libraryError = ncAdapter.GetShanksData(out List shanks);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(shanks);
- }
- }
-
- [Route("shank"), HttpPost]
- public IHttpActionResult AddShank([FromBody][Required] DTOShankModel dtoShank)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ShankModel shank = (ShankModel)dtoShank;
-
- ncAdapter.Connect();
- CmsError libraryError = ncAdapter.AddShank(ref shank);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(shank);
- }
- }
-
- [Route("shank/{shankId:int}"), HttpPut]
- public IHttpActionResult UpdateShank(int shankId, [FromBody][Required] DTOShankModel dtoShank)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ShankModel shank = (ShankModel)dtoShank;
- shank.Id = shankId;
-
- ncAdapter.Connect();
- CmsError libraryError = ncAdapter.UpdateShank(ref shank);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(shank);
- }
- }
-
- [Route("shank/{id:int}"), HttpDelete]
- public IHttpActionResult DeleteShank(int id)
- {
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
- // Call delete library function
- CmsError libraryError = ncAdapter.DeleteShank(id);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok();
- }
- }
-
- [Route("tool/{toolId:int}/edge"), HttpPost]
- public IHttpActionResult AddEdge(int toolId, [FromBody][Required]DTOEdgeModel dtoEdge)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- using (SiemensToolTableAdapter siemensHandler = new SiemensToolTableAdapter())
- {
- siemensHandler.Connect();
-
- EdgeModel edge = (EdgeModel)dtoEdge;
-
- // Call library add methods
- CmsError libraryError = siemensHandler.AddEdge(toolId, ref edge);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(edge);
- }
- }
-
- [Route("tool/{toolId:int}/edge/{edgeId:int}"), HttpPut]
- public IHttpActionResult UpdateEdge(int toolId, int edgeId, [FromBody][Required]DTOEdgeModel dtoEdge)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
-
- EdgeModel edge = (EdgeModel)dtoEdge;
- edge.Id = edgeId;
-
- // Call library add methods
- CmsError libraryError = ncAdapter.UpdateEdge(toolId, ref edge);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(edge);
- }
- }
-
- [Route("tool/{toolId:int}/edge/{edgeId:int}"), HttpDelete]
- public IHttpActionResult DeleteEdge(int toolId, int edgeId)
- {
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
- // Call delete library function
- CmsError libraryError = ncAdapter.DeleteEdge(toolId, edgeId);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok();
- }
- }
-
- [Route("magazine/{magazineId:int}/mounted_tools"), HttpGet]
- public IHttpActionResult GetMagazineTools(int magazineId)
- {
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
- // Call delete library function
- CmsError libraryError = ncAdapter.GetMagazinePositionsAndTools(magazineId, out List magazinePos);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(magazinePos);
- }
- }
-
- [Route("magazine/available_tools"), HttpGet]
- public IHttpActionResult GetAvailableTools()
- {
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
- // Call delete library function
- CmsError libraryError = ncAdapter.GetNotInMagazinesTools(out List multiTools, out List tools);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(new
- {
- MultiTools = multiTools,
- Tools = tools
- });
- }
- }
-
- [Route("magazine/{magazineId:int}/load/position/{positionId:int}"), HttpPut]
- public IHttpActionResult LoadToolInToMagazine(int magazineId, int positionId, [FromBody][Required] DTOSiemensUpdateMagazineModel toolId)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
- if (toolId.ToolId == 0)
- return BadRequest("error_incorrect_parameters");
-
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
-
- NewToolInMagazineModel libraryMag = new NewToolInMagazineModel { PositionId = positionId, ToolId = toolId.ToolId };
- // Call delete library function
- CmsError libraryError = ncAdapter.LoadToolInMagazine(magazineId, libraryMag, out MountedToolModel mounted);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(mounted);
- }
- }
-
- [Route("magazine/{magazineId:int}/unload/position/{positionId:int}"), HttpPut]
- public IHttpActionResult UnloadToolFromMagazine(int magazineId, int positionId)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
-
- // Call delete library function
- CmsError libraryError = ncAdapter.UnloadToolInMagazine(magazineId, positionId);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok(new
- {
- magazineId,
- positionId,
- toolId = 0
- });
- }
- }
-
- [Route("shank/{shankId:int}/load/{positionId:int}/tool/{toolId:int}"), HttpPut]
- public IHttpActionResult LoadToolIntoShank(int shankId, int positionId, int toolId)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
-
- CmsError libraryError = ncAdapter.LoadTooolIntoShank(shankId, positionId, toolId);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok();
- }
- }
-
- [Route("shank/{shankId:int}/unload/{positionId:int}"), HttpPut]
- public IHttpActionResult UnloadToolFromShank(int shankId, int positionId)
- {
- if (!ModelState.IsValid)
- return BadRequest(ModelState);
-
- using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
- {
- ncAdapter.Connect();
-
- CmsError libraryError = ncAdapter.UnloadTooolFromShank(shankId, positionId);
- if (libraryError.IsError())
- return BadRequest(libraryError.localizationKey);
-
- return Ok();
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Thermo.Active/Listeners/Database/SignalRDatabaseHandler.cs b/Thermo.Active/Listeners/Database/SignalRDatabaseHandler.cs
index 70e6dca6..98d4876b 100644
--- a/Thermo.Active/Listeners/Database/SignalRDatabaseHandler.cs
+++ b/Thermo.Active/Listeners/Database/SignalRDatabaseHandler.cs
@@ -2,7 +2,6 @@
using Thermo.Active.Model.DatabaseModels;
using Thermo.Active.Model.DTOModels;
using Thermo.Active.Model.DTOModels.AlarmModels;
-using Thermo.Active.Model.DTOModels.ToolModels;
using Thermo.Active.NC;
using System.Collections.Generic;
using System.Linq;
@@ -14,71 +13,6 @@ namespace Thermo.Active.Listeners.Database
{
public static class SignalRDatabaseHandler
{
- public static void UpdateToolsData(object newData)
- {
- using (NcToolManagerController controller = new NcToolManagerController())
- {
- // Convert input parameter
- DTONewToolDataModel data = newData as DTONewToolDataModel;
- if(data == null)
- return;
-
- List updatedTools = new List();
- // Check if there are new data
- if (data.UpdatedLives.Count != 0 || data.UpdatedStatus.Count != 0)
- {
- List dbTools = controller.FindTools();
- if (dbTools.Count > 0)
- {
- // Loop through new data
- foreach (var live in data.UpdatedLives)
- {
- // Find tool and update residual life
- var tmp = dbTools
- .Where(x => x.ToolId == live.Key) // Get tool by id
- ?.Select(x =>
- {
- x.ResidualLife = (int)live.Value; // Update data
- return x;
- })
- .FirstOrDefault();
-
- if (tmp != null)
- updatedTools.Add(tmp);
- }
-
- foreach (var status in data.UpdatedStatus)
- {
- var tmp = dbTools
- .Where(x => x.ToolId == status.Key) // Get tool by id
- ?.Select(x =>
- {
- x.Status = UpdateStatus(x.Status, status.Value);
- return x;
- })
- .FirstOrDefault();
-
- if (tmp != null)
- updatedTools.Add(tmp);
- }
- }
-
- // Update database
- controller.UpdateToolsData(updatedTools);
-
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- ncAdapter.Connect();
- // Update nc data
- ncAdapter.UpdateNcTools(controller);
- }
-
- // I need to update tool in spindle data
- // Clean the heads cache, so the heads thread will be sent to the next cycle
- LastHeadsData = new List();
- }
- }
- }
private static byte UpdateStatus(byte oldValue, byte newValue)
{
@@ -234,62 +168,5 @@ namespace Thermo.Active.Listeners.Database
}
}
- public static void ManageAssistedToolingProcedure(object assTool)
- {
- DTOAssistedToolingEndValueModel assToolingData = assTool as DTOAssistedToolingEndValueModel;
- if (!LastToolingData.Equals(assToolingData))
- {
- LastToolingData = assToolingData;
- if (assToolingData != null && assToolingData.IsActive)
- {
- using (NcToolManagerController toolManager = new NcToolManagerController())
- {
- switch (assToolingData.Action)
- {
- case ASSISTED_TOOLING_ACTION.UNLOAD:
- {
- // Find shank loaded in the position
- var shank = toolManager.FindShanksByPositions(assToolingData.MagazineId, assToolingData.PositionId);
- if (shank != null)
- {
- // Unload Tool from magazine
- var pos = toolManager.UnloadShankInMagazine((byte)assToolingData.MagazineId, (byte)assToolingData.PositionId, shank);
- }
- }
- break;
-
- case ASSISTED_TOOLING_ACTION.EXCHANGE:
- {
- // Find shank loaded in the position
- var shankToUnload = toolManager.FindShanksByPositions(assToolingData.MagazineId, assToolingData.PositionId);
- if (shankToUnload != null)
- {
- // Unload Tool from magazine
- var pos = toolManager.UnloadShankInMagazine((byte)assToolingData.MagazineId, (byte)assToolingData.PositionId, shankToUnload);
- }
-
- // Find shank by toolId
- var shankToLoad = toolManager.FindShankByToolId(assToolingData.ToolId);
- if (shankToLoad != null)
- {
- // Load shank in magazine
- var pos = toolManager.LoadShankInMagazine((byte)assToolingData.MagazineId, (byte)assToolingData.PositionId, shankToLoad);
- }
- }
- break;
- }
-
- using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter())
- {
- ncAdapter.Connect();
- // Close procedure
- ncAdapter.TerminateAssistedProcedure(assToolingData.MagazineId,
- assToolingData.Action != ASSISTED_TOOLING_ACTION.NONE
- );
- }
- }
- }
- }
- }
}
}
\ No newline at end of file
diff --git a/Thermo.Active/Listeners/ListenersHandler.cs b/Thermo.Active/Listeners/ListenersHandler.cs
index 0b86959b..1571ea8b 100644
--- a/Thermo.Active/Listeners/ListenersHandler.cs
+++ b/Thermo.Active/Listeners/ListenersHandler.cs
@@ -69,18 +69,10 @@ namespace Thermo.Active.Listeners
{
SignalRListener.SendAxesToClient(a);
}));
- infos.Add(MessageServices.Current.Subscribe(SEND_MAGAZINES_STATUS, (a, b) =>
- {
- SignalRListener.SendMagazinesStatus(a);
- }));
infos.Add(MessageServices.Current.Subscribe(SEND_ACTIVE_PROGRAM_DATA, (a, b) =>
{
SignalRListener.SendActiveProgramData(a);
}));
- infos.Add(MessageServices.Current.Subscribe(NC_MAGAZINE_IS_ACTIVE, (a, b) =>
- {
- SignalRListener.SendNcMagazineIsActive(a);
- }));
infos.Add(MessageServices.Current.Subscribe(SEND_QUEUE_DATA, (a, b) =>
{
@@ -98,17 +90,30 @@ namespace Thermo.Active.Listeners
infos.Add(MessageServices.Current.Subscribe(SEND_CMSCONNECT_GW_REBOOT_STATUS, (a, b) =>
{
SignalRListener.SetGatewayRebootStatus(a);
- }));
+ }));
- //////////////////////////// Database
- infos.Add(MessageServices.Current.Subscribe(UPDATE_TOOLS_DATA, (a, b) =>
+ // add specific modules for THERMO
+ infos.Add(MessageServices.Current.Subscribe(SEND_THERMO_RECIPE_FULL, (a, b) =>
{
- SignalRDatabaseHandler.UpdateToolsData(a);
+ SignalRListener.SendThermoRecipeFullData(a);
}));
- infos.Add(MessageServices.Current.Subscribe(ASSISTED_TOOLING_DATA, (a, b) =>
+ infos.Add(MessageServices.Current.Subscribe(SEND_THERMO_RECIPE_OVERWIEW, (a, b) =>
{
- SignalRDatabaseHandler.ManageAssistedToolingProcedure(a);
+ SignalRListener.SendThermoRecipeOverviewData(a);
}));
+ infos.Add(MessageServices.Current.Subscribe(SEND_THERMO_MODULE_DATA, (a, b) =>
+ {
+ SignalRListener.SendThermoModulesData(a);
+ }));
+ infos.Add(MessageServices.Current.Subscribe(SEND_THERMO_WARMERS_DATA, (a, b) =>
+ {
+ SignalRListener.SendThermoWarmersData(a);
+ }));
+ infos.Add(MessageServices.Current.Subscribe(SEND_THERMO_GAUGE_DATA, (a, b) =>
+ {
+ SignalRListener.SendThermoGaugeData(a);
+ }));
+
// Broadcast
infos.Add(MessageServices.Current.Subscribe(BROADCAST_DATA, (a, b) =>
@@ -118,7 +123,7 @@ namespace Thermo.Active.Listeners
SignalRListener.BroadcastData();
}));
}
-
+
public static void Stop()
{
MessageServices.Current.UnSubscribe(infos.ToArray());
diff --git a/Thermo.Active/Listeners/SignalR/SignalRListener.cs b/Thermo.Active/Listeners/SignalR/SignalRListener.cs
index 1c18362f..7da335f9 100644
--- a/Thermo.Active/Listeners/SignalR/SignalRListener.cs
+++ b/Thermo.Active/Listeners/SignalR/SignalRListener.cs
@@ -5,7 +5,6 @@ using Thermo.Active.Database.Controllers;
using Thermo.Active.Model.DTOModels;
using Thermo.Active.Model.DTOModels.AlarmModels;
using Thermo.Active.Model.DTOModels.Scada;
-using Thermo.Active.Model.DTOModels.ToolModels;
using Thermo.Active.Utils;
using System;
using System.Collections.Generic;
@@ -15,6 +14,10 @@ using System.Threading;
using static Thermo.Active.Listeners.SignalRStaticObjects;
using static Thermo.Active.Model.Constants;
using static Thermo.Active.Config.ServerConfig;
+using Thermo.Active.Model.DTOModels.Recipe;
+using CMS_CORE_Library.Models;
+using static CMS_CORE_Library.Models.ThermoModels;
+using System.Threading.Tasks;
namespace Thermo.Active.Listeners.SignalR
{
@@ -164,37 +167,6 @@ namespace Thermo.Active.Listeners.SignalR
{
LastHeadsData = newData;
- using(NcToolManagerController controller = new NcToolManagerController())
- {
- foreach(var head in LastHeadsData)
- {
- // Check if head is a spindle
- if (head.Type == HEAD_TYPE.SPINDLE.ToString())
- {
- if (NcConfig.NcVendor.ToUpper() != NC_VENDOR.SIEMENS)
- {
- // Convert head into child model
- var spindle = (head as DTOSpindleModel);
- // Get tool data
- var tool = controller.FindToolWithDependencies(spindle.MountedTool);
- if (tool != null)
- spindle.ToolData = new DTOToolInSpindleModel()
- {
- FamilyId = tool.FamilyId,
- ShankId = tool.ShankId ?? 0,
- Broken = ((DTONcToolModel)tool).Broken,
- Disabled = ((DTONcToolModel)tool).Disabled,
- Measured = ((DTONcToolModel)tool).Measured,
- MaxLoad = tool.Family.MaxLoad,
- MaxSpeed = tool.Family.MaxSpeed,
- ResidualLife = tool.ResidualLife
- };
- }
- }
-
- }
- }
-
// Send data to clients
context.Clients.Group("ncData").headsData(heads);
}
@@ -214,17 +186,6 @@ namespace Thermo.Active.Listeners.SignalR
}
}
- public static void SendMagazinesStatus(object magazinesStatus)
- {
- var context = GlobalHost.ConnectionManager.GetHubContext();
- if (!LastMagazineStatus.Equals(magazinesStatus))
- {
- LastMagazineStatus = magazinesStatus as DTOMagazineActionModel;
-
- context.Clients.Group("ncData").magazinesStatus(magazinesStatus);
- }
- }
-
public static void SendActiveProgramData(object programData)
{
var context = GlobalHost.ConnectionManager.GetHubContext();
@@ -289,7 +250,114 @@ namespace Thermo.Active.Listeners.SignalR
var context = GlobalHost.ConnectionManager.GetHubContext();
context.Clients.Group("ncData").scadaData(scadaVal);
- }
+ }
+ }
+
+ public static void SendThermoRecipeFullData(object recipeFull)
+ {
+ Dictionary currRecipeFull = recipeFull as Dictionary;
+
+ Dictionary diffData = new Dictionary();
+
+ // calcola ed invia SOLO le differenze...
+ if (false)
+ {
+ Parallel.ForEach(currRecipeFull, item =>
+ {
+ if (!LastRecipeFullData.ContainsKey(item.Key))
+ {
+ diffData.Add(item.Key, item.Value);
+ }
+ else
+ {
+ // comparazione
+ if (!item.Value.Equals(LastRecipeFullData[item.Key]))
+ {
+ diffData[item.Key] = item.Value;
+ }
+ }
+ });
+ }
+ else
+ {
+ foreach (var item in currRecipeFull)
+ {
+ if (!LastRecipeFullData.ContainsKey(item.Key))
+ {
+ diffData.Add(item.Key, item.Value);
+ }
+ else
+ {
+ // comparazione
+ if (!item.Value.Equals(LastRecipeFullData[item.Key]))
+ {
+ diffData[item.Key] = item.Value;
+ }
+ }
+ }
+ }
+
+ if (diffData.Count > 0)
+ {
+ // salvo update
+ LastRecipeFullData = currRecipeFull;
+
+ var context = GlobalHost.ConnectionManager.GetHubContext();
+ context.Clients.Group("ncData").recipeFullData(diffData);
+ }
+ }
+
+ public static void SendThermoRecipeOverviewData(object recipeOver)
+ {
+ Dictionary currRecipeOver = recipeOver as Dictionary;
+
+ if (!LastRecipeOverData.SequenceEqual(currRecipeOver))
+ {
+ LastRecipeOverData = currRecipeOver;
+
+ var context = GlobalHost.ConnectionManager.GetHubContext();
+ context.Clients.Group("ncData").recipeOverData(currRecipeOver);
+ }
+ }
+
+ public static void SendThermoModulesData(object modules)
+ {
+ Dictionary currModules = modules as Dictionary;
+
+ // FIXME TODO: usare un foreach comparer?
+ if (!LastRecipeFullData.SequenceEqual(currModules))
+ {
+ LastRecipeFullData = currModules;
+
+ var context = GlobalHost.ConnectionManager.GetHubContext();
+ context.Clients.Group("ncData").modulesData(currModules);
+ }
+ }
+
+ public static void SendThermoWarmersData(object warmers)
+ {
+ Dictionary currWarmers = warmers as Dictionary;
+
+ // FIXME TODO: usare un foreach comparer?
+ if (!LastRecipeFullData.SequenceEqual(currWarmers))
+ {
+ LastRecipeFullData = currWarmers;
+
+ var context = GlobalHost.ConnectionManager.GetHubContext();
+ context.Clients.Group("ncData").warmersData(currWarmers);
+ }
+ }
+ public static void SendThermoGaugeData(object gaugeData)
+ {
+ GaugeModel currGauge = gaugeData as GaugeModel;
+
+ if (!LastGaugeData.Equals(currGauge))
+ {
+ LastGaugeData = currGauge;
+
+ var context = GlobalHost.ConnectionManager.GetHubContext();
+ context.Clients.Group("ncData").gaugeData(currGauge);
+ }
}
public static void SetGatewayRebootStatus(object status)
@@ -329,34 +397,42 @@ namespace Thermo.Active.Listeners.SignalR
group.expiredMaintenances(LastExpiredMaintenances);
// Send nc status
- context.Clients.Group("ncData").ncNetworkStatus(
+ group.ncNetworkStatus(
new
{
connected = LastIsNcConnected
});
// Send softkeys Nc
- context.Clients.Group("ncData").ncSoftKeys(LastNcSoftKeysData);
+ group.ncSoftKeys(LastNcSoftKeysData);
// Send user softKeys
- context.Clients.Group("ncData").userSoftKeys(LastUserSoftKeysData);
+ group.userSoftKeys(LastUserSoftKeysData);
// Send heads data
- context.Clients.Group("ncData").headsData(LastHeadsData);
+ group.headsData(LastHeadsData);
// Send axesNames data
- context.Clients.Group("ncData").axesNames(LastAxesNamesData);
- // Send magazine status
- context.Clients.Group("ncData").magazinesStatus(LastMagazineStatus);
+ group.axesNames(LastAxesNamesData);
// Send positions
- context.Clients.Group("ncData").axesPositions(LastAxesPositions);
+ group.axesPositions(LastAxesPositions);
// Send active program data
- context.Clients.Group("ncData").activeProgramData(LastProgramData);
+ group.activeProgramData(LastProgramData);
// Send magazine is active data
- context.Clients.Group("ncData").magazineIsActive(LastNcMagazineIsActive);
+ group.magazineIsActive(LastNcMagazineIsActive);
// Send PP Queue
- context.Clients.Group("ncData").partProgramQueue(LastPartProgramQueue);
+ group.partProgramQueue(LastPartProgramQueue);
// Send m155 data
- context.Clients.Group("ncData").m155Data(LastM155Data);
+ group.m155Data(LastM155Data);
// Send Scada
- context.Clients.Group("ncData").scadaData(LastScadaData);
+ group.scadaData(LastScadaData);
+
+ // Send THERMO Recipe data
+ group.recipeFullData(LastRecipeFullData);
+ group.recipeOverData(LastRecipeOverData);
+ // Send THERMO Modules data
+ group.recipeModulesData(LastModulesData);
+ // Send THERMO Warmers data
+ group.recipeWarmersData(LastWarmersData);
+ // THERMO Gauges
+ group.gaugeData(LastGaugeData);
Debug.WriteLine(string.Format("{0} {1} Broadcast..completed", DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"), DateTime.Now.Millisecond));
Monitor.Exit(_broadcastlock);
diff --git a/Thermo.Active/Listeners/SignalRStaticObjects.cs b/Thermo.Active/Listeners/SignalRStaticObjects.cs
index 7b6c1ab5..4f98fc8d 100644
--- a/Thermo.Active/Listeners/SignalRStaticObjects.cs
+++ b/Thermo.Active/Listeners/SignalRStaticObjects.cs
@@ -1,8 +1,9 @@
using Thermo.Active.Model.DTOModels;
using Thermo.Active.Model.DTOModels.AlarmModels;
using Thermo.Active.Model.DTOModels.Scada;
-using Thermo.Active.Model.DTOModels.ToolModels;
using System.Collections.Generic;
+using Thermo.Active.Model.DTOModels.Recipe;
+using CMS_CORE_Library.Models;
namespace Thermo.Active.Listeners
{
@@ -20,14 +21,20 @@ namespace Thermo.Active.Listeners
public static List LastHeadsData = new List();
public static DTOAxesModel LastAxesPositions = new DTOAxesModel();
public static List LastAxesNamesData = new List();
- public static DTOMagazineActionModel LastMagazineStatus = new DTOMagazineActionModel();
public static DTOActiveProgramDataModel LastProgramData = new DTOActiveProgramDataModel();
public static Dictionary LastNcMagazineIsActive = new Dictionary();
public static List LastPartProgramQueue = new List();
public static List LastM155Data = new List();
public static List LastScadaData = new List();
- public static DTOAssistedToolingEndValueModel LastToolingData = new DTOAssistedToolingEndValueModel();
+
+ // FIXME TODO inserire oggetti corretti per THERMO
+ public static Dictionary LastRecipeFullData = new Dictionary();
+ public static Dictionary LastRecipeOverData = new Dictionary();
+ public static List LastModulesData = new List();
+ public static List LastWarmersData = new List();
+ public static ThermoModels.GaugeModel LastGaugeData = new ThermoModels.GaugeModel();
public static bool LastIsNcConnected = false;
+
}
}
\ No newline at end of file
diff --git a/Thermo.Active/Properties/AssemblyInfo.cs b/Thermo.Active/Properties/AssemblyInfo.cs
index 831debe7..61cf208b 100644
--- a/Thermo.Active/Properties/AssemblyInfo.cs
+++ b/Thermo.Active/Properties/AssemblyInfo.cs
@@ -5,12 +5,12 @@ using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
-[assembly: AssemblyTitle("Active Server")]
-[assembly: AssemblyDescription("Active - Main HMI for CMS Machines")]
+[assembly: AssemblyTitle("Thermo Active Server")]
+[assembly: AssemblyDescription("Thermo Active - Main HMI for CMS Machines")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("CMS S.P.A.")]
-[assembly: AssemblyProduct("Active Server")]
-[assembly: AssemblyCopyright("Copyright © 2019")]
+[assembly: AssemblyProduct("Thermo Active Server")]
+[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -31,4 +31,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.4.1")]
+[assembly: AssemblyVersion("0.3.2")]
diff --git a/Thermo.Active/Thermo.Active.csproj b/Thermo.Active/Thermo.Active.csproj
index 58781720..3677d1d4 100644
--- a/Thermo.Active/Thermo.Active.csproj
+++ b/Thermo.Active/Thermo.Active.csproj
@@ -58,9 +58,6 @@
4
-
- ..\Libs\CMS_CORE_Library.dll
-
..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll
@@ -122,6 +119,8 @@
..\packages\Owin.1.0\lib\net40\Owin.dll
+
+
..\packages\Swashbuckle.Core.5.6.0\lib\net40\Swashbuckle.Core.dll
@@ -166,6 +165,10 @@
..\packages\Microsoft.AspNet.WebPages.2.0.20505.0\lib\net40\System.Web.WebPages.Razor.dll
+
+ ..\Libs\System.Windows.Interactivity.dll
+
+
@@ -207,6 +210,7 @@
..\packages\Microsoft.AspNet.WebPages.WebData.2.0.20505.0\lib\net40\WebMatrix.WebData.dll
+
@@ -218,6 +222,7 @@
+
@@ -225,10 +230,8 @@
-
-
@@ -16123,6 +16126,10 @@
+
+ {4abf8eef-2b23-483e-acdc-53214fe28681}
+ CMS_CORE_Library
+
{49b04d99-0ecd-4900-86d3-7098d61314d7}
Thermo.Active.CmsConnectGateway
@@ -16427,6 +16434,7 @@
+
diff --git a/Thermo.Active/wwwroot/assets/icons/png/bg.png b/Thermo.Active/wwwroot/assets/icons/png/bg.png
index 8ff9db1b..3dbca6a4 100644
Binary files a/Thermo.Active/wwwroot/assets/icons/png/bg.png and b/Thermo.Active/wwwroot/assets/icons/png/bg.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/bt.png b/Thermo.Active/wwwroot/assets/icons/png/bt.png
new file mode 100644
index 00000000..ca26b0a2
Binary files /dev/null and b/Thermo.Active/wwwroot/assets/icons/png/bt.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/bt@2x.png b/Thermo.Active/wwwroot/assets/icons/png/bt@2x.png
new file mode 100644
index 00000000..8c9d78a7
Binary files /dev/null and b/Thermo.Active/wwwroot/assets/icons/png/bt@2x.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/bt@3x.png b/Thermo.Active/wwwroot/assets/icons/png/bt@3x.png
new file mode 100644
index 00000000..af4b48e9
Binary files /dev/null and b/Thermo.Active/wwwroot/assets/icons/png/bt@3x.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/canc.png b/Thermo.Active/wwwroot/assets/icons/png/canc.png
index eb152e65..28eead5a 100644
Binary files a/Thermo.Active/wwwroot/assets/icons/png/canc.png and b/Thermo.Active/wwwroot/assets/icons/png/canc.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/dashboard.png b/Thermo.Active/wwwroot/assets/icons/png/dashboard.png
new file mode 100644
index 00000000..3478f9a8
Binary files /dev/null and b/Thermo.Active/wwwroot/assets/icons/png/dashboard.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/dashboard@2x.png b/Thermo.Active/wwwroot/assets/icons/png/dashboard@2x.png
new file mode 100644
index 00000000..5000e8ee
Binary files /dev/null and b/Thermo.Active/wwwroot/assets/icons/png/dashboard@2x.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/dashboard@3x.png b/Thermo.Active/wwwroot/assets/icons/png/dashboard@3x.png
new file mode 100644
index 00000000..f6ece941
Binary files /dev/null and b/Thermo.Active/wwwroot/assets/icons/png/dashboard@3x.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/programmazione.png b/Thermo.Active/wwwroot/assets/icons/png/programmazione.png
new file mode 100644
index 00000000..7250da16
Binary files /dev/null and b/Thermo.Active/wwwroot/assets/icons/png/programmazione.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/programmazione@2x.png b/Thermo.Active/wwwroot/assets/icons/png/programmazione@2x.png
new file mode 100644
index 00000000..28a763cd
Binary files /dev/null and b/Thermo.Active/wwwroot/assets/icons/png/programmazione@2x.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/programmazione@3x.png b/Thermo.Active/wwwroot/assets/icons/png/programmazione@3x.png
new file mode 100644
index 00000000..1c6b55bf
Binary files /dev/null and b/Thermo.Active/wwwroot/assets/icons/png/programmazione@3x.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/star.png b/Thermo.Active/wwwroot/assets/icons/png/star.png
new file mode 100644
index 00000000..51d56b48
Binary files /dev/null and b/Thermo.Active/wwwroot/assets/icons/png/star.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/star@2x.png b/Thermo.Active/wwwroot/assets/icons/png/star@2x.png
new file mode 100644
index 00000000..4ac4b609
Binary files /dev/null and b/Thermo.Active/wwwroot/assets/icons/png/star@2x.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/star@3x.png b/Thermo.Active/wwwroot/assets/icons/png/star@3x.png
new file mode 100644
index 00000000..20455aa9
Binary files /dev/null and b/Thermo.Active/wwwroot/assets/icons/png/star@3x.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/submit.png b/Thermo.Active/wwwroot/assets/icons/png/submit.png
index aa0cb974..803bd5b9 100644
Binary files a/Thermo.Active/wwwroot/assets/icons/png/submit.png and b/Thermo.Active/wwwroot/assets/icons/png/submit.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/png/tast-disable.png b/Thermo.Active/wwwroot/assets/icons/png/tast-disable.png
new file mode 100644
index 00000000..95c33ed2
Binary files /dev/null and b/Thermo.Active/wwwroot/assets/icons/png/tast-disable.png differ
diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg
new file mode 100644
index 00000000..687e52b5
--- /dev/null
+++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg
@@ -0,0 +1,63 @@
+
+
+
+
diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg
new file mode 100644
index 00000000..dae661a9
--- /dev/null
+++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg
@@ -0,0 +1,124 @@
+
+
+
+
diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg
new file mode 100644
index 00000000..b6970a13
--- /dev/null
+++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg
@@ -0,0 +1,101 @@
+
+
diff --git a/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less b/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less
index 08a4befb..8413732d 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less
@@ -1,116 +1,72 @@
// out: false, sourceMap: false, main: ../style.less
-@import "colors.less";
-
-.arch{
- display:flex;
- flex-direction:column;
-
- .kW {
- width: 16px;
- height: 11px;
- font-family: WorkSans;
- font-size: 12px;
- font-weight: 800;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- text-align: center;
- margin-left:20px ;
- color: @color-darkish-blue;
-
- }
- .Potenza {
- width: 65px;
- height: 65px;
- font-family: WorkSans;
- font-size: 14px;
- font-weight: normal;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- text-align: center;
- margin-left: -8px;
- color: @color-darkish-blue;
- }
- .Bar {
- width: 16px;
- height: 11px;
- font-family: WorkSans;
- font-size: 9.7px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- text-align: center;
- color: @color-darkish-blue;
- }
- .Aria {
- width: 23px;
- height: 14px;
- font-family: WorkSans;
- font-size: 10px;
- font-weight: normal;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- text-align: end;
- color: @color-darkish-blue;
- }
+ @import "colors.less";
-.gauge-container {
- width: 90px;
- height: 90px;
- display: block;
- float: left;
- padding: -130px;
- margin: 56px;
- border-radius: 3px;
- position: relative;
- margin-top:60px;
- margin-left: -10px;
-}
-.label {
- color:@color-darkish-blue;
- font-family: monospace;
- font-size: 1.5em;
- margin-left:10px;
-}
-.gauge-container > .gauge > .dial {
- stroke:@color-darkish-blue;
- stroke-width: 2;
-}
-.gauge-container > .gauge > .value {
- stroke:@color-darkish-blue;
- stroke-width: 2;
-}
-.gauge-container > .gauge > .value-text {
- color:@color-darkish-blue;
- font-family: sans-serif;
- font-weight: bold;
- font-size: 3.9px;
- margin-top:10px;
+ .arch {
+ display: flex;
+ justify-content: flex-end;
+ flex: 1;
-}
-.gauge-container.three > .gauge > .dial {
- stroke:@color-silver;
- stroke-width: 4;
-}
-.gauge-container.three > .gauge > .value {
- stroke: @color-darkish-blue;
- stroke-width: 5;
-}
-.gauge-container.three > .gauge > .value-text {
- fill: color-darkish-blue;
-}
-.labels{
- display:flex;
- flex-direction:column;
- margin-left: 19px;
- margin-top:-94px;
-}
-}
\ No newline at end of file
+ .box-gauge {
+ width: 68px;
+
+ div {
+
+ &:last-of-type {
+ margin-top: -25px;
+ display: flex;
+ flex-direction: column;
+ text-align: center;
+
+ label {
+ font-size: 12px;
+ font-weight: normal;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: @color-darkish-blue;
+ }
+ }
+
+ }
+
+ .gauge-container {
+ width: 68px;
+ height: 68px;
+ display: block;
+ border-radius: 3px;
+ }
+
+ .gauge-container>.gauge>.dial {
+ stroke: @color-darkish-blue;
+ stroke-width: 2;
+ }
+
+ .gauge-container>.gauge>.value {
+ stroke: @color-darkish-blue;
+ stroke-width: 2;
+ }
+
+ .gauge-container>.gauge>.value-text {
+ color: @color-darkish-blue;
+ font-weight: bold;
+ font-size: 20px;
+ }
+
+ .gauge-container.three>.gauge>.dial {
+ stroke: @color-silver;
+ stroke-width: 4;
+ }
+
+ .gauge-container.three>.gauge>.value {
+ stroke: @color-darkish-blue;
+ stroke-width: 5;
+ }
+
+ .gauge-container.three>.gauge>.value-text {
+ fill: @color-darkish-blue;
+ }
+ }
+ }
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/arretramento-riscaldi.less b/Thermo.Active/wwwroot/assets/styles/base/arretramento-riscaldi.less
index 34dc22c6..a26dfa1a 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/arretramento-riscaldi.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/arretramento-riscaldi.less
@@ -2,9 +2,9 @@
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
-@modal: modal;
-.@{modal}.estrazione-info {
- width: 560px;
- height: 411px;
+
+.modal.estrazione-info {
+ width: 560px;
+ height: 411px;
}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/avvio-prod.less b/Thermo.Active/wwwroot/assets/styles/base/avvio-prod.less
new file mode 100644
index 00000000..dd4e2dd3
--- /dev/null
+++ b/Thermo.Active/wwwroot/assets/styles/base/avvio-prod.less
@@ -0,0 +1,34 @@
+// out: false, sourceMap: false, main: ../style.less
+@import "grid-system.less";
+@import "colors.less";
+@import "fonts.less";
+
+
+.modal.avvio-produzione-info {
+ margin-top: 100px;
+ width: 653px;
+ height: 616px;
+
+ section.body {
+
+ section {
+ justify-content: center;
+
+ .specific {
+
+ .disabled {
+ width: 420px;
+ height: 330px;
+ }
+
+ .tast {
+ margin-left: 25%;
+ }
+
+ }
+
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/ciclo.less b/Thermo.Active/wwwroot/assets/styles/base/ciclo.less
index 3c7a79af..483ca89a 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/ciclo.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/ciclo.less
@@ -2,95 +2,50 @@
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
-@modal: modal;
-.@{modal}.ciclo-info {
-
- section{
- .specific{
- padding: 0 10px;
+.modal.ciclo-info {
- .caricatore-buttons{
+ section {
- button{
- margin-right: 15px;
- margin-left: 5px;
- width: 48px;
- height: 48px;
- object-fit: contain;
- border-radius: 2px;
- box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.5);
- border: none;
- background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
+ .specific {
+ padding: 0 10px;
- &:last-of-type{
- border: solid 1px #001e48;
- background-image: linear-gradient(to bottom, #1756ad, #002680);
- }
+ .caricatore-buttons {
- }
+ button {
+ margin-right: 15px;
+ margin-left: 5px;
+ width: 48px;
+ height: 48px;
+ object-fit: contain;
+ border-radius: 2px;
+ box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.5);
+ border: none;
+ background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
- }
-
- .svg-area{
-
- .disegnoCaricatore{
- flex-shrink: 0;
- width: 1137px;
- height: 707px;
- }
-
- .input-circles{
-
- label{
- object-fit: contain;
- background-color: #979797;
- }
-
- .circle1{
- position: relative;
- top: 200px;
- right: 25px;
- }
-
- .circle2{
- position: relative;
- top: 400px;
- right: 25px;
- }
-
- .circle3{
- width: 135px;
- position: relative;
- top: 545px;
- right: 410px;
- }
-
- .circle4{
- position: relative;
- top: 585px;
- right: 200px;
- }
-
- }
-
- }
-
- .box {
- margin-bottom: 10px;
- width: 500px;
-
- .body{
- padding: 5px 10px;
+ &:last-of-type {
+ border: solid 1px #001e48;
+ background-image: linear-gradient(to bottom, #1756ad, #002680);
}
}
}
+
}
-
-}
+ .box {
+ margin-bottom: 10px;
+ width: 500px;
+ .body {
+ padding: 5px 10px;
+ }
+
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/circlegantt.less b/Thermo.Active/wwwroot/assets/styles/base/circlegantt.less
new file mode 100644
index 00000000..83f1a351
--- /dev/null
+++ b/Thermo.Active/wwwroot/assets/styles/base/circlegantt.less
@@ -0,0 +1,92 @@
+// out: false, sourceMap: false, main: ../style.less
+@import "grid-system.less";
+@import "colors.less";
+@import "fonts.less";
+
+.circle-gantt{
+ height: 70px;
+
+ .specific{
+
+ div{
+
+ &:first-of-type{
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+ height: 70px;
+ object-fit: contain;
+ border-radius: 2px;
+ background-color: #57636b;
+
+ label{
+ margin-left: 37%;
+ }
+
+ }
+
+ &:last-of-type{
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ margin-top: -66px;
+ height: 40px;
+ object-fit: contain;
+ border-radius: 2px;
+ background-color: #c0c7cc;
+
+ label{
+ margin-left: 25%;
+ }
+
+ }
+
+ }
+
+ &:first-of-type{
+
+ div{
+
+ &:first-of-type{
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+ width: 34px;
+ height: 70px;
+ object-fit: contain;
+ border-radius: 2px;
+ background-color: #57636b;
+
+ label{
+ margin-left: 25%;
+ }
+
+ }
+
+ &:last-of-type{
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+ margin-top: -66px;
+ width: 34px;
+ height: 40px;
+ object-fit: contain;
+ border-radius: 2px;
+ background-color: #c0c7cc;
+
+ img{
+ margin-left: 25%;
+ flex-shrink: 0;
+ width: 20px;
+ height: 20px;
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/controstamposetup.less b/Thermo.Active/wwwroot/assets/styles/base/controstamposetup.less
index d06c14d1..7a85575b 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/controstamposetup.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/controstamposetup.less
@@ -2,45 +2,39 @@
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
-@modal: modal;
-.@{modal}.controstamposetup-info {
- width: 1820px;
- height: 980px;
- section{
+.modal.controstamposetup-info {
- .controstampo-cycle{
- margin-left: 37%;
- }
+ section {
- .specific{
- padding-left: 5px;
-
- .box {
- margin-bottom: 5px;
- background-color: #e5f3ff;
-
- &:first-of-type{
- background-color: white;
- }
-
- &:last-of-type{
- background-color: #b3dbff;
- }
-
- }
-
- .input-area{
- width: 480px;
- }
-
- }
-
+ .controstampo-cycle {
+ margin-left: 37%;
}
-}
+ .specific {
+ padding-left: 5px;
+ .box {
+ margin-bottom: 5px;
+ background-color: #e5f3ff;
+ &:first-of-type {
+ background-color: white;
+ }
+ &:last-of-type {
+ background-color: #b3dbff;
+ }
+ }
+
+ .input-area {
+ width: 480px;
+ }
+
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less
index f0f410dc..dd2347d1 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less
@@ -2,136 +2,486 @@
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
-@modal: modal;
-.dashboard{
- height: 100%;
- width: 100%;
- display: flex;
+
+
+.dashboard {
+ height : 100%;
+ width : 100%;
background-image: url("../../assets/icons/png/bg.png");
- position: fixed;
- z-index: 1001;
+ position : fixed;
+ z-index : 1001;
+ display : flex;
+ flex-direction : column;
+ justify-content : flex-start;
- .ribbon-container{
- width: 496px;
- height: 80px;
- z-index: 900;
- }
-
- .box-date{
+ .header {
+ width : 100%;
display: flex;
- width: 40%;
- margin-left: 100px;
- div{
- flex-shrink: 0;
- font-size: 47px;
- text-align: right;
- font-weight: 500;
+ .ribbon-container {
+ height : 80px;
+ z-index: 900;
}
- time {
- flex-shrink: 0;
- transition: color 200ms ease-in-out;
- margin-left: 28px;
- display: flex;
- font-size: 120px;
+ .box-date {
+ display : flex;
+ width : 70%;
+ margin-left: 100px;
+
+ div {
+ flex-shrink: 0;
+ font-size : 47px;
+ text-align : right;
+ font-weight: 500;
+ }
+
+ time {
+ flex-shrink: 0;
+ transition : color 200ms ease-in-out;
+ margin-left: 28px;
+ display : flex;
+ font-size : 120px;
+ }
+
}
- }
+ .arch {
+ width: 100%;
- .arch{
- display: flex;
- justify-content: flex-start;
- position: relative;
- width: 30%;
- text-align: center;
+ .box-gauge {
+ height: 150px;
+ width : 150px;
- .box-gauge{
- position: relative;
- display: inline-block;
-
- .gauge-container{
- display: inline-block;
-
- .gauge{
- width: 126px;
+ .gauge-container,
+ .three {
+ width : 126px;
height: 92px;
+
+ .gauge {
+
+ .value {
+ stroke: #1791ff;
+ }
+
+ .value-text {
+ fill: #4b4b4b;
+ }
+
+ }
}
- path.value{
- stroke: @color-clear-blue;
- stroke-width: 5;
- }
-
- text{
- font-size: 20px;
- }
-
- path.dial{
- stroke: @color-whitegrey;
- stroke-width: 5;
+ div {
+
+ &:last-of-type {
+ margin-top: -10px;
+
+ label {
+
+ &:first-of-type {
+ font-size : 18px;
+ font-weight : 300;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : normal;
+ letter-spacing: normal;
+ text-align : center;
+ color : #4b4b4b;
+ }
+
+ &:last-of-type {
+ font-size : 26px;
+ font-weight : 500;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : 1.96;
+ letter-spacing: normal;
+ text-align : center;
+ color : #4b4b4b;
+ }
+
+ }
+ }
+
}
+
}
-
- span{
- position: absolute;
- top: 60px;
- left: 53px;
- font-size: 14px;
- }
-
- label{
- text-align: center;
- text-transform: uppercase;
- font-weight: 600;
- }
-
+
}
- }
- .header-buttons{
- display: inline-block;
+ .header-buttons {
+ display: inline-block;
- .box-close-dashboard{
- height: 70px;
- text-align: right;
+ .box-close-dashboard {
+ height : 70px;
+ text-align: right;
- button.modal-close{
- background-color: #4B4B4B;
- margin: 23px;
+ button.modal-close {
+ background-color: #4B4B4B;
+ margin : 23px;
+ }
}
- }
.user-info {
- margin-top: 10px;
- display: flex;
- font-size: 25px;
- color: @color-input-light;
- flex-grow: 1;
+ margin-top : 10px;
+ display : flex;
+ font-size : 25px;
+ color : @color-input-light;
+ flex-grow : 1;
justify-content: flex-end;
- margin-right: 21px;
+ margin-right : 21px;
button.profile {
- width: 48px;
- height: 48px;
+ width : 48px;
+ height : 48px;
background-image: url("../profile.png");
- color: #000;
- background-size: cover;
- border: none;
+ color : #000;
+ background-size : cover;
+ border : none;
background-color: transparent;
-
+
&.colorWhite {
color: #FFF;
}
}
- div{
- align-self: center;
+ div {
+ align-self : center;
margin-right: 10px;
- font-size: 18px;
+ font-size : 18px;
}
}
-
+
+ }
}
+
+ section {
+ margin-top : -400px;
+ height : 722px;
+ display : flex;
+ justify-content: flex-end;
+ padding-right : 15px;
+ padding-bottom : 50px;
+
+ .specific {
+ display : flex;
+ flex-direction : column;
+ justify-content: flex-end;
+
+ div {
+ display: flex;
+ }
+
+ //inizio sezione style del primo specific
+ &:first-of-type {
+ margin-right: 15%;
+
+ div {
+
+ &:first-of-type {
+
+ img {
+ flex-shrink: 0;
+ width : 41px;
+ height : 41px;
+ object-fit : contain;
+ }
+
+ label {
+ flex-shrink : 0;
+ font-size : 54px;
+ font-weight : normal;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : normal;
+ letter-spacing: normal;
+ text-align : right;
+ color : #4b4b4b;
+ }
+
+ }
+
+ &:last-of-type {
+ margin: unset;
+
+ button {
+ flex-shrink : 0;
+ width : 65px;
+ height : 65px;
+ box-shadow : 0 2px 10px 0 rgba(0, 0, 0, 0.5);
+ border : solid 3px #4b4b4b;
+ background-color: rgba(255, 255, 255, 0.2);
+ border-radius : 50%;
+ color : #4b4b4b;
+ font-size : 50px;
+ text-align : center;
+ }
+
+ label {
+ flex-shrink: 0;
+
+ &:first-of-type {
+
+ font-size : 12px;
+ font-weight : 500;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : 1;
+ letter-spacing: normal;
+ text-align : center;
+ color : #4b4b4b;
+ }
+
+ &:last-of-type {
+
+ font-size : 25px;
+ font-weight : 500;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : 1;
+ letter-spacing: normal;
+ text-align : center;
+ color : #4b4b4b;
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+ //inizio sezione style del secondo specific
+ label {
+ flex-shrink: 0;
+
+ &:first-of-type {
+
+ font-size : 26px;
+ font-weight : 500;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : 1.96;
+ letter-spacing: normal;
+ text-align : center;
+ color : #4b4b4b;
+ }
+
+ &:last-of-type {
+
+ font-size : 120px;
+ font-weight : 300;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : normal;
+ letter-spacing: normal;
+ text-align : center;
+ color : #4b4b4b;
+ }
+
+ }
+
+ //inizio sezione style del terzo specific
+ &:last-of-type {
+ margin-left: 15%;
+
+ div {
+ flex-shrink : 0;
+ width : 542px;
+ height : 71px;
+ background-color: rgba(0, 0, 0, 0.5);
+ }
+
+ .actual {
+ background-color: unset;
+ width : unset;
+ height : unset;
+
+ .specific {
+ background-color: unset;
+ width : unset;
+ height : unset;
+ margin : unset;
+
+ label {
+ flex-shrink: 0;
+
+ &:first-of-type {
+ font-size : 26px;
+ font-weight : 500;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : 1.96;
+ letter-spacing: normal;
+ text-align : center;
+ color : #4b4b4b;
+ }
+
+ &:last-of-type {
+ font-size : 120px;
+ font-weight : 300;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : normal;
+ letter-spacing: normal;
+ text-align : center;
+ color : #4b4b4b;
+ }
+
+ }
+
+ }
+
+ }
+
+ aside {
+ margin-top: 5px;
+ width : 641px;
+ height : 100%;
+ overflow-x: hidden;
+
+ .component {
+ width : 621px;
+ height: 77px;
+ }
+
+ }
+
+ .component-info {
+ width : unset;
+ height : unset;
+ background-color: unset;
+ display : flex;
+ flex-direction : column;
+
+ section {
+ margin : unset;
+ padding : unset;
+ height : unset;
+ width : unset;
+ display : flex;
+ justify-content: flex-end;
+
+ section {
+ margin : unset;
+ padding : unset;
+ height : unset;
+ width : unset;
+ display : flex;
+ flex-direction: column;
+
+ .component {
+ width : 478px;
+ height : 60px;
+ background-color: #e8e8e8;
+
+ div {
+ flex-shrink: unset;
+
+ button {
+ border-color : black;
+ width : 50PX;
+ height : 50px;
+ border-radius : 50%;
+ background-color: unset;
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+ .component {
+ width : 641px;
+ height : 84px;
+ background-color: #e8e8e8;
+ display : flex;
+ flex-direction : column;
+ justify-content : flex-end;
+
+ div {
+ flex-shrink : 0;
+ margin : auto;
+ padding : 0px 15px;
+ width : unset;
+ height : unset;
+ background-color: unset;
+
+
+ label {
+ flex-shrink : 0;
+ font-size : 54px;
+ font-weight : 500;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : normal;
+ letter-spacing: normal;
+ text-align : right;
+ color : #4b4b4b;
+ }
+
+ .specific {
+ height : unset;
+ width : unset;
+ background-color: unset;
+ margin : unset;
+
+ label {
+ flex-shrink: 0;
+
+ &:first-of-type {
+ font-size : 12px;
+ font-weight : 500;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : 1;
+ letter-spacing: normal;
+ text-align : center;
+ color : #4b4b4b;
+ }
+
+ &:last-of-type {
+ font-size : 25px;
+ font-weight : 500;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : 1;
+ letter-spacing: normal;
+ text-align : center;
+ color : #4b4b4b;
+ }
+
+ }
+
+ }
+
+ button {
+ height : 20px;
+ width : 20px;
+ background-color: black;
+ }
+
+ }
+
+ span {
+ flex-shrink : 0;
+ width : 100%;
+ height : 1px;
+ background-color: #676767;
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/estrazione.less b/Thermo.Active/wwwroot/assets/styles/base/estrazione.less
index d32bebe1..98184230 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/estrazione.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/estrazione.less
@@ -2,29 +2,26 @@
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
-@modal: modal;
-.@{modal}.estrazione-info {
- width: 1820px;
- height: 785px;
+.modal.estrazione-info {
- section.body{
+ section.body {
- section{
+ section {
- .specific {
- justify-content: flex-end;
- padding-left: 10px;
-
- .box{
- margin:0;
- background-color: #e5f3ff;
- }
-
- }
+ .specific {
+ justify-content: flex-end;
+ padding-left: 10px;
+ .box {
+ margin: 0;
+ background-color: #e5f3ff;
}
- }
+ }
+
+ }
+
+ }
}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/footer.less b/Thermo.Active/wwwroot/assets/styles/base/footer.less
index 79061d06..583e9a62 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/footer.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/footer.less
@@ -126,7 +126,10 @@ footer {
background-image: url(../icons/png/SCADA-big.png);
background-size: cover;
}
-
+ button.ricetta{
+ background-image: url(../icons/png/gestione-programmi-BIG.png);
+ background-size: cover;
+ }
button.jobeditor{
background-image: url(../icons/png/editor-BIG.png);
background-size: cover;
@@ -135,6 +138,14 @@ footer {
background-image: url(../icons/png/users-BIG.png);
background-size: cover;
}
+ button.progrprerisc{
+ background-image: url(../icons/png/programmazione.png);
+ background-size: cover;
+ }
+ button.clock{
+ background-image: url(../icons/png/dashboard.png);
+ background-size: cover;
+ }
button:active{
box-shadow: 0px 0px 1px 1px #FFF;
diff --git a/Thermo.Active/wwwroot/assets/styles/base/formato.less b/Thermo.Active/wwwroot/assets/styles/base/formato.less
index d3681086..00dc6852 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/formato.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/formato.less
@@ -2,211 +2,58 @@
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
-@modal: modal;
+
+.modal.formato-info {
+
+ section {
+ .tast {
+ margin-left: -300px;
+ }
+ }
-.@{modal}.formato-info {
+ .radio-buttons {
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
- .radio-buttons{
- display: flex;
- justify-content: flex-start;
+ input {
- input{
-
- width: 24px;
- height: 24px;
- object-fit: contain;
- border-radius: 12px;
- background-color: #f1f1f1;
-
- }
-
- label{
-
- font-size: 18px;
- font-weight: normal;
- font-stretch: normal;
- font-style: normal;
- line-height: 1.11;
- letter-spacing: normal;
- text-align: right;
- color: #4b4b4b;
-
- &:first-of-type{
- font-size: 24px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- text-align: center;
- color: @color-darkish-blue;
- padding-right: 200px;
- padding-left: 20px;
- }
-
- }
+ width: 24px;
+ height: 24px;
+ object-fit: contain;
+ border-radius: 12px;
+ background-color: #f1f1f1;
}
- .specific{
- margin-left: 5px;
- width: 1271px;
- height: 825px;
-
- .svg-area{
- margin-left: 120px;
- margin-top: 70px;
- width: 999px;
- height: 527px;
-
- .disegnoStampo {
- height: 473px;
- width: 723px;
- }
-
- .disegnoLastra {
- height: 468px;
- width: 854px;
- }
-
- .disegnoPiastra {
- height: 468px;
- width: 751px;
- }
-
- .disegnoCornice {
- height: 468px;
- width: 744px;
- }
-
- .disegnoControstampo {
- height: 468px;
- width: 692px;
- }
-
- .border-cornice {
-
- .circle1{
- position: relative;
- right: 730px;
- top: 300px;
- }
-
- .circle2{
- position: relative;
- right: 180px;
- top: 230px;
- }
-
- }
-
- .border-piastra {
-
- .circle1{
- position: relative;
- right: 800px;
- top: 310px;
- }
-
- .circle2{
- position: relative;
- right: 180px;
- top: 220px;
- }
-
- }
-
- .border-lastra {
-
- .circle1{
- position: relative;
- right: 820px;
- top: 100px;
- }
-
- .circle2{
- position: relative;
- right: 800px;
- top: 240px;
- }
-
- .circle3{
- position: relative;
- right: 200px;
- top: 180px;
- }
-
- }
-
- .border-stampo {
-
- .circle1{
- position: relative;
- right: 780px;
- top: 80px;
- }
-
- .circle2{
- position: relative;
- right: 870px;
- top: 130px;
- }
-
- .circle3{
- position: relative;
- right: 720px;
- top: 240px;
- }
-
- .circle4{
- position: relative;
- right: 150px;
- top: 190px;
- }
-
- .circle5{
- position: relative;
- top: -50px;
- }
-
- }
-
- .border-controstampo {
-
- .circle1{
- position: relative;
- right: 730px;
- top: 140px;
- }
-
- }
-
- }
-
- .slides {
- margin-top: 45px;
- margin-left: 20px;
- width: 1241px;
- height: 160px;
- display: flex;
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
-
- img {
- flex-shrink: 0;
- width: 215px;
- height: 140px;
- margin-right: 25px;
- border: 1px solid #bbbcbc;
- }
-
- .imgborder {
- border: 1px solid @color-darkish-blue;
- }
-
- }
-
+ label {
+
+ font-size: 18px;
+ font-weight: normal;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1.11;
+ letter-spacing: normal;
+ text-align: right;
+ color: #4b4b4b;
+
+ &:first-of-type {
+ font-size: 24px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: @color-darkish-blue;
+ padding-right: 200px;
+ padding-left: 20px;
}
+ }
+
+ }
+
+
}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less
new file mode 100644
index 00000000..0f906139
--- /dev/null
+++ b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less
@@ -0,0 +1,193 @@
+ // out: false, sourceMap: false, main: ../style.less
+ @import "colors.less";
+
+ @gauge-h: 800px;
+ @gauge-w: 800px;
+
+ @smallgauge-h: @gauge-h - 30px;
+ @smallgauge-w: @gauge-w - 30px;
+
+ .box-graph-dashboard {
+ height : 610px;
+ display : flex;
+ align-items : center;
+ justify-content: flex-end;
+
+ .svg-dashboard {
+ background-repeat: no-repeat;
+ display : flex;
+ flex-direction : column;
+ justify-content : center;
+
+ &.dashboard3 {
+ margin-left: -150px;
+ margin-bottom : 250px;
+ height : 100px;
+ width : 900px;
+ background-size : 900px;
+ background-image: url(/assets/icons/svg/svg-dashboard3.svg);
+
+ label {
+ margin : unset;
+ font-size : 35px;
+ font-weight : 500;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : normal;
+ letter-spacing: normal;
+ text-align : center;
+ color : #4b4b4b;
+ }
+ }
+ }
+
+ .time-box {
+ display : flex;
+ flex-direction : column;
+ justify-content: center;
+ height : 100%;
+ margin-top: 200px;
+ margin-right: -150px;
+
+ .svg-dashboard {
+
+ label {
+ margin-top : 8px;
+ font-size : 26px;
+ font-weight : 500;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : 1.96;
+ letter-spacing: normal;
+ text-align : center;
+ color : #4b4b4b;
+ }
+
+ time {
+ font-size : 120px;
+ font-weight : 300;
+ font-stretch : normal;
+ font-style : normal;
+ line-height : normal;
+ letter-spacing: normal;
+ text-align : center;
+ color : #4b4b4b;
+ }
+
+ &.dashboard {
+ background-image: url(/assets/icons/svg/svg-dashboard.svg);
+ height : 178px;
+ width : 545px;
+ background-size : 545px;
+ position : relative;
+ }
+
+ &.dashboard2 {
+ height : 178px;
+ background-size : 545px;
+ width : 545px;
+ background-image: url(/assets/icons/svg/svg-dashboard2.svg);
+ }
+
+ }
+
+ .box-time-passed {
+ height : 117px;
+ margin : 40px 0px;
+ text-align : center;
+ display : flex;
+ justify-content: center;
+ flex-direction : column;
+
+ label {
+
+ &:first-of-type {
+ font-size: 26px;
+ }
+
+ &:last-of-type {
+ font-size: 54px;
+ }
+
+ }
+
+ }
+
+ }
+
+ .box-circle-piece {
+ margin-top: 200px;
+ display : flex;
+ align-items: center;
+ position : relative;
+ height : @gauge-h;
+ width : @gauge-w;
+
+ hr {
+ margin : auto;
+ height : 5px;
+ width : calc(@gauge-w/2);
+ background-color: gray;
+ z-index : 1;
+ border : none;
+ }
+
+ .gauge-container-dashboard {
+ width : @gauge-w;
+ height : @gauge-h;
+ border-radius: 5px;
+ position : absolute;
+ top : calc(~"50%" - (@gauge-h/2));
+ left: calc(~"50%" - (@gauge-w/2));
+
+ &.gauge1 {
+ width : @smallgauge-w;
+ height: @smallgauge-h;
+ top : calc(~"50%" - (@smallgauge-h/2));
+ left : calc(~"50%" - (@smallgauge-w/2));
+
+ .gauge {
+ .dial {
+ fill : #99CFFF;
+ stroke: #91A2B1;
+ }
+
+ .value {
+ stroke: #4DAAFF;
+ }
+
+ .value-text {
+ fill : black;
+ alignment-baseline: before-edge;
+ font-size : 20px;
+ }
+ }
+
+ }
+
+ &.gauge2 {
+
+ .gauge {
+
+ .value-text {
+ fill : black;
+ alignment-baseline: after-edge;
+ font-size : 20px;
+ }
+
+ .dial {
+ stroke: #003264;
+ }
+
+ .value {
+ stroke : #90C03D;
+ stroke-width: 2;
+ }
+ }
+ }
+
+ }
+
+
+ }
+ }
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/header.less b/Thermo.Active/wwwroot/assets/styles/base/header.less
index 295355f5..ac90d6d6 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/header.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/header.less
@@ -4,196 +4,195 @@
@header-button-size: 44px;
#app>header {
- display: flex;
- flex-flow: row nowrap;
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: center;
+ height: @header-height;
+ width: calc(~"100% - 152px");
+ position: absolute;
+ z-index: 801;
+ top: 0;
+ right: 0;
+ left: 0;
+
+ button {
+ font-size: 28px;
+ justify-content: center;
align-items: center;
- height: @header-height;
- width: calc(~"100% - 152px");
- position: absolute;
- z-index: 801;
- top: 0;
- right: 0;
- left: 0;
+ display: flex;
+ margin: 0 9px;
+ background-color: @color-header-button-background-color;
+ box-shadow: @color-header-button-box-shadow;
+ border-radius: @header-button-size /2;
+ border: none;
+ height: @header-button-size;
+ min-width: @header-button-size;
+ cursor: pointer;
+ color: @color-darkish-blue;
+ z-index: 1;
+ }
- button {
- font-size: 28px;
- justify-content: center;
- display: flex;
- margin: 0 9px;
- background-color: @color-header-button-background-color;
- box-shadow: @color-header-button-box-shadow;
- border-radius: @header-button-size /2;
- border: none;
- height: @header-button-size;
- min-width: @header-button-size;
- cursor: pointer;
- color: @color-darkish-blue;
- z-index: 1;
+ button.save-circle {
+ background-image: url("../../assets/icons/png/circle@2x.png");
+ background-size: cover;
+ }
+
+ button.dot-circle {
+ background-image: url("../../assets/icons/png/circledot@2x.png");
+ background-size: cover;
+ }
+
+ button:disabled {
+ filter: grayscale(100%);
+ }
+
+ button>img {
+ margin: auto;
+ height: @header-button-size/2;
+ margin: auto;
+ display: block;
+ }
+
+ button>img.h-20 {
+ height: 20px;
+ }
+
+ button>img.h-24 {
+ height: 24px;
+ }
+
+ button .machine-info small {
+ display: block;
+ text-align: left;
+ margin-left: 5px;
+
+ font-size: 11px;
+ }
+
+ button.red {
+ background-color: @color-scarlet;
+ color: white;
+ box-shadow: 0 3px 5px 0 rgba(0, 0, 0, 0.4), inset 0 1px 3px 0 rgba(0, 0, 0, 0.5);
+ }
+
+ button.blue {
+ background-color: @color-clear-blue;
+ color: white;
+ }
+
+ button.dark-blue {
+ background-color: @color-darkish-blue;
+ color: white;
+ }
+
+ button.dark-blue:active {
+ background-color: @color-clear-blue;
+ }
+
+ button.gray {
+ background-color: @color-greyish-brown;
+ color: white;
+ }
+
+ button.profile {
+ width: @header-button-size;
+ background-image: url("../profile.png");
+ color: #000;
+ background-size: cover;
+
+ &.colorWhite {
+ color: #FFF;
}
+ }
- button.save-circle {
- background-image: url("../../assets/icons/png/circle@2x.png");
- background-size: cover;
+ button.unclickable {
+ cursor: default;
+ }
+
+ &.turn-up .user-info time {
+ color: #fff;
+ }
+
+ .user-info {
+ display: flex;
+ right: 12px;
+ font-size: 25px;
+ color: @color-input-light;
+ justify-content: flex-end;
+
+ .window-buttons,
+ time {
+ transition: color 200ms ease-in-out;
+ margin-left: 10px;
+ padding: 0 18px;
+ border-left: 2px solid #bbbcbc;
+ border-right: 2px solid #bbbcbc;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ i {
+ margin-right: 10px;
+ }
}
+ }
- button.dot-circle {
- background-image: url("../../assets/icons/png/circledot@2x.png");
- background-size: cover;
- }
-
- button:disabled {
- filter: grayscale(100%);
- }
-
- button>img {
- margin: auto;
- height: @header-button-size/2;
- margin: auto;
- display: block;
- }
-
- button>img.h-20 {
- height: 20px;
- }
-
- button>img.h-24 {
- height: 24px;
- }
-
- button .machine-info small {
- display: block;
- text-align: left;
- margin-left: 5px;
-
- font-size: 11px;
- }
-
- button.red {
- background-color: @color-scarlet;
- color: white;
- box-shadow: 0 3px 5px 0 rgba(0, 0, 0, 0.4), inset 0 1px 3px 0 rgba(0, 0, 0, 0.5);
- }
-
- button.blue {
- background-color: @color-clear-blue;
- color: white;
- }
-
- button.dark-blue {
- background-color: @color-darkish-blue;
- color: white;
- }
-
- button.dark-blue:active {
- background-color: @color-clear-blue;
- }
-
- button.gray {
- background-color: @color-greyish-brown;
- color: white;
- }
-
- button.profile {
- width: @header-button-size;
- background-image: url("../profile.png");
- color: #000;
- background-size: cover;
-
- &.colorWhite {
- color: #FFF;
- }
- }
-
- button.unclickable {
- cursor: default;
- }
-
- &.turn-up .user-info time {
- color: #fff;
- }
-
- .user-info {
- display: flex;
- position: absolute;
- right: 12px;
- font-size: 25px;
- color: @color-input-light;
- flex-grow: 1;
- justify-content: flex-end;
-
- .window-buttons,
- time {
- transition: color 200ms ease-in-out;
- margin-left: 10px;
- padding: 0 18px;
- border-left: 2px solid #bbbcbc;
- border-right: 2px solid #bbbcbc;
- display: flex;
- justify-content: center;
- align-items: center;
-
- i {
- margin-right: 10px;
- }
- }
- }
-
- .machine-info {
- min-width: 60px;
- margin-left: 5px;
- margin-right: 5px;
- }
+ .machine-info {
+ min-width: 60px;
+ margin-left: 5px;
+ margin-right: 5px;
+ }
}
.colorWhite {
- color: #fff !important;
+ color: #fff !important;
}
.window-buttons {
- height: 80px;
+ height: 80px;
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: center;
+ -webkit-user-select: none;
+
+ button {
+ font-size: 28px;
+ justify-content: center;
display: flex;
- flex-flow: row nowrap;
- align-items: center;
- -webkit-user-select: none;
+ margin: 0 9px;
+ background-color: @color-header-button-background-color;
+ box-shadow: @color-header-button-box-shadow;
+ border-radius: @header-button-size /2;
+ border: none;
+ height: @header-button-size;
+ min-width: @header-button-size;
+ cursor: pointer;
+ color: @color-darkish-blue;
+ }
- button {
- font-size: 28px;
- justify-content: center;
- display: flex;
- margin: 0 9px;
- background-color: @color-header-button-background-color;
- box-shadow: @color-header-button-box-shadow;
- border-radius: @header-button-size /2;
- border: none;
- height: @header-button-size;
- min-width: @header-button-size;
- cursor: pointer;
- color: @color-darkish-blue;
- }
+ button.gray {
+ background-color: @color-greyish-brown;
+ color: white;
+ }
- button.gray {
- background-color: @color-greyish-brown;
- color: white;
- }
+ position: fixed;
+ z-index: 1000;
+ top: 0;
+ right: 0;
+ display: flex;
+ padding-right: 8px !important;
- position: fixed;
- z-index: 1000;
- top: 0;
- right: 0;
- display: flex;
- padding-right: 8px !important;
+ i {
+ margin: auto !important;
+ font-size: 16px;
+ font-weight: normal;
+ }
- i {
- margin: auto !important;
- font-size: 16px;
- font-weight: normal;
- }
+ .close {
+ font-size: 32px;
+ }
- .close {
- font-size: 32px;
- }
-
- .close:hover {
- background-color: @button-success-color-to;
- }
+ .close:hover {
+ background-color: @button-success-color-to;
+ }
}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/imbutitura.less b/Thermo.Active/wwwroot/assets/styles/base/imbutitura.less
index 1c502af0..2d22fcd0 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/imbutitura.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/imbutitura.less
@@ -3,25 +3,20 @@
@import "colors.less";
@import "fonts.less";
-.@{modal}.imbutitura-info {
- width: 1820px;
- height: 980px;
+.modal.imbutitura-info {
+ section {
- section{
+ .specific {
+ padding-left: 5px;
+ justify-content: flex-end;
- .specific{
- padding-left: 5px;
- justify-content: flex-end;
-
- .box {
- margin-bottom: 5px;
- background-color: #e5f3ff;
- }
-
+ .box {
+ margin-bottom: 5px;
+ background-color: #e5f3ff;
}
-
+
}
-
+
}
-
+}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/layout.less b/Thermo.Active/wwwroot/assets/styles/base/layout.less
index 8826bd99..fdd22a9b 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/layout.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/layout.less
@@ -1,15 +1,20 @@
// out: false, sourceMap: false, main: ../style.less
+@import "setup.less";
@import "colors.less";
@import "modals.less";
+@import "graph-dashboard.less";
@import "dashboard.less";
@import "pirometro.less";
@import "riscaldi.less";
@import "formato.less";
@import "slider.less";
@import "tastierino.less";
+@import "preriscaldo-dashboard.less";
+@import "circlegantt.less";
@import "paddle.less";
@import "arretramento-riscaldi.less";
-@import "setup.less";
+@import "arch-interface.less";
+@import "avvio-prod.less";
@import "ciclo.less";
@import "raffreddamento.less";
@import "processo.less";
@@ -57,7 +62,6 @@
@import "users.less";
@import "tooltip.less";
-
@background-color: rgb(216, 216, 216);
@handle-width: 48px;
@handle-height: 32px;
@@ -130,6 +134,12 @@ body {
overflow: hidden;
}
+#main-view>.container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
#app {
margin: 0;
padding: 0;
diff --git a/Thermo.Active/wwwroot/assets/styles/base/opzioni.less b/Thermo.Active/wwwroot/assets/styles/base/opzioni.less
index 7eed4148..d0adbb1e 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/opzioni.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/opzioni.less
@@ -2,93 +2,90 @@
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
-@modal: modal;
-.@{modal}.opzioni-info {
- width: 1820px;
- height: 980px;
+.modal.opzioni-info {
- hr {
- width: 2px;
- height: 830px;
- background-color: #979797;
- margin: 0;
- }
- section.body{
+ hr {
+ width: 2px;
+ height: 830px;
+ background-color: #979797;
+ margin: 0;
+ }
- section{
- padding: 0px;
+ section.body {
- .specific{
+ section {
+ padding: 0px;
- &:last-of-type{
- margin-left: 100px;
- width: 471px;
- }
-
- &:first-of-type{
-
- .box-color{
- background-color: #ffffff;
- }
-
- button{
- background-color: #dddddd;
- display: block;
- color: #000000;
- padding: 22px 16px;
- width: 550px;
- height: 64px;
- border: none;
- text-align: left;
- cursor: pointer;
- font-size: 17px;
- }
-
- .active{
- background-color: rgba(23, 145, 255, 0.75);
- color:#ffffff;
- }
-
- label{
- font-size: 14px;
- width: 60px;
- margin-left: 5px;
- margin-right: 30px;
- }
-
- }
+ .specific {
+ &:last-of-type {
+ margin-left: 100px;
+ width: 471px;
}
- aside{
+ &:first-of-type {
- button{
+ .box-color {
+ background-color: #ffffff;
+ }
+
+ button {
+ background-color: #dddddd;
display: block;
- background-color: #bbbcbc;
- color: #002680;
+ color: #000000;
padding: 22px 16px;
- margin: 2px 0;
- width: 547px;
- height: 70px;
+ width: 550px;
+ height: 64px;
border: none;
text-align: left;
cursor: pointer;
font-size: 17px;
}
- .active{
- background-color: #fff;
- font-weight: bold;
- border-top: 2px solid #002680;
+ .active {
+ background-color: rgba(23, 145, 255, 0.75);
+ color: #ffffff;
+ }
+
+ label {
+ font-size: 14px;
+ width: 60px;
+ margin-left: 5px;
+ margin-right: 30px;
}
}
}
+ aside {
+
+ button {
+ display: block;
+ background-color: #bbbcbc;
+ color: #002680;
+ padding: 22px 16px;
+ margin: 2px 0;
+ width: 547px;
+ height: 70px;
+ border: none;
+ text-align: left;
+ cursor: pointer;
+ font-size: 17px;
+ }
+
+ .active {
+ background-color: #fff;
+ font-weight: bold;
+ border-top: 2px solid #002680;
+ }
+
+ }
+
}
- }
+ }
+}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/paddle.less b/Thermo.Active/wwwroot/assets/styles/base/paddle.less
index 7badbf5f..5b8cad97 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/paddle.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/paddle.less
@@ -4,102 +4,100 @@
@import "fonts.less";
html {
- height: 100%;
- overflow:hidden;
- }
-
- body {
- border: 0; margin: 0; padding: 0;
- height: 100%;
- }
-
-
- .main-nav {
- position: absolute;
- top: 50%;
- right: 0;
- z-index: 1000;
- }
-
+ height: 100%;
+ overflow: hidden;
+}
- .text-head-sidebar{
- margin: 10px auto;
- font-size: 24px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- text-align: center;
- color: #002680;
- }
+body {
+ border: 0;
+ margin: 0;
+ padding: 0;
+ height: 100%;
+}
- .text-box-paddle{
- display: flex;
- width: 268px;
- height: 78px;
- font-family: WorkSans;
- font-size: 18px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- color: #ffffff;
- margin: 10px;
-
+.hidden {
+ visibility: hidden;
+}
+
+.main-nav {
+ position: absolute;
+ top: 50%;
+ right: 0;
+ z-index: 1000;
+}
+
+.container {
+
+ #app {
+
+ nav {
+ position: absolute;
+ top: 50%;
+ right: 0;
+
+
+ .active button {
+ transform: translate(-761px, 0px);
+ }
+
+ div {
+
+ button {
+ position: relative;
+ height: 30px;
+ width: 32px;
+ display: block;
+ z-index: 1000;
+ border: 0;
+ border-radius: 0;
+ pointer-events: all;
+ background: #dddddd;
+ border-bottom-left-radius: 90px;
+ border-top-left-radius: 90px;
+ height: 90px;
+ width: 45px;
+ box-shadow: -3px 0 3px rgba(0, 0, 0, .2);
+
+ div {
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ grid-template-rows: 1fr 1fr;
+ align-items: center;
+ justify-items: center;
+ padding: 5px;
+
+
+ div {
+ width: 2px;
+ height: 2px;
+ border-radius: 10px;
+ margin: 2px;
+ background: #002680;
+
+ }
+
+ }
- label{
- width: 117px;
- margin: 10px;
}
+ }
}
- .text-box-paddle.text-soft{
- label{
- width: 100%;
- align-self: center;
- }
- }
- .box-sidebar-panel{
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- align-items: center;
- justify-items: center;
- }
- .sidebar-panel-nav{
- width: 286px;
- height: 100px;
- border-radius: 2px;
- box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);
- background-color: #808e96;
- margin: 10px 30px;
- }
+ .sidebar {
- .slide-enter-active,
- .slide-leave-active
- {
- transition: left,right 0s ease-in-out;
- }
-
- .slide-enter,
- .slide-leave-to {
- transition: right,left 0s ease-in-out
- }
-
- .sidebar-backdrop {
+ .sidebar-backdrop {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
cursor: pointer;
- }
+ }
+
+ .sidebar-panel {
- .sidebar-panel {
overflow-y: auto;
background-color: #130f40;
position: fixed;
@@ -113,58 +111,78 @@ html {
border-radius: 4px;
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
background-color: #dddddd;
- }
- .hidden {
- visibility: hidden;
- }
+ .text-head-sidebar {
+ margin: 10px auto;
+ font-size: 24px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: #002680;
+ }
- button {
- cursor: pointer;
- }
+ .box-sidebar-panel {
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ align-items: center;
+ justify-items: center;
+
+ .sidebar-panel-nav {
+ width: 286px;
+ height: 100px;
+ border-radius: 2px;
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);
+ background-color: #808e96;
+ margin: 10px 30px;
+
+ .text-box-paddle {
+ display: flex;
+ width: 268px;
+ height: 78px;
+ font-family: WorkSans;
+ font-size: 18px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ color: #ffffff;
+ margin: 10px;
+
+ i {
+ text-align: end;
+ width: 50px;
+ color: #bbbcbc;
+ }
+
+ label {
+ width: 117px;
+ margin: 10px;
+ }
+
+ }
+
+ .text-box-paddle.text-soft {
+ label {
+ width: 100%;
+ align-self: center;
+ }
+ }
+
+ }
+
+ }
+
+
+ }
- .switch-button {
- position: relative;
- height: 30px;
- width: 32px;
- display: block;
- z-index: 9999;
- border: 0;
- border-radius: 0;
- pointer-events: all;
- background: #dddddd;
- border-bottom-left-radius: 90px;
- border-top-left-radius: 90px;
- height: 90px;
- width: 45px;
- }
- .circle-button {
- width: 10px;
- height: 10px;
- border-radius: 10px;
- margin: 3px;
- background: #002680;
}
+ }
- .switch-paddle.active .switch-button {
- transform: translate(-761px, 0px);
- }
-
-
- .box-circle-paddle{
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- grid-template-rows: 1fr 1fr;
- align-items: center;
- justify-items: center;
- padding: 5px;
- }
-
- .gear-box-paddle{
- text-align: end;
- width: 50px;
- color: #bbbcbc;
- }
+}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/pirometro.less b/Thermo.Active/wwwroot/assets/styles/base/pirometro.less
index acaa83b1..20f21701 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/pirometro.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/pirometro.less
@@ -3,91 +3,33 @@
@import "colors.less";
@import "fonts.less";
@import "setup.less";
-@modal: modal;
-@pirometro-margin: margin-left;
-.@{modal}.pirometro-info {
- width: 1820px;
- height: 980px;
+.modal.pirometro-info {
+ section {
- section.body{
-
- section{
-
- .specific{
- width: 470px;
- @{pirometro-margin}:37%;
+ &.termo {
+ .tast {
+ margin-left: 400px;
}
+ }
- .termospecific{
- @{pirometro-margin}:0%;
+ .specific {
+ width: 470px;
+ }
- .svg-area{
- padding-left: 90px;
- width: 1270px;
- height: 800px;
+ .termospecific {
- .disegnoTermoSuperiore{
- flex-shrink: 0;
- width: 1100px;
- height: 750px;
- }
- .border-termo-superiore{
-
- .circle1{
- position: relative;
- top: 135px;
- right: 1150px;
- }
-
- .circle2{
- position: relative;
- top: 355px;
- right: 1150px;
- }
-
- .circle3{
- position: relative;
- top: 425px;
- right: 1150px;
- }
-
- .circle4{
- position: relative;
- top: 470px;
- right: 635px;
- }
-
- .circle5{
- position: relative;
- top: 400px;
- right: 255px;
- }
-
- .circle6{
- width: 100px;
- background-color: #c03d58;
- position: relative;
- top: 87px;
- right: 150px;
- }
-
- }
-
- }
-
- button{
- margin-left: 5px;
- width: 48px;
- height: 48px;
- object-fit: contain;
- border-radius: 2px;
- box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
- border: solid 1px #001e48;
- background-image: linear-gradient(to bottom, #1756ad, #002680);
- }
+ button {
+ margin-left: 5px;
+ width: 48px;
+ height: 48px;
+ object-fit: contain;
+ border-radius: 2px;
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
+ border: solid 1px #001e48;
+ background-image: linear-gradient(to bottom, #1756ad, #002680);
}
}
diff --git a/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less
new file mode 100644
index 00000000..d1227d12
--- /dev/null
+++ b/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less
@@ -0,0 +1,166 @@
+// out: false, sourceMap: false, main: ../style.less
+@import "grid-system.less";
+@import "colors.less";
+@import "fonts.less";
+
+.preriscaldodashboard{
+ height: 100%;
+ width: 100%;
+ background-image: url("../../assets/icons/png/bg.png");
+ position: fixed;
+ z-index: 1001;
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-start;
+
+ .header{
+ width: 100%;
+ display: flex;
+
+
+ .ribbon-container{
+ height: 80px;
+ z-index: 900;
+ }
+
+ .box-date{
+ display: flex;
+ width: 100%;
+ justify-content: center;
+
+ div{
+ flex-shrink: 0;
+ font-size: 47px;
+ text-align: right;
+ font-weight: 500;
+ }
+
+ time {
+ flex-shrink: 0;
+ transition: color 200ms ease-in-out;
+ margin-left: 28px;
+ display: flex;
+ font-size: 120px;
+ }
+
+ }
+
+ .header-buttons{
+ display: inline-block;
+
+ .box-close-dashboard{
+ height: 70px;
+ text-align: right;
+
+ button.modal-close{
+ background-color: #4B4B4B;
+ margin: 23px;
+ }
+ }
+
+
+ .user-info {
+ margin-top: 10px;
+ display: flex;
+ font-size: 25px;
+ color: @color-input-light;
+ flex-grow: 1;
+ justify-content: flex-end;
+ margin-right: 21px;
+
+ button.profile {
+ width: 48px;
+ height: 48px;
+ background-image: url("../profile.png");
+ color: #000;
+ background-size: cover;
+ border: none;
+ background-color: transparent;
+
+ &.colorWhite {
+ color: #FFF;
+ }
+ }
+
+ div{
+ align-self: center;
+ margin-right: 10px;
+ font-size: 18px;
+ }
+ }
+
+ }
+ }
+
+ section{
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-evenly;
+
+ label{
+
+ &:first-of-type{
+ font-size: 67px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 0.76;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+ }
+
+ &:last-of-type{
+ font-size: 26px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1.96;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+ }
+
+ }
+
+ div{
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+
+ div{
+ margin: 0px 70px;
+ display: flex;
+ flex-direction: column;
+
+ label{
+
+ &:first-of-type{
+ font-size: 250px;
+ font-weight: 200;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+ }
+
+ &:last-of-type{
+ font-size: 50px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+ }
+
+ }
+
+ }
+ }
+ }
+}
diff --git a/Thermo.Active/wwwroot/assets/styles/base/processo.less b/Thermo.Active/wwwroot/assets/styles/base/processo.less
index 83652a1c..32c7ff14 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/processo.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/processo.less
@@ -2,10 +2,56 @@
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
-@modal: modal;
-.@{modal}.processo-info {
- width: 1820px;
- height: 980px;
- margin: 150px 193px;
+
+.modal.processo-info {
+
+ header {
+ font-size: 22px;
+ color: #4b4b4b;
+
+ .tab-header {
+ padding: 10px 0px;
+
+ button {
+ padding: 0;
+ display: flex;
+ justify-content: flex-start;
+ margin-right: 10px;
+ width: 149px;
+ height: 48px;
+ border-radius: 2px;
+ box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.5);
+ background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
+ font-size: 14px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1.15;
+ letter-spacing: normal;
+ color: #4b4b4b;
+
+ img {
+ margin-right: 20px;
+ }
+
+ }
+
+ label {
+ width: 106px;
+ height: 32px;
+ font-size: 32px;
+ font-weight: 600;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1;
+ letter-spacing: normal;
+ text-align: right;
+ color: #545454;
+ }
+
+ }
+
+ }
+
}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/progrprerisc.less b/Thermo.Active/wwwroot/assets/styles/base/progrprerisc.less
index 934b1348..09c703ee 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/progrprerisc.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/progrprerisc.less
@@ -2,267 +2,264 @@
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
-@modal: modal;
-@heightmeridian:300px;
-.@{modal}.progr-preriscaldo-info {
- width: 1639px;
- height: 565px;
- margin-top: 220px;
+@heightmeridian: 300px;
- header {
- padding-left: 31px;
- display: flex;
- align-items: center;
- font-size: 20px;
- font-weight: bold;
- color: darkblue;
- }
+.modal.progr-preriscaldo-info {
- section.body{
- overflow: hidden;
+ header {
+ padding-left: 31px;
+ display: flex;
+ align-items: center;
+ font-size: 20px;
+ font-weight: bold;
+ color: darkblue;
+ }
- section{
- padding: 0px;
- width: 100%;
- height: 100%;
+ section.body {
+ overflow: hidden;
- hr{
- border: none;
+ section {
+ padding: 0px;
+ width: 100%;
+ height: 100%;
+
+ hr {
+ border: none;
+ }
+
+ aside {
+ margin: 14px;
+
+ button {
+ width: 197px;
+ height: 48px;
+ object-fit: contain;
+ border-radius: 2px;
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
+ border: solid 1px #001e48;
+ background-image: linear-gradient(to bottom, #1756ad, #002680);
+ font-size: 18px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: white;
+ margin: auto;
+ }
+
+ }
+
+ .specific {
+ margin: 0;
+ padding: 20px;
+ width: 100%;
+ height: 100%;
+ background-color: #bbbcbc;
+
+ div {
+ display: flex;
+ margin-bottom: 50px;
+
+ .clock {
+ border-radius: 50%;
+ background-color: white;
+ height: @heightmeridian;
+ width: @heightmeridian;
+
+ span {
+ flex-shrink: 0;
+ border-radius: 50%;
+ width: 20px;
+ height: 20px;
+ background-color: @color-darkish-blue;
+ position: relative;
+ top: 140px;
+ right: 460px;
}
- aside{
- margin: 14px;
+ button {
+ flex-shrink: 0;
+ border-radius: 50%;
+ width: 50px;
+ height: 50px;
+ background-image: none;
+ box-shadow: none;
+ background-color: white;
+ color: black;
+ font-size: 20px;
+ }
- button{
- width: 197px;
- height: 48px;
- object-fit: contain;
- border-radius: 2px;
- box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
- border: solid 1px #001e48;
- background-image: linear-gradient(to bottom, #1756ad, #002680);
- font-size: 18px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- text-align: center;
- color: white;
- margin: auto;
+ .selected {
+ background-color: @color-darkish-blue;
+ color: white;
+ }
+
+ .btn1 {
+ position: relative;
+ top: 22px;
+ right: -188px;
+ }
+
+ .btn2 {
+ position: relative;
+ top: 68px;
+ right: -179px;
+ }
+
+ .btn3 {
+ position: relative;
+ top: 125px;
+ right: -149px;
+ }
+
+ .btn4 {
+ position: relative;
+ top: 182px;
+ right: -79px;
+ }
+
+ .btn5 {
+ position: relative;
+ top: 227px;
+ right: 12px;
+ }
+
+ .btn6 {
+ position: relative;
+ top: 248.5px;
+ right: 125px;
+ }
+
+ .btn7 {
+ position: relative;
+ top: 227px;
+ right: 238px;
+ }
+
+ .btn8 {
+ position: relative;
+ top: 182px;
+ right: 329px;
+ }
+
+ .btn9 {
+ position: relative;
+ top: 125px;
+ right: 399px;
+ }
+
+ .btn10 {
+ position: relative;
+ top: 68px;
+ right: 429px;
+ }
+
+ .btn11 {
+ position: relative;
+ top: 22px;
+ right: 438px;
+ }
+
+ .btn12 {
+ position: relative;
+ top: 0.5px;
+ right: 425px;
+ }
+
+
+ }
+
+ div {
+
+ &:first-of-type {
+ flex-direction: column;
+ margin-right: 20px;
+ width: 180px;
+ height: @heightmeridian;
+ background-image: linear-gradient(to bottom, #1756ad, @color-darkish-blue);
+
+ label {
+ color: #ADD8E6;
+ margin: auto;
+
+ &:first-of-type {
+ font-size: 67px;
}
+ &:last-of-type {
+ font-size: 20px;
+ margin-top: -50px;
+ }
+
+ }
+
}
- .specific{
- margin: 0;
- padding: 20px;
- width: 100%;
- height: 100%;
+ &:last-child {
+ margin-left: -50px;
+ height: @heightmeridian;
+ flex-direction: column;
+
+ button {
+ width: 50px;
+ background-image: none;
+ box-shadow: none;
background-color: #bbbcbc;
+ color: @color-darkish-blue;
+ font-size: 20px;
- div{
- display: flex;
- margin-bottom: 50px;
-
- .clock{
- border-radius: 50%;
- background-color: white;
- height: @heightmeridian;
- width: @heightmeridian;
-
- span{
- flex-shrink: 0;
- border-radius: 50%;
- width: 20px;
- height: 20px;
- background-color: @color-darkish-blue;
- position: relative;
- top: 140px;
- right: 460px;
- }
-
- button{
- flex-shrink: 0;
- border-radius: 50%;
- width: 50px;
- height: 50px;
- background-image: none;
- box-shadow: none;
- background-color: white;
- color: black;
- font-size: 20px;
- }
-
- .selected{
- background-color: @color-darkish-blue;
- color:white;
- }
-
- .btn1{
- position: relative;
- top: 22px;
- right: -188px;
- }
-
- .btn2{
- position: relative;
- top: 68px;
- right: -179px;
- }
-
- .btn3{
- position: relative;
- top: 125px;
- right: -149px;
- }
-
- .btn4{
- position: relative;
- top: 182px;
- right: -79px;
- }
-
- .btn5{
- position: relative;
- top: 227px;
- right: 12px;
- }
-
- .btn6{
- position: relative;
- top: 248.5px;
- right: 125px;
- }
-
- .btn7{
- position: relative;
- top: 227px;
- right: 238px;
- }
-
- .btn8{
- position: relative;
- top: 182px;
- right: 329px;
- }
-
- .btn9{
- position: relative;
- top: 125px;
- right: 399px;
- }
-
- .btn10{
- position: relative;
- top: 68px;
- right: 429px;
- }
-
- .btn11{
- position: relative;
- top: 22px;
- right: 438px;
- }
-
- .btn12{
- position: relative;
- top: 0.5px;
- right: 425px;
- }
-
-
- }
-
- div{
-
- &:first-of-type{
- flex-direction: column;
- margin-right: 20px;
- width: 180px;
- height: @heightmeridian;
- background-image: linear-gradient(to bottom, #1756ad, @color-darkish-blue);
-
- label{
- color: #ADD8E6;
- margin: auto;
-
- &:first-of-type{
- font-size: 67px;
- }
-
- &:last-of-type{
- font-size: 20px;
- margin-top: -50px;
- }
-
- }
-
- }
-
- &:last-child{
- margin-left: -50px;
- height: @heightmeridian;
- flex-direction: column;
-
- button{
- width: 50px;
- background-image: none;
- box-shadow: none;
- background-color: #bbbcbc;
- color: @color-darkish-blue;
- font-size: 20px;
-
- &:first-of-type{
- margin-bottom: @heightmeridian - 50px;
- }
-
- }
-
- }
-
- }
-
- button{
- border: none;
- width: 130px;
- height: 45px;
- border-radius: 22.5px;
- box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.4);
- background-image: linear-gradient(to bottom, #818a8f 0%, #42494e 98%);
- font-size: 18px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- text-align: center;
- color: white;
- }
-
- .active{
- box-shadow: inset 0 1px 3px 0 rgba(0, 0, 0, 0.43);
- background-image: linear-gradient(to bottom, #42494e 0%, #818a8f 98%);
- }
-
+ &:first-of-type {
+ margin-bottom: @heightmeridian - 50px;
}
- label{
- margin-bottom: 20px;
- font-size: 24px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- color: @color-darkish-blue;
- }
+ }
}
+ }
+
+ button {
+ border: none;
+ width: 130px;
+ height: 45px;
+ border-radius: 22.5px;
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.4);
+ background-image: linear-gradient(to bottom, #818a8f 0%, #42494e 98%);
+ font-size: 18px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: white;
+ }
+
+ .active {
+ box-shadow: inset 0 1px 3px 0 rgba(0, 0, 0, 0.43);
+ background-image: linear-gradient(to bottom, #42494e 0%, #818a8f 98%);
+ }
+
}
+ label {
+ margin-bottom: 20px;
+ font-size: 24px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ color: @color-darkish-blue;
+ }
+
+ }
+
}
+ }
+
}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/quote-velocita.less b/Thermo.Active/wwwroot/assets/styles/base/quote-velocita.less
index 7dc7a3b9..413dbe12 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/quote-velocita.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/quote-velocita.less
@@ -2,246 +2,41 @@
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
-@modal: modal;
-.@{modal}.quote-velocita-info {
- width: 1820px;
- height: 980px;
+.modal.quote-velocita-info {
+ section {
- section{
-
- aside{
-
- .box{
-
- .body{
- padding:4.5px;
-
- .input-area{
- margin: 5px auto;
- }
-
- }
-
- }
-
- }
-
- .specific{
-
- .svg-area{
- width: 750px;
- height: 750px;
-
- .disegnoQuoteVelocita{
- flex-shrink: 0;
- margin-left: 500px;
- width: 800px;
- height: 800px;
- }
-
- .disegnoStampo{
- flex-shrink: 0;
- margin-left: 680px;
- width: 1200px;
- height: 795px;
- }
-
- .disegnoControstampoQuoteVelocita{
- flex-shrink: 0;
- margin-left: 600px;
- width: 1156px;
- height: 800px;
- }
-
- .input-circles{
-
- .circle{
- width: 147px;
- height: 60px;
- flex-direction: column;
-
- div{
- margin: auto;
- display: flex;
- flex-direction: row;
- }
-
- }
-
- .circle1{
- position: relative;
- top: 120px;
- right: 500px;
- }
-
- .circle2{
- position: relative;
- top: 140px;
- right: 750px;
- }
-
- .circle3{
- position: relative;
- top: 140px;
- right: 300px;
- }
-
- .circle4{
- position: relative;
- top: 395px;
- right: 400px;
- }
-
- .circle5{
- position: relative;
- top: 240px;
- right: 650px;
- }
-
- .circle6{
- position: relative;
- top: 305px;
- right: 550px;
- }
-
- .circle7{
- position: relative;
- bottom: 380px;
- right: 250px;
- }
-
- .circle8{
- position: relative;
- top: 320px;
- right: 220px;
- }
-
- .circle-stampo-1{
- position: relative;
- top: 115px;
- right: 1212px;
- }
-
- .circle-stampo-2{
- position: relative;
- top: 140px;
- right: 1130px;
- }
-
- .circle-stampo-3{
- position: relative;
- top: 4px;
- right: 730px;
- }
-
- .circle-stampo-4{
- position: relative;
- top: -64px;
- right: 925px;
- }
-
- .circle-stampo-5{
- position: relative;
- top: -10px;
- right: 740px;
- }
-
- .circle-stampo-6{
- position: relative;
- top: 205px;
- right: 1115px;
- }
-
- .circle-stampo-7{
- position: relative;
- top: 50px;
- right: 125px;
- }
-
- .circle-stampo-8{
- position: relative;
- top: -210px;
- right: 550px;
- }
-
- .circle-stampo-9{
- position: relative;
- top: -90px;
- right: 560px;
- }
-
- .circle-stampo-10{
- position: relative;
- bottom: 560px;
- right: 769px;
- }
-
- .circle-stampo-11{
- position: relative;
- top: 35px;
- right: 781px;
- }
-
- .circle-controstampo-1{
- position: relative;
- top: 300px;
- right: 1090px;
- }
-
- .circle-controstampo-2{
- position: relative;
- top: 570px;
- right: 990px;
- }
-
- .circle-controstampo-3{
- position: relative;
- top: 475px;
- right: 770px;
- }
-
- .circle-controstampo-4{
- position: relative;
- right: 650px;
- }
-
- .circle-controstampo-5{
- position: relative;
- top: 45px;
- right: 480px;
- }
-
- .circle-controstampo-6{
- position: relative;
- top: -335px;
- right: 650px;
- }
-
- .circle-controstampo-7{
- position: relative;
- top: 400px;
- right: 650px;
- }
-
- }
-
- }
-
- button{
- margin-left: 10px;
- width: 48px;
- height: 48px;
- object-fit: contain;
- border-radius: 2px;
- box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
- border: solid 1px #001e48;
- background-image: linear-gradient(to bottom, #1756ad, @color-darkish-blue);
- }
-
- }
-
+ &.cornice {
+ .tast {
+ margin-left: 125px;
+ }
}
+ aside {
+ .box {
+ .body {
+ padding: 4.5px;
+
+ .input-area {
+ margin: 5px auto;
+ }
+ }
+ }
+ }
+
+ .specific {
+ button {
+ position: absolute;
+ width: 48px;
+ height: 48px;
+ border-radius: 2px;
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
+ border: solid 1px #001e48;
+ background-image: linear-gradient(to bottom, #1756ad, @color-darkish-blue);
+ bottom: 1rem;
+ left: 1rem;
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/raffreddamento.less b/Thermo.Active/wwwroot/assets/styles/base/raffreddamento.less
index 6488575a..03e6b888 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/raffreddamento.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/raffreddamento.less
@@ -2,16 +2,15 @@
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
-@modal: modal;
-.@{modal}.raffreddamento-info {
- margin-top: 200px;
- width: 626px;
- height: 569px;
- section{
+.modal.raffreddamento-info {
+ width: 626px;
+ height: 569px;
- .specific{
+ section {
+
+ .specific {
margin-left: 50px;
width: 480px;
}
diff --git a/Thermo.Active/wwwroot/assets/styles/base/riscaldi.less b/Thermo.Active/wwwroot/assets/styles/base/riscaldi.less
index 02755aeb..06b1ec58 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/riscaldi.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/riscaldi.less
@@ -2,29 +2,67 @@
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
-@modal: modal;
-.@{modal}.riscaldi-info {
- .presenter {
- position: relative;
- width: 100%;
- height: 100%;
+.modal.riscaldi-info {
- .zoom {
- position: absolute;
- bottom: 0;
- right: 0;
- display: grid;
- grid-template-rows: 1fr 1fr;
- grid-row-gap: 10px;
+ section.body {
- .btn {
- padding: 0;
- width: 48px;
- height: 48px;
+ section {
+ justify-content: center;
+ .sost-dec {
+ width: 471px;
}
+
}
}
+
+ .specific {
+ width: 100%;
+ margin-top: 10px;
+ margin-bottom: 10px;
+
+ &:last-of-type {
+ margin: unset;
+
+ div {
+ display: flex;
+ justify-content: flex-end;
+
+ div {
+ display: flex;
+ flex-direction: column;
+
+ button {
+ width: 48px;
+ height: 48px;
+
+ }
+ }
+ }
+ }
+
+ select {
+ width: 110px;
+ height: 48px;
+ }
+
+ .btn {
+ margin-top: 10px;
+ width: 201px;
+ }
+
+ button {
+ height: 48px;
+ }
+
+ label {
+ margin-bottom: 10px;
+ color: #002680;
+ font-size: 24px;
+ font-weight: 500;
+ }
+
+ }
}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/setup.less b/Thermo.Active/wwwroot/assets/styles/base/setup.less
index 5849af1e..f1324be8 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/setup.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/setup.less
@@ -2,7 +2,6 @@
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
-@modal: modal;
.setup {
padding-top: 50px;
@@ -24,7 +23,7 @@
.modal {
width: 1820px;
- height: 980px;
+ height: 949px;
section.body {
height: calc(~'100% - 66px');
@@ -38,8 +37,8 @@
justify-content: flex-start;
width: calc(~'100% - 28px');
height: calc(~'100% - 28px - 82px');
-
- .auto{
+
+ .auto {
overflow-y: auto;
overflow-x: hidden;
}
@@ -67,80 +66,45 @@
.specific {
display: flex;
flex-direction: column;
+ width: 100%;
+ align-items: center;
+ position: relative;
- .svg-area {
+ .slides {
+ width: 100%;
+ height: 160px;
display: flex;
- justify-content: center;
+ justify-content: space-evenly;
+ align-items: center;
- .input-circles {
- display: flex;
- flex-direction: column;
- span{
- object-fit: contain;
- font-size: 22px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- text-align: center;
- color: white;
- background-color: #979797;
- }
-
- .circle {
- width: 141px;
- height: 60px;
- box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.5);
- background-color: rgba(255, 255, 255, 0.8);
- display: flex;
- justify-content: flex-start;
- object-fit: contain;
- border-radius: 40.5px;
- border: solid 4px #9b9b9b;
- }
-
- input{
- width: 40px;
- height: 21px;
- margin: auto;
- object-fit: contain;
- font-size: 20px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- color: #6d6d6d;
- border: none;
- }
-
- label {
- margin: auto;
- object-fit: contain;
- font-size: 20px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- color: #6d6d6d;
- }
-
- img {
- margin: auto;
- width: 20px;
- height: 20px;
- object-fit: contain;
- }
+ img {
+ flex-shrink: 0;
+ width: 215px;
+ height: 140px;
+ border: 1px solid #bbbcbc;
+ cursor: pointer;
+ }
+ .imgborder {
+ border: 1px solid @color-darkish-blue;
}
}
- }
+ .svg-area {
+ display: flex;
+ justify-content: center;
+ position: relative;
+ min-height: 50%;
+ width: 100%;
+ flex: 1;
+ img {
+ width: 100%;
+ }
+ }
+ }
}
footer {
@@ -154,18 +118,70 @@
header {
background-color: @color-white;
color: @color-darkish-blue;
-
font-weight: 600;
font-size: 24px;
text-align: left;
padding: 0px 23px;
-
display: flex;
flex-flow: row nowrap;
justify-content: space-between;
align-items: stretch;
}
}
+
+ .modal-footer-navigator {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: calc(~"100vw - 2rem");
+ display: grid;
+ grid-template-rows: 48px;
+ flex-flow: row nowrap;
+ grid-template-columns: repeat(auto-fit, minmax(30px, 1fr));
+ grid-column-gap: 1rem;
+ padding: 0 1rem;
+
+ .setup-button {
+ height: 48px;
+ width: 100%;
+ grid-template-columns: 40px 1fr;
+
+ &.current {
+
+ .background-top,
+ .background-bottom {
+ background-color: #d3d3d3;
+
+ &:after {
+ background: #979797;
+ }
+ }
+
+ .background-top {
+ box-shadow: -3px 5px 5px rgba(0, 0, 0, .2) inset;
+ }
+
+ .background-bottom {
+ box-shadow: -3px -5px 5px rgba(0, 0, 0, .2) inset;
+ }
+ }
+
+ span,
+ label {
+ grid-row-start: 1;
+ grid-row-end: -1;
+ padding: 0;
+ align-items: center;
+ font-size: 14px;
+ font-weight: bold;
+ ;
+ }
+
+ label {
+ padding-left: 5px;
+ }
+ }
+ }
}
.modal.setup-info {
@@ -183,6 +199,7 @@
.tab-header {
display: flex;
+
flex-flow: row;
align-items: stretch;
justify-content: flex-start;
@@ -205,12 +222,13 @@
}
}
-.@{modal}.setup-info {
+.modal.setup-info {
width: 1639px;
height: 695px;
background-color: #fff;
- margin: 150px 193px;
+ margin: 150px auto;
box-shadow: none;
+ position: relative;
section {
height: 100%;
@@ -238,6 +256,9 @@
grid-template-columns: 50px 1fr;
grid-template-rows: 1fr 50px;
+ * {
+ cursor: pointer;
+ }
span,
label {
@@ -268,23 +289,20 @@
i {
- grid-column: 2;
+ grid-column-start: -1;
+ grid-column-end: 1;
grid-row: 2;
z-index: 2;
margin: auto;
- transform: scale(1.5);
+ font-size: 36px;
- &.fa-check-circle{
+ &.fa-check-circle {
color: #90BF3D;
}
- &.fa-check-circle.undone-step{
+ &.fa-check-circle.undone-step {
color: #1791FF;
}
-
- // &.fa-minus-circle{
- // color: #7A7C74;
- // }
}
position: relative;
@@ -422,24 +440,43 @@
flex: 1;
}
- .rect {
- // display: flex;
- // align-items: center;
- // justify-content: flex-end;
- // padding-inline-end: 20px;
- object-fit: contain;
- font-size: 20px;
+ .numeric {
+ font-size: 18px;
font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
color: #6d6d6d;
- text-align: center;
- width: 98px;
+
+ width: 100px;
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: 4px;
+ align-items: center;
+ justify-content: stretch;
+
+ input {
+ border: none;
+ font-size: 16px;
+ text-align: right;
+ height: 100%;
+ width: 100%;
+ outline: none !important;
+ background-color: transparent;
+
+ &[type=number]::-webkit-inner-spin-button,
+ &[type=number]::-webkit-outer-spin-button {
+ -webkit-appearance: none;
+ margin: 0;
+ }
+ }
+
+ span {
+ padding: 0 3px;
+ font-size: 14px;
+ }
}
select {
@@ -448,7 +485,7 @@
background-color: #fff;
padding: 0 20px;
font-size: 1rem;
- ;
+
}
}
diff --git a/Thermo.Active/wwwroot/assets/styles/base/tastierino.less b/Thermo.Active/wwwroot/assets/styles/base/tastierino.less
index 276dddb9..236b2d09 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/tastierino.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/tastierino.less
@@ -3,87 +3,111 @@
@import "colors.less";
@import "fonts.less";
-.tast{
- margin-top: 30px;
- margin-left: -350px;
- height: 261px;
- width: 293px;
- background-color:@color-silver;
-}
-.mask{
+.keyboard {
+ height: 262px;
+ width: 262px;
+ background-color: @color-silver;
+ display: flex;
+ justify-content: center;
+
+ .mask {
display: grid;
grid-template-columns: repeat(4, 52px);
grid-template-rows: repeat(4, 52px);
grid-gap: 5px 8px;
margin-top: 7%;
- margin-left: 10%;
-}
-.tasto{
- border:none;
- background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
- box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
-}
-.zero{
- grid-column: 1/span 2;
- grid-row: 4/5;
- border:none;
- background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
- box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
-}
-.submit{
- grid-column-start: 4;
- grid-column-end: 5;
- grid-row-start: 3;
- grid-row-end: 5;
- border:none;
- background-image: linear-gradient(to bottom, #000080 0%, #191970 98%);
- box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
-}
-.b1{
- grid-column: 1/2;
- grid-row: 3/4;
-}
-.b2{
- grid-column: 2/3;
- grid-row: 3/4;
-}
-.b3{
- grid-column: 3/4;
- grid-row: 3/4;
-}
-.b4{
- grid-column: 1/2;
- grid-row: 2/3;
-}
-.b5{
- grid-column: 2/3;
- grid-row: 2/3;
-}
-.b6{
- grid-column: 3/4;
- grid-row: 2/3;
-}
-.b7{
- grid-column: 1/2;
- grid-row: 1/2;
-}
-.b8{
- grid-column: 2/3;
- grid-row: 1/2;
-}
-.b9{
- grid-column: 3/4;
- grid-row: 1/2;
-}
-.bCanc{
- grid-column: 4/5;
- grid-row: 2/3;
-}
-.bPunto{
- grid-column: 3/4;
- grid-row: 4/5;
-}
-.bDel{
- grid-column: 4/5;
- grid-row: 1/2;
+
+ button {
+ border: none;
+ background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
+ box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
+ color: @color-darkish-blue;
+ font-size: 20px;
+ }
+
+ .zero {
+ grid-column: 1/span 2;
+ grid-row: 4/5;
+ border: none;
+ background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
+ box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
+ }
+
+ .submit {
+ grid-column-start: 4;
+ grid-column-end: 5;
+ grid-row-start: 3;
+ grid-row-end: 5;
+ border: none;
+ background-size: 52px;
+ background-image: url(/assets/icons/png/submit.png);
+ box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
+
+ }
+
+ .bCanc {
+ grid-column: 4/5;
+ grid-row: 2/3;
+ background-size: 52px;
+ background-image: url(/assets/icons/png/canc.png);
+
+ }
+
+ .b1 {
+ grid-column: 1/2;
+ grid-row: 3/4;
+ }
+
+ .b2 {
+ grid-column: 2/3;
+ grid-row: 3/4;
+ }
+
+ .b3 {
+ grid-column: 3/4;
+ grid-row: 3/4;
+ }
+
+ .b4 {
+ grid-column: 1/2;
+ grid-row: 2/3;
+ }
+
+ .b5 {
+ grid-column: 2/3;
+ grid-row: 2/3;
+ }
+
+ .b6 {
+ grid-column: 3/4;
+ grid-row: 2/3;
+ }
+
+ .b7 {
+ grid-column: 1/2;
+ grid-row: 1/2;
+ }
+
+ .b8 {
+ grid-column: 2/3;
+ grid-row: 1/2;
+ }
+
+ .b9 {
+ grid-column: 3/4;
+ grid-row: 1/2;
+ }
+
+ .bPunto {
+ grid-column: 3/4;
+ grid-row: 4/5;
+ }
+
+ .bDel {
+ grid-column: 4/5;
+ grid-row: 1/2;
+ }
+
+ }
+
}
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/base/vuoto.less b/Thermo.Active/wwwroot/assets/styles/base/vuoto.less
index 3d45fef1..4ba23907 100644
--- a/Thermo.Active/wwwroot/assets/styles/base/vuoto.less
+++ b/Thermo.Active/wwwroot/assets/styles/base/vuoto.less
@@ -1,39 +1,36 @@
// out: false, sourceMap: false, main: ../style.less
- @import "grid-system.less";
- @import "colors.less";
- @import "fonts.less";
- @modal: modal;
+ @import "grid-system.less";
+ @import "colors.less";
+ @import "fonts.less";
-.@{modal}.vuoto-info {
- width: 1820px;
- height: 980px;
-
- section{
- .specific{
- padding-left: 5px;
+ .modal.vuoto-info {
- .box {
- margin-bottom: 5px;
- background-color: #e5f3ff;
+ section {
- &:first-of-type{
- background-color: white;
- }
+ .specific {
+ padding-left: 5px;
- &:last-of-type{
- background-color: #b3dbff;
- }
-
- }
+ .box {
+ margin-bottom: 5px;
+ background-color: #e5f3ff;
- .input-area{
- width: 480px;
- }
+ &:first-of-type {
+ background-color: white;
+ }
- }
+ &:last-of-type {
+ background-color: #b3dbff;
+ }
- }
-
-}
-
\ No newline at end of file
+ }
+
+ .input-area {
+ width: 480px;
+ }
+
+ }
+
+ }
+
+ }
\ No newline at end of file
diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css
index e01df58e..8287ac5d 100644
--- a/Thermo.Active/wwwroot/assets/styles/style.css
+++ b/Thermo.Active/wwwroot/assets/styles/style.css
@@ -1,6 +1,408 @@
@import url(../../libs/font-awesome/css/font-awesome.css);
@import url(../../libs/glyphicons/styles/glyphicons.css);
@import "iziToast.min.css";
+.setup {
+ padding-top: 50px;
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+ flex-flow: column nowrap;
+ width: 100vw;
+ height: 100vh;
+}
+.setup hr {
+ flex-shrink: 0;
+ background-color: #979797;
+ width: 2px;
+ height: 100%;
+ margin: 0;
+ margin-left: 5px;
+}
+.setup .modal {
+ width: 1820px;
+ height: 949px;
+}
+.setup .modal section.body {
+ height: calc(100% - 66px);
+}
+.setup .modal section.body section {
+ height: 100%;
+ flex-flow: row nowrap;
+ padding: 14px;
+ display: flex;
+ justify-content: flex-start;
+ width: calc(100% - 28px);
+ height: calc(100% - 28px - 82px);
+}
+.setup .modal section.body section .auto {
+ overflow-y: auto;
+ overflow-x: hidden;
+}
+.setup .modal section.body section aside {
+ display: flex;
+ justify-content: start;
+ flex-direction: column;
+ height: 100%;
+ width: 520px;
+ flex: 0 0 520px;
+ overflow-y: scroll;
+ padding-right: 10px;
+}
+.setup .modal section.body section aside hr {
+ flex-shrink: 0;
+ background-color: #979797;
+ width: 100%;
+ height: 2px;
+ margin-left: 0px;
+}
+.setup .modal section.body section .specific {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ align-items: center;
+ position: relative;
+}
+.setup .modal section.body section .specific .slides {
+ width: 100%;
+ height: 160px;
+ display: flex;
+ justify-content: space-evenly;
+ align-items: center;
+}
+.setup .modal section.body section .specific .slides img {
+ flex-shrink: 0;
+ width: 215px;
+ height: 140px;
+ border: 1px solid #bbbcbc;
+ cursor: pointer;
+}
+.setup .modal section.body section .specific .slides .imgborder {
+ border: 1px solid #002680;
+}
+.setup .modal section.body section .specific .svg-area {
+ display: flex;
+ justify-content: center;
+ position: relative;
+ min-height: 50%;
+ width: 100%;
+ flex: 1;
+}
+.setup .modal section.body section .specific .svg-area img {
+ width: 100%;
+}
+.setup .modal section.body footer {
+ height: 82px;
+ display: flex;
+ justify-content: flex-end;
+ align-items: center;
+}
+.setup .modal header {
+ background-color: #fff;
+ color: #002680;
+ font-weight: 600;
+ font-size: 24px;
+ text-align: left;
+ padding: 0px 23px;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: space-between;
+ align-items: stretch;
+}
+.setup .modal-footer-navigator {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: calc(100vw - 2rem);
+ display: grid;
+ grid-template-rows: 48px;
+ flex-flow: row nowrap;
+ grid-template-columns: repeat(auto-fit, minmax(30px, 1fr));
+ grid-column-gap: 1rem;
+ padding: 0 1rem;
+}
+.setup .modal-footer-navigator .setup-button {
+ height: 48px;
+ width: 100%;
+ grid-template-columns: 40px 1fr;
+}
+.setup .modal-footer-navigator .setup-button.current .background-top,
+.setup .modal-footer-navigator .setup-button.current .background-bottom {
+ background-color: #d3d3d3;
+}
+.setup .modal-footer-navigator .setup-button.current .background-top:after,
+.setup .modal-footer-navigator .setup-button.current .background-bottom:after {
+ background: #979797;
+}
+.setup .modal-footer-navigator .setup-button.current .background-top {
+ box-shadow: -3px 5px 5px rgba(0, 0, 0, 0.2) inset;
+}
+.setup .modal-footer-navigator .setup-button.current .background-bottom {
+ box-shadow: -3px -5px 5px rgba(0, 0, 0, 0.2) inset;
+}
+.setup .modal-footer-navigator .setup-button span,
+.setup .modal-footer-navigator .setup-button label {
+ grid-row-start: 1;
+ grid-row-end: -1;
+ padding: 0;
+ align-items: center;
+ font-size: 14px;
+ font-weight: bold;
+}
+.setup .modal-footer-navigator .setup-button label {
+ padding-left: 5px;
+}
+.modal.setup-info header {
+ padding-left: 31px;
+ display: flex;
+ align-items: center;
+ font-size: 20px;
+ font-weight: bold;
+ color: darkblue;
+}
+.tab-header {
+ display: flex;
+ flex-flow: row;
+ align-items: stretch;
+ justify-content: flex-start;
+}
+.tab-header button {
+ background: none;
+ border: 1px solid #bbbcbc;
+ padding: 0 38px;
+ border-bottom: none;
+ font-size: 20px;
+ background-color: #bbbcbc;
+ color: #002680;
+}
+.tab-header button.active {
+ background-color: #fff;
+ font-weight: bold;
+ border-top: 2px solid #002680;
+}
+.modal.setup-info {
+ width: 1639px;
+ height: 695px;
+ background-color: #fff;
+ margin: 150px auto;
+ box-shadow: none;
+ position: relative;
+}
+.modal.setup-info section {
+ height: 100%;
+}
+.modal.setup-info section .Rectangle {
+ width: calc(100% - 200px);
+ height: calc(100% - 200px);
+ background-color: #BBBCBC;
+ display: grid;
+ grid-template-columns: repeat(6, 1fr);
+ grid-template-rows: 1fr 1fr;
+ align-items: center;
+ justify-items: center;
+ padding: 100px;
+}
+.setup-button {
+ cursor: pointer;
+ display: grid;
+ width: 200px;
+ height: 128px;
+ grid-template-columns: 50px 1fr;
+ grid-template-rows: 1fr 50px;
+ position: relative;
+}
+.setup-button * {
+ cursor: pointer;
+}
+.setup-button span,
+.setup-button label {
+ grid-column: 1;
+ display: flex;
+ align-items: flex-end;
+ color: #fff;
+ z-index: 2;
+ justify-content: center;
+ font-weight: 500;
+ font-size: 18px;
+ padding-left: 10px;
+}
+.setup-button label {
+ grid-column: 2;
+ color: #002680;
+ justify-content: flex-start;
+}
+.setup-button img {
+ grid-column: 2;
+ grid-row: 2;
+ z-index: 2;
+ margin: auto;
+}
+.setup-button i {
+ grid-column-start: -1;
+ grid-column-end: 1;
+ grid-row: 2;
+ z-index: 2;
+ margin: auto;
+ font-size: 36px;
+}
+.setup-button i.fa-check-circle {
+ color: #90BF3D;
+}
+.setup-button i.fa-check-circle.undone-step {
+ color: #1791FF;
+}
+.setup-button .background-top,
+.setup-button .background-bottom {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ height: 50%;
+ transform: skewX(12px);
+}
+.setup-button .background-top:after,
+.setup-button .background-bottom:after {
+ content: "";
+ display: block;
+ position: absolute;
+ left: 0;
+ top: 0;
+ height: 100%;
+ width: 35px;
+ background-color: #002680;
+}
+.setup-button .background-top {
+ background-image: linear-gradient(to bottom, #fff, #e6e6e6);
+ top: 0;
+ transform: skewX(20deg);
+}
+.setup-button .background-bottom {
+ background-image: linear-gradient(to bottom, #e6e6e6, #e2e2e2);
+ bottom: 0;
+ transform: skewX(-20deg);
+}
+.box {
+ margin-bottom: 30px;
+ box-sizing: border-box;
+ clear: both;
+}
+.box .header {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 44px;
+ width: 100%;
+ font-size: 24px;
+ font-weight: bold;
+ color: #fff;
+ background-color: #979797;
+}
+.box .body {
+ padding: 20px;
+ display: flex;
+ flex-flow: column;
+ justify-items: center;
+ padding-bottom: 10px;
+ border: 2px solid #979797;
+}
+.box .submit {
+ margin: auto;
+ width: 90px;
+ height: 48px;
+ object-fit: contain;
+ border-radius: 8px;
+ border: none;
+ box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.5);
+ background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
+}
+.box .submit label {
+ object-fit: contain;
+ font-size: 18px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: #002680;
+}
+.input-area {
+ margin: 10px auto;
+ display: flex;
+ flex-flow: row;
+ align-items: center;
+ justify-content: space-between;
+ width: 100%;
+ height: 48px;
+}
+.input-area.col {
+ flex-flow: column;
+ align-items: flex-start;
+ height: auto;
+}
+.input-area h3 {
+ font-weight: normal;
+ color: #002680;
+ margin: 18px 0;
+}
+.input-area .buttons {
+ width: 100%;
+ display: flex;
+ flex-flow: row;
+ margin-bottom: 18px;
+}
+.input-area .buttons:last-child {
+ margin-bottom: 0;
+}
+.input-area label {
+ color: #002680;
+ font-size: 24px;
+ font-weight: 500;
+ flex: 1;
+}
+.input-area .numeric {
+ font-size: 18px;
+ font-weight: 500;
+ color: #6d6d6d;
+ width: 100px;
+ 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: 4px;
+ align-items: center;
+ justify-content: stretch;
+}
+.input-area .numeric input {
+ border: none;
+ font-size: 16px;
+ text-align: right;
+ height: 100%;
+ width: 100%;
+ outline: none !important;
+ background-color: transparent;
+}
+.input-area .numeric input[type=number]::-webkit-inner-spin-button,
+.input-area .numeric input[type=number]::-webkit-outer-spin-button {
+ -webkit-appearance: none;
+ margin: 0;
+}
+.input-area .numeric span {
+ padding: 0 3px;
+ font-size: 14px;
+}
+.input-area select {
+ min-width: 150px;
+ height: 48px;
+ background-color: #fff;
+ padding: 0 20px;
+ font-size: 1rem;
+}
+.setup-play {
+ cursor: pointer;
+ margin: auto;
+ display: flex;
+}
.text-success {
color: #002680;
}
@@ -3670,89 +4072,238 @@
box-sizing: border-box;
resize: none;
}
+.box-graph-dashboard {
+ height: 610px;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+}
+.box-graph-dashboard .svg-dashboard {
+ background-repeat: no-repeat;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+}
+.box-graph-dashboard .svg-dashboard.dashboard3 {
+ margin-left: -150px;
+ margin-bottom: 250px;
+ height: 100px;
+ width: 900px;
+ background-size: 900px;
+ background-image: url(/assets/icons/svg/svg-dashboard3.svg);
+}
+.box-graph-dashboard .svg-dashboard.dashboard3 label {
+ margin: unset;
+ font-size: 35px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+}
+.box-graph-dashboard .time-box {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ height: 100%;
+ margin-top: 200px;
+ margin-right: -150px;
+}
+.box-graph-dashboard .time-box .svg-dashboard label {
+ margin-top: 8px;
+ font-size: 26px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1.96;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+}
+.box-graph-dashboard .time-box .svg-dashboard time {
+ font-size: 120px;
+ font-weight: 300;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+}
+.box-graph-dashboard .time-box .svg-dashboard.dashboard {
+ background-image: url(/assets/icons/svg/svg-dashboard.svg);
+ height: 178px;
+ width: 545px;
+ background-size: 545px;
+ position: relative;
+}
+.box-graph-dashboard .time-box .svg-dashboard.dashboard2 {
+ height: 178px;
+ background-size: 545px;
+ width: 545px;
+ background-image: url(/assets/icons/svg/svg-dashboard2.svg);
+}
+.box-graph-dashboard .time-box .box-time-passed {
+ height: 117px;
+ margin: 40px 0px;
+ text-align: center;
+ display: flex;
+ justify-content: center;
+ flex-direction: column;
+}
+.box-graph-dashboard .time-box .box-time-passed label:first-of-type {
+ font-size: 26px;
+}
+.box-graph-dashboard .time-box .box-time-passed label:last-of-type {
+ font-size: 54px;
+}
+.box-graph-dashboard .box-circle-piece {
+ margin-top: 200px;
+ display: flex;
+ align-items: center;
+ position: relative;
+ height: 800px;
+ width: 800px;
+}
+.box-graph-dashboard .box-circle-piece hr {
+ margin: auto;
+ height: 5px;
+ width: calc(800px/2);
+ background-color: gray;
+ z-index: 1;
+ border: none;
+}
+.box-graph-dashboard .box-circle-piece .gauge-container-dashboard {
+ width: 800px;
+ height: 800px;
+ border-radius: 5px;
+ position: absolute;
+ top: calc(50% - (800px/2));
+ left: calc(50% - (800px/2));
+}
+.box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge1 {
+ width: 770px;
+ height: 770px;
+ top: calc(50% - (770px/2));
+ left: calc(50% - (770px/2));
+}
+.box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge1 .gauge .dial {
+ fill: #99CFFF;
+ stroke: #91A2B1;
+}
+.box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge1 .gauge .value {
+ stroke: #4DAAFF;
+}
+.box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge1 .gauge .value-text {
+ fill: black;
+ alignment-baseline: before-edge;
+ font-size: 20px;
+}
+.box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge2 .gauge .value-text {
+ fill: black;
+ alignment-baseline: after-edge;
+ font-size: 20px;
+}
+.box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge2 .gauge .dial {
+ stroke: #003264;
+}
+.box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge2 .gauge .value {
+ stroke: #90C03D;
+ stroke-width: 2;
+}
.dashboard {
height: 100%;
width: 100%;
- display: flex;
background-image: url("../../assets/icons/png/bg.png");
position: fixed;
z-index: 1001;
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-start;
}
-.dashboard .ribbon-container {
- width: 496px;
+.dashboard .header {
+ width: 100%;
+ display: flex;
+}
+.dashboard .header .ribbon-container {
height: 80px;
z-index: 900;
}
-.dashboard .box-date {
+.dashboard .header .box-date {
display: flex;
- width: 40%;
+ width: 70%;
margin-left: 100px;
}
-.dashboard .box-date div {
+.dashboard .header .box-date div {
flex-shrink: 0;
font-size: 47px;
text-align: right;
font-weight: 500;
}
-.dashboard .box-date time {
+.dashboard .header .box-date time {
flex-shrink: 0;
transition: color 200ms ease-in-out;
margin-left: 28px;
display: flex;
font-size: 120px;
}
-.dashboard .arch {
- display: flex;
- justify-content: flex-start;
- position: relative;
- width: 30%;
- text-align: center;
+.dashboard .header .arch {
+ width: 100%;
}
-.dashboard .arch .box-gauge {
- position: relative;
- display: inline-block;
+.dashboard .header .arch .box-gauge {
+ height: 150px;
+ width: 150px;
}
-.dashboard .arch .box-gauge .gauge-container {
- display: inline-block;
-}
-.dashboard .arch .box-gauge .gauge-container .gauge {
+.dashboard .header .arch .box-gauge .gauge-container,
+.dashboard .header .arch .box-gauge .three {
width: 126px;
height: 92px;
}
-.dashboard .arch .box-gauge .gauge-container path.value {
+.dashboard .header .arch .box-gauge .gauge-container .gauge .value,
+.dashboard .header .arch .box-gauge .three .gauge .value {
stroke: #1791ff;
- stroke-width: 5;
}
-.dashboard .arch .box-gauge .gauge-container text {
- font-size: 20px;
+.dashboard .header .arch .box-gauge .gauge-container .gauge .value-text,
+.dashboard .header .arch .box-gauge .three .gauge .value-text {
+ fill: #4b4b4b;
}
-.dashboard .arch .box-gauge .gauge-container path.dial {
- stroke: #dddddd;
- stroke-width: 5;
+.dashboard .header .arch .box-gauge div:last-of-type {
+ margin-top: -10px;
}
-.dashboard .arch .box-gauge span {
- position: absolute;
- top: 60px;
- left: 53px;
- font-size: 14px;
-}
-.dashboard .arch .box-gauge label {
+.dashboard .header .arch .box-gauge div:last-of-type label:first-of-type {
+ font-size: 18px;
+ font-weight: 300;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
text-align: center;
- text-transform: uppercase;
- font-weight: 600;
+ color: #4b4b4b;
}
-.dashboard .header-buttons {
+.dashboard .header .arch .box-gauge div:last-of-type label:last-of-type {
+ font-size: 26px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1.96;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+}
+.dashboard .header .header-buttons {
display: inline-block;
}
-.dashboard .header-buttons .box-close-dashboard {
+.dashboard .header .header-buttons .box-close-dashboard {
height: 70px;
text-align: right;
}
-.dashboard .header-buttons .box-close-dashboard button.modal-close {
+.dashboard .header .header-buttons .box-close-dashboard button.modal-close {
background-color: #4B4B4B;
margin: 23px;
}
-.dashboard .header-buttons .user-info {
+.dashboard .header .header-buttons .user-info {
margin-top: 10px;
display: flex;
font-size: 25px;
@@ -3761,7 +4312,7 @@
justify-content: flex-end;
margin-right: 21px;
}
-.dashboard .header-buttons .user-info button.profile {
+.dashboard .header .header-buttons .user-info button.profile {
width: 48px;
height: 48px;
background-image: url("../profile.png");
@@ -3770,68 +4321,276 @@
border: none;
background-color: transparent;
}
-.dashboard .header-buttons .user-info button.profile.colorWhite {
+.dashboard .header .header-buttons .user-info button.profile.colorWhite {
color: #FFF;
}
-.dashboard .header-buttons .user-info div {
+.dashboard .header .header-buttons .user-info div {
align-self: center;
margin-right: 10px;
font-size: 18px;
}
-.modal.pirometro-info {
- width: 1820px;
- height: 980px;
+.dashboard section {
+ margin-top: -400px;
+ height: 722px;
+ display: flex;
+ justify-content: flex-end;
+ padding-right: 15px;
+ padding-bottom: 50px;
}
-.modal.pirometro-info section.body section .specific {
- width: 470px;
- margin-left: 37%;
+.dashboard section .specific {
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
}
-.modal.pirometro-info section.body section .termospecific {
- margin-left: 0%;
+.dashboard section .specific div {
+ display: flex;
}
-.modal.pirometro-info section.body section .termospecific .svg-area {
- padding-left: 90px;
- width: 1270px;
- height: 800px;
+.dashboard section .specific:first-of-type {
+ margin-right: 15%;
}
-.modal.pirometro-info section.body section .termospecific .svg-area .disegnoTermoSuperiore {
+.dashboard section .specific:first-of-type div:first-of-type img {
flex-shrink: 0;
- width: 1100px;
- height: 750px;
+ width: 41px;
+ height: 41px;
+ object-fit: contain;
}
-.modal.pirometro-info section.body section .termospecific .svg-area .border-termo-superiore .circle1 {
- position: relative;
- top: 135px;
- right: 1150px;
+.dashboard section .specific:first-of-type div:first-of-type label {
+ flex-shrink: 0;
+ font-size: 54px;
+ font-weight: normal;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: right;
+ color: #4b4b4b;
}
-.modal.pirometro-info section.body section .termospecific .svg-area .border-termo-superiore .circle2 {
- position: relative;
- top: 355px;
- right: 1150px;
+.dashboard section .specific:first-of-type div:last-of-type {
+ margin: unset;
}
-.modal.pirometro-info section.body section .termospecific .svg-area .border-termo-superiore .circle3 {
- position: relative;
- top: 425px;
- right: 1150px;
+.dashboard section .specific:first-of-type div:last-of-type button {
+ flex-shrink: 0;
+ width: 65px;
+ height: 65px;
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.5);
+ border: solid 3px #4b4b4b;
+ background-color: rgba(255, 255, 255, 0.2);
+ border-radius: 50%;
+ color: #4b4b4b;
+ font-size: 50px;
+ text-align: center;
}
-.modal.pirometro-info section.body section .termospecific .svg-area .border-termo-superiore .circle4 {
- position: relative;
- top: 470px;
- right: 635px;
+.dashboard section .specific:first-of-type div:last-of-type label {
+ flex-shrink: 0;
}
-.modal.pirometro-info section.body section .termospecific .svg-area .border-termo-superiore .circle5 {
- position: relative;
- top: 400px;
- right: 255px;
+.dashboard section .specific:first-of-type div:last-of-type label:first-of-type {
+ font-size: 12px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
}
-.modal.pirometro-info section.body section .termospecific .svg-area .border-termo-superiore .circle6 {
- width: 100px;
- background-color: #c03d58;
- position: relative;
- top: 87px;
- right: 150px;
+.dashboard section .specific:first-of-type div:last-of-type label:last-of-type {
+ font-size: 25px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
}
-.modal.pirometro-info section.body section .termospecific button {
+.dashboard section .specific label {
+ flex-shrink: 0;
+}
+.dashboard section .specific label:first-of-type {
+ font-size: 26px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1.96;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+}
+.dashboard section .specific label:last-of-type {
+ font-size: 120px;
+ font-weight: 300;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+}
+.dashboard section .specific:last-of-type {
+ margin-left: 15%;
+}
+.dashboard section .specific:last-of-type div {
+ flex-shrink: 0;
+ width: 542px;
+ height: 71px;
+ background-color: rgba(0, 0, 0, 0.5);
+}
+.dashboard section .specific:last-of-type .actual {
+ background-color: unset;
+ width: unset;
+ height: unset;
+}
+.dashboard section .specific:last-of-type .actual .specific {
+ background-color: unset;
+ width: unset;
+ height: unset;
+ margin: unset;
+}
+.dashboard section .specific:last-of-type .actual .specific label {
+ flex-shrink: 0;
+}
+.dashboard section .specific:last-of-type .actual .specific label:first-of-type {
+ font-size: 26px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1.96;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+}
+.dashboard section .specific:last-of-type .actual .specific label:last-of-type {
+ font-size: 120px;
+ font-weight: 300;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+}
+.dashboard section .specific:last-of-type aside {
+ margin-top: 5px;
+ width: 641px;
+ height: 100%;
+ overflow-x: hidden;
+}
+.dashboard section .specific:last-of-type aside .component {
+ width: 621px;
+ height: 77px;
+}
+.dashboard section .specific:last-of-type .component-info {
+ width: unset;
+ height: unset;
+ background-color: unset;
+ display: flex;
+ flex-direction: column;
+}
+.dashboard section .specific:last-of-type .component-info section {
+ margin: unset;
+ padding: unset;
+ height: unset;
+ width: unset;
+ display: flex;
+ justify-content: flex-end;
+}
+.dashboard section .specific:last-of-type .component-info section section {
+ margin: unset;
+ padding: unset;
+ height: unset;
+ width: unset;
+ display: flex;
+ flex-direction: column;
+}
+.dashboard section .specific:last-of-type .component-info section section .component {
+ width: 478px;
+ height: 60px;
+ background-color: #e8e8e8;
+}
+.dashboard section .specific:last-of-type .component-info section section .component div {
+ flex-shrink: unset;
+}
+.dashboard section .specific:last-of-type .component-info section section .component div button {
+ border-color: black;
+ width: 50PX;
+ height: 50px;
+ border-radius: 50%;
+ background-color: unset;
+}
+.dashboard section .specific:last-of-type .component-info .component {
+ width: 641px;
+ height: 84px;
+ background-color: #e8e8e8;
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+}
+.dashboard section .specific:last-of-type .component-info .component div {
+ flex-shrink: 0;
+ margin: auto;
+ padding: 0px 15px;
+ width: unset;
+ height: unset;
+ background-color: unset;
+}
+.dashboard section .specific:last-of-type .component-info .component div label {
+ flex-shrink: 0;
+ font-size: 54px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: right;
+ color: #4b4b4b;
+}
+.dashboard section .specific:last-of-type .component-info .component div .specific {
+ height: unset;
+ width: unset;
+ background-color: unset;
+ margin: unset;
+}
+.dashboard section .specific:last-of-type .component-info .component div .specific label {
+ flex-shrink: 0;
+}
+.dashboard section .specific:last-of-type .component-info .component div .specific label:first-of-type {
+ font-size: 12px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+}
+.dashboard section .specific:last-of-type .component-info .component div .specific label:last-of-type {
+ font-size: 25px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+}
+.dashboard section .specific:last-of-type .component-info .component div button {
+ height: 20px;
+ width: 20px;
+ background-color: black;
+}
+.dashboard section .specific:last-of-type .component-info .component span {
+ flex-shrink: 0;
+ width: 100%;
+ height: 1px;
+ background-color: #676767;
+}
+.modal.pirometro-info section.termo .tast {
+ margin-left: 400px;
+}
+.modal.pirometro-info section .specific {
+ width: 470px;
+}
+.modal.pirometro-info section .termospecific button {
margin-left: 5px;
width: 48px;
height: 48px;
@@ -3841,27 +4600,56 @@
border: solid 1px #001e48;
background-image: linear-gradient(to bottom, #1756ad, #002680);
}
-.modal.riscaldi-info .presenter {
- position: relative;
+.modal.riscaldi-info section.body section {
+ justify-content: center;
+}
+.modal.riscaldi-info section.body section .sost-dec {
+ width: 471px;
+}
+.modal.riscaldi-info .specific {
width: 100%;
- height: 100%;
+ margin-top: 10px;
+ margin-bottom: 10px;
}
-.modal.riscaldi-info .presenter .zoom {
- position: absolute;
- bottom: 0;
- right: 0;
- display: grid;
- grid-template-rows: 1fr 1fr;
- grid-row-gap: 10px;
+.modal.riscaldi-info .specific:last-of-type {
+ margin: unset;
}
-.modal.riscaldi-info .presenter .zoom .btn {
- padding: 0;
+.modal.riscaldi-info .specific:last-of-type div {
+ display: flex;
+ justify-content: flex-end;
+}
+.modal.riscaldi-info .specific:last-of-type div div {
+ display: flex;
+ flex-direction: column;
+}
+.modal.riscaldi-info .specific:last-of-type div div button {
width: 48px;
height: 48px;
}
+.modal.riscaldi-info .specific select {
+ width: 110px;
+ height: 48px;
+}
+.modal.riscaldi-info .specific .btn {
+ margin-top: 10px;
+ width: 201px;
+}
+.modal.riscaldi-info .specific button {
+ height: 48px;
+}
+.modal.riscaldi-info .specific label {
+ margin-bottom: 10px;
+ color: #002680;
+ font-size: 24px;
+ font-weight: 500;
+}
+.modal.formato-info section .tast {
+ margin-left: -300px;
+}
.modal.formato-info .radio-buttons {
display: flex;
justify-content: flex-start;
+ align-items: center;
}
.modal.formato-info .radio-buttons input {
width: 24px;
@@ -3892,120 +4680,6 @@
padding-right: 200px;
padding-left: 20px;
}
-.modal.formato-info .specific {
- margin-left: 5px;
- width: 1271px;
- height: 825px;
-}
-.modal.formato-info .specific .svg-area {
- margin-left: 120px;
- margin-top: 70px;
- width: 999px;
- height: 527px;
-}
-.modal.formato-info .specific .svg-area .disegnoStampo {
- height: 473px;
- width: 723px;
-}
-.modal.formato-info .specific .svg-area .disegnoLastra {
- height: 468px;
- width: 854px;
-}
-.modal.formato-info .specific .svg-area .disegnoPiastra {
- height: 468px;
- width: 751px;
-}
-.modal.formato-info .specific .svg-area .disegnoCornice {
- height: 468px;
- width: 744px;
-}
-.modal.formato-info .specific .svg-area .disegnoControstampo {
- height: 468px;
- width: 692px;
-}
-.modal.formato-info .specific .svg-area .border-cornice .circle1 {
- position: relative;
- right: 730px;
- top: 300px;
-}
-.modal.formato-info .specific .svg-area .border-cornice .circle2 {
- position: relative;
- right: 180px;
- top: 230px;
-}
-.modal.formato-info .specific .svg-area .border-piastra .circle1 {
- position: relative;
- right: 800px;
- top: 310px;
-}
-.modal.formato-info .specific .svg-area .border-piastra .circle2 {
- position: relative;
- right: 180px;
- top: 220px;
-}
-.modal.formato-info .specific .svg-area .border-lastra .circle1 {
- position: relative;
- right: 820px;
- top: 100px;
-}
-.modal.formato-info .specific .svg-area .border-lastra .circle2 {
- position: relative;
- right: 800px;
- top: 240px;
-}
-.modal.formato-info .specific .svg-area .border-lastra .circle3 {
- position: relative;
- right: 200px;
- top: 180px;
-}
-.modal.formato-info .specific .svg-area .border-stampo .circle1 {
- position: relative;
- right: 780px;
- top: 80px;
-}
-.modal.formato-info .specific .svg-area .border-stampo .circle2 {
- position: relative;
- right: 870px;
- top: 130px;
-}
-.modal.formato-info .specific .svg-area .border-stampo .circle3 {
- position: relative;
- right: 720px;
- top: 240px;
-}
-.modal.formato-info .specific .svg-area .border-stampo .circle4 {
- position: relative;
- right: 150px;
- top: 190px;
-}
-.modal.formato-info .specific .svg-area .border-stampo .circle5 {
- position: relative;
- top: -50px;
-}
-.modal.formato-info .specific .svg-area .border-controstampo .circle1 {
- position: relative;
- right: 730px;
- top: 140px;
-}
-.modal.formato-info .specific .slides {
- margin-top: 45px;
- margin-left: 20px;
- width: 1241px;
- height: 160px;
- display: flex;
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
-}
-.modal.formato-info .specific .slides img {
- flex-shrink: 0;
- width: 215px;
- height: 140px;
- margin-right: 25px;
- border: 1px solid #bbbcbc;
-}
-.modal.formato-info .specific .slides .imgborder {
- border: 1px solid #002680;
-}
.slider {
display: flex;
flex-flow: row wrap;
@@ -4093,90 +4767,281 @@
background-image: linear-gradient(to bottom, #fff 0%, #bbbcbc 98%);
margin: 16px;
}
-.tast {
- margin-top: 30px;
- margin-left: -350px;
- height: 261px;
- width: 293px;
+.keyboard {
+ height: 262px;
+ width: 262px;
background-color: #bbbcbc;
+ display: flex;
+ justify-content: center;
}
-.mask {
+.keyboard .mask {
display: grid;
grid-template-columns: repeat(4, 52px);
grid-template-rows: repeat(4, 52px);
grid-gap: 5px 8px;
margin-top: 7%;
- margin-left: 10%;
}
-.tasto {
+.keyboard .mask button {
border: none;
background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
+ color: #002680;
+ font-size: 20px;
}
-.zero {
+.keyboard .mask .zero {
grid-column: 1 / span 2;
grid-row: 0.8;
border: none;
background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
}
-.submit {
+.keyboard .mask .submit {
grid-column-start: 4;
grid-column-end: 5;
grid-row-start: 3;
grid-row-end: 5;
border: none;
- background-image: linear-gradient(to bottom, #000080 0%, #191970 98%);
+ background-size: 52px;
+ background-image: url(/assets/icons/png/submit.png);
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
}
-.b1 {
- grid-column: 0.5;
- grid-row: 0.75;
-}
-.b2 {
- grid-column: 0.66666667;
- grid-row: 0.75;
-}
-.b3 {
- grid-column: 0.75;
- grid-row: 0.75;
-}
-.b4 {
- grid-column: 0.5;
- grid-row: 0.66666667;
-}
-.b5 {
- grid-column: 0.66666667;
- grid-row: 0.66666667;
-}
-.b6 {
- grid-column: 0.75;
- grid-row: 0.66666667;
-}
-.b7 {
- grid-column: 0.5;
- grid-row: 0.5;
-}
-.b8 {
- grid-column: 0.66666667;
- grid-row: 0.5;
-}
-.b9 {
- grid-column: 0.75;
- grid-row: 0.5;
-}
-.bCanc {
+.keyboard .mask .bCanc {
grid-column: 0.8;
grid-row: 0.66666667;
+ background-size: 52px;
+ background-image: url(/assets/icons/png/canc.png);
}
-.bPunto {
+.keyboard .mask .b1 {
+ grid-column: 0.5;
+ grid-row: 0.75;
+}
+.keyboard .mask .b2 {
+ grid-column: 0.66666667;
+ grid-row: 0.75;
+}
+.keyboard .mask .b3 {
+ grid-column: 0.75;
+ grid-row: 0.75;
+}
+.keyboard .mask .b4 {
+ grid-column: 0.5;
+ grid-row: 0.66666667;
+}
+.keyboard .mask .b5 {
+ grid-column: 0.66666667;
+ grid-row: 0.66666667;
+}
+.keyboard .mask .b6 {
+ grid-column: 0.75;
+ grid-row: 0.66666667;
+}
+.keyboard .mask .b7 {
+ grid-column: 0.5;
+ grid-row: 0.5;
+}
+.keyboard .mask .b8 {
+ grid-column: 0.66666667;
+ grid-row: 0.5;
+}
+.keyboard .mask .b9 {
+ grid-column: 0.75;
+ grid-row: 0.5;
+}
+.keyboard .mask .bPunto {
grid-column: 0.75;
grid-row: 0.8;
}
-.bDel {
+.keyboard .mask .bDel {
grid-column: 0.8;
grid-row: 0.5;
}
+.preriscaldodashboard {
+ height: 100%;
+ width: 100%;
+ background-image: url("../../assets/icons/png/bg.png");
+ position: fixed;
+ z-index: 1001;
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-start;
+}
+.preriscaldodashboard .header {
+ width: 100%;
+ display: flex;
+}
+.preriscaldodashboard .header .ribbon-container {
+ height: 80px;
+ z-index: 900;
+}
+.preriscaldodashboard .header .box-date {
+ display: flex;
+ width: 100%;
+ justify-content: center;
+}
+.preriscaldodashboard .header .box-date div {
+ flex-shrink: 0;
+ font-size: 47px;
+ text-align: right;
+ font-weight: 500;
+}
+.preriscaldodashboard .header .box-date time {
+ flex-shrink: 0;
+ transition: color 200ms ease-in-out;
+ margin-left: 28px;
+ display: flex;
+ font-size: 120px;
+}
+.preriscaldodashboard .header .header-buttons {
+ display: inline-block;
+}
+.preriscaldodashboard .header .header-buttons .box-close-dashboard {
+ height: 70px;
+ text-align: right;
+}
+.preriscaldodashboard .header .header-buttons .box-close-dashboard button.modal-close {
+ background-color: #4B4B4B;
+ margin: 23px;
+}
+.preriscaldodashboard .header .header-buttons .user-info {
+ margin-top: 10px;
+ display: flex;
+ font-size: 25px;
+ color: #4b4b4b;
+ flex-grow: 1;
+ justify-content: flex-end;
+ margin-right: 21px;
+}
+.preriscaldodashboard .header .header-buttons .user-info button.profile {
+ width: 48px;
+ height: 48px;
+ background-image: url("../profile.png");
+ color: #000;
+ background-size: cover;
+ border: none;
+ background-color: transparent;
+}
+.preriscaldodashboard .header .header-buttons .user-info button.profile.colorWhite {
+ color: #FFF;
+}
+.preriscaldodashboard .header .header-buttons .user-info div {
+ align-self: center;
+ margin-right: 10px;
+ font-size: 18px;
+}
+.preriscaldodashboard section {
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-evenly;
+}
+.preriscaldodashboard section label:first-of-type {
+ font-size: 67px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 0.76;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+}
+.preriscaldodashboard section label:last-of-type {
+ font-size: 26px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1.96;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+}
+.preriscaldodashboard section div {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+}
+.preriscaldodashboard section div div {
+ margin: 0px 70px;
+ display: flex;
+ flex-direction: column;
+}
+.preriscaldodashboard section div div label:first-of-type {
+ font-size: 250px;
+ font-weight: 200;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+}
+.preriscaldodashboard section div div label:last-of-type {
+ font-size: 50px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: #4b4b4b;
+}
+.circle-gantt {
+ height: 70px;
+}
+.circle-gantt .specific div:first-of-type {
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+ height: 70px;
+ object-fit: contain;
+ border-radius: 2px;
+ background-color: #57636b;
+}
+.circle-gantt .specific div:first-of-type label {
+ margin-left: 37%;
+}
+.circle-gantt .specific div:last-of-type {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ margin-top: -66px;
+ height: 40px;
+ object-fit: contain;
+ border-radius: 2px;
+ background-color: #c0c7cc;
+}
+.circle-gantt .specific div:last-of-type label {
+ margin-left: 25%;
+}
+.circle-gantt .specific:first-of-type div:first-of-type {
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+ width: 34px;
+ height: 70px;
+ object-fit: contain;
+ border-radius: 2px;
+ background-color: #57636b;
+}
+.circle-gantt .specific:first-of-type div:first-of-type label {
+ margin-left: 25%;
+}
+.circle-gantt .specific:first-of-type div:last-of-type {
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+ margin-top: -66px;
+ width: 34px;
+ height: 40px;
+ object-fit: contain;
+ border-radius: 2px;
+ background-color: #c0c7cc;
+}
+.circle-gantt .specific:first-of-type div:last-of-type img {
+ margin-left: 25%;
+ flex-shrink: 0;
+ width: 20px;
+ height: 20px;
+}
html {
height: 100%;
overflow: hidden;
@@ -4187,68 +5052,55 @@ body {
padding: 0;
height: 100%;
}
+.hidden {
+ visibility: hidden;
+}
.main-nav {
position: absolute;
top: 50%;
right: 0;
z-index: 1000;
}
-.text-head-sidebar {
- margin: 10px auto;
- font-size: 24px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- text-align: center;
- color: #002680;
+.container #app nav {
+ position: absolute;
+ top: 50%;
+ right: 0;
}
-.text-box-paddle {
- display: flex;
- width: 268px;
- height: 78px;
- font-family: WorkSans;
- font-size: 18px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- color: #ffffff;
- margin: 10px;
+.container #app nav .active button {
+ transform: translate(-761px, 0px);
}
-.text-box-paddle label {
- width: 117px;
- margin: 10px;
+.container #app nav div button {
+ position: relative;
+ height: 30px;
+ width: 32px;
+ display: block;
+ z-index: 1000;
+ border: 0;
+ border-radius: 0;
+ pointer-events: all;
+ background: #dddddd;
+ border-bottom-left-radius: 90px;
+ border-top-left-radius: 90px;
+ height: 90px;
+ width: 45px;
+ box-shadow: -3px 0 3px rgba(0, 0, 0, 0.2);
}
-.text-box-paddle.text-soft label {
- width: 100%;
- align-self: center;
-}
-.box-sidebar-panel {
+.container #app nav div button div {
display: grid;
grid-template-columns: repeat(2, 1fr);
+ grid-template-rows: 1fr 1fr;
align-items: center;
justify-items: center;
+ padding: 5px;
}
-.sidebar-panel-nav {
- width: 286px;
- height: 100px;
- border-radius: 2px;
- box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);
- background-color: #808e96;
- margin: 10px 30px;
+.container #app nav div button div div {
+ width: 2px;
+ height: 2px;
+ border-radius: 10px;
+ margin: 2px;
+ background: #002680;
}
-.slide-enter-active,
-.slide-leave-active {
- transition: left, right 0s ease-in-out;
-}
-.slide-enter,
-.slide-leave-to {
- transition: right, left 0s ease-in-out;
-}
-.sidebar-backdrop {
+.container #app .sidebar .sidebar-backdrop {
width: 100vw;
height: 100vh;
position: fixed;
@@ -4256,7 +5108,7 @@ body {
left: 0;
cursor: pointer;
}
-.sidebar-panel {
+.container #app .sidebar .sidebar-panel {
overflow-y: auto;
background-color: #130f40;
position: fixed;
@@ -4271,420 +5123,130 @@ body {
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
background-color: #dddddd;
}
-.hidden {
- visibility: hidden;
+.container #app .sidebar .sidebar-panel .text-head-sidebar {
+ margin: 10px auto;
+ font-size: 24px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ text-align: center;
+ color: #002680;
}
-button {
- cursor: pointer;
-}
-.switch-button {
- position: relative;
- height: 30px;
- width: 32px;
- display: block;
- z-index: 9999;
- border: 0;
- border-radius: 0;
- pointer-events: all;
- background: #dddddd;
- border-bottom-left-radius: 90px;
- border-top-left-radius: 90px;
- height: 90px;
- width: 45px;
-}
-.circle-button {
- width: 10px;
- height: 10px;
- border-radius: 10px;
- margin: 3px;
- background: #002680;
-}
-.switch-paddle.active .switch-button {
- transform: translate(-761px, 0px);
-}
-.box-circle-paddle {
+.container #app .sidebar .sidebar-panel .box-sidebar-panel {
display: grid;
grid-template-columns: repeat(2, 1fr);
- grid-template-rows: 1fr 1fr;
align-items: center;
justify-items: center;
- padding: 5px;
}
-.gear-box-paddle {
+.container #app .sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav {
+ width: 286px;
+ height: 100px;
+ border-radius: 2px;
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);
+ background-color: #808e96;
+ margin: 10px 30px;
+}
+.container #app .sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav .text-box-paddle {
+ display: flex;
+ width: 268px;
+ height: 78px;
+ font-family: WorkSans;
+ font-size: 18px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ color: #ffffff;
+ margin: 10px;
+}
+.container #app .sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav .text-box-paddle i {
text-align: end;
width: 50px;
color: #bbbcbc;
}
+.container #app .sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav .text-box-paddle label {
+ width: 117px;
+ margin: 10px;
+}
+.container #app .sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav .text-box-paddle.text-soft label {
+ width: 100%;
+ align-self: center;
+}
.modal.estrazione-info {
width: 560px;
height: 411px;
}
-.setup {
- padding-top: 50px;
- display: flex;
- justify-content: flex-start;
- align-items: center;
- flex-flow: column nowrap;
- width: 100vw;
- height: 100vh;
-}
-.setup hr {
- flex-shrink: 0;
- background-color: #979797;
- width: 2px;
- height: 100%;
- margin: 0;
- margin-left: 5px;
-}
-.setup .modal {
- width: 1820px;
- height: 980px;
-}
-.setup .modal section.body {
- height: calc(100% - 66px);
-}
-.setup .modal section.body section {
- height: 100%;
- flex-flow: row nowrap;
- padding: 14px;
- display: flex;
- justify-content: flex-start;
- width: calc(100% - 28px);
- height: calc(100% - 28px - 82px);
-}
-.setup .modal section.body section .auto {
- overflow-y: auto;
- overflow-x: hidden;
-}
-.setup .modal section.body section aside {
- display: flex;
- justify-content: start;
- flex-direction: column;
- height: 100%;
- width: 520px;
- flex: 0 0 520px;
- overflow-y: scroll;
- padding-right: 10px;
-}
-.setup .modal section.body section aside hr {
- flex-shrink: 0;
- background-color: #979797;
- width: 100%;
- height: 2px;
- margin-left: 0px;
-}
-.setup .modal section.body section .specific {
- display: flex;
- flex-direction: column;
-}
-.setup .modal section.body section .specific .svg-area {
- display: flex;
- justify-content: center;
-}
-.setup .modal section.body section .specific .svg-area .input-circles {
- display: flex;
- flex-direction: column;
-}
-.setup .modal section.body section .specific .svg-area .input-circles span {
- object-fit: contain;
- font-size: 22px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- text-align: center;
- color: white;
- background-color: #979797;
-}
-.setup .modal section.body section .specific .svg-area .input-circles .circle {
- width: 141px;
- height: 60px;
- box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.5);
- background-color: rgba(255, 255, 255, 0.8);
- display: flex;
- justify-content: flex-start;
- object-fit: contain;
- border-radius: 40.5px;
- border: solid 4px #9b9b9b;
-}
-.setup .modal section.body section .specific .svg-area .input-circles input {
- width: 40px;
- height: 21px;
- margin: auto;
- object-fit: contain;
- font-size: 20px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- color: #6d6d6d;
- border: none;
-}
-.setup .modal section.body section .specific .svg-area .input-circles label {
- margin: auto;
- object-fit: contain;
- font-size: 20px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- color: #6d6d6d;
-}
-.setup .modal section.body section .specific .svg-area .input-circles img {
- margin: auto;
- width: 20px;
- height: 20px;
- object-fit: contain;
-}
-.setup .modal section.body footer {
- height: 82px;
+.arch {
display: flex;
justify-content: flex-end;
- align-items: center;
-}
-.setup .modal header {
- background-color: #fff;
- color: #002680;
- font-weight: 600;
- font-size: 24px;
- text-align: left;
- padding: 0px 23px;
- display: flex;
- flex-flow: row nowrap;
- justify-content: space-between;
- align-items: stretch;
-}
-.modal.setup-info header {
- padding-left: 31px;
- display: flex;
- align-items: center;
- font-size: 20px;
- font-weight: bold;
- color: darkblue;
-}
-.tab-header {
- display: flex;
- flex-flow: row;
- align-items: stretch;
- justify-content: flex-start;
-}
-.tab-header button {
- background: none;
- border: 1px solid #bbbcbc;
- padding: 0 38px;
- border-bottom: none;
- font-size: 20px;
- background-color: #bbbcbc;
- color: #002680;
-}
-.tab-header button.active {
- background-color: #fff;
- font-weight: bold;
- border-top: 2px solid #002680;
-}
-.modal.setup-info {
- width: 1639px;
- height: 695px;
- background-color: #fff;
- margin: 150px 193px;
- box-shadow: none;
-}
-.modal.setup-info section {
- height: 100%;
-}
-.modal.setup-info section .Rectangle {
- width: calc(100% - 200px);
- height: calc(100% - 200px);
- background-color: #BBBCBC;
- display: grid;
- grid-template-columns: repeat(6, 1fr);
- grid-template-rows: 1fr 1fr;
- align-items: center;
- justify-items: center;
- padding: 100px;
-}
-.setup-button {
- cursor: pointer;
- display: grid;
- width: 200px;
- height: 128px;
- grid-template-columns: 50px 1fr;
- grid-template-rows: 1fr 50px;
- position: relative;
-}
-.setup-button span,
-.setup-button label {
- grid-column: 1;
- display: flex;
- align-items: flex-end;
- color: #fff;
- z-index: 2;
- justify-content: center;
- font-weight: 500;
- font-size: 18px;
- padding-left: 10px;
-}
-.setup-button label {
- grid-column: 2;
- color: #002680;
- justify-content: flex-start;
-}
-.setup-button img {
- grid-column: 2;
- grid-row: 2;
- z-index: 2;
- margin: auto;
-}
-.setup-button i {
- grid-column: 2;
- grid-row: 2;
- z-index: 2;
- margin: auto;
- transform: scale(1.5);
-}
-.setup-button i.fa-check-circle {
- color: #90BF3D;
-}
-.setup-button i.fa-check-circle.undone-step {
- color: #1791FF;
-}
-.setup-button .background-top,
-.setup-button .background-bottom {
- position: absolute;
- left: 0;
- width: 100%;
- height: 50%;
- transform: skewX(12px);
-}
-.setup-button .background-top:after,
-.setup-button .background-bottom:after {
- content: "";
- display: block;
- position: absolute;
- left: 0;
- top: 0;
- height: 100%;
- width: 35px;
- background-color: #002680;
-}
-.setup-button .background-top {
- background-image: linear-gradient(to bottom, #fff, #e6e6e6);
- top: 0;
- transform: skewX(20deg);
-}
-.setup-button .background-bottom {
- background-image: linear-gradient(to bottom, #e6e6e6, #e2e2e2);
- bottom: 0;
- transform: skewX(-20deg);
-}
-.box {
- margin-bottom: 30px;
- box-sizing: border-box;
- clear: both;
-}
-.box .header {
- display: flex;
- align-items: center;
- justify-content: center;
- height: 44px;
- width: 100%;
- font-size: 24px;
- font-weight: bold;
- color: #fff;
- background-color: #979797;
-}
-.box .body {
- padding: 20px;
- display: flex;
- flex-flow: column;
- justify-items: center;
- padding-bottom: 10px;
- border: 2px solid #979797;
-}
-.box .submit {
- margin: auto;
- width: 90px;
- height: 48px;
- object-fit: contain;
- border-radius: 8px;
- border: none;
- box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.5);
- background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
-}
-.box .submit label {
- object-fit: contain;
- font-size: 18px;
- font-weight: 500;
- font-stretch: normal;
- font-style: normal;
- line-height: normal;
- letter-spacing: normal;
- text-align: center;
- color: #002680;
-}
-.input-area {
- margin: 10px auto;
- display: flex;
- flex-flow: row;
- align-items: center;
- justify-content: space-between;
- width: 100%;
- height: 48px;
-}
-.input-area.col {
- flex-flow: column;
- align-items: flex-start;
- height: auto;
-}
-.input-area h3 {
- font-weight: normal;
- color: #002680;
- margin: 18px 0;
-}
-.input-area .buttons {
- width: 100%;
- display: flex;
- flex-flow: row;
- margin-bottom: 18px;
-}
-.input-area .buttons:last-child {
- margin-bottom: 0;
-}
-.input-area label {
- color: #002680;
- font-size: 24px;
- font-weight: 500;
flex: 1;
}
-.input-area .rect {
- object-fit: contain;
- font-size: 20px;
- font-weight: 500;
+.arch .box-gauge {
+ width: 68px;
+}
+.arch .box-gauge div:last-of-type {
+ margin-top: -25px;
+ display: flex;
+ flex-direction: column;
+ text-align: center;
+}
+.arch .box-gauge div:last-of-type label {
+ font-size: 12px;
+ font-weight: normal;
font-stretch: normal;
font-style: normal;
line-height: normal;
letter-spacing: normal;
- color: #6d6d6d;
text-align: center;
- width: 98px;
- height: 48px;
- border-radius: 2px;
- box-shadow: inset 0 1px 3px 0 rgba(0, 0, 0, 0.5);
+ color: #002680;
}
-.input-area select {
- min-width: 150px;
- height: 48px;
- background-color: #fff;
- padding: 0 20px;
- font-size: 1rem;
+.arch .box-gauge .gauge-container {
+ width: 68px;
+ height: 68px;
+ display: block;
+ border-radius: 3px;
}
-.setup-play {
- cursor: pointer;
- margin: auto;
- display: flex;
+.arch .box-gauge .gauge-container > .gauge > .dial {
+ stroke: #002680;
+ stroke-width: 2;
+}
+.arch .box-gauge .gauge-container > .gauge > .value {
+ stroke: #002680;
+ stroke-width: 2;
+}
+.arch .box-gauge .gauge-container > .gauge > .value-text {
+ color: #002680;
+ font-weight: bold;
+ font-size: 20px;
+}
+.arch .box-gauge .gauge-container.three > .gauge > .dial {
+ stroke: #bbbcbc;
+ stroke-width: 4;
+}
+.arch .box-gauge .gauge-container.three > .gauge > .value {
+ stroke: #002680;
+ stroke-width: 5;
+}
+.arch .box-gauge .gauge-container.three > .gauge > .value-text {
+ fill: #002680;
+}
+.modal.avvio-produzione-info {
+ margin-top: 100px;
+ width: 653px;
+ height: 616px;
+}
+.modal.avvio-produzione-info section.body section {
+ justify-content: center;
+}
+.modal.avvio-produzione-info section.body section .specific .disabled {
+ width: 420px;
+ height: 330px;
+}
+.modal.avvio-produzione-info section.body section .specific .tast {
+ margin-left: 25%;
}
.modal.ciclo-info section .specific {
padding: 0 10px;
@@ -4704,45 +5266,14 @@ button {
border: solid 1px #001e48;
background-image: linear-gradient(to bottom, #1756ad, #002680);
}
-.modal.ciclo-info section .specific .svg-area .disegnoCaricatore {
- flex-shrink: 0;
- width: 1137px;
- height: 707px;
-}
-.modal.ciclo-info section .specific .svg-area .input-circles label {
- object-fit: contain;
- background-color: #979797;
-}
-.modal.ciclo-info section .specific .svg-area .input-circles .circle1 {
- position: relative;
- top: 200px;
- right: 25px;
-}
-.modal.ciclo-info section .specific .svg-area .input-circles .circle2 {
- position: relative;
- top: 400px;
- right: 25px;
-}
-.modal.ciclo-info section .specific .svg-area .input-circles .circle3 {
- width: 135px;
- position: relative;
- top: 545px;
- right: 410px;
-}
-.modal.ciclo-info section .specific .svg-area .input-circles .circle4 {
- position: relative;
- top: 585px;
- right: 200px;
-}
-.modal.ciclo-info section .specific .box {
+.modal.ciclo-info section .box {
margin-bottom: 10px;
width: 500px;
}
-.modal.ciclo-info section .specific .box .body {
+.modal.ciclo-info section .box .body {
padding: 5px 10px;
}
.modal.raffreddamento-info {
- margin-top: 200px;
width: 626px;
height: 569px;
}
@@ -4750,15 +5281,45 @@ button {
margin-left: 50px;
width: 480px;
}
-.modal.processo-info {
- width: 1820px;
- height: 980px;
- margin: 150px 193px;
+.modal.processo-info header {
+ font-size: 22px;
+ color: #4b4b4b;
}
-.modal.progr-preriscaldo-info {
- width: 1639px;
- height: 565px;
- margin-top: 220px;
+.modal.processo-info header .tab-header {
+ padding: 10px 0px;
+}
+.modal.processo-info header .tab-header button {
+ padding: 0;
+ display: flex;
+ justify-content: flex-start;
+ margin-right: 10px;
+ width: 149px;
+ height: 48px;
+ border-radius: 2px;
+ box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.5);
+ background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
+ font-size: 14px;
+ font-weight: 500;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1.15;
+ letter-spacing: normal;
+ color: #4b4b4b;
+}
+.modal.processo-info header .tab-header button img {
+ margin-right: 20px;
+}
+.modal.processo-info header .tab-header label {
+ width: 106px;
+ height: 32px;
+ font-size: 32px;
+ font-weight: 600;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1;
+ letter-spacing: normal;
+ text-align: right;
+ color: #545454;
}
.modal.progr-preriscaldo-info header {
padding-left: 31px;
@@ -4966,10 +5527,6 @@ button {
letter-spacing: normal;
color: #002680;
}
-.modal.controstamposetup-info {
- width: 1820px;
- height: 980px;
-}
.modal.controstamposetup-info section .controstampo-cycle {
margin-left: 37%;
}
@@ -4989,9 +5546,8 @@ button {
.modal.controstamposetup-info section .specific .input-area {
width: 480px;
}
-.modal.quote-velocita-info {
- width: 1820px;
- height: 980px;
+.modal.quote-velocita-info section.cornice .tast {
+ margin-left: 125px;
}
.modal.quote-velocita-info section aside .box .body {
padding: 4.5px;
@@ -4999,180 +5555,16 @@ button {
.modal.quote-velocita-info section aside .box .body .input-area {
margin: 5px auto;
}
-.modal.quote-velocita-info section .specific .svg-area {
- width: 750px;
- height: 750px;
-}
-.modal.quote-velocita-info section .specific .svg-area .disegnoQuoteVelocita {
- flex-shrink: 0;
- margin-left: 500px;
- width: 800px;
- height: 800px;
-}
-.modal.quote-velocita-info section .specific .svg-area .disegnoStampo {
- flex-shrink: 0;
- margin-left: 680px;
- width: 1200px;
- height: 795px;
-}
-.modal.quote-velocita-info section .specific .svg-area .disegnoControstampoQuoteVelocita {
- flex-shrink: 0;
- margin-left: 600px;
- width: 1156px;
- height: 800px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle {
- width: 147px;
- height: 60px;
- flex-direction: column;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle div {
- margin: auto;
- display: flex;
- flex-direction: row;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle1 {
- position: relative;
- top: 120px;
- right: 500px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle2 {
- position: relative;
- top: 140px;
- right: 750px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle3 {
- position: relative;
- top: 140px;
- right: 300px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle4 {
- position: relative;
- top: 395px;
- right: 400px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle5 {
- position: relative;
- top: 240px;
- right: 650px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle6 {
- position: relative;
- top: 305px;
- right: 550px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle7 {
- position: relative;
- bottom: 380px;
- right: 250px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle8 {
- position: relative;
- top: 320px;
- right: 220px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-stampo-1 {
- position: relative;
- top: 115px;
- right: 1212px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-stampo-2 {
- position: relative;
- top: 140px;
- right: 1130px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-stampo-3 {
- position: relative;
- top: 4px;
- right: 730px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-stampo-4 {
- position: relative;
- top: -64px;
- right: 925px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-stampo-5 {
- position: relative;
- top: -10px;
- right: 740px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-stampo-6 {
- position: relative;
- top: 205px;
- right: 1115px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-stampo-7 {
- position: relative;
- top: 50px;
- right: 125px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-stampo-8 {
- position: relative;
- top: -210px;
- right: 550px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-stampo-9 {
- position: relative;
- top: -90px;
- right: 560px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-stampo-10 {
- position: relative;
- bottom: 560px;
- right: 769px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-stampo-11 {
- position: relative;
- top: 35px;
- right: 781px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-controstampo-1 {
- position: relative;
- top: 300px;
- right: 1090px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-controstampo-2 {
- position: relative;
- top: 570px;
- right: 990px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-controstampo-3 {
- position: relative;
- top: 475px;
- right: 770px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-controstampo-4 {
- position: relative;
- right: 650px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-controstampo-5 {
- position: relative;
- top: 45px;
- right: 480px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-controstampo-6 {
- position: relative;
- top: -335px;
- right: 650px;
-}
-.modal.quote-velocita-info section .specific .svg-area .input-circles .circle-controstampo-7 {
- position: relative;
- top: 400px;
- right: 650px;
-}
.modal.quote-velocita-info section .specific button {
- margin-left: 10px;
+ position: absolute;
width: 48px;
height: 48px;
- object-fit: contain;
border-radius: 2px;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
border: solid 1px #001e48;
background-image: linear-gradient(to bottom, #1756ad, #002680);
-}
-.modal.opzioni-info {
- width: 1820px;
- height: 980px;
+ bottom: 1rem;
+ left: 1rem;
}
.modal.opzioni-info hr {
width: 2px;
@@ -5230,10 +5622,6 @@ button {
font-weight: bold;
border-top: 2px solid #002680;
}
-.modal.imbutitura-info {
- width: 1820px;
- height: 980px;
-}
.modal.imbutitura-info section .specific {
padding-left: 5px;
justify-content: flex-end;
@@ -5242,10 +5630,6 @@ button {
margin-bottom: 5px;
background-color: #e5f3ff;
}
-.modal.estrazione-info {
- width: 1820px;
- height: 785px;
-}
.modal.estrazione-info section.body section .specific {
justify-content: flex-end;
padding-left: 10px;
@@ -5262,10 +5646,6 @@ button {
margin: 4px;
margin-bottom: 0px;
}
-.modal.vuoto-info {
- width: 1820px;
- height: 980px;
-}
.modal.vuoto-info section .specific {
padding-left: 5px;
}
@@ -5913,6 +6293,7 @@ fieldset[disabled] .form-group.is-focused .togglebutton label {
#app > header button {
font-size: 28px;
justify-content: center;
+ align-items: center;
display: flex;
margin: 0 9px;
background-color: #ffffff;
@@ -5990,11 +6371,9 @@ fieldset[disabled] .form-group.is-focused .togglebutton label {
}
#app > header .user-info {
display: flex;
- position: absolute;
right: 12px;
font-size: 25px;
color: #4b4b4b;
- flex-grow: 1;
justify-content: flex-end;
}
#app > header .user-info .window-buttons,
@@ -6377,6 +6756,10 @@ footer .container button.scada {
background-image: url(../icons/png/SCADA-big.png);
background-size: cover;
}
+footer .container button.ricetta {
+ background-image: url(../icons/png/gestione-programmi-BIG.png);
+ background-size: cover;
+}
footer .container button.jobeditor {
background-image: url(../icons/png/editor-BIG.png);
background-size: cover;
@@ -6385,6 +6768,14 @@ footer .container button.users {
background-image: url(../icons/png/users-BIG.png);
background-size: cover;
}
+footer .container button.progrprerisc {
+ background-image: url(../icons/png/programmazione.png);
+ background-size: cover;
+}
+footer .container button.clock {
+ background-image: url(../icons/png/dashboard.png);
+ background-size: cover;
+}
footer .container button:active {
box-shadow: 0px 0px 1px 1px #FFF;
}
@@ -23505,6 +23896,11 @@ body {
.container {
overflow: hidden;
}
+#main-view > .container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
#app {
margin: 0;
padding: 0;
diff --git a/Thermo.Active/wwwroot/assets/icons/svg/disegno-caricatore.svg b/Thermo.Active/wwwroot/assets/svg/disegno-caricatore.svg
similarity index 99%
rename from Thermo.Active/wwwroot/assets/icons/svg/disegno-caricatore.svg
rename to Thermo.Active/wwwroot/assets/svg/disegno-caricatore.svg
index b9178104..c458487e 100644
--- a/Thermo.Active/wwwroot/assets/icons/svg/disegno-caricatore.svg
+++ b/Thermo.Active/wwwroot/assets/svg/disegno-caricatore.svg
@@ -9,8 +9,8 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="1186mm"
- height="707mm"
+ width="1186"
+ height="707"
viewBox="0 0 1186 707"
version="1.1"
id="svg8"
diff --git a/Thermo.Active/wwwroot/assets/icons/svg/disegno-controstampo-quote-velocita.svg b/Thermo.Active/wwwroot/assets/svg/disegno-controstampo-quote-velocita.svg
similarity index 99%
rename from Thermo.Active/wwwroot/assets/icons/svg/disegno-controstampo-quote-velocita.svg
rename to Thermo.Active/wwwroot/assets/svg/disegno-controstampo-quote-velocita.svg
index 064b33cb..8f177d91 100644
--- a/Thermo.Active/wwwroot/assets/icons/svg/disegno-controstampo-quote-velocita.svg
+++ b/Thermo.Active/wwwroot/assets/svg/disegno-controstampo-quote-velocita.svg
@@ -9,8 +9,8 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="1156mm"
- height="800mm"
+ width="1156"
+ height="800"
viewBox="0 0 1156 800"
version="1.1"
id="svg8"
diff --git a/Thermo.Active/wwwroot/assets/icons/svg/disegno-controstampo.svg b/Thermo.Active/wwwroot/assets/svg/disegno-controstampo.svg
similarity index 100%
rename from Thermo.Active/wwwroot/assets/icons/svg/disegno-controstampo.svg
rename to Thermo.Active/wwwroot/assets/svg/disegno-controstampo.svg
diff --git a/Thermo.Active/wwwroot/assets/icons/svg/disegno-cornice.svg b/Thermo.Active/wwwroot/assets/svg/disegno-cornice.svg
similarity index 100%
rename from Thermo.Active/wwwroot/assets/icons/svg/disegno-cornice.svg
rename to Thermo.Active/wwwroot/assets/svg/disegno-cornice.svg
diff --git a/Thermo.Active/wwwroot/assets/icons/svg/disegno-lastra.svg b/Thermo.Active/wwwroot/assets/svg/disegno-lastra.svg
similarity index 100%
rename from Thermo.Active/wwwroot/assets/icons/svg/disegno-lastra.svg
rename to Thermo.Active/wwwroot/assets/svg/disegno-lastra.svg
diff --git a/Thermo.Active/wwwroot/assets/icons/svg/disegno-piastra-riduzione.svg b/Thermo.Active/wwwroot/assets/svg/disegno-piastra-riduzione.svg
similarity index 100%
rename from Thermo.Active/wwwroot/assets/icons/svg/disegno-piastra-riduzione.svg
rename to Thermo.Active/wwwroot/assets/svg/disegno-piastra-riduzione.svg
diff --git a/Thermo.Active/wwwroot/assets/icons/svg/disegno-quote-velocita-stampo.svg b/Thermo.Active/wwwroot/assets/svg/disegno-quote-velocita-stampo.svg
similarity index 99%
rename from Thermo.Active/wwwroot/assets/icons/svg/disegno-quote-velocita-stampo.svg
rename to Thermo.Active/wwwroot/assets/svg/disegno-quote-velocita-stampo.svg
index d3cde82c..5db56b68 100644
--- a/Thermo.Active/wwwroot/assets/icons/svg/disegno-quote-velocita-stampo.svg
+++ b/Thermo.Active/wwwroot/assets/svg/disegno-quote-velocita-stampo.svg
@@ -12,8 +12,8 @@
id="svg8"
version="1.1"
viewBox="0 0 297 210"
- height="210mm"
- width="297mm">
+ height="210"
+ width="297">
-
-
-
-
-
- CMS Active
+
+
+
+
+
+ CMS Active
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-