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 - - - 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 - - - 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 - - - H4sIAAAAAAAEAO1dWW8kOXJ+N+D/UKjH9ayq1Y1deBvSLtSSelZYXZbUM+unBJXFqk5MHjV5aKQx/Mv84J/kv2AyT95HMo+qnkGjAVWSDJLBL4JBMoL8v//535O/vUbh4gWmWZDEp8vjo3fLBYz9ZB3E29NlkW/++O/Lv/31X//l5HIdvS5+aPJ9wPlQyTg7XX7N893H1Srzv8IIZEdR4KdJlmzyIz+JVmCdrN6/e/eX1fHxCiISS0RrsTh5KOI8iGD5A/08T2If7vIChDfJGoZZ/R2lPJZUF7cggtkO+PB0+ZjD3dEFyMEzyOBycRYGADXiEYab5QLEcZKDHDXx45cMPuZpEm8fd+gDCJ/edhDl24AQlyqb/rHLbtqLd+9xL1ZdwYaUX2R5ElkSPP5Qs2XFFu/F3GXLNsS4S8Tg/A33umTe6fIsBGl0ATM/DXa4iqxk9XLBVv3xPExxsZrTZa6W39XwHIlpfbfoSnzXYgVBCv/7bnFehHmRwtMYFnkKUI774jkM/H/At6fkJxifxkUYkl1AnUBp1Af06T5NdjDN3x7ghuzY1Xq5WNGFV2zptixbsOruVZx/eL9c3KJmgOcQtlghWPOYJyn8HsYwBTlc34M8hyka6tskhlz1TGVPQR7CpiqETCRfy8UNeL2G8Tb/erpEfy4Xn4NXuG6+1NV/iQMkjqhQnhZMLSerbpT1Y/85CKHrmLc05hrrPAf+1wjGea8Bp0q7jvrVGpZ81o085hn+a+DB5yu6TnwQTlabofSoiTwmRep3bUVK/Ojs+uzhxnu8+/JwfmlND2n9lGsTU+QWvATbcmQFhZeLBxiWidnXYNc0iYK+V+X7nCbRQxJy0lUme23HEnmeJ5BuYd5TpDEFB2lui88kyM1A2YqwcIBHFF5cXzyMOFlC+XOQZvk0egNMVNE9yLJfknQ9ekWP0C9SNLqPOYh2o9fmhSDeFmA7PgMvYAgRipt6PiVIt4BYAy07K+HOR6xL0RIAOhuILKk57cOuLb0tRZrEVApokGmWtdd1U+TIszSmI6D29J/39rTQT4SvDGZuHHpCq1FKWyBAQ/xRT0lqT7Bcl9sWrKR4fFHG3NCWEFsg+mIio0RnNGXynrV2hsfUz/VImrNtEtUTefam4/11oKNtRdPYKwNrLAVpZpYZKCkbJWslhyTyxgSrUOz02B5mjdLVI1yj0Mm6prqvUUqCt0nuvO3Q0phJmHD9fcSiKTeVsXCDZsIp7NDBxH3f9g+6WX8wK0AtsS2yxRJLJ4sllsnjJLEXz7f+ZxAF4ZuDyDJEZpLZqgV9pLYr2ULz+M+jbQxPsvJ+QitF0ur+9Jbb70g8BNuv+WPwqxuVa7hxJ/Lk755wdici34MoAm4cqcffmbXnaHzQyFdlHeggtDzuIHTUqhh+CVi7tSSIMY17Pz8r8iR0Jlc1aShyF28xEnL/PIl2MM7qIzf33g5Otur10GSvgw10huxtEgUxCDEtN7Q9wJfgBV7AMAdDWfxY3YkXpXhuwqnVhFlpenLWFaVzC1BhJqdlJ0Wx/6zbkphpzsX195lxm3JTzLd3m00G82oy1dWoA24WrIthRKCiVImCo0mMWFRkTqJtagBpGvIVxD9xRIYcxKv1MUPdrNT7XqU+qEtJlVGjZIbSRuwiQKmyTBtZDpZBG+t8siaWyZoWVnmclyklGUd92dGYSWG2MmKrMcXCNZLK/ATCsNhYHRncgC34NYjhfZIFg1jIDcErxvDTnA7U1VseeNylwTaI+1VZlTWtWCqQLAOlstlh2OPL0HKqyCqUWVV+WwVjapIZKRi1QUYrod4Khu2yo64RkptJ7ZDINjggIMFsq6hkQmR7zCeTJ4ejx34rxyDDucc6g/8MXpI0yCHeyntMNvlP0GUnTkZtrtmuaoIh6vq6CBG1uCDFfo/bfJCL2MdDeObjo2uX8eUJzbXbSrWk164rR2GqU5NJdmB/xHJ4DV9geBPErqtFsB6G0lkKweg9v4x7KEzBDBD6I4njDfC/ohnKQQ5JCrNN6WUT+k3RbdHJDiorXo99TBkHPxdEv6Z2u68Z6+hOwlKZF2B9Z2Wm+GRAM8X2+AfeeKkynFNL3THhiopFjNdm7pZVsjzcQlCa0XYFiMmZNbfKqWgr/qxvaJlrMAcbjjx7YC/MoG+l+6E9JuygX9riMymWRi5sNYqZPB2YmVjadSNZOUGcwxjEPnSMBBNR+j0e7LceD0agYpTZ1nxibNsh0eM8ej2qEKnS1XkF2l1TYMDpSFATPyVJMpk13H1qIsgOo3DmtYAphNtbwBYCMszBDaIO0xfQTigXSVE6TemijMA6LM1FWydIXZzHzdnV7dPl7dnt+WW/aI/zpMBdct4FHiEYW8RHIn5j/KVufre5gSBDyJfy/Mvt1ZN399m7uTx7/PJwqeV2CksIYgA4gwFHGV6+7oJUQXLEacFEkWqVqJkCHUF5OjrRiyjNpET7aM7fXeglbR3O5BrB8d3CEOtc2PWGmDCvShzFBcYwxOTO/NJMZg131yX3MN0kaQTXw1hkUnIzaRVRe/poGhmdqbTPIDNtbST9AMLC0ZfwPInzNAl/JGL2Z9dUJSn033WJWJIQSrQU3B5ZsBNuk/ycnBsVslVSOpWrqZTXu0YFbPum0MDG+uw/CljAqxxGLsfnDJG9sYjEKq4KdJ/HejJZbLYNnKQykObo0zYF0SS7Ww9w53jDwAOMEPhR69xJnT1nSVjkEHHs6+g9p/3JB92SfkRwcXOsIynM5dRUNaGXp1JXdCoDo+zrBHvBFoe9ut3yNMuvk23n6jLI0qRtn3CeJGHlUZm7qVGWh5sNpRntJsAiIiSHDnK+yj6HYNvdbmkkSci2y3IQ59m/kcSGECKElTVMwzeELXLk6bG5gdEzTJujtfPlojRXT5fvuFGkct5fd1mPedZVTNIyrtp7HIRtmNQ8TLt8eLh7MOXbj2cPt1e33zvxjt+9deQgS3AmPv7z3rs4e7o0ZeXN2fnfr24vPdz2hx/OrmU8Zcs9Xd0ICr13HAhuS3fAMWFozzM8UWQ6MBemI/F3Gfe5oW4zfjAZprMsS/yg5HKjbgQ3R9L1XcbrhcE1kt1+PnuX6w1ie7BDjEazxunyD1yH1BW0kRRdBYS7Gk373dERz1hkCMEU2x4gLEGU4hUebzUFsR/sQKhvCVNUaHJJ7zZatRWxKRdwB2NsI+mZ7daCtiLGFtTx6WRFoMcAVPorw5QwsLg/jIEef0GgJQLN7yBjqxbcXj0qQo1bagIZyTXV9qg1HjrjVjE3A84HavkFXEpEGdzGxSBJquO06DW4ps5SYI7ZgTq5iy/Kiz4XZ2VExOnyHGQ+WPMLHDQLrYcCu7ZjxnBSXSVnD3ft4A7WrulRrrcHZN6kI+DZ2h7YO+DOZUeIB+kw7AjmzFKJFdnRJQNGwlnBEoySE88DAqO4B1OCUTxIew9G4VUYMrCo78Xo0MJcq2OORvU1QHQF1H15+wZKVUdMMCG7Rc8Kl6rhcm3ERNBU3bKgApHRlQs0nsiLTewQa3JfA1OZ5JKDsZZVhq00AYXqDgPxAar0FgNrMBuM6gxdmFxLV3d1mOlQ5magwXU0czGIqUgNC21Jc0yGVnITkIOepTju2IQJoCUNWpSNvz6CkXCC5iJxzXGmDYDk69lTY0DXEzOdJYkzt0KqbuycWzIHYMuwVWMU0TGsI0GVCoElKiFCRvcepGQfTHAhjid1gyc5WG5tmAOYypW9Jmx5JGAe4Ppe2YeJVvjKwdr7Nb441EaOGWXcDQlM1qXdBpiqsJ1pT0WVbZkMYAqmHxLAxLG9BjDQBPoKYdfrON44VtgC6vugJc16ZWbhKYI5+sJaOb6DtGouoJtqU72PySjQ3g/NOqvXiXYQDknDioP2DCChieATwrDXmZJxEOChalhlr2bTsMrxPUANa3hEahDjOTK0D3JRpenH9Jr5QA9QjaIWZXCyC2HskKUIKzbHslUo5LSGg03TJkKqzVAZK9s2nnYfoauxLCxjVKcF7yEbGlZdm9basBrzQzE5pFFnMuzpQ9A6uNGxlub41kavWewQzw9pXW/MoKK4CNcKxbrxG6Q1gwO3ClDEV0OUs0Z3c0UZmIu/w9dcEHeEmliHHmV1FCmLOUz3EeYS1/RsuehiIzVhARycBaTxClxKk9j20NDCnBeRIaTApDWEl7isTbwjuQlhWftYv2ETWhm2jaXEiIWMhljp0BUIKXEedRpS9bsyQjqEW4mGSun6ICNDeo9o6LDeQDKSErcrLdu45zxEFcjfENHRr59gyKo3GESkRS9XaHlSaigROdpdwpCODND87KMhiJWwiBBxOK5tErWfJ26VaCvVnK6Gpj09mQiLdyQ0hEV2mIi4wtTW1FDe0SKgyF0Ao5Pwaq4VNY42jRg6xCQomD+IbaEFkVM4kwh2jyhLSxX/2faGnru42d4s2JOgVgsTa23RvTbliD4mUcYky2hGvqfm8YwsK6mJV8dQ89hFthrakBmG3/JwORmfDQPs+I7rQ+zYDguRZUNYxknFgLkzUinKKo8aVc+UomzNp0lEmb3KUMIR1dY43wfJtjjLkWaK0rFEsvE9AkvE77TyPNEHsVC9UIaxEN2obVwFP5TxKgSlzvAehCfKtyfF7DEOpOD6ZxJKQXS1Mek1XDOJmSCoCgz8gdFVP4CpA5fA916BCNr73gFatJu9lt09uCF/vIZniZnPOHNwpvEapwabWnEomKT1ERdQHYNXpQuyCaN4X2V1fyhv5WFYRPkmEyTrZdnwzJHNZAb+suqeyGYzB+aMPaNJbj0XMUfrsyk7mNYxh1wxKnmjctEclzeSF0KUbDLwPJT1T+17KGaefilo7GhoODpDsdQAcsaLZ71726DcmxCCkrvRlWwzcM2S9VHtnCVBiN5gN3bFmgSD+tWNofuPvo8m6q8n+8YGodk92Dzv7D1R+vuiEN2W7EUquGrleDI9g+Wi3sNhwsFlYkweTyb98itdefaaHcTbHcWTS6V2K1rBN+25u6mdqeBVc9lse5bbpp2sHv2vMAL1h5MVyuLDXV6Aah2YNQk3YLcL4m3Wlay/LB53wEf9OP/j43LxGoVxdrr8mue7j6tVVpLOjqLAT5Ms2eRHfhKtwDpZvX/37i+r4+NVVNFY+RnJcvbkua0pT1KwhUwqfr1gDcvrg5uz6eXifB1x2diTa8k5QlOb7HCaH8rmmKEpif9u7tSGu/Yqa9khNn/6XxP6jHqLHy0sOw5VG80SQojUow9QZvZe8eaKuvMkLKK4+hgILyeQkahf1iIJ5NUnwQUHK6ZDnO8Cx0POKYQeHPOhq+w+xzHrDvR6jpWCgHSMqDcr+w9U9y4kSWODvnox4N/iUpFi3pkk6YU4yetFVQhGnC/y1gjinl13GzVMEsvqb+ZUGi8bkkqBlbK4MTMBvJoG+mO7O0G3h7WirA1T7QYXU4g57BXtVxupQNOFSCzQZ3u5ACJaIehB6h5k2S/lKzwkqV371UIQoF+keLRyEO0YeaiTvKxKMyfqhSDeFuWzaXRXm6/mpCp/QKaj6+bj3sgYdxLpOJVwvl09ZxQ9HaW+pa/I7C+RCuXdgxBzP614QmgO4OeYF/DQMkZP+cVCwKvHc/BSh5Lw7rONDRZBgXjn6LNUsucUI9f5ivFk7Ck5A81cCnOgp+RVEE9weukXsVe2Bnlg7ziCnddZzxFUEJCxHhdx03Tte6Ekiaj5OJppeUhWc/dgz76ro9Y9oj+UWf9leyxrKUiN1/aazP5w5u1VW1MV+wq4z4cPwfZr/hj8ypBJ8WcvK79bGOJwI6AVoq/WpJ783RN45rY4/J2XA8HT6ipS34MoAjSdbfXJgk11cAXP8LRO8Ww5f47GD8Hz01vOUPSrBO+5TLHQkOD1cQdZkz4Cr15WfbYidZ0AAaWw/GpBKIgxoXs/PyvyJORpBnFJ09v5uQfaLNYtlVdQN7p3BRdvSDAD/zyJdjDOQOVyRa2ZqgyeT+WwZpG2npZVZIU9WKWvqGFZ34qugw3kBSVEX62F5DZB3QYhpshoyyrBC8sUC0GGL8ELRIvfnFEJaZmAJu8yZW9myspvzG2a7MJz+k2SivKqycltgrzbbDKYV48j0nSSMsUL6ySbsc+CdSFCU1qn9IBTVbCClYRoWida2IP1W6CUPVh/s9hkE9opm8pp1dJAba6spVpU+ij2Gdar9bFoTMvP9rTei2lxb46Z0PogpvVhj1RC7QHqphOIWLt+SkFFwApFdvj5BMKw2NAUnutvNlMh7V3Mz1ZRncPbNU7KtlMXeem4kLJdx8kryamdq6Z9lnKILPwglrUxKVO9nk2taMsaXNPWtHsm2eLdzt3ETBx/2k/iDGkdJh7dV7IXQYZXhuyJRvt1bzAmjC7uDzNpFLI9ysxJyTeyylLCDbasSrMExmEcBbMR3Q7DKYj87jGSJlSkdiNVeO59rh8xIq/hCwxvAmal+gtOQgsBlOZFgdWq+wGCtZhoilL60TxDRZkN4fKLOYXLWKDCYCzVYFLlHPqcXg5lm9KzTbV1eE5/WaGuNbAXEnVx+TzaPofgcJpRxcC7yMWXOPi54JpRlF/3c6Rdzx+5iyd6D3mPM0jm/h+HoRfjJ6oD2UadHeXb2yHXoBSHje0VjqqAtf746e4bsQeOoqwNU6eePMspjj2OeeGv35hxVLkgIRcFIbgDpo+SMCEjtQJ+K46jzFV+tDLrQg6+RXOfipkYBK8DYNV6QpMOn92QXSEy6Qtg1ExQfxWqGukaHtneYRmDTnslNl+n3E84TwrcBZY3fvXZdnvDwl1fzhzifh+aP0SClQGZ321uIMiKlHXpRUlesvGiJtGCbWjJg1uCnVEYztUp3hrYHWxj/97L112QSgiXnr6wzWBN//B0jqsfmPAOMifl08Mn7JvyBxtlMjwchy5xvGJ/gMrvsbNHqQUt6X6KgIQbfHktZqu16vnpBxAWnANRNUW9VEk2JOMcLft+5AIg/CrBsw2CMJMKa4rtLeocwTIl2y/FXd2s2F8W2BsY7SVAS2EcFV372gs97e2CctIcfdqmIOIXMDuU6O2qVOslzAPcMc1Lyy82FDDuEPNFpOokz5bo2XOG6OTwHrC+L6BO8XbAzvfFzqNkLs+GJmC7v7BQd4zaS4q6uJS5VSnHiN7kJ8gY9nn1yXpvUWTTNPuLPWybMljvOtmyJyVVtF5YJUwMIi6kns3S1l5/aX+3IfV1ODsVZ1+yAEfNl13P6tB6Nr69yrJcID69BGsc237z9vhzWKLwqPzzPAxQh7scNyAONshqKwf5dPmnoz8tF2dhALLqJoQ6cv8je5e7USj/8Qccyg/X0Yotbn8hAKaSZWsK+4T0SYLFRNPKyT/gGzvgDa66W/V5IJ6s2IInDBxxmepW4QCz+LYIQ3xAhj3bwox/0YApXS+7KwJhEm+rW/Q7KuWN+RQREqh6vki2DCfjR6nSvodIJJBBuUZTCDIFYzyVw7K51gwj9gZtmMYT4rYa3cgxwTb9EZFRj3j0odDqVIIE9yzDVbyGr6fL/yrLfFxc/bNRxd8t7lKkIj4u3i3+eyAgSs63DhaDXYi5HDOGYO4CzB3RDAYi1AWXu9Fho8pdu9eElLvRaSPKKzLPSRJqBs1O26rjsA8W8F0Id3+tJA7ZtlNRIhrm+moMXVtt4/cvv+sivV2MiHYLriKCN2/ycqfuPoV+kJW227tBke6k06VWvyCvPg5aLx7jzIgWsKeb3wf0JAWLBtkNqmTb/GD1VrsB7zZrzA6fvTArJ9YyynjoKRCZRSAM+zBqCDOMnFeKPIjf+jSEDJt2JEVETTtSIoKmHSnVYdOuTKIjph2p0dHSjsSIYOn+YtvFSbu2RhwcPUAfh6cqjoIeigF0JPJQDBiUKhHe7EiJDm3uj0M6otmUjtV0IYkM3uvJggkfdqTGRA67jBYTLexgedTnOo44JAKFWSYZ2GJtaSdrrAsx7tGEprDLgpUITJYjxYbQ+6EIfbAjZCXXsuDe8QSbikJkgWsw1kR5MrTUZeipSEa7hYiuNcf2rRlA8zVx0kLNYtIGWVC0o6IRRRvLSRrJiCDG2LDXVnJiEJJrJjLKIFxBfkWUraOs2W6naVlsvavX3wZtY32H32w2C4212IxTRcOab+AZ7sSRlQ17zDUQd3Xhqge7ITbE1gQX5upiZdLBrQ6nC2Voq1vH2shWY3kVKKDQbqPOGJPy6NDfNBiJANNRfCjUEZoHy3oyvNPClqy5TTpvdUbkd4ur7DxEFGAK1x8XT4jp+FMVGFz97rHk6rP3rmrm+3Ga2Yan2lnmdbExDnQkIaIHC9lBvCSqYNMRlLMuRPNg2b6v/lZsGIvtipgs7bQntHfeVuq4kn11hCQCNOvTxaQoD4lsHXya4EyHM0r1grDfsVAXpulyAmvtLCriEBGe6Wx80XGZvbdymGDMQcdOHI9pWsV8/gHDqIDfXTomHDJD23tPZq6JHTruzQIfDxaZI6guJnTSZf4hIyZdnAmIMMnewHUXHyKwskcr2tIjqF5lcGNfbIs33cWhi2Mbam21DiT4IEk3bV5FNLrsQ9KxkQ77kHREpFu36JPzAder8rjCg9W+dXCi66KSiUq0VS5UcSc1R0UzjjA9E68D1zXS4WKCV8+JZ4q7/dC6beUDysTXmyLMg10Y+Khq1MijI+4qdYIaE6hGkmSTaLp/4IgijMIUQwiE50mc5SnW9zygg9gPdiDkesPkNFfPq5Ymm3IBdzDGqBZ31qRGubv8qqXOSKOOD9Tz0Aa4YANbPDboUgoVSXQmN8iCLPYg4uJvuGr4HKNAyiQmdUR8GbwryVcsjtCZD3OtWHpMn9RYc8fAMRfxfxdXD5QuzvwqEPocZD5Y81ocadu1snVizckmjYfJXsgYApJ2SlYf9TMPEoecFb9RmE0/m9rVuAezabspdzB46rYROTwRSd8InlSX0O0bnii/d68KmJICio2pIseSS5sEXLTbPtseImUUaOlf7RwcYLoX0PgKFS9kTYawzgPbY51MlWATe6SywyzJZWX+M37ibBVk0mhQMn1ex9LhVrz7p3rYxhKPyte3Jmjs5Gqy7LASuL2gZADReXWd5UBPrurkT/hNAhLW2c+rP0iRQjllkgNKJ0wyk3KeioL2jG36a15AGRxhBk9wiNSX/GmLeWCGOyPFWOfHRw4o8fU3gy7Vgxn7AS3pIyXz4OoAFpf7gKtJF5i9cDXvEpP115jyaIjzFaHxwSZ+C/hQOcfsOz6640Pio8J8chjc0RSSwJVb0q6xzyV7YWE4/NkdUureFZgPivOoq9nRM5faOqSzbZGj7LegusTb9eIM36LqstvB3zfVdVDHQ/uEurlU3iEdGEndsL3uMZOJZku5RzhJXZHr8EFk6BQvqVz3yMw+AOoAJ9L9xOUcU+oA8JQ9qjQJNklHZ4/YetHt6PfbjxoJjpS3NtkeOmHMHf1JdaLm0Rz5jv6UE+sl/d5L3RLubRYOaPUTMqQ3kMDztfPZ1rjIVm+/nC7XzwmCRuUFzvlxCqZgQTOI9ai4eiKDvFoc4K2tj5AgrioiTVQLHmOz/vBenuJu8fnkvUs6H1SjNqg6ymaQ12reZ8LAFtdHZJDXFyf8239cfZy/EFchl0NUY+XdYlQbcUIurItIF9WUl/f5GNRDHvALKyIziGoqj7GNqpJ4vghrleQVNYC7GU/bGOmFYnxb5FnF41vl9sibv/TNEdzAJWiJKJewEXVGD/jCkDm2evr4nquXThYPQOU4YFiRSk3wWRQVmqkK4vCYq45IE9WDTzgNeiXa5BT0TJRN3Ltug8ZoguFNclXtZjXbVKrSw+Jsum4b6WTFkoRrhiKvqC27JrtnwxI2GpZvBpdDVPnP5Zuluspoc5iriU4W6u0qB1cRYQLKbKZqp25B5BRaToINPdn+Sts76itn2cqj6AgCbBK7+KA7aNp5fUyYjB+W0WR8N6Umc9ddQRYd82QWY0eUzzEMK+WhTjIWGgZHjdFJnqYYtmzS0KxSipzKC2ZYkZuy88zJgKzzqgOEYTvPTXRd54kk584LoxwEvddHQ1BdkKxhyj5waQpWCFcnLRUiZRBGqJzxJTwx9t/nuqVcobRdlOTSsIxfaLUEyaSB0VM5f2vBI/ARH6YDMyFH6tws4ISZI7Ro45TvB52gYIVsLURSGVKhit1wTbjB++tSHeGWV2UPiK/7zATZvGLgXDrYzDI9E0QOjkImaD0hB2SCeAlXM4FNHJIJYi8+NT8MPP+G656Mknj1I84wDsMMkDPJYnAPmCJ2qFLzxsAJa3wUiW1acYZxGGaAoklM/LmYYuSjIuCPvW/LYKzSbr2VtBS5xmaaXP56OHCMJITzM1HqMCDgm5lzwXCWjcIpgKBCJxgzpLknrD3RbtNOVtVeaf0B/cyTFGwrlmfl15PVQxHjq8mqXxcwC7YdiRNEM4Y+dYLe5rmKN0lzos+0qMnC3Ix2A3OwBjk4S/NgA/z8vrqQMIi3y8UP+KLM0+Vl9AzXV/Fdke+KHHUZRs/0GSN2CFDVf7Li2nxyV+0lDtEF1MwA3+Z2F38qgnDdtvuz4P42CQnsaVBfn4fHMsfX6G3fWkq3CXv6JCNUs691kHiC0S5ExLK7+BHgl//s24YQfA23wH9D31+CNZYeGRH9QNBsP7kIAL42MqtpdOXRT4ThdfT61/8HZs87jOBwAQA= - - - 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 + + + H4sIAAAAAAAEAO1d227kOJJ9X2D/IZGPsz3OcjVmsFOwZ5CddvUY49s6XV2zTwKtpNPC6JKti9uexX7ZPuwn7S8sKSkl3i8SJWVWNwoFOEUySAZPBEPBCOr//ud/z/7yFoWzV5hmQRKfz09PPsxnMPaTTRBvz+dF/vz7f5//5c//+i9nl5vobfbTvt73uB5qGWfn85c8331aLDL/BUYgO4kCP02y5Dk/8ZNoATbJ4uOHD39anJ4uICIxR7Rms7OHIs6DCJY/0M9VEvtwlxcgvEk2MMzq56hkXVKd3YIIZjvgw/P54wtMo+Rk6efBKzy5ADl4Ahmcz5ZhANBo1jB8ns9AHCc5yNFYP33J4DpPk3i73qEHIHx830FU7xmEuFU5h09tddPpfPiIp7NoG+5J+UWWJ5ElwdPva/4s2OaduDxv+Ic4eIk4nb/jWZdcPJ8vQ5BGFzDz02CHu8hKns9nbNefVmGKm7EsL6s3jK8W7ERM9LuZoOl3DYwQ2vC/72arIsyLFJ7HsMhTgGrcF09h4P8Nvj8m/4DxeVyEITkpNC1URj1Aj+7TZAfT/P0BPpNTvdrMZwu68YJt3bRlG1YMuIrz7z/OZ7doGOAphA16CGat8ySFP8IYpiCHm3uQ5zBFi3+bxJDrnunsMchDuO8KYRWJ3nx2A96uYbzNX87n6M/57HPwBjf7J3X3X+IASSpqlKcF08vZol13PRo+ByF0hoKG2OSrn+fAf4lgnHeCANW6Lw6uNrDkvA4LmHn4L8dw4Du6TnwQjtaboTypiayTIvXbsSJFf7K8Xj7ceOu7Lw+rS2t6aGdIuTExTW7Ba7AtV1bQeD57gGFZmL0Eu/2QKBnwqnqf0yR6SEJO3spir5lYIq/zCNItzDsKOabgQr4bOlOL9n7pbIVauOQDijPuL3YjYJbg/hykWT6OJgEjdXQPsuyXJN0M3tEa+kWKVnedg2g3eG9eCOJtAbbDM/AChhCheN/PDwnSNiDWQMvOkrjzEetS9AYB3ZmVLM2plQ8zqM72JU1iLJXkZCtmzX3dNjrwTo7pCKg9/ue9PS30EwEtg1k/Dj2i11tKfyBkQ/xQT0lqc7Bcl9sfrMh4fFPGJNG2EFsp+mYiw0VnWGXymTUmiMf0z81IWrMZEjUTefX9xLtrRVf2F01saj0oNsKGUplmppuB2rJRu1aSSWJxSPgKBVGPdjdvNm0/wjcbulg31P5vNiXB2yR3575oiE0tXnggXQRl324sg+IG7ZZjWK/OFMCh+SFay8CZpaCW4QbiYhmmi8UyzNTpJcMXT7f+ZxAF4bsLIWaoTS3F1VC6yHHbsgHr6R8Hc0KP8gb/EGxf8nXwz6anH95ze9fGNXzuT+TR3z3i6r2I/AiiCPSi8FAvHfkG04nQCr3Mo0Wr2vaggxZ6vYOwp4rEyEnApt9IghjTuPfzZZEnYW9y1ZBckbt4j5F8+qsk2sE4q8/q+s/WOdlq1q7JXgfPsDdkb5MoiEGIafVD2wN8Rar9AoY5sCFkvEF9Bq9JGuQQb3Xr5Dn/B3SyU8nITr1l1WMxfLXr6ooneumz9vZWofmyF7GPF3XpY4eQkxXnKU692PSQOtkpHIWx3jxGsVm+YhG9hq8wRCq6r54CGzeUlikEg8/8MsYjsjwuEDhUQ38gAb0B/ksQO3n1J0lNLZL1WLrIItF0tNf/ivtDv/zHwc8FMa+xw2Rqxrpy5LLkDgRyXfdypvlo0DNF+/COJewacedOricm9OCw0PGayq0bR1aH8+VIK9o6jTE5s+FWNRVjxY/1Ay1rOXNtc+RZx5iwgn6U/Z1jmLALjdPQmVrV7CXFVseYSdiRGZelNTiQbRTEOYxB7ENX0Z0iklOj6bcYTxW6Ro3xJOAxyI5svnk245Doeh7GHtWIVPvquoIdQNPA4ZYl6InftiSVzAbef/siyDpWQQehfhjM29vNFiLj5pwHUYfpK2g2nYukKE9BdJGDYBOWRqbtEaUuUutmeXX7eHm7vF1ddovXWiUFnlJflTNEEoaIj0QE1vCvzPnd8w0EGUK+lOdfbq8evbvP3s3lcv3l4VLL7RSWEMQA6A0GHDl8+bYLUgXJKUL4WS2jUqtmKnUAdeoq6EVEcmq12kWX/hbyIhmrO7NsgEAVC2OtDTnRG2vCuioBFTcYwliTB99IK5kNvL92uYfpc5JGcOPYapPSnVrPiAbWRffI6Iylj5zsxrUh9RMIi57n8askztMk/Erk6kyuu0pS6H/fF8uShFDGpSj3yIatuJvU5yTfqJGt2tIpYU2nvCY2amA7N4VONtZw/1HAAl7lMHJynM9Qm1qbGQZs1Aku01hYJq+ozQBH6QykOXq0TUE0Tggk3PXMLHqAERIHNLr+pJZPWRIWOUQcexk+qxItVmE1YGOxXiO4IBy4kGmS1NQCXY+lU3RV23QsI6Sc6wheZoujZoMU6etk2wbjOHmhacYn3EtJfHlU5Xb7lNXhdkxpRbtNsojIjBoqleEq+xyCbXtfjp1sIUMwy0GcZ/9GUnUqVgg9G5iG7whtJBbo1bqB0RNM9wd7q/msNHLP5x+4daVq3l+3VU95ZlZs07Ky8mq6ZSSmOTEbLx8e7h5MOfl1+XB7dftjL27ynmJXPGUpT83Zv997F8vHS1Pm3ixXf726vfTwJB5+Wl7LuMy2e7y6ETT62HNpOIfyEKvEdDLxgkWR6VJdmK7NX2XrwS1+U/F7k4VbZlniByXf90pKcF8N3d9lvJkZXF7Tni+wd0rdILYHO8RotPucz3/HTUjdQZOt3XZAhOHRtD+cnPCMRQYVTLENA8ISTSl+m+StryD2gx0I9SNhmgpNN2lu9KLpiC25gDsYY1tLz+x+I2g6YmxKHZ/OFgR6DEClv4RACQOLGwkY6PGXkFgi0PxWA7Zrwb16gyLUeKQmkJFcl2ePWuOlMx4Vc9fIdKCWJ/ArEWWQzc8gSarjtOg1uPjCUmBO2YU6u4svysuEZku/uuVyBTIfbPgXJbQLbVyBXTsxYziprqKwh7t2cZ2Na3yU6+0BWUzsAHi2tgcODrhT2RHiRToOO4I5MVViRXZwyoCRCJ6wBKPkvPWIwCiewZhgFC/SwYNRmnkhA4w+DYOIyeISjMyBqc3i4Ps5UIDqZmKCEWn6nBVQdWvXeyRTALbMvTFGEZ2IMxBUqTweohMi7+XgQUrOwQQX4hSYfvAkF6vfGKYApnJj1+ReDQTMI9zelXMYaYNXLtYRbPGiyF85ZpRhwCQw2Xg6G2CqoojHdYoqxzIawBRMPyaAiZOPDGCgyUQSwq6TN944mckC6oegJc1mZWbhKeJGu8Jaub5ORjUV0E21qf6IaRBoH4ZmnfTQSbsIx6RhxRkDBpDQpA8IYdjJpWScgXCsGlY5q8k0rHJ9j1DDGnpIDRJMBob2Ub5UaeYxvmY+Uv+pUYKEDE522RItshQ5TeZYtsq6GNdwsBnaSEi1WSpjZduk7hwidDWWhWU6zLjgPWZDw2pq41obVmt+LCaHNHhdhj19JHsLNzqJwxzf2iB4Cw/x9JDWzcYMKorb/KxQrFs/J6NxDtwqzwFnoZa7RpskWyb64OfwLRcEIqMh1rHIWZ2MwmIO013DXBKZls1nbYqFJiqQg7OANH4Dl9Ik3B4aWpjzIjKEFJiMhggSk42JjyMzISwbHxs2ZEIrw7axlBjxIqMhVn58IRBS4j5XoSXFXfMtIiu/ZFxHv75/OasuYBaRFl1kraFaS62IHB1CYEhHtsi8RtYQxIpJRIg4MNYOifJxiUclci+a09XQtKcng7X4LV1DWGSbiIgrzE9ND2VmtIAil3+toVPvP6LB0eYCQ4fYGAQ6lXCVzIiaig/4snuWWUpEMxtan3M7oFn+A0GtFibWAqFnbcoRg28FSphkGeDPz9Q8xJ9lJbUZ6RhqHs7PdkNv7m74LY8gl/HZMOacn7g+6pydsBBZNoRlnFQsWH9GKkVZFWWimplSlK35NIoos3cLSTiichfzc5C4ilmO7LcoHUskzuABWCK/KZvni1lsJ+Pg1kR3ElNirCAFj7SxnAKqQ/CquqbbgFF8TKF6PlRUoRsWUTGEBMnaVHTPHJl0GcS1qWcik7AezBleykQhU0LmaGOrZAdIOuaQVqySN6pQqmF5I7lqWMkmgwgh2fzUMUJi5unNU+OAIMPVccVSA8gZG/T6MBSn3BsRgpILFJVsMwih0J/6mkPQwIgwDpkYBYN6i8vwmN7yoN4t+4YGodnVeDzv7E+Mu58ZE9OW+EcUXLU6IB6fwXJR73Cw2eNoc0gejyb98hucePaaHZjZHZkRM2vdYwq+ac/HTO1MBa/2d0s1Zy5N2dli7b/ACNQPzhaoig93eQHCckTZvuAG7HZBvM3alvWT2XoHfDSP1e/X89lbFMbZ+fwlz3efFousJJ2dRIGfJlnynJ/4SbQAm2Tx8cOHPy1OTxdRRWPhZyTL2ROipqc8ScEWMqX4QtMNLG8L258hzWerTcRVY0+YJL7NfW+yQyR+Kfeuz31L/Hd9hw91781+ALJTJ/64rqb4GU0bfwal5ABUecEkhBCptQ9QZfaGwf2VEqskLKK4ehgIjgHlJOqb+UkCefWIp3G2YCbEHTZyzOROcelVMl/DygB0tXjtsUPHRVMQkC4W9Tmc7ivWfnKGpPGMnnox4C/1V5FiPmFD0gtxkdeJqhCVuF7kbRDWPbvp7hUzSSyrn5lT2Z+Pk1QKrKbFg5kI6dXG4ADk7YGfPb4VbW24a7fKmELMgbBontqIB9pJRPKBHtsLCBDRCkEHUvcgy34p7+wmSe2apxYSAf0ixauVg2jHCEZd5GVVmTlRLwTxtig/u0BPdf/UnFQV0sNMdLN/eDDCxh2cuNpcuDiNjnuMno5SA9O33XQXTYU670CIuWpKvEXsDw6n2CmqbyhR9lD5xELSqxu28esQJertYxvzLIICOc/RY6mITylPznYwJjypowg52ssUlkJHEaywnuDy8mD3oMwQ8sTR1VK28TMdl1JBQLYGuEk/3dd8iogkEe0fDmZ+HpNl3d7qfegKqok6dIBpNkzRHtRaClIDt2zUD9e8TWtrzj4E25d8HfyTIZPix15WPrcws+GzgFaInlqTevR3j+CJc2n4Oy8Hgk8xqkj9CKII0HS21SMLNtXRz7xVkdYlnq15sUqSEAHrh/ecoehXBd5TWWKh5MDbegdZgz0Cb15WPbYidZ0AAaWwfGpBKIgxoXs/XxZ5EvI0g7ik6e383ANNFeuRyjuoB925g4t3JFKBv0qiHYwzUIX6UW9EVQXPp2pYs0jbT8MqssMOrNJ3tGdZ146ug2fIC0qInloLyW2Cpg1CTJHRc1WBF5YlFoIMX9EGgF5tc0YlpGUB2n/LkgPa7ARx8Q42Pmkgvf0OaE5KbsGUrYSWVVaVWdpEx+EnZJMSXKyrIIuhw5KaUJEaNlTjqQ2crxia1/AVhjcBo+h+wUVeiMu8KLBS2g8QbMREU1TSjeYSNWVeCcon5hQuY2wbMQyH+4cWno/QZ5dtF8peSyaSnSas04HQULk69tKibi7fjpt7L3u82FaJHX0E5Esc/FxwwyjKp4e55M6cU1xaVee17+CgYjI+e2BADKSoDokedOOUvy+F3IBSHIB8UICqQp8dAKlNq7NHkKKtDXfH3lfL3Y990X/ls8wmXF4u7tSJyhDkPHZRGyZkpJbCryUEgbnOgVZvbTjbt/huQMXjuQWuA9Ba73XSdbRbuytEJn0FjOIJ6qdC5SM/3gabsEx0os+390/HPGqsvyrO8savHlvi2yYUTM4cIrGV5g9RYGVk5nfPNxBkRcoGh6AiL3n2on2hBdvQ+xEeSfVld4pzdYm3AXZOVBwpcvm2C1IJ4TJmBDYVrOkfn/Jxdn4ozMLvpYU6nCV+U+eIg2yPx3MQKI6Od4BU+ZUO9nC1oCV1xwhI9MMxr9ds9Vi9Y5Vf1RRvWq9VkQ3JOEfviF+54Dq/KvBsA+zMxMOaYnPJHkewLMkOS5VXl4w4EAr2VhJ7UdBSGEZp13Fcwiguu8jPNEePtimI+JecHSr0dlWp9WvOA9wxw0vLJzYUMAAR80Wk6iLPlujyKUN0cngP8hfGMV2XeLuyyCJWJQd5wQwwq58djMg0CUMOpIa6gMdeZNTNpVyuWvXMKMEfe2aMgOqRtWtSZO7s3ZMdzJ4yNPw62bJHL1VseFgVjIwmLreLrdL0Xj9pfje5XXVeFZXwVbIAp2+VU8/qHC820aqqMp8hPr0GG5xkdfO+/jksUXhS/rkKAzThtsYNiINnZNBVX/Se/+HkD/PZMgxAVqXk1Slkn9jL/4xyyk6/xzllcBMt2Ob2mWmYSpZtKOwTYijLDhPIy9nf4Du74Pw1jDwQzxZswzMGjrhNdeVWgFl8W4QhPnFrPuW+ULauX80rAmESb6trF1sq5RWLFBESqHq+SPyLo/GjVGk/QiQSyMTcoL0EGYcx3tNhOVxrhhGORBum8YQ4v2Q/ckz8ZndEZNStr10oNDqVIMHd43kVb+Db+fy/yjafZld/36vi72Z3KVIRn2YfZv/tCIiS47GjxWCb0CTHjCGY23SmnmgGjgi1qUz96LA5TH2nt09g6kenyV+qyDwlSahZNDttq072OVrAt3lC3bWSOC/ITkWJaJjrqyF0beXq796eSCfqY0Q03rmKCHbn5KUT7z6FfpCVttsHp0jvpdOlVr+grj7HRi8ew+yIFrCnh98F9CQFiwHZLarEo360eqvxzffbNSaHz0GYlSNrGWVmzRiIzCIQhl0Y5cIMIzNwKkpFHsTvXYZDJOD0pETk3/SkVGfg9KTCJN/0pEYn3vQkRuTddJe4NuWm72jEeTYO5uieqjihxhUD6KQWVwxwSpXIlOlJic6S6Y5DOjnGlI6xpjfLILGwLFVJI+bWqKFZSXbm1mfjiLu6ZI6jte5c7LNcEkgfKaFTP3q8KpeJH/0m1uR9GHs6BC+noZ3VaYxJecrErxqMRNbFIAcC6myFo2U9mepg8YZWc5s8iWxe1U6/m11lqxBRgCncfJo9IqbjR1W2TPW7w9tclxdJ1TA/DjPMJlXD7n23bjaEd0KSJXG0kHXi8q/yLQZQzrrkhKNl+6EeHrLhmnZyR7fu5W46uKNDddjkoZ7qExkJtassKUq3ie1p1T4boYfDzf2ZBZmXMGrkg4hDRD5Cb+OLTkQQTs2EEpN94HTtxAkIpl1M5+x2owJ+O58YcckMbe8D2blGPp0wjOs/WmQOoLqYzIA++w+ZENDHvU5kAXQGbn/xIfIGOoyiaT2A6lWG7HfFtrDaThyQP7Sh1nTbgwQf+t/z6K+M0+/jh6Qj/nv4Iek4/54BYXWcv/P3VXmQ/NFq3zrSvu9LJRNib6tcqOa91BwVmj/A9kx8c4UMZ1F9z4z4+EvrD63Hxn75/aYI82AXBj7qGg3y5OSUm7Ds88QUSbaIpvs7jijCKEwxhEC4SuIsT7G+5wEdxH6wAyE3G6amuXpeNDTZkgu4gzFGtXiyJj3KY78WDXVGGnV8oD66Y4ALy28ys4vLpxpwiyyoYg8iLpiU64avMQikTBIsBsSXwU38srBB3TX042HO8PvU7jFwyuWx3cXVtx1mS7/K6lmBzAcbXosjbbtRjk6sOdmi4TDZCRkuIGmnZE2uiZ8CiS53xW8UZuPvpnY9HsBuqvpi52HiqXUjcngiir4RPKkuWzk0PJl9YZ7/kje/mHTBKNDioisE4xlaXWmuMnWOMIMrNPk+VVdTTgMzPBkpxtrYA3JBiae/GnSp7rk8DGhJLxmdBldHsCEeAq5G3RQ74WrqbZH5mPOI7izufIvGB1v4LeBDe+nXAeOjdXlKv03uanEHU0iC8DPJuIb2pXbCgjv82TlWdXf+TQfFadTV5OiZSm0dkz9eFNzzLagusYtBXOFbVF12XodDU11H5dI6JNRNpfKOycklDR3z2vtFR9ot5VFsJHVFreMHkWEgn6Rz3b2vhwCoI9xIDxOXU2ypDuApu+d4FGySwVke4XrRefS7+aMGgiMVYUaOhy4Y0qM/qk7U3For9+iPubEyF67WI+EuR+WAVt/hSp5gCqJ12jgzTVhPdfnq+XzzlCBoVJFrXOyJYAsWDIN4HxV3T1SQd4uT0rT9ERLEdUWUiXrBa2w2Hz4yRTwtvp58dkkbN2M0BtVE2QryXs3nTBjY4v6ICvL+4oS/jp/rj70gie+QqyHq8bmsoO1NekkH3628qrj/qrZH3qahH47gVgvBSES1hIOoK3rAF4ahs93Tx8tcv3SxqMNaY5p2pIIxX0XRoRmUicNNrjuiTNQPPoEzmJXICSeYmaiaeHatA8FIAfImo6p3s55tOlXpCXE13bSNdIbCZOaGoagrGstuX92zYQmbYcIPg6sh6vzn8jMXus5oc43riS4WdZNVNbiOCBNFtqdXnqQZUVO4swscTrL3/2Z21FPO8pJHphME2CLWOKYnaDp5fZy1jB+WEdr8NKUmXTtdQRUd82QWTUuUr+GGlfLwYRkLDQOOh5gkT1MMW7bINauUIqeK0nArcmNOnvFcyyavcnC7nTy30bWTJ4p6T14aOSjggFmUocgrwU+ELlAwQ2bIiT8jPQBDyhg3E27wwXDURDjbkPmM8UEzQSYUBpFbzsRifCaIooeETNCGGTlkgtj+FH9p1ikTxCEyan4YhNW4m56Mkth0E1cYhmEGyBnFkj0ApoijFdS8MYhwGB5F4g1ZXGEYhhmgaBT7ZCqmGB0AC/hjf3DsjFVav4HmY6eDM00ufx1ORwcSwumZKD2NE/DN7OTOnWWjOHEjqNAFxgzhvs/XlJ0tKkdP/QD95L7Dd7Z4KGJ8V0H16wJmwbYlcYZoxtCnjqeaOlfxc7I/LmNGtK/CXJVwA3OwATlYpnnwDHz8yVHskQ7i7XxWfm73fH4ZPcHNVXxX5LsiR1OG0RPtwMenbar+zxbcmM/uKkeIiymgYQb4eoe7+IciCDfNuD8LLnSQkMDHePV9Gngtc3yvxva9oXSbsK5zGaGafc3p4yOMdiEilt3Fa/AKu4wNIfgaboH/fl9/TVFORL8QNNvPLgKA75HJahpte/QTYXgTvf35/wE3RFKVkToBAA== + + + 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + 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 @@ + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + 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 - - - - - + + + + + - + - -
-
- - + +
+
+ + - - + \ No newline at end of file diff --git a/Thermo.Active/wwwroot/libs/font-awesome/css/font-awesome.css b/Thermo.Active/wwwroot/libs/font-awesome/css/font-awesome.css index ee906a81..44580751 100644 --- a/Thermo.Active/wwwroot/libs/font-awesome/css/font-awesome.css +++ b/Thermo.Active/wwwroot/libs/font-awesome/css/font-awesome.css @@ -439,6 +439,7 @@ } .fa-check-circle:before { content: "\f058"; + /* box-shadow: 0 0 3px rgba(0,0,0,.3); */ } .fa-question-circle:before { content: "\f059"; diff --git a/Thermo.Active/wwwroot/package.json b/Thermo.Active/wwwroot/package.json index a2e4d1f8..6f6f2fd3 100644 --- a/Thermo.Active/wwwroot/package.json +++ b/Thermo.Active/wwwroot/package.json @@ -14,14 +14,15 @@ "axios": "0.19.2", "brace": "0.11.1", "chart.js": "^2.9.3", + "core-js": "^3.4.4", "izitoast": "1.2.0", "moment": "2.24.0", "qrcode": "^1.4.4", "raphael": "^2.3.0", "sprintf-js": "1.1.2", + "svg-gauge": "^1.0.6", "v-tooltip": "^2.0.3", "vee-validate": "2.1.1", - "core-js": "^3.4.4", "vue": "^2.6.11", "vue-chartjs": "^3.5.0", "vue-class-component": "7.2.3", diff --git a/Thermo.Active/wwwroot/src/@types/recipe-current.d.ts b/Thermo.Active/wwwroot/src/@types/recipe-current.d.ts index b060daf4..8f1ab5ec 100644 --- a/Thermo.Active/wwwroot/src/@types/recipe-current.d.ts +++ b/Thermo.Active/wwwroot/src/@types/recipe-current.d.ts @@ -1,25 +1,160 @@ -declare module Recipe{ +declare module Recipe { interface IRange{ - min: number; - max: number; + min:number, + max:number } interface IStatus{ - visible: boolean; - enabled: boolean; - hasError: boolean; + visible:boolean, + enabled:boolean, + hasError:boolean } interface IValue{ range:IRange, status:IStatus, unitMeasure:string, - valueAct: number + valueAct:number } - - interface IRecipe{ - cooling_blowing_type?:IValue, + + interface IRecipe{ + general_sizes_mould_dim_x?:IValue, + general_sizes_mould_dim_y?:IValue, + general_sizes_mould_max_height?:IValue, + general_sizes_mould_min_height?:IValue, + general_sizes_mould_base_height?:IValue, + general_sizes_sheet_material?:IValue, + general_sizes_sheet_dim_x?:IValue, + general_sizes_sheet_dim_y?:IValue, + general_sizes_sheet_thickness?:IValue, + general_sizes_plate_type?:IValue, + general_sizes_plate_dim_x?:IValue, + general_sizes_plate_dim_y?:IValue, + general_sizes_frame_traverses?:IValue, + general_sizes_frame_dim_x?:IValue, + general_sizes_frame_dim_y?:IValue, + general_sizes_upperplate_max_height?:IValue, + general_area_working_dxsx?:IValue, + positions_mould_lower_position?:IValue, + positions_mould_lower_speed?:IValue, + positions_mould_intermediate_position?:IValue, + positions_mould_upper_position?:IValue, + positions_mould_upper_speed?:IValue, + positions_mould_upperdeceleration_position?:IValue, + positions_mould_upperdeceleration_speed?:IValue, + positions_mould_lowerdeceleration_speed?:IValue, + positions_mould_lowerdeceleration_position?:IValue, + positions_frame_lower_position?:IValue, + positions_frame_lower_speed?:IValue, + positions_frame_upper_speed?:IValue, + positions_frame_upper_position?:IValue, + positions_frame_intermediate_position?:IValue, + positions_frame_intermediate_speed?:IValue, + positions_frame_unload_position?:IValue, + positions_upperplate_lower_position?:IValue, + positions_upperplate_lower_speed?:IValue, + positions_upperplate_upper_position?:IValue, + positions_upperplate_upper_speed?:IValue, + positions_upperplate_upperdeceleration_position?:IValue, + positions_upperplate_upperdeceleration_speed?:IValue, + positions_upperplate_lowerdeceleration_position?:IValue, + positions_upperplate_lowerdeceleration_speed?:IValue, + cycle_forming_type?:IValue, + cycle_forming_pause_cycle?:IValue, + cycle_forming_cooling_enabled?:IValue, + cycle_forming_blowingbox_enabled?:IValue, + cycle_acrylicframe_enabled?:IValue, + cycle_acrylicframe_time?:IValue, + cycle_upperoverheating_enabled?:IValue, + cycle_upperoverheating_time?:IValue, + cycle_crystallisation_type?:IValue, + cycle_crystallisation_enabled?:IValue, + cycle_crystallisation_time?:IValue, + cycle_loader_enable?:IValue, + cycle_loader_lifter_lowerposition_delay?:IValue, + cycle_loader_lifter_upperposition_delay?:IValue, + cycle_loader_split_sheet_time?:IValue, + cycle_loader_ejector_position?:IValue, + cycle_loader_pallet_height?:IValue + cycle_loader_center_x?:IValue, + cycle_loader_center_y?:IValue, + cycle_loader_checktichness_enabled?:IValue, + cycle_loader_suckers_vacuum?:IValue, + cycle_loader_ionizer_enabled?:IValue, + cycle_loader_manualunloading_enabled?:IValue, + heats_lowerheaters_max_time?:IValue, + heats_lowerheaters_movement_enabled?:IValue, + heats_lowerheaters_enabled?:IValue, + heats_lowerheaters_oscillation?:IValue, + heats_upperheaters_max_time?:IValue, + heats_upperheaters_movement_enabled?:IValue, + heats_upperheaters_enabled?:IValue, + heats_upperheaters_oscillation?:IValue, + heats_decomsustain_type?:IValue, + heats_decomsustain_decompression_flow?:IValue, + heats_decomsustain_min_blowing_time?:IValue, + heats_decomsustain_sustain_delay?:IValue, + heats_decomsustain_decompression_delay?:IValue, + heats_decomsustain_decompression_duration?:IValue, + heats_decomsustain_smoke_function_enabled?:IValue, + pyrometer_pyrometer_enabled?:IValue, + pyrometer_pyrometer_setpoint?:IValue, + pyrometer_pyrometer_delay?:IValue, + pyrometer_upperthermoregulator_start_adjustment?:IValue, + pyrometer_upperthermoregulator_end_adjustment?:IValue, + pyrometer_upperthermoregulator_min_percentage?:IValue, + pyrometer_upperthermoregulator_max_percentage?:IValue, + pyrometer_upperthermoregulator_sleep_enabled?:IValue, + pyrometer_upperthermoregulator_sleep_percentage?:IValue, + pyrometer_lowerthermoregulator_start_adjustment?:IValue, + pyrometer_lowerthermoregulator_end_adjustment?:IValue, + pyrometer_lowerthermoregulator_min_percentage?:IValue, + pyrometer_lowerthermoregulator_max_percentage?:IValue, + pyrometer_lowerthermoregulator_sleep_enabled?:IValue, + pyrometer_lowerthermoregulator_sleep_percentage?:IValue, + pyrometer_upperthermoregulator_sleep_temperature?:IValue, + pyrometer_upperthermoregulator_working_temperature?:IValue, + pyrometer_lowerthermoregulator_sleep_temperature?:IValue, + pyrometer_lowerthermoregulator_working_temperature?:IValue, + drawing_type?:IValue, + drawing_height?:IValue, + drawing_delay?:IValue, + drawing_1_chart_setpointx?:IValue, + drawing_1_chart_setpointy?:IValue, + drawing_photocell?:IValue, + drawing_mantaining_flow?:IValue, + drawing_manual?:IValue, + drawing_mould_up_delay?:IValue, + upperplate_cycle_type?:IValue, + upperplate_cycle_delay?:IValue, + upperplate_cycle_time?:IValue, + upperplate_air_enable?:IValue, + upperplate_air_delay?:IValue, + upperplate_air_max_time?:IValue, + upperplate_air_1_chart_setpointx?:IValue, + upperplate_air_1_chart_setpointy?:IValue, + upperplate_air_2_chart_setpointx?:IValue, + upperplate_air_2_chart_setpointy?:IValue, + upperplate_air_3_chart_setpointx?:IValue, + upperplate_air_3_chart_setpointy?:IValue, + upperplate_air_manual?:IValue, + upperplate_vacuum_enable?:IValue, + upperplate_vacuum_delay?:IValue, + upperplate_vacuum_max_time?:IValue, + upperplate_vacuum_1_chart_setpointx?:IValue, + upperplate_vacuum_1_chart_setpointy?:IValue, + upperplate_vacuum_2_chart_setpointx?:IValue, + upperplate_vacuum_2_chart_setpointy?:IValue, + upperplate_vacuum_3_chart_setpointx?:IValue, + upperplate_vacuum_3_chart_setpointy?:IValue, + upperplate_vacuum_manual?:IValue, + upperplate_extraction_enable?:IValue, + upperplate_extraction_delay?:IValue, + upperplate_extraction_1_chart_setpointx?:IValue, + upperplate_extraction_1_chart_setpointy?:IValue, + upperplate_extraction_manual?:IValue, + cooling_blowing_type?:IValue, cooling_blowing_delay?:IValue, cooling_blowing_time?:IValue, cooling_pyrometer_enabled?:IValue, @@ -198,7 +333,7 @@ declare module Recipe{ options_thermoregulator_9_setpoint?:IValue, options_thermoregulator_10_enabled?:IValue, options_thermoregulator_10_setpoint?:IValue, - } + } +} -} \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/@types/recipe-overview.d.ts b/Thermo.Active/wwwroot/src/@types/recipe-overview.d.ts new file mode 100644 index 00000000..5124d504 --- /dev/null +++ b/Thermo.Active/wwwroot/src/@types/recipe-overview.d.ts @@ -0,0 +1,15 @@ +declare module Overview { + interface IOverview{ + general?:string, + positions?:string, + cycle?: string, + heats?: string, + pyrometer?: string, + drawing?: string, + upperPlate?: string, + cooling?: string, + vacuum?: string, + extraction?: string, + options?: string + } +} \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/App.ts b/Thermo.Active/wwwroot/src/App.ts index ecf2fe37..e965ca61 100644 --- a/Thermo.Active/wwwroot/src/App.ts +++ b/Thermo.Active/wwwroot/src/App.ts @@ -13,7 +13,8 @@ import { underTheHood } from "@/app_modules/under-the-hood"; import SwitchButton from "@/app_modules_thermo/components/paddle/switch-button.vue"; import Sidebar from "@/app_modules_thermo/components/paddle/sidebar.vue"; import ToggleButton from "@/components/toggleButton.vue"; -import Dashboard from "@/app_modules_thermo/dashboard/dashboard.vue" +import Dashboard from "@/app_modules_thermo/dashboard/dashboard.vue"; +import PreDashboard from "@/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.vue"; import * as iziToast from "izitoast"; @@ -37,6 +38,7 @@ declare var cmsClient; switchButton: SwitchButton, sidebar: Sidebar, dashboard: Dashboard, + predashboard:PreDashboard, alarmList, underTheHood, } @@ -165,6 +167,10 @@ export default class app extends Vue { return this.$store.state.isShowDashboard; } + get statusPreDashboard(){ + return this.$store.state.isShowPreDashboard; + } + @Watch("isMainViewLiftedUp") isMainViewLiftedUpChanged() { if (this.state.isMainViewLiftedUp) { diff --git a/Thermo.Active/wwwroot/src/App.vue b/Thermo.Active/wwwroot/src/App.vue index 2bbc031e..80244b8d 100644 --- a/Thermo.Active/wwwroot/src/App.vue +++ b/Thermo.Active/wwwroot/src/App.vue @@ -3,6 +3,7 @@
+ @@ -19,16 +20,11 @@
- -
- + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/SVG_Components/SVG-termo-superiore.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/SVG_Components/SVG-termo-superiore.ts index 1fd94220..b6c3eba0 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/SVG_Components/SVG-termo-superiore.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/SVG_Components/SVG-termo-superiore.ts @@ -1,25 +1,20 @@ import Vue from 'vue'; import Component from 'vue-class-component'; -import {Prop} from 'vue-property-decorator'; +import { Prop } from 'vue-property-decorator'; -@Component({name:'svgtermosuperiore'}) -export default class SVGTermoregolazioneSuperiore extends Vue{ +@Component({ name: 'svgtermosuperiore' }) +export default class SVGTermoregolazioneSuperiore extends Vue { - @Prop({default:0}) - max:number; - @Prop({default:0}) - min:number; - @Prop({default:0}) - inizio:number; - @Prop({default:0}) - fine:number; - @Prop({default:0}) - perc_riposo:number; - mock_max:number=this.max - mock_min:number=this.min - mock_inizio:number=this.inizio - mock_fine:number=this.fine - mock_perc_riposo:number=this.perc_riposo + @Prop({}) + max: Recipe.IValue; + @Prop({}) + min: Recipe.IValue; + @Prop({}) + inizio: Recipe.IValue; + @Prop({}) + fine: Recipe.IValue; + @Prop({}) + perc_riposo: Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/SVG_Components/SVG-termo-superiore.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/SVG_Components/SVG-termo-superiore.vue index 4c0d97e5..cac76a88 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/SVG_Components/SVG-termo-superiore.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/SVG_Components/SVG-termo-superiore.vue @@ -1,32 +1,7 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/pirometro.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/pirometro.ts index ab56fc4e..d23ca79a 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/pirometro.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/pirometro.ts @@ -3,18 +3,12 @@ import Component from 'vue-class-component'; import {Prop} from 'vue-property-decorator'; import Slider from "@/app_modules_thermo/components/slider.vue"; import ToggleButton from "@/components/toggleButton.vue"; +// import Recipe from "@/@types/recipe-current"; @Component({name:"pirometro", components: { slider:Slider, ToggleButton}}) export default class Pirometro extends Vue{ - - @Prop({default:100}) - temperatura:number; - @Prop({default:0}) - ritardo:number; - - mock_temperatura:number=this.temperatura; - mock_ritardo:number=this.ritardo; - - enabling:boolean=true; + + @Prop() + recipe:Recipe.IRecipe; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/pirometro.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/pirometro.vue index e1119bba..20e70618 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/pirometro.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/pirometro.vue @@ -1,24 +1,35 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/termo-superiore.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/termo-superiore.ts index baa4f431..d92bdebd 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/termo-superiore.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/termo-superiore.ts @@ -1,30 +1,25 @@ import Vue from 'vue'; import Component from 'vue-class-component'; -import {Prop} from 'vue-property-decorator'; +import { Prop } from 'vue-property-decorator'; import Slider from "@/app_modules_thermo/components/slider.vue"; import ToggleButton from "@/components/toggleButton.vue"; -import SVGTermoregolazioneSuperiore from './SVG_Components/SVG-termo-superiore.vue' +import SVGTermoregolazioneSuperiore from './SVG_Components/SVG-termo-superiore.vue'; +import Tastierino from "@/app_modules_thermo/components/tastierino.vue"; -@Component({name:'termosuperiore', components: { slider:Slider, ToggleButton, svgtermosuperiore:SVGTermoregolazioneSuperiore}}) -export default class TermoregolazioneSuperiore extends Vue{ +@Component({ + name: 'termosuperiore', + components: { + slider: Slider, + ToggleButton, + svgtermosuperiore: SVGTermoregolazioneSuperiore, + } +}) +export default class TermoregolazioneSuperiore extends Vue { - @Prop({default:0}) - inizioreg:number; - @Prop({default:0}) - finereg:number; - @Prop({default:0}) - max:number; - @Prop({default:0}) - min:number; - @Prop({default:0}) - riposo:number; - mock_inizioreg:number=this.inizioreg - mock_finereg:number=this.finereg - mock_max:number=this.max - mock_min:number=this.min - mock_riposo:number=this.riposo + @Prop() + recipe: Recipe.IRecipe; + - enabling:boolean=true; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/termo-superiore.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/termo-superiore.vue index 7c6cc736..ad572013 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/termo-superiore.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/termo-superiore.vue @@ -1,50 +1,91 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/show-pirometro-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/show-pirometro-info.ts index 63ed59e0..792a8da9 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/show-pirometro-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/show-pirometro-info.ts @@ -6,34 +6,45 @@ import { Prop } from 'vue-property-decorator'; import Pirometro from "./base-components/pirometro.vue"; import TermoregolazioneSuperiore from "./base-components/termo-superiore.vue"; import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue"; +import { recipeActions } from "@/store/recipe.store"; +import { store } from "@/store"; +import { Deferred } from "@/services"; -@Component({ components: { modal: Modal ,pirometro:Pirometro, stepfooter:StepFooter, termosuperiore:TermoregolazioneSuperiore} }) +@Component({ components: { modal: Modal, pirometro: Pirometro, stepfooter: StepFooter, termosuperiore: TermoregolazioneSuperiore } }) export default class ShowPirometroInfo extends Vue { - show:string='termo-superiore'; + recipe: Recipe.IRecipe = this.$store.getters.getCurrent(); + show: string = 'termo-superiore'; - annulla(){ - ModalHelper.HideModal(); - }; + @Prop() + deferred: Deferred; - conferma(){ - ModalHelper.HideModal(); - }; + annulla() { + ModalHelper.HideModal(); + this.deferred.resolve(-1); + }; - async beforeMount() { - // this.contactInfo = await awaiter(new machineService().getContactConfiguration()); - messageService.subscribeToChannel("esc_pressed", args => { - this.close(); - }); - } - - beforeDestroy() { - messageService.deleteChannel("esc_pressed"); - } - - close() { - messageService.deleteChannel("esc_pressed"); - ModalHelper.HideModal(); - } + conferma() { + recipeActions.setCurrent(store, this.recipe); + ModalHelper.HideModal(); + this.deferred.resolve(1); + }; + + async beforeMount() { + // this.contactInfo = await awaiter(new machineService().getContactConfiguration()); + messageService.subscribeToChannel("esc_pressed", args => { + this.close(); + }); + } + + beforeDestroy() { + messageService.deleteChannel("esc_pressed"); + } + + close() { + messageService.deleteChannel("esc_pressed"); + this.deferred.reject(); + ModalHelper.HideModal(); + } } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/show-pirometro-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/show-pirometro-info.vue index ae0e48aa..4c4f40f4 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/show-pirometro-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/show-pirometro-info.vue @@ -1,29 +1,31 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/quote-velocita.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/quote-velocita.ts index a46ade44..6df39382 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/quote-velocita.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/quote-velocita.ts @@ -1,17 +1,18 @@ import Vue from 'vue'; import Component from 'vue-class-component'; -import {Prop} from 'vue-property-decorator'; +import { Prop } from 'vue-property-decorator'; @Component({}) -export default class QuoteVelocita extends Vue{ - - @Prop({default:0}) - corsa:number; - @Prop({default:0}) - vel_salita:number; - @Prop({default:0}) - vel_salita_lenta:number; - @Prop({default:0}) - rall_salita:number; +export default class QuoteVelocita extends Vue { + + + @Prop({}) + corsa: Recipe.IValue; + @Prop({}) + vel_salita: Recipe.IValue; + @Prop({}) + vel_salita_lenta: number; + @Prop({}) + rall_salita: number; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/quote-velocita.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/quote-velocita.vue index 0bc1cbe2..d860b3a3 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/quote-velocita.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/quote-velocita.vue @@ -1,78 +1,7 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/stampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/stampo.ts index a46ade44..69414fde 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/stampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/stampo.ts @@ -1,17 +1,19 @@ import Vue from 'vue'; import Component from 'vue-class-component'; -import {Prop} from 'vue-property-decorator'; +import { Prop } from 'vue-property-decorator'; @Component({}) -export default class QuoteVelocita extends Vue{ - - @Prop({default:0}) - corsa:number; - @Prop({default:0}) - vel_salita:number; - @Prop({default:0}) - vel_salita_lenta:number; - @Prop({default:0}) - rall_salita:number; +export default class QuoteVelocita extends Vue { + + + + @Prop({}) + corsa: Recipe.IValue; + @Prop({}) + vel_salita: Recipe.IValue; + @Prop({}) + vel_salita_lenta: Recipe.IValue; + @Prop({}) + rall_salita: Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/stampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/stampo.vue index ec7de234..649b6a29 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/stampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/stampo.vue @@ -1,94 +1,7 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/svgcontrostampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/svgcontrostampo.ts index 13cdd1e2..62dfff11 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/svgcontrostampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/svgcontrostampo.ts @@ -1,16 +1,19 @@ import Vue from 'vue'; import Component from 'vue-class-component'; -import {Prop} from 'vue-property-decorator'; +import { Prop } from 'vue-property-decorator'; @Component({}) -export default class Controstamposvg extends Vue{ - @Prop({default:0}) - corsa:number; - @Prop({default:0}) - vel_discesa:number; - @Prop({default:0}) - vel_discesa_lenta:number; - @Prop({default:0}) - rall_discesa:number; +export default class Controstamposvg extends Vue { + + + + @Prop({}) + corsa: Recipe.IValue; + @Prop({}) + vel_discesa: Recipe.IValue; + @Prop({}) + vel_discesa_lenta: number; + @Prop({}) + rall_discesa: number; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/svgcontrostampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/svgcontrostampo.vue index f1cc3430..075d09fb 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/svgcontrostampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/svgcontrostampo.vue @@ -1,66 +1,7 @@ e \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/controstampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/controstampo.ts index 2e5c34c8..0072d813 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/controstampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/controstampo.ts @@ -1,39 +1,37 @@ import Vue from 'vue'; import Component from 'vue-class-component'; -import {Prop} from 'vue-property-decorator'; +import { Prop } from 'vue-property-decorator'; import Slider from "@/app_modules_thermo/components/slider.vue"; import Scheda from "@/app_modules_thermo/components/scheda.vue"; import Controstamposvg from "./SVG_Components/svgcontrostampo.vue"; +import Tastierino from "@/app_modules_thermo/components/tastierino.vue"; -@Component({name:"controstampo", -components: { scheda:Scheda, - slider:Slider,svgcontrostampo:Controstamposvg -} +@Component({ + name: "controstampo", + components: { + scheda: Scheda, + svgcontrostampo: Controstamposvg + } }) export default class Controstampo extends Vue { - @Prop({default:0}) - ritardo:number; - mockR:number=this.ritardo; - @Prop({default:0}) - corsa:number; + @Prop() + recipe: Recipe.IRecipe; - mockC:number=this.corsa; + @Prop({}) + ritardo: number; - @Prop({default:0}) - velocità_discesa:number; + mockR: number = this.ritardo; - mockVD:number=this.velocità_discesa; + @Prop({}) + rallentamento_discesa: number; - @Prop({default:0}) - rallentamento_discesa:number; + mockRD: number = this.rallentamento_discesa; - mockRD:number=this.rallentamento_discesa; + @Prop({}) + velocità_discesa_lenta: number; - @Prop({default:0}) - velocità_discesa_lenta:number; - - mockVDL:number=this.velocità_discesa_lenta; + mockVDL: number = this.velocità_discesa_lenta; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/controstampo.vue index 4c1c15cf..36cd6057 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/controstampo.vue @@ -9,49 +9,60 @@
- +
- +
- +
- +
- +
- +
- +
- +
- +
- + -
+
- + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/discesa-cornice.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/discesa-cornice.ts index 749fe110..71f9a761 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/discesa-cornice.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/discesa-cornice.ts @@ -1,27 +1,26 @@ import Vue from "vue"; import Component from "vue-class-component"; import { Prop } from 'vue-property-decorator'; -import Slider from "@/app_modules_thermo/components/slider.vue" +import Slider from "@/app_modules_thermo/components/slider.vue"; import QuoteVelocitaSVG from "./SVG_Components/quote-velocita.vue"; +import Tastierino from "@/app_modules_thermo/components/tastierino.vue"; -@Component({name:"discesacornice", components:{quoteVelocitaSVG: QuoteVelocitaSVG,slider:Slider}}) +@Component({ name: "discesacornice", components: { quoteVelocitaSVG: QuoteVelocitaSVG } }) export default class DiscesaCornice extends Vue { - @Prop({default:0}) - ritardo:number; - @Prop({default:0}) - corsa:number; - @Prop({default:0}) - velSalita:number; - @Prop({default:0}) - ralSalita:number; - @Prop({default:0}) - velSalitaLenta:number; - mock_ritardo:number=this.ritardo; - mock_corsa:number=this.corsa; - mock_velSalita:number=this.velSalita; - mock_ralSalita:number=this.ralSalita; - mock_velSalitaLenta:number=this.velSalitaLenta; + @Prop() + recipe: Recipe.IRecipe; + + @Prop({}) + ritardo: number; + @Prop({}) + ralSalita: number; + @Prop({}) + velSalitaLenta: number; + + mock_ritardo: number = this.ritardo; + mock_ral_salita: number = this.ralSalita; + mock_vel_salita_lenta: number = this.velSalitaLenta; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/discesa-cornice.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/discesa-cornice.vue index 832eaba1..5558bb20 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/discesa-cornice.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/discesa-cornice.vue @@ -1,5 +1,5 @@ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/base-components/ventilatori.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/base-components/ventilatori.ts index 82d425e3..0997fe96 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/base-components/ventilatori.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/base-components/ventilatori.ts @@ -10,41 +10,7 @@ components: { }) export default class Ventilatori extends Vue{ - recipe:Recipe.IRecipe={ - cooling_blowing_delay:{ - range:{ - min:5, - max:132 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:102 - }, - cooling_blowing_time:{ - range:{ - min:6, - max:138 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:33 - } - }; - - @Prop({default:0}) - durata:number; - @Prop({default:0}) - ritardo:number; - - mockD:number=this.durata; - mockR:number=this.ritardo; + @Prop() + recipe:Recipe.IRecipe; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/base-components/ventilatori.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/base-components/ventilatori.vue index 56e8fb85..6dfa77f4 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/base-components/ventilatori.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/base-components/ventilatori.vue @@ -1,25 +1,35 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/show-raffreddamento-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/show-raffreddamento-info.ts index f6c3c7a8..2529c43f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/show-raffreddamento-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/show-raffreddamento-info.ts @@ -1,46 +1,55 @@ import Vue from 'vue'; import Component from 'vue-class-component'; -import {Prop} from 'vue-property-decorator'; +import { Prop } from 'vue-property-decorator'; import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue"; import { Modal, ModalHelper } from "@/components/modals"; import { Factory, messageService, awaiter } from "@/_base"; -import Ventilatori from "./base-components/ventilatori.vue" +import Ventilatori from "./base-components/ventilatori.vue"; +import { recipeActions } from "@/store/recipe.store"; +import { store } from "@/store"; +import { Deferred } from '@/services'; -@Component({ - components: { - modal: Modal, - ventilatori:Ventilatori, - stepfooter:StepFooter -} +@Component({ + components: { + modal: Modal, + ventilatori: Ventilatori, + stepfooter: StepFooter + } }) -export default class Raffreddamento extends Vue{ +export default class Raffreddamento extends Vue { + @Prop() + deferred: Deferred; - show: string = "ventilatori"; - annulla(){ - ModalHelper.HideModal(); - messageService.publishToChannel('show-controstampo-info'); - }; - - conferma(){ - ModalHelper.HideModal(); - messageService.publishToChannel('show-vuoto-info'); - }; - - async beforeMount() { - // this.contactInfo = await awaiter(new machineService().getContactConfiguration()); - messageService.subscribeToChannel("esc_pressed", args => { - this.close(); - }); - } - - beforeDestroy() { - messageService.deleteChannel("esc_pressed"); - } - - close() { - messageService.deleteChannel("esc_pressed"); - ModalHelper.HideModal(); - } + recipe: Recipe.IRecipe = this.$store.getters.getCurrent(); + show: string = "ventilatori"; + + annulla() { + ModalHelper.HideModal(); + this.deferred.resolve(-1); + }; + + conferma() { + recipeActions.setCurrent(store, this.recipe); + ModalHelper.HideModal(); + this.deferred.resolve(1); + }; + + async beforeMount() { + // this.contactInfo = await awaiter(new machineService().getContactConfiguration()); + messageService.subscribeToChannel("esc_pressed", args => { + this.close(); + }); + } + + beforeDestroy() { + messageService.deleteChannel("esc_pressed"); + } + + close() { + messageService.deleteChannel("esc_pressed"); + this.deferred.reject(); + ModalHelper.HideModal(); + } } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/show-raffreddamento-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/show-raffreddamento-info.vue index 6dd8bf9b..9fc2fa07 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/show-raffreddamento-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/raffreddamento/components/show-raffreddamento-info.vue @@ -1,7 +1,7 @@ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/riscaldi-superiori.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/riscaldi-superiori.ts index ca8f6fe5..5aa7ad32 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/riscaldi-superiori.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/riscaldi-superiori.ts @@ -11,12 +11,12 @@ import toggleButton from "@/components/toggleButton.vue"; }) export default class RiscaldiSuperiori extends Vue { - @Prop({ default: 0 }) - ritardo: number; - @Prop({ default: 0 }) - durata: number; + @Prop({}) + setpoint:number; + mock_setpoint:number=this.setpoint; + + @Prop() + recipe:Recipe.IRecipe; - mockD: number = this.durata; - mockR: number = this.ritardo; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/riscaldi-superiori.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/riscaldi-superiori.vue index 30263782..38f61409 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/riscaldi-superiori.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/riscaldi-superiori.vue @@ -1,78 +1,85 @@ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/base-components/vuoto-principale.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/base-components/vuoto-principale.ts index 02e1df0c..01e0de33 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/base-components/vuoto-principale.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/base-components/vuoto-principale.ts @@ -7,126 +7,7 @@ import Scheda from "@/app_modules_thermo/components/scheda.vue" @Component({name:'vuotoprincipale', components: { slider:Slider, scheda:Scheda}}) export default class VuotoPrincipale extends Vue{ - recipe:Recipe.IRecipe={ - vacuum_main_delay:{ - range:{ - min:8, - max:105 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:57 - }, - vacuum_main_max_time:{ - range:{ - min:9, - max:127 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:30 - }, - vacuum_main_manual:{ - range:{ - min:4, - max:115 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:8 - }, - vacuum_main_1_chart_setpointx:{ - range:{ - min:0, - max:145 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:82 - }, - vacuum_main_1_chart_setpointy:{ - range:{ - min:8, - max:164 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:83 - }, - vacuum_main_2_chart_setpointx:{ - range:{ - min:3, - max:183 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:40 - }, - vacuum_main_2_chart_setpointy:{ - range:{ - min:9, - max:184 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:57 - }, - vacuum_main_3_chart_setpointx:{ - range:{ - min:1, - max:160 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:27 - }, - vacuum_main_3_chart_setpointy:{ - range:{ - min:6, - max:114 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:35 - } - }; - - + @Prop() + recipe:Recipe.IRecipe; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/base-components/vuoto-principale.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/base-components/vuoto-principale.vue index 034a30f1..bf29c4db 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/base-components/vuoto-principale.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/base-components/vuoto-principale.vue @@ -1,56 +1,68 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/show-vuoto-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/show-vuoto-info.ts index d3f396c2..359b6529 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/show-vuoto-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/show-vuoto-info.ts @@ -3,38 +3,47 @@ import { Modal, ModalHelper } from "@/components/modals"; import { Factory, messageService, awaiter } from "@/_base"; import Component from "vue-class-component"; import { Prop } from 'vue-property-decorator'; -import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue" -import VuotoPrincipale from "./base-components/vuoto-principale.vue" +import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue"; +import VuotoPrincipale from "./base-components/vuoto-principale.vue"; +import { recipeActions } from "@/store/recipe.store"; +import { store } from "@/store"; +import { Deferred } from "@/services"; -@Component({ components: { modal: Modal , vuotoprincipale: VuotoPrincipale, stepfooter: StepFooter} }) +@Component({ components: { modal: Modal, vuotoprincipale: VuotoPrincipale, stepfooter: StepFooter } }) export default class ShowVuotoInfo extends Vue { - - show:string="principale"; - annulla(){ - ModalHelper.HideModal(); - messageService.publishToChannel('show-raffreddamento-info'); - }; + recipe: Recipe.IRecipe = this.$store.getters.getCurrent(); + show: string = "principale"; - conferma(){ - ModalHelper.HideModal(); - messageService.publishToChannel('show-estrazione-info'); - }; + @Prop() + deferred: Deferred; - async beforeMount() { - // this.contactInfo = await awaiter(new machineService().getContactConfiguration()); - messageService.subscribeToChannel("esc_pressed", args => { - this.close(); - }); - } - - beforeDestroy() { - messageService.deleteChannel("esc_pressed"); - } - - close() { - messageService.deleteChannel("esc_pressed"); - ModalHelper.HideModal(); - } + annulla() { + ModalHelper.HideModal(); + this.deferred.resolve(-1); + }; + + conferma() { + recipeActions.setCurrent(store, this.recipe); + ModalHelper.HideModal(); + this.deferred.resolve(1); + }; + + async beforeMount() { + // this.contactInfo = await awaiter(new machineService().getContactConfiguration()); + messageService.subscribeToChannel("esc_pressed", args => { + this.close(); + }); + } + + beforeDestroy() { + messageService.deleteChannel("esc_pressed"); + } + + close() { + messageService.deleteChannel("esc_pressed"); + this.deferred.reject(); + ModalHelper.HideModal(); + } } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/show-vuoto-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/show-vuoto-info.vue index 9516dbfb..959bc7fe 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/show-vuoto-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/show-vuoto-info.vue @@ -1,25 +1,25 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/components/app-ribbon.ts b/Thermo.Active/wwwroot/src/components/app-ribbon.ts index 5c9f2b85..28f431e3 100644 --- a/Thermo.Active/wwwroot/src/components/app-ribbon.ts +++ b/Thermo.Active/wwwroot/src/components/app-ribbon.ts @@ -1,12 +1,13 @@ -import Vue from "vue"; +import Vue from 'vue'; +import {Prop,Watch} from 'vue-property-decorator'; import { alarmsModelActions } from "src/store"; -import { Factory, messageService } from "src/_base"; -import { Prop, Watch, Component } from "vue-property-decorator"; +import { messageService } from "src/_base"; +import Component from 'vue-class-component'; @Component({}) -export default class AppRibbon extends Vue { - - @Prop({ default: false }) +export default class AppRibbon extends Vue{ + + @Prop({ default: false }) showExpander: boolean; @Prop({ default: null }) status; @@ -14,32 +15,30 @@ export default class AppRibbon extends Vue { expanded: boolean; @Prop({ default: false }) hasService: boolean; - - serviceExpanded: boolean = false; - - - @Watch("hasService") + + @Watch('hasService') hasServiceChanged(oldV,newV) { this.serviceExpanded = !this.expanded; - } - @Watch("opened") - hasOpened(){ + }; + + @Watch('opened') + openedChanged(){ if(this.$store.state.alarms.opened || this.$store.state.alarms.serviceOpened) messageService.publishToChannel("HMI-show-alarms"); else messageService.publishToChannel("HMI-hide-alarms",300); - } - @Watch("serviceOpened") - hasServiceOpened(){ + }; + + @Watch('serviceOpened') + serviceOpenedChanged(){ if(this.$store.state.alarms.opened || this.$store.state.alarms.serviceOpened) messageService.publishToChannel("HMI-show-alarms"); else messageService.publishToChannel("HMI-hide-alarms",300); - - } - - + }; + + // hasService() { // return !this.$slots["service"]; // }, @@ -52,7 +51,7 @@ export default class AppRibbon extends Vue { this.serviceExpanded = true; alarmsModelActions.toggleOpened(this.$store, false); - } + }; toggleExpanded() { if(this.status.alarm || this.status.warning) @@ -65,21 +64,25 @@ export default class AppRibbon extends Vue { this.serviceExpanded = false; alarmsModelActions.toggleServiceOpened(this.$store, false); } - } - - - + }; + + + serviceExpanded:boolean= false; + get opened() { + return this.$store.state.alarms.opened; - } + }; get serviceOpened() { + return this.$store.state.alarms.serviceOpened; - } + }; get mainExpanded() { if (!this.hasService) return this.expanded; - return !this.serviceExpanded && this.expanded; - } -}; \ No newline at end of file + return !this.serviceExpanded && this.expanded; + }; + +} \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/components/app-ribbon.vue b/Thermo.Active/wwwroot/src/components/app-ribbon.vue index 39fa1518..5e1487bd 100644 --- a/Thermo.Active/wwwroot/src/components/app-ribbon.vue +++ b/Thermo.Active/wwwroot/src/components/app-ribbon.vue @@ -20,5 +20,6 @@
- diff --git a/Thermo.Active/wwwroot/src/main.ts b/Thermo.Active/wwwroot/src/main.ts index d5592f39..ad0c21e1 100644 --- a/Thermo.Active/wwwroot/src/main.ts +++ b/Thermo.Active/wwwroot/src/main.ts @@ -25,6 +25,9 @@ import "./_base/gestures"; import "./app.business-logic"; import "./app.modules"; import { messageService } from "src/_base"; +import { recipeService } from "@/services/recipeService"; +recipeService.GetCurrent(); +recipeService.GetOverview(); // import VueDragDrop from 'vue-drag-drop'; // Vue.use(VueDragDrop); @@ -37,7 +40,6 @@ import { routes } from "./app.routes"; try { - //debugger if (PRODUCTION) { Vue.config.devtools = false; // disabilita i messaggi di debug Vue.config.performance = false; // disabilita i messaggi di tracing delle performance @@ -88,7 +90,11 @@ router.beforeEach((to, from, next) => { // Initialize default language import { LocalizationService } from "src/services/localizationService"; -new LocalizationService().init(); +try { + new LocalizationService().init(); +} +catch +{ } let v = new Vue({ @@ -107,6 +113,11 @@ import "./filters/securityFilter"; import "./filters/cnFilter"; import "./filters/isValidMixin"; +// registrazione componenti generali +import components from "@/app_modules_thermo/components"; +for (let name in components) { + Vue.component(name, components[name]); +} // polyfills !! if (!(String.prototype as any).format) { diff --git a/Thermo.Active/wwwroot/src/modules/app-footer.vue b/Thermo.Active/wwwroot/src/modules/app-footer.vue index 0323165d..4c3580df 100644 --- a/Thermo.Active/wwwroot/src/modules/app-footer.vue +++ b/Thermo.Active/wwwroot/src/modules/app-footer.vue @@ -109,7 +109,7 @@ -