From a54ead29a414491ad20c7a219949b79dc91fbe1c Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 08:57:59 +0200 Subject: [PATCH 001/167] Appunti x aree signl-R --- Thermo.Active/Listeners/SignalRStaticObjects.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Thermo.Active/Listeners/SignalRStaticObjects.cs b/Thermo.Active/Listeners/SignalRStaticObjects.cs index 7b6c1ab5..8d68ec4d 100644 --- a/Thermo.Active/Listeners/SignalRStaticObjects.cs +++ b/Thermo.Active/Listeners/SignalRStaticObjects.cs @@ -29,5 +29,8 @@ namespace Thermo.Active.Listeners public static DTOAssistedToolingEndValueModel LastToolingData = new DTOAssistedToolingEndValueModel(); public static bool LastIsNcConnected = false; + + + // aggiugere oggetti nuovi e levare quelli che non servono +... } } \ No newline at end of file From 420718172a88bbbe1ee2c2ad7659e2e40df371e7 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 09:15:12 +0200 Subject: [PATCH 002/167] Eliminazione modello x tool management --- .../ConfigModels/ToolManagerConfigModel.cs | 46 ------------------- 1 file changed, 46 deletions(-) delete mode 100644 Thermo.Active.Model/ConfigModels/ToolManagerConfigModel.cs 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; } - } -} From a754bdedcc79b9c869dc918006b18dcf49f5c7ee Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 09:15:42 +0200 Subject: [PATCH 003/167] Eliminazione xml modello + validatore xsd --- .../Config/toolManagerConfig.xml | 923 ------------------ .../Config/toolManagerConfigValidator.xsd | 175 ---- 2 files changed, 1098 deletions(-) delete mode 100644 Thermo.Active.Config/Config/toolManagerConfig.xml delete mode 100644 Thermo.Active.Config/Config/toolManagerConfigValidator.xsd 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 From c6bf18ebe09a52b37ce025dddb92402df2f7455d Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 09:15:57 +0200 Subject: [PATCH 004/167] Eliminazione NC adapter --- Thermo.Active.NC/NcToolTableAdapter.cs | 911 ------------------------- 1 file changed, 911 deletions(-) delete mode 100644 Thermo.Active.NC/NcToolTableAdapter.cs 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 From 2b52d86402a59d3e0cd4393a36daab8528179c91 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 09:33:29 +0200 Subject: [PATCH 005/167] Eliminazione ToolTableAdapter Siemens da NC --- Thermo.Active.NC/SiemensToolTableAdapter.cs | 272 -------------------- 1 file changed, 272 deletions(-) delete mode 100644 Thermo.Active.NC/SiemensToolTableAdapter.cs 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 From 081acd55906a7976b273888f7f2f58b21ea4e361 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 11:12:53 +0200 Subject: [PATCH 006/167] Eliminazioen da area configurazione --- .../ServerConfigController.cs | 91 ------------------- Thermo.Active.Model/Constants.cs | 3 - 2 files changed, 94 deletions(-) diff --git a/Thermo.Active.Config/ServerConfigController.cs b/Thermo.Active.Config/ServerConfigController.cs index 0db2f861..72b1b09e 100644 --- a/Thermo.Active.Config/ServerConfigController.cs +++ b/Thermo.Active.Config/ServerConfigController.cs @@ -580,97 +580,6 @@ namespace Thermo.Active.Config .ToList(); } - private static void ReadToolManagerConfig() - { - XDocument xmlConfigFile = GetXmlHandlerWithValidator(TOOL_MANAGER_CONFIG_SCHEMA_PATH, TOOL_MANAGER_CONFIG_PATH); - - // Read config from XML file - ToolManagerConfig = 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() - { - 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 - ), - }) - .ToList(); - } - private static void ReadCMSConnectConfig() { diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index c1dc190f..b3b1799d 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -198,9 +198,6 @@ namespace Thermo.Active.Model 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"; From 773f7b91b81aca47bce84ab9326f57344635181f Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 11:13:03 +0200 Subject: [PATCH 007/167] Ancora configurazione ripulita --- .../Controllers/WebApi/ConfigurationController.cs | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/Thermo.Active/Controllers/WebApi/ConfigurationController.cs b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs index 49e93f0c..178f7d96 100644 --- a/Thermo.Active/Controllers/WebApi/ConfigurationController.cs +++ b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs @@ -127,20 +127,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() { From 2df47a59d75277b3bc63a15496213baca42bfbca Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 11:13:18 +0200 Subject: [PATCH 008/167] Eliminazioni da area Threading --- Thermo.Active.Core/ThreadsFunctions.cs | 44 -------------------------- Thermo.Active.Core/ThreadsHandler.cs | 1 - 2 files changed, 45 deletions(-) diff --git a/Thermo.Active.Core/ThreadsFunctions.cs b/Thermo.Active.Core/ThreadsFunctions.cs index 35555f59..20931fd1 100644 --- a/Thermo.Active.Core/ThreadsFunctions.cs +++ b/Thermo.Active.Core/ThreadsFunctions.cs @@ -508,50 +508,6 @@ 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(); - } - } - public static void ReadActiveProgramData() { NcFileAdapter ncAdapter = new NcFileAdapter(); diff --git a/Thermo.Active.Core/ThreadsHandler.cs b/Thermo.Active.Core/ThreadsHandler.cs index 2bea030d..438ebb86 100644 --- a/Thermo.Active.Core/ThreadsHandler.cs +++ b/Thermo.Active.Core/ThreadsHandler.cs @@ -18,7 +18,6 @@ namespace Thermo.Active.Core ThreadsFunctions.ReadEnabledFunctionality, ThreadsFunctions.ReadExpiredMaintenances, ThreadsFunctions.ReadAxesPositionsData, - ThreadsFunctions.ReadMagazinesStatus, ThreadsFunctions.ReadUserSoftKeysData, ThreadsFunctions.ReadHeadsData, ThreadsFunctions.ReadAxesNamesData, From 9aa211a479dd3bde430a7e6ba8b95cf4cf6f4d3e Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 11:13:27 +0200 Subject: [PATCH 009/167] Eliminazioni da area server --- Thermo.Active.Config/ServerConfig.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Thermo.Active.Config/ServerConfig.cs b/Thermo.Active.Config/ServerConfig.cs index 24e5a0fd..c7e1416d 100644 --- a/Thermo.Active.Config/ServerConfig.cs +++ b/Thermo.Active.Config/ServerConfig.cs @@ -32,7 +32,6 @@ namespace Thermo.Active.Config public static List NcSoftKeysConfig; public static List InitialAlarmsConfig; public static List HeadsConfig; - public static ToolManagerConfigModel ToolManagerConfig; public static CmsConnectConfigModel CmsConnectConfig; public static AreasConfigModel ProductionConfig; From f5980378cb6381d0177687e0f4f901830ee2602c Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 11:13:37 +0200 Subject: [PATCH 010/167] Eliminazione da area gestione linguaggi --- .../Controllers/WebApi/LanguageController.cs | 80 ------------------- 1 file changed, 80 deletions(-) diff --git a/Thermo.Active/Controllers/WebApi/LanguageController.cs b/Thermo.Active/Controllers/WebApi/LanguageController.cs index 9ff377aa..a62848b6 100644 --- a/Thermo.Active/Controllers/WebApi/LanguageController.cs +++ b/Thermo.Active/Controllers/WebApi/LanguageController.cs @@ -173,86 +173,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(); From a5876a9d241ceaf042aa2f2cde6fffd9300963f0 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 11:13:55 +0200 Subject: [PATCH 011/167] update generale... --- Thermo.Active.Config/Thermo.Active.Config.csproj | 7 ------- Thermo.Active.Model/Thermo.Active.Model.csproj | 1 - Thermo.Active.NC/Thermo.Active.NC.csproj | 2 -- 3 files changed, 10 deletions(-) diff --git a/Thermo.Active.Config/Thermo.Active.Config.csproj b/Thermo.Active.Config/Thermo.Active.Config.csproj index 62ecc67b..e77793e6 100644 --- a/Thermo.Active.Config/Thermo.Active.Config.csproj +++ b/Thermo.Active.Config/Thermo.Active.Config.csproj @@ -69,10 +69,6 @@ Always - - PreserveNewest - Designer - PreserveNewest Designer @@ -113,9 +109,6 @@ Designer - - Designer - diff --git a/Thermo.Active.Model/Thermo.Active.Model.csproj b/Thermo.Active.Model/Thermo.Active.Model.csproj index b5572c5c..6f088e77 100644 --- a/Thermo.Active.Model/Thermo.Active.Model.csproj +++ b/Thermo.Active.Model/Thermo.Active.Model.csproj @@ -74,7 +74,6 @@ - diff --git a/Thermo.Active.NC/Thermo.Active.NC.csproj b/Thermo.Active.NC/Thermo.Active.NC.csproj index 6403ab16..77bfb046 100644 --- a/Thermo.Active.NC/Thermo.Active.NC.csproj +++ b/Thermo.Active.NC/Thermo.Active.NC.csproj @@ -49,9 +49,7 @@ - - From c587a4699661f7dc9da3ccac7f276ea7808556e5 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 11:24:36 +0200 Subject: [PATCH 012/167] Eliminati controllers da WebApi --- .../WebApi/NcToolManagerController.cs | 1052 ----------------- .../WebApi/SiemensToolManagerController.cs | 449 ------- 2 files changed, 1501 deletions(-) delete mode 100644 Thermo.Active/Controllers/WebApi/NcToolManagerController.cs delete mode 100644 Thermo.Active/Controllers/WebApi/SiemensToolManagerController.cs 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/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 From a7894af25a38202ad27327eaaccf24c6b048acb9 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 11:27:49 +0200 Subject: [PATCH 013/167] fix area SignalR --- .../Listeners/Database/SignalRDatabaseHandler.cs | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/Thermo.Active/Listeners/Database/SignalRDatabaseHandler.cs b/Thermo.Active/Listeners/Database/SignalRDatabaseHandler.cs index 70e6dca6..e4085f01 100644 --- a/Thermo.Active/Listeners/Database/SignalRDatabaseHandler.cs +++ b/Thermo.Active/Listeners/Database/SignalRDatabaseHandler.cs @@ -66,13 +66,6 @@ namespace Thermo.Active.Listeners.Database // 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(); @@ -279,14 +272,6 @@ namespace Thermo.Active.Listeners.Database break; } - using (NcToolTableAdapter ncAdapter = new NcToolTableAdapter()) - { - ncAdapter.Connect(); - // Close procedure - ncAdapter.TerminateAssistedProcedure(assToolingData.MagazineId, - assToolingData.Action != ASSISTED_TOOLING_ACTION.NONE - ); - } } } } From 91855d102107f4f10a68f4ccc25aed38569bee47 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 11:27:59 +0200 Subject: [PATCH 014/167] Fix area traduzioni --- .../Controllers/WebApi/LanguageController.cs | 13 ------------- Thermo.Active/Thermo.Active.csproj | 2 -- 2 files changed, 15 deletions(-) diff --git a/Thermo.Active/Controllers/WebApi/LanguageController.cs b/Thermo.Active/Controllers/WebApi/LanguageController.cs index a62848b6..3cfebb08 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); diff --git a/Thermo.Active/Thermo.Active.csproj b/Thermo.Active/Thermo.Active.csproj index 58781720..202aa333 100644 --- a/Thermo.Active/Thermo.Active.csproj +++ b/Thermo.Active/Thermo.Active.csproj @@ -225,10 +225,8 @@ - - From 74d72d6d3ffc3a400bf9662a630832bfaf31cad8 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 11:30:37 +0200 Subject: [PATCH 015/167] Completo pulizia da thread costanti e server --- .../ServerConfigController.cs | 1 - Thermo.Active.Core/ThreadsFunctions.cs | 115 ------------------ Thermo.Active.Core/ThreadsHandler.cs | 2 - Thermo.Active.Model/Constants.cs | 2 - 4 files changed, 120 deletions(-) diff --git a/Thermo.Active.Config/ServerConfigController.cs b/Thermo.Active.Config/ServerConfigController.cs index 72b1b09e..7d191cd7 100644 --- a/Thermo.Active.Config/ServerConfigController.cs +++ b/Thermo.Active.Config/ServerConfigController.cs @@ -33,7 +33,6 @@ namespace Thermo.Active.Config ReadUserSoftKeysConfig(); ReadAlarmsConfig(); ReadHeadsConfig(); - ReadToolManagerConfig(); // ReadCMSConnectConfig(); ReadMacros(); ReadScadaFile(); diff --git a/Thermo.Active.Core/ThreadsFunctions.cs b/Thermo.Active.Core/ThreadsFunctions.cs index 20931fd1..0b25e8d5 100644 --- a/Thermo.Active.Core/ThreadsFunctions.cs +++ b/Thermo.Active.Core/ThreadsFunctions.cs @@ -553,108 +553,6 @@ public static class ThreadsFunctions } } - 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(); - } - } - } - public static void ReadPartProgramQueueData() { NcFileAdapter ncAdapter = new NcFileAdapter(); @@ -1018,19 +916,6 @@ public static class ThreadsFunctions 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) diff --git a/Thermo.Active.Core/ThreadsHandler.cs b/Thermo.Active.Core/ThreadsHandler.cs index 438ebb86..490c24b5 100644 --- a/Thermo.Active.Core/ThreadsHandler.cs +++ b/Thermo.Active.Core/ThreadsHandler.cs @@ -22,8 +22,6 @@ namespace Thermo.Active.Core ThreadsFunctions.ReadHeadsData, ThreadsFunctions.ReadAxesNamesData, ThreadsFunctions.ReadActiveProgramData, - ThreadsFunctions.UpdateToolsData, - ThreadsFunctions.ReadNcMagazineActive, //ThreadsFunctions.ReadPartProgramQueueData, ThreadsFunctions.ReadScadaData, ThreadsFunctions.ReadM154Data diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index b3b1799d..c19d1b3b 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -240,8 +240,6 @@ namespace Thermo.Active.Model 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"; From 98be96cc9a1a8ee66e1d432bef25214f65b2947d Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 11:32:12 +0200 Subject: [PATCH 016/167] Compila post pulizia tools!!! --- Thermo.Active.Model/Constants.cs | 1 - Thermo.Active/Listeners/ListenersHandler.cs | 13 +------------ 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index c19d1b3b..a652a184 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -243,7 +243,6 @@ namespace Thermo.Active.Model 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"; public const string BROADCAST_DATA = "BROADCAST_DATA"; diff --git a/Thermo.Active/Listeners/ListenersHandler.cs b/Thermo.Active/Listeners/ListenersHandler.cs index 0b86959b..5681f4cf 100644 --- a/Thermo.Active/Listeners/ListenersHandler.cs +++ b/Thermo.Active/Listeners/ListenersHandler.cs @@ -77,10 +77,6 @@ namespace Thermo.Active.Listeners { 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) => { @@ -101,14 +97,7 @@ namespace Thermo.Active.Listeners })); //////////////////////////// Database - infos.Add(MessageServices.Current.Subscribe(UPDATE_TOOLS_DATA, (a, b) => - { - SignalRDatabaseHandler.UpdateToolsData(a); - })); - infos.Add(MessageServices.Current.Subscribe(ASSISTED_TOOLING_DATA, (a, b) => - { - SignalRDatabaseHandler.ManageAssistedToolingProcedure(a); - })); + ///// erano tooling... // Broadcast infos.Add(MessageServices.Current.Subscribe(BROADCAST_DATA, (a, b) => From 07b470515c33c50651f96d2d4273f13d925f3f96 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 15:32:20 +0200 Subject: [PATCH 017/167] Rimozione NcToolManagerController x DB --- .../Controllers/NcToolManagerController.cs | 685 ------------------ 1 file changed, 685 deletions(-) delete mode 100644 Thermo.Active.Database/Controllers/NcToolManagerController.cs 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 From a26a20e1fc50abe3fb8808993105893ee39d9cd3 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 15:32:30 +0200 Subject: [PATCH 018/167] Ancora pulizia parti rimosse tooling --- .../Thermo.Active.Database.csproj | 1 - .../DTOModels/DTOStartupConfigurationModel.cs | 1 - .../Database/SignalRDatabaseHandler.cs | 107 ------------------ 3 files changed, 109 deletions(-) diff --git a/Thermo.Active.Database/Thermo.Active.Database.csproj b/Thermo.Active.Database/Thermo.Active.Database.csproj index 8bb4ffd8..5b8a67ae 100644 --- a/Thermo.Active.Database/Thermo.Active.Database.csproj +++ b/Thermo.Active.Database/Thermo.Active.Database.csproj @@ -115,7 +115,6 @@ - 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/Listeners/Database/SignalRDatabaseHandler.cs b/Thermo.Active/Listeners/Database/SignalRDatabaseHandler.cs index e4085f01..dd5c26c6 100644 --- a/Thermo.Active/Listeners/Database/SignalRDatabaseHandler.cs +++ b/Thermo.Active/Listeners/Database/SignalRDatabaseHandler.cs @@ -14,64 +14,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); - - // 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) { @@ -227,54 +169,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; - } - - } - } - } - } } } \ No newline at end of file From c8a947dc0e8f34ba3bf8848775b9f52970b85cc8 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 15:33:54 +0200 Subject: [PATCH 019/167] Altra pulizia aprti eliminate (compila...) --- .../WebApi/ConfigurationController.cs | 1 - .../Listeners/SignalR/SignalRListener.cs | 31 ------------------- 2 files changed, 32 deletions(-) diff --git a/Thermo.Active/Controllers/WebApi/ConfigurationController.cs b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs index 178f7d96..b43b9117 100644 --- a/Thermo.Active/Controllers/WebApi/ConfigurationController.cs +++ b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs @@ -24,7 +24,6 @@ namespace Thermo.Active.Controllers.WebApi ScadaConfig = ScadaConfig, MaintenanceConfig = MaintenanceConfig, ReportConfig = ReportConfig, - ToolingConfig = ToolingConfig, UtilitiesConfig = UtilitiesConfig, JobEditorConfig = JobEditorConfig, UsersConfig = UsersConfig diff --git a/Thermo.Active/Listeners/SignalR/SignalRListener.cs b/Thermo.Active/Listeners/SignalR/SignalRListener.cs index 1c18362f..127d18e7 100644 --- a/Thermo.Active/Listeners/SignalR/SignalRListener.cs +++ b/Thermo.Active/Listeners/SignalR/SignalRListener.cs @@ -164,37 +164,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); } From e12be1097e735e1420932e22737668484e74dd71 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 16:26:44 +0200 Subject: [PATCH 020/167] Eliminazione altri oggetti primitivi --- .../ConfigModels/MagazineNamesModel.cs | 17 ---- .../ConfigModels/ToolTypeConfigModel.cs | 17 ---- .../DatabaseModels/NcToolModel.cs | 91 ------------------- 3 files changed, 125 deletions(-) delete mode 100644 Thermo.Active.Model/ConfigModels/MagazineNamesModel.cs delete mode 100644 Thermo.Active.Model/ConfigModels/ToolTypeConfigModel.cs delete mode 100644 Thermo.Active.Model/DatabaseModels/NcToolModel.cs 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/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/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 From d1b4c5bfacdb3044555f83a4808828319efa51a8 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 16:27:06 +0200 Subject: [PATCH 021/167] pulizia codice vario da oggetti tools rimossi --- Thermo.Active.Config/Config/areasConfig.xml | 5 -- .../Config/areasConfigValidator.xsd | 10 ---- Thermo.Active.Config/ServerConfig.cs | 1 - .../ServerConfigController.cs | 7 --- Thermo.Active.Core/ThreadsFunctions.cs | 5 -- Thermo.Active.Model/Constants.cs | 9 ++-- Thermo.Active.Model/DTOModels/DTOHeadModel.cs | 53 ------------------- .../JobModels/DTOMetadataFieldsModel.cs | 1 - .../DatabaseModels/NcFamilyModel.cs | 8 --- .../DatabaseModels/NcShankModel.cs | 5 -- .../Thermo.Active.Model.csproj | 3 -- .../Database/SignalRDatabaseHandler.cs | 1 - .../Listeners/SignalR/SignalRListener.cs | 1 - .../Listeners/SignalRStaticObjects.cs | 5 +- 14 files changed, 5 insertions(+), 109 deletions(-) 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/ServerConfig.cs b/Thermo.Active.Config/ServerConfig.cs index c7e1416d..139f5caf 100644 --- a/Thermo.Active.Config/ServerConfig.cs +++ b/Thermo.Active.Config/ServerConfig.cs @@ -35,7 +35,6 @@ namespace Thermo.Active.Config 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 7d191cd7..cea82bdd 100644 --- a/Thermo.Active.Config/ServerConfigController.cs +++ b/Thermo.Active.Config/ServerConfigController.cs @@ -112,10 +112,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; @@ -180,9 +176,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; diff --git a/Thermo.Active.Core/ThreadsFunctions.cs b/Thermo.Active.Core/ThreadsFunctions.cs index 0b25e8d5..9ff2113c 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; @@ -907,9 +906,6 @@ public static class ThreadsFunctions 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()); @@ -963,7 +959,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; diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index a652a184..b3c8bd98 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -148,7 +148,6 @@ namespace Thermo.Active.Model 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,6 +157,8 @@ 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 = "tooling"; + public const string RISC_KEY = "risc"; } // Config File Names @@ -265,18 +266,16 @@ 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"; diff --git a/Thermo.Active.Model/DTOModels/DTOHeadModel.cs b/Thermo.Active.Model/DTOModels/DTOHeadModel.cs index 44591fc0..cd7d30c3 100644 --- a/Thermo.Active.Model/DTOModels/DTOHeadModel.cs +++ b/Thermo.Active.Model/DTOModels/DTOHeadModel.cs @@ -57,58 +57,6 @@ 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; @@ -117,7 +65,6 @@ namespace Thermo.Active.Model.DTOModels public bool Configured; public ROTATION Rotation; public bool FixedHead; - public DTOToolInSpindleModel ToolData; public override bool Equals(object obj) { diff --git a/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataFieldsModel.cs b/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataFieldsModel.cs index add26fd4..df8f7d6f 100644 --- a/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataFieldsModel.cs +++ b/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataFieldsModel.cs @@ -7,7 +7,6 @@ namespace Thermo.Active.Model.DTOModels.JobModels { public string Description; public TimeSpan ExecutionTime; - public List Tools; public List Customs; public DTOMetadataFieldsModel() 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/NcShankModel.cs b/Thermo.Active.Model/DatabaseModels/NcShankModel.cs index 36b44a60..b305dd7c 100644 --- a/Thermo.Active.Model/DatabaseModels/NcShankModel.cs +++ b/Thermo.Active.Model/DatabaseModels/NcShankModel.cs @@ -39,11 +39,6 @@ namespace Thermo.Active.Model.DatabaseModels [IgnoreDataMember] public DbNcMagazinePositionModel MagazinePosition { get; set; } - - [JsonIgnore] - [IgnoreDataMember] - public List Tools { get; set; } - public static explicit operator NcShankModel(DbNcShankModel obj) { return new NcShankModel() diff --git a/Thermo.Active.Model/Thermo.Active.Model.csproj b/Thermo.Active.Model/Thermo.Active.Model.csproj index 6f088e77..5aff1373 100644 --- a/Thermo.Active.Model/Thermo.Active.Model.csproj +++ b/Thermo.Active.Model/Thermo.Active.Model.csproj @@ -67,14 +67,12 @@ - - @@ -92,7 +90,6 @@ - diff --git a/Thermo.Active/Listeners/Database/SignalRDatabaseHandler.cs b/Thermo.Active/Listeners/Database/SignalRDatabaseHandler.cs index dd5c26c6..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; diff --git a/Thermo.Active/Listeners/SignalR/SignalRListener.cs b/Thermo.Active/Listeners/SignalR/SignalRListener.cs index 127d18e7..ff46e93f 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; diff --git a/Thermo.Active/Listeners/SignalRStaticObjects.cs b/Thermo.Active/Listeners/SignalRStaticObjects.cs index 8d68ec4d..9edb263d 100644 --- a/Thermo.Active/Listeners/SignalRStaticObjects.cs +++ b/Thermo.Active/Listeners/SignalRStaticObjects.cs @@ -1,7 +1,6 @@ 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; namespace Thermo.Active.Listeners @@ -20,13 +19,11 @@ 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(); + public static List LastScadaData = new List(); public static bool LastIsNcConnected = false; From 7eee699af793d8d8718f8f9a1fc65816b28e079c Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 16:28:29 +0200 Subject: [PATCH 022/167] Eliminazione altri oggetti TOOL in DTO --- .../ToolModels/DTOAssistedToolingModel.cs | 58 ----- .../DTOModels/ToolModels/DTOEdgeModel.cs | 30 --- .../ToolModels/DTOExportToolTableModel.cs | 31 --- .../ToolModels/DTOMagazineStatusModel.cs | 46 ---- .../DTOModels/ToolModels/DTONcFamilyModel.cs | 242 ------------------ .../ToolModels/DTONcMagazinePositionModel.cs | 47 ---- .../ToolModels/DTONcMountedShankModel.cs | 15 -- .../DTOModels/ToolModels/DTONcShankModel.cs | 93 ------- .../DTOModels/ToolModels/DTONcToolModel.cs | 209 --------------- .../ToolModels/DTONewToolDataModel.cs | 14 - .../ToolModels/DTONewToolWithFamilyModel.cs | 138 ---------- .../ToolModels/DTOSelfAdaptiveModel.cs | 11 - .../DTOModels/ToolModels/DTOShankModel.cs | 69 ----- .../ToolModels/DTOSiemensToolModel.cs | 128 --------- .../ToolModels/DTOUpdateMagazineModel.cs | 16 -- 15 files changed, 1147 deletions(-) delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOAssistedToolingModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOEdgeModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOExportToolTableModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOMagazineStatusModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTONcFamilyModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTONcMagazinePositionModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTONcMountedShankModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTONcShankModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTONcToolModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTONewToolDataModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTONewToolWithFamilyModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOSelfAdaptiveModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOShankModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOSiemensToolModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOUpdateMagazineModel.cs 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 From 3ceddc0ecdd875a10c952299bb09b6ec3c2f24c4 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 16:28:37 +0200 Subject: [PATCH 023/167] Refresh DTO --- .../DTOModels/JobModels/DTOMetadataFieldsModel.cs | 1 - Thermo.Active.Model/Thermo.Active.Model.csproj | 15 --------------- 2 files changed, 16 deletions(-) diff --git a/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataFieldsModel.cs b/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataFieldsModel.cs index df8f7d6f..d185ff58 100644 --- a/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataFieldsModel.cs +++ b/Thermo.Active.Model/DTOModels/JobModels/DTOMetadataFieldsModel.cs @@ -11,7 +11,6 @@ namespace Thermo.Active.Model.DTOModels.JobModels public DTOMetadataFieldsModel() { - Tools = new List(); Customs = new List(); } } diff --git a/Thermo.Active.Model/Thermo.Active.Model.csproj b/Thermo.Active.Model/Thermo.Active.Model.csproj index 5aff1373..8f58bf38 100644 --- a/Thermo.Active.Model/Thermo.Active.Model.csproj +++ b/Thermo.Active.Model/Thermo.Active.Model.csproj @@ -116,10 +116,6 @@ - - - - @@ -140,17 +136,6 @@ - - - - - - - - - - - DtsGenerator From b87ef29ed33e59eef74dc04e18807fb5c67930e4 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 17:00:19 +0200 Subject: [PATCH 024/167] Pulizia di ulteriori riferimenti ai tools, compila! --- Thermo.Active.Database/DatabaseContext.cs | 1 - Thermo.Active.Database/Migrations/Configuration.cs | 4 +++- Thermo.Active.Model/Constants.cs | 2 +- Thermo.Active.Model/DTOModels/DTOHeadModel.cs | 3 --- .../DTOModels/JobModels/DTOMetadataModel.cs | 2 -- Thermo.Active.NC/NcAdapter.cs | 13 +------------ Thermo.Active.Utils/supportFunctions.cs | 2 -- Thermo.Active/Listeners/ListenersHandler.cs | 4 ---- Thermo.Active/Listeners/SignalR/SignalRListener.cs | 13 ------------- 9 files changed, 5 insertions(+), 39 deletions(-) diff --git a/Thermo.Active.Database/DatabaseContext.cs b/Thermo.Active.Database/DatabaseContext.cs index ca40fcc0..f2ca59d6 100644 --- a/Thermo.Active.Database/DatabaseContext.cs +++ b/Thermo.Active.Database/DatabaseContext.cs @@ -35,7 +35,6 @@ namespace Thermo.Active.Database // 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 diff --git a/Thermo.Active.Database/Migrations/Configuration.cs b/Thermo.Active.Database/Migrations/Configuration.cs index a001cdc6..442b8348 100644 --- a/Thermo.Active.Database/Migrations/Configuration.cs +++ b/Thermo.Active.Database/Migrations/Configuration.cs @@ -42,7 +42,9 @@ namespace Thermo.Active.Database.Migrations 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}, +#if false + new FunctionAccessModel() { Name = TOOL_MANAGER, Area = TOOLING_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 8 }, +#endif new FunctionAccessModel() { Name = MAINTENANCE, Area = MAINTENANCE_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 9}, diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index b3c8bd98..24cde93b 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -239,11 +239,11 @@ 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 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 SEND_RECIPE_STATUS = "SEND_RECIPE_STATUS"; public const string BROADCAST_DATA = "BROADCAST_DATA"; diff --git a/Thermo.Active.Model/DTOModels/DTOHeadModel.cs b/Thermo.Active.Model/DTOModels/DTOHeadModel.cs index cd7d30c3..37c106ab 100644 --- a/Thermo.Active.Model/DTOModels/DTOHeadModel.cs +++ b/Thermo.Active.Model/DTOModels/DTOHeadModel.cs @@ -88,9 +88,6 @@ namespace Thermo.Active.Model.DTOModels 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/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.NC/NcAdapter.cs b/Thermo.Active.NC/NcAdapter.cs index b0654fa0..c175459d 100644 --- a/Thermo.Active.NC/NcAdapter.cs +++ b/Thermo.Active.NC/NcAdapter.cs @@ -877,18 +877,7 @@ namespace Thermo.Active.NC 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; diff --git a/Thermo.Active.Utils/supportFunctions.cs b/Thermo.Active.Utils/supportFunctions.cs index bf12feed..f8762885 100644 --- a/Thermo.Active.Utils/supportFunctions.cs +++ b/Thermo.Active.Utils/supportFunctions.cs @@ -249,7 +249,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; } } @@ -349,7 +348,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; } } diff --git a/Thermo.Active/Listeners/ListenersHandler.cs b/Thermo.Active/Listeners/ListenersHandler.cs index 5681f4cf..5a440f41 100644 --- a/Thermo.Active/Listeners/ListenersHandler.cs +++ b/Thermo.Active/Listeners/ListenersHandler.cs @@ -69,10 +69,6 @@ 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); diff --git a/Thermo.Active/Listeners/SignalR/SignalRListener.cs b/Thermo.Active/Listeners/SignalR/SignalRListener.cs index ff46e93f..f98376b0 100644 --- a/Thermo.Active/Listeners/SignalR/SignalRListener.cs +++ b/Thermo.Active/Listeners/SignalR/SignalRListener.cs @@ -182,17 +182,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(); @@ -311,8 +300,6 @@ namespace Thermo.Active.Listeners.SignalR context.Clients.Group("ncData").headsData(LastHeadsData); // Send axesNames data context.Clients.Group("ncData").axesNames(LastAxesNamesData); - // Send magazine status - context.Clients.Group("ncData").magazinesStatus(LastMagazineStatus); // Send positions context.Clients.Group("ncData").axesPositions(LastAxesPositions); // Send active program data From fbcf1b9fb30b607f6afca18ac485e3d821da66df Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 17:35:40 +0200 Subject: [PATCH 025/167] Eliminato ancora ultimi riferimenti, compilazione OK!!! --- .../Config/userSoftKeyConfig.xml | 24 +++++++++---------- Thermo.Active.Model/DTOModels/DTOHeadModel.cs | 4 ---- Thermo.Active.NC/NcAdapter.cs | 24 ------------------- 3 files changed, 12 insertions(+), 40 deletions(-) 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.Model/DTOModels/DTOHeadModel.cs b/Thermo.Active.Model/DTOModels/DTOHeadModel.cs index 37c106ab..8ac417f3 100644 --- a/Thermo.Active.Model/DTOModels/DTOHeadModel.cs +++ b/Thermo.Active.Model/DTOModels/DTOHeadModel.cs @@ -61,7 +61,6 @@ namespace Thermo.Active.Model.DTOModels { public int ActualSpeed; public short Load; - public ushort MountedTool; public bool Configured; public ROTATION Rotation; public bool FixedHead; @@ -79,9 +78,6 @@ namespace Thermo.Active.Model.DTOModels if (Load != item.Load) return false; - if (MountedTool != item.MountedTool) - return false; - if (Configured != item.Configured) return false; diff --git a/Thermo.Active.NC/NcAdapter.cs b/Thermo.Active.NC/NcAdapter.cs index c175459d..474b973e 100644 --- a/Thermo.Active.NC/NcAdapter.cs +++ b/Thermo.Active.NC/NcAdapter.cs @@ -870,7 +870,6 @@ namespace Thermo.Active.NC OverrideEditable = head.OverrideEditable, ActualSpeed = head.ActualSpeed_Pressure, Load = head.Load_Abrasive, - MountedTool = (ushort)head.MountedTool_Vacum, Override = head.Override, IsActive = head.IsActive, IsSelected = head.IsSelected, @@ -882,29 +881,6 @@ namespace Thermo.Active.NC } break; - case HEAD_TYPE.AWJ: - { - float vacumValue = (float)head.MountedTool_Vacum / 100; - heads.Add(new DTOAbrasiveWaterJet() - { - Id = head.Id, - Process = head.Process, - Type = configuredHead.Type.ToString(), - FixedHead = configuredHead.FixedHead, - inWarning = vacumValue >= configuredHead.WarningLimit, - inAlarm = vacumValue >= configuredHead.AlarmLimit, - OverrideEditable = head.OverrideEditable, - ActualPressure = head.ActualSpeed_Pressure, - Abrasive = Convert.ToUInt16(head.Load_Abrasive), - Vacum = vacumValue, - Override = head.Override, - IsActive = head.IsActive, - IsSelected = head.IsSelected, - AbrasiveIsActive = head.AbrasiveIsActive, - WorkedTime = head.WorkedTime - }); - } - break; case HEAD_TYPE.WJ: { From 8e9dfab29dc0f549aecdd17196cb3cedeadbdea4 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 17:52:52 +0200 Subject: [PATCH 026/167] Merge branch 'feature/removal/toolMan' --- Thermo.Active.Config/Config/areasConfig.xml | 5 - .../Config/areasConfigValidator.xsd | 10 - .../Config/toolManagerConfig.xml | 923 --------------- .../Config/toolManagerConfigValidator.xsd | 175 --- .../Config/userSoftKeyConfig.xml | 24 +- Thermo.Active.Config/ServerConfig.cs | 2 - .../ServerConfigController.cs | 99 -- .../Thermo.Active.Config.csproj | 7 - Thermo.Active.Core/ThreadsFunctions.cs | 164 --- Thermo.Active.Core/ThreadsHandler.cs | 3 - .../Controllers/NcToolManagerController.cs | 685 ----------- Thermo.Active.Database/DatabaseContext.cs | 1 - .../Migrations/Configuration.cs | 4 +- .../Thermo.Active.Database.csproj | 1 - .../ConfigModels/MagazineNamesModel.cs | 17 - .../ConfigModels/ToolManagerConfigModel.cs | 46 - .../ConfigModels/ToolTypeConfigModel.cs | 17 - Thermo.Active.Model/Constants.cs | 17 +- Thermo.Active.Model/DTOModels/DTOHeadModel.cs | 60 - .../DTOModels/DTOStartupConfigurationModel.cs | 1 - .../JobModels/DTOMetadataFieldsModel.cs | 2 - .../DTOModels/JobModels/DTOMetadataModel.cs | 2 - .../ToolModels/DTOAssistedToolingModel.cs | 58 - .../DTOModels/ToolModels/DTOEdgeModel.cs | 30 - .../ToolModels/DTOExportToolTableModel.cs | 31 - .../ToolModels/DTOMagazineStatusModel.cs | 46 - .../DTOModels/ToolModels/DTONcFamilyModel.cs | 242 ---- .../ToolModels/DTONcMagazinePositionModel.cs | 47 - .../ToolModels/DTONcMountedShankModel.cs | 15 - .../DTOModels/ToolModels/DTONcShankModel.cs | 93 -- .../DTOModels/ToolModels/DTONcToolModel.cs | 209 ---- .../ToolModels/DTONewToolDataModel.cs | 14 - .../ToolModels/DTONewToolWithFamilyModel.cs | 138 --- .../ToolModels/DTOSelfAdaptiveModel.cs | 11 - .../DTOModels/ToolModels/DTOShankModel.cs | 69 -- .../ToolModels/DTOSiemensToolModel.cs | 128 -- .../ToolModels/DTOUpdateMagazineModel.cs | 16 - .../DatabaseModels/NcFamilyModel.cs | 8 - .../DatabaseModels/NcShankModel.cs | 5 - .../DatabaseModels/NcToolModel.cs | 91 -- .../Thermo.Active.Model.csproj | 19 - Thermo.Active.NC/NcAdapter.cs | 37 +- Thermo.Active.NC/NcToolTableAdapter.cs | 911 -------------- Thermo.Active.NC/SiemensToolTableAdapter.cs | 272 ----- Thermo.Active.NC/Thermo.Active.NC.csproj | 2 - Thermo.Active.Utils/supportFunctions.cs | 2 - .../WebApi/ConfigurationController.cs | 15 - .../Controllers/WebApi/LanguageController.cs | 93 -- .../WebApi/NcToolManagerController.cs | 1052 ----------------- .../WebApi/SiemensToolManagerController.cs | 449 ------- .../Database/SignalRDatabaseHandler.cs | 123 -- Thermo.Active/Listeners/ListenersHandler.cs | 17 +- .../Listeners/SignalR/SignalRListener.cs | 45 - .../Listeners/SignalRStaticObjects.cs | 8 +- Thermo.Active/Thermo.Active.csproj | 2 - 55 files changed, 26 insertions(+), 6537 deletions(-) delete mode 100644 Thermo.Active.Config/Config/toolManagerConfig.xml delete mode 100644 Thermo.Active.Config/Config/toolManagerConfigValidator.xsd delete mode 100644 Thermo.Active.Database/Controllers/NcToolManagerController.cs delete mode 100644 Thermo.Active.Model/ConfigModels/MagazineNamesModel.cs delete mode 100644 Thermo.Active.Model/ConfigModels/ToolManagerConfigModel.cs delete mode 100644 Thermo.Active.Model/ConfigModels/ToolTypeConfigModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOAssistedToolingModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOEdgeModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOExportToolTableModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOMagazineStatusModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTONcFamilyModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTONcMagazinePositionModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTONcMountedShankModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTONcShankModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTONcToolModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTONewToolDataModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTONewToolWithFamilyModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOSelfAdaptiveModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOShankModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOSiemensToolModel.cs delete mode 100644 Thermo.Active.Model/DTOModels/ToolModels/DTOUpdateMagazineModel.cs delete mode 100644 Thermo.Active.Model/DatabaseModels/NcToolModel.cs delete mode 100644 Thermo.Active.NC/NcToolTableAdapter.cs delete mode 100644 Thermo.Active.NC/SiemensToolTableAdapter.cs delete mode 100644 Thermo.Active/Controllers/WebApi/NcToolManagerController.cs delete mode 100644 Thermo.Active/Controllers/WebApi/SiemensToolManagerController.cs 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/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/ServerConfig.cs b/Thermo.Active.Config/ServerConfig.cs index 24e5a0fd..139f5caf 100644 --- a/Thermo.Active.Config/ServerConfig.cs +++ b/Thermo.Active.Config/ServerConfig.cs @@ -32,11 +32,9 @@ namespace Thermo.Active.Config public static List NcSoftKeysConfig; public static List InitialAlarmsConfig; public static List HeadsConfig; - public static ToolManagerConfigModel ToolManagerConfig; 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..cea82bdd 100644 --- a/Thermo.Active.Config/ServerConfigController.cs +++ b/Thermo.Active.Config/ServerConfigController.cs @@ -33,7 +33,6 @@ namespace Thermo.Active.Config ReadUserSoftKeysConfig(); ReadAlarmsConfig(); ReadHeadsConfig(); - ReadToolManagerConfig(); // ReadCMSConnectConfig(); ReadMacros(); ReadScadaFile(); @@ -113,10 +112,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 +176,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,97 +572,6 @@ namespace Thermo.Active.Config .ToList(); } - private static void ReadToolManagerConfig() - { - XDocument xmlConfigFile = GetXmlHandlerWithValidator(TOOL_MANAGER_CONFIG_SCHEMA_PATH, TOOL_MANAGER_CONFIG_PATH); - - // Read config from XML file - ToolManagerConfig = 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() - { - 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 - ), - }) - .ToList(); - } - private static void ReadCMSConnectConfig() { diff --git a/Thermo.Active.Config/Thermo.Active.Config.csproj b/Thermo.Active.Config/Thermo.Active.Config.csproj index 62ecc67b..e77793e6 100644 --- a/Thermo.Active.Config/Thermo.Active.Config.csproj +++ b/Thermo.Active.Config/Thermo.Active.Config.csproj @@ -69,10 +69,6 @@ Always - - PreserveNewest - Designer - PreserveNewest Designer @@ -113,9 +109,6 @@ Designer - - Designer - diff --git a/Thermo.Active.Core/ThreadsFunctions.cs b/Thermo.Active.Core/ThreadsFunctions.cs index 35555f59..9ff2113c 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; @@ -508,50 +507,6 @@ 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(); - } - } - public static void ReadActiveProgramData() { NcFileAdapter ncAdapter = new NcFileAdapter(); @@ -597,108 +552,6 @@ public static class ThreadsFunctions } } - 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(); - } - } - } - public static void ReadPartProgramQueueData() { NcFileAdapter ncAdapter = new NcFileAdapter(); @@ -1053,28 +906,12 @@ public static class ThreadsFunctions 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 +959,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; diff --git a/Thermo.Active.Core/ThreadsHandler.cs b/Thermo.Active.Core/ThreadsHandler.cs index 2bea030d..490c24b5 100644 --- a/Thermo.Active.Core/ThreadsHandler.cs +++ b/Thermo.Active.Core/ThreadsHandler.cs @@ -18,13 +18,10 @@ namespace Thermo.Active.Core ThreadsFunctions.ReadEnabledFunctionality, ThreadsFunctions.ReadExpiredMaintenances, ThreadsFunctions.ReadAxesPositionsData, - ThreadsFunctions.ReadMagazinesStatus, ThreadsFunctions.ReadUserSoftKeysData, ThreadsFunctions.ReadHeadsData, ThreadsFunctions.ReadAxesNamesData, ThreadsFunctions.ReadActiveProgramData, - ThreadsFunctions.UpdateToolsData, - ThreadsFunctions.ReadNcMagazineActive, //ThreadsFunctions.ReadPartProgramQueueData, ThreadsFunctions.ReadScadaData, ThreadsFunctions.ReadM154Data 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..f2ca59d6 100644 --- a/Thermo.Active.Database/DatabaseContext.cs +++ b/Thermo.Active.Database/DatabaseContext.cs @@ -35,7 +35,6 @@ namespace Thermo.Active.Database // 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 diff --git a/Thermo.Active.Database/Migrations/Configuration.cs b/Thermo.Active.Database/Migrations/Configuration.cs index a001cdc6..442b8348 100644 --- a/Thermo.Active.Database/Migrations/Configuration.cs +++ b/Thermo.Active.Database/Migrations/Configuration.cs @@ -42,7 +42,9 @@ namespace Thermo.Active.Database.Migrations 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}, +#if false + new FunctionAccessModel() { Name = TOOL_MANAGER, Area = TOOLING_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 8 }, +#endif new FunctionAccessModel() { Name = MAINTENANCE, Area = MAINTENANCE_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 9}, diff --git a/Thermo.Active.Database/Thermo.Active.Database.csproj b/Thermo.Active.Database/Thermo.Active.Database.csproj index 8bb4ffd8..5b8a67ae 100644 --- a/Thermo.Active.Database/Thermo.Active.Database.csproj +++ b/Thermo.Active.Database/Thermo.Active.Database.csproj @@ -115,7 +115,6 @@ - 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/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..24cde93b 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -148,7 +148,6 @@ namespace Thermo.Active.Model 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,6 +157,8 @@ 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 = "tooling"; + public const string RISC_KEY = "risc"; } // Config File Names @@ -198,9 +199,6 @@ namespace Thermo.Active.Model 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 +239,11 @@ 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"; + public const string SEND_RECIPE_STATUS = "SEND_RECIPE_STATUS"; public const string BROADCAST_DATA = "BROADCAST_DATA"; @@ -271,18 +266,16 @@ 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"; 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/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/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/NcShankModel.cs b/Thermo.Active.Model/DatabaseModels/NcShankModel.cs index 36b44a60..b305dd7c 100644 --- a/Thermo.Active.Model/DatabaseModels/NcShankModel.cs +++ b/Thermo.Active.Model/DatabaseModels/NcShankModel.cs @@ -39,11 +39,6 @@ namespace Thermo.Active.Model.DatabaseModels [IgnoreDataMember] public DbNcMagazinePositionModel MagazinePosition { get; set; } - - [JsonIgnore] - [IgnoreDataMember] - public List Tools { get; set; } - public static explicit operator NcShankModel(DbNcShankModel obj) { return new NcShankModel() 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/Thermo.Active.Model.csproj b/Thermo.Active.Model/Thermo.Active.Model.csproj index b5572c5c..8f58bf38 100644 --- a/Thermo.Active.Model/Thermo.Active.Model.csproj +++ b/Thermo.Active.Model/Thermo.Active.Model.csproj @@ -67,15 +67,12 @@ - - - @@ -93,7 +90,6 @@ - @@ -120,10 +116,6 @@ - - - - @@ -144,17 +136,6 @@ - - - - - - - - - - - DtsGenerator diff --git a/Thermo.Active.NC/NcAdapter.cs b/Thermo.Active.NC/NcAdapter.cs index b0654fa0..474b973e 100644 --- a/Thermo.Active.NC/NcAdapter.cs +++ b/Thermo.Active.NC/NcAdapter.cs @@ -870,53 +870,18 @@ namespace Thermo.Active.NC OverrideEditable = head.OverrideEditable, ActualSpeed = head.ActualSpeed_Pressure, Load = head.Load_Abrasive, - MountedTool = (ushort)head.MountedTool_Vacum, 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 - } - }); - } - break; - - case HEAD_TYPE.AWJ: - { - float vacumValue = (float)head.MountedTool_Vacum / 100; - heads.Add(new DTOAbrasiveWaterJet() - { - Id = head.Id, - Process = head.Process, - Type = configuredHead.Type.ToString(), - FixedHead = configuredHead.FixedHead, - inWarning = vacumValue >= configuredHead.WarningLimit, - inAlarm = vacumValue >= configuredHead.AlarmLimit, - OverrideEditable = head.OverrideEditable, - ActualPressure = head.ActualSpeed_Pressure, - Abrasive = Convert.ToUInt16(head.Load_Abrasive), - Vacum = vacumValue, - Override = head.Override, - IsActive = head.IsActive, - IsSelected = head.IsSelected, - AbrasiveIsActive = head.AbrasiveIsActive, WorkedTime = head.WorkedTime }); } break; + case HEAD_TYPE.WJ: { heads.Add(new DTOWaterJet() 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/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..77bfb046 100644 --- a/Thermo.Active.NC/Thermo.Active.NC.csproj +++ b/Thermo.Active.NC/Thermo.Active.NC.csproj @@ -49,9 +49,7 @@ - - diff --git a/Thermo.Active.Utils/supportFunctions.cs b/Thermo.Active.Utils/supportFunctions.cs index bf12feed..f8762885 100644 --- a/Thermo.Active.Utils/supportFunctions.cs +++ b/Thermo.Active.Utils/supportFunctions.cs @@ -249,7 +249,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; } } @@ -349,7 +348,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; } } diff --git a/Thermo.Active/Controllers/WebApi/ConfigurationController.cs b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs index 49e93f0c..b43b9117 100644 --- a/Thermo.Active/Controllers/WebApi/ConfigurationController.cs +++ b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs @@ -24,7 +24,6 @@ namespace Thermo.Active.Controllers.WebApi ScadaConfig = ScadaConfig, MaintenanceConfig = MaintenanceConfig, ReportConfig = ReportConfig, - ToolingConfig = ToolingConfig, UtilitiesConfig = UtilitiesConfig, JobEditorConfig = JobEditorConfig, UsersConfig = UsersConfig @@ -127,20 +126,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..3cfebb08 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); @@ -173,86 +160,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/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..5a440f41 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) => { @@ -101,14 +93,7 @@ namespace Thermo.Active.Listeners })); //////////////////////////// Database - infos.Add(MessageServices.Current.Subscribe(UPDATE_TOOLS_DATA, (a, b) => - { - SignalRDatabaseHandler.UpdateToolsData(a); - })); - infos.Add(MessageServices.Current.Subscribe(ASSISTED_TOOLING_DATA, (a, b) => - { - SignalRDatabaseHandler.ManageAssistedToolingProcedure(a); - })); + ///// erano tooling... // Broadcast infos.Add(MessageServices.Current.Subscribe(BROADCAST_DATA, (a, b) => diff --git a/Thermo.Active/Listeners/SignalR/SignalRListener.cs b/Thermo.Active/Listeners/SignalR/SignalRListener.cs index 1c18362f..f98376b0 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; @@ -164,37 +163,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 +182,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(); @@ -343,8 +300,6 @@ namespace Thermo.Active.Listeners.SignalR context.Clients.Group("ncData").headsData(LastHeadsData); // Send axesNames data context.Clients.Group("ncData").axesNames(LastAxesNamesData); - // Send magazine status - context.Clients.Group("ncData").magazinesStatus(LastMagazineStatus); // Send positions context.Clients.Group("ncData").axesPositions(LastAxesPositions); // Send active program data diff --git a/Thermo.Active/Listeners/SignalRStaticObjects.cs b/Thermo.Active/Listeners/SignalRStaticObjects.cs index 7b6c1ab5..9edb263d 100644 --- a/Thermo.Active/Listeners/SignalRStaticObjects.cs +++ b/Thermo.Active/Listeners/SignalRStaticObjects.cs @@ -1,7 +1,6 @@ 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; namespace Thermo.Active.Listeners @@ -20,14 +19,15 @@ 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(); + public static List LastScadaData = new List(); public static bool LastIsNcConnected = false; + + + // aggiugere oggetti nuovi e levare quelli che non servono +... } } \ No newline at end of file diff --git a/Thermo.Active/Thermo.Active.csproj b/Thermo.Active/Thermo.Active.csproj index 58781720..202aa333 100644 --- a/Thermo.Active/Thermo.Active.csproj +++ b/Thermo.Active/Thermo.Active.csproj @@ -225,10 +225,8 @@ - - From 6f80c793d791d6f307f3a0f65ffeb119442ad5b2 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 22 Apr 2020 18:06:31 +0200 Subject: [PATCH 027/167] Fix costanti e altri models inutilizzati --- Thermo.Active.Model/Constants.cs | 2 +- Thermo.Active.Model/DTOModels/DTOProcessDataModel.cs.d.ts | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 Thermo.Active.Model/DTOModels/DTOProcessDataModel.cs.d.ts diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index 24cde93b..85c97e5f 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -157,7 +157,7 @@ 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 = "tooling"; + public const string THERMO_KEY = "thermo"; public const string RISC_KEY = "risc"; } 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 { - } -} From 09e079f6f9346cfc5b87c7487d0832fae453a156 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 24 Apr 2020 10:34:51 +0200 Subject: [PATCH 028/167] Fix namespace definitio (Step --> Thermo.Active) --- .../Properties/AssemblyInfo.cs | 6 +++--- Thermo.Active.Core/Properties/AssemblyInfo.cs | 4 ++-- Thermo.Active.Database/Migrations/Configuration.cs | 2 +- Thermo.Active.Database/Properties/AssemblyInfo.cs | 4 ++-- Thermo.Active.Model/Constants.cs | 5 +++-- Thermo.Active.Model/Properties/AssemblyInfo.cs | 4 ++-- Thermo.Active/Properties/AssemblyInfo.cs | 10 +++++----- 7 files changed, 18 insertions(+), 17 deletions(-) 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.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.Database/Migrations/Configuration.cs b/Thermo.Active.Database/Migrations/Configuration.cs index 442b8348..0e93d0c3 100644 --- a/Thermo.Active.Database/Migrations/Configuration.cs +++ b/Thermo.Active.Database/Migrations/Configuration.cs @@ -12,7 +12,7 @@ namespace Thermo.Active.Database.Migrations { AutomaticMigrationsEnabled = true; AutomaticMigrationDataLossAllowed = true; - ContextKey = "Step.Database.DatabaseContext"; + ContextKey = "Thermo.Active.Database.DatabaseContext"; } protected override void Seed(DatabaseContext context) 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.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index 85c97e5f..fbdcee85 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -118,6 +118,7 @@ namespace Thermo.Active.Model public const string FANUC = "FANUC"; public const string SIEMENS = "SIEMENS"; public const string OSAI = "OSAI"; + public const string SIEMENS_S7 = "SIEMENS_S7"; } // Database config @@ -144,7 +145,7 @@ 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"; @@ -174,7 +175,7 @@ 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"; 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/Properties/AssemblyInfo.cs b/Thermo.Active/Properties/AssemblyInfo.cs index 831debe7..9981a77b 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.1.1")] From 52621883bdf35104110fc4400e5c4e5342326e14 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 24 Apr 2020 13:16:53 +0200 Subject: [PATCH 029/167] Update ancora x naming... --- Thermo.Active.Config/Properties/AssemblyInfo.cs | 4 ++-- Thermo.Active.Database/DatabaseContext.cs | 6 ++---- Thermo.Active.NC/Properties/AssemblyInfo.cs | 4 ++-- Thermo.Active.Utils/Properties/AssemblyInfo.cs | 4 ++-- 4 files changed, 8 insertions(+), 10 deletions(-) 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.Database/DatabaseContext.cs b/Thermo.Active.Database/DatabaseContext.cs index f2ca59d6..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,8 +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 MagazinePositions { get; set; } public DbSet Queue { get; set; } // Alarms public DbSet AlarmDescriptions { get; set; } @@ -84,7 +82,7 @@ namespace Thermo.Active.Database { // Run migrations and seed. migrator.Update(); - } + } FindOrCreateMachineUniqueId(); 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.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("")] From ca253a54970fc7275d130e9e1f10ec9116641453 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 24 Apr 2020 13:17:42 +0200 Subject: [PATCH 030/167] Eliminazione migrations precedenti --- .../201806130949510_InitMigration.Designer.cs | 29 -- .../201806130949510_InitMigration.cs | 165 -------- .../201806130949510_InitMigration.resx | 126 ------ .../201807120908403_InitMigration.Designer.cs | 29 -- .../201807120908403_InitMigration.cs | 196 --------- .../201807120908403_InitMigration.resx | 126 ------ .../201810100646276_InitMigration.Designer.cs | 29 -- .../201810100646276_InitMigration.cs | 340 ---------------- .../201810100646276_InitMigration.resx | 126 ------ .../201902121508312_InitMigration.Designer.cs | 29 -- .../201902121508312_InitMigration.cs | 384 ------------------ .../201902121508312_InitMigration.resx | 126 ------ .../201903070940012_InitMigrtion.Designer.cs | 29 -- .../201903070940012_InitMigrtion.cs | 18 - .../201903070940012_InitMigrtion.resx | 126 ------ ...04041054202_UserDeleteMigratin.Designer.cs | 29 -- .../201904041054202_UserDeleteMigratin.cs | 18 - .../201904041054202_UserDeleteMigratin.resx | 126 ------ 18 files changed, 2051 deletions(-) delete mode 100644 Thermo.Active.Database/Migrations/201806130949510_InitMigration.Designer.cs delete mode 100644 Thermo.Active.Database/Migrations/201806130949510_InitMigration.cs delete mode 100644 Thermo.Active.Database/Migrations/201806130949510_InitMigration.resx delete mode 100644 Thermo.Active.Database/Migrations/201807120908403_InitMigration.Designer.cs delete mode 100644 Thermo.Active.Database/Migrations/201807120908403_InitMigration.cs delete mode 100644 Thermo.Active.Database/Migrations/201807120908403_InitMigration.resx delete mode 100644 Thermo.Active.Database/Migrations/201810100646276_InitMigration.Designer.cs delete mode 100644 Thermo.Active.Database/Migrations/201810100646276_InitMigration.cs delete mode 100644 Thermo.Active.Database/Migrations/201810100646276_InitMigration.resx delete mode 100644 Thermo.Active.Database/Migrations/201902121508312_InitMigration.Designer.cs delete mode 100644 Thermo.Active.Database/Migrations/201902121508312_InitMigration.cs delete mode 100644 Thermo.Active.Database/Migrations/201902121508312_InitMigration.resx delete mode 100644 Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.Designer.cs delete mode 100644 Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.cs delete mode 100644 Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.resx delete mode 100644 Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.Designer.cs delete mode 100644 Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.cs delete mode 100644 Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.resx 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 - - - H4sIAAAAAAAEAO1d3W7juBW+L9B3EHTZzsbJDBZoA3sXXsfpGh0nwdgz3V4ZjMR4hOrHK1HZBEWfrBd9pL5CSf2S4o9ISbacQTHAIJHIj4eHHw8PD6mT//77P9MfXwLfeoZx4kXhzL66uLQtGDqR64X7mZ2ip+/+ZP/4w+9/N126wYv1pSz3gZTDNcNkZn9F6HA9mSTOVxiA5CLwnDhKoid04UTBBLjR5P3l5Z8nV1cTiCFsjGVZ009piLwAZr/gXxdR6MADSoG/jlzoJ8Vz/GaToVp3IIDJAThwZm8QPFzcAAQeQQJta+57AAuxgf6TbYEwjBBAWMTrzwncoDgK95sDfgD87esB4nJPwCe1MtGv6+K6vbh8T3oxqSuWUE6aoCgwBLz6UKhl0qzeSbl2pTasuCVWMHolvc6UN7Nv09Ah0HPHgUmS6dm2mu1eL/yY1CnUnJWqlJ2PzYUA6J1VF39XsQSTifx7Zy1SH6UxnIUwRTHAJR7SR99z/gpft9E/YDgLU9+nhcfi43fMA/zoIY4OMEavn+CTsEsr17YmLMqkCVOBSBHy3q9C9OG9bd1hwcCjDyveUJraoCiGf4EhjAGC7gNACMZ42FcuzDTPydJomfxftoaJiqebba3By0cY7tHXmY1/tK1b7wW65ZNCgs+hh2cnroTiFLY18rfYQ/AjfIb+2gvb+qaG+gSBOwzSPIbg6D1fhkSiajx/iiIfgtBY1gffaScFDTGd1BNPOR3XwPnqhbDHPKQRRpqAhQhdZh5V9VRTrtD1kZmHC/+aUv0aqCFTYuH1L+5PrgplXIIRMXqQrKx+MqLpcruFSVpit5htbPeMMe7As7fPNCHumG19gn72PvnqHXLni2PMrip8G0cBkYPnZllmt4nS2CHrYdRScAviPUT6EhM4PXHzkgpZyeN2QbNSplKS6npS5iUVUpKf2qXMSomk1DYzBLiHfamqj2RYynlhalH05tMbcxMzv+4oXk7PVWjs5afrunPqBYe0Fw7DFMP15daLE3QakoITNfQAkuS3KB7ageMb2kAnxRu01w0CweHore18EO5TsB9agQaOqRciGILQ6bfrYVFGc0wrMbo5pkz1U9kJ3AKMn0Fl628irI1W5tzgrb+feXJFLdz21gvMjQWpXrEvc2/mq7vt8m5+t1jutn9/WBojLqKUdKmvl7z1kH98w3IDEyf2Dnl87/i7UHT/tIYgweyX6vzz3Wq7u7/drZfzzedPy1ZtxzCjISFAbzIQe758OXixArLD/mgAl5s1MAKXW1BA4HKLSvVyuSnIuwgNZEQrpJEMaRfredK9PEyS4RdNsxWh/zRoWqJqhplOYkVooJK/bVpVlNsxlYQzTFhWNdnEFQbckAtaUlgItpCe4P0txQOMn6I4gO4wPpcUbiSbIZKnix2R4ZzKtgyyjhYu0Bfgp7CfF2SkhaHsgpRbMuOgVYGbaHq1ek26DV4pcN96zDMaYaSpVYjQZTZRVU81gbK+nmBpNjhFMAylSxcamgs7pnA9FWRlOPZLC5oRPg1ob5Tbu62SWx/s60sWWlNggXuNQIiSPzYBh5gBeKBdGPuvmBj0sLFjtIbBI4zLg+NfHnY38y3uTmZRZ/YlN6ZM+fV88fPqbrkjsn/6Mv9Y1btS19uu1oJK7/mhyJWuORDchm7AMWlgjzM8QaA7MDe6I/GzTPvcUFcFP+gM0zxJIsfLtCw5mq2OyNhGl6Fr6Z6XUft67tx3jYfAO2Cl48k8s//AdU6jndI+8O0I27iymyvMfXgDfYigNXfya1ELkDjA5Q0lVqHLPsGLEozJOgD8jJAxWaj5FcwLHe8AfM2eNOqb3WogYlYNNt/cwAMMybqlOXa9JakabCiyTW/TCcVMQ8Jmh6TaLGJPTI9EVebAlWqEOqA8e5LSfdDhhfj0sh896cHqJ8MYxMxcI23OsE7SkYjJOFhUI1L0MyQm3QcdUogPTPsRkx6sfjKchJii6LGcM8pQMk3MZhzHhJiqSLQOMS8vLngfqiPBFLKcjGAKpb8lgonjqBo0aAmqCmlHnTh0op46LmtA9aOQUSmdnqemiER2padynAaRaizC6lpFWfj8yBQ9Dwspluf0VlI8CGdvKfUiyzJeGIaZa44ozl70WWkWrjawnuP7mEZdO63pNRrzt2J/pYFkGffao8o13dgzD31+twakDTZl41O6rTcGoZ4BLHfb+A0izeDEzc8ccB2Ea9RB3OKAjDyHL0gQv8YiFiHspDjNaXKO4G4ganzxl+Sf/NlWfdhR8E34oSTHZBa10JcIjo2XauIQxSvAqLnQAkgoIQKiomMtCDJR9GWgrKC4T80lywCP+CYtoJRb2AIssv8icMUS39JCMTdFoKwpbeBQk4Yji+CLG6p429c5zZltcPhQdY7jLWcvDI4aBKi83Wb10UVX+ec+GoriQ94GQe9hVMSEuCnIYnIPr5z8oFlDObwjYRB4HUY5jNtAQQqhOilHeB9UpJzW0J9B8I9RDm2NlLpRRfqOqxvJpT6lmjQCWN1CWBLlFYuFngbVASvN4RlKpxqcUwVXDMMrw6rv2CTUvEHGK69DgKBHiIDqucTPUCjWLB5wPHLKbyXx6tXbeJptPame1a6UQm+t+0zdNUihq/K+VLV3qd5NJ3n6muLBdCLJczNdg8PBC/dU3pviibXJk94svtuYp4QJcoyJkwgyw1TSVi2hKAZ72HhL7pe6MPvKr865s3ADrlhzpybxg8vWxJsxfiBLJ7msR34uqEjnARJu2viNboFyizsakA1zdv2QooAWikWyEgEfxK25ZBaRnwZh/tYTbKPlWPmHjnT9/PNOfYRG6hca6jfyaueTd7uAvNRHZbPA0KAxftMNM88HQ2OB7Ik+QpXshQaB5UN9nCLbC41y8J2deOimkwabuBgJx14u+MROCq0pU+2Jus8VJiJhPknU1WW6pa4ydZ8Wxea4z7yo07PQKGn29DxHOl+Peg93Ha/pPOQKiJZhLwOJPYZezJ+giB6YgYnESYlbYAZTXoFi7CDZq58Vj/IoQXf+1KFCc+Io6poo9dSLZ5EQg4bw80dnM6p9rUIfc9DBDvQ3AHWOi+asNR1dKmcFDfVEHu+MqQJEWD7oAFUnnmA8kOqpPlIjswQNlxSvdkn+Th+USiDBdrV8ejZzg9n09lk4G9H9LgtnG4R8vWOOjrvPm1WV84HBKJ4KTZoMqk4EQUO51VN9pDwTBI2Csif6CFTmBxrGyR8bLuRF/gdGnvyRiXKo7A6sfqgXRo4qncGh4a2iXfS0C8qXBmpjUjgwmive7NzslZkFbCZy4GwhrAoY4xs6a2dgc/JA6SCGpz687GV8FDBSu9HPXS/TJjDOevnQxO2XmsGAinyO4v7Xn2yzhgN3U7a2jkROccC5O0HlB+DmLDXAkjpOku/4u9OXt2KmVov9LF+0RD3nr4aeC2dEuypE351pzK0Ic3Kpq8vd5+pL9u4UKr5NZ0xD/sg46CGyV2XgY6yVkDv1aBapWq9OPxqnHNPixIE5CrFEKf+5I4i8iG1hdT17Ljl+WL9ufs3zKVxkPy58D3e4LrEGofeE7XL+8bH9/cX3jT8dcD5p/CdJ4vqCExvqk+/Wcwq9ZA88bdqzPHhVBgSP6Lc1gYNhDpJ8z5w34EfhPr/1V4Po5GvgzjcoeQ3FaZ5qdEcCVNb7rh2DbFL7xyjyjeUoDzR0e9Itof3/yVhiUCcLJkDd071/G6qn4/pUM9z131XowpeZ/c+s2rVVaJteHN9Z9zFeAK6tq3fWKln4GAHG0L22tljp5FF+IpT/bv3LWNJqAR5IzPfHEbM6lzAQc/XLrqhWSXfZ2nSHDOLfBmWHsBY+nYl7QOP8rZmHOuwv17cWEB307zl0YCCgOuDfD6cZ6e/bPTZ79ODLmGrz/2Z5SoXZ81bcIuOymfLdRgZmEoxAWeTpIYaOl/9Ntktj6fKYe3eflg62d0dBdPLlrvR0+dzKPTw2Nrou7JoOUiOkPujYiaPquk1o6aGDY4M9hqKazGMYxkZI4tlv1k5UkfF+1G2GxM1Gjq2tP4DjUUdkTKroe4/pNkCi3W+Dl0cwXI3wd/d1g4l5d2b6MXY28qjzmyUCojOtdjdPjZi16agx1QcYueFSNBY3U8fIkyj/Nq5nbrM+KcRkBzY6ZLf6pAvTalN1a/QMEytSH2ufPMHhebFLdRf1PKglvf97hnkRxUN5mkQb58UrszEeg1fSc94zTGtoyCth8iz5V809EyO+BX60Xqo5Y350zkpoPrj6xKFygPTOHTdI4ssT80h1jVDkHqlv1p1p3sCjmZ3R2TOW+TGjzbgmqMPX/EPZoSM5Roo0Q8PkG3wzlszkvqnSnI3ETeMcfL184iPRkU1Q1TkJ4CCJyU9Buparp/KowintYOMSZnX5uJmzoTmo4qR4TMq7OmSmSoyXX8Wc2e5jhElRROCKgjtQ5NjjFllh1jtZu+xrUYNBmfhMryFq5sgao4ooGsyGurVVKlDDNUe9E7UTR4I/z9vEV3WnpR9a8vMLi0BrzSJirUkNsapRyrtSNUwVa2l8F0b8ZX6tbIAyMRRlRbIcyuI7E5WwdpaTgX0tajbJS3ANjZhdkOkMn16CN6GqNVKVsYBb6c4nhSBnHxqfzp+1EoZKFSjugVT0kZUgioYNkBKwnxLEVkr8HfKgSjhx7j/z7mls7Nu+mzySwoZM7DcQe06qFL1d+xGS9w3Hp1Y/oeUzx/5KPHJWvl7mVbGFlH2np68Qg9R7/MdmeNeVhuRCS/7bDUy8fQ0xxZghdJj9VlVmFT5F5f6vIVFZhPseGgEXb8bmMfKegIPwa7I1yv5gbfFHJZfBI3RX4X2KDinCXYbBo8/8BVyyfVS1n+UXZGWe3mdXIpMhuoDF9MgdoPvwp9Tz3UruW8F9CwkE2ZcWl1LIWCJyOWX/WiHdRc09nAyoUF+1nd7C4OBjsOQ+3IBn2EU2zOCPcA+c1/KTQTlI+0Cwap/eeGAfgyApMOr6+FfMYTd4+eF/UqdUtoyZAAA= - - - 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.cs b/Thermo.Active.Database/Migrations/201902121508312_InitMigration.cs deleted file mode 100644 index 64ab87fb..00000000 --- a/Thermo.Active.Database/Migrations/201902121508312_InitMigration.cs +++ /dev/null @@ -1,384 +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), - title = c.String(unicode: false), - }) - .PrimaryKey(t => t.id); - - CreateTable( - "dbo.alarm_file", - c => new - { - id = c.Int(nullable: false, identity: true), - file_name = c.String(unicode: false), - local_file_name = c.String(unicode: false), - alarm_desc_id = c.Int(nullable: false), - source = c.Int(nullable: false), - user_id = c.Int(), - }) - .PrimaryKey(t => t.id) - .ForeignKey("dbo.user", t => t.user_id) - .Index(t => t.user_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.alarm_occurrence", - c => new - { - id = c.Int(nullable: false, identity: true), - alarm_id = c.Int(nullable: false), - alarm_description_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_description_id) - .Index(t => t.alarm_description_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.alarm_note", - c => new - { - id = c.Int(nullable: false, identity: true), - message = c.String(unicode: false), - user_id = c.Int(nullable: false), - alarm_desc_id = c.Int(nullable: false), - source = c.Int(nullable: false), - timestamp = c.DateTime(nullable: false, precision: 0), - }) - .PrimaryKey(t => t.id) - .ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true) - .Index(t => t.user_id); - - CreateTable( - "dbo.family", - c => new - { - 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), - 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.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 - { - 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), - maintainers_id = c.Int(), - }) - .PrimaryKey(t => t.id) - .ForeignKey("dbo.user", t => t.maintainers_id) - .ForeignKey("dbo.maintenance", t => t.maintenance, cascadeDelete: true) - .Index(t => t.maintenance) - .Index(t => t.maintainers_id); - - 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), - first_login = c.DateTime(nullable: false, precision: 0), - }) - .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.performed_maintenance", "maintainers_id", "dbo.user"); - 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_note", "user_id", "dbo.user"); - DropForeignKey("dbo.alarm_user", "user_id", "dbo.user"); - DropForeignKey("dbo.alarm_user", "alarm_occurence_id", "dbo.alarm_occurrence"); - DropForeignKey("dbo.alarm_occurrence", "alarm_description_id", "dbo.alarm_description"); - DropForeignKey("dbo.alarm_file", "user_id", "dbo.user"); - DropIndex("dbo.session", new[] { "machine_user_id" }); - DropIndex("dbo.performed_maintenance", new[] { "maintainers_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_note", new[] { "user_id" }); - DropIndex("dbo.alarm_user", new[] { "alarm_occurence_id" }); - DropIndex("dbo.alarm_user", new[] { "user_id" }); - DropIndex("dbo.alarm_occurrence", new[] { "alarm_description_id" }); - DropIndex("dbo.alarm_file", new[] { "user_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.alarm_note"); - DropTable("dbo.alarm_user"); - DropTable("dbo.alarm_occurrence"); - DropTable("dbo.user"); - DropTable("dbo.alarm_file"); - DropTable("dbo.alarm_description"); - } - } -} 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 - - - H4sIAAAAAAAEAO1dWW/kOJJ+X2D/QyIfZ3uc5SrMYKdgzyDbdvUY42ud7u7ZJ4FWMtNC68jW4bZ7sb9sH/Yn7V9YUlJKvA9RR2Z1o1CAUySDweDHYJCMIP/vf/737G9vUTh7hWkWJPH5/PTkw3wGYz9ZB/H2fF7kmz/++/xvf/3Xfzm7Wkdvsx/2+T7hfKhknJ3PX/J893mxyPwXGIHsJAr8NMmSTX7iJ9ECrJPFxw8f/rI4PV1ARGKOaM1mZ49FnAcRLH+gnxdJ7MNdXoDwNlnDMKu/o5RVSXV2ByKY7YAPz+erHO5OLkEOnkEG57NlGADExAqGm/kMxHGSgxyx+Pn7DK7yNIm3qx36AMKn9x1E+TYgxKVK1j+32U1b8eEjbsWiLbgn5RdZnkSWBE8/1WJZsMU7CXfeiA0J7goJOH/HrS6Fdz5fhiCNLmHmp8EOV5GVop7P2Ko/X4QpLlZLuszVyLvqnhMxrW9mbYlvGqwgSOF/38wuijAvUngewyJPAcrxUDyHgf8P+P6U/ATj87gIQ7IJqBEojfqAPj2kyQ6m+fsj3JANu17PZwu68IIt3ZRlC1bNvY7zTx/nszvEBngOYYMVQjSrPEnhdzCGKcjh+gHkOUxRV98lMeSqZyp7CvIQ7qtCyETjaz67BW83MN7mL+dz9Od89iV4g+v9l7r67+MADUdUKE8LppazRdvL+r7/EoTQtc8bGlP1dZ4D/yWCcd6pw6nSrr1+vYalnHU9j2WG/+q58/mKbhIfhKPVZjh61ERWSZH6La9IiZ8sb5aPt97q/vvHiytrekjrpxxPTJE78Bpsy54VFJ7PHmFYJmYvwW7PEgV9r8r3JU2ixyTkRleZ7DUNS+R5nkC6hXnHIY0pOIzmpvhEA3nfUbZDWNjBAw5eXF/cz3CyhPKXIM3ycfQGGKmiB5BlvyTpevCKVtAvUtS7qxxEu8Fr80IQbwuwnXZ6v/dRm1Nku0Nny44lNaVh1/LS2cSjSYylOXqZH1lDWze3DTy9YjoCak//+WBPC/1E+Mpg5iahJ7SMpIY5AjTEH/WUpIYAK3W5UcCOFI8vytgJ2hJi00FfTGRN6KydTN6yxkDwmPq5FklzNixRLZFn3ze8uw50NIpoGgdlGQ2lIM3sKQMlZaNkrcYhibwhwSocdnps97O4aOsRLi7oZB2r7ouLkuBdkjvvFzQ0JhpMuP4uw2Jfbixj4RbNhP0bkAMO90Nb+Lezfm9WgHrENsgWj1g6WTximTxOI/by+c7/AqIgfHcYsgyRicZsxUGXUduWbKB5+ufBdnRHWTI/JUlIWt3fvuf2WwmPwfYlXwW/ulG5gRt3Ik/+7glndyLyHYgi4CaRuv+dRXuB+gf1fFXWgQ5Cy2oHoaNWxfBLwNqNkyDGNB78fFnkSehMrmKpL3KX7zEa5P5FEu1gnNVnZe6t7Z1s1eq+yd4EG+gM2bskCmIQYlpuaHuEr8ErvIRhDvqy+LG6Ey9K8dyEU6sJs9L05KwrSucWoMJMTstOimL3WbchMdGci+vvMuPuy40x395vNhnMq8lUV6MOuFmwLvoZAhWlaig4msRIREXmNLRNDSANIy8g/okj0mcnXq9PGepmpT52KvVJXUqqjPZKpi9txC4ClCrLlMmyswx4rPPJWCyTNRxWeZyXKSUZR33Z0phIYTZjxFZjigfXQCrzWxCGxcbqyOAWbMGvQQwfkizoxULeE7xmDD/N6UBdveWBx30abIO4W5VVWdOKpQOSFaB0bLYY9vgy9DhVZBWOWVV+WwVjapIZKRi1QUYroc4Khm2yo64RkptI7ZDINjggIMFsq6hkg8j2mE82nhyOHrutHIMM525bg2AHQayhYwy8L+A1SYMc4q28VbLJf4IuO3EyalPNdhULhqjr6ttD1OKCFPs9bvNOLmIfd+HSx0fXLv3LE5pqt5XipNOuK0dhrFOTUXZgf8Tj8Aa+wvA2iF1Xi2DdD6VlCsHgLb+KOyhMwQwQ+gMNx1vgv6AZymEckhQmm9JLFrpN0U3R0Q4qK1kPfUwZBz8XRLvGdqirBevoTsJSmRZgXWdlpvhoQDPF9vAH3nip0p9TS90w4YqKRYzXZG6XVbI83EJQmtF2BYjJmbFb5VTwij/rGS1z9eZgw5FnD+yFGfRcuh/aY8IO+qUpPpFi2Y8LW41iNp6OzEws7bqBrJwgzmEMYh86hnCJKP0eyPVbD+QiUDHIbGs+MTZ8SPQ4j16PKkSqdHVegXbXFOhxOhLUxE9JkkxmjLtPTQTZfhTOtBYwhXB7C9higPRzcIOow/QVNBPKZVKUTlOaLU4I1mFpLto6QeriPG6X13dPV3fLu4urbtEeF0mBm+S8CzxAFLVIjkT8xvBL3fx+cwtBhpAvlfn3d9dP3v0X7/Zqufr+8Uor7RSWEMQAcAYDDg+8etsFqYLkgNOCiSLVKlEzBTqA8nR0ohdRmkiJdtGcv7vQS3jtz+QawPHdwhBrXdj1hpgwr2o4igsMYYjJnfmlmcwYd9clDzDdJGkE1/1YZFJyE2kVET9dNI2Mzljap5eZtjaSfgBh4ehL2KOCKUmh/64ru5KEcCBKMemRBdsxaZKfG55GhWx1i05Tairl1aVRAdu2KRSnsRr6jwIW8DqHkcupN0PkYAwZsWaq4tOnMXpM1ogNg6NUBtIcfdqmIBplU+oR7hwvBniEEQI/4s6d1PI5S8Iih0hiL4O3nHYD73UneYXg4uYPR1KYyhepYqGTg1FbdCy7oGzrCFu4Fme0uk3uNMtvkm3rodLLiqLhTzhPkrDyqMzt1CjLw82G0ox2E2ARESOHjk2+zr6EYNveJmk0ki5Qi3MQ59m/kcT6GEQIK2uYhu8IW2TP031zC6NnmO5PxC7ms9LKPJ9/4HqRyvlw02Y95UVXCUkruGrLsBexYVLTCO3q8fH+0VRuPy4f767vvnOSHb/p6ihBluBEcvzng3e5fLoyFeXt8uLv13dXHub98YfljUymbLmn61tBoY+OHcHtxPbYJwztabonikw75tK0J/4ukz7X1U3GTybdtMyyxA9KKe/VjeCmRrq+q3g9M7i2sd2GZ+9OvUViD3ZI0GjWOJ//gWuQuoImAKKtgPAyo2l/ODnhBYsMIZhi2wOEJYhSvMLjraYg9oMdCPWcMEWFJpf0SqJFUxGbcgl3MMY2kl7Ybhw0FTG2oE5OZwsCPQag0t/0pYSBxbVfDPT4e/0sEWh+dRhbteC26EERasypCWQk10Lbo9a464y5Yi70mw7U8nuzlIgyuESLQZJUx2nRa3C7nOWAOWU76uw+voQhzOFsWQYynM8vQOaDNb/AQbPQui+waxtmDCfVDXD2cNd2bm98jY9yvT0gcwIdAM/W9sDBAXcqO0LcScdhRzBHjUqsyE4cGTASPgaWYJQcVB4RGMUtGBOM4k46eDAKb7CQgUV9nUWLFuY2HHM0qm/voSugrrk7NFCqGmKCCdnld1a4VHWXKxMjQVN1OYIKREY3JdB4Iu8jsUOsyTULTGWSuwmGWlYZcmkCCtXVA+IDVOnlA9ZgNujVCZowupaurtgw06HMhT6962jmPg/TIdUvtCXsmHSt5AIfBz1LSdyRhRGgJY01lPW/PvCQ8F3mAmjNcaaNW+TrOVBjQNcSM50lCQ+3Qqqu75w5mQKwZbSpMYro0NOBoEpFrhKVEJGeBw9Ssg0muBCHgbrBk+wsNx6mAKZyZa+JNh4ImEe4vle2YaQVvrKzDn6NL46QkWNGGS5DApP1RLcBpiraZtxTUSUvowFMIfRjApg4JNcABpr4XCHsOh3HG4f4WkD9ELSkWavMLDxFDEZXWCv7txeupgK6qTbV+5gMAu3D0KyTep1oO+GYNKw41s4AEprAOyEMO50pGcfuHauGVbZqMg2r7N8j1LCGR6QGoZkDQ/soF1WadoyvmY/0ANUoalEGJ7sQxhZZimhgcyxbhUKOazjYsDYSUm26yljZNvG0hwhdjWVhGaM6LniP2dCwatq41oZVnx+LySGNOpNhTx+C1sKNjrU0x7c2es1ih3h6SOtaYwYVxf21VijW9V8v3PQO3CpAEZWpZo32wokyMBd/h2+5IO4IsViHHmV1FCmLOUx3BXOJa3o2n7WxkZqwAA7OAtJ4BS6lSWx7aGhhyYvIEKPAhBvCS1zGE+9IbkJYxh/rN2xCK8O2sZQYsZDRECsdugIhJc6jTkOqfg5GSIdwK9FQKV0fZGRI7xENHdYbSEZS4nalFRv3CoeoAvnTHzr69csJWfV0goi06MEJrUxKDSUiR7tLGNKRAZqffTQEsRIWESIOx7UsUft5Yq5EW6nmdDU07enJhrB4R0JDWGSHiYgrTG1NDeUdLQKK3AUwuhFezbUi5mjTiKFDTIKC+YPYFpoROYUziWD3iLK0VPGfTWvouYub7c2CPQlq9WBirS261aYS0cckyoRkGc3It9Q8npEVJTXx6gRqHrvIVkMbMv3IWx4uJ5OzYYAd33B9iB3bYCGybAjLJKnoMHdBKoeyyqNG1TLlULaW0yhDmb2BUCIR1dY43wbJtjgrkf0UpROJZON7AJGIn1flZaIPYqFaoQxjIZpR27gKeSjjVQhKreHdi0yUT0aKxWMcSMG1zySUgmjq3qTXSM0kZoKgKjDwe0ZX/W6lDlwC33sFImjvewdo0W72WnF3kIb8zRleJGY+48zBmcZrnOpsasWhEJLWR1xAdQhZlS7IJoLifZXV7aG8lfsREeWbTJCsl2X9C0c2kxn4y6pbIpvNHIQz9IwmuaxcJBytz6bsYFonHHLFqJSNykVzWNlIHvZQisnA81DWPrXvoVh4+qWgsaOhYe/0JVIDyBkvnvXubb1Kb0QISq40V4rNwDVL1ka1c5YEIXqD3dgVaxQM6lc3hu4/+jaaqL+O4hsahGb3YPOys/dE6e6LQjRbshepkKqV48n4ApYP9Q4OEw4uE0PKeLTRL7/SlRev2UG83VE8uVRqtqIVctOeu5vamQpZ7S+bbc5ym7Szxcp/gRGoP5wtUBYf7vICVOvAbJ9wC3a7IN5mbcn6y2y1Az5qx8UfV/PZWxTG2fn8Jc93nxeLrCSdnUSBnyZZsslP/CRagHWy+Pjhw18Wp6eLqKKx8DNS5OzJc1NTnqRgC5lU/HzBGpbXB+/Ppuezi3XEZWNPriXnCPvaZIfTfFfujxn2JfHf+zu14a65ylp2iM2f/teEvqDW4rcGy4ZD1UazhBAitfIByszeK76/ou4iCYsorj4GwssJZCTqB7FIAnn1SXDBwYJpEOe7wMmQcwqhO8e86yq7z7HP2gO9jn2lICDtI+qpye4d1T7nSNLYoK9eDPgntFSkmOchSXohTvI6URWCEeeLvDWCuGfX3L0aJoll9TdzKnsvG5JKgZWymJmJAF5NA92x3Z6g28NaUdZGqHadiynEHPaK5qvNqEDThWhYoM/24wKIaIWgA6kHkGW/JCkjpV3z1WIgQL9IcW/lINox46FO8rIqzZyoF4J4W5SvndFN3X89mLHBnSA6TgGcT1bHmUBPR6kn6astu48khdLtQIi5V1asyPcH51Poc9y1jLFSfrEYmNWjN3iJQo3M9rON7RRBwbDM0WfpiJxyGLnOM4wHYseR09OMo5jGO468CuIJTi/9GQ7KRiAP2h17sPUW69iDCgIy0eMibpqueZ6TJBHtPw5mEh6Ttds+tHPo6qhxa+gOZdbv2B7LWgpSo7O53rI7nHk709bExGf87vPhY7B9yVfBrwyZFH/2svK7hQENNwJaIfpqTerJ3z2BZ25rwt95ORC8ZK4i9R2IIkDT2VafLMRUB0XwAk/rFM9W8heo/xA8v33PGYp+leA9lykWGhK8rXYQMrCMwJuXVZ+tSN0kQEApLL9aEApiTOjBz5dFnoQ8zSAuaXo7P/dAk8WaU3kFNdOdK7h8RwMz8C+SaAfjDFSuUmQN6yqD51M5rEWkracRFVlhB1HpK9qLrGtFN8EG8gMlRF+tB8ldgpoNQkyR0ZZVgheWKRYDGb4Gr/AShjmjEtIyAU3eZcrBzJSVv5fbNNmG1XSbJBXlVZOT2wR5v9lkMK8eNaTpJGWKF9ZJNn2fBetChKa0TukAp6pgBSsJ0bROtLAH6zc8KXuw/maxOSa0UzaVs6mlgbq/apbiqPQt7NKt1+tTUZ+Wn+1pfRTT4t4KM6H1SUzr0wGphNpz000nEDFy3ZSCioAViuzw8y0Iw2JDU3iuv9lMhbRXMD9bRXUOb7d3LradusjLwoWU7RpOXiVO7Vzt+bMch8jCD2IZj0mZ6nVktaItY7imreF7orHFu4u7DTNx3Gi3EWdI6zjx6L6SvQwyvDJk2Fk3Xw8GY8Ko4O4wk0YP26PMnJR8I6ssJdxgy6o0S2AcxxEuG4nt0J2CiO0OPWlCRWo3UoWn3uf6ESPyBr7C8DZgVqq/4CS0EEBpXhRYrbofIViLiaYopRvNJSrKbAiXX8wpXMUCFQZjqQaTKufQ5/RyKNuUnmyqrcNquo8V6joC+0GiLi6fR5tnDBxOM6rYdZdx8X0c/FxwbBTl18PsadfzR+7CiM5d3uEMkrm3x6HrxfiJ6gC0QWdH+fZ2yDGU4nCvg8JRFWjWHT/tPSH2wFGUtRHq2JNnOcWxxzGv/LUZE/YqF9zjoiAEd7d0URImZKRWwG/F4ZO5go9WZm2owNdo7lOxDr3gtQesWk9o0u6z67JrRCZ9BYyaCeqvQlUjXcMj2zssY8epNXzzdcz9hIukwE1gZeNXn223Nyzc7OXCIe7loeVDJFgZkPn95haCrEhZV1yU5CUbL9onWogNLXkwJ9gZhZFcneKtgd3BNvbLvXrbBamEcOmhC5sM1vSPT+e4+oEJ7w5zUj4dfMK+Kn+wQSbD43HoEscZdgeo/P45e5Ra0JLupwhIuMGX12K2Wquen34AYcE5EFVT1GuV1DeIrSk2l5VzBMuU7LD0bHWBYXfoshcd2gNWS2EYjVq7xgsd4+1iX9IcfdqmIOLXGzuU6O2qVOsVxyPcMeyl5RcbChh3SPgiUnWSZ0t0+ZwhOjl8AKyrCqhTvB2wc1WxcwCZyhFhHxfdfbBQV3najxR1calwq1KOgbPJT5Cxw/Pqk/VWoMgE2W8HdjBFypi4m2TLHmxUQXFhlTAyiLjIdTZLU3v9pfndRK7XUeNUOHspAhycXjY9qyPY2TDyKst8huT0GqxxCPnt++rnsEThSfnnRRigBrc5bkEcbJCRVXby+fxPJ3+az5ZhALLqwoE6QP4ze2W6UcT86SccMQ/X0YItbh93j6lk2ZrCPjH6JLFdomnl7B/wne3wPa7ay+t5IJ4t2IJnDBxxmery3gCL+K4IQ3yehR3Rwox/OIApXa+SKwJhEm+ry+pbKuXF9BQREqh6uUh2+EaTR6nSvoNoSCD7b42mEGS5xXgqhyW71gIjtvJshMYT4nYG3cgxsTHdEZFRb2V0odDoVIIE9/rBdbyGb+fz/yrLfJ5d/3Ovir+Z3adIRXyefZj9d09AlBxHHS0G20huOWYMwdzGcTuiGfREqI3hdqPDBm+7Nm8fuT2cplSHPB8tWNto6e4aRRwdbadeRDTMdc0QerLaMe9eftcGVbsYAM1uV0UE75Pk5abYQwr9ICvtrg8aunZId9LHUotdkFcfcqwfHsPMZhawp9nvAnqSggVDdp0q2aE+Wr3V7HW7zRyTw+cgTMKRtYwy9HgMRGYRCMMugurDhCLnlSIP4vcujJARyo6kiABlR0pEfLIjpTpC2VVIdHCyIzU6MNmRGBGX3H3YtiHJrtyI45B7aGP/VMUBx30JgA767UsAvVIlIokdKdFRxN1xSAcPm9Kxmi4kQbgHPVkwkbqO1JggXZfeYgJzHSyP+kzGEYdETC4rJANbrCntZI210bwdWNgXdlmwEjHAcqTYEPrYF6FPdoSsxrUsjna4gU0F/LHANehrojwZxenS9VTQoN1CRMfNqT03PWi+fUiyULOY8CCLP3ZUNKLAXjlJozEiCOc1bLXVODGIfjUbMsp4V0F+RUCr41iz3U7Tith6V6+7DdqE1VaEnpF10pe1YxaFarEZpwo8Nd/AM9yJIyvr94iqJ+nqIkOPdkOsj60JLqLUxcqk40gdThfKKFK3hjVBpMbjVaCAQruNOmNMygMxf9NgJGI5BznVUwdDHq3oyUhKC1uyljbpeNUakd/MrrOLEFGAKVx/nj0hoeNPVQxu9bvDkqvL3ruKzY/DsNlEgtpZ5nWxIQ50JNGYRwvZXjwcqrjOAZSzLhryaMV+qL5SbMSI7YqYLO20J3RwnlLqEI5DdWIkYiHr08WkKA+J7GDRxkE6nFGqF4TdjoXaiEiXE1hrR0+RhIhISGfjiw6B7LyVw8Q99tp34tBH0yqm8w/oRwX87tIxYpcZ2t4HMnON7NDxYBZjeLTIHEB1MVGKLk4ARGhiZ8C5w54IZuzARVN6AJWpDCjsiknxZrk4XHBoA6up1oEEH5jopoWrKEKX/UM6HtFh/5COQnRrFn3i3eM6Ux7Ld7Rasw4IdF0MMpGAtsqFKu6k5qgIwgGmVeLh27pGOkRL8KA38QJvu49Z81a+DUx8vS3CPNiFgY+qRkyenHC3jRPUmOAwkiSbRNP9A0cUYRSmGEIgvEjiLE+xvucBHcR+sAMh1xomp7l6XjQ02ZRLuIMxRrW4sSY1yt3cFw11ZjTq5EC9fGyACzYgxWMDHaVQkUREcp0syGIPIi5uhquGzzEIpEziQAfEl8HTi3zF4sia6TDXDEuPaZMaa+4YOOWi7O/jSxjCHM6WfhV8fAEyH6x5LY607VrJnVhzsknDYbITMvqApJ2S1UfrTIPEPmfFrxRm48+mdjUewGzabKYdDZ7a7T8OT0TSV4In1T1th4Ynyl/dqwKdpIBiY6HIvuTSRgEX7W7P8kOkDAIt/cOWvQNM90gYX6HiEanRENZ6Tnusc6gSbGJPUrabJbmszH/Gv5utgkwaDEqmL9BYOsqKd/9Ub79Y4lH5QNUIzI6uJssGK4HbCUoGEJ1W11l29OiqTv7K3SggYZ30vPqDFCmUMyXZoXTCKDMp52Eo4Gdo01/zSEjvCDN4pUKkvuSvP0wDM9wYKcZa/zuyQ4mvvxl0qd6UOAxoSd/xmAZXR7C4PARcjbrA7ISraZeYrJ/FmEdDnI8HjQ828WvAh8qp5dDx0R4fEh8V5pND5w6mkAQu2BK+hj6X7ISF/vBnd0ipu3p/OihOo64mR89UauuYzrZFDq5fg+oSb9eLM3yNqstuB//QVNdRHQ8dEuqmUnnHdGAkdZ/22gdERpot5Z7cJHVFruMHkaEzu6Ry3cMuhwCoI5xIDxOXU0ypPcBT9pDRKNgkHZ09YutFt6PfbT9qIDhS3tokP3TCkDv6o+pEzUM18h39MSfWK/qNlZoT7j0UDmj1sy2kN5DA87X12da4yFbvrZzP188JgkblBc75cQqmYAEbxHpUXD2RQV4tDszW1keMIK4qIk1UC+5js/bwXp7iZvH55K1LWh9UIx5UDWUzyGs1bzNhYIvrIzLI64sT/nk8rj7OX4irkMshqrHybjGqjTghF9ZFpItqyst7eAzqIQ/4hRWRGUQ1lcfYRlVJPF+EtUryihjgbrTTMiO9CIznRZ5V3L9Vbo+8sUvPjuDmLAEnolxCJuqMHvCFIXNs9fTxPVcvnSzugMpxwLAilZrgsygqNFMVxOExVx2RJqoHn3AatEq0ySlomSibuHXtBo3RBMOb5KrazWq2qVSlh8XZdM020smKJQnHhiKviJfdPrtnIxI2GpZng8shqvzn8p1QXWW0OczVRCcL9XaVg6uIMAFlNlO1UzcjcgotJ8GGnmx/pWkd9ZWzbOVRdAQBNoldfNANNG28PiZMJg/LaDK+mVKTuW2uIItOeDKLsSXK5+hHlPJQJ5kIDYOjhmgkT1MMWzapb1Eph5zKC6bfITdm45mTAVnjVQcI/Taem+jaxhNJzo0XRjkIWq+PhqCaIFnDlG3g0hSiEK5OGipESi+CUDnjS2Ri7L/PNUu5QmmaKMmlERm/0GoIkkk9o6dy/taCR+Aj3k8DJkKO1LlZIAkzR2jRxinfDjpBIQrZWoik0qdCFbvhmkiD99elGsItr8oWEF8PWQiyecXAubS3mWV8IYgcHIVC0HpC9igE8RKuFgKb2KcQxF58ankYeP711zwZJfHqR5xhGIEZIGeUxeABCEXsUKWWjYET1vAoEtu04gzDCMwARaOY+FMJxchHRSAfe9+W3kSl3XoraSlyDS00+fjr4MAx0CCcXohShwGB3MycC/qzbBROAQQVOsFYIPt7wpoT7SbtbFHtldYf0M88ScG2EnlWfj1bPBYxvpqs+nUJs2DbkjhDNGPoUyfoTZ7reJPsT/QZjvZZmJvRbmEO1iAHyzQPNsDPH6oLCYN4O5/9gC+4PJ9fRc9wfR3fF/muyFGTYfRMnzFihwBV/WcLjuez+2ovsY8mIDYDfJvbffxtEYTrhu8vgvvbJCSwp0F9fR7uyxxfo7d9byjdJezpk4xQLb7GQeIJRrsQEcvu4xXAL/bZ84YQfAO3wH9H31+DNR49MiL6jqDFfnYZAHxtZFbTaMujnwjD6+jtr/8P90hzYitvAQA= - - - dbo - - \ No newline at end of file diff --git a/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.Designer.cs b/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.Designer.cs deleted file mode 100644 index 0afc3993..00000000 --- a/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.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 InitMigrtion : IMigrationMetadata - { - private readonly ResourceManager Resources = new ResourceManager(typeof(InitMigrtion)); - - string IMigrationMetadata.Id - { - get { return "201903070940012_InitMigrtion"; } - } - - string IMigrationMetadata.Source - { - get { return null; } - } - - string IMigrationMetadata.Target - { - get { return Resources.GetString("Target"); } - } - } -} diff --git a/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.cs b/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.cs deleted file mode 100644 index 00e4634e..00000000 --- a/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace Thermo.Active.Database.Migrations -{ - using System; - using System.Data.Entity.Migrations; - - public partial class InitMigrtion : DbMigration - { - public override void Up() - { - AddColumn("dbo.performed_maintenance", "control_word", c => c.Int(nullable: false)); - } - - public override void Down() - { - DropColumn("dbo.performed_maintenance", "control_word"); - } - } -} diff --git a/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.resx b/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.resx deleted file mode 100644 index 7f764a3f..00000000 --- a/Thermo.Active.Database/Migrations/201903070940012_InitMigrtion.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 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 - - - dbo - - \ No newline at end of file diff --git a/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.Designer.cs b/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.Designer.cs deleted file mode 100644 index 58626ccf..00000000 --- a/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.Designer.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -namespace Thermo.Active.Database.Migrations -{ - using System.CodeDom.Compiler; - using System.Data.Entity.Migrations; - using System.Data.Entity.Migrations.Infrastructure; - using System.Resources; - - [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] - public sealed partial class UserDeleteMigratin : IMigrationMetadata - { - private readonly ResourceManager Resources = new ResourceManager(typeof(UserDeleteMigratin)); - - string IMigrationMetadata.Id - { - get { return "201904041054202_UserDeleteMigratin"; } - } - - string IMigrationMetadata.Source - { - get { return null; } - } - - string IMigrationMetadata.Target - { - get { return Resources.GetString("Target"); } - } - } -} diff --git a/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.cs b/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.cs deleted file mode 100644 index e2b4987a..00000000 --- a/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace Thermo.Active.Database.Migrations -{ - using System; - using System.Data.Entity.Migrations; - - public partial class UserDeleteMigratin : DbMigration - { - public override void Up() - { - AddColumn("dbo.user", "deleted", c => c.Boolean(nullable: false)); - } - - public override void Down() - { - DropColumn("dbo.user", "deleted"); - } - } -} diff --git a/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.resx b/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.resx deleted file mode 100644 index 327dd2cd..00000000 --- a/Thermo.Active.Database/Migrations/201904041054202_UserDeleteMigratin.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 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 - - - dbo - - \ No newline at end of file From 41558f278e09464e6582da030d3547ae31a3e44a Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 24 Apr 2020 13:18:42 +0200 Subject: [PATCH 031/167] Nuova migratins del DB --- .../202004241109233_Thermo-Start.Designer.cs | 29 ++ .../202004241109233_Thermo-Start.cs | 328 ++++++++++++++++++ .../202004241109233_Thermo-Start.resx | 126 +++++++ .../Migrations/Configuration.cs | 42 ++- 4 files changed, 503 insertions(+), 22 deletions(-) create mode 100644 Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.Designer.cs create mode 100644 Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.cs create mode 100644 Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.resx diff --git a/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.Designer.cs b/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.Designer.cs new file mode 100644 index 00000000..fc25aff0 --- /dev/null +++ b/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.Designer.cs @@ -0,0 +1,29 @@ +// +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 ThermoStart : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(ThermoStart)); + + string IMigrationMetadata.Id + { + get { return "202004241109233_Thermo-Start"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.cs b/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.cs new file mode 100644 index 00000000..43f57be3 --- /dev/null +++ b/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.cs @@ -0,0 +1,328 @@ +namespace Thermo.Active.Database.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class ThermoStart : DbMigration + { + public override void Up() + { + CreateTable( + "dbo.alarm_description", + c => new + { + id = c.Int(nullable: false), + title = c.String(unicode: false), + }) + .PrimaryKey(t => t.id); + + CreateTable( + "dbo.alarm_file", + c => new + { + id = c.Int(nullable: false, identity: true), + file_name = c.String(unicode: false), + local_file_name = c.String(unicode: false), + alarm_desc_id = c.Int(nullable: false), + source = c.Int(nullable: false), + user_id = c.Int(), + }) + .PrimaryKey(t => t.id) + .ForeignKey("dbo.user", t => t.user_id) + .Index(t => t.user_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), + deleted = c.Boolean(nullable: false), + }) + .PrimaryKey(t => t.id); + + CreateTable( + "dbo.alarm_occurrence", + c => new + { + id = c.Int(nullable: false, identity: true), + alarm_id = c.Int(nullable: false), + alarm_description_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_description_id) + .Index(t => t.alarm_description_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.alarm_note", + c => new + { + id = c.Int(nullable: false, identity: true), + message = c.String(unicode: false), + user_id = c.Int(nullable: false), + alarm_desc_id = c.Int(nullable: false), + source = c.Int(nullable: false), + timestamp = c.DateTime(nullable: false, precision: 0), + }) + .PrimaryKey(t => t.id) + .ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true) + .Index(t => t.user_id); + + CreateTable( + "dbo.family", + c => new + { + id = c.Short(nullable: false), + name = c.String(unicode: 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.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), + control_word = c.Int(nullable: false), + maintenance = c.Int(nullable: false), + maintainers_id = c.Int(), + }) + .PrimaryKey(t => t.id) + .ForeignKey("dbo.user", t => t.maintainers_id) + .ForeignKey("dbo.maintenance", t => t.maintenance, cascadeDelete: true) + .Index(t => t.maintenance) + .Index(t => t.maintainers_id); + + 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), + first_login = c.DateTime(nullable: false, precision: 0), + }) + .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.performed_maintenance", "maintainers_id", "dbo.user"); + 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.alarm_note", "user_id", "dbo.user"); + DropForeignKey("dbo.alarm_user", "user_id", "dbo.user"); + DropForeignKey("dbo.alarm_user", "alarm_occurence_id", "dbo.alarm_occurrence"); + DropForeignKey("dbo.alarm_occurrence", "alarm_description_id", "dbo.alarm_description"); + DropForeignKey("dbo.alarm_file", "user_id", "dbo.user"); + DropIndex("dbo.session", new[] { "machine_user_id" }); + DropIndex("dbo.performed_maintenance", new[] { "maintainers_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.alarm_note", new[] { "user_id" }); + DropIndex("dbo.alarm_user", new[] { "alarm_occurence_id" }); + DropIndex("dbo.alarm_user", new[] { "user_id" }); + DropIndex("dbo.alarm_occurrence", new[] { "alarm_description_id" }); + DropIndex("dbo.alarm_file", new[] { "user_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.family"); + DropTable("dbo.alarm_note"); + DropTable("dbo.alarm_user"); + DropTable("dbo.alarm_occurrence"); + DropTable("dbo.user"); + DropTable("dbo.alarm_file"); + DropTable("dbo.alarm_description"); + } + } +} diff --git a/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.resx b/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.resx new file mode 100644 index 00000000..02b9c9f2 --- /dev/null +++ b/Thermo.Active.Database/Migrations/202004241109233_Thermo-Start.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Thermo.Active.Database/Migrations/Configuration.cs b/Thermo.Active.Database/Migrations/Configuration.cs index 0e93d0c3..d33a5d5e 100644 --- a/Thermo.Active.Database/Migrations/Configuration.cs +++ b/Thermo.Active.Database/Migrations/Configuration.cs @@ -1,12 +1,15 @@ 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() { @@ -15,7 +18,7 @@ namespace Thermo.Active.Database.Migrations 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,32 +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}, - -#if false - new FunctionAccessModel() { Name = TOOL_MANAGER, Area = TOOLING_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 8 }, -#endif - 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 }, @@ -64,4 +62,4 @@ namespace Thermo.Active.Database.Migrations context.SaveChanges(); } } -} \ No newline at end of file +} From 2cf4461c7701c502ecd285fd64c4e13323d58b6f Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 24 Apr 2020 13:18:51 +0200 Subject: [PATCH 032/167] COmpletato refresh con migrazioen DB --- .../Thermo.Active.Database.csproj | 25 ++----- .../Thermo.Active.Database.csproj.user | 6 ++ .../DatabaseModels/NcMagazinePositionModel.cs | 33 --------- .../DatabaseModels/NcShankModel.cs | 70 ------------------- .../Thermo.Active.Model.csproj | 2 - 5 files changed, 11 insertions(+), 125 deletions(-) create mode 100644 Thermo.Active.Database/Thermo.Active.Database.csproj.user delete mode 100644 Thermo.Active.Model/DatabaseModels/NcMagazinePositionModel.cs delete mode 100644 Thermo.Active.Model/DatabaseModels/NcShankModel.cs diff --git a/Thermo.Active.Database/Thermo.Active.Database.csproj b/Thermo.Active.Database/Thermo.Active.Database.csproj index 5b8a67ae..6b1a06e6 100644 --- a/Thermo.Active.Database/Thermo.Active.Database.csproj +++ b/Thermo.Active.Database/Thermo.Active.Database.csproj @@ -121,17 +121,9 @@ - - - 201902121508312_InitMigration.cs - - - - 201903070940012_InitMigrtion.cs - - - - 201904041054202_UserDeleteMigratin.cs + + + 202004241109233_Thermo-Start.cs @@ -169,16 +161,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/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 b305dd7c..00000000 --- a/Thermo.Active.Model/DatabaseModels/NcShankModel.cs +++ /dev/null @@ -1,70 +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; } - - 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/Thermo.Active.Model.csproj b/Thermo.Active.Model/Thermo.Active.Model.csproj index 8f58bf38..8357cfbf 100644 --- a/Thermo.Active.Model/Thermo.Active.Model.csproj +++ b/Thermo.Active.Model/Thermo.Active.Model.csproj @@ -88,8 +88,6 @@ - - From 34c5e879a978f3002defad319bb3e2649c8e1cf3 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 24 Apr 2020 13:49:50 +0200 Subject: [PATCH 033/167] Fix Db Name --- Thermo.Active.Model/Constants.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index fbdcee85..89931229 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -125,7 +125,7 @@ namespace Thermo.Active.Model 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"; From 6c5d9ce68ddfbf21811652119600afdcf8807c0a Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 24 Apr 2020 16:54:24 +0200 Subject: [PATCH 034/167] Aggiunta preliminare modelli recipe --- .../ConfigModels/RecipeConfigModel.cs | 25 +++++++++++ Thermo.Active.Model/Constants.cs | 45 +++++++++++++------ .../DTOModels/DTORecipeConfigModel .cs | 17 +++++++ Thermo.Active.Utils/supportFunctions.cs | 10 +++++ 4 files changed, 84 insertions(+), 13 deletions(-) create mode 100644 Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs create mode 100644 Thermo.Active.Model/DTOModels/DTORecipeConfigModel .cs diff --git a/Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs b/Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs new file mode 100644 index 00000000..314e30a4 --- /dev/null +++ b/Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; +using static Thermo.Active.Model.Constants; + +namespace Thermo.Active.Model.ConfigModels +{ + public class RecipeConfigModel + { + public int Id; + public TACT_RECIPE_CATEGORY 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; } +#if false + public string Label + { + get + { + return $"{Category}_{SubCategory_1}_{SubCategory_2}_{Name}".Replace("__", "_").Replace("__", "_").ToLower(); + } + } +#endif + } +} diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index 89931229..ec40be0d 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_RECIPE_CATEGORY + { + ND = 0, + GENERAL, + POSITIONS, + CYCLE, + HEATS, + PYROMETER, + DRAWING, + UPPER_PLATE, + COOLING, + VACUUM, + EXTRACTION, + OPTIONS + } + public enum MAINTENANCE_UNIT_OF_MEASURE { mm = 0, @@ -166,7 +182,7 @@ namespace Thermo.Active.Model 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 @@ -182,7 +198,7 @@ namespace Thermo.Active.Model 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"; @@ -190,13 +206,16 @@ 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"; @@ -281,22 +300,22 @@ namespace Thermo.Active.Model 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" }; @@ -324,7 +343,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/DTORecipeConfigModel .cs b/Thermo.Active.Model/DTOModels/DTORecipeConfigModel .cs new file mode 100644 index 00000000..4370b221 --- /dev/null +++ b/Thermo.Active.Model/DTOModels/DTORecipeConfigModel .cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; +using Thermo.Active.Model.ConfigModels; + +namespace Thermo.Active.Model.DTOModels +{ + 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.Utils/supportFunctions.cs b/Thermo.Active.Utils/supportFunctions.cs index f8762885..18d89db2 100644 --- a/Thermo.Active.Utils/supportFunctions.cs +++ b/Thermo.Active.Utils/supportFunctions.cs @@ -40,6 +40,16 @@ namespace Thermo.Active.Utils } } + public static TACT_RECIPE_CATEGORY GetTActCategory(string strCategory) + { + TACT_RECIPE_CATEGORY answ = TACT_RECIPE_CATEGORY.ND; + try { + answ = (TACT_RECIPE_CATEGORY)Enum.Parse(typeof(TACT_RECIPE_CATEGORY), strCategory); + } + catch { } + return answ; + } + public static int GetPlcIdFromNcSoftKey(string softKey) { switch (softKey) From 747fe636bee88655e80fcad9cf2526cd42977ac5 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 24 Apr 2020 16:54:45 +0200 Subject: [PATCH 035/167] Aggiunta XML e validazione dati Recipe --- Thermo.Active.Config/Config/recipeConfig.xml | 2757 +++++++++++++++++ .../Config/recipeConfigValidator.xsd | 40 + 2 files changed, 2797 insertions(+) create mode 100644 Thermo.Active.Config/Config/recipeConfig.xml create mode 100644 Thermo.Active.Config/Config/recipeConfigValidator.xsd 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 From e99d3bdb0d2b95cb7ce6d66a61ac7535f11e809f Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 24 Apr 2020 16:55:02 +0200 Subject: [PATCH 036/167] Inserimento preliminare metodi Recipe --- Thermo.Active.Config/ServerConfig.cs | 1 + .../ServerConfigController.cs | 22 +++ .../Thermo.Active.Config.csproj | 8 +- .../Thermo.Active.Model.csproj | 2 + Thermo.Active.NC/NcAdapter.cs | 141 ++++++++++++++---- .../WebApi/ConfigurationController.cs | 18 +++ .../Controllers/WebApi/LanguageController.cs | 1 + .../Controllers/WebApi/RecipeController.cs | 36 +++++ Thermo.Active/Thermo.Active.csproj | 1 + 9 files changed, 196 insertions(+), 34 deletions(-) create mode 100644 Thermo.Active/Controllers/WebApi/RecipeController.cs diff --git a/Thermo.Active.Config/ServerConfig.cs b/Thermo.Active.Config/ServerConfig.cs index 139f5caf..361d1889 100644 --- a/Thermo.Active.Config/ServerConfig.cs +++ b/Thermo.Active.Config/ServerConfig.cs @@ -32,6 +32,7 @@ namespace Thermo.Active.Config public static List NcSoftKeysConfig; public static List InitialAlarmsConfig; public static List HeadsConfig; + public static List RecipeConfig; public static CmsConnectConfigModel CmsConnectConfig; public static AreasConfigModel ProductionConfig; diff --git a/Thermo.Active.Config/ServerConfigController.cs b/Thermo.Active.Config/ServerConfigController.cs index cea82bdd..494d54f5 100644 --- a/Thermo.Active.Config/ServerConfigController.cs +++ b/Thermo.Active.Config/ServerConfigController.cs @@ -33,6 +33,7 @@ namespace Thermo.Active.Config ReadUserSoftKeysConfig(); ReadAlarmsConfig(); ReadHeadsConfig(); + ReadRecipeConfig(); // ReadCMSConnectConfig(); ReadMacros(); ReadScadaFile(); @@ -572,6 +573,27 @@ namespace Thermo.Active.Config .ToList(); } + private static void ReadRecipeConfig() + { + XDocument xmlConfigFile = GetXmlHandlerWithValidator(RECIPE_CONFIG_SCHEMA_PATH, RECIPE_CONFIG_PATH); + + int i = 1; + // Read head config from XML file + RecipeConfig = xmlConfigFile + .Root + .Elements() + .Select(x => new RecipeConfigModel() + { + 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() { diff --git a/Thermo.Active.Config/Thermo.Active.Config.csproj b/Thermo.Active.Config/Thermo.Active.Config.csproj index e77793e6..f6acbb98 100644 --- a/Thermo.Active.Config/Thermo.Active.Config.csproj +++ b/Thermo.Active.Config/Thermo.Active.Config.csproj @@ -69,6 +69,7 @@ Always + PreserveNewest Designer @@ -83,7 +84,7 @@ PreserveNewest Designer - + Designer @@ -151,5 +152,10 @@ Designer + + + Designer + + \ No newline at end of file diff --git a/Thermo.Active.Model/Thermo.Active.Model.csproj b/Thermo.Active.Model/Thermo.Active.Model.csproj index 8357cfbf..610b00cc 100644 --- a/Thermo.Active.Model/Thermo.Active.Model.csproj +++ b/Thermo.Active.Model/Thermo.Active.Model.csproj @@ -66,6 +66,7 @@ + @@ -103,6 +104,7 @@ + diff --git a/Thermo.Active.NC/NcAdapter.cs b/Thermo.Active.NC/NcAdapter.cs index 474b973e..cfeac63e 100644 --- a/Thermo.Active.NC/NcAdapter.cs +++ b/Thermo.Active.NC/NcAdapter.cs @@ -5,7 +5,7 @@ using CMS_CORE_Library.Models; using CMS_CORE_Library.Osai; using CMS_CORE_Library.Siemens; 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; @@ -116,7 +116,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 +232,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 +241,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 +539,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 +601,7 @@ namespace Thermo.Active.NC } } - if(performed != null && performed.ControlWord == -2) + if (performed != null && performed.ControlWord == -2) { performed = null; } @@ -864,12 +864,84 @@ 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, + 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: + { + heads.Add(new DTOWaterJet() + { + Id = head.Id, + Process = head.Process, + Type = configuredHead.Type.ToString(), + FixedHead = configuredHead.FixedHead, + inAlarm = false, + inWarning = false, + ActualPressure = head.ActualSpeed_Pressure, + OverrideEditable = head.OverrideEditable, + Override = head.Override, + IsActive = head.IsActive, + IsSelected = head.IsSelected, + AbrasiveIsActive = head.AbrasiveIsActive, + WorkedTime = head.WorkedTime + }); + } + 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, @@ -924,7 +996,7 @@ namespace Thermo.Active.NC Process = x.Process, Type = x.Type.ToString(), Value = x.Value - }).ToList(); + }).ToList(); return NO_ERROR; } @@ -964,9 +1036,9 @@ namespace Thermo.Active.NC scadas.Add(scadaValue); // Add id to read scada alreadyReadScada.Add(schema.Id); - } + } } - + return cmsError; } @@ -1014,7 +1086,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); @@ -1044,7 +1116,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) @@ -1065,7 +1137,7 @@ namespace Thermo.Active.NC Id = layer.Images[i].Id, IsVisible = negate ? !Convert.ToBoolean(val) : Convert.ToBoolean(val) }); - } + } if (layer.ProgressBars.ElementAtOrDefault(i) != null) { @@ -1106,7 +1178,7 @@ namespace Thermo.Active.NC { IsEnabled = false, //Convert.ToBoolean(val), Value = val2 - } + } }); } else @@ -1134,7 +1206,7 @@ namespace Thermo.Active.NC }); } } - + } } @@ -1290,7 +1362,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: { @@ -1298,9 +1371,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 @@ -1309,23 +1383,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 } }); } @@ -1427,7 +1502,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(); @@ -1458,11 +1533,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; @@ -1482,7 +1557,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); @@ -1493,14 +1568,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/Controllers/WebApi/ConfigurationController.cs b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs index b43b9117..5dd036ed 100644 --- a/Thermo.Active/Controllers/WebApi/ConfigurationController.cs +++ b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs @@ -102,6 +102,24 @@ namespace Thermo.Active.Controllers.WebApi return Ok(heads); } + [Route("recipe"), HttpGet] + public IHttpActionResult GetRecipeConfig() + { + List recipe = 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(recipe); + } + [Route("alarms"), HttpGet] public IHttpActionResult GetAlarmsConfig() { diff --git a/Thermo.Active/Controllers/WebApi/LanguageController.cs b/Thermo.Active/Controllers/WebApi/LanguageController.cs index 3cfebb08..06d0ac3a 100644 --- a/Thermo.Active/Controllers/WebApi/LanguageController.cs +++ b/Thermo.Active/Controllers/WebApi/LanguageController.cs @@ -114,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 diff --git a/Thermo.Active/Controllers/WebApi/RecipeController.cs b/Thermo.Active/Controllers/WebApi/RecipeController.cs new file mode 100644 index 00000000..5c125f51 --- /dev/null +++ b/Thermo.Active/Controllers/WebApi/RecipeController.cs @@ -0,0 +1,36 @@ +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; + +namespace Thermo.Active.Controllers.WebApi +{ + [RoutePrefix("api/recipe")] + public class RecipeController : ApiController + { + [Route("overview"), HttpGet] + public IHttpActionResult GetRecipeOverview(string filePath = "") + { + using (NcFileAdapter ncAdapter = new NcFileAdapter()) + { + ncAdapter.Connect(); + + CmsError cmsError = ncAdapter.GetFileList(filePath, out List fileList); + if (cmsError.IsError()) + return BadRequest(cmsError.localizationKey); + + return Ok(fileList); + } + } + } +} \ No newline at end of file diff --git a/Thermo.Active/Thermo.Active.csproj b/Thermo.Active/Thermo.Active.csproj index 202aa333..12b1ef53 100644 --- a/Thermo.Active/Thermo.Active.csproj +++ b/Thermo.Active/Thermo.Active.csproj @@ -218,6 +218,7 @@ + From 189d5e200f17fbaa33d60b7314be84f8c6aefbb8 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 24 Apr 2020 17:10:57 +0200 Subject: [PATCH 037/167] Fix naming e ok test webApi x RecipeConf --- .../ServerConfigController.cs | 13 +++++----- .../Thermo.Active.Config.csproj | 4 +++- .../ConfigModels/RecipeConfigModel.cs | 2 +- Thermo.Active.Model/Constants.cs | 24 +++++++++---------- Thermo.Active.Utils/supportFunctions.cs | 6 ++--- Thermo.Active/Properties/AssemblyInfo.cs | 2 +- 6 files changed, 26 insertions(+), 25 deletions(-) diff --git a/Thermo.Active.Config/ServerConfigController.cs b/Thermo.Active.Config/ServerConfigController.cs index 494d54f5..68df96f3 100644 --- a/Thermo.Active.Config/ServerConfigController.cs +++ b/Thermo.Active.Config/ServerConfigController.cs @@ -577,7 +577,6 @@ namespace Thermo.Active.Config { XDocument xmlConfigFile = GetXmlHandlerWithValidator(RECIPE_CONFIG_SCHEMA_PATH, RECIPE_CONFIG_PATH); - int i = 1; // Read head config from XML file RecipeConfig = xmlConfigFile .Root @@ -585,12 +584,12 @@ namespace Thermo.Active.Config .Select(x => new RecipeConfigModel() { 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 + 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(); } diff --git a/Thermo.Active.Config/Thermo.Active.Config.csproj b/Thermo.Active.Config/Thermo.Active.Config.csproj index f6acbb98..e171df4b 100644 --- a/Thermo.Active.Config/Thermo.Active.Config.csproj +++ b/Thermo.Active.Config/Thermo.Active.Config.csproj @@ -69,7 +69,9 @@ Always - + + PreserveNewest + PreserveNewest Designer diff --git a/Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs b/Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs index 314e30a4..8bb55c05 100644 --- a/Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs +++ b/Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs @@ -6,7 +6,7 @@ namespace Thermo.Active.Model.ConfigModels public class RecipeConfigModel { public int Id; - public TACT_RECIPE_CATEGORY Category { get; set; } + public TACT_PARAM_TYPE Category { get; set; } public string SubCategory_1 { get; set; } public string SubCategory_2 { get; set; } public string Name { get; set; } diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index ec40be0d..37e031bf 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -74,20 +74,20 @@ namespace Thermo.Active.Model LASER = 3 } - public enum TACT_RECIPE_CATEGORY + public enum TACT_PARAM_TYPE { ND = 0, - GENERAL, - POSITIONS, - CYCLE, - HEATS, - PYROMETER, - DRAWING, - UPPER_PLATE, - COOLING, - VACUUM, - EXTRACTION, - OPTIONS + General, + Positions, + Cycle, + Heats, + Pyrometer, + Drawing, + Upper_plate, + Cooling, + Vacuum, + Extraction, + Options } public enum MAINTENANCE_UNIT_OF_MEASURE diff --git a/Thermo.Active.Utils/supportFunctions.cs b/Thermo.Active.Utils/supportFunctions.cs index 18d89db2..d0cbdcde 100644 --- a/Thermo.Active.Utils/supportFunctions.cs +++ b/Thermo.Active.Utils/supportFunctions.cs @@ -40,11 +40,11 @@ namespace Thermo.Active.Utils } } - public static TACT_RECIPE_CATEGORY GetTActCategory(string strCategory) + public static TACT_PARAM_TYPE GetTActCategory(string strCategory) { - TACT_RECIPE_CATEGORY answ = TACT_RECIPE_CATEGORY.ND; + TACT_PARAM_TYPE answ = TACT_PARAM_TYPE.ND; try { - answ = (TACT_RECIPE_CATEGORY)Enum.Parse(typeof(TACT_RECIPE_CATEGORY), strCategory); + answ = (TACT_PARAM_TYPE)Enum.Parse(typeof(TACT_PARAM_TYPE), strCategory); } catch { } return answ; diff --git a/Thermo.Active/Properties/AssemblyInfo.cs b/Thermo.Active/Properties/AssemblyInfo.cs index 9981a77b..8f4b9784 100644 --- a/Thermo.Active/Properties/AssemblyInfo.cs +++ b/Thermo.Active/Properties/AssemblyInfo.cs @@ -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("0.1.1")] +[assembly: AssemblyVersion("0.2.3")] From 8132da127e5f7bb99e547002b84101119af2ab46 Mon Sep 17 00:00:00 2001 From: Alessio Date: Tue, 28 Apr 2020 10:23:36 +0200 Subject: [PATCH 038/167] add header to processo modal --- .../wwwroot/assets/icons/png/star.png | Bin 0 -> 724 bytes .../wwwroot/assets/icons/png/star@2x.png | Bin 0 -> 1387 bytes .../wwwroot/assets/icons/png/star@3x.png | Bin 0 -> 2144 bytes .../wwwroot/assets/styles/base/processo.less | 51 +++++++++++++++++- .../wwwroot/assets/styles/base/setup.less | 2 - Thermo.Active/wwwroot/assets/styles/style.css | 42 ++++++++++++++- .../processo/components/processo.ts | 6 +++ .../processo/components/processo.vue | 14 +++-- 8 files changed, 108 insertions(+), 7 deletions(-) create mode 100644 Thermo.Active/wwwroot/assets/icons/png/star.png create mode 100644 Thermo.Active/wwwroot/assets/icons/png/star@2x.png create mode 100644 Thermo.Active/wwwroot/assets/icons/png/star@3x.png 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 0000000000000000000000000000000000000000..51d56b48167f3799f203db1899c4acc23721b704 GIT binary patch literal 724 zcmeAS@N?(olHy`uVBq!ia0vp^(m*W5!3HGVI@CV^DaPU;cPEB*=VV?2IWDOYo@u_m z3|c@o2Loe!CIbsd2@p#GF#`kh0!9XAAk7F8TfhXDm0rLMXMF6=YQT?efsGGDIT^-%rlKW zl_u^eTvT#fRCV%6WuG#y)v;@HBlh3luh6mY7UQj^r9ms1XSka*Jm zXP&<)Uv$GrXRhD-g9@i+x@@%y7h66paYoXQ=#OS;rThAeybX3$zd4XQk@4zUKl3Wf z;+=PLR$mR;a9Tt{BX4{44y8Ee6i1dvS@Dxpu6_)BxbPAe|JC>3SO2W}*IuB_Ooo zq?E+Aeb)qjB!LPJ8(de#-@HyqYq(hQ>zg_1F5VvJ)*yp;p?c@x#n|vK5 zQTxwS^t3KBxRYA3=5mseXFAtm%?BK9FP+l9r*a(*Ox7|oUc77Z$%6K@$)O1q9QV68 ztQ^(tzA8@mah%cN>f?_&(@sAXezVOwN^`jtx2o*Ro3rG&yDfG#S?s#Ek~58elg@n6 z?xWSGT*dz-m3`P>#(P4nwtsVhWO`!r`>!8ZPwl>&Cov(t<@t<9VOI`c+alfh=&p_1 z->xqayao^14nD5rX?1!X=Abj>m#2Hxwspt%Gb`P@w_X0jZ&1?nboFyt=akR{0L)r0 A{Qv*} literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4ac4b609a8e1a399247890f4e20af8845e231d01 GIT binary patch literal 1387 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 -
- - +
+ +
+ + + + + + + +
From 440abb4e51bfdba254025603d2874596d9f7c6df Mon Sep 17 00:00:00 2001 From: Alessio Date: Tue, 28 Apr 2020 12:11:25 +0200 Subject: [PATCH 039/167] add circles-gantt component --- .../assets/styles/base/circlegantt.less | 63 +++++++++++++++++++ .../wwwroot/assets/styles/base/layout.less | 1 + Thermo.Active/wwwroot/assets/styles/style.css | 37 +++++++++++ .../processo/circles-gantt/circle-gantt.ts | 17 +++++ .../processo/circles-gantt/circle-gantt.vue | 25 ++++++++ .../processo/components/processo.ts | 4 +- .../processo/components/processo.vue | 1 + 7 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 Thermo.Active/wwwroot/assets/styles/base/circlegantt.less create mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/processo/circles-gantt/circle-gantt.ts create mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/processo/circles-gantt/circle-gantt.vue 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..e3c0c6a6 --- /dev/null +++ b/Thermo.Active/wwwroot/assets/styles/base/circlegantt.less @@ -0,0 +1,63 @@ +// 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; + } + + &:last-of-type{ + margin-top: -66px; + height: 40px; + object-fit: contain; + border-radius: 2px; + background-color: #c0c7cc; + } + + } + + &: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; + } + + &:last-of-type{ + margin-top: -66px; + width: 34px; + height: 40px; + object-fit: contain; + border-radius: 2px; + background-color: #c0c7cc; + } + + } + + } + + } + +} \ 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 f04c8c32..b8f3523f 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/layout.less +++ b/Thermo.Active/wwwroot/assets/styles/base/layout.less @@ -6,6 +6,7 @@ @import "formato.less"; @import "slider.less"; @import "tastierino.less"; +@import "circlegantt.less"; @import "arretramento-riscaldi.less"; @import "setup.less"; @import "ciclo.less"; diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index cebb42fd..851f1dd6 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4069,6 +4069,43 @@ grid-column: 0.8; grid-row: 0.5; } +.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:last-of-type { + margin-top: -66px; + height: 40px; + object-fit: contain; + border-radius: 2px; + background-color: #c0c7cc; +} +.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:last-of-type { + margin-top: -66px; + width: 34px; + height: 40px; + object-fit: contain; + border-radius: 2px; + background-color: #c0c7cc; +} .modal.estrazione-info { width: 560px; height: 411px; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/processo/circles-gantt/circle-gantt.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/processo/circles-gantt/circle-gantt.ts new file mode 100644 index 00000000..fa85e600 --- /dev/null +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/processo/circles-gantt/circle-gantt.ts @@ -0,0 +1,17 @@ +import Vue from 'vue'; +import Component from 'vue-class-component'; +import {Prop} from 'vue-property-decorator'; + +@Component({name:"circlegantt"}) +export default class CircleGantt extends Vue{ + + @Prop({default:2}) + value:number; + @Prop({default:0}) + late:number; + @Prop({default:'s'}) + unit:string; + @Prop({default:'Discesa cornice'}) + title:string; + +} \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/processo/circles-gantt/circle-gantt.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/processo/circles-gantt/circle-gantt.vue new file mode 100644 index 00000000..b1f35c8b --- /dev/null +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/processo/circles-gantt/circle-gantt.vue @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/processo/components/processo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/processo/components/processo.ts index 649f4ac4..383243d1 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/processo/components/processo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/processo/components/processo.ts @@ -3,10 +3,12 @@ import Component from 'vue-class-component'; import {Prop} from 'vue-property-decorator'; import { messageService } from "@/_base/messageService"; import { Modal, ModalHelper } from "@/components/modals"; +import CircleGantt from "../circles-gantt/circle-gantt.vue" @Component({ components: { - modal: Modal + modal: Modal, + circlegantt: CircleGantt } }) export default class Processo extends Vue{ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/processo/components/processo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/processo/components/processo.vue index 32404dd1..b65e5537 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/processo/components/processo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/processo/components/processo.vue @@ -10,6 +10,7 @@
+ From f018da3a5fe80282e7f8c52e43f917564a9236e8 Mon Sep 17 00:00:00 2001 From: Alessio Date: Tue, 28 Apr 2020 14:54:39 +0200 Subject: [PATCH 040/167] fix cicle-gantt positioning --- .../assets/styles/base/circlegantt.less | 29 +++++++++++++++++++ Thermo.Active/wwwroot/assets/styles/style.css | 21 ++++++++++++++ .../processo/circles-gantt/circle-gantt.vue | 8 ++--- 3 files changed, 54 insertions(+), 4 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/circlegantt.less b/Thermo.Active/wwwroot/assets/styles/base/circlegantt.less index e3c0c6a6..83f1a351 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/circlegantt.less +++ b/Thermo.Active/wwwroot/assets/styles/base/circlegantt.less @@ -18,14 +18,27 @@ 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%; + } + } } @@ -43,15 +56,31 @@ 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; + } + } } diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 851f1dd6..014c5ba0 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4081,13 +4081,22 @@ 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; @@ -4098,7 +4107,13 @@ 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; @@ -4106,6 +4121,12 @@ 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; +} .modal.estrazione-info { width: 560px; height: 411px; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/processo/circles-gantt/circle-gantt.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/processo/circles-gantt/circle-gantt.vue index b1f35c8b..e8f71421 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/processo/circles-gantt/circle-gantt.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/processo/circles-gantt/circle-gantt.vue @@ -2,7 +2,7 @@
- {{late}}s +
@@ -10,15 +10,15 @@
- {{value}}{{unit}} +
- {{title}} +
+
parte finale variabile-->
From ad8681991bb18c61912d730b620dbe04cfe69ccc Mon Sep 17 00:00:00 2001 From: Alessio Date: Tue, 28 Apr 2020 16:06:36 +0200 Subject: [PATCH 041/167] add avvio produzione modal --- .../assets/styles/base/avvio-prod.less | 23 +++ .../wwwroot/assets/styles/base/layout.less | 1 + .../assets/styles/base/tastierino.less | 176 ++++++++++-------- Thermo.Active/wwwroot/assets/styles/style.css | 101 +++++----- .../wwwroot/src/app.business-logic.ts | 2 + .../avvio-pruduzione/avvio-produzione.ts | 48 +++++ .../avvio-pruduzione/avvio-produzione.vue | 30 +++ .../setup/components/setup.vue | 2 +- .../setup/formato/components/tastierino.vue | 24 +-- 9 files changed, 271 insertions(+), 136 deletions(-) create mode 100644 Thermo.Active/wwwroot/assets/styles/base/avvio-prod.less create mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts create mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.vue 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..64190b33 --- /dev/null +++ b/Thermo.Active/wwwroot/assets/styles/base/avvio-prod.less @@ -0,0 +1,23 @@ +// out: false, sourceMap: false, main: ../style.less +@import "grid-system.less"; +@import "colors.less"; +@import "fonts.less"; +@modal: modal; + +.@{modal}.avvio-produzione-info { + width: 653px; + height: 616px; + + // section.body{ + + // section{ + + // .specific{ + + // } + + // } + + // } + +} \ 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 b8f3523f..39abfc19 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/layout.less +++ b/Thermo.Active/wwwroot/assets/styles/base/layout.less @@ -8,6 +8,7 @@ @import "tastierino.less"; @import "circlegantt.less"; @import "arretramento-riscaldi.less"; +@import "avvio-prod.less"; @import "setup.less"; @import "ciclo.less"; @import "raffreddamento.less"; diff --git a/Thermo.Active/wwwroot/assets/styles/base/tastierino.less b/Thermo.Active/wwwroot/assets/styles/base/tastierino.less index 276dddb9..70c0c88b 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/tastierino.less +++ b/Thermo.Active/wwwroot/assets/styles/base/tastierino.less @@ -4,86 +4,104 @@ @import "fonts.less"; .tast{ - margin-top: 30px; - margin-left: -350px; + margin-left: 25%; height: 261px; width: 293px; background-color:@color-silver; + + .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%; + + 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-image: linear-gradient(to bottom, #000080 0%, #191970 98%); + box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5); + + img{ + width: 30px; + height: 30px; + } + + } + .bCanc{ + grid-column: 4/5; + grid-row: 2/3; + + img{ + width: 30px; + height: 25px; + } + + } + .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; + } + + } + } -.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; -} \ 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 014c5ba0..e5e9a2b2 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -3986,13 +3986,12 @@ margin: 16px; } .tast { - margin-top: 30px; - margin-left: -350px; + margin-left: 25%; height: 261px; width: 293px; background-color: #bbbcbc; } -.mask { +.tast .mask { display: grid; grid-template-columns: repeat(4, 52px); grid-template-rows: repeat(4, 52px); @@ -4000,19 +3999,21 @@ margin-top: 7%; margin-left: 10%; } -.tasto { +.tast .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 { +.tast .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 { +.tast .mask .submit { grid-column-start: 4; grid-column-end: 5; grid-row-start: 3; @@ -4021,51 +4022,59 @@ 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: 0.5; - grid-row: 0.75; +.tast .mask .submit img { + width: 30px; + height: 30px; } -.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 { +.tast .mask .bCanc { grid-column: 0.8; grid-row: 0.66666667; } -.bPunto { +.tast .mask .bCanc img { + width: 30px; + height: 25px; +} +.tast .mask .b1 { + grid-column: 0.5; + grid-row: 0.75; +} +.tast .mask .b2 { + grid-column: 0.66666667; + grid-row: 0.75; +} +.tast .mask .b3 { + grid-column: 0.75; + grid-row: 0.75; +} +.tast .mask .b4 { + grid-column: 0.5; + grid-row: 0.66666667; +} +.tast .mask .b5 { + grid-column: 0.66666667; + grid-row: 0.66666667; +} +.tast .mask .b6 { + grid-column: 0.75; + grid-row: 0.66666667; +} +.tast .mask .b7 { + grid-column: 0.5; + grid-row: 0.5; +} +.tast .mask .b8 { + grid-column: 0.66666667; + grid-row: 0.5; +} +.tast .mask .b9 { + grid-column: 0.75; + grid-row: 0.5; +} +.tast .mask .bPunto { grid-column: 0.75; grid-row: 0.8; } -.bDel { +.tast .mask .bDel { grid-column: 0.8; grid-row: 0.5; } @@ -4131,6 +4140,10 @@ width: 560px; height: 411px; } +.modal.avvio-produzione-info { + width: 653px; + height: 616px; +} .setup { padding-top: 50px; display: flex; diff --git a/Thermo.Active/wwwroot/src/app.business-logic.ts b/Thermo.Active/wwwroot/src/app.business-logic.ts index 0ea51ce9..99391de1 100644 --- a/Thermo.Active/wwwroot/src/app.business-logic.ts +++ b/Thermo.Active/wwwroot/src/app.business-logic.ts @@ -16,6 +16,7 @@ import ShowEstrazioneInfo from "@/app_modules_thermo/setup/estrazione/components import ShowVuotoInfo from "@/app_modules_thermo/setup/vuoto/show-vuoto-info.vue"; import ShowImbutituraInfo from "@/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue"; import ShowOpzioniInfo from "@/app_modules_thermo/setup/opzioni/show-opzioni-info.vue"; +import AvvioProduzione from "@/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.vue"; import ShowArretramentoRiscaldiInfo from "@/app_modules_thermo/processo/arretramento-riscaldi/show-arretramento-riscladi-info.vue"; // import { DataService } from "./services/dataService"; // import { ToolingService } from "./services/toolingService"; @@ -51,6 +52,7 @@ let HMIScreenshotInterval; let HMIprodTimeout; let RerenderInterval; +messageService.subscribeToChannel("show-avvio-produzione-info", () => { ModalHelper.ShowModal(AvvioProduzione); }); messageService.subscribeToChannel("show-arretramento-riscaldi-info", () => { ModalHelper.ShowModal(ShowArretramentoRiscaldiInfo); }); messageService.subscribeToChannel("show-opzioni-info", () => { ModalHelper.ShowModal(ShowOpzioniInfo); }); messageService.subscribeToChannel("show-vuoto-info", () => { ModalHelper.ShowModal(ShowVuotoInfo); }); diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts new file mode 100644 index 00000000..2f8e5d7b --- /dev/null +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts @@ -0,0 +1,48 @@ +import Vue from "vue"; +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 ToggleButton from "@/components/toggleButton.vue"; +import Tastierino from "@/app_modules_thermo/setup/formato/components/tastierino.vue" + +@Component({ + components: { + modal: Modal, + ToggleButton, + tastierino:Tastierino + } +}) +export default class AvvioProduzione extends Vue { + + enabling:boolean=true; + @Prop({default:0}) + pieces:number; + + mock_pieces:number=this.pieces; + + annulla(){ + ModalHelper.HideModal(); + }; + + conferma(){ + ModalHelper.HideModal(); + }; + + 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(); + } + +} \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.vue new file mode 100644 index 00000000..1c08e416 --- /dev/null +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.vue @@ -0,0 +1,30 @@ + + + \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.vue index 2ddfaebe..9ea6e0a9 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.vue @@ -80,7 +80,7 @@ >
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/tastierino.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/tastierino.vue index 237aef50..a404b798 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/tastierino.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/tastierino.vue @@ -1,20 +1,20 @@ From fbc6e22bf720cc32caf2d730e9a08adf119e654c Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 29 Apr 2020 09:46:31 +0200 Subject: [PATCH 042/167] fix avvio produzione modal --- .../assets/styles/base/avvio-prod.less | 18 +- .../wwwroot/assets/styles/base/layout.less | 2 +- .../assets/styles/base/tastierino.less | 1 - Thermo.Active/wwwroot/assets/styles/style.css | 736 +++++++++--------- 4 files changed, 384 insertions(+), 373 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/avvio-prod.less b/Thermo.Active/wwwroot/assets/styles/base/avvio-prod.less index 64190b33..c93223ad 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/avvio-prod.less +++ b/Thermo.Active/wwwroot/assets/styles/base/avvio-prod.less @@ -5,19 +5,25 @@ @modal: modal; .@{modal}.avvio-produzione-info { + margin-top: 100px; width: 653px; height: 616px; - // section.body{ + section.body{ - // section{ + section{ + justify-content: center; - // .specific{ + .specific{ - // } + .tast{ + margin-left: 25%; + } + + } - // } + } - // } + } } \ 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 39abfc19..61a41d28 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/layout.less +++ b/Thermo.Active/wwwroot/assets/styles/base/layout.less @@ -1,4 +1,5 @@ // out: false, sourceMap: false, main: ../style.less +@import "setup.less"; @import "colors.less"; @import "modals.less"; @import "pirometro.less"; @@ -9,7 +10,6 @@ @import "circlegantt.less"; @import "arretramento-riscaldi.less"; @import "avvio-prod.less"; -@import "setup.less"; @import "ciclo.less"; @import "raffreddamento.less"; @import "processo.less"; diff --git a/Thermo.Active/wwwroot/assets/styles/base/tastierino.less b/Thermo.Active/wwwroot/assets/styles/base/tastierino.less index 70c0c88b..1709ee9f 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/tastierino.less +++ b/Thermo.Active/wwwroot/assets/styles/base/tastierino.less @@ -4,7 +4,6 @@ @import "fonts.less"; .tast{ - margin-left: 25%; height: 261px; width: 293px; background-color:@color-silver; diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index e5e9a2b2..7e6b969c 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -1,6 +1,373 @@ @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: 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; + 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-minus-circle { + color: #7A7C74; +} +.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; + 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); +} +.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; } @@ -3986,7 +4353,6 @@ margin: 16px; } .tast { - margin-left: 25%; height: 261px; width: 293px; background-color: #bbbcbc; @@ -4141,375 +4507,15 @@ height: 411px; } .modal.avvio-produzione-info { + margin-top: 100px; width: 653px; height: 616px; } -.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; +.modal.avvio-produzione-info section.body section { 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; - 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-minus-circle { - color: #7A7C74; -} -.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; - 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); -} -.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; +.modal.avvio-produzione-info section.body section .specific .tast { + margin-left: 25%; } .modal.ciclo-info section .specific { padding: 0 10px; From b55569e6080f84f832420a7289c80e3ddacac5d6 Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 29 Apr 2020 11:41:39 +0200 Subject: [PATCH 043/167] fix style for disabled components on avvio produzione modal --- .../wwwroot/assets/icons/png/tast-disable.png | Bin 0 -> 37468 bytes .../wwwroot/assets/styles/base/avvio-prod.less | 5 +++++ Thermo.Active/wwwroot/assets/styles/style.css | 4 ++++ .../setup/avvio-pruduzione/avvio-produzione.vue | 1 + 4 files changed, 10 insertions(+) create mode 100644 Thermo.Active/wwwroot/assets/icons/png/tast-disable.png 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 0000000000000000000000000000000000000000..95c33ed24e1529d29fd56155792e329396067e0b GIT binary patch literal 37468 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%0D>6-u^)um2f*G^pF?74*xYS&&GA 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 M6}1#f<;(;B7d%m;wEzGB literal 0 HcmV?d00001 diff --git a/Thermo.Active/wwwroot/assets/styles/base/avvio-prod.less b/Thermo.Active/wwwroot/assets/styles/base/avvio-prod.less index c93223ad..da482df2 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/avvio-prod.less +++ b/Thermo.Active/wwwroot/assets/styles/base/avvio-prod.less @@ -16,6 +16,11 @@ .specific{ + .disabled{ + width: 420px; + height: 330px; + } + .tast{ margin-left: 25%; } diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 7e6b969c..68ddc941 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4514,6 +4514,10 @@ .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%; } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.vue index 1c08e416..289dbb0c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.vue @@ -12,6 +12,7 @@ +
From 4fd3807875c5bc6c87473cd519f264b0b72f8fd0 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 29 Apr 2020 18:05:26 +0200 Subject: [PATCH 044/167] Continuo gestione Recipe --- .../ConfigModels/RecipeConfigModel.cs | 9 --- .../{ => Recipe}/DTORecipeConfigModel .cs | 2 +- .../DTOModels/Recipe/DTORecipeOverview.cs | 12 ++++ .../DTOModels/Recipe/DTORecipeParam.cs | 28 ++++++++ .../DTOModels/Recipe/RecipeParam.cs | 21 ++++++ .../DTOModels/Recipe/RecipeParamRT.cs | 27 +++++++ .../Thermo.Active.Model.csproj | 6 +- Thermo.Active.NC/NcAdapter.cs | 70 +++++++++++++++++++ .../WebApi/ConfigurationController.cs | 5 +- .../Controllers/WebApi/RecipeController.cs | 59 ++++++++++++++-- 10 files changed, 221 insertions(+), 18 deletions(-) rename Thermo.Active.Model/DTOModels/{ => Recipe}/DTORecipeConfigModel .cs (89%) create mode 100644 Thermo.Active.Model/DTOModels/Recipe/DTORecipeOverview.cs create mode 100644 Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs create mode 100644 Thermo.Active.Model/DTOModels/Recipe/RecipeParam.cs create mode 100644 Thermo.Active.Model/DTOModels/Recipe/RecipeParamRT.cs diff --git a/Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs b/Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs index 8bb55c05..e7370a02 100644 --- a/Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs +++ b/Thermo.Active.Model/ConfigModels/RecipeConfigModel.cs @@ -12,14 +12,5 @@ namespace Thermo.Active.Model.ConfigModels public string Name { get; set; } public string Description { get; set; } public string Format { get; set; } -#if false - public string Label - { - get - { - return $"{Category}_{SubCategory_1}_{SubCategory_2}_{Name}".Replace("__", "_").Replace("__", "_").ToLower(); - } - } -#endif } } diff --git a/Thermo.Active.Model/DTOModels/DTORecipeConfigModel .cs b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeConfigModel .cs similarity index 89% rename from Thermo.Active.Model/DTOModels/DTORecipeConfigModel .cs rename to Thermo.Active.Model/DTOModels/Recipe/DTORecipeConfigModel .cs index 4370b221..4c5157aa 100644 --- a/Thermo.Active.Model/DTOModels/DTORecipeConfigModel .cs +++ b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeConfigModel .cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using Thermo.Active.Model.ConfigModels; -namespace Thermo.Active.Model.DTOModels +namespace Thermo.Active.Model.DTOModels.Recipe { public class DTORecipeConfigModel { diff --git a/Thermo.Active.Model/DTOModels/Recipe/DTORecipeOverview.cs b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeOverview.cs new file mode 100644 index 00000000..d7031b78 --- /dev/null +++ b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeOverview.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Thermo.Active.Model.DTOModels.Recipe +{ + public class DTORecipeOverview + { + } +} diff --git a/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs new file mode 100644 index 00000000..806d37b4 --- /dev/null +++ b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs @@ -0,0 +1,28 @@ +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 RPRange Range { get; set; } + public RPStatus Status { get; set; } + public string UnitMeasure { get; set; } + public double ValueAct { get; set; } + } + + public struct RPRange + { + public double Min { get; set; } + public double Max { get; set; } + } + public struct RPStatus + { + public bool Visible { get; set; } + public bool Enabled { get; set; } + public bool HasError { get; set; } + } +} 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/Thermo.Active.Model.csproj b/Thermo.Active.Model/Thermo.Active.Model.csproj index 610b00cc..25fb583e 100644 --- a/Thermo.Active.Model/Thermo.Active.Model.csproj +++ b/Thermo.Active.Model/Thermo.Active.Model.csproj @@ -104,7 +104,8 @@ - + + @@ -114,6 +115,9 @@ + + + diff --git a/Thermo.Active.NC/NcAdapter.cs b/Thermo.Active.NC/NcAdapter.cs index cfeac63e..915bf4a9 100644 --- a/Thermo.Active.NC/NcAdapter.cs +++ b/Thermo.Active.NC/NcAdapter.cs @@ -21,6 +21,7 @@ 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 { @@ -1411,6 +1412,75 @@ namespace Thermo.Active.NC return cmsError; } + /// + /// Legge tutti i parametri della ricetta + /// + /// Oggetto ricetta corrente HMI + /// + public CmsError ReadFullRecipe(out Dictionary current) + { + CmsError cmsError = NO_ERROR; + current = new Dictionary(); + + DTORecipeParam currParam = new DTORecipeParam(); + RPRange currRange = new RPRange(); + RPStatus currStatus = new RPStatus(); + + // !!!FARE davvero!!! + + // 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, + }; + current.Add(item.Label, currParam); + } + +#if false + // gestione errore + cmsError = ReadScadaData(schema, out currParam); + if (cmsError.IsError()) + return cmsError; +#endif + // restituisco cod errore se trovato + return cmsError; + } + + #endregion Read Data #region Write data diff --git a/Thermo.Active/Controllers/WebApi/ConfigurationController.cs b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs index 5dd036ed..cccac22b 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 { @@ -105,7 +106,7 @@ namespace Thermo.Active.Controllers.WebApi [Route("recipe"), HttpGet] public IHttpActionResult GetRecipeConfig() { - List recipe = RecipeConfig.Select(x => new DTORecipeConfigModel() + List recipeConfig = RecipeConfig.Select(x => new DTORecipeConfigModel() { Id = x.Id, Category = x.Category.ToString(), @@ -117,7 +118,7 @@ namespace Thermo.Active.Controllers.WebApi Label= $"{x.Category}_{x.SubCategory_1}_{x.SubCategory_2}_{x.Name}".Replace("__", "_").Replace("__", "_").ToLower() }).ToList(); - return Ok(recipe); + return Ok(recipeConfig); } [Route("alarms"), HttpGet] diff --git a/Thermo.Active/Controllers/WebApi/RecipeController.cs b/Thermo.Active/Controllers/WebApi/RecipeController.cs index 5c125f51..a5541e5b 100644 --- a/Thermo.Active/Controllers/WebApi/RecipeController.cs +++ b/Thermo.Active/Controllers/WebApi/RecipeController.cs @@ -12,6 +12,7 @@ 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 { @@ -19,17 +20,65 @@ namespace Thermo.Active.Controllers.WebApi public class RecipeController : ApiController { [Route("overview"), HttpGet] - public IHttpActionResult GetRecipeOverview(string filePath = "") + public IHttpActionResult GetOverview() { - using (NcFileAdapter ncAdapter = new NcFileAdapter()) +#if false + using (NcAdapter ncAdapter = new NcAdapter()) { ncAdapter.Connect(); - - CmsError cmsError = ncAdapter.GetFileList(filePath, out List fileList); + CmsError cmsError = ncAdapter.ReadScadasData(ProductionScadaSchema, out List values); if (cmsError.IsError()) return BadRequest(cmsError.localizationKey); - return Ok(fileList); + + ScadaDataAndSchema data = new ScadaDataAndSchema() + { + schemes = ProductionScadaSchema, + values = values + }; + + return Ok(data); + } +#endif + + 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); + } + [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); + +#if false + // riorganizzo come dictionary... + Dictionary paramsDict = new Dictionary(); + + // ciclo e compongo Dictionary + foreach (var item in values) + { + paramsDict.Add(item.Label, item); + } +#endif + + + return Ok(currentRecipe); } } } From a30e50fe53af7a089bf253391d90f8136cebb2e9 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 29 Apr 2020 18:07:35 +0200 Subject: [PATCH 045/167] Ok demo (SIM) x recipe/current --- Thermo.Active.NC/NcAdapter.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Thermo.Active.NC/NcAdapter.cs b/Thermo.Active.NC/NcAdapter.cs index 915bf4a9..2b4f816c 100644 --- a/Thermo.Active.NC/NcAdapter.cs +++ b/Thermo.Active.NC/NcAdapter.cs @@ -1463,9 +1463,9 @@ namespace Thermo.Active.NC currParam = new DTORecipeParam() { Range = currRange, - Status = currStatus + Status = currStatus, UnitMeasure = "", - ValueAct = actVal, + ValueAct = actVal }; current.Add(item.Label, currParam); } From d926a504d582b8e21284b329b05a9be782724bfe Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 29 Apr 2020 18:31:20 +0200 Subject: [PATCH 046/167] Aggiunto anche metodo x recipe overview --- Thermo.Active.Model/Constants.cs | 2 +- .../DTOModels/Recipe/DTORecipeParam.cs | 6 ++ Thermo.Active.NC/NcAdapter.cs | 77 ++++++++++++++++++- .../Controllers/WebApi/RecipeController.cs | 44 ++--------- 4 files changed, 85 insertions(+), 44 deletions(-) diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index 37e031bf..4c5497f8 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -83,7 +83,7 @@ namespace Thermo.Active.Model Heats, Pyrometer, Drawing, - Upper_plate, + UpperPlate, Cooling, Vacuum, Extraction, diff --git a/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs index 806d37b4..247c604a 100644 --- a/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs +++ b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs @@ -25,4 +25,10 @@ namespace Thermo.Active.Model.DTOModels.Recipe public bool Enabled { get; set; } public bool HasError { get; set; } } + public enum RecipeCatStatus + { + Unchanged = 0, + ChangedOk, + HasError + } } diff --git a/Thermo.Active.NC/NcAdapter.cs b/Thermo.Active.NC/NcAdapter.cs index 2b4f816c..c76c8a2f 100644 --- a/Thermo.Active.NC/NcAdapter.cs +++ b/Thermo.Active.NC/NcAdapter.cs @@ -1415,18 +1415,24 @@ namespace Thermo.Active.NC /// /// Legge tutti i parametri della ricetta /// - /// Oggetto ricetta corrente HMI + /// Oggetto ricetta corrente HMI /// - public CmsError ReadFullRecipe(out Dictionary current) + public CmsError ReadFullRecipe(out Dictionary currRecipe) { CmsError cmsError = NO_ERROR; - current = new Dictionary(); + currRecipe = new Dictionary(); DTORecipeParam currParam = new DTORecipeParam(); RPRange currRange = new RPRange(); RPStatus currStatus = new RPStatus(); // !!!FARE davvero!!! +#if false + // gestione errore + cmsError = ReadScadaData(schema, out currParam); + if (cmsError.IsError()) + return cmsError; +#endif // leggo l'intero array delle DB... QUI FAKE sulle DB configurate... List recipeConfig = RecipeConfig.Select(x => new DTORecipeConfigModel() @@ -1467,15 +1473,78 @@ namespace Thermo.Active.NC UnitMeasure = "", ValueAct = actVal }; - current.Add(item.Label, currParam); + currRecipe.Add(item.Label, currParam); } + // 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; } diff --git a/Thermo.Active/Controllers/WebApi/RecipeController.cs b/Thermo.Active/Controllers/WebApi/RecipeController.cs index a5541e5b..4bf64e2a 100644 --- a/Thermo.Active/Controllers/WebApi/RecipeController.cs +++ b/Thermo.Active/Controllers/WebApi/RecipeController.cs @@ -22,38 +22,16 @@ namespace Thermo.Active.Controllers.WebApi [Route("overview"), HttpGet] public IHttpActionResult GetOverview() { -#if false using (NcAdapter ncAdapter = new NcAdapter()) { - ncAdapter.Connect(); - CmsError cmsError = ncAdapter.ReadScadasData(ProductionScadaSchema, out List values); + // serve?!?!? + //ncAdapter.Connect(); + CmsError cmsError = ncAdapter.GetRecipeOverview(out Dictionary currOverview); if (cmsError.IsError()) return BadRequest(cmsError.localizationKey); - - ScadaDataAndSchema data = new ScadaDataAndSchema() - { - schemes = ProductionScadaSchema, - values = values - }; - - return Ok(data); - } -#endif - - 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); + return Ok(currOverview); + } } [Route("current"), HttpGet] public IHttpActionResult GetCurrentParameters() @@ -66,18 +44,6 @@ namespace Thermo.Active.Controllers.WebApi if (cmsError.IsError()) return BadRequest(cmsError.localizationKey); -#if false - // riorganizzo come dictionary... - Dictionary paramsDict = new Dictionary(); - - // ciclo e compongo Dictionary - foreach (var item in values) - { - paramsDict.Add(item.Label, item); - } -#endif - - return Ok(currentRecipe); } } From f9586ce949dc5b89111df3e9a3005a82b076a63d Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 30 Apr 2020 08:38:42 +0200 Subject: [PATCH 047/167] Fix enum json --- .../DTOModels/Recipe/DTORecipeOverview.cs | 11 +++++++++-- .../DTOModels/Recipe/DTORecipeParam.cs | 6 ------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Thermo.Active.Model/DTOModels/Recipe/DTORecipeOverview.cs b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeOverview.cs index d7031b78..2ce188b7 100644 --- a/Thermo.Active.Model/DTOModels/Recipe/DTORecipeOverview.cs +++ b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeOverview.cs @@ -1,4 +1,6 @@ -using System; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -6,7 +8,12 @@ using System.Threading.Tasks; namespace Thermo.Active.Model.DTOModels.Recipe { - public class DTORecipeOverview + + [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 index 247c604a..806d37b4 100644 --- a/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs +++ b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs @@ -25,10 +25,4 @@ namespace Thermo.Active.Model.DTOModels.Recipe public bool Enabled { get; set; } public bool HasError { get; set; } } - public enum RecipeCatStatus - { - Unchanged = 0, - ChangedOk, - HasError - } } From 93544b93a7c29a0e051f468f9a705ff250113fea Mon Sep 17 00:00:00 2001 From: Alessio Date: Thu, 30 Apr 2020 16:36:41 +0200 Subject: [PATCH 048/167] add format and binding of the data --- .../wwwroot/src/@types/recipe-current.d.ts | 95 ++++++++++++ .../formato/components/show-formato-info.ts | 6 + .../components/base-components/pirometro.ts | 53 +++++-- .../components/base-components/pirometro.vue | 20 ++- .../base-components/termo-superiore.ts | 139 ++++++++++++++++-- .../base-components/termo-superiore.vue | 47 ++++-- 6 files changed, 318 insertions(+), 42 deletions(-) create mode 100644 Thermo.Active/wwwroot/src/@types/recipe-current.d.ts diff --git a/Thermo.Active/wwwroot/src/@types/recipe-current.d.ts b/Thermo.Active/wwwroot/src/@types/recipe-current.d.ts new file mode 100644 index 00000000..444ab543 --- /dev/null +++ b/Thermo.Active/wwwroot/src/@types/recipe-current.d.ts @@ -0,0 +1,95 @@ +declare module Recipe { + + interface IRange{ + min:number, + max:number + } + + interface IStatus{ + visible:boolean, + enabled:boolean, + hasError:boolean + } + + interface IValue{ + range:IRange, + status:IStatus, + unitMeasure:string, + valueAct:number + } + + interface IRecipe{ + 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, + } + +} \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts index b54f030f..3de533af 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts @@ -35,6 +35,12 @@ import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue" }) export default class ShowFormatoInfo extends Vue { + // Recipe:Recipe.IRecipe={ + // heats_lowerheaters_max_time:{ + + // } + // }; + show:string="placeholder"; StX:number=100; 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..10703ace 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,51 @@ 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; + + recipe:Recipe.IRecipe={ + pyrometer_pyrometer_enabled:{ + range:{ + min:3, + max:103 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:79 + }, + pyrometer_pyrometer_delay:{ + range:{ + min:7, + max:152 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:86 + }, + pyrometer_pyrometer_setpoint:{ + range:{ + min:2, + max:159 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:3 + } + }; } \ 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..6c6db4d9 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 @@ -3,20 +3,30 @@
- +
- +
- + +
- +
- + +
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..6421412d 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 @@ -8,23 +8,130 @@ import SVGTermoregolazioneSuperiore from './SVG_Components/SVG-termo-superiore.v @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; + recipe:Recipe.IRecipe={ + pyrometer_upperthermoregulator_start_adjustment:{ + range:{ + min:7, + max:189 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:33 + }, + pyrometer_upperthermoregulator_end_adjustment:{ + range:{ + min:0, + max:109 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:59 + }, + pyrometer_upperthermoregulator_max_percentage:{ + range:{ + min:7, + max:181 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:39 + }, + pyrometer_upperthermoregulator_min_percentage:{ + range:{ + min:1, + max:155 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:17 + }, + pyrometer_upperthermoregulator_sleep_enabled:{ + range:{ + min:3, + max:179 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:90 + }, + pyrometer_upperthermoregulator_sleep_percentage:{ + range:{ + min:5, + max:174 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:169 + }, + pyrometer_upperthermoregulator_sleep_temperature:{ + range:{ + min:6, + max:125 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:45 + }, + pyrometer_upperthermoregulator_working_temperature:{ + range:{ + min:5, + max:135 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:15 + } + }; - 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({default:0}) + // inizioreg:number; + // @Prop({default:0}) + // finereg:number; + // @Prop({default:0}) + // max:number; + // @Prop({default:0}) + // min:number; + // @Prop({default:0}) + // riposo:number; - enabling:boolean=true; + // 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 + + // 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..3b3582e9 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 @@ -3,39 +3,64 @@
From 87976bea45979083f7f30d321720c8ab3524ce02 Mon Sep 17 00:00:00 2001 From: Damiano Date: Thu, 30 Apr 2020 17:14:26 +0200 Subject: [PATCH 049/167] Fix overview (general,position and cycle). --- .../wwwroot/assets/styles/base/paddle.css | 65 ++++++++ .../wwwroot/assets/styles/base/paddle.less | 91 ++++++++++ .../wwwroot/src/@types/recipe-current.d.ts | 157 ++++++++++++++++++ .../wwwroot/src/@types/recipe-overview.d.ts | 16 ++ 4 files changed, 329 insertions(+) create mode 100644 Thermo.Active/wwwroot/assets/styles/base/paddle.css create mode 100644 Thermo.Active/wwwroot/assets/styles/base/paddle.less create mode 100644 Thermo.Active/wwwroot/src/@types/recipe-current.d.ts create mode 100644 Thermo.Active/wwwroot/src/@types/recipe-overview.d.ts diff --git a/Thermo.Active/wwwroot/assets/styles/base/paddle.css b/Thermo.Active/wwwroot/assets/styles/base/paddle.css new file mode 100644 index 00000000..ecc5a8e2 --- /dev/null +++ b/Thermo.Active/wwwroot/assets/styles/base/paddle.css @@ -0,0 +1,65 @@ +.hidden { + visibility: hidden; +} +button { + cursor: pointer; +} +/* remove blue outline */ +button:focus { + outline: 0; +} +.burger-button { + position: relative; + height: 30px; + width: 32px; + display: block; + z-index: 999; + border: 0; + border-radius: 0; + background-color: transparent; + pointer-events: all; + transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1); +} +.burger-bar { + background-color: #130f40; + position: absolute; + top: 50%; + right: 6px; + left: 6px; + height: 2px; + width: auto; + margin-top: -1px; + transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1), opacity 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), background-color 0.6s cubic-bezier(0.165, 0.84, 0.44, 1); +} +.burger-bar--1 { + -webkit-transform: translateY(-6px); + transform: translateY(-6px); +} +.burger-bar--2 { + transform-origin: 100% 50%; + transform: scaleX(0.8); +} +.burger-button:hover .burger-bar--2 { + transform: scaleX(1); +} +.no-touchevents .burger-bar--2:hover { + transform: scaleX(1); +} +.burger-bar--3 { + transform: translateY(6px); +} +#burger.active .burger-button { + transform: rotate(-180deg); +} +#burger.active .burger-bar { + background-color: #fff; +} +#burger.active .burger-bar--1 { + transform: rotate(45deg); +} +#burger.active .burger-bar--2 { + opacity: 0; +} +#burger.active .burger-bar--3 { + transform: rotate(-45deg); +} diff --git a/Thermo.Active/wwwroot/assets/styles/base/paddle.less b/Thermo.Active/wwwroot/assets/styles/base/paddle.less new file mode 100644 index 00000000..471e26e9 --- /dev/null +++ b/Thermo.Active/wwwroot/assets/styles/base/paddle.less @@ -0,0 +1,91 @@ +// out: false, sourceMap: false, main: ../style.less +@import "colors.less"; +body { + display: grid; + margin: 0; + } + + #app { + display: flex; + justify-content: center; + align-items: center; + } + + .hidden { + visibility: hidden; + } + + /** burger **/ + + + button { + cursor: pointer; + } + + /* remove blue outline */ + button:focus { + outline: 0; + } + + .burger-button { + position: relative; + height: 30px; + width: 32px; + display: block; + z-index: 60; + border: 0; + border-radius: 0; + background-color: transparent; + pointer-events: all; + transition: transform .6s cubic-bezier(.165,.84,.44,1); + } + + .burger-bar { + background-color: #000; + position: absolute; + top: 50%; + right: 6px; + left: 6px; + height: 2px; + width: auto; + margin-top: -1px; + transition: transform .6s cubic-bezier(.165,.84,.44,1),opacity .3s cubic-bezier(.165,.84,.44,1),background-color .6s cubic-bezier(.165,.84,.44,1); + } + + .burger-bar--1 { + -webkit-transform: translateY(-6px); + transform: translateY(-6px); + } + + .burger-bar--2 { + transform-origin: 100% 50%; + transform: scaleX(.8); + } + + .burger-button:hover .burger-bar--2 { + transform: scaleX(1); + } + + .no-touchevents .burger-bar--2:hover { + transform: scaleX(1); + } + + .burger-bar--3 { + transform: translateY(6px); + } + + #burger.active .burger-button { + transform: rotate(-180deg); + } + + #burger.active .burger-bar--1 { + transform: rotate(45deg) + } + + #burger.active .burger-bar--2 { + opacity: 0; + } + + #burger.active .burger-bar--3 { + transform: rotate(-45deg) + } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/@types/recipe-current.d.ts b/Thermo.Active/wwwroot/src/@types/recipe-current.d.ts new file mode 100644 index 00000000..d3fbd86e --- /dev/null +++ b/Thermo.Active/wwwroot/src/@types/recipe-current.d.ts @@ -0,0 +1,157 @@ +declare module Recipe { + + interface IRange{ + min:number, + max:number + } + + interface IStatus{ + visible:boolean, + enabled:boolean, + hasError:boolean + } + + interface IValue{ + range:IRange, + status:IStatus, + unitMeasure:string, + valueAct:number + } + + 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_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_position?:IValue, + positions_mould_lowerdeceleration_speed?:IValue, + positions_frame_lower_position?:IValue, + positions_frame_lower_speed?:IValue, + positions_frame_upper_position?:IValue, + positions_frame_upper_speed?: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_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, + } + +} \ 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..2e4ab38a --- /dev/null +++ b/Thermo.Active/wwwroot/src/@types/recipe-overview.d.ts @@ -0,0 +1,16 @@ +declare module Overview { + interface IOverview{ + + general:number, + positions:number, + cycle: number, + heats: number, + pyrometer: number, + drawing: number, + upperPlate: number, + cooling: number, + vacuum: number, + extraction: number, + options: number + } +} \ No newline at end of file From d99c7b52a68eaae87f6ccf47387b8470cd61b209 Mon Sep 17 00:00:00 2001 From: Alessio Date: Mon, 4 May 2020 09:26:26 +0200 Subject: [PATCH 050/167] format and binding of the data for riscaldi modal --- .../base-components/riscaldi-superiori.ts | 63 ++++++++++- .../base-components/riscaldi-superiori.vue | 9 +- .../sostentamento-decompressione.ts | 106 +++++++++++++++++- .../sostentamento-decompressione.vue | 18 ++- 4 files changed, 178 insertions(+), 18 deletions(-) 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..77c14bdb 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,63 @@ import toggleButton from "@/components/toggleButton.vue"; }) export default class RiscaldiSuperiori extends Vue { - @Prop({ default: 0 }) - ritardo: number; - @Prop({ default: 0 }) - durata: number; + recipe:Recipe.IRecipe={ + heats_upperheaters_max_time:{ + range:{ + min:4, + max:165 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:159 + }, + heats_upperheaters_movement_enabled:{ + range:{ + min:5, + max:157 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:71 + }, + + heats_upperheaters_enabled:{ + range:{ + min:8, + max:192 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:171 + }, + + heats_upperheaters_oscillation:{ + range:{ + min:4, + max:150 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:138 + }, + +} - 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..7a845839 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 @@ -8,9 +8,14 @@
- +
- + +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.ts index bc44c56c..174bd92a 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.ts @@ -7,11 +7,105 @@ import toggleButton from "@/components/toggleButton.vue"; @Component({ name: "sostdecomp", components: { slider: Slider, toggleButton } }) export default class SostDecomp extends Vue { - @Prop({ default: 0 }) - portata: number; - @Prop({ default: 0 }) - duratamin: number; + recipe:Recipe.IRecipe={ + heats_decomsustain_type:{ + range:{ + min:4, + max:111 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:86 + }, + + heats_decomsustain_decompression_flow:{ + range:{ + min:9, + max:105 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:35 + }, + + heats_decomsustain_min_blowing_time:{ + range:{ + min:0, + max:127 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:63 + }, + + heats_decomsustain_sustain_delay:{ + range:{ + min:6, + max:198 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:159 + }, + + heats_decomsustain_decompression_delay:{ + range:{ + min:1, + max:163 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:26 + }, + + heats_decomsustain_decompression_duration:{ + range:{ + min:6, + max:108 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:72 + }, + + heats_decomsustain_smoke_function_enabled:{ + range:{ + min:5, + max:132 + }, + status:{ + enabled:true, + visible:true, + hasError:false + }, + unitMeasure:"", + valueAct:89 + }, + +} - mockP: number = this.portata; - mockDM: number = this.duratamin; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue index ca9fe711..abde5e07 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue @@ -9,14 +9,24 @@
- +
- + +
- +
- + +
From 11928ef3bf5f074c6425e71608c09cf3642b9532 Mon Sep 17 00:00:00 2001 From: Alessio Date: Mon, 4 May 2020 10:08:22 +0200 Subject: [PATCH 051/167] Auto stash before merge of "newfeature/processo" and "origin/newfeature/paddle" --- .../components/base-components/riscaldi-superiori.ts | 5 +++++ .../components/base-components/riscaldi-superiori.vue | 10 +++++----- .../base-components/sostentamento-decompressione.vue | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) 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 77c14bdb..8769df89 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,6 +11,11 @@ import toggleButton from "@/components/toggleButton.vue"; }) export default class RiscaldiSuperiori extends Vue { + @Prop({default:0}) + setpoint:number; + + mock_setpoint:number=this.setpoint; + recipe:Recipe.IRecipe={ heats_upperheaters_max_time:{ range:{ 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 7a845839..6a2a51c8 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 @@ -3,7 +3,7 @@ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue index abde5e07..7bb35b6f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue @@ -29,7 +29,7 @@
- +
From 16bda5b2a9ac8f6b641416a19aebb497c16643da Mon Sep 17 00:00:00 2001 From: Alessio Date: Mon, 4 May 2020 14:28:21 +0200 Subject: [PATCH 052/167] format and binding of the data --- .../base-components/aria-controstampo.ts | 141 ++++++++++++++++-- .../base-components/aria-controstampo.vue | 33 +++- .../base-components/ciclo-controstampo.ts | 49 +++++- .../base-components/ciclo-controstampo.vue | 18 ++- .../setup/imbutitura/show-imbutitura-info.ts | 121 +++++++++++++++ .../setup/imbutitura/show-imbutitura-info.vue | 37 +++-- .../SVG_Components/SVG-termo-superiore.ts | 6 - .../SVG_Components/SVG-termo-superiore.vue | 10 +- .../base-components/termo-superiore.ts | 19 --- .../base-components/termo-superiore.vue | 8 +- 10 files changed, 375 insertions(+), 67 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.ts index 659a67eb..45d47b8d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.ts @@ -7,14 +7,137 @@ import Scheda from "@/app_modules_thermo/components/scheda.vue"; @Component({name:"ariacontrostampo", components: { scheda:Scheda,slider:Slider}}) export default class AriaControstampo extends Vue { - @Prop({default:0}) - ritardo:number; - - mockR:number=this.ritardo; - - @Prop({default:0}) - durata:number; - - mockD:number=this.durata; + recipe:Recipe.IRecipe={ + upperplate_air_enable: { + range: { + min: 8, + max: 181 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 72 + }, + upperplate_air_delay: { + range: { + min: 7, + max: 152 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 70 + }, + upperplate_air_max_time: { + range: { + min: 9, + max: 192 + }, + status: { + visible: true, + enabled: true, + hasError: true + }, + unitMeasure: "", + valueAct: 195 + }, + upperplate_air_1_chart_setpointx: { + range: { + min: 0, + max: 141 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 108 + }, + upperplate_air_1_chart_setpointy: { + range: { + min: 4, + max: 127 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 104 + }, + upperplate_air_2_chart_setpointx: { + range: { + min: 2, + max: 167 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 86 + }, + upperplate_air_2_chart_setpointy: { + range: { + min: 9, + max: 109 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 22 + }, + upperplate_air_3_chart_setpointx: { + range: { + min: 8, + max: 165 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 87 + }, + upperplate_air_3_chart_setpointy: { + range: { + min: 3, + max: 190 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 60 + }, + upperplate_air_manual: { + range: { + min: 3, + max: 191 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 28 + }, + } } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue index 2be9a458..e03a56e1 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue @@ -4,22 +4,41 @@
- +
- + +
- - - + + +
- +
- + +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.ts index e8074db2..7a7c483e 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.ts @@ -13,14 +13,49 @@ import ToggleButton from "@/components/toggleButton.vue"; }) export default class CicloControstampo extends Vue { - @Prop({default:0}) - durata:number; - @Prop({default:0}) - ritardo:number; + recipe:Recipe.IRecipe={ + upperplate_cycle_type: { + range: { + min: 6, + max: 114 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 29 + }, + upperplate_cycle_delay: { + range: { + min: 9, + max: 129 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 11 + }, + upperplate_cycle_time: { + range: { + min: 5, + max: 157 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 107 + }, + + } abilit:boolean=false; - 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/controstampo_setup/components/base-components/ciclo-controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.vue index 5705eb04..7a604484 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.vue @@ -14,14 +14,24 @@
- +
- + +
- +
- + +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts index bdb4aefb..b79c5d43 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts @@ -17,6 +17,127 @@ import Scheda from "@/app_modules_thermo/components/scheda.vue"; }) export default class ShowImbutituraInfo extends Vue { + recipe:Recipe.IRecipe={ + drawing_type: { + range: { + min: 2, + max: 155 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 139 + }, + drawing_height: { + range: { + min: 2, + max: 169 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 115 + }, + drawing_delay: { + range: { + min: 5, + max: 146 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 87 + }, + drawing_1_chart_setpointx: { + range: { + min: 8, + max: 145 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 48 + }, + drawing_1_chart_setpointy: { + range: { + min: 6, + max: 105 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 76 + }, + drawing_photocell: { + range: { + min: 8, + max: 185 + }, + status: { + visible: true, + enabled: true, + hasError: true + }, + unitMeasure: "", + valueAct: 188 + }, + drawing_mantaining_flow: { + range: { + min: 2, + max: 143 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 137 + }, + drawing_manual: { + range: { + min: 1, + max: 138 + }, + status: { + visible: true, + enabled: true, + hasError: true + }, + unitMeasure: "", + valueAct: 141 + }, + drawing_mould_up_delay: { + range: { + min: 6, + max: 118 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 44 + }, + + } + @Prop({default:0}) ritardo:number; @Prop({default:0}) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue index 5a53aea3..0bc41162 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue @@ -11,9 +11,13 @@
- +
- + +
@@ -31,23 +35,38 @@
- +
- + +
- +
- + +
- +
- + +
- +
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..0d9ec9a3 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 @@ -16,10 +16,4 @@ export default class SVGTermoregolazioneSuperiore extends Vue{ @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 - } \ 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..3d6b8b7a 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 @@ -3,25 +3,25 @@
- +
- +
- +
- +
- +
270 °C 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 6421412d..1e900d3b 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 @@ -115,23 +115,4 @@ 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 - - // 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 3b3582e9..e2b45b1d 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 @@ -64,7 +64,13 @@
- + From bfd963f8d723cf3fd4c29bf0eb5d2e2941d45389 Mon Sep 17 00:00:00 2001 From: Alessio Date: Mon, 4 May 2020 16:18:33 +0200 Subject: [PATCH 053/167] fix paddle --- .../wwwroot/assets/styles/base/paddle.less | 238 ++++++++------- Thermo.Active/wwwroot/assets/styles/style.css | 286 ++++++++---------- Thermo.Active/wwwroot/src/App.vue | 9 +- .../components/paddle/sidebar.vue | 2 +- .../components/paddle/switch-button.vue | 14 +- .../app_modules_thermo/components/scheda.ts | 9 + .../app_modules_thermo/components/scheda.vue | 4 +- .../base-components/aria-controstampo.vue | 12 + .../setup/imbutitura/show-imbutitura-info.vue | 4 + 9 files changed, 286 insertions(+), 292 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/paddle.less b/Thermo.Active/wwwroot/assets/styles/base/paddle.less index 2499730e..d96d7bfd 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/paddle.less +++ b/Thermo.Active/wwwroot/assets/styles/base/paddle.less @@ -6,88 +6,81 @@ html { height: 100%; overflow:hidden; - } +} body { border: 0; margin: 0; padding: 0; height: 100%; } + .hidden { + visibility: hidden; + } - .main-nav { + 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: 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; + + div{ + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-template-rows: 1fr 1fr; + align-items: center; + justify-items: center; + padding: 5px; + + + div { + width: 10px; + height: 10px; + border-radius: 10px; + margin: 3px; + background: #002680; + + } + + } + + } + + } +} + +// .slide-enter-active, +// .slide-leave-active +// { +// transition: left,right 0s ease-in-out; +// } - .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; - } +// .slide-enter, +// .slide-leave-to { +// transition: right,left 0s ease-in-out +// } - .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; - - - 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; - } - - .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{ .sidebar-backdrop { width: 100vw; @@ -112,58 +105,73 @@ 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; - .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; - } + .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; - .circle-button { - width: 10px; - height: 10px; - border-radius: 10px; - margin: 3px; - background: #002680; + .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-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; - } diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index c9931dc4..8873845a 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4444,166 +4444,6 @@ grid-column: 0.8; grid-row: 0.5; } - -html { - height: 100%; - overflow: hidden; -} -body { - border: 0; - margin: 0; - padding: 0; - height: 100%; -} -.main-nav { - position: absolute; - top: 50%; - right: 0; -} -.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; -} -.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; -} -.text-box-paddle 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; -} -.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 { - width: 100vw; - height: 100vh; - position: fixed; - top: 0; - left: 0; - cursor: pointer; -} -.sidebar-panel { - overflow-y: auto; - background-color: #130f40; - position: fixed; - right: 0; - top: 141px; - height: 100vh; - z-index: 900; - padding: 3rem 20px 2rem 20px; - width: 721px; - height: 920px; - border-radius: 4px; - box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5); - background-color: #dddddd; -} -.hidden { - visibility: hidden; -} -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 { - 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-touchevents .burger-bar--2:hover { - transform: scaleX(1); -} -.burger-bar--3 { - transform: translateY(6px); -} -#burger.active .burger-button { - transform: rotate(-180deg); -} -#burger.active .burger-bar { - background-color: #fff; -} -#burger.active .burger-bar--1 { - transform: rotate(45deg); -} -#burger.active .burger-bar--2 { - opacity: 0; -} -#burger.active .burger-bar--3 { - transform: rotate(-45deg); -} - .circle-gantt { height: 70px; } @@ -4662,6 +4502,132 @@ button { width: 20px; height: 20px; } +html { + height: 100%; + overflow: hidden; +} +body { + border: 0; + margin: 0; + padding: 0; + height: 100%; +} +.hidden { + visibility: hidden; +} +nav { + position: absolute; + top: 50%; + right: 0; +} +nav .active button { + transform: translate(-761px, 0px); +} +nav div 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; +} +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; +} +nav div button div div { + width: 10px; + height: 10px; + border-radius: 10px; + margin: 3px; + background: #002680; +} +.sidebar .sidebar-backdrop { + width: 100vw; + height: 100vh; + position: fixed; + top: 0; + left: 0; + cursor: pointer; +} +.sidebar .sidebar-panel { + overflow-y: auto; + background-color: #130f40; + position: fixed; + right: 0; + top: 141px; + height: 100vh; + z-index: 900; + padding: 3rem 20px 2rem 20px; + width: 721px; + height: 920px; + border-radius: 4px; + box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5); + background-color: #dddddd; +} +.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; +} +.sidebar .sidebar-panel .box-sidebar-panel { + display: grid; + grid-template-columns: repeat(2, 1fr); + align-items: center; + justify-items: center; +} +.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; +} +.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; +} +.sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav .text-box-paddle i { + text-align: end; + width: 50px; + color: #bbbcbc; +} +.sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav .text-box-paddle label { + width: 117px; + margin: 10px; +} +.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; diff --git a/Thermo.Active/wwwroot/src/App.vue b/Thermo.Active/wwwroot/src/App.vue index 12f90cab..4a36198b 100644 --- a/Thermo.Active/wwwroot/src/App.vue +++ b/Thermo.Active/wwwroot/src/App.vue @@ -18,16 +18,11 @@
- -
-
+
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/switch-button.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/switch-button.vue index 88ad7eda..59161c66 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/switch-button.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/switch-button.vue @@ -1,12 +1,12 @@ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue index e03a56e1..5c87df5d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue @@ -17,15 +17,27 @@
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue index 0bc41162..30c6423e 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue @@ -65,7 +65,11 @@
From 4f9d26c536034416dd5fe1f9336c11da0e4cb4e4 Mon Sep 17 00:00:00 2001 From: Alessio Date: Tue, 5 May 2020 11:42:03 +0200 Subject: [PATCH 054/167] fix paddle --- .../wwwroot/assets/styles/base/paddle.less | 293 +++++++++--------- Thermo.Active/wwwroot/assets/styles/style.css | 34 +- .../components/paddle/sidebar.vue | 93 +++--- 3 files changed, 215 insertions(+), 205 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/paddle.less b/Thermo.Active/wwwroot/assets/styles/base/paddle.less index d96d7bfd..e8c1944e 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/paddle.less +++ b/Thermo.Active/wwwroot/assets/styles/base/paddle.less @@ -17,161 +17,172 @@ html { visibility: hidden; } - nav { - position: absolute; - top: 50%; - right: 0; +.container{ - .active button{ - transform: translate(-761px, 0px); - } - - div{ - - 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; + #app{ + nav { + position: absolute; + top: 50%; + right: 0; + + .active button{ + transform: translate(-761px, 0px); + } + div{ - display: grid; - grid-template-columns: repeat(2, 1fr); - grid-template-rows: 1fr 1fr; - align-items: center; - justify-items: center; - padding: 5px; + + 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; + + 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; + + } + + } + + } + + } + } + + + // .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{ + + .sidebar-backdrop{ + width: 100vw; + height: 100vh; + position: fixed; + top: 0; + left: 0; + cursor: pointer; + } + .sidebar-panel{ - div { - width: 10px; - height: 10px; - border-radius: 10px; - margin: 3px; - 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{ - - .sidebar-backdrop { - width: 100vw; - height: 100vh; - position: fixed; - top: 0; - left: 0; - cursor: pointer; - } - - .sidebar-panel { - overflow-y: auto; - background-color: #130f40; - position: fixed; - right: 0; - top: 141px; - height: 100vh; - z-index: 900; - padding: 3rem 20px 2rem 20px; - width: 721px; - height: 920px; - border-radius: 4px; - box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5); - background-color: #dddddd; - - .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; - } - - .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; + overflow-y: auto; + background-color: #130f40; + position: fixed; + right: 0; + top: 141px; + height: 100vh; + z-index: 900; + padding: 3rem 20px 2rem 20px; + width: 721px; + height: 920px; + border-radius: 4px; + box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5); + background-color: #dddddd; - i{ - text-align: end; - width: 50px; - color: #bbbcbc; + .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; } - label{ - width: 117px; - margin: 10px; + .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; + } + } + + } + } + } + - .text-box-paddle.text-soft{ - label{ - width: 100%; - align-self: center; - } - } - - } - + } } } - - + \ 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 8873845a..5cd1214d 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4515,15 +4515,15 @@ body { .hidden { visibility: hidden; } -nav { +.container #app nav { position: absolute; top: 50%; right: 0; } -nav .active button { +.container #app nav .active button { transform: translate(-761px, 0px); } -nav div button { +.container #app nav div button { position: relative; height: 30px; width: 32px; @@ -4538,7 +4538,7 @@ nav div button { height: 90px; width: 45px; } -nav div button div { +.container #app nav div button div { display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: 1fr 1fr; @@ -4546,14 +4546,14 @@ nav div button div { justify-items: center; padding: 5px; } -nav div button div div { - width: 10px; - height: 10px; +.container #app nav div button div div { + width: 2px; + height: 2px; border-radius: 10px; - margin: 3px; + margin: 2px; background: #002680; } -.sidebar .sidebar-backdrop { +.container #app .sidebar .sidebar-backdrop { width: 100vw; height: 100vh; position: fixed; @@ -4561,7 +4561,7 @@ nav div button div div { left: 0; cursor: pointer; } -.sidebar .sidebar-panel { +.container #app .sidebar .sidebar-panel { overflow-y: auto; background-color: #130f40; position: fixed; @@ -4576,7 +4576,7 @@ nav div button div div { box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5); background-color: #dddddd; } -.sidebar .sidebar-panel .text-head-sidebar { +.container #app .sidebar .sidebar-panel .text-head-sidebar { margin: 10px auto; font-size: 24px; font-weight: 500; @@ -4587,13 +4587,13 @@ nav div button div div { text-align: center; color: #002680; } -.sidebar .sidebar-panel .box-sidebar-panel { +.container #app .sidebar .sidebar-panel .box-sidebar-panel { display: grid; grid-template-columns: repeat(2, 1fr); align-items: center; justify-items: center; } -.sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav { +.container #app .sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav { width: 286px; height: 100px; border-radius: 2px; @@ -4601,7 +4601,7 @@ nav div button div div { background-color: #808e96; margin: 10px 30px; } -.sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav .text-box-paddle { +.container #app .sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav .text-box-paddle { display: flex; width: 268px; height: 78px; @@ -4615,16 +4615,16 @@ nav div button div div { color: #ffffff; margin: 10px; } -.sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav .text-box-paddle i { +.container #app .sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav .text-box-paddle i { text-align: end; width: 50px; color: #bbbcbc; } -.sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav .text-box-paddle label { +.container #app .sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav .text-box-paddle label { width: 117px; margin: 10px; } -.sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav .text-box-paddle.text-soft label { +.container #app .sidebar .sidebar-panel .box-sidebar-panel .sidebar-panel-nav .text-box-paddle.text-soft label { width: 100%; align-self: center; } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/sidebar.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/sidebar.vue index cb43b0f4..5a6fa93f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/sidebar.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/sidebar.vue @@ -1,7 +1,8 @@ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.ts index 03d3b30e..8c315fae 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.ts @@ -7,46 +7,7 @@ import ToggleButton from "@/components/toggleButton.vue"; @Component({ components: { slider: Slider, ToggleButton } }) export default class MascheraCristallizzazione extends Vue { recipe:Recipe.IRecipe={ - cycle_acrylicframe_enabled: { - range: { - min: 5, - max: 162 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 48 - }, -} -cycle_acrylicframe_time: { - range: { - min: 6, - max: 190 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 23 -} -cycle_upperoverheating_enabled: { - range: { - min: 1, - max: 173 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 160 -} + cycle_crystallisation_type: { range: { min: 1, @@ -59,7 +20,20 @@ cycle_crystallisation_type: { }, unitMeasure: "", valueAct: 94 -} +}, +cycle_crystallisation_enabled: { + range: { + min: 1, + max: 100 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 94 +}, cycle_crystallisation_time: { range: { min: 0, @@ -72,20 +46,8 @@ cycle_crystallisation_time: { }, unitMeasure: "", valueAct: 121 -} +}, -cycle_loader_enable: { - range: { - min: 6, - max: 127 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 48 } enabling:boolean=true; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue index 277e4d78..39b43b0c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue @@ -6,13 +6,17 @@
- +
- +
- + +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.ts index 9d1ff898..2cfd9126 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.ts @@ -6,20 +6,7 @@ import Slider from "@/app_modules_thermo/components/slider.vue"; @Component({ components: { slider: Slider } }) export default class MascheraRiscaldo extends Vue { recipe:Recipe.IRecipe={ - cycle_acrylicframe_time: { - range: { - min: 6, - max: 190 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 23 - }, - + cycle_upperoverheating_enabled:{ range: { min: 1, @@ -32,34 +19,23 @@ recipe:Recipe.IRecipe={ }, unitMeasure: "", valueAct: 160 + }, + cycle_upperoverheating_time: { + range: { + min: 2, + max: 164 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 151 } } -cycle_upperoverheating_enabled: { - range: { - min: 1, - max: 173 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 160 -} -cycle_crystallisation_time: { - range: { - min: 0, - max: 198 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 121 -} + + @Prop({ default: 0 }) durata: number; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.vue index 0473a356..95dc6f60 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.vue @@ -6,9 +6,13 @@
- +
- + +
From bdbc136638a5038613a674ce354f31bca3f09593 Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 6 May 2020 10:23:26 +0200 Subject: [PATCH 057/167] fix Prop modale ciclo --- .../components/base-components/caricatore.ts | 24 +------------------ .../base-components/formatura-acrilico.ts | 5 ---- .../formatura-cristallizzazione.ts | 7 ------ .../base-components/formatura-riscaldo.ts | 7 ------ .../setup/ciclo/components/show-ciclo-info.ts | 3 --- 5 files changed, 1 insertion(+), 45 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.ts index 33558d4c..62b56c2a 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.ts @@ -166,28 +166,6 @@ recipe:Recipe.IRecipe={ } } - @Prop({ default: 0 }) - ritardodiscesa: number; - @Prop({ default: 0 }) - ritardosalita: number = 0; - @Prop({ default: 0 }) - durata: number = 0; - @Prop({ default: 0 }) - ritardoespulsore: number = 0; - @Prop({ default: 0 }) - altezza: number = 0; - - ritdsol = this.ritardodiscesa - ritssol = this.ritardosalita - dursep = this.durata - ritesp = this.ritardoespulsore - altbanc = this.altezza - - abi: string = "ON"; - - retAbi() { - if (this.abi == "OFF") this.abi = "ON" - else this.abi = "OFF"; - }; + } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-acrilico.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-acrilico.ts index aa12a491..0c823c2f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-acrilico.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-acrilico.ts @@ -35,11 +35,6 @@ recipe:Recipe.IRecipe={ } } - enabling:boolean=true; - @Prop({ default: 0 }) - durata: number; - - mock_durata:number=this.durata; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.ts index 8c315fae..72b7fd7c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.ts @@ -50,11 +50,4 @@ cycle_crystallisation_time: { } - enabling:boolean=true; - - @Prop({ default: 0 }) - durata: number; - - mock_durata:number=this.durata; - } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.ts index 2cfd9126..f0fa17a9 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.ts @@ -35,11 +35,4 @@ recipe:Recipe.IRecipe={ } } - - @Prop({ default: 0 }) - durata: number; - - mock_durata:number=this.durata; - - } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.ts index f8032e49..b65b2c4c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.ts @@ -10,9 +10,6 @@ import Caricatore from "./base-components/caricatore.vue"; @Component({ components: { modal: Modal, stepfooter: StepFooter, caricatore: Caricatore, cicloformatura: CicloFormatura } }) export default class ShowCicloInfo extends Vue { - - - show: string = "caricatore"; annulla() { From f08b33ebf6ac34384d9e51803b439686df43eb10 Mon Sep 17 00:00:00 2001 From: Damiano Date: Wed, 6 May 2020 11:23:56 +0200 Subject: [PATCH 058/167] fix "General binding" --- .../setup/formato/components/controstampo.ts | 13 +++++ .../setup/formato/components/controstampo.vue | 8 ++- .../setup/formato/components/cornice.vue | 16 ++++-- .../setup/formato/components/lastra.ts | 40 ++++++++++++++ .../setup/formato/components/lastra.vue | 24 ++++++-- .../formato/components/piastra_riduzione.vue | 16 ++++-- .../formato/components/show-formato-info.ts | 15 +++++ .../setup/formato/components/stampo.ts | 55 ++++++++++++++++++- .../setup/formato/components/stampo.vue | 8 +-- 9 files changed, 174 insertions(+), 21 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts index 7ca051b2..88a6ff13 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts @@ -20,6 +20,19 @@ export default class Controstampo extends Vue { unitMeasure: "", valueAct: 28 }, + general_sizes_upperplate_max_height: { + range: { + min: 2, + max: 149 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 106 + }, } @Prop({default:0}) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue index 57a03d03..ea057372 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue @@ -6,9 +6,13 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue index 776261b1..b7206d54 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue @@ -13,15 +13,23 @@
- +
- +
- +
- + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts index 5d16f897..10b76385 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts @@ -33,6 +33,46 @@ export default class Lastra extends Vue { unitMeasure: "", valueAct: 86 } + general_sizes_sheet_dim_x: { + range: { + min: 1, + max: 168 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 90 + } + general_sizes_sheet_dim_y: { + range: { + min: 2, + max: 158 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 26 + } + general_sizes_sheet_thickness: { + range: { + min: 9, + max: 109 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 45 + } + @Prop({default:0}) x:number; @Prop({default:0}) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue index 37bd869f..14467d4c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue @@ -13,19 +13,31 @@
- +
- +
- +
- +
- +
- + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue index 51d42dd8..d4067d83 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue @@ -13,15 +13,23 @@
- +
- +
- +
- + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts index b54f030f..ba35a893 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts @@ -35,6 +35,21 @@ import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue" }) export default class ShowFormatoInfo extends Vue { + recipe:Recipe.IRecipe={ + general_area_working_dxsx: { + range: { + min: 8, + max: 197 + }, + status: { + visible: true, + enabled: true, + hasError: true + }, + unitMeasure: "", + valueAct: 199 + }, + } show:string="placeholder"; StX:number=100; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts index 6058394f..7fc82395 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts @@ -4,7 +4,60 @@ import { Prop } from 'vue-property-decorator'; @Component({name:"stampo" }) export default class Stampo extends Vue { - + recipe:Recipe.IRecipe={ + general_sizes_mould_dim_x: { + range: { + min: 3, + max: 106 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 41 + }, + general_sizes_mould_dim_y: { + range: { + min: 1, + max: 174 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 40 + }, + general_sizes_mould_max_height: { + range: { + min: 2, + max: 116 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 37 + }, + general_sizes_mould_base_height: { + range: { + min: 1, + max: 178 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 63 + }, + } @Prop({}) x:number; @Prop({}) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue index 8ffb13c3..b8d87e5f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue @@ -6,19 +6,19 @@
- +
- +
- +
- +
From d9c892cb11eb6f43138148bc3fae0fe8b551dfdd Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 6 May 2020 11:27:27 +0200 Subject: [PATCH 059/167] fix binding quote e velocita --- .../SVG_Components/svgcontrostampo.ts | 2 +- .../quote-velocita/components/controstampo.ts | 119 ++++++++++++++-- .../components/controstampo.vue | 27 +++- .../components/discesa-cornice.ts | 92 +++++++++++- .../components/salita-stampo.ts | 134 +++++++++++++++--- .../components/salita-stampo.vue | 46 ++++-- 6 files changed, 364 insertions(+), 56 deletions(-) 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..fde43754 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 @@ -7,7 +7,7 @@ export default class Controstamposvg extends Vue{ @Prop({default:0}) corsa:number; @Prop({default:0}) - vel_discesa:number; + C:number; @Prop({default:0}) vel_discesa_lenta:number; @Prop({default:0}) 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..67afa07a 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 @@ -12,21 +12,120 @@ components: { scheda:Scheda, }) export default class Controstampo extends Vue { + recipe:Recipe.IRecipe={ + + positions_upperplate_lower_position: { + range: { + min: 9, + max: 125 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 99 + }, + positions_upperplate_lower_speed: { + range: { + min: 2, + max: 187 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 157 + }, + positions_upperplate_upper_position: { + range: { + min: 9, + max: 179 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 130 + }, + positions_upperplate_upper_speed: { + range: { + min: 3, + max: 186 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 55 + }, + positions_upperplate_upperdeceleration_position: { + range: { + min: 9, + max: 114 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 89 + }, + positions_upperplate_upperdeceleration_speed: { + range: { + min: 8, + max: 128 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 64 + }, + positions_upperplate_lowerdeceleration_position: { + range: { + min: 2, + max: 193 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 142 + }, + positions_upperplate_lowerdeceleration_speed: { + range: { + min: 5, + max: 186 + }, + status: { + visible: true, + enabled: true, + hasError: true + }, + unitMeasure: "", + valueAct: 190 + }, + + } + @Prop({default:0}) ritardo:number; mockR:number=this.ritardo; - @Prop({default:0}) - corsa:number; - - mockC:number=this.corsa; - - @Prop({default:0}) - velocità_discesa:number; - - mockVD:number=this.velocità_discesa; - @Prop({default:0}) rallentamento_discesa:number; 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..f3fe603b 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 @@ -18,15 +18,23 @@
- +
- + +
- +
- + +
@@ -35,7 +43,11 @@
- + +
@@ -51,7 +63,10 @@
- + 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 d39d128a..8f5bdf47 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 @@ -7,19 +7,97 @@ import QuoteVelocitaSVG from "./SVG_Components/quote-velocita.vue"; @Component({name:"discesacornice", components:{quoteVelocitaSVG: QuoteVelocitaSVG,slider:Slider}}) export default class DiscesaCornice extends Vue { recipe:Recipe.IRecipe={ - positions_mould_upper_speed: { - range: { - min: 5, - max: 138 + "positions_frame_lower_position": { + "range": { + "min": 1, + "max": 103 }, - status: { - visible: true, - enabled: true, + "status": { + "visible": true, + "enabled": true, + hasError: false + }, + unitMeasure: "", + valueAct: 74 + }, + "positions_frame_lower_speed": { + "range": { + "min": 6, + "max": 169 + }, + "status": { + "visible": true, + "enabled": true, + hasError: false + }, + unitMeasure: "", + valueAct: 72 + }, + "positions_frame_upper_position": { + "range": { + "min": 0, + "max": 176 + }, + "status": { + "visible": true, + "enabled": true, + hasError: false + }, + unitMeasure: "", + valueAct: 31 + }, + "positions_frame_upper_speed": { + "range": { + "min": 6, + "max": 173 + }, + "status": { + "visible": true, + "enabled": true, + hasError: false + }, + unitMeasure: "", + valueAct: 91 + }, + "positions_frame_intermediate_position": { + "range": { + "min": 6, + "max": 104 + }, + "status": { + "visible": true, + "enabled": true, + hasError: false + }, + unitMeasure: "", + valueAct: 29 + }, + "positions_frame_intermediate_speed": { + "range": { + "min": 7, + "max": 177 + }, + "status": { + "visible": true, + "enabled": true, hasError: false }, unitMeasure: "", valueAct: 35 }, + "positions_frame_unload_position": { + "range": { + "min": 3, + "max": 130 + }, + "status": { + "visible": true, + "enabled": true, + hasError: false + }, + unitMeasure: "", + valueAct: 109 + } } @Prop({default:0}) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.ts index fd2c5ee4..c484def9 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.ts @@ -6,11 +6,17 @@ import StampoSVG from "./SVG_Components/stampo.vue"; @Component({name:"salita-stampo", components:{slider:Slider, stampoSVG: StampoSVG}}) export default class DiscesaCornice extends Vue { + + @Prop({default:0}) + ritardo:number; + + mock_ritardo:number=this.ritardo; + recipe:Recipe.IRecipe={ - positions_mould_upper_speed: { + positions_mould_lower_position: { range: { - min: 5, - max: 138 + min: 6, + max: 127 }, status: { visible: true, @@ -18,24 +24,112 @@ export default class DiscesaCornice extends Vue { hasError: false }, unitMeasure: "", - valueAct: 35 + valueAct: 99 + }, + positions_mould_lower_speed: { + range: { + min: 7, + max: 119 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 22 + }, + positions_mould_intermediate_position: { + range: { + min: 2, + max: 177 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 91 + }, + positions_mould_upper_position: { + range: { + min: 9, + max: 116 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 83 + }, + positions_mould_upper_speed: { + range: { + min: 9, + max: 149 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 122 + }, + positions_mould_upperdeceleration_position: { + range: { + min: 5, + max: 173 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 124 + }, + positions_mould_upperdeceleration_speed: { + range: { + min: 8, + max: 193 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 168 + }, + positions_mould_lowerdeceleration_position: { + range: { + min: 8, + max: 157 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 70 + }, + positions_mould_lowerdeceleration_speed: { + range: { + min: 8, + max: 189 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 36 }, } - @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; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue index 75798ed9..615261fc 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue @@ -11,47 +11,69 @@
- + +
- +
- + +
- +
- + +
- +
- + +
- +

- + From 84033194a6763ee20e44414d457c01e7e6876d07 Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 6 May 2020 14:17:59 +0200 Subject: [PATCH 060/167] fix binding quote e velocita --- .../components/discesa-cornice.ts | 104 +++++++++--------- .../components/discesa-cornice.vue | 21 +++- 2 files changed, 65 insertions(+), 60 deletions(-) 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 8f5bdf47..0cdd3821 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 @@ -7,92 +7,92 @@ import QuoteVelocitaSVG from "./SVG_Components/quote-velocita.vue"; @Component({name:"discesacornice", components:{quoteVelocitaSVG: QuoteVelocitaSVG,slider:Slider}}) export default class DiscesaCornice extends Vue { recipe:Recipe.IRecipe={ - "positions_frame_lower_position": { - "range": { - "min": 1, - "max": 103 + positions_frame_lower_position: { + range: { + min: 1, + max: 103 }, - "status": { - "visible": true, - "enabled": true, + status: { + visible: true, + enabled: true, hasError: false }, unitMeasure: "", valueAct: 74 }, - "positions_frame_lower_speed": { - "range": { - "min": 6, - "max": 169 + positions_frame_lower_speed: { + range: { + min: 6, + max: 169 }, - "status": { - "visible": true, - "enabled": true, + status: { + visible: true, + enabled: true, hasError: false }, unitMeasure: "", valueAct: 72 }, - "positions_frame_upper_position": { - "range": { - "min": 0, - "max": 176 + positions_frame_upper_position: { + range: { + min: 0, + max: 176 }, - "status": { - "visible": true, - "enabled": true, + status: { + visible: true, + enabled: true, hasError: false }, unitMeasure: "", valueAct: 31 }, - "positions_frame_upper_speed": { - "range": { - "min": 6, - "max": 173 + positions_frame_upper_speed: { + range: { + min: 6, + max: 173 }, - "status": { - "visible": true, - "enabled": true, + status: { + visible: true, + enabled: true, hasError: false }, unitMeasure: "", valueAct: 91 }, - "positions_frame_intermediate_position": { - "range": { - "min": 6, - "max": 104 + positions_frame_intermediate_position: { + range: { + min: 6, + max: 104 }, - "status": { - "visible": true, - "enabled": true, + status: { + visible: true, + enabled: true, hasError: false }, unitMeasure: "", valueAct: 29 }, - "positions_frame_intermediate_speed": { - "range": { - "min": 7, - "max": 177 + positions_frame_intermediate_speed: { + range: { + min: 7, + max: 177 }, - "status": { - "visible": true, - "enabled": true, + status: { + visible: true, + enabled: true, hasError: false }, unitMeasure: "", valueAct: 35 }, - "positions_frame_unload_position": { - "range": { - "min": 3, - "max": 130 + positions_frame_unload_position: { + range: { + min: 3, + max: 130 }, - "status": { - "visible": true, - "enabled": true, + status: { + visible: true, + enabled: true, hasError: false }, unitMeasure: "", @@ -103,17 +103,11 @@ 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; 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..c3801bd7 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 @@ -18,15 +18,23 @@
- +
- + +
- +
- + +
@@ -47,7 +55,10 @@
- + From 581dade86d0ecf5e905f50f1d64c592072c65039 Mon Sep 17 00:00:00 2001 From: Damiano Date: Wed, 6 May 2020 14:57:53 +0200 Subject: [PATCH 061/167] add "mock-variables in formato" --- .../setup/formato/components/controstampo.ts | 5 ++++ .../setup/formato/components/controstampo.vue | 8 +++---- .../setup/formato/components/cornice.ts | 11 +++++++++ .../setup/formato/components/cornice.vue | 16 ++++++------- .../setup/formato/components/lastra.ts | 12 ++++++++++ .../setup/formato/components/lastra.vue | 24 +++++++++---------- .../formato/components/piastra_riduzione.ts | 11 +++++++++ .../formato/components/piastra_riduzione.vue | 16 ++++++------- .../setup/formato/components/stampo.ts | 11 +++++++++ .../setup/formato/components/stampo.vue | 10 ++++---- .../components/discesa-cornice.vue | 7 ++++-- 11 files changed, 92 insertions(+), 39 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts index 88a6ff13..d744113d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts @@ -39,5 +39,10 @@ export default class Controstampo extends Vue { alt:number; mock_alt:number=this.alt; + + @Prop({default:0}) + min:number; + @Prop({default:0}) + max:number; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue index ea057372..6476e27b 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue @@ -6,12 +6,12 @@
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.ts index c2ab47cf..5fffccb2 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.ts @@ -58,4 +58,15 @@ export default class Cornice extends Vue { mock_x:number=this.x; mock_y:number=this.y + @Prop({default:0}) + min_x:number; + @Prop({default:0}) + max_x:number; + + @Prop({default:0}) + min_y:number; + @Prop({default:0}) + max_y:number; + + } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue index b7206d54..f9754294 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue @@ -13,22 +13,22 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts index 10b76385..355fcef0 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts @@ -84,4 +84,16 @@ export default class Lastra extends Vue { mock_y:number=this.y; mock_spes:number=this.spes; + @Prop({default:0}) + min_x:number; + @Prop({default:0}) + max_y:number; + + @Prop({default:0}) + min_spes:number; + @Prop({default:0}) + max_spes:number; + + + } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue index 14467d4c..a44e5cbe 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue @@ -13,30 +13,30 @@
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts index fca44761..3f6512f7 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts @@ -57,5 +57,16 @@ export default class Piastra extends Vue { mock_x:number=this.x; mock_y:number=this.y; + + + @Prop({default:0}) + min_x:number; + @Prop({default:true}) + max_x:number; + + @Prop({default:0}) + min_y:number; + @Prop({default:true}) + max_y:number; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue index d4067d83..66dce8e9 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue @@ -13,22 +13,22 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts index 7fc82395..f4885e8f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts @@ -69,4 +69,15 @@ export default class Stampo extends Vue { @Prop({}) stampoNeg:number; + mock_x:number=this.x; + mock_y:number=this.y; + mock_alt:number=this.alt; + mock_altB:number=this.altB; + mock_stampoNeg=this.stampoNeg; + + + + + + } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue index b8d87e5f..6b84c824 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue @@ -6,23 +6,23 @@
- +
- +
- +
- +
- +
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 c3801bd7..192bd5ee 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 @@ -47,9 +47,12 @@
- +
- + From 7232f6309438f2a853f2ad0dbc3828da3a579572 Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 6 May 2020 15:01:42 +0200 Subject: [PATCH 062/167] Auto stash before merge of "newfeature/programmazione-preriscaldo" and "origin/newfeature/programmazione-preriscaldo" --- .../setup/formato/components/controstampo.ts | 26 -- .../setup/formato/components/cornice.ts | 42 +--- .../setup/formato/components/lastra.ts | 67 +---- .../formato/components/piastra_riduzione.ts | 40 +-- .../formato/components/show-formato-info.ts | 230 ++++++++++++++++-- .../formato/components/show-formato-info.vue | 74 ++++-- .../setup/formato/components/stampo.ts | 55 +---- 7 files changed, 280 insertions(+), 254 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts index d744113d..14af8924 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts @@ -7,32 +7,6 @@ import Slider from "@/app_modules_thermo/components/slider.vue" export default class Controstampo extends Vue { recipe:Recipe.IRecipe={ - positions_mould_lower_speed: { - range: { - min: 5, - max: 140 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 28 - }, - general_sizes_upperplate_max_height: { - range: { - min: 2, - max: 149 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 106 - }, } @Prop({default:0}) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.ts index 5fffccb2..bb995a5d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.ts @@ -5,49 +5,11 @@ import Slider from "@/app_modules_thermo/components/slider.vue" @Component({name:"cornice", components:{slider:Slider}}) export default class Cornice extends Vue { + recipe:Recipe.IRecipe={ - general_sizes_frame_traverses: { - range: { - min: 3, - max: 116 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 72 - }, - general_sizes_frame_dim_x: { - range: { - min: 0, - max: 129 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 7 - }, - general_sizes_frame_dim_y: { - range: { - min: 4, - max: 125 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 107 - }, - } + @Prop({default:0}) x:number; @Prop({default:0}) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts index 355fcef0..d9e8a1b7 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts @@ -6,73 +6,10 @@ import Slider from "@/app_modules_thermo/components/slider.vue" @Component({name:"lastra", components:{slider:Slider}}) export default class Lastra extends Vue { recipe:Recipe.IRecipe={ - general_sizes_sheet_thickness: { - range: { - min: 5, - max: 173 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 44 - } + } - general_sizes_sheet_material: { - range: { - min: 3, - max: 144 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 86 - } - general_sizes_sheet_dim_x: { - range: { - min: 1, - max: 168 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 90 - } - general_sizes_sheet_dim_y: { - range: { - min: 2, - max: 158 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 26 - } - general_sizes_sheet_thickness: { - range: { - min: 9, - max: 109 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 45 - } + @Prop({default:0}) x:number; @Prop({default:0}) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts index 3f6512f7..be74a910 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts @@ -6,45 +6,7 @@ import Slider from "@/app_modules_thermo/components/slider.vue" @Component({name:"piastra", components:{slider:Slider}}) export default class Piastra extends Vue { recipe:Recipe.IRecipe={ - general_sizes_plate_type: { - range: { - min: 0, - max: 140 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 39 - }, - general_sizes_plate_dim_x: { - range: { - min: 6, - max: 154 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 78 - }, - general_sizes_plate_dim_y: { - range: { - min: 6, - max: 142 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 81 - }, + } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts index ba35a893..2c3fe84a 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts @@ -49,26 +49,222 @@ export default class ShowFormatoInfo extends Vue { unitMeasure: "", valueAct: 199 }, + general_sizes_mould_dim_x: { + range: { + min: 3, + max: 106 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 41 + }, + general_sizes_mould_dim_y: { + range: { + min: 1, + max: 174 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 40 + }, + general_sizes_mould_max_height: { + range: { + min: 2, + max: 116 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 37 + }, + general_sizes_mould_base_height: { + range: { + min: 1, + max: 178 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 63 + }, + general_sizes_plate_type: { + range: { + min: 0, + max: 140 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 39 + }, + general_sizes_plate_dim_x: { + range: { + min: 6, + max: 154 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 78 + }, + general_sizes_plate_dim_y: { + range: { + min: 6, + max: 142 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 81 + }, + general_sizes_sheet_material: { + range: { + min: 3, + max: 144 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 86 + }, + general_sizes_sheet_dim_x: { + range: { + min: 1, + max: 168 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 90 + }, + general_sizes_sheet_dim_y: { + range: { + min: 2, + max: 158 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 26 + }, + general_sizes_sheet_thickness: { + range: { + min: 9, + max: 109 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 45 + }, + general_sizes_frame_traverses: { + range: { + min: 3, + max: 116 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 72 + }, + general_sizes_frame_dim_x: { + range: { + min: 0, + max: 129 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 7 + }, + general_sizes_frame_dim_y: { + range: { + min: 4, + max: 125 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 107 + }, + + positions_mould_lower_speed: { + range: { + min: 5, + max: 140 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 28 + }, + general_sizes_upperplate_max_height: { + range: { + min: 2, + max: 149 + }, + status: { + visible: true, + enabled: true, + hasError: false + }, + unitMeasure: "", + valueAct: 106 + } } show:string="placeholder"; - StX:number=100; - StY:number=10; - StAlt:number=70; - StAltB:number=600; - StStampoNeg:number=300; - - LaX:number=1; - LaY:number=1; - LaSpes:number=1; - - PiX:number=1; - PiY:number=1; - - CoX:number=1; - CoY:number=1; - - CsAlt:number=1; + @Prop({default:0}) + stamponeg:number; + @Prop({default:0}) + altezza:number; annulla(){ ModalHelper.HideModal(); diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue index d9a81c8c..885490d0 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue @@ -8,11 +8,45 @@
From e377d7ece7f37c10b1d8721c60e8862d3228cab8 Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 6 May 2020 15:36:54 +0200 Subject: [PATCH 064/167] fix prop --- .../setup/imbutitura/show-imbutitura-info.ts | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts index 7d963e8b..3b08a86b 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts @@ -16,9 +16,6 @@ import Scheda from "@/app_modules_thermo/components/scheda.vue"; } }) export default class ShowImbutituraInfo extends Vue { - recipe:Recipe.IRecipe={ - - } recipe:Recipe.IRecipe={ drawing_type: { @@ -141,20 +138,6 @@ export default class ShowImbutituraInfo extends Vue { } - @Prop({default:0}) - ritardo:number; - @Prop({default:0}) - altBolla:number; - @Prop({default:0}) - portMantenimento:number; - @Prop({default:0}) - portManuale:number; - - mock_ritardo:number=this.ritardo; - mock_altBolla:number=this.altBolla; - mock_portMantenimento:number=this.portMantenimento; - mock_portManuale:number=this.portManuale; - annulla(){ ModalHelper.HideModal(); From 6545727c2f5a3144c37e05155d4019e5bdea18e2 Mon Sep 17 00:00:00 2001 From: Alessio Date: Thu, 7 May 2020 09:20:29 +0200 Subject: [PATCH 065/167] fix binding and footer buttons --- .../app_modules_thermo/components/scheda.ts | 16 ++----------- .../app_modules_thermo/components/scheda.vue | 8 +++---- .../base-components/aria-controstampo.vue | 24 +++++-------------- .../components/show-controstampo-info.ts | 8 +++---- .../components/show-controstampo-info.vue | 4 ++-- .../setup/imbutitura/show-imbutitura-info.ts | 14 +++++------ .../setup/imbutitura/show-imbutitura-info.vue | 12 ++++------ .../SVG_Components/SVG-termo-superiore.ts | 10 ++++---- .../SVG_Components/SVG-termo-superiore.vue | 10 ++++---- .../base-components/termo-superiore.vue | 10 ++++---- .../components/show-pirometro-info.ts | 8 +++---- .../components/show-pirometro-info.vue | 4 ++-- .../riscaldi/components/show-riscaldi-info.ts | 8 +++---- .../components/show-riscaldi-info.vue | 4 ++-- 14 files changed, 56 insertions(+), 84 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.ts index d79e9d0f..33409b3c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.ts @@ -7,20 +7,8 @@ import Slider from "@/app_modules_thermo/components/slider.vue"; export default class Scheda extends Vue{ @Prop({default:0}) - portata:number; + portata:Recipe.IValue; @Prop({default:0}) - durata:number; - @Prop({default:0}) - min_portata:number; - @Prop({default:0}) - max_portata:number; - @Prop({default:0}) - min_durata:number; - @Prop({default:0}) - max_durata:number; - - - mock_portata:number=this.portata; - mock_durata:number=this.durata; + durata:Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue index d08f31f0..be02ec35 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue @@ -3,14 +3,14 @@
- +
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue index 5c87df5d..2c99e15c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue @@ -16,28 +16,16 @@
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.ts index 4b464204..5595c328 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.ts @@ -12,12 +12,12 @@ export default class ShowControstampoInfo extends Vue { show: string = "CC"; - annulla(){ - ModalHelper.HideModal(); + annulla(name:string){ + messageService.publishToChannel(name); }; - conferma(){ - ModalHelper.HideModal(); + conferma(name:string){ + messageService.publishToChannel(name); }; async beforeMount() { diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue index 7ddfcc3c..2a6c1287 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue @@ -15,8 +15,8 @@
- - + +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts index 3b08a86b..c33da20c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts @@ -139,13 +139,13 @@ export default class ShowImbutituraInfo extends Vue { } - annulla(){ - ModalHelper.HideModal(); - }; - - conferma(){ - ModalHelper.HideModal(); - }; + annulla(name:string){ + messageService.publishToChannel(name); + }; + + conferma(name:string){ + messageService.publishToChannel(name); + }; async beforeMount() { // this.contactInfo = await awaiter(new machineService().getContactConfiguration()); diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue index 30c6423e..555d334d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue @@ -64,20 +64,16 @@
- -
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 0d9ec9a3..f0761419 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 @@ -6,14 +6,14 @@ import {Prop} from 'vue-property-decorator'; export default class SVGTermoregolazioneSuperiore extends Vue{ @Prop({default:0}) - max:number; + max:Recipe.IValue; @Prop({default:0}) - min:number; + min:Recipe.IValue; @Prop({default:0}) - inizio:number; + inizio:Recipe.IValue; @Prop({default:0}) - fine:number; + fine:Recipe.IValue; @Prop({default:0}) - perc_riposo:number; + 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 3d6b8b7a..f42fe4a7 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 @@ -3,25 +3,25 @@
- +
- +
- +
- +
- +
270 °C 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 e2b45b1d..f4e2db74 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 @@ -65,11 +65,11 @@
- diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.ts index 8e8a632d..d8fd6550 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.ts @@ -12,12 +12,12 @@ export default class ShowRiscaldamentoSuperioreInfo extends Vue { show: string = "activeRS" - annulla() { - ModalHelper.HideModal(); + annulla(name:string){ + messageService.publishToChannel(name); }; - conferma() { - ModalHelper.HideModal(); + conferma(name:string){ + messageService.publishToChannel(name); }; async beforeMount() { diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue index 53132099..459fb441 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue @@ -21,8 +21,8 @@
- - + +
From f06dac3a7bac379cc5d07c99807cf7434dfe8b36 Mon Sep 17 00:00:00 2001 From: Damiano Date: Thu, 7 May 2020 09:37:13 +0200 Subject: [PATCH 066/167] Auto stash before merge of "newfeature/programmazione-preriscaldo" and "origin/newfeature/programmazione-preriscaldo" --- .../setup/formato/components/piastra_riduzione.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts index 6cbc321b..7bc37f3c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts @@ -18,7 +18,7 @@ export default class Piastra extends Vue { @Prop({default:0}) min_x:number; - @Prop({default:true}) + @Prop({default:0}) max_x:number; @Prop({default:0}) From c1adb138e721b9fccaa434c46f8b7f7cc61f6482 Mon Sep 17 00:00:00 2001 From: Damiano Date: Thu, 7 May 2020 10:52:21 +0200 Subject: [PATCH 067/167] Fix binding --- .../SVG_Components/controstampoSVG.ts | 2 +- .../SVG_Components/controstampoSVG.vue | 2 +- .../components/SVG_Components/corniceSVG.ts | 4 +- .../components/SVG_Components/corniceSVG.vue | 4 +- .../components/SVG_Components/lastraSVG.ts | 6 +- .../components/SVG_Components/lastraSVG.vue | 6 +- .../components/SVG_Components/piastraSVG.ts | 4 +- .../components/SVG_Components/piastraSVG.vue | 4 +- .../components/SVG_Components/stampoSVG.ts | 6 +- .../components/SVG_Components/stampoSVG.vue | 6 +- .../setup/formato/components/controstampo.ts | 10 +-- .../setup/formato/components/controstampo.vue | 8 +-- .../setup/formato/components/cornice.ts | 17 +---- .../setup/formato/components/cornice.vue | 16 ++--- .../setup/formato/components/lastra.ts | 24 ++----- .../setup/formato/components/lastra.vue | 24 +++---- .../formato/components/piastra_riduzione.ts | 15 +--- .../formato/components/piastra_riduzione.vue | 16 ++--- .../formato/components/show-formato-info.vue | 61 ++++++---------- .../setup/formato/components/stampo.ts | 12 +--- .../setup/formato/components/stampo.vue | 10 +-- .../SVG_Components/quote-velocita.ts | 72 +------------------ .../SVG_Components/quote-velocita.vue | 4 +- .../components/SVG_Components/stampo.ts | 8 +-- .../components/SVG_Components/stampo.vue | 8 +-- .../SVG_Components/svgcontrostampo.ts | 4 +- .../SVG_Components/svgcontrostampo.vue | 4 +- .../components/controstampo.vue | 4 +- .../components/discesa-cornice.vue | 4 +- .../components/salita-stampo.vue | 8 +-- 30 files changed, 121 insertions(+), 252 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts index 58c8e9db..003251b8 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts @@ -5,5 +5,5 @@ import {Prop} from 'vue-property-decorator'; @Component({}) export default class ControstampoSVG extends Vue{ @Prop({default:0}) - alt:number; + alt:Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue index 091bfe77..9669b336 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue @@ -4,7 +4,7 @@
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts index 3f81b4cb..39ac82f1 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts @@ -5,7 +5,7 @@ import {Prop} from 'vue-property-decorator'; @Component({}) export default class CorniceSVG extends Vue{ @Prop({default:0}) - x:number; + x:Recipe.IValue; @Prop({default:0}) - y:number; + y:Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue index bdf93230..04780e93 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue @@ -4,12 +4,12 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts index 144a358f..3a219b9f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts @@ -5,10 +5,10 @@ import {Prop} from 'vue-property-decorator'; @Component({}) export default class LastraSVG extends Vue{ @Prop({default:0}) - x:number; + x:Recipe.IValue; @Prop({default:0}) - y:number; + y:Recipe.IValue; @Prop({default:0}) - spes:number; + spes:Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue index 733dede2..3c20f93a 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue @@ -4,17 +4,17 @@
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts index 495ee632..a34fdfb0 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts @@ -5,7 +5,7 @@ import {Prop} from 'vue-property-decorator'; @Component({}) export default class PiastraSVG extends Vue{ @Prop({default:0}) - x:number; + x:Recipe.IValue; @Prop({default:0}) - y:number; + y:Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue index 2be22c05..c5fb5f57 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue @@ -4,12 +4,12 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts index e1bf0024..b8d77cc4 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts @@ -5,13 +5,13 @@ import {Prop} from 'vue-property-decorator'; @Component({}) export default class StampoSVG extends Vue{ @Prop({default:0}) - x:number; + x:Recipe.IValue; @Prop({default:0}) - y:number; + y:Recipe.IValue; @Prop({default:0}) alt:number; @Prop({default:0}) - altB:number; + altB:Recipe.IValue; @Prop({default:0}) stampoNeg:number; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue index a07495e4..68449f61 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue @@ -9,17 +9,17 @@
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts index afbad326..590b276d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts @@ -7,13 +7,7 @@ import Slider from "@/app_modules_thermo/components/slider.vue" export default class Controstampo extends Vue { @Prop({default:0}) - alt:number; - - mock_alt:number=this.alt; - - @Prop({default:0}) - min_alt:number; - @Prop({default:0}) - max_alt:number; + alt:Recipe.IValue; + } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue index ac39d974..05aa9d1d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue @@ -6,12 +6,12 @@
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.ts index c03f502a..391ef2be 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.ts @@ -7,24 +7,13 @@ import Slider from "@/app_modules_thermo/components/slider.vue" export default class Cornice extends Vue { @Prop({default:0}) - x:number; + x:Recipe.IValue; @Prop({default:0}) - y:number; + y:Recipe.IValue; @Prop({default:false}) notsel:boolean; - mock_x:number=this.x; - mock_y:number=this.y - - @Prop({default:0}) - min_x:number; - @Prop({default:0}) - max_x:number; - - @Prop({default:0}) - min_y:number; - @Prop({default:0}) - max_y:number; + } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue index f9754294..964d486c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue @@ -13,22 +13,22 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts index 27986fb0..6aba8a42 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts @@ -7,29 +7,13 @@ import Slider from "@/app_modules_thermo/components/slider.vue" export default class Lastra extends Vue { @Prop({default:0}) - x:number; + x:Recipe.IValue; @Prop({default:0}) - y:number; + y:Recipe.IValue; @Prop({default:0}) - spes:number; + spes:Recipe.IValue; - mock_x:number=this.x; - mock_y:number=this.y; - mock_spes:number=this.spes; - - @Prop({default:0}) - min_x:number; - @Prop({default:0}) - max_x:number; - - @Prop({default:0}) - min_y:number; - @Prop({default:0}) - max_y:number; - @Prop({default:0}) - min_spes:number; - @Prop({default:0}) - max_spes:number; + } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue index e28e9e84..c31af2f7 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue @@ -13,30 +13,30 @@
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts index 7bc37f3c..685e15a7 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.ts @@ -7,23 +7,12 @@ import Slider from "@/app_modules_thermo/components/slider.vue" export default class Piastra extends Vue { @Prop({default:0}) - x:number; + x:Recipe.IValue; @Prop({default:0}) - y:number; + y:Recipe.IValue; @Prop({default:true}) notsel:boolean; - mock_x:number=this.x; - mock_y:number=this.y; - @Prop({default:0}) - min_x:number; - @Prop({default:0}) - max_x:number; - - @Prop({default:0}) - min_y:number; - @Prop({default:0}) - max_y:number; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue index 66dce8e9..d84be405 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue @@ -13,22 +13,22 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue index 885490d0..71f7afd3 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue @@ -9,43 +9,28 @@
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..e19c0a5b 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 @@ -19,7 +19,7 @@ Conferma - + 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..71563151 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 @@ -15,7 +15,12 @@ - + +
@@ -23,24 +28,26 @@ - + +
From 4b2553056c34f7e285d761f31d7c5a26bc743056 Mon Sep 17 00:00:00 2001 From: Alessio Date: Thu, 7 May 2020 16:25:36 +0200 Subject: [PATCH 070/167] add dashboard --- Thermo.Active/wwwroot/assets/icons/png/bg.png | Bin 0 -> 415689 bytes .../wwwroot/assets/icons/png/bg@2x.png | Bin 0 -> 1066038 bytes .../wwwroot/assets/icons/png/bg@3x.png | Bin 0 -> 1726536 bytes .../wwwroot/assets/icons/png/inv.png | Bin 0 -> 1994 bytes .../wwwroot/assets/icons/png/inv@2x.png | Bin 0 -> 4736 bytes .../wwwroot/assets/icons/png/inv@3x.png | Bin 0 -> 8405 bytes .../wwwroot/assets/styles/base/dashboard.less | 30 +++++++++++++ .../wwwroot/assets/styles/base/layout.less | 1 + Thermo.Active/wwwroot/assets/styles/style.css | 19 +++++++- .../wwwroot/src/app.business-logic.ts | 2 + .../app_modules_thermo/dashboard/dashboard.ts | 10 +++++ .../dashboard/dashboard.vue | 42 ++++++++++++++++++ .../setup/components/setup.vue | 3 +- 13 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 Thermo.Active/wwwroot/assets/icons/png/bg.png create mode 100644 Thermo.Active/wwwroot/assets/icons/png/bg@2x.png create mode 100644 Thermo.Active/wwwroot/assets/icons/png/bg@3x.png create mode 100644 Thermo.Active/wwwroot/assets/icons/png/inv.png create mode 100644 Thermo.Active/wwwroot/assets/icons/png/inv@2x.png create mode 100644 Thermo.Active/wwwroot/assets/icons/png/inv@3x.png create mode 100644 Thermo.Active/wwwroot/assets/styles/base/dashboard.less create mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts create mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue diff --git a/Thermo.Active/wwwroot/assets/icons/png/bg.png b/Thermo.Active/wwwroot/assets/icons/png/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..8ff9db1b88ad3aa5a9d8c242b1c3d8caf7e0fd25 GIT binary patch literal 415689 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

mip<;EWzLZ#iCvR>=OK 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%0AR-Z| zBIkO|0wKlh(6c02<&U@DtNnvOTl5ShaX@NN_K*RENTuV!i@-p0mk(GPp|JRj7ys$S zM>vuUAmJhG9#)>mJf0H5>9{O_y|b13(?czy_JL*W(CEbcK-|A OY=4mfJ78M4F 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 hKkZHiLRK}W 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 literal 0 HcmV?d00001 diff --git a/Thermo.Active/wwwroot/assets/icons/png/bg@2x.png b/Thermo.Active/wwwroot/assets/icons/png/bg@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cfd380a7e3d9bee0623464d2e47f630b31550764 GIT binary patch literal 1066038 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 z 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≪7MTE>{lzrP9;G^8v=C1-Iarcy4f3$aMy)fQ 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

p`&LYp`mS?5CEkduzZ4xb_3px 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

*>wsk`3bOOZ&d-_-I2jo~g~J4q)

xocVf#Ta`Uc?CyzGn0{D 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%0AFHPEFLOAxbKM;?Jb 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�j?m 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 z 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

Gq&)Z&sI;lHYMyzCXedR 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 z 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

`S2K^bJ6 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ν5(;SNew*zE$n$7Os^t)msXX_79R1znkUZ7d`6( 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

w)*QZ)+z&mb)o+czVScaI)M8Y;b)ri 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 zd298n)930}

QD$pfNo%MIS4k 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

From 821f0276c763e6fc6245fcadcb4ddef7ac78442f Mon Sep 17 00:00:00 2001 From: Alessio Date: Fri, 8 May 2020 12:00:12 +0200 Subject: [PATCH 071/167] fix style dashboard --- .../wwwroot/assets/styles/base/dashboard.less | 170 +++++++++++++++++- Thermo.Active/wwwroot/assets/styles/style.css | 110 +++++++++++- .../dashboard/dashboard.vue | 13 +- 3 files changed, 283 insertions(+), 10 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index 8ebc3a2d..ffac1d91 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -8,10 +8,15 @@ .dashboard{ height: 100%; width: 100%; - background-image: url("../../assets/icons/png/bg.png"); + // background-image: url("../../assets/icons/png/bg.png"); + background-color: white; + display: flex; + flex-direction: column; + justify-content: flex-end; section{ display: flex; + justify-content: flex-end; .specific{ display: flex; @@ -21,10 +26,169 @@ display: flex; } + &:first-of-type{ + + div{ + + &:first-of-type{ + + img{ + width: 41px; + height: 41px; + object-fit: contain; + } + + label{ + + 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{ + + button{ + 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{ + + &: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; + } + + } + + } + + } + + } + + 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; + } + + &: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{ + overflow-y: scroll; + } + + &:last-of-type{ + + div{ + width: 542px; + height: 71px; + background-color: rgba(0, 0, 0, 0.5); + + &:first-of-type{ + background-color: unset; + width: unset; + height: unset; + + .specific{ + background-color: unset; + width: unset; + height: unset; + + 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; + } + + &: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; + } + + } + + } + + } + + } + + } + + } } - +} -} \ 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 5de42d6e..461765ba 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4040,10 +4040,14 @@ .dashboard { height: 100%; width: 100%; - background-image: url("../../assets/icons/png/bg.png"); + background-color: white; + display: flex; + flex-direction: column; + justify-content: flex-end; } .dashboard section { display: flex; + justify-content: flex-end; } .dashboard section .specific { display: flex; @@ -4052,6 +4056,110 @@ .dashboard section .specific div { display: flex; } +.dashboard section .specific:first-of-type div:first-of-type img { + width: 41px; + height: 41px; + object-fit: contain; +} +.dashboard section .specific:first-of-type div:first-of-type label { + font-size: 54px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: normal; + text-align: right; + color: #4b4b4b; +} +.dashboard section .specific:first-of-type div:last-of-type button { + 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; +} +.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; +} +.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; +} +.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 aside { + overflow-y: scroll; +} +.dashboard section .specific:last-of-type div { + width: 542px; + height: 71px; + background-color: rgba(0, 0, 0, 0.5); +} +.dashboard section .specific:last-of-type div:first-of-type { + background-color: unset; + width: unset; + height: unset; +} +.dashboard section .specific:last-of-type div:first-of-type .specific { + background-color: unset; + width: unset; + height: unset; +} +.dashboard section .specific:last-of-type div:first-of-type .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 div:first-of-type .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; +} .modal.pirometro-info { width: 1820px; height: 980px; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue index 04523097..be176503 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue @@ -4,34 +4,35 @@
- +
- +
- +
- +
- +
-
From 4830160763c43e932f3085f1275a06931724539c Mon Sep 17 00:00:00 2001 From: Damiano Date: Fri, 8 May 2020 12:31:31 +0200 Subject: [PATCH 072/167] fix "circle-dashboard" --- .../wwwroot/assets/styles/base/dashboard.less | 74 +++++++++++++++++++ .../wwwroot/assets/styles/base/layout.less | 2 +- Thermo.Active/wwwroot/assets/styles/style.css | 68 +++++++++++++++++ .../arch-interface/arch-interface.ts | 46 ------------ .../app_modules_thermo/dashboard/dashboard.ts | 35 +++++++++ .../dashboard/dashboard.vue | 4 + 6 files changed, 182 insertions(+), 47 deletions(-) create mode 100644 Thermo.Active/wwwroot/assets/styles/base/dashboard.less create mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts create mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less new file mode 100644 index 00000000..adc81778 --- /dev/null +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -0,0 +1,74 @@ + // out: false, sourceMap: false, main: ../style.less + @import "colors.less"; +body { + background-color: rgba(0,0,0,0.8); + color: #999; + font-family: Hevletica, sans-serif; + } + + .info { + clear: both; + padding: 10px; + font-size: 0.9em; + } + a.link { + color: rgb(47, 227, 255); + text-decoration: none; + } + + .warn { + font-size: 0.8em; + background-color: darken(orange, 15%); + color: #fff; + padding: 10px; + } + + /* ------ Default Style ---------- */ + .gauge-container { + width: 150px; + height: 150px; + display: block; + float: left; + padding: 10px; + background-color: #222; + margin: 7px; + border-radius: 3px; + position: relative; + } + .gauge-container > .label { + position: absolute; + right: 0; + top: 0; + display: inline-block; + background: rgba(0,0,0,0.5); + font-family: monospace; + font-size: 0.8em; + padding: 5px 10px; + } + .gauge-container > .gauge .dial { + stroke: #334455; + stroke-width: 2; + fill: rgba(0,0,0,0); + } + .gauge-container > .gauge .value { + stroke: rgb(47, 227, 255); + stroke-width: 2; + fill: rgba(0,0,0,0); + } + .gauge-container > .gauge .value-text { + fill: rgb(47, 227, 255); + font-family: sans-serif; + font-weight: bold; + font-size: 0.8em; + } + /* ------- Alternate Style ------- */ + .wrapper { + height: 100px; + float: left; + margin: 7px; + overflow: hidden; + } + .wrapper > .gauge-container { + margin: 0; + } + \ 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 f04c8c32..6949542d 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/layout.less +++ b/Thermo.Active/wwwroot/assets/styles/base/layout.less @@ -54,7 +54,7 @@ @import "report.less"; @import "users.less"; @import "tooltip.less"; - +@import "dashboard.less"; @background-color: rgb(216, 216, 216); @handle-width: 48px; diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index c7db5ca9..23c8c9e1 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -23208,6 +23208,74 @@ footer .container button.big:before { text-align: center; color: #4b4b4b; } +body { + background-color: rgba(0, 0, 0, 0.8); + color: #999; + font-family: Hevletica, sans-serif; +} +.info { + clear: both; + padding: 10px; + font-size: 0.9em; +} +a.link { + color: #2fe3ff; + text-decoration: none; +} +.warn { + font-size: 0.8em; + background-color: #b37300; + color: #fff; + padding: 10px; +} +/* ------ Default Style ---------- */ +.gauge-container { + width: 150px; + height: 150px; + display: block; + float: left; + padding: 10px; + background-color: #222; + margin: 7px; + border-radius: 3px; + position: relative; +} +.gauge-container > .label { + position: absolute; + right: 0; + top: 0; + display: inline-block; + background: rgba(0, 0, 0, 0.5); + font-family: monospace; + font-size: 0.8em; + padding: 5px 10px; +} +.gauge-container > .gauge .dial { + stroke: #334455; + stroke-width: 2; + fill: rgba(0, 0, 0, 0); +} +.gauge-container > .gauge .value { + stroke: #2fe3ff; + stroke-width: 2; + fill: rgba(0, 0, 0, 0); +} +.gauge-container > .gauge .value-text { + fill: #2fe3ff; + font-family: sans-serif; + font-weight: bold; + font-size: 0.8em; +} +/* ------- Alternate Style ------- */ +.wrapper { + height: 100px; + float: left; + margin: 7px; + overflow: hidden; +} +.wrapper > .gauge-container { + margin: 0; +} a, a:visited, a:hover, diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.ts index 31d99905..9e13f8d0 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.ts @@ -1,51 +1,5 @@ import Vue from "vue"; import Component from "vue-class-component"; -// import { Prop } from 'vue-property-decorator'; - - -// @Component({name:"archinterface"}) -// export default class PowerComponent extends Vue{ -// @Prop({default:"45,180"}) -// actualValue:string; -// @Prop({default:"47,180"}) -// maxValue:number; -// @Prop({default:"5,180"}) -// minValue:number; -// @Prop({default:10}) -// kw :number; -// @Prop({default:100}) -// potency:number; - -// public mounted(){ -// this.intialize(); -// } - -// public intialize(){ -// var backgroundPath = document.querySelector("#background-circle"); -// var valuePath = document.querySelector("#value-circle"); -// backgroundPath.setAttribute('d',this.getArcPath(45, 20, 40, 40, 150)); -// valuePath.setAttribute("d", this.getArcPath(45, 20, 40, 40, 150)); - -// } - -// public getArcPath(cx, cy, rx, ry, startAngle) { - -// var theta = startAngle * Math.PI / 180; - -// var dx = rx * Math.cos(theta); -// var dy = ry * Math.sin(theta); - -// return [ -// "M", cx + dx, cy + dy, -// "a", rx, ry, "0 1 1", 2 * -dx, 2 * -dy, -// "a", rx, ry, "0 1 1", 2 * dx, 2 * dy, "z" -// ].join(" "); -// }; - - -// } - - declare var Gauge:any @Component({}) export default class archinterface extends Vue{ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts new file mode 100644 index 00000000..f9aff7e9 --- /dev/null +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts @@ -0,0 +1,35 @@ + +import Vue from "vue"; +import Component from "vue-class-component"; +declare var Gauge:any +@Component({}) +export default class dashboard extends Vue{ +mounted(){ + var gauge= Gauge( + document.getElementById("gauge1"), { + max: 100, + dialStartAngle: -90, + dialEndAngle: -90.001, + value: 100, + label: function(value) { + return Math.round(value * 100) / 100; + } + } + ); + + function loop() { + var value1 = Math.random() * 100, + value2 = Math.random() * 100, + value3 = Math.random() * 100, + value4 = Math.random() * 100, + value5 = Math.random() * 100; + + // setValueAnimated(value, durationInSecs); + gauge.setValueAnimated(value1, 1); + window.setTimeout(loop, 6000); + } + loop() + +} +} + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue new file mode 100644 index 00000000..b6b2d1c8 --- /dev/null +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue @@ -0,0 +1,4 @@ + \ No newline at end of file From 9a21aae8166447cc4915f6cd02fe67f031133328 Mon Sep 17 00:00:00 2001 From: Alessio Date: Fri, 8 May 2020 15:24:21 +0200 Subject: [PATCH 073/167] fix dashboard --- .../wwwroot/assets/styles/base/dashboard.less | 73 +++++++++++++++++-- Thermo.Active/wwwroot/assets/styles/style.css | 52 ++++++++++++- .../dashboard/base-components/componente.ts | 8 ++ .../dashboard/base-components/componente.vue | 19 +++++ .../app_modules_thermo/dashboard/dashboard.ts | 6 +- .../dashboard/dashboard.vue | 16 +++- 6 files changed, 161 insertions(+), 13 deletions(-) create mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.ts create mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.vue diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index ffac1d91..2f06f8a9 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -128,10 +128,6 @@ } - aside{ - overflow-y: scroll; - } - &:last-of-type{ div{ @@ -181,10 +177,77 @@ } + &:last-of-type{ + width: 641px; + height: 84px; + } + + } + + + aside{ + width: 641px; + height: 310px; + + .component{ + width: 621px; + } + + } + + .component{ + background-color: #e8e8e8; + + label{ + + 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; + + 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; + } + + &: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; + } + + } + + } + } } - } diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 461765ba..1928cec1 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4122,9 +4122,6 @@ text-align: center; color: #4b4b4b; } -.dashboard section .specific aside { - overflow-y: scroll; -} .dashboard section .specific:last-of-type div { width: 542px; height: 71px; @@ -4160,6 +4157,55 @@ text-align: center; color: #4b4b4b; } +.dashboard section .specific:last-of-type div:last-of-type { + width: 641px; + height: 84px; +} +.dashboard section .specific:last-of-type aside { + width: 641px; + height: 310px; +} +.dashboard section .specific:last-of-type aside .component { + width: 621px; +} +.dashboard section .specific:last-of-type .component { + background-color: #e8e8e8; +} +.dashboard section .specific:last-of-type .component label { + 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 .specific { + height: unset; + width: unset; + background-color: unset; +} +.dashboard section .specific:last-of-type .component .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 .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; +} .modal.pirometro-info { width: 1820px; height: 980px; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.ts new file mode 100644 index 00000000..0cfab6a6 --- /dev/null +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.ts @@ -0,0 +1,8 @@ +import Vue from 'vue'; +import Component from 'vue-class-component'; +import {Prop} from 'vue-property-decorator'; + +@Component({}) +export default class Componente extends Vue{ + +} \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.vue new file mode 100644 index 00000000..67f05901 --- /dev/null +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.vue @@ -0,0 +1,19 @@ + + + \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts index c1fe9e90..bd8b7a02 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts @@ -1,9 +1,11 @@ import Vue from 'vue'; import Component from 'vue-class-component'; import {Prop} from 'vue-property-decorator'; - +import Componente from "./base-components/componente.vue"; @Component({ - + components:{ + componente:Componente + } }) export default class Dashboard extends Vue{ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue index be176503..7ab93867 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue @@ -31,9 +31,19 @@
-
-

diff --git a/Thermo.Active/wwwroot/src/store/app.store.ts b/Thermo.Active/wwwroot/src/store/app.store.ts index 687920ca..628b53e5 100644 --- a/Thermo.Active/wwwroot/src/store/app.store.ts +++ b/Thermo.Active/wwwroot/src/store/app.store.ts @@ -26,6 +26,7 @@ export interface AppModel { isMainViewLiftedUp: boolean; isFavSoftkeySelection: boolean; isShowDashboard: boolean; + isShowPreDashboard: boolean; paddle: PaddleModel; machineInfo: MachineInfoModel; @@ -55,6 +56,7 @@ export interface AppModelActionsInterface { FavSoftkeyStop(context); MainViewToggle(context); ShowDashboard(context); + ShowPreDashboard(context); SetMachineInto(context, name: string, sn: string); SetCurrentUser(context, userinfo); SetCurrentUserLanguage(context, newlanguage); @@ -69,6 +71,7 @@ const _store = { isMainViewLiftedUp: false, isFavSoftkeySelection: false, isShowDashboard: false, + isShowPreDashboard: false } as AppModel, modules: { @@ -106,6 +109,10 @@ const _store = { }, setShowDashboard(state) { state.isShowDashboard = !state.isShowDashboard; + }, + setShowPreDashboard(state) { + + state.isShowPreDashboard = !state.isShowPreDashboard; } }, @@ -129,6 +136,10 @@ const _store = { ShowDashboard(context){ context.commit("setShowDashboard"); }, + ShowPreDashboard(context){ + + context.commit("setShowPreDashboard"); + }, SetCurrentUser(context, userinfo) { context.commit("setCurrentUser", userinfo); From 2e8f0f6066f009946daed5a343781ccab79f2fe2 Mon Sep 17 00:00:00 2001 From: Alessio Date: Mon, 18 May 2020 15:21:58 +0200 Subject: [PATCH 095/167] fix svg dashboard --- .../assets/icons/svg/svg-dashboard.svg | 19 ++++++++++--------- .../assets/icons/svg/svg-dashboard2.svg | 19 ++++++++++--------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg index 1b4996da..435ad2c3 100644 --- a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg +++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg @@ -9,9 +9,9 @@ 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="210mm" - height="297mm" - viewBox="0 0 210 297" + width="551mm" + height="180mm" + viewBox="0 0 551 180" version="1.1" id="svg837" inkscape:version="0.92.4 (5da689c313, 2019-01-14)" @@ -25,9 +25,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="31.678384" - inkscape:cx="409.01991" - inkscape:cy="589.57143" + inkscape:zoom="0.49497475" + inkscape:cx="1215.3602" + inkscape:cy="553.18711" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" @@ -51,10 +51,11 @@ + id="layer1" + transform="translate(0,-117)"> diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg index 9987a57c..460ffa56 100644 --- a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg +++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg @@ -9,9 +9,9 @@ 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="210mm" - height="297mm" - viewBox="0 0 210 297" + width="561mm" + height="196mm" + viewBox="0 0 561 196" version="1.1" id="svg860" inkscape:version="0.92.4 (5da689c313, 2019-01-14)" @@ -86,9 +86,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="3.959798" - inkscape:cx="272.61778" - inkscape:cy="702.68944" + inkscape:zoom="0.24748738" + inkscape:cx="1277.5889" + inkscape:cy="644.67105" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" @@ -112,10 +112,11 @@ + id="layer1" + transform="translate(0,-101)"> From e65ba32e092f9a2b898194d5a532958f9c59ce43 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 18 May 2020 17:25:56 +0200 Subject: [PATCH 096/167] Start integration for S7Net NC --- Client.Config/SubModels/VendorHmi.cs | 2 +- Client/View/NcWindow.cs | 15 ++ Client/View/OpeningForm.cs | 2 + Libs/CMS_CORE_Library.dll | Bin 2929664 -> 2942464 bytes Libs/CMS_CORE_Library.dll.config | 15 ++ Thermo.Active.Config/Config/serverConfig.xml | 8 +- .../Config/serverConfigValidator.xsd | 145 +++++++++--------- Thermo.Active.Core/Thermo.Active.Core.csproj | 3 +- .../Thermo.Active.Database.csproj | 3 +- Thermo.Active.Model/Constants.cs | 2 +- .../DTOModels/Recipe/DTORecipeParam.cs | 1 + .../Thermo.Active.Model.csproj | 3 +- Thermo.Active.NC/NcAdapter.cs | 76 ++++++++- Thermo.Active.NC/Thermo.Active.NC.csproj | 2 +- Thermo.Active.sln | 81 ++++++++++ Thermo.Active/Thermo.Active.csproj | 3 +- 16 files changed, 270 insertions(+), 91 deletions(-) create mode 100644 Libs/CMS_CORE_Library.dll.config 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 63759b8bcbed27bab425365be22c3bf114c5fdd6..523efeac261af620a20fde6a3e2ded0b42cdbdf7 100644 GIT binary patch delta 693729 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

MUfJMg=p6nA?+#P5Mp^!M(< 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 PLl`XZ$>w23f6@LA6z%6q delta 682052 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

ke)$Y*V)Lpa$B+4cWwAFyZ_jnVqU0XuX81 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

lS6dW>FHU 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�O-@v&nHJ??_UXHjI=gPsU6|7nf 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 + + + + + + + + + + + + \ 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.Core/Thermo.Active.Core.csproj b/Thermo.Active.Core/Thermo.Active.Core.csproj index a83c57bf..4bd50957 100644 --- a/Thermo.Active.Core/Thermo.Active.Core.csproj +++ b/Thermo.Active.Core/Thermo.Active.Core.csproj @@ -32,7 +32,8 @@ 4 - + + False ..\Libs\CMS_CORE_Library.dll diff --git a/Thermo.Active.Database/Thermo.Active.Database.csproj b/Thermo.Active.Database/Thermo.Active.Database.csproj index 6b1a06e6..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 diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index 5c9c5fd8..dbb42bbf 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -134,7 +134,7 @@ namespace Thermo.Active.Model public const string FANUC = "FANUC"; public const string SIEMENS = "SIEMENS"; public const string OSAI = "OSAI"; - public const string SIEMENS_S7 = "SIEMENS_S7"; + public const string S7NET = "S7NET"; } // Database config diff --git a/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs index 806d37b4..4ea7a14c 100644 --- a/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs +++ b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs @@ -8,6 +8,7 @@ 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; } diff --git a/Thermo.Active.Model/Thermo.Active.Model.csproj b/Thermo.Active.Model/Thermo.Active.Model.csproj index 25fb583e..a2abd26f 100644 --- a/Thermo.Active.Model/Thermo.Active.Model.csproj +++ b/Thermo.Active.Model/Thermo.Active.Model.csproj @@ -33,7 +33,8 @@ 4 - + + False ..\Libs\CMS_CORE_Library.dll diff --git a/Thermo.Active.NC/NcAdapter.cs b/Thermo.Active.NC/NcAdapter.cs index 7cb5544b..2bf6264b 100644 --- a/Thermo.Active.NC/NcAdapter.cs +++ b/Thermo.Active.NC/NcAdapter.cs @@ -76,7 +76,7 @@ namespace Thermo.Active.NC case NC_VENDOR.OSAI: return new Nc_Osai(NcConfig.NcIpAddress, NcConfig.NcPort, 2000); - case NC_VENDOR.SIEMENS_S7: + case NC_VENDOR.S7NET: return new Nc_S7Net(NcConfig.NcIpAddress, NcConfig.NcPort, 2000); } @@ -1071,6 +1071,69 @@ namespace Thermo.Active.NC return NO_ERROR; } + 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) { @@ -1481,13 +1544,10 @@ namespace Thermo.Active.NC } else { - // FIXME -#if false - // gestione errore - cmsError = ReadScadaData(schema, out currParam); - if (cmsError.IsError()) - return cmsError; -#endif + // gestione errore + cmsError = ReadRecipeData(false, out currRecipe); + if (cmsError.IsError()) + return cmsError; } // restituisco cod errore se trovato diff --git a/Thermo.Active.NC/Thermo.Active.NC.csproj b/Thermo.Active.NC/Thermo.Active.NC.csproj index 77bfb046..0f2f881e 100644 --- a/Thermo.Active.NC/Thermo.Active.NC.csproj +++ b/Thermo.Active.NC/Thermo.Active.NC.csproj @@ -32,7 +32,7 @@ 4 - + False ..\Libs\CMS_CORE_Library.dll diff --git a/Thermo.Active.sln b/Thermo.Active.sln index 0eb674ba..672bf81b 100644 --- a/Thermo.Active.sln +++ b/Thermo.Active.sln @@ -44,6 +44,9 @@ Global 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 +58,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 +76,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 +94,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 +112,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 +130,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 +148,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 +166,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 +184,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 +202,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 +220,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 +238,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 +256,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,6 +274,12 @@ 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 diff --git a/Thermo.Active/Thermo.Active.csproj b/Thermo.Active/Thermo.Active.csproj index 12b1ef53..7dc1aeb8 100644 --- a/Thermo.Active/Thermo.Active.csproj +++ b/Thermo.Active/Thermo.Active.csproj @@ -58,7 +58,8 @@ 4 - + + False ..\Libs\CMS_CORE_Library.dll From 74a998696ff854f519610e97d031db87d3d8db80 Mon Sep 17 00:00:00 2001 From: Damiano Date: Mon, 18 May 2020 17:48:45 +0200 Subject: [PATCH 097/167] optimization dashboard component --- .../assets/icons/svg/svg-dashboard3.svg | 30 +++++++++++-------- .../wwwroot/assets/styles/base/dashboard.less | 13 ++++---- Thermo.Active/wwwroot/assets/styles/style.css | 11 ++++--- .../dashboard/dashboard.vue | 4 +-- 4 files changed, 35 insertions(+), 23 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg index 2ceb0966..147c90ca 100644 --- a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg +++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg @@ -9,9 +9,9 @@ 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="210mm" - height="297mm" - viewBox="0 0 210 297" + width="800mm" + height="100mm" + viewBox="0 0 800 100" version="1.1" id="svg2161" inkscape:version="0.92.4 (5da689c313, 2019-01-14)" @@ -46,9 +46,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="3.959798" - inkscape:cx="386.8365" - inkscape:cy="619.14286" + inkscape:zoom="0.24748738" + inkscape:cx="1030.3223" + inkscape:cy="338.67739" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" @@ -65,14 +65,15 @@ image/svg+xml - + + id="layer1" + transform="translate(0,-197)"> + diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index 2201bca7..3cd2e6f1 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -15,12 +15,12 @@ // margin-bottom: -90px; // margin-right:200px; // flex-direction:column; - background-color:#007cc3; - width: 500px; - height: 500px; - border-radius: 84%; + width: 400px; + height: 400 px; + border-radius: 5px; position: relative; flex-direction: column; + display:flex; } .row{ background-image: url(/assets/icons/svg/row.svg); @@ -40,18 +40,21 @@ &.dashboard{ background-image: url(/assets/icons/svg/svg-dashboard.svg); height: 178px; + width: 545px; background-size: 545px; } &.dashboard2{ height: 213px; background-size: 546px; + width: 546px; background-image: url(/assets/icons/svg/svg-dashboard2.svg); } &.dashboard3{ height: 88px; - background-size: 756.7px; + width: 756.7px; + background-size:756.7px; background-image: url(/assets/icons/svg/svg-dashboard3.svg); } } diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 9268c1e3..4d3fb5a1 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -23209,12 +23209,12 @@ footer .container button.big:before { color: #4b4b4b; } .dashboard .gauge-container { - background-color: #007cc3; - width: 500px; - height: 500px; - border-radius: 84%; + width: 400px; + height: 400 px; + border-radius: 5px; position: relative; flex-direction: column; + display: flex; } .dashboard .row { background-image: url(/assets/icons/svg/row.svg); @@ -23229,15 +23229,18 @@ footer .container button.big:before { .svg-dashboard.dashboard { background-image: url(/assets/icons/svg/svg-dashboard.svg); height: 178px; + width: 545px; background-size: 545px; } .svg-dashboard.dashboard2 { height: 213px; background-size: 546px; + width: 546px; background-image: url(/assets/icons/svg/svg-dashboard2.svg); } .svg-dashboard.dashboard3 { height: 88px; + width: 756.7px; background-size: 756.7px; background-image: url(/assets/icons/svg/svg-dashboard3.svg); } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue index 566d08e4..0d48dce3 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue @@ -19,9 +19,9 @@

- + From ea32e6b506dfef81fea91386a74eca4d109bcf4d Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 18 May 2020 17:54:56 +0200 Subject: [PATCH 098/167] Debug on NC continues --- Thermo.Active.Core/Thermo.Active.Core.csproj | 8 ++++---- .../Thermo.Active.Model.csproj | 10 ++++++---- Thermo.Active.NC/Thermo.Active.NC.csproj | 8 ++++---- Thermo.Active.UI/Thermo.Active.UI.csproj | 8 ++++---- .../Thermo.Active.Utils.csproj | 8 ++++---- Thermo.Active.sln | 20 +++++++++++++++++++ Thermo.Active/Thermo.Active.csproj | 8 ++++---- 7 files changed, 46 insertions(+), 24 deletions(-) diff --git a/Thermo.Active.Core/Thermo.Active.Core.csproj b/Thermo.Active.Core/Thermo.Active.Core.csproj index 4bd50957..c757ec32 100644 --- a/Thermo.Active.Core/Thermo.Active.Core.csproj +++ b/Thermo.Active.Core/Thermo.Active.Core.csproj @@ -32,10 +32,6 @@ 4 - - False - ..\Libs\CMS_CORE_Library.dll - @@ -64,6 +60,10 @@ + + {4abf8eef-2b23-483e-acdc-53214fe28681} + CMS_CORE_Library + {3f5c2483-fc87-43ef-92a8-66ff7d0e440f} Thermo.Active.Config diff --git a/Thermo.Active.Model/Thermo.Active.Model.csproj b/Thermo.Active.Model/Thermo.Active.Model.csproj index a2abd26f..3dd39dcf 100644 --- a/Thermo.Active.Model/Thermo.Active.Model.csproj +++ b/Thermo.Active.Model/Thermo.Active.Model.csproj @@ -33,10 +33,6 @@ 4 - - False - ..\Libs\CMS_CORE_Library.dll - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll @@ -159,6 +155,12 @@ + + + {4abf8eef-2b23-483e-acdc-53214fe28681} + CMS_CORE_Library + + diff --git a/Thermo.Active.NC/Thermo.Active.NC.csproj b/Thermo.Active.NC/Thermo.Active.NC.csproj index 0f2f881e..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 - @@ -70,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/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.sln b/Thermo.Active.sln index 672bf81b..7ddc594b 100644 --- a/Thermo.Active.sln +++ b/Thermo.Active.sln @@ -39,6 +39,8 @@ 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 @@ -286,6 +288,24 @@ Global {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/Thermo.Active.csproj b/Thermo.Active/Thermo.Active.csproj index 7dc1aeb8..f2f75143 100644 --- a/Thermo.Active/Thermo.Active.csproj +++ b/Thermo.Active/Thermo.Active.csproj @@ -58,10 +58,6 @@ 4 - - False - ..\Libs\CMS_CORE_Library.dll - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll @@ -16123,6 +16119,10 @@ + + {4abf8eef-2b23-483e-acdc-53214fe28681} + CMS_CORE_Library + {49b04d99-0ecd-4900-86d3-7098d61314d7} Thermo.Active.CmsConnectGateway From 63b09c1dfb00edbeb774499372988e945389951f Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 19 May 2020 08:55:40 +0200 Subject: [PATCH 099/167] OK con S7 il thermo NC!!! --- Thermo.Active.Core/ThreadsFunctions.cs | 197 +++++++++++++++++++++---- Thermo.Active.Core/ThreadsHandler.cs | 9 +- 2 files changed, 177 insertions(+), 29 deletions(-) diff --git a/Thermo.Active.Core/ThreadsFunctions.cs b/Thermo.Active.Core/ThreadsFunctions.cs index 9ff2113c..c98c3cd1 100644 --- a/Thermo.Active.Core/ThreadsFunctions.cs +++ b/Thermo.Active.Core/ThreadsFunctions.cs @@ -21,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(); @@ -47,7 +49,7 @@ public static class ThreadsFunctions while (true) { - sw.Restart(); + sw.Restart(); //if(errorCounter == MAX_NUM_OF_WATCHDOG_ERROR) //{ @@ -55,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(); @@ -65,7 +67,7 @@ public static class ThreadsFunctions errorCounter++; } else if (libraryError == NO_ERROR) - errorCounter = 0; + errorCounter = 0; } else RestoreConnection(); @@ -599,7 +601,7 @@ public static class ThreadsFunctions } } - public static void ReadScadaData() + public static void ReadScadaData() { NcAdapter ncAdapter = new NcAdapter(); Stopwatch sw = new Stopwatch(); @@ -644,6 +646,149 @@ public static class ThreadsFunctions } } + 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(500, (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(); @@ -698,7 +843,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") @@ -827,7 +972,7 @@ public static class ThreadsFunctions { List availableLanguages = LanguageController.GetLanguageListFromDirectory(); if (availableLanguages == null) - return ; + return; ICollection cultureInfos = new List(); @@ -838,7 +983,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; @@ -847,10 +992,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") @@ -861,7 +1006,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; @@ -871,10 +1016,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) @@ -890,16 +1035,16 @@ 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) { @@ -975,7 +1120,7 @@ public static class ThreadsFunctions break; } } - + internal static void UpdateStat(string functionName, long timer) { if (!Timers.ContainsKey(functionName)) @@ -994,16 +1139,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); @@ -1107,7 +1252,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 490c24b5..c1d27e90 100644 --- a/Thermo.Active.Core/ThreadsHandler.cs +++ b/Thermo.Active.Core/ThreadsHandler.cs @@ -19,13 +19,16 @@ namespace Thermo.Active.Core ThreadsFunctions.ReadExpiredMaintenances, ThreadsFunctions.ReadAxesPositionsData, ThreadsFunctions.ReadUserSoftKeysData, - ThreadsFunctions.ReadHeadsData, + //ThreadsFunctions.ReadHeadsData, ThreadsFunctions.ReadAxesNamesData, - ThreadsFunctions.ReadActiveProgramData, + //ThreadsFunctions.ReadActiveProgramData, //ThreadsFunctions.ReadPartProgramQueueData, ThreadsFunctions.ReadScadaData, - ThreadsFunctions.ReadM154Data + ThreadsFunctions.ReadM154Data, // ThreadsFunctions.ReadNcSoftKeysData, + ThreadsFunctions.ReadRecipeData, + ThreadsFunctions.ReadWarmersData, + ThreadsFunctions.ReadModulesData }; private static Action ThreadSetupCmsConnect = ThreadsFunctions.SetupCmsConnect; From bbfe28edc76bd27ad4e2de36af479e127bac041f Mon Sep 17 00:00:00 2001 From: = Date: Tue, 19 May 2020 15:13:57 +0200 Subject: [PATCH 100/167] log delle chiamate signalr --- Thermo.Active/wwwroot/config.development.json | 2 +- Thermo.Active/wwwroot/config.production.json | 2 +- Thermo.Active/wwwroot/src/services/hub.ts | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Thermo.Active/wwwroot/config.development.json b/Thermo.Active/wwwroot/config.development.json index d47c9870..3f9529d8 100644 --- a/Thermo.Active/wwwroot/config.development.json +++ b/Thermo.Active/wwwroot/config.development.json @@ -2,6 +2,6 @@ "env": "development", "api": { "enabled": true, - "apiServerUrl": "http://localhost:9000" + "apiServerUrl": "http://seriate.steamware.net:9000/" } } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/config.production.json b/Thermo.Active/wwwroot/config.production.json index 42e97807..52d7f647 100644 --- a/Thermo.Active/wwwroot/config.production.json +++ b/Thermo.Active/wwwroot/config.production.json @@ -2,6 +2,6 @@ "env": "development", "api": { "enabled": false, - "apiServerUrl": "https://localhost:9000" + "apiServerUrl": "http://seriate.steamware.net:9000/" } } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/services/hub.ts b/Thermo.Active/wwwroot/src/services/hub.ts index 89f567b7..d8cfa95d 100644 --- a/Thermo.Active/wwwroot/src/services/hub.ts +++ b/Thermo.Active/wwwroot/src/services/hub.ts @@ -66,6 +66,9 @@ export class Hub { this._hub = $.connection.ncHub; + try { $.connection.hub.logging = true; } catch{ } + try { $.connection.ncHub.logging = true; } catch{ } + // Registro le callback; this._hub.client.alarms = this.manageAlarmsCallbacks; this._hub.client.powerOn = this.managePowerCallbacks; From 20a271290d7c1363d9537e549fb6776d818587fc Mon Sep 17 00:00:00 2001 From: Alessio Date: Tue, 19 May 2020 15:15:44 +0200 Subject: [PATCH 101/167] fix preriscaldo dashboard --- .../styles/base/preriscaldo-dashboard.less | 79 ++++++++++++++++++- Thermo.Active/wwwroot/assets/styles/style.css | 61 +++++++++++++- .../preriscaldo-dashboard.ts | 9 +++ .../preriscaldo-dashboard.vue | 28 ++++++- 4 files changed, 167 insertions(+), 10 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less index 35366d5b..236ac3a3 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less @@ -20,16 +20,15 @@ .ribbon-container{ - width: 496px; height: 80px; z-index: 900; } .box-date{ display: flex; - width: 70%; - margin-left: 100px; - + width: 100%; + justify-content: center; + div{ flex-shrink: 0; font-size: 47px; @@ -93,4 +92,76 @@ } } + + 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 50px; + 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/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index a8218f98..5f9d003e 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4780,14 +4780,13 @@ display: flex; } .preriscaldodashboard .header .ribbon-container { - width: 496px; height: 80px; z-index: 900; } .preriscaldodashboard .header .box-date { display: flex; - width: 70%; - margin-left: 100px; + width: 100%; + justify-content: center; } .preriscaldodashboard .header .box-date div { flex-shrink: 0; @@ -4839,6 +4838,62 @@ 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 50px; + 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; } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.ts index 70781c1c..5f2b2f62 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.ts @@ -20,6 +20,15 @@ import { LocalizationService, localizationService } from "@/services/localizatio }) export default class PreriscaldoDashboard extends Vue{ + @Prop({default:0}) + day:number; + @Prop({default:0}) + hour:number; + @Prop({default:0}) + minute:number; + @Prop({default:0}) + second:number; + $store: any; public minutes: string = ""; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.vue index 121f4b2a..6b8faf39 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.vue @@ -3,8 +3,8 @@
@@ -30,7 +30,7 @@
- +
{{dayIt}}
{{monthIt}}
@@ -57,6 +57,28 @@
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
From 4db37d663f16cc68da50e13e123050282f71078a Mon Sep 17 00:00:00 2001 From: = Date: Tue, 19 May 2020 15:19:08 +0200 Subject: [PATCH 102/167] fix caricamento signalr --- Thermo.Active/wwwroot/index.html | 37 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/Thermo.Active/wwwroot/index.html b/Thermo.Active/wwwroot/index.html index 226df41d..f1b8ee9e 100644 --- a/Thermo.Active/wwwroot/index.html +++ b/Thermo.Active/wwwroot/index.html @@ -2,31 +2,30 @@ - - - - - - CMS Active + + + + + + CMS Active - - - - - + + + + + - + - -
-
- - + +
+
+ + - - + \ No newline at end of file From ada12efca263fa92c299d0edca2516bf1f4f5f91 Mon Sep 17 00:00:00 2001 From: Alessio Date: Tue, 19 May 2020 15:19:13 +0200 Subject: [PATCH 103/167] fix preriscaldo dashboard --- .../wwwroot/assets/styles/base/preriscaldo-dashboard.less | 2 +- Thermo.Active/wwwroot/assets/styles/style.css | 2 +- .../preriscaldo-dashboard/preriscaldo-dashboard.ts | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less index 236ac3a3..eb3bc10c 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less @@ -131,7 +131,7 @@ justify-content: center; div{ - margin: 0px 50px; + margin: 0px 70px; display: flex; flex-direction: column; diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 5f9d003e..e1215d3e 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4870,7 +4870,7 @@ justify-content: center; } .preriscaldodashboard section div div { - margin: 0px 50px; + margin: 0px 70px; display: flex; flex-direction: column; } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.ts index 5f2b2f62..c27da3a5 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.ts @@ -20,13 +20,13 @@ import { LocalizationService, localizationService } from "@/services/localizatio }) export default class PreriscaldoDashboard extends Vue{ - @Prop({default:0}) + @Prop({default:2}) day:number; - @Prop({default:0}) + @Prop({default:13}) hour:number; - @Prop({default:0}) + @Prop({default:27}) minute:number; - @Prop({default:0}) + @Prop({default:13}) second:number; $store: any; From 328d5f618e518267a0d0cd532d70aec3bd38f3e6 Mon Sep 17 00:00:00 2001 From: Alessio Date: Tue, 19 May 2020 15:22:32 +0200 Subject: [PATCH 104/167] fix button close of prerisclado dashboard --- .../preriscaldo-dashboard/preriscaldo-dashboard.ts | 2 +- .../components/programmazione-preriscaldo.ts | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.ts index c27da3a5..1a9b3821 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/preriscaldo-dashboard/preriscaldo-dashboard.ts @@ -163,7 +163,7 @@ export default class PreriscaldoDashboard extends Vue{ } close() { - appModelActions.ShowDashboard(this.$store); + appModelActions.ShowPreDashboard(this.$store); }; } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/programmazione-preriscaldo/components/programmazione-preriscaldo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/programmazione-preriscaldo/components/programmazione-preriscaldo.ts index c07b143b..7e9f9167 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/programmazione-preriscaldo/components/programmazione-preriscaldo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/programmazione-preriscaldo/components/programmazione-preriscaldo.ts @@ -28,8 +28,7 @@ export default class ProgrammazionePreriscaldo extends Vue{ messageService.publishToChannel(name); } - showPreDashboard() { - + showPreDashboard() { appModelActions.ShowPreDashboard(this.$store); } From a39cefbfba110885d5154144d9df77a7bcfbfe6b Mon Sep 17 00:00:00 2001 From: Alessio Date: Tue, 19 May 2020 15:51:25 +0200 Subject: [PATCH 105/167] fix z-index --- Thermo.Active/wwwroot/assets/styles/base/dashboard.less | 2 +- .../wwwroot/assets/styles/base/preriscaldo-dashboard.less | 2 +- Thermo.Active/wwwroot/assets/styles/style.css | 4 ++-- .../setup/avvio-pruduzione/avvio-produzione.ts | 1 + 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index 65ef0bab..dacfa7fa 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -10,7 +10,7 @@ width: 100%; background-image: url("../../assets/icons/png/bg.png"); position: fixed; - z-index: 1002; + z-index: 1001; display: flex; flex-direction: column; justify-content: flex-start; diff --git a/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less index eb3bc10c..e8c253b5 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/preriscaldo-dashboard.less @@ -9,7 +9,7 @@ width: 100%; background-image: url("../../assets/icons/png/bg.png"); position: fixed; - z-index: 1002; + z-index: 1001; display: flex; flex-direction: column; justify-content: flex-start; diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index e1215d3e..7994b0a7 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4042,7 +4042,7 @@ width: 100%; background-image: url("../../assets/icons/png/bg.png"); position: fixed; - z-index: 1002; + z-index: 1001; display: flex; flex-direction: column; justify-content: flex-start; @@ -4770,7 +4770,7 @@ width: 100%; background-image: url("../../assets/icons/png/bg.png"); position: fixed; - z-index: 1002; + z-index: 1001; display: flex; flex-direction: column; justify-content: flex-start; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts index 3d4848f9..2f75755a 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts @@ -31,6 +31,7 @@ export default class AvvioProduzione extends Vue { // }; showDashboard() { + ModalHelper.HideModal(); appModelActions.ShowDashboard(this.$store); } From 95484c7ee7c5b605932e210cebd81cbe0caaa3a7 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 19 May 2020 16:23:10 +0200 Subject: [PATCH 106/167] Update metodi preliminari signal-r --- Thermo.Active.Core/ThreadsFunctions.cs | 56 +++++++++++++++-- Thermo.Active.Core/ThreadsHandler.cs | 3 +- Thermo.Active.Model/Constants.cs | 1 + .../DTOModels/DTOGaugeDataModel.cs | 33 ++++++++++ .../DTOModels/Recipe/DTORecipeParam.cs | 60 +++++++++++++++++++ .../Thermo.Active.Model.csproj | 1 + Thermo.Active.NC/NcAdapter.cs | 27 ++++----- Thermo.Active.Utils/supportFunctions.cs | 28 +++++---- Thermo.Active/Listeners/ListenersHandler.cs | 4 ++ .../Listeners/SignalR/SignalRListener.cs | 50 +++++++++++++--- .../Listeners/SignalRStaticObjects.cs | 2 + 11 files changed, 226 insertions(+), 39 deletions(-) create mode 100644 Thermo.Active.Model/DTOModels/DTOGaugeDataModel.cs diff --git a/Thermo.Active.Core/ThreadsFunctions.cs b/Thermo.Active.Core/ThreadsFunctions.cs index c98c3cd1..1329d902 100644 --- a/Thermo.Active.Core/ThreadsFunctions.cs +++ b/Thermo.Active.Core/ThreadsFunctions.cs @@ -377,6 +377,7 @@ public static class ThreadsFunctions } } +#if false public static void ReadHeadsData() { NcAdapter ncAdapter = new NcAdapter(); @@ -419,7 +420,8 @@ public static class ThreadsFunctions { ncAdapter.Dispose(); } - } + } +#endif public static void ReadAxesNamesData() { @@ -509,6 +511,7 @@ public static class ThreadsFunctions } } +#if false public static void ReadActiveProgramData() { NcFileAdapter ncAdapter = new NcFileAdapter(); @@ -552,8 +555,10 @@ public static class ThreadsFunctions { ncAdapter.Dispose(); } - } + } +#endif +#if false public static void ReadPartProgramQueueData() { NcFileAdapter ncAdapter = new NcFileAdapter(); @@ -599,7 +604,8 @@ public static class ThreadsFunctions { ncAdapter.Dispose(); } - } + } +#endif public static void ReadScadaData() { @@ -645,7 +651,49 @@ 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(); @@ -687,7 +735,7 @@ public static class ThreadsFunctions // Update thread timer UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds); // Wait - Thread.Sleep(CalcSleepTime(500, (int)sw.ElapsedMilliseconds)); + Thread.Sleep(CalcSleepTime(250, (int)sw.ElapsedMilliseconds)); } } catch (ThreadAbortException) diff --git a/Thermo.Active.Core/ThreadsHandler.cs b/Thermo.Active.Core/ThreadsHandler.cs index c1d27e90..49bc82d0 100644 --- a/Thermo.Active.Core/ThreadsHandler.cs +++ b/Thermo.Active.Core/ThreadsHandler.cs @@ -24,8 +24,9 @@ namespace Thermo.Active.Core //ThreadsFunctions.ReadActiveProgramData, //ThreadsFunctions.ReadPartProgramQueueData, ThreadsFunctions.ReadScadaData, - ThreadsFunctions.ReadM154Data, + ThreadsFunctions.ReadM154Data, // levare? // ThreadsFunctions.ReadNcSoftKeysData, + ThreadsFunctions.ReadGaugeData, ThreadsFunctions.ReadRecipeData, ThreadsFunctions.ReadWarmersData, ThreadsFunctions.ReadModulesData diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index dbb42bbf..b3e58e33 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -269,6 +269,7 @@ namespace Thermo.Active.Model 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"; 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/Recipe/DTORecipeParam.cs b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs index 4ea7a14c..c308032d 100644 --- a/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs +++ b/Thermo.Active.Model/DTOModels/Recipe/DTORecipeParam.cs @@ -13,17 +13,77 @@ namespace Thermo.Active.Model.DTOModels.Recipe 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/Thermo.Active.Model.csproj b/Thermo.Active.Model/Thermo.Active.Model.csproj index 3dd39dcf..b4394495 100644 --- a/Thermo.Active.Model/Thermo.Active.Model.csproj +++ b/Thermo.Active.Model/Thermo.Active.Model.csproj @@ -95,6 +95,7 @@ + diff --git a/Thermo.Active.NC/NcAdapter.cs b/Thermo.Active.NC/NcAdapter.cs index 2bf6264b..3558caf1 100644 --- a/Thermo.Active.NC/NcAdapter.cs +++ b/Thermo.Active.NC/NcAdapter.cs @@ -33,7 +33,7 @@ namespace Thermo.Active.NC /// public bool simData = true; - public Nc numericalControl; + public NcThermo numericalControl; public NcAdapter() => // Choose NC @@ -59,23 +59,11 @@ 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); } @@ -1071,6 +1059,15 @@ 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 @@ -1696,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) diff --git a/Thermo.Active.Utils/supportFunctions.cs b/Thermo.Active.Utils/supportFunctions.cs index d0cbdcde..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) { @@ -42,8 +42,9 @@ namespace Thermo.Active.Utils public static TACT_PARAM_TYPE GetTActCategory(string strCategory) { - TACT_PARAM_TYPE answ = TACT_PARAM_TYPE.ND; - try { + TACT_PARAM_TYPE answ = TACT_PARAM_TYPE.ND; + try + { answ = (TACT_PARAM_TYPE)Enum.Parse(typeof(TACT_PARAM_TYPE), strCategory); } catch { } @@ -82,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; } @@ -163,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(); @@ -172,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) { @@ -209,7 +210,7 @@ namespace Thermo.Active.Utils return null; EmptyFolder(jobFolderPath); - + using (ZipArchive zipExtractor = ZipFile.OpenRead(filePath)) { // Setup main job fields @@ -317,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() { @@ -382,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; @@ -417,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 @@ -434,7 +435,7 @@ namespace Thermo.Active.Utils return ""; } - + public static Boolean DecodeCMSConnectGatewayLogin(string encryptedString, out string login, out string password) { @@ -506,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/Listeners/ListenersHandler.cs b/Thermo.Active/Listeners/ListenersHandler.cs index 5f39f252..1571ea8b 100644 --- a/Thermo.Active/Listeners/ListenersHandler.cs +++ b/Thermo.Active/Listeners/ListenersHandler.cs @@ -109,6 +109,10 @@ namespace Thermo.Active.Listeners { SignalRListener.SendThermoWarmersData(a); })); + infos.Add(MessageServices.Current.Subscribe(SEND_THERMO_GAUGE_DATA, (a, b) => + { + SignalRListener.SendThermoGaugeData(a); + })); // Broadcast diff --git a/Thermo.Active/Listeners/SignalR/SignalRListener.cs b/Thermo.Active/Listeners/SignalR/SignalRListener.cs index 0f0b918e..946d3ea4 100644 --- a/Thermo.Active/Listeners/SignalR/SignalRListener.cs +++ b/Thermo.Active/Listeners/SignalR/SignalRListener.cs @@ -15,6 +15,9 @@ 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 { @@ -247,21 +250,41 @@ 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; - // FIXME TODO: usare un foreach comparer? - if (!LastRecipeFullData.SequenceEqual(currRecipeFull)) + Dictionary diffData = new Dictionary(); + + // calcola ed invia SOLO le differenze... + 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.Add(item.Key, item.Value); + } + } + }); + + if (diffData.Count > 0) + { + // salvo update LastRecipeFullData = currRecipeFull; var context = GlobalHost.ConnectionManager.GetHubContext(); - context.Clients.Group("ncData").recipeFullData(currRecipeFull); - } + context.Clients.Group("ncData").recipeFullData(diffData); + //context.Clients.Group("ncData").recipeFullData(currRecipeFull); + } } public static void SendThermoRecipeOverviewData(object recipeOver) @@ -287,7 +310,7 @@ namespace Thermo.Active.Listeners.SignalR LastRecipeFullData = currModules; var context = GlobalHost.ConnectionManager.GetHubContext(); - context.Clients.Group("ncData").recipeModulesData(currModules); + context.Clients.Group("ncData").modulesData(currModules); } } @@ -301,7 +324,20 @@ namespace Thermo.Active.Listeners.SignalR LastRecipeFullData = currWarmers; var context = GlobalHost.ConnectionManager.GetHubContext(); - context.Clients.Group("ncData").recipeWarmersData(currWarmers); + context.Clients.Group("ncData").warmersData(currWarmers); + } + } + public static void SendThermoGaugeData(object gaugeData) + { + GaugeModel currGauge = gaugeData as GaugeModel; + + // FIXME TODO: usare un foreach comparer? + if (!LastGaugeData.Equals(currGauge)) + { + LastGaugeData = currGauge; + + var context = GlobalHost.ConnectionManager.GetHubContext(); + context.Clients.Group("ncData").gaugeData(currGauge); } } diff --git a/Thermo.Active/Listeners/SignalRStaticObjects.cs b/Thermo.Active/Listeners/SignalRStaticObjects.cs index 34ac9733..4f98fc8d 100644 --- a/Thermo.Active/Listeners/SignalRStaticObjects.cs +++ b/Thermo.Active/Listeners/SignalRStaticObjects.cs @@ -3,6 +3,7 @@ using Thermo.Active.Model.DTOModels.AlarmModels; using Thermo.Active.Model.DTOModels.Scada; using System.Collections.Generic; using Thermo.Active.Model.DTOModels.Recipe; +using CMS_CORE_Library.Models; namespace Thermo.Active.Listeners { @@ -31,6 +32,7 @@ namespace Thermo.Active.Listeners 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; From 74c85acd2b037d4cdd4455f7168c0653b12ab844 Mon Sep 17 00:00:00 2001 From: Francesco Guerrieri Date: Tue, 19 May 2020 20:02:54 +0200 Subject: [PATCH 107/167] fix styles svg dashboard --- .../assets/icons/svg/svg-dashboard3.svg | 121 ++++++------- .../wwwroot/assets/styles/base/dashboard.less | 166 ++++++++++++++---- Thermo.Active/wwwroot/assets/styles/style.css | 116 +++++++++--- .../app_modules_thermo/dashboard/dashboard.ts | 13 ++ .../dashboard/dashboard.vue | 37 +++- 5 files changed, 317 insertions(+), 136 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg index 147c90ca..ce49caef 100644 --- a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg +++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg @@ -1,6 +1,4 @@ - - + version="1.1" + viewBox="0 0 800 100" + height="100mm" + width="800mm"> + effect="bspline" /> + apply_no_weight="true" + helper_size="0" + steps="2" + weight="33.333333" + is_visible="true" + id="path-effect1435-1" + effect="bspline" /> + inkscape:current-layer="layer1" + inkscape:document-units="mm" + inkscape:cy="177.72671" + inkscape:cx="959.27059" + inkscape:zoom="0.21622405" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" /> @@ -70,38 +69,30 @@ + inkscape:groupmode="layer" + inkscape:label="Livello 1"> + id="path844" + d="m 2.6796793,209.06029 58.2740227,81.97094 v 0" + style="fill:none;stroke:#0000ff;stroke-width:4.42;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> + id="path846" + d="m 60.953702,291.03123 687.400928,0.0476" + style="fill:none;stroke:#0000ff;stroke-width:4.42;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> + id="path848" + d="M 2.6794829,209.06032 745.14762,209.82891" + style="fill:none;stroke:#0000ff;stroke-width:4.43261;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + transform="matrix(0.26458333,0,0,0.26458333,0,197)" + inkscape:connector-curvature="0" + id="path852" + d="M 136.13529,204.53569 C 80.576903,126.38499 34.413606,60.655497 33.550187,58.47015 31.911582,54.322776 2808.1363,57.665928 2812.2867,61.816326 c 1.836,1.835943 12.0291,217.437834 12.6595,267.769694 l 0.2151,17.17259 -1294.0054,-0.0654 -1294.00536,-0.0654 z" + style="fill:#b6d6f3;fill-rule:evenodd;stroke:none;stroke-width:67.5005;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index 3cd2e6f1..d418cd28 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -15,11 +15,11 @@ // margin-bottom: -90px; // margin-right:200px; // flex-direction:column; - width: 400px; - height: 400 px; + width: 553px; + height: 566px; border-radius: 5px; position: relative; - flex-direction: column; + flex-direction: column; display:flex; } .row{ @@ -29,7 +29,7 @@ } - + } .svg-dashboard{ @@ -52,7 +52,7 @@ } &.dashboard3{ - height: 88px; + height: 100px; width: 756.7px; background-size:756.7px; background-image: url(/assets/icons/svg/svg-dashboard3.svg); @@ -60,59 +60,151 @@ } .box-start-machine{ - width: 30%; - float: left; - padding: 60px 0 0 60px; } - .box-circle-piece{ - float: left; - height: 600px; - position: relative; - } - .text-start-machine{ position: absolute; left: 40%; font-size: 26px; + top: 30px; text-transform: uppercase; - &.start{ - top: 35px; - } + // &.start{ + // top: 35px; + // } - &.end{ - top:50px; - } + // &.end{ + // top:50px; + // } } .labels{ display:flex; - flex-direction:column; + flex-direction:column; margin-top:-94px; margin-left: 19px; } - + .box-circle-piece{ - float: left; - height: 600px; + display: flex; + align-items: center; position: relative; } - .text-start-machine{ - position: absolute; - left: 40%; - font-size: 26px; - text-transform: uppercase; - - &.start{ - top: 35px; - } - - &.end{ - top:50px; - } + .box-recipe{ + height: 550px; } + .box-graph-dashboard{ + width: 100vw; + height: 100vh; + display: flex; + align-items: center; + justify-content: center; + } + + .text-recipe{ + font-size: 35px; + display: flex; + align-items: center; + height: 110px; + justify-content: center; + } + + time.start-end{ + display: flex; + font-size: 120px; + align-self: end; + align-items: flex-end; + height: 170px; + justify-content: center; + padding-top: 18px; + } + + .box-time-passed{ + text-align: center; + margin: 30px 0; + } + + .text-time-passed{ + font-size: 26px; + text-transform: uppercase; + margin: 15px 0; + } + + .time-passed{ + font-size: 54px; + margin: 0 auto; + } + + /* cerchi */ + + // #gauge1 .gauge{ + // width: 580px; + // position: absolute; + // } + + + + #gauge1{ + position: absolute; + width: 528px; + left: 12px; + top: 13px; + } + + #gauge1 .gauge .dial{ + fill: #99CFFF; + stroke: #91A2B1; + } + + #gauge1 .gauge .value{ + stroke: #4DAAFF; + } + + #gauge1 .gauge .value-text{ + fill: black; + alignment-baseline: before-edge; + font-size: 20px; + } + + #gauge2 .gauge .value-text{ + fill: black; + alignment-baseline: after-edge; + font-size: 20px; + } + + #gauge2 .gauge .dial{ + stroke: #003264; + } + + #gauge2 .gauge .value{ + stroke: #90C03D; + stroke-width: 2; + } + + + .container-stats{ + display: flex; + justify-content: center; + } + + .box-stats{ + margin: 0 50px; + font-size: 26px; + text-transform: uppercase; + text-align: center; + } + + .text-stats{ + margin-bottom: 0; + } + + .number-stats{ + font-size: 120px; + margin: 0 auto; + } + + diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 4d3fb5a1..e2634c8f 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -23209,8 +23209,8 @@ footer .container button.big:before { color: #4b4b4b; } .dashboard .gauge-container { - width: 400px; - height: 400 px; + width: 553px; + height: 566px; border-radius: 5px; position: relative; flex-direction: column; @@ -23239,33 +23239,18 @@ footer .container button.big:before { background-image: url(/assets/icons/svg/svg-dashboard2.svg); } .svg-dashboard.dashboard3 { - height: 88px; + height: 100px; width: 756.7px; background-size: 756.7px; background-image: url(/assets/icons/svg/svg-dashboard3.svg); } -.box-start-machine { - width: 30%; - float: left; - padding: 60px 0 0 60px; -} -.box-circle-piece { - float: left; - height: 600px; - position: relative; -} .text-start-machine { position: absolute; left: 40%; font-size: 26px; + top: 30px; text-transform: uppercase; } -.text-start-machine.start { - top: 35px; -} -.text-start-machine.end { - top: 50px; -} .labels { display: flex; flex-direction: column; @@ -23273,21 +23258,96 @@ footer .container button.big:before { margin-left: 19px; } .box-circle-piece { - float: left; - height: 600px; + display: flex; + align-items: center; position: relative; } -.text-start-machine { - position: absolute; - left: 40%; +.box-recipe { + height: 550px; +} +.box-graph-dashboard { + width: 100vw; + height: 100vh; + display: flex; + align-items: center; + justify-content: center; +} +.text-recipe { + font-size: 35px; + display: flex; + align-items: center; + height: 110px; + justify-content: center; +} +time.start-end { + display: flex; + font-size: 120px; + align-self: end; + align-items: flex-end; + height: 170px; + justify-content: center; + padding-top: 18px; +} +.box-time-passed { + text-align: center; + margin: 30px 0; +} +.text-time-passed { font-size: 26px; text-transform: uppercase; + margin: 15px 0; } -.text-start-machine.start { - top: 35px; +.time-passed { + font-size: 54px; + margin: 0 auto; } -.text-start-machine.end { - top: 50px; +/* cerchi */ +#gauge1 { + position: absolute; + width: 528px; + left: 12px; + top: 13px; +} +#gauge1 .gauge .dial { + fill: #99CFFF; + stroke: #91A2B1; +} +#gauge1 .gauge .value { + stroke: #4DAAFF; +} +#gauge1 .gauge .value-text { + fill: black; + alignment-baseline: before-edge; + font-size: 20px; +} +#gauge2 .gauge .value-text { + fill: black; + alignment-baseline: after-edge; + font-size: 20px; +} +#gauge2 .gauge .dial { + stroke: #003264; +} +#gauge2 .gauge .value { + stroke: #90C03D; + stroke-width: 2; +} +.container-stats { + display: flex; + justify-content: center; +} +.box-stats { + margin: 0 50px; + font-size: 26px; + text-transform: uppercase; + text-align: center; +} +.text-stats { + margin-bottom: 0; +} +.number-stats { + font-size: 120px; + margin: 0 auto; } a, a:visited, diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts index 71b2bbde..98219287 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts @@ -15,6 +15,18 @@ mounted(){ } } ); + + var gauge2= Gauge( + document.getElementById("gauge2"), { + max: 100, + dialStartAngle: -90, + dialEndAngle: -90.001, + value: 100, + label: function(value) { + return Math.round(value * 100) / 100; + } + } + ); function loop() { var value1 = Math.random() * 100, @@ -25,6 +37,7 @@ mounted(){ // setValueAnimated(value, durationInSecs); gauge1.setValueAnimated(value1, 1); + gauge2.setValueAnimated(value2, 1); window.setTimeout(loop, 6000); } loop() diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue index 0d48dce3..5fe3da9d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue @@ -1,13 +1,21 @@ From dcb65ad4f370dea0999016c8484710f6796b6c5f Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 19 May 2020 20:06:15 +0200 Subject: [PATCH 108/167] fix x test locale UI --- Thermo.Active/wwwroot/config.development.json | 2 +- package-lock.json | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 package-lock.json diff --git a/Thermo.Active/wwwroot/config.development.json b/Thermo.Active/wwwroot/config.development.json index 3f9529d8..52582d19 100644 --- a/Thermo.Active/wwwroot/config.development.json +++ b/Thermo.Active/wwwroot/config.development.json @@ -2,6 +2,6 @@ "env": "development", "api": { "enabled": true, - "apiServerUrl": "http://seriate.steamware.net:9000/" + "apiServerUrl": "http://10.74.82.72:9000" } } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..48e341a0 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3 @@ +{ + "lockfileVersion": 1 +} From bc0a33cf7f5fab80bb93ba39fb5287329fdc21d7 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 19 May 2020 20:12:34 +0200 Subject: [PATCH 109/167] refresh methods signal-r & dobug S7Net --- .../WebApi/ConfigurationController.cs | 31 +++++++++++++-- .../Listeners/SignalR/SignalRListener.cs | 39 ++++++++++++++----- 2 files changed, 58 insertions(+), 12 deletions(-) diff --git a/Thermo.Active/Controllers/WebApi/ConfigurationController.cs b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs index cccac22b..f5756fbf 100644 --- a/Thermo.Active/Controllers/WebApi/ConfigurationController.cs +++ b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs @@ -113,14 +113,39 @@ namespace Thermo.Active.Controllers.WebApi 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() + 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() { diff --git a/Thermo.Active/Listeners/SignalR/SignalRListener.cs b/Thermo.Active/Listeners/SignalR/SignalRListener.cs index 946d3ea4..68f08c27 100644 --- a/Thermo.Active/Listeners/SignalR/SignalRListener.cs +++ b/Thermo.Active/Listeners/SignalR/SignalRListener.cs @@ -260,21 +260,42 @@ namespace Thermo.Active.Listeners.SignalR Dictionary diffData = new Dictionary(); // calcola ed invia SOLO le differenze... - Parallel.ForEach(currRecipeFull, item => + if (false) { - if (!LastRecipeFullData.ContainsKey(item.Key)) + Parallel.ForEach(currRecipeFull, item => { - diffData.Add(item.Key, item.Value); - } - else - { - // comparazione - if (!item.Value.Equals(LastRecipeFullData[item.Key])) + 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) { From 5ed8386e2bad76de995d763f21da0f526a8e4782 Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 20 May 2020 09:29:16 +0200 Subject: [PATCH 110/167] fix dashboard --- .../assets/icons/svg/svg-dashboard.svg | 14 +- .../assets/icons/svg/svg-dashboard2.svg | 16 +- .../wwwroot/assets/styles/base/dashboard.less | 290 +++++++----------- Thermo.Active/wwwroot/assets/styles/style.css | 180 +++++------ .../dashboard/dashboard.vue | 53 ---- .../{dashboard.ts => graph-dashboard.ts} | 0 .../dashboard/graph-dashboard.vue | 34 ++ 7 files changed, 241 insertions(+), 346 deletions(-) delete mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue rename Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/{dashboard.ts => graph-dashboard.ts} (100%) create mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/graph-dashboard.vue diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg index 435ad2c3..9782e8ea 100644 --- a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg +++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg @@ -9,9 +9,9 @@ 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="551mm" - height="180mm" - viewBox="0 0 551 180" + width="549mm" + height="175mm" + viewBox="0 0 549 175" version="1.1" id="svg837" inkscape:version="0.92.4 (5da689c313, 2019-01-14)" @@ -26,7 +26,7 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.49497475" - inkscape:cx="1215.3602" + inkscape:cx="1137.5785" inkscape:cy="553.18711" inkscape:document-units="mm" inkscape:current-layer="layer1" @@ -44,7 +44,7 @@ image/svg+xml - + @@ -52,10 +52,10 @@ inkscape:label="Livello 1" inkscape:groupmode="layer" id="layer1" - transform="translate(0,-117)"> + transform="translate(0,-122)"> diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg index 460ffa56..a3161320 100644 --- a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg +++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg @@ -9,9 +9,9 @@ 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="561mm" - height="196mm" - viewBox="0 0 561 196" + width="558mm" + height="184mm" + viewBox="0 0 558 184" version="1.1" id="svg860" inkscape:version="0.92.4 (5da689c313, 2019-01-14)" @@ -86,9 +86,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="0.24748738" - inkscape:cx="1277.5889" - inkscape:cy="644.67105" + inkscape:zoom="0.49497476" + inkscape:cx="1117.5973" + inkscape:cy="199.82812" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" @@ -113,10 +113,10 @@ inkscape:label="Livello 1" inkscape:groupmode="layer" id="layer1" - transform="translate(0,-101)"> + transform="translate(0,-113)"> diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index d418cd28..73c759f4 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -1,41 +1,41 @@ // out: false, sourceMap: false, main: ../style.less @import "colors.less"; -.dashboard{ - .gauge-container { - // width: 500px; - // height: 500 px; - // // display: block; - // float: left; - // padding: 10px; - //background-color:#007cc3; - // margin: 20px; - // border-radius: 5px; - // position: relative; - // margin-left: 750px; - // margin-bottom: -90px; - // margin-right:200px; - // flex-direction:column; - width: 553px; - height: 566px; - border-radius: 5px; - position: relative; - flex-direction: column; - display:flex; - } - .row{ - background-image: url(/assets/icons/svg/row.svg); - width: 200px; - height: 100px; - } - - - } + .box-graph-dashboard{ + width: 100vw; + height: 100vh; + display: flex; + align-items: center; + justify-content: center; .svg-dashboard{ - width: 100%; background-repeat: no-repeat; - position: relative; + display: flex; + flex-direction: column; + justify-content: center; + + 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); @@ -45,9 +45,9 @@ } &.dashboard2{ - height: 213px; - background-size: 546px; - width: 546px; + height: 178px; + background-size: 545px; + width: 545px; background-image: url(/assets/icons/svg/svg-dashboard2.svg); } @@ -56,155 +56,93 @@ width: 756.7px; background-size:756.7px; 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; + } } } - .box-start-machine{ + .box-time-passed{ + text-align: center; + p{ + + &:first-of-type{ + font-size: 26px; + margin: 15px 0; + } + + &:last-of-type{ + font-size: 54px; + margin: 0 auto; + } + + } + } - .text-start-machine{ - position: absolute; - left: 40%; - font-size: 26px; - top: 30px; - text-transform: uppercase; - - // &.start{ - // top: 35px; - // } - - // &.end{ - // top:50px; - // } - } - -.labels{ -display:flex; - flex-direction:column; - margin-top:-94px; - margin-left: 19px; -} - - .box-circle-piece{ display: flex; align-items: center; position: relative; + + + .gauge-container { + width: 553px; + height: 566px; + border-radius: 5px; + position: relative; + flex-direction: column; + display:flex; + } + + #gauge1{ + position: absolute; + width: 528px; + left: 12px; + top: 13px; + } + + #gauge1 .gauge .dial{ + fill: #99CFFF; + stroke: #91A2B1; + } + + #gauge1 .gauge .value{ + stroke: #4DAAFF; + } + + #gauge1 .gauge .value-text{ + fill: black; + alignment-baseline: before-edge; + font-size: 20px; + } + + #gauge2 .gauge .value-text{ + fill: black; + alignment-baseline: after-edge; + font-size: 20px; + } + + #gauge2 .gauge .dial{ + stroke: #003264; + } + + #gauge2 .gauge .value{ + stroke: #90C03D; + stroke-width: 2; + } + } - - .box-recipe{ - height: 550px; - } - - .box-graph-dashboard{ - width: 100vw; - height: 100vh; - display: flex; - align-items: center; - justify-content: center; - } - - .text-recipe{ - font-size: 35px; - display: flex; - align-items: center; - height: 110px; - justify-content: center; - } - - time.start-end{ - display: flex; - font-size: 120px; - align-self: end; - align-items: flex-end; - height: 170px; - justify-content: center; - padding-top: 18px; - } - - .box-time-passed{ - text-align: center; - margin: 30px 0; - } - - .text-time-passed{ - font-size: 26px; - text-transform: uppercase; - margin: 15px 0; - } - - .time-passed{ - font-size: 54px; - margin: 0 auto; - } - - /* cerchi */ - - // #gauge1 .gauge{ - // width: 580px; - // position: absolute; - // } - - - - #gauge1{ - position: absolute; - width: 528px; - left: 12px; - top: 13px; - } - - #gauge1 .gauge .dial{ - fill: #99CFFF; - stroke: #91A2B1; - } - - #gauge1 .gauge .value{ - stroke: #4DAAFF; - } - - #gauge1 .gauge .value-text{ - fill: black; - alignment-baseline: before-edge; - font-size: 20px; - } - - #gauge2 .gauge .value-text{ - fill: black; - alignment-baseline: after-edge; - font-size: 20px; - } - - #gauge2 .gauge .dial{ - stroke: #003264; - } - - #gauge2 .gauge .value{ - stroke: #90C03D; - stroke-width: 2; - } - - - .container-stats{ - display: flex; - justify-content: center; - } - - .box-stats{ - margin: 0 50px; - font-size: 26px; - text-transform: uppercase; - text-align: center; - } - - .text-stats{ - margin-bottom: 0; - } - - .number-stats{ - font-size: 120px; - margin: 0 auto; - } - - + +} + \ 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 e2634c8f..497860d5 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -23208,63 +23208,6 @@ footer .container button.big:before { text-align: center; color: #4b4b4b; } -.dashboard .gauge-container { - width: 553px; - height: 566px; - border-radius: 5px; - position: relative; - flex-direction: column; - display: flex; -} -.dashboard .row { - background-image: url(/assets/icons/svg/row.svg); - width: 200px; - height: 100px; -} -.svg-dashboard { - width: 100%; - background-repeat: no-repeat; - position: relative; -} -.svg-dashboard.dashboard { - background-image: url(/assets/icons/svg/svg-dashboard.svg); - height: 178px; - width: 545px; - background-size: 545px; -} -.svg-dashboard.dashboard2 { - height: 213px; - background-size: 546px; - width: 546px; - background-image: url(/assets/icons/svg/svg-dashboard2.svg); -} -.svg-dashboard.dashboard3 { - height: 100px; - width: 756.7px; - background-size: 756.7px; - background-image: url(/assets/icons/svg/svg-dashboard3.svg); -} -.text-start-machine { - position: absolute; - left: 40%; - font-size: 26px; - top: 30px; - text-transform: uppercase; -} -.labels { - display: flex; - flex-direction: column; - margin-top: -94px; - margin-left: 19px; -} -.box-circle-piece { - display: flex; - align-items: center; - position: relative; -} -.box-recipe { - height: 550px; -} .box-graph-dashboard { width: 100vw; height: 100vh; @@ -23272,83 +23215,116 @@ footer .container button.big:before { align-items: center; justify-content: center; } -.text-recipe { - font-size: 35px; +.box-graph-dashboard .svg-dashboard { + background-repeat: no-repeat; display: flex; - align-items: center; - height: 110px; + flex-direction: column; justify-content: center; } -time.start-end { - display: flex; - font-size: 120px; - align-self: end; - align-items: flex-end; - height: 170px; - justify-content: center; - padding-top: 18px; -} -.box-time-passed { - text-align: center; - margin: 30px 0; -} -.text-time-passed { +.box-graph-dashboard .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 .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 .svg-dashboard.dashboard { + background-image: url(/assets/icons/svg/svg-dashboard.svg); + height: 178px; + width: 545px; + background-size: 545px; +} +.box-graph-dashboard .svg-dashboard.dashboard2 { + height: 178px; + background-size: 545px; + width: 545px; + background-image: url(/assets/icons/svg/svg-dashboard2.svg); +} +.box-graph-dashboard .svg-dashboard.dashboard3 { + height: 100px; + width: 756.7px; + background-size: 756.7px; + 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 .box-time-passed { + text-align: center; +} +.box-graph-dashboard .box-time-passed p:first-of-type { font-size: 26px; - text-transform: uppercase; margin: 15px 0; } -.time-passed { +.box-graph-dashboard .box-time-passed p:last-of-type { font-size: 54px; margin: 0 auto; } -/* cerchi */ -#gauge1 { +.box-graph-dashboard .box-circle-piece { + display: flex; + align-items: center; + position: relative; +} +.box-graph-dashboard .box-circle-piece .gauge-container { + width: 553px; + height: 566px; + border-radius: 5px; + position: relative; + flex-direction: column; + display: flex; +} +.box-graph-dashboard .box-circle-piece #gauge1 { position: absolute; width: 528px; left: 12px; top: 13px; } -#gauge1 .gauge .dial { +.box-graph-dashboard .box-circle-piece #gauge1 .gauge .dial { fill: #99CFFF; stroke: #91A2B1; } -#gauge1 .gauge .value { +.box-graph-dashboard .box-circle-piece #gauge1 .gauge .value { stroke: #4DAAFF; } -#gauge1 .gauge .value-text { +.box-graph-dashboard .box-circle-piece #gauge1 .gauge .value-text { fill: black; alignment-baseline: before-edge; font-size: 20px; } -#gauge2 .gauge .value-text { +.box-graph-dashboard .box-circle-piece #gauge2 .gauge .value-text { fill: black; alignment-baseline: after-edge; font-size: 20px; } -#gauge2 .gauge .dial { +.box-graph-dashboard .box-circle-piece #gauge2 .gauge .dial { stroke: #003264; } -#gauge2 .gauge .value { +.box-graph-dashboard .box-circle-piece #gauge2 .gauge .value { stroke: #90C03D; stroke-width: 2; } -.container-stats { - display: flex; - justify-content: center; -} -.box-stats { - margin: 0 50px; - font-size: 26px; - text-transform: uppercase; - text-align: center; -} -.text-stats { - margin-bottom: 0; -} -.number-stats { - font-size: 120px; - margin: 0 auto; -} a, a:visited, a:hover, diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue deleted file mode 100644 index 5fe3da9d..00000000 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/graph-dashboard.ts similarity index 100% rename from Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts rename to Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/graph-dashboard.ts diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/graph-dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/graph-dashboard.vue new file mode 100644 index 00000000..eaa396d5 --- /dev/null +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/graph-dashboard.vue @@ -0,0 +1,34 @@ + + + \ No newline at end of file From a353a0f628d4cb2f42da08b7aa7ac416e879f1d5 Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 20 May 2020 09:30:39 +0200 Subject: [PATCH 111/167] delete row.svg --- .../wwwroot/assets/icons/svg/row.svg | 61 ------------------- 1 file changed, 61 deletions(-) delete mode 100644 Thermo.Active/wwwroot/assets/icons/svg/row.svg diff --git a/Thermo.Active/wwwroot/assets/icons/svg/row.svg b/Thermo.Active/wwwroot/assets/icons/svg/row.svg deleted file mode 100644 index 1b143a2c..00000000 --- a/Thermo.Active/wwwroot/assets/icons/svg/row.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - From 414d8ab889552fbdb1356f6c91f017f5a6f46604 Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 20 May 2020 09:35:23 +0200 Subject: [PATCH 112/167] rename dashboard.less --- .../assets/styles/base/{dashboard.less => graph-dashboard.less} | 0 Thermo.Active/wwwroot/assets/styles/base/layout.less | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename Thermo.Active/wwwroot/assets/styles/base/{dashboard.less => graph-dashboard.less} (100%) diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less similarity index 100% rename from Thermo.Active/wwwroot/assets/styles/base/dashboard.less rename to Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less diff --git a/Thermo.Active/wwwroot/assets/styles/base/layout.less b/Thermo.Active/wwwroot/assets/styles/base/layout.less index 6949542d..655a195b 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/layout.less +++ b/Thermo.Active/wwwroot/assets/styles/base/layout.less @@ -54,7 +54,7 @@ @import "report.less"; @import "users.less"; @import "tooltip.less"; -@import "dashboard.less"; +@import "graph-dashboard.less"; @background-color: rgb(216, 216, 216); @handle-width: 48px; From 7a52c9ffa524639791704e68c0005b099c70afec Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 20 May 2020 11:39:25 +0200 Subject: [PATCH 113/167] fix dashboard --- .../assets/styles/base/arch-interface.less | 21 +- .../wwwroot/assets/styles/base/dashboard.less | 14 +- .../assets/styles/base/graph-dashboard.less | 5 +- .../wwwroot/assets/styles/base/layout.less | 3 +- Thermo.Active/wwwroot/assets/styles/style.css | 334 +++++++++++------- .../{ => base-components}/graph-dashboard.ts | 0 .../{ => base-components}/graph-dashboard.vue | 0 .../app_modules_thermo/dashboard/dashboard.ts | 4 +- .../dashboard/dashboard.vue | 109 +++--- .../wwwroot/src/modules/app-header.vue | 2 +- 10 files changed, 286 insertions(+), 206 deletions(-) rename Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/{ => base-components}/graph-dashboard.ts (100%) rename Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/{ => base-components}/graph-dashboard.vue (100%) diff --git a/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less b/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less index 322a4088..dcf52bbc 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less +++ b/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less @@ -3,12 +3,8 @@ .arch{ display:flex; - flex-direction:column; .kW { - width: 16px; - height: 11px; - font-family: WorkSans; font-size: 12px; font-weight: 800; font-stretch: normal; @@ -18,12 +14,9 @@ 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; @@ -34,10 +27,8 @@ 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; @@ -47,10 +38,8 @@ text-align: center; color: @color-darkish-blue; } + .Aria { - width: 23px; - height: 14px; - font-family: WorkSans; font-size: 10px; font-weight: normal; font-stretch: normal; @@ -66,7 +55,7 @@ height: 90px; display: block; float: left; - padding: -130px; + // padding: -130px; margin: 56px; border-radius: 3px; position: relative; @@ -75,7 +64,6 @@ } .label { color:@color-darkish-blue; - font-family: monospace; font-size: 1.5em; margin-left:10px; } @@ -89,7 +77,6 @@ } .gauge-container > .gauge > .value-text { color:@color-darkish-blue; - font-family: sans-serif; font-weight: bold; font-size: 3.9px; margin-top:10px; diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index dacfa7fa..7438cf57 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -19,16 +19,14 @@ width: 100%; display: flex; - .ribbon-container{ - width: 496px; height: 80px; z-index: 900; } .box-date{ display: flex; - width: 40%; + width: 100%; margin-left: 100px; div{ @@ -51,8 +49,9 @@ .arch{ display: flex; justify-content: flex-start; - position: relative; - width: 30%; + // position: relative; + // z-index: 1002; + width: 100%; text-align: center; .box-gauge{ @@ -146,7 +145,8 @@ } section{ - height: 100%; + // margin-top: -400px; + // height: 100%; display: flex; justify-content: flex-end; padding-right: 15px; @@ -163,7 +163,6 @@ //inizio sezione style del primo specific &:first-of-type{ - //mettere qui margin margin-right: 15%; div{ @@ -274,7 +273,6 @@ //inizio sezione style del terzo specific &:last-of-type{ - //mettere qui margin margin-left: 15%; div{ diff --git a/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less index 73c759f4..3db6f99a 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less @@ -2,8 +2,7 @@ @import "colors.less"; .box-graph-dashboard{ - width: 100vw; - height: 100vh; + height: 100%; display: flex; align-items: center; justify-content: center; @@ -72,6 +71,8 @@ } .box-time-passed{ + height: 117px; + margin: 30px 0px; text-align: center; p{ diff --git a/Thermo.Active/wwwroot/assets/styles/base/layout.less b/Thermo.Active/wwwroot/assets/styles/base/layout.less index 3c75f994..616fe402 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/layout.less +++ b/Thermo.Active/wwwroot/assets/styles/base/layout.less @@ -2,6 +2,7 @@ @import "setup.less"; @import "colors.less"; @import "modals.less"; +@import "graph-dashboard.less"; @import "dashboard.less"; @import "pirometro.less"; @import "riscaldi.less"; @@ -12,6 +13,7 @@ @import "circlegantt.less"; @import "paddle.less"; @import "arretramento-riscaldi.less"; +@import "arch-interface.less"; @import "avvio-prod.less"; @import "ciclo.less"; @import "raffreddamento.less"; @@ -59,7 +61,6 @@ @import "report.less"; @import "users.less"; @import "tooltip.less"; -@import "graph-dashboard.less"; @background-color: rgb(216, 216, 216); @handle-width: 48px; diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 7ee4d1af..1ed2f0e1 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4037,6 +4037,124 @@ box-sizing: border-box; resize: none; } +.box-graph-dashboard { + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} +.box-graph-dashboard .svg-dashboard { + background-repeat: no-repeat; + display: flex; + flex-direction: column; + justify-content: center; +} +.box-graph-dashboard .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 .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 .svg-dashboard.dashboard { + background-image: url(/assets/icons/svg/svg-dashboard.svg); + height: 178px; + width: 545px; + background-size: 545px; +} +.box-graph-dashboard .svg-dashboard.dashboard2 { + height: 178px; + background-size: 545px; + width: 545px; + background-image: url(/assets/icons/svg/svg-dashboard2.svg); +} +.box-graph-dashboard .svg-dashboard.dashboard3 { + height: 100px; + width: 756.7px; + background-size: 756.7px; + 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 .box-time-passed { + height: 117px; + margin: 30px 0px; + text-align: center; +} +.box-graph-dashboard .box-time-passed p:first-of-type { + font-size: 26px; + margin: 15px 0; +} +.box-graph-dashboard .box-time-passed p:last-of-type { + font-size: 54px; + margin: 0 auto; +} +.box-graph-dashboard .box-circle-piece { + display: flex; + align-items: center; + position: relative; +} +.box-graph-dashboard .box-circle-piece .gauge-container { + width: 553px; + height: 566px; + border-radius: 5px; + position: relative; + flex-direction: column; + display: flex; +} +.box-graph-dashboard .box-circle-piece #gauge1 { + position: absolute; + width: 528px; + left: 12px; + top: 13px; +} +.box-graph-dashboard .box-circle-piece #gauge1 .gauge .dial { + fill: #99CFFF; + stroke: #91A2B1; +} +.box-graph-dashboard .box-circle-piece #gauge1 .gauge .value { + stroke: #4DAAFF; +} +.box-graph-dashboard .box-circle-piece #gauge1 .gauge .value-text { + fill: black; + alignment-baseline: before-edge; + font-size: 20px; +} +.box-graph-dashboard .box-circle-piece #gauge2 .gauge .value-text { + fill: black; + alignment-baseline: after-edge; + font-size: 20px; +} +.box-graph-dashboard .box-circle-piece #gauge2 .gauge .dial { + stroke: #003264; +} +.box-graph-dashboard .box-circle-piece #gauge2 .gauge .value { + stroke: #90C03D; + stroke-width: 2; +} .dashboard { height: 100%; width: 100%; @@ -4052,13 +4170,12 @@ display: flex; } .dashboard .header .ribbon-container { - width: 496px; height: 80px; z-index: 900; } .dashboard .header .box-date { display: flex; - width: 40%; + width: 100%; margin-left: 100px; } .dashboard .header .box-date div { @@ -4077,8 +4194,7 @@ .dashboard .header .arch { display: flex; justify-content: flex-start; - position: relative; - width: 30%; + width: 100%; text-align: center; } .dashboard .header .arch .box-gauge { @@ -4152,7 +4268,6 @@ font-size: 18px; } .dashboard section { - height: 100%; display: flex; justify-content: flex-end; padding-right: 15px; @@ -5088,6 +5203,98 @@ body { width: 560px; height: 411px; } +.arch { + display: flex; +} +.arch .kW { + 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: #002680; +} +.arch .Potenza { + 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: #002680; +} +.arch .Bar { + font-size: 9.7px; + font-weight: 500; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: normal; + text-align: center; + color: #002680; +} +.arch .Aria { + font-size: 10px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: normal; + text-align: end; + color: #002680; +} +.arch .gauge-container { + width: 90px; + height: 90px; + display: block; + float: left; + margin: 56px; + border-radius: 3px; + position: relative; + margin-top: 60px; + margin-left: -10px; +} +.arch .label { + color: #002680; + font-size: 1.5em; + margin-left: 10px; +} +.arch .gauge-container > .gauge > .dial { + stroke: #002680; + stroke-width: 2; +} +.arch .gauge-container > .gauge > .value { + stroke: #002680; + stroke-width: 2; +} +.arch .gauge-container > .gauge > .value-text { + color: #002680; + font-weight: bold; + font-size: 3.9px; + margin-top: 10px; +} +.arch .gauge-container.three > .gauge > .dial { + stroke: #bbbcbc; + stroke-width: 4; +} +.arch .gauge-container.three > .gauge > .value { + stroke: #002680; + stroke-width: 5; +} +.arch .gauge-container.three > .gauge > .value-text { + fill: #002680; +} +.arch .labels { + display: flex; + flex-direction: column; + margin-left: 19px; + margin-top: -94px; +} .modal.avvio-produzione-info { margin-top: 100px; width: 653px; @@ -23911,123 +24118,6 @@ footer .container button.big:before { text-align: center; color: #4b4b4b; } -.box-graph-dashboard { - width: 100vw; - height: 100vh; - display: flex; - align-items: center; - justify-content: center; -} -.box-graph-dashboard .svg-dashboard { - background-repeat: no-repeat; - display: flex; - flex-direction: column; - justify-content: center; -} -.box-graph-dashboard .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 .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 .svg-dashboard.dashboard { - background-image: url(/assets/icons/svg/svg-dashboard.svg); - height: 178px; - width: 545px; - background-size: 545px; -} -.box-graph-dashboard .svg-dashboard.dashboard2 { - height: 178px; - background-size: 545px; - width: 545px; - background-image: url(/assets/icons/svg/svg-dashboard2.svg); -} -.box-graph-dashboard .svg-dashboard.dashboard3 { - height: 100px; - width: 756.7px; - background-size: 756.7px; - 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 .box-time-passed { - text-align: center; -} -.box-graph-dashboard .box-time-passed p:first-of-type { - font-size: 26px; - margin: 15px 0; -} -.box-graph-dashboard .box-time-passed p:last-of-type { - font-size: 54px; - margin: 0 auto; -} -.box-graph-dashboard .box-circle-piece { - display: flex; - align-items: center; - position: relative; -} -.box-graph-dashboard .box-circle-piece .gauge-container { - width: 553px; - height: 566px; - border-radius: 5px; - position: relative; - flex-direction: column; - display: flex; -} -.box-graph-dashboard .box-circle-piece #gauge1 { - position: absolute; - width: 528px; - left: 12px; - top: 13px; -} -.box-graph-dashboard .box-circle-piece #gauge1 .gauge .dial { - fill: #99CFFF; - stroke: #91A2B1; -} -.box-graph-dashboard .box-circle-piece #gauge1 .gauge .value { - stroke: #4DAAFF; -} -.box-graph-dashboard .box-circle-piece #gauge1 .gauge .value-text { - fill: black; - alignment-baseline: before-edge; - font-size: 20px; -} -.box-graph-dashboard .box-circle-piece #gauge2 .gauge .value-text { - fill: black; - alignment-baseline: after-edge; - font-size: 20px; -} -.box-graph-dashboard .box-circle-piece #gauge2 .gauge .dial { - stroke: #003264; -} -.box-graph-dashboard .box-circle-piece #gauge2 .gauge .value { - stroke: #90C03D; - stroke-width: 2; -} a, a:visited, a:hover, diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/graph-dashboard.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.ts similarity index 100% rename from Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/graph-dashboard.ts rename to Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.ts diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/graph-dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue similarity index 100% rename from Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/graph-dashboard.vue rename to Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts index 159dbaee..2140b8e7 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.ts @@ -11,13 +11,15 @@ import { getColorFromName,isDarkColor } from "@/_base/utils"; import ArchInterface from "../components/arch-interface/arch-interface.vue"; import { LocalizationService, localizationService } from "@/services/localizationService"; import Componente from "./base-components/componente.vue"; +import GraphDashboard from "./base-components/graph-dashboard.vue" @Component({ components: { appRibbon: AppRibbon, archInterface: ArchInterface, alarmList, - componente:Componente + componente:Componente, + graphdashboard: GraphDashboard } }) export default class Dashboard extends Vue{ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue index c911f9f8..7ee84e8c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue @@ -1,64 +1,65 @@ diff --git a/Thermo.Active/wwwroot/src/modules/app-header.vue b/Thermo.Active/wwwroot/src/modules/app-header.vue index 53442e2f..9a920865 100644 --- a/Thermo.Active/wwwroot/src/modules/app-header.vue +++ b/Thermo.Active/wwwroot/src/modules/app-header.vue @@ -95,7 +95,7 @@ - + From 786a0b234d980e7b150fae73047c613a5291eaf1 Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 20 May 2020 12:59:21 +0200 Subject: [PATCH 114/167] fix dashboard --- .../assets/icons/svg/svg-dashboard3.svg | 41 ++++--- .../wwwroot/assets/styles/base/dashboard.less | 4 +- .../assets/styles/base/graph-dashboard.less | 70 +++++++----- Thermo.Active/wwwroot/assets/styles/style.css | 104 ++++++++++-------- .../base-components/graph-dashboard.vue | 6 +- .../dashboard/dashboard.vue | 4 +- 6 files changed, 126 insertions(+), 103 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg index ce49caef..78aeeb6b 100644 --- a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg +++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg @@ -8,12 +8,12 @@ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" sodipodi:docname="svg-dashboard3.svg" - inkscape:version="1.0beta2 (2b71d25, 2019-12-03)" + inkscape:version="0.92.4 (5da689c313, 2019-01-14)" id="svg2161" version="1.1" - viewBox="0 0 800 100" - height="100mm" - width="800mm"> + viewBox="0 0 756 94" + height="94mm" + width="756mm"> + d="m 2.6796867,209.75995 60.4896563,81.97094 v 0" + style="fill:none;stroke:#0000ff;stroke-width:4.50324249;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 63.169343,291.73089 713.536577,0.0476" + style="fill:none;stroke:#0000ff;stroke-width:4.50324249;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="M 2.6794829,209.75998 773.37697,210.52857" + style="fill:none;stroke:#0000ff;stroke-width:4.51609039;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="M 37.286733,251.81639 C 22.028009,231.13902 9.3495809,213.74809 9.1124489,213.16989 8.6624174,212.07256 771.13322,212.9571 772.27312,214.05523 c 0.50422,0.48576 3.3037,57.53043 3.47685,70.8474 l 0.0587,4.54358 -355.38954,-0.0173 -355.389571,-0.0173 z" + style="fill:#b6d6f3;fill-rule:evenodd;stroke:none;stroke-width:18.19585991;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index 7438cf57..f0894f92 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -145,8 +145,8 @@ } section{ - // margin-top: -400px; - // height: 100%; + margin-top: -400px; + height: 100%; display: flex; justify-content: flex-end; padding-right: 15px; diff --git a/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less index 3db6f99a..301b94fb 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less @@ -2,10 +2,10 @@ @import "colors.less"; .box-graph-dashboard{ - height: 100%; + height: 610px; display: flex; align-items: center; - justify-content: center; + justify-content: flex-end; .svg-dashboard{ background-repeat: no-repeat; @@ -13,6 +13,35 @@ flex-direction: column; justify-content: center; + &.dashboard3{ + margin-bottom: 200px; + height: 100px; + width: 756px; + background-size:756px; + 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%; + + .svg-dashboard{ + label{ margin-top: 8px; font-size: 26px; @@ -50,47 +79,32 @@ background-image: url(/assets/icons/svg/svg-dashboard2.svg); } - &.dashboard3{ - height: 100px; - width: 756.7px; - background-size:756.7px; - 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; - } - } } .box-time-passed{ height: 117px; margin: 30px 0px; text-align: center; + display: flex; + justify-content: center; + flex-direction: column; - p{ + label{ &:first-of-type{ font-size: 26px; - margin: 15px 0; } &:last-of-type{ font-size: 54px; - margin: 0 auto; } } } +} + .box-circle-piece{ display: flex; align-items: center; @@ -98,8 +112,8 @@ .gauge-container { - width: 553px; - height: 566px; + width: 610px; + height: 610px; border-radius: 5px; position: relative; flex-direction: column; @@ -108,9 +122,9 @@ #gauge1{ position: absolute; - width: 528px; - left: 12px; - top: 13px; + width: 580px; + left: 15px; + top: 15px; } #gauge1 .gauge .dial{ diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 1ed2f0e1..02a33b65 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4038,10 +4038,10 @@ resize: none; } .box-graph-dashboard { - height: 100%; + height: 610px; display: flex; align-items: center; - justify-content: center; + justify-content: flex-end; } .box-graph-dashboard .svg-dashboard { background-repeat: no-repeat; @@ -4049,43 +4049,11 @@ flex-direction: column; justify-content: center; } -.box-graph-dashboard .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 .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 .svg-dashboard.dashboard { - background-image: url(/assets/icons/svg/svg-dashboard.svg); - height: 178px; - width: 545px; - background-size: 545px; -} -.box-graph-dashboard .svg-dashboard.dashboard2 { - height: 178px; - background-size: 545px; - width: 545px; - background-image: url(/assets/icons/svg/svg-dashboard2.svg); -} .box-graph-dashboard .svg-dashboard.dashboard3 { + margin-bottom: 200px; height: 100px; - width: 756.7px; - background-size: 756.7px; + width: 756px; + background-size: 756px; background-image: url(/assets/icons/svg/svg-dashboard3.svg); } .box-graph-dashboard .svg-dashboard.dashboard3 label { @@ -4099,18 +4067,58 @@ text-align: center; color: #4b4b4b; } -.box-graph-dashboard .box-time-passed { +.box-graph-dashboard .time-box { + display: flex; + flex-direction: column; + justify-content: center; + height: 100%; +} +.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; +} +.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: 30px 0px; text-align: center; + display: flex; + justify-content: center; + flex-direction: column; } -.box-graph-dashboard .box-time-passed p:first-of-type { +.box-graph-dashboard .time-box .box-time-passed label:first-of-type { font-size: 26px; - margin: 15px 0; } -.box-graph-dashboard .box-time-passed p:last-of-type { +.box-graph-dashboard .time-box .box-time-passed label:last-of-type { font-size: 54px; - margin: 0 auto; } .box-graph-dashboard .box-circle-piece { display: flex; @@ -4118,8 +4126,8 @@ position: relative; } .box-graph-dashboard .box-circle-piece .gauge-container { - width: 553px; - height: 566px; + width: 610px; + height: 610px; border-radius: 5px; position: relative; flex-direction: column; @@ -4127,9 +4135,9 @@ } .box-graph-dashboard .box-circle-piece #gauge1 { position: absolute; - width: 528px; - left: 12px; - top: 13px; + width: 580px; + left: 15px; + top: 15px; } .box-graph-dashboard .box-circle-piece #gauge1 .gauge .dial { fill: #99CFFF; @@ -4268,6 +4276,8 @@ font-size: 18px; } .dashboard section { + margin-top: -400px; + height: 100%; display: flex; justify-content: flex-end; padding-right: 15px; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue index eaa396d5..6165e6bc 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue @@ -1,15 +1,15 @@ From 22310fa8a7593ef7d4fbdce6886ead4ba5ada248 Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 20 May 2020 16:19:23 +0200 Subject: [PATCH 115/167] add recipeService --- .../wwwroot/src/@types/recipe-overview.d.ts | 23 ++++---- .../wwwroot/src/services/recipeService.ts | 23 ++++++++ Thermo.Active/wwwroot/src/store/app.store.ts | 3 + .../wwwroot/src/store/recipe.store.ts | 55 +++++++++++++++++++ 4 files changed, 92 insertions(+), 12 deletions(-) create mode 100644 Thermo.Active/wwwroot/src/services/recipeService.ts create mode 100644 Thermo.Active/wwwroot/src/store/recipe.store.ts diff --git a/Thermo.Active/wwwroot/src/@types/recipe-overview.d.ts b/Thermo.Active/wwwroot/src/@types/recipe-overview.d.ts index 0b6f1b94..5124d504 100644 --- a/Thermo.Active/wwwroot/src/@types/recipe-overview.d.ts +++ b/Thermo.Active/wwwroot/src/@types/recipe-overview.d.ts @@ -1,16 +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 + 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/services/recipeService.ts b/Thermo.Active/wwwroot/src/services/recipeService.ts new file mode 100644 index 00000000..482cdebc --- /dev/null +++ b/Thermo.Active/wwwroot/src/services/recipeService.ts @@ -0,0 +1,23 @@ +import { baseRestService } from "../_base/baseRestService"; +import { store } from "../store"; +import {CONFIGURATION} from "@/config"; +import { recipeActions } from "@/store/recipe.store"; + +export class RecipeService extends baseRestService { + + BASE_URL = async () => (await CONFIGURATION).api.apiServerUrl + "/api/recipe/"; + + async GetCurrent(){ + let result = await this.Get((await this.BASE_URL()) + "current"); + recipeActions.setCurrent(store, result); + return result; + } + + async GetOverview(){ + let result = await this.Get((await this.BASE_URL()) + "overview"); + recipeActions.setOverview(store, result); + return result; + } + +} +export const recipeService = new RecipeService(); diff --git a/Thermo.Active/wwwroot/src/store/app.store.ts b/Thermo.Active/wwwroot/src/store/app.store.ts index 628b53e5..911d66ea 100644 --- a/Thermo.Active/wwwroot/src/store/app.store.ts +++ b/Thermo.Active/wwwroot/src/store/app.store.ts @@ -16,6 +16,7 @@ import { ProductionStoreModel, productionStore } from "./production.store"; import { jobEditorStore } from "./jobEditor.store"; import { scadaStore, ScadaModel } from "./scada"; import { reportStore, ReportStoreModel} from "./report.store"; +import { recipeStore, RecipeStoreModel} from "./recipe.store"; import { usersStore,UsersStoreModel } from "./users.store"; Vue.use(Vuex); @@ -41,6 +42,7 @@ export interface AppModel { maintenance: MaintenanceStoreModel; scada: ScadaModel; report: ReportStoreModel; + recipe: RecipeStoreModel; users: UsersStoreModel; } @@ -89,6 +91,7 @@ const _store = { jobEditor: jobEditorStore, scada: scadaStore, report: reportStore, + recipe: recipeStore, users: usersStore }, diff --git a/Thermo.Active/wwwroot/src/store/recipe.store.ts b/Thermo.Active/wwwroot/src/store/recipe.store.ts new file mode 100644 index 00000000..2e5c21f4 --- /dev/null +++ b/Thermo.Active/wwwroot/src/store/recipe.store.ts @@ -0,0 +1,55 @@ +export interface RecipeStoreModel { + current: Recipe.IRecipe; + overview: Overview.IOverview; +} + + +export interface RecipeActions { + setCurrent(context, model: Recipe.IRecipe); + setOverview(context, model: Overview.IOverview); +} + +export interface RecipeGetters{ + getCurrent: () => Recipe.IRecipe; + getOverview: () => Overview.IOverview; +} + +export const recipeStore = { + + state:{ + current:{}, + overview:{}, + } as RecipeStoreModel, + + getters: { + getCurrent: (state) => (): Recipe.IRecipe => (state as RecipeStoreModel).current, + getOverview: (state) => (): Overview.IOverview => (state as RecipeStoreModel).overview, + }, + + mutations: { + + SetCurrent(store, model: Recipe.IRecipe){ + store.state.current = model; + }, + + SetOverview(store, model: Overview.IOverview){ + store.state.current = model; + }, + + }, + + actions: { + + setCurrent(context, model: Recipe.IRecipe){ + context.commit("SetCurrent", model); + }, + + setOverview(context, model: Overview.IOverview){ + context.commit("SetOverview", model); + }, + + } as RecipeActions + +} + +export const recipeActions = recipeStore.actions as RecipeActions; From d0fabaac69fb24da250925b99d3cb2ad37304423 Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 20 May 2020 16:47:13 +0200 Subject: [PATCH 116/167] add recipeService calls to main --- Thermo.Active/wwwroot/src/main.ts | 3 +++ Thermo.Active/wwwroot/src/services/recipeService.ts | 9 +++++---- Thermo.Active/wwwroot/src/store/recipe.store.ts | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Thermo.Active/wwwroot/src/main.ts b/Thermo.Active/wwwroot/src/main.ts index d5592f39..ac423c03 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); diff --git a/Thermo.Active/wwwroot/src/services/recipeService.ts b/Thermo.Active/wwwroot/src/services/recipeService.ts index 482cdebc..324e510d 100644 --- a/Thermo.Active/wwwroot/src/services/recipeService.ts +++ b/Thermo.Active/wwwroot/src/services/recipeService.ts @@ -1,7 +1,6 @@ import { baseRestService } from "../_base/baseRestService"; -import { store } from "../store"; import {CONFIGURATION} from "@/config"; -import { recipeActions } from "@/store/recipe.store"; +import {recipeStore, recipeActions } from "@/store/recipe.store"; export class RecipeService extends baseRestService { @@ -9,13 +8,15 @@ export class RecipeService extends baseRestService { async GetCurrent(){ let result = await this.Get((await this.BASE_URL()) + "current"); - recipeActions.setCurrent(store, result); + recipeActions.setCurrent(recipeStore, result); + debugger return result; } async GetOverview(){ let result = await this.Get((await this.BASE_URL()) + "overview"); - recipeActions.setOverview(store, result); + recipeActions.setOverview(recipeStore, result); + debugger return result; } diff --git a/Thermo.Active/wwwroot/src/store/recipe.store.ts b/Thermo.Active/wwwroot/src/store/recipe.store.ts index 2e5c21f4..7ef3c70c 100644 --- a/Thermo.Active/wwwroot/src/store/recipe.store.ts +++ b/Thermo.Active/wwwroot/src/store/recipe.store.ts @@ -33,7 +33,7 @@ export const recipeStore = { }, SetOverview(store, model: Overview.IOverview){ - store.state.current = model; + store.state.overview = model; }, }, From e42266ffc232e245c9a7cb7ebe26e2769e8fbd02 Mon Sep 17 00:00:00 2001 From: Alessio Date: Thu, 21 May 2020 09:47:54 +0200 Subject: [PATCH 117/167] fix reference of recipe in the modals --- .../components/base-components/caricatore.ts | 163 +------------ .../setup/ciclo/components/show-ciclo-info.ts | 4 + .../ciclo/components/show-ciclo-info.vue | 2 +- .../formato/components/show-formato-info.ts | 230 +----------------- Thermo.Active/wwwroot/src/main.ts | 1 - .../wwwroot/src/services/recipeService.ts | 9 +- .../wwwroot/src/store/recipe.store.ts | 8 +- 7 files changed, 21 insertions(+), 396 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.ts index 62b56c2a..905ca82d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.ts @@ -7,165 +7,8 @@ import ToggleButton from "@/components/toggleButton.vue"; @Component({ components: { ToggleButton, slider: Slider, svgcaricatore: SVGCaricatore, } }) export default class Caricatore extends Vue { -recipe:Recipe.IRecipe={ - cycle_loader_enable: { - range: { - min: 6, - max: 127 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 48 - }, - cycle_loader_lifter_lowerposition_delay: { - range: { - min: 5, - max: 133 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 38 - }, - cycle_loader_lifter_upperposition_delay: { - range: { - min: 6, - max: 172 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 16 - }, - cycle_loader_split_sheet_time: { - range: { - min: 1, - max: 111 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 50 - }, - cycle_loader_ejector_position: { - range: { - min: 3, - max: 199 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 47 - }, - cycle_loader_pallet_height: { - range: { - min: 1, - max: 149 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 116 - }, - cycle_loader_center_x: { - range: { - min: 6, - max: 167 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 142 - }, - cycle_loader_center_y: { - range: { - min: 7, - max: 109 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 58 - }, - cycle_loader_checktichness_enabled: { - range: { - min: 1, - max: 197 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 113 - }, - cycle_loader_suckers_vacuum: { - range: { - min: 9, - max: 105 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 20 - }, - cycle_loader_ionizer_enabled: { - range: { - min: 3, - max: 152 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 70 - }, - cycle_loader_manualunloading_enabled: { - range: { - min: 2, - max: 126 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 96 - } - -} - + + @Prop() + recipe:Recipe.IRecipe; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.ts index 4794e634..245b0fb5 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.ts @@ -6,10 +6,13 @@ import { Modal, ModalHelper } from "@/components/modals"; import { Factory, messageService, awaiter } from "@/_base"; import CicloFormatura from "./base-components/ciclo-formatura.vue"; import Caricatore from "./base-components/caricatore.vue"; +import { recipeActions } from "@/store/recipe.store"; +import { store } from "@/store"; @Component({ components: { modal: Modal, stepfooter: StepFooter, caricatore: Caricatore, cicloformatura: CicloFormatura } }) export default class ShowCicloInfo extends Vue { + recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); show: string = "caricatore"; annulla(name:string) { @@ -17,6 +20,7 @@ export default class ShowCicloInfo extends Vue { }; conferma(name:string) { + recipeActions.setCurrent(store, this.recipe); messageService.publishToChannel(name); }; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue index ffa3cf84..d9eb2f08 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue @@ -10,7 +10,7 @@ - +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts index 8a116c45..13849c1f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts @@ -14,7 +14,9 @@ import LastraSVG from "./SVG_Components/lastraSVG.vue"; import PiastraSVG from "./SVG_Components/piastraSVG.vue"; import CorniceSVG from "./SVG_Components/corniceSVG.vue"; import ControstampoSVG from "./SVG_Components/controstampoSVG.vue"; -import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue" +import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue"; +import { recipeActions } from "@/store/recipe.store"; +import { store } from "@/store"; @Component({ components: { @@ -35,230 +37,7 @@ import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue" }) export default class ShowFormatoInfo extends Vue { - recipe:Recipe.IRecipe={ - general_area_working_dxsx: { - range: { - min: 8, - max: 197 - }, - status: { - visible: true, - enabled: true, - hasError: true - }, - unitMeasure: "", - valueAct: 199 - }, - general_sizes_mould_dim_x: { - range: { - min: 3, - max: 106 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 41 - }, - general_sizes_mould_dim_y: { - range: { - min: 1, - max: 174 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 40 - }, - general_sizes_mould_max_height: { - range: { - min: 2, - max: 116 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 37 - }, - general_sizes_mould_base_height: { - range: { - min: 1, - max: 178 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 63 - }, - general_sizes_plate_type: { - range: { - min: 0, - max: 140 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 39 - }, - general_sizes_plate_dim_x: { - range: { - min: 6, - max: 154 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 78 - }, - general_sizes_plate_dim_y: { - range: { - min: 6, - max: 142 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 81 - }, - general_sizes_sheet_material: { - range: { - min: 3, - max: 144 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 86 - }, - general_sizes_sheet_dim_x: { - range: { - min: 1, - max: 168 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 90 - }, - general_sizes_sheet_dim_y: { - range: { - min: 2, - max: 158 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 26 - }, - general_sizes_sheet_thickness: { - range: { - min: 9, - max: 109 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 45 - }, - general_sizes_frame_traverses: { - range: { - min: 3, - max: 116 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 72 - }, - general_sizes_frame_dim_x: { - range: { - min: 0, - max: 129 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 7 - }, - general_sizes_frame_dim_y: { - range: { - min: 4, - max: 125 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 107 - }, - - positions_mould_lower_speed: { - range: { - min: 5, - max: 140 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 28 - }, - general_sizes_upperplate_max_height: { - range: { - min: 2, - max: 149 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 106 - } - } + recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); show:string="placeholder"; @Prop({default:0}) @@ -271,6 +50,7 @@ export default class ShowFormatoInfo extends Vue { }; conferma(name:string) { + recipeActions.setCurrent(store, this.recipe); messageService.publishToChannel(name); }; diff --git a/Thermo.Active/wwwroot/src/main.ts b/Thermo.Active/wwwroot/src/main.ts index ac423c03..98209bf2 100644 --- a/Thermo.Active/wwwroot/src/main.ts +++ b/Thermo.Active/wwwroot/src/main.ts @@ -40,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 diff --git a/Thermo.Active/wwwroot/src/services/recipeService.ts b/Thermo.Active/wwwroot/src/services/recipeService.ts index 324e510d..3291fe29 100644 --- a/Thermo.Active/wwwroot/src/services/recipeService.ts +++ b/Thermo.Active/wwwroot/src/services/recipeService.ts @@ -1,6 +1,7 @@ import { baseRestService } from "../_base/baseRestService"; import {CONFIGURATION} from "@/config"; -import {recipeStore, recipeActions } from "@/store/recipe.store"; +import { recipeActions } from "@/store/recipe.store"; +import { store } from "@/store"; export class RecipeService extends baseRestService { @@ -8,15 +9,13 @@ export class RecipeService extends baseRestService { async GetCurrent(){ let result = await this.Get((await this.BASE_URL()) + "current"); - recipeActions.setCurrent(recipeStore, result); - debugger + recipeActions.setCurrent(store, result); return result; } async GetOverview(){ let result = await this.Get((await this.BASE_URL()) + "overview"); - recipeActions.setOverview(recipeStore, result); - debugger + recipeActions.setOverview(store, result); return result; } diff --git a/Thermo.Active/wwwroot/src/store/recipe.store.ts b/Thermo.Active/wwwroot/src/store/recipe.store.ts index 7ef3c70c..900adfce 100644 --- a/Thermo.Active/wwwroot/src/store/recipe.store.ts +++ b/Thermo.Active/wwwroot/src/store/recipe.store.ts @@ -28,12 +28,12 @@ export const recipeStore = { mutations: { - SetCurrent(store, model: Recipe.IRecipe){ - store.state.current = model; + SetCurrent(state, model: Recipe.IRecipe){ + state.current = model; }, - SetOverview(store, model: Overview.IOverview){ - store.state.overview = model; + SetOverview(state, model: Overview.IOverview){ + state.overview = model; }, }, From 36099630a98e68be8e6c3a9b30319545a395b722 Mon Sep 17 00:00:00 2001 From: Alessio Date: Thu, 21 May 2020 09:58:46 +0200 Subject: [PATCH 118/167] add hr to the dashboard --- .../wwwroot/assets/styles/base/graph-dashboard.less | 5 +++++ Thermo.Active/wwwroot/assets/styles/style.css | 5 +++++ .../dashboard/base-components/graph-dashboard.vue | 3 ++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less index 301b94fb..5f4daf8a 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less @@ -110,6 +110,11 @@ align-items: center; position: relative; + hr{ + height: 1px; + width: 20px; + background-color: gray; + } .gauge-container { width: 610px; diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 02a33b65..a901f6ad 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4125,6 +4125,11 @@ align-items: center; position: relative; } +.box-graph-dashboard .box-circle-piece hr { + height: 1px; + width: 20px; + background-color: gray; +} .box-graph-dashboard .box-circle-piece .gauge-container { width: 610px; height: 610px; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue index 6165e6bc..405a1ab9 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue @@ -19,8 +19,9 @@
-
+
+
From d86e6b053a262f649b3b7bd9c0dd7afc63680f1f Mon Sep 17 00:00:00 2001 From: Alessio Date: Thu, 21 May 2020 10:38:22 +0200 Subject: [PATCH 119/167] fix reference of recipe in the modals --- .../base-components/ciclo-formatura.ts | 56 +--- .../base-components/ciclo-formatura.vue | 6 +- .../base-components/formatura-acrilico.ts | 31 +- .../formatura-cristallizzazione.ts | 44 +-- .../base-components/formatura-riscaldo.ts | 32 +- .../ciclo/components/show-ciclo-info.vue | 2 +- .../base-components/aria-controstampo.ts | 134 +-------- .../base-components/ciclo-controstampo.ts | 46 +-- .../components/show-controstampo-info.ts | 4 + .../components/show-controstampo-info.vue | 4 +- .../base-components/estrazione-principale.ts | 45 +-- .../components/show-estrazione-info.ts | 5 +- .../components/show-estrazione-info.vue | 2 +- .../setup/imbutitura/show-imbutitura-info.ts | 125 +------- .../opzioni/components/sottosquadra-stampo.ts | 207 +------------ .../opzioni/components/termoregolatori.ts | 277 +----------------- .../setup/opzioni/show-opzioni-info.ts | 4 + .../setup/opzioni/show-opzioni-info.vue | 4 +- .../components/base-components/pirometro.ts | 43 +-- .../base-components/termo-superiore.ts | 108 +------ .../components/show-pirometro-info.ts | 4 + .../components/show-pirometro-info.vue | 4 +- .../quote-velocita/components/controstampo.ts | 110 +------ .../components/discesa-cornice.ts | 96 +----- .../components/salita-stampo.ts | 121 +------- .../components/show-quote-velocita-info.ts | 8 +- .../components/show-quote-velocita-info.vue | 6 +- .../components/base-components/ventilatori.ts | 32 +- .../components/show-raffreddamento-info.ts | 7 +- .../components/show-raffreddamento-info.vue | 2 +- .../base-components/riscaldi-superiori.ts | 60 +--- .../sostentamento-decompressione.ts | 102 +------ .../riscaldi/components/show-riscaldi-info.ts | 8 +- .../components/show-riscaldi-info.vue | 4 +- .../vuoto/base-components/vuoto-principale.ts | 123 +------- .../setup/vuoto/show-vuoto-info.ts | 8 +- .../setup/vuoto/show-vuoto-info.vue | 2 +- 37 files changed, 100 insertions(+), 1776 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/ciclo-formatura.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/ciclo-formatura.ts index 5798c287..9feba3a9 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/ciclo-formatura.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/ciclo-formatura.ts @@ -14,60 +14,8 @@ import ToggleButton from "@/components/toggleButton.vue"; } }) export default class CicloFormatura extends Vue { -recipe:Recipe.IRecipe={ - cycle_forming_type: { - range: { - min: 7, - max: 179 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 160 - }, - cycle_forming_pause_cycle:{ - range: { - min: 1, - max: 127 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 9 - }, - cycle_forming_cooling_enabled: { - range: { - min: 3, - max: 132 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 36 - }, - cycle_forming_blowingbox_enabled: { - range: { - min: 0, - max: 130 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 89 - }, -} + @Prop() + recipe:Recipe.IRecipe; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/ciclo-formatura.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/ciclo-formatura.vue index f1b1eb7c..63878d73 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/ciclo-formatura.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/ciclo-formatura.vue @@ -22,9 +22,9 @@
- - - + + +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-acrilico.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-acrilico.ts index 0c823c2f..83e343c2 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-acrilico.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-acrilico.ts @@ -6,35 +6,8 @@ import ToggleButton from "@/components/toggleButton.vue"; @Component({ components: { slider: Slider, ToggleButton } }) export default class MascheraAcrilico extends Vue { -recipe:Recipe.IRecipe={ - cycle_acrylicframe_time: { - range: { - min: 6, - max: 190 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 23 - }, - cycle_acrylicframe_enabled: { - range: { - min: 9, - max: 133 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 113 - } - -} + @Prop() + recipe:Recipe.IRecipe; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.ts index 72b7fd7c..0e0095ee 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.ts @@ -6,48 +6,8 @@ import ToggleButton from "@/components/toggleButton.vue"; @Component({ components: { slider: Slider, ToggleButton } }) export default class MascheraCristallizzazione extends Vue { -recipe:Recipe.IRecipe={ -cycle_crystallisation_type: { - range: { - min: 1, - max: 100 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 94 -}, -cycle_crystallisation_enabled: { - range: { - min: 1, - max: 100 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 94 -}, -cycle_crystallisation_time: { - range: { - min: 0, - max: 198 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 121 -}, - -} + @Prop() + recipe:Recipe.IRecipe; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.ts index f0fa17a9..39a57ce3 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.ts @@ -5,34 +5,8 @@ import Slider from "@/app_modules_thermo/components/slider.vue"; @Component({ components: { slider: Slider } }) export default class MascheraRiscaldo extends Vue { -recipe:Recipe.IRecipe={ - - cycle_upperoverheating_enabled:{ - range: { - min: 1, - max: 173 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 160 - }, - cycle_upperoverheating_time: { - range: { - min: 2, - max: 164 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 151 - } -} + + @Prop() + recipe:Recipe.IRecipe; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue index d9eb2f08..bd411ca0 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue @@ -11,7 +11,7 @@
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.ts index 45d47b8d..f784da0b 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.ts @@ -7,137 +7,7 @@ import Scheda from "@/app_modules_thermo/components/scheda.vue"; @Component({name:"ariacontrostampo", components: { scheda:Scheda,slider:Slider}}) export default class AriaControstampo extends Vue { - recipe:Recipe.IRecipe={ - upperplate_air_enable: { - range: { - min: 8, - max: 181 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 72 - }, - upperplate_air_delay: { - range: { - min: 7, - max: 152 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 70 - }, - upperplate_air_max_time: { - range: { - min: 9, - max: 192 - }, - status: { - visible: true, - enabled: true, - hasError: true - }, - unitMeasure: "", - valueAct: 195 - }, - upperplate_air_1_chart_setpointx: { - range: { - min: 0, - max: 141 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 108 - }, - upperplate_air_1_chart_setpointy: { - range: { - min: 4, - max: 127 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 104 - }, - upperplate_air_2_chart_setpointx: { - range: { - min: 2, - max: 167 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 86 - }, - upperplate_air_2_chart_setpointy: { - range: { - min: 9, - max: 109 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 22 - }, - upperplate_air_3_chart_setpointx: { - range: { - min: 8, - max: 165 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 87 - }, - upperplate_air_3_chart_setpointy: { - range: { - min: 3, - max: 190 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 60 - }, - upperplate_air_manual: { - range: { - min: 3, - max: 191 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 28 - }, - } + @Prop() + recipe:Recipe.IRecipe; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.ts index 7a7c483e..add306a5 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.ts @@ -13,49 +13,9 @@ import ToggleButton from "@/components/toggleButton.vue"; }) export default class CicloControstampo extends Vue { - recipe:Recipe.IRecipe={ - upperplate_cycle_type: { - range: { - min: 6, - max: 114 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 29 - }, - upperplate_cycle_delay: { - range: { - min: 9, - max: 129 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 11 - }, - upperplate_cycle_time: { - range: { - min: 5, - max: 157 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 107 - }, + @Prop() + recipe:Recipe.IRecipe; - } - - abilit:boolean=false; + abilit:boolean=false; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.ts index 5595c328..2296d310 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.ts @@ -6,10 +6,13 @@ import { Modal, ModalHelper } from "@/components/modals"; import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue"; import CicloControstampo from "./base-components/ciclo-controstampo.vue"; import AriaControstampo from "./base-components/aria-controstampo.vue"; +import { recipeActions } from "@/store/recipe.store"; +import { store } from "@/store"; @Component({components: { modal: Modal,stepfooter:StepFooter,ciclocontrostampo:CicloControstampo,ariacontrostampo:AriaControstampo}}) export default class ShowControstampoInfo extends Vue { + recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); show: string = "CC"; annulla(name:string){ @@ -17,6 +20,7 @@ export default class ShowControstampoInfo extends Vue { }; conferma(name:string){ + recipeActions.setCurrent(store, this.recipe); messageService.publishToChannel(name); }; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue index 2a6c1287..75a34431 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue @@ -12,8 +12,8 @@ - - + +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/base-components/estrazione-principale.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/base-components/estrazione-principale.ts index 7a3f942e..2501739d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/base-components/estrazione-principale.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/base-components/estrazione-principale.ts @@ -11,48 +11,7 @@ slider:Slider}}) export default class EstrazionePrincipale extends Vue{ - recipe:Recipe.IRecipe={ - extraction_main_delay:{ - range:{ - min:5, - max:155 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:15 - }, - extraction_main_1_chart_setpointx:{ - range:{ - min:0, - max:154 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:128 - }, - extraction_main_1_chart_setpointy:{ - range:{ - min:6, - max:106 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:49 - } - }; - - + @Prop() + recipe:Recipe.IRecipe; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.ts index 35719c0e..d6c54bcf 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.ts @@ -5,7 +5,8 @@ import { Factory, messageService, awaiter } from "@/_base"; import { Modal, ModalHelper } from "@/components/modals"; import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue"; import EstrazionePrincipale from "./base-components/estrazione-principale.vue"; - +import { recipeActions } from "@/store/recipe.store"; +import { store } from "@/store"; @Component({components: { modal: Modal, stepfooter:StepFooter, @@ -14,6 +15,7 @@ import EstrazionePrincipale from "./base-components/estrazione-principale.vue"; }) export default class ShowEstrazioneInfo extends Vue{ + recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); show:string="principale"; annulla(){ @@ -22,6 +24,7 @@ export default class ShowEstrazioneInfo extends Vue{ }; conferma(){ + recipeActions.setCurrent(store, this.recipe); ModalHelper.HideModal(); messageService.publishToChannel('show-opzioni-info'); }; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.vue index 72abea39..76ebe977 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.vue @@ -10,7 +10,7 @@ - +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts index c33da20c..5f3be8df 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts @@ -6,6 +6,8 @@ import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue" 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 { recipeActions } from "@/store/recipe.store"; +import { store } from "@/store"; @Component({ components: { @@ -17,133 +19,14 @@ import Scheda from "@/app_modules_thermo/components/scheda.vue"; }) export default class ShowImbutituraInfo extends Vue { - recipe:Recipe.IRecipe={ - drawing_type: { - range: { - min: 2, - max: 155 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 139 - }, - drawing_height: { - range: { - min: 2, - max: 169 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 115 - }, - drawing_delay: { - range: { - min: 5, - max: 146 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 87 - }, - drawing_1_chart_setpointx: { - range: { - min: 8, - max: 145 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 48 - }, - drawing_1_chart_setpointy: { - range: { - min: 6, - max: 105 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 76 - }, - drawing_photocell: { - range: { - min: 8, - max: 185 - }, - status: { - visible: true, - enabled: true, - hasError: true - }, - unitMeasure: "", - valueAct: 188 - }, - drawing_mantaining_flow: { - range: { - min: 2, - max: 143 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 137 - }, - drawing_manual: { - range: { - min: 1, - max: 138 - }, - status: { - visible: true, - enabled: true, - hasError: true - }, - unitMeasure: "", - valueAct: 141 - }, - drawing_mould_up_delay: { - range: { - min: 6, - max: 118 - }, - status: { - visible: true, - enabled: true, - hasError: false - }, - unitMeasure: "", - valueAct: 44 - }, - - } - + recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); annulla(name:string){ messageService.publishToChannel(name); }; conferma(name:string){ + recipeActions.setCurrent(store, this.recipe); messageService.publishToChannel(name); }; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/sottosquadra-stampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/sottosquadra-stampo.ts index 97c1ec9a..1c361b57 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/sottosquadra-stampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/sottosquadra-stampo.ts @@ -11,211 +11,8 @@ import SetupSottosquadra from "./base-components/setupSottosquadra.vue"; }}) export default class SottosqaudraStampo extends Vue{ - recipe:Recipe.IRecipe={ - - options_undercutupperplate_1_position:{ - range:{ - min:0, - max:194 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:81 - }, - options_undercutupperplate_1_delay_acti:{ - range:{ - min:5, - max:173 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:61 - }, - options_undercutupperplate_1_delay_dis:{ - range:{ - min:0, - max:172 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:156 - }, - - options_undercutupperplate_2_position:{ - range:{ - min:7, - max:189 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:122 - }, - options_undercutupperplate_2_delay_acti:{ - range:{ - min:6, - max:125 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:87 - }, - options_undercutupperplate_2_delay_dis:{ - range:{ - min:3, - max:169 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:119 - }, - - options_undercutupperplate_3_position:{ - range:{ - min:6, - max:133 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:12 - }, - options_undercutupperplate_3_delay_acti:{ - range:{ - min:9, - max:125 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:28 - }, - options_undercutupperplate_3_delay_dis:{ - range:{ - min:2, - max:106 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:98 - }, - - options_undercutupperplate_4_position:{ - range:{ - min:3, - max:177 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:11 - }, - options_undercutupperplate_4_delay_acti:{ - range:{ - min:9, - max:147 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:103 - }, - options_undercutupperplate_4_delay_dis:{ - range:{ - min:5, - max:141 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:93 - }, - - options_undercutupperplate_5_position:{ - range:{ - min:4, - max:134 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:28 - }, - options_undercutupperplate_5_delay_acti:{ - range:{ - min:8, - max:114 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:53 - }, - options_undercutupperplate_5_delay_dis:{ - range:{ - min:1, - max:120 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:12 - }, - - - -}; + @Prop() + recipe:Recipe.IRecipe; showSottosquadra: string = "sottosquadra-1"; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/termoregolatori.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/termoregolatori.ts index 34d31368..82f7a7e5 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/termoregolatori.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/termoregolatori.ts @@ -12,281 +12,8 @@ import InputTermo from "./base-components/inputTermo.vue"; }) export default class Termoragolatori extends Vue { - recipe:Recipe.IRecipe={ - - options_thermoregulator_1_enabled:{ - range:{ - min:5, - max:171 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:132 - }, - options_thermoregulator_1_setpoint:{ - range:{ - min:2, - max:130 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:7 - }, - - options_thermoregulator_2_enabled:{ - range:{ - min:8, - max:107 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:53 - }, - options_thermoregulator_2_setpoint:{ - range:{ - min:6, - max:192 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:153 - }, - - options_thermoregulator_3_enabled:{ - range:{ - min:7, - max:112 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:30 - }, - options_thermoregulator_3_setpoint:{ - range:{ - min:9, - max:184 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:116 - }, - - options_thermoregulator_4_enabled:{ - range:{ - min:1, - max:166 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:148 - }, - options_thermoregulator_4_setpoint:{ - range:{ - min:8, - max:125 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:28 - }, - - options_thermoregulator_5_enabled:{ - range:{ - min:3, - max:134 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:42 - }, - options_thermoregulator_5_setpoint:{ - range:{ - min:9, - max:146 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:119 - }, - - options_thermoregulator_6_enabled:{ - range:{ - min:0, - max:178 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:130 - }, - options_thermoregulator_6_setpoint:{ - range:{ - min:6, - max:165 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:17 - }, - - options_thermoregulator_7_enabled:{ - range:{ - min:3, - max:163 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:120 - }, - options_thermoregulator_7_setpoint:{ - range:{ - min:7, - max:136 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:12 - }, - - options_thermoregulator_8_enabled:{ - range:{ - min:9, - max:158 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:101 - }, - options_thermoregulator_8_setpoint:{ - range:{ - min:9, - max:132 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:43 - }, - - options_thermoregulator_9_enabled:{ - range:{ - min:6, - max:112 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:43 - }, - options_thermoregulator_9_setpoint:{ - range:{ - min:5, - max:191 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:144 - }, - - options_thermoregulator_10_enabled:{ - range:{ - min:7, - max:147 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:8 - }, - options_thermoregulator_10_setpoint:{ - range:{ - min:2, - max:101 - }, - status:{ - visible:true, - enabled:true, - hasError:false - }, - unitMeasure:"", - valueAct:4 - } - - - }; - + @Prop() + recipe:Recipe.IRecipe; showTermo: string = "termo-1"; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.ts index 6e4bff73..41521536 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.ts @@ -5,6 +5,8 @@ import Component from "vue-class-component"; import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue"; import SottosquadraStampo from "./components/sottosquadra-stampo.vue"; import Termoregolatori from "./components/termoregolatori.vue"; +import { recipeActions } from "@/store/recipe.store"; +import { store } from "@/store"; @Component({ components: { @@ -16,6 +18,7 @@ import Termoregolatori from "./components/termoregolatori.vue"; }) export default class ShowOpzioniInfo extends Vue { + recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); showOpzioni: string = "TR"; annulla() { @@ -24,6 +27,7 @@ export default class ShowOpzioniInfo extends Vue { }; conferma() { + recipeActions.setCurrent(store, this.recipe); ModalHelper.HideModal(); }; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.vue index 9ab47572..f69bb5d9 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.vue @@ -13,8 +13,8 @@
- - + +
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 10703ace..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 @@ -8,46 +8,7 @@ import ToggleButton from "@/components/toggleButton.vue"; @Component({name:"pirometro", components: { slider:Slider, ToggleButton}}) export default class Pirometro extends Vue{ - recipe:Recipe.IRecipe={ - pyrometer_pyrometer_enabled:{ - range:{ - min:3, - max:103 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:79 - }, - pyrometer_pyrometer_delay:{ - range:{ - min:7, - max:152 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:86 - }, - pyrometer_pyrometer_setpoint:{ - range:{ - min:2, - max:159 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:3 - } - }; + @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/termo-superiore.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/termo-superiore.ts index 1e900d3b..5d0d0938 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 @@ -8,111 +8,7 @@ import SVGTermoregolazioneSuperiore from './SVG_Components/SVG-termo-superiore.v @Component({name:'termosuperiore', components: { slider:Slider, ToggleButton, svgtermosuperiore:SVGTermoregolazioneSuperiore}}) export default class TermoregolazioneSuperiore extends Vue{ - recipe:Recipe.IRecipe={ - pyrometer_upperthermoregulator_start_adjustment:{ - range:{ - min:7, - max:189 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:33 - }, - pyrometer_upperthermoregulator_end_adjustment:{ - range:{ - min:0, - max:109 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:59 - }, - pyrometer_upperthermoregulator_max_percentage:{ - range:{ - min:7, - max:181 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:39 - }, - pyrometer_upperthermoregulator_min_percentage:{ - range:{ - min:1, - max:155 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:17 - }, - pyrometer_upperthermoregulator_sleep_enabled:{ - range:{ - min:3, - max:179 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:90 - }, - pyrometer_upperthermoregulator_sleep_percentage:{ - range:{ - min:5, - max:174 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:169 - }, - pyrometer_upperthermoregulator_sleep_temperature:{ - range:{ - min:6, - max:125 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:45 - }, - pyrometer_upperthermoregulator_working_temperature:{ - range:{ - min:5, - max:135 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:15 - } - }; + @Prop() + recipe:Recipe.IRecipe; } \ 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 dc192d97..5be7e3ec 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,10 +6,13 @@ 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"; @Component({ components: { modal: Modal ,pirometro:Pirometro, stepfooter:StepFooter, termosuperiore:TermoregolazioneSuperiore} }) export default class ShowPirometroInfo extends Vue { + recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); show:string='termo-superiore'; annulla(name:string){ @@ -17,6 +20,7 @@ export default class ShowPirometroInfo extends Vue { }; conferma(name:string){ + recipeActions.setCurrent(store, this.recipe); messageService.publishToChannel(name); }; 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 e9b2e21f..b023e8b1 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 @@ -11,8 +11,8 @@ - - + +
- - - + + +
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 0b45d876..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,35 +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() + recipe:Recipe.IRecipe; } \ 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..3e32f01e 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 @@ -4,7 +4,9 @@ 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"; @Component({ components: { @@ -16,13 +18,16 @@ import Ventilatori from "./base-components/ventilatori.vue" export default class Raffreddamento extends Vue{ + recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); show: string = "ventilatori"; + annulla(){ ModalHelper.HideModal(); messageService.publishToChannel('show-controstampo-info'); }; conferma(){ + recipeActions.setCurrent(store, this.recipe); ModalHelper.HideModal(); messageService.publishToChannel('show-vuoto-info'); }; 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 e19c0a5b..99c59535 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 @@ -11,7 +11,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 8769df89..3dbf000f 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 @@ -16,63 +16,7 @@ export default class RiscaldiSuperiori extends Vue { mock_setpoint:number=this.setpoint; - recipe:Recipe.IRecipe={ - heats_upperheaters_max_time:{ - range:{ - min:4, - max:165 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:159 - }, - - heats_upperheaters_movement_enabled:{ - range:{ - min:5, - max:157 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:71 - }, - - heats_upperheaters_enabled:{ - range:{ - min:8, - max:192 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:171 - }, - - heats_upperheaters_oscillation:{ - range:{ - min:4, - max:150 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:138 - }, - -} + @Prop() + recipe:Recipe.IRecipe; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.ts index 174bd92a..ca81dcb8 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.ts @@ -7,105 +7,7 @@ import toggleButton from "@/components/toggleButton.vue"; @Component({ name: "sostdecomp", components: { slider: Slider, toggleButton } }) export default class SostDecomp extends Vue { - recipe:Recipe.IRecipe={ - heats_decomsustain_type:{ - range:{ - min:4, - max:111 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:86 - }, - - heats_decomsustain_decompression_flow:{ - range:{ - min:9, - max:105 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:35 - }, - - heats_decomsustain_min_blowing_time:{ - range:{ - min:0, - max:127 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:63 - }, - - heats_decomsustain_sustain_delay:{ - range:{ - min:6, - max:198 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:159 - }, - - heats_decomsustain_decompression_delay:{ - range:{ - min:1, - max:163 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:26 - }, - - heats_decomsustain_decompression_duration:{ - range:{ - min:6, - max:108 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:72 - }, - - heats_decomsustain_smoke_function_enabled:{ - range:{ - min:5, - max:132 - }, - status:{ - enabled:true, - visible:true, - hasError:false - }, - unitMeasure:"", - valueAct:89 - }, - -} + @Prop() + recipe:Recipe.IRecipe; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.ts index d8fd6550..b6630393 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.ts @@ -5,18 +5,22 @@ import Component from "vue-class-component"; import { Prop } from 'vue-property-decorator'; import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue"; import RiscaldiSup from "./base-components/riscaldi-superiori.vue"; -import SostDecomp from "./base-components/sostentamento-decompressione.vue" +import SostDecomp from "./base-components/sostentamento-decompressione.vue"; +import { recipeActions } from "@/store/recipe.store"; +import { store } from "@/store"; @Component({ components: { modal: Modal, stepfooter: StepFooter, riscaldisup: RiscaldiSup, sostdecomp: SostDecomp } }) export default class ShowRiscaldamentoSuperioreInfo extends Vue { - show: string = "activeRS" + recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); + show: string = "activeRS"; annulla(name:string){ messageService.publishToChannel(name); }; conferma(name:string){ + recipeActions.setCurrent(store, this.recipe); messageService.publishToChannel(name); }; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue index 459fb441..8b212e02 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue @@ -18,8 +18,8 @@ - - + +
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/show-vuoto-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/vuoto/show-vuoto-info.ts index d3f396c2..42be1c91 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,12 +3,15 @@ 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"; @Component({ components: { modal: Modal , vuotoprincipale: VuotoPrincipale, stepfooter: StepFooter} }) export default class ShowVuotoInfo extends Vue { + recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); show:string="principale"; annulla(){ @@ -17,6 +20,7 @@ export default class ShowVuotoInfo extends Vue { }; conferma(){ + recipeActions.setCurrent(store, this.recipe); ModalHelper.HideModal(); messageService.publishToChannel('show-estrazione-info'); }; 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..8b79060b 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 @@ -12,7 +12,7 @@ - +
From 439c70f70d49f26b0acaedda65f4006ffd3c9e8b Mon Sep 17 00:00:00 2001 From: Alessio Date: Thu, 21 May 2020 11:17:41 +0200 Subject: [PATCH 120/167] fix typing for tag input --- .../app_modules_thermo/components/scheda.vue | 8 +++--- .../app_modules_thermo/components/slider.vue | 2 +- .../components/base-components/caricatore.vue | 20 +++++++------- .../base-components/formatura-acrilico.vue | 4 +-- .../formatura-cristallizzazione.vue | 4 +-- .../base-components/formatura-riscaldo.vue | 4 +-- .../base-components/aria-controstampo.vue | 8 +++--- .../base-components/ciclo-controstampo.vue | 8 +++--- .../base-components/estrazione-principale.vue | 4 +-- .../SVG_Components/controstampoSVG.vue | 2 +- .../components/SVG_Components/corniceSVG.vue | 4 +-- .../components/SVG_Components/lastraSVG.vue | 6 ++--- .../components/SVG_Components/piastraSVG.vue | 4 +-- .../components/SVG_Components/stampoSVG.vue | 10 +++---- .../setup/formato/components/controstampo.vue | 4 +-- .../setup/formato/components/cornice.vue | 9 ++++--- .../setup/formato/components/lastra.vue | 14 +++++----- .../formato/components/piastra_riduzione.vue | 9 ++++--- .../setup/formato/components/stampo.vue | 10 +++---- .../setup/imbutitura/show-imbutitura-info.vue | 16 ++++++------ .../base-components/inputSottosquadra.vue | 12 ++++----- .../components/base-components/inputTermo.vue | 4 +-- .../SVG_Components/SVG-termo-superiore.vue | 10 +++---- .../components/base-components/pirometro.vue | 8 +++--- .../base-components/termo-superiore.vue | 20 +++++++------- .../SVG_Components/quote-velocita.vue | 22 ++++++++-------- .../components/SVG_Components/stampo.vue | 26 +++++++++---------- .../SVG_Components/svgcontrostampo.vue | 18 ++++++------- .../components/controstampo.vue | 20 +++++++------- .../components/discesa-cornice.vue | 20 +++++++------- .../components/salita-stampo.vue | 20 +++++++------- .../base-components/ventilatori.vue | 8 +++--- .../base-components/riscaldi-superiori.vue | 8 +++--- .../sostentamento-decompressione.vue | 8 +++--- .../base-components/vuoto-principale.vue | 16 +++++++----- 35 files changed, 189 insertions(+), 181 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue index be02ec35..70618a3f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue @@ -3,14 +3,14 @@
- +
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/slider.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/slider.vue index 3107eac4..8f487e51 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/slider.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/slider.vue @@ -4,7 +4,7 @@
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.vue index 0121e02f..9962bcf6 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.vue @@ -8,52 +8,52 @@
- +
- +
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-acrilico.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-acrilico.vue index 0c86910f..8394d715 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-acrilico.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-acrilico.vue @@ -10,12 +10,12 @@
- +
+ v-model.number="recipe.cycle_acrylicframe_time.valueAct"> diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue index 39b43b0c..8373bfce 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue @@ -10,12 +10,12 @@
- +
+ v-model.number="recipe.cycle_crystallisation_time.valueAct"> diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.vue index 95dc6f60..723d4edc 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.vue @@ -6,12 +6,12 @@
- +
+ v-model.number="recipe.cycle_upperoverheating_time.valueAct">
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue index 2c99e15c..8ea2f205 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue @@ -4,12 +4,12 @@
- +
@@ -31,12 +31,12 @@
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.vue index 7a604484..ec781755 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.vue @@ -14,22 +14,22 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/base-components/estrazione-principale.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/base-components/estrazione-principale.vue index 8735e2ed..0e7211a3 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/base-components/estrazione-principale.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/base-components/estrazione-principale.vue @@ -4,12 +4,12 @@
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue index 9669b336..8a7a52f7 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue @@ -4,7 +4,7 @@
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue index 04780e93..8fb8982e 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue @@ -4,12 +4,12 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue index 3c20f93a..30e54709 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue @@ -4,17 +4,17 @@
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue index c5fb5f57..f97eaadb 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue @@ -4,12 +4,12 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue index 68449f61..0dbf4b78 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue @@ -4,27 +4,27 @@
- +
- +
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue index 05aa9d1d..cfd879ae 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue @@ -6,12 +6,12 @@
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue index 964d486c..fc70fff9 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue @@ -13,22 +13,23 @@
- +
+
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue index c31af2f7..13a33173 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue @@ -13,30 +13,32 @@
- +
+
- +
+
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue index d84be405..b17a1a8f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue @@ -13,22 +13,23 @@
- +
+
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue index 875f437c..01636cfa 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue @@ -6,23 +6,23 @@
- +
- +
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue index 555d334d..a327e1ad 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue @@ -11,12 +11,12 @@
- +
+ v-model.number="recipe.drawing_delay.valueAct">
@@ -35,30 +35,30 @@
- +
+ v-model.number="recipe.drawing_height.valueAct">
- +
+ v-model.number="recipe.drawing_mantaining_flow.valueAct">
- +
+ v-model.number="recipe.drawing_manual.valueAct">
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/base-components/inputSottosquadra.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/base-components/inputSottosquadra.vue index f8038f4c..e5a9acb5 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/base-components/inputSottosquadra.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/base-components/inputSottosquadra.vue @@ -9,32 +9,32 @@
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/base-components/inputTermo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/base-components/inputTermo.vue index 43010022..342ee242 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/base-components/inputTermo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/components/base-components/inputTermo.vue @@ -6,12 +6,12 @@
- +
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 f42fe4a7..2b0b6b88 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 @@ -3,25 +3,25 @@
- +
- +
- +
- +
- +
270 °C 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 6c6db4d9..092196d0 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 @@ -9,22 +9,22 @@
- +
- +
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 f4e2db74..38902764 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 @@ -3,22 +3,22 @@ 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 d2c129bf..3d278cbb 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 @@ -5,67 +5,67 @@
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
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 d94d789c..3b5943ea 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 @@ -5,83 +5,83 @@
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
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 8b63ee48..1e000f90 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 @@ -5,55 +5,55 @@ e From 955d52b977b989cee1a9753477e20f8c3efd3b27 Mon Sep 17 00:00:00 2001 From: Damiano Date: Thu, 21 May 2020 12:00:33 +0200 Subject: [PATCH 121/167] fix position elements dashboard --- .../wwwroot/assets/styles/base/dashboard.less | 4 ++-- .../assets/styles/base/graph-dashboard.less | 21 +++++++++++----- Thermo.Active/wwwroot/assets/styles/style.css | 24 ++++++++++++------- .../base-components/graph-dashboard.vue | 2 +- 4 files changed, 34 insertions(+), 17 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index f0894f92..461cd731 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -62,8 +62,8 @@ display: inline-block; .gauge{ - width: 126px; - height: 92px; + width: 120px; + height: 90px; } path.value{ diff --git a/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less index 5f4daf8a..aac4b6a1 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less @@ -109,27 +109,36 @@ display: flex; align-items: center; position: relative; + height: 610px; + width:610px; hr{ - height: 1px; - width: 20px; + height: 5px; + width: 320px; background-color: gray; + z-index:1; + border:none; } .gauge-container { width: 610px; height: 610px; border-radius: 5px; - position: relative; + position: absolute; flex-direction: column; + justify-content: center; + align-items: center; display:flex; + top:calc(~"50% - 305px"); + left:calc(~"50% - 305px"); } #gauge1{ - position: absolute; + width: 580px; - left: 15px; - top: 15px; + left:calc(~"50% - 290px"); + top:calc(~"50% - 290px"); + height:580px; } #gauge1 .gauge .dial{ diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index a901f6ad..35cf061f 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4124,25 +4124,33 @@ display: flex; align-items: center; position: relative; + height: 610px; + width: 610px; } .box-graph-dashboard .box-circle-piece hr { - height: 1px; - width: 20px; + height: 5px; + width: 320px; background-color: gray; + z-index: 1; + border: none; } .box-graph-dashboard .box-circle-piece .gauge-container { width: 610px; height: 610px; border-radius: 5px; - position: relative; + position: absolute; flex-direction: column; + justify-content: center; + align-items: center; display: flex; + top: calc(50% - 305px); + left: calc(50% - 305px); } .box-graph-dashboard .box-circle-piece #gauge1 { - position: absolute; width: 580px; - left: 15px; - top: 15px; + left: calc(50% - 290px); + top: calc(50% - 290px); + height: 580px; } .box-graph-dashboard .box-circle-piece #gauge1 .gauge .dial { fill: #99CFFF; @@ -4218,8 +4226,8 @@ display: inline-block; } .dashboard .header .arch .box-gauge .gauge-container .gauge { - width: 126px; - height: 92px; + width: 120px; + height: 90px; } .dashboard .header .arch .box-gauge .gauge-container path.value { stroke: #1791ff; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue index 405a1ab9..b99b132f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue @@ -21,7 +21,7 @@
- +
From 16782271a4bca78680a7479dd8b81c05d59a0be0 Mon Sep 17 00:00:00 2001 From: Alessio Date: Thu, 21 May 2020 13:52:10 +0200 Subject: [PATCH 122/167] fix dashboard and archinterface --- .../assets/styles/base/graph-dashboard.less | 324 +++++++++--------- Thermo.Active/wwwroot/assets/styles/style.css | 17 +- .../arch-interface/arch-interface.ts | 6 +- .../arch-interface/arch-interface.vue | 6 +- .../base-components/graph-dashboard.ts | 4 +- .../base-components/graph-dashboard.vue | 4 +- .../dashboard/dashboard.vue | 2 +- .../wwwroot/src/modules/app-header.vue | 2 +- 8 files changed, 188 insertions(+), 177 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less index aac4b6a1..123d9bee 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less @@ -1,177 +1,187 @@ // out: false, sourceMap: false, main: ../style.less @import "colors.less"; - .box-graph-dashboard{ - height: 610px; - display: flex; - align-items: center; - justify-content: flex-end; + .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; + .svg-dashboard { + background-repeat: no-repeat; + display : flex; + flex-direction : column; + justify-content : center; - &.dashboard3{ - margin-bottom: 200px; - height: 100px; - width: 756px; - background-size:756px; - 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; - } - } - } + &.dashboard3 { + margin-bottom : 200px; + height : 100px; + width : 756px; + background-size : 756px; + background-image: url(/assets/icons/svg/svg-dashboard3.svg); - .time-box{ - display: flex; - flex-direction: column; - justify-content: center; - height: 100%; + 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; + } + } + } - .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-box { + display : flex; + flex-direction : column; + justify-content: center; + height : 100%; - time{ - font-size: 120px; - font-weight: 300; - font-stretch: normal; - font-style: normal; - line-height: normal; - letter-spacing: normal; - text-align: center; - color: #4b4b4b; - } + .svg-dashboard { - &.dashboard{ - background-image: url(/assets/icons/svg/svg-dashboard.svg); - height: 178px; - width: 545px; - background-size: 545px; - } + 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; + } - &.dashboard2{ - height: 178px; - background-size: 545px; - width: 545px; - background-image: url(/assets/icons/svg/svg-dashboard2.svg); - } + 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; + } - .box-time-passed{ - height: 117px; - margin: 30px 0px; - text-align: center; - display: flex; - justify-content: center; - flex-direction: column; + &.dashboard2 { + height : 178px; + background-size : 545px; + width : 545px; + background-image: url(/assets/icons/svg/svg-dashboard2.svg); + } - label{ + } - &:first-of-type{ - font-size: 26px; - } + .box-time-passed { + height : 117px; + margin : 30px 0px; + text-align : center; + display : flex; + justify-content: center; + flex-direction : column; - &:last-of-type{ - font-size: 54px; - } + label { - } - - } + &:first-of-type { + font-size: 26px; + } -} + &:last-of-type { + font-size: 54px; + } - .box-circle-piece{ - display: flex; - align-items: center; - position: relative; - height: 610px; - width:610px; + } - hr{ - height: 5px; - width: 320px; - background-color: gray; - z-index:1; - border:none; - } - - .gauge-container { - width: 610px; - height: 610px; - border-radius: 5px; - position: absolute; - flex-direction: column; - justify-content: center; - align-items: center; - display:flex; - top:calc(~"50% - 305px"); - left:calc(~"50% - 305px"); - } + } - #gauge1{ - - width: 580px; - left:calc(~"50% - 290px"); - top:calc(~"50% - 290px"); - height:580px; - } - - #gauge1 .gauge .dial{ - fill: #99CFFF; - stroke: #91A2B1; - } - - #gauge1 .gauge .value{ - stroke: #4DAAFF; - } - - #gauge1 .gauge .value-text{ - fill: black; - alignment-baseline: before-edge; - font-size: 20px; - } - - #gauge2 .gauge .value-text{ - fill: black; - alignment-baseline: after-edge; - font-size: 20px; - } - - #gauge2 .gauge .dial{ - stroke: #003264; - } - - #gauge2 .gauge .value{ - stroke: #90C03D; - stroke-width: 2; - } - - } - -} - \ No newline at end of file + } + + .box-circle-piece { + display : flex; + align-items: center; + position : relative; + height : 610px; + width : 610px; + + hr { + height : 5px; + width : 320px; + background-color: gray; + z-index : 1; + border : none; + } + + .gauge-container-dashboard { + width : 610px; + height : 610px; + border-radius : 5px; + position : absolute; + flex-direction : column; + justify-content: center; + align-items : center; + display : flex; + top : calc(~"50% - 305px"); + left : calc(~"50% - 305px"); + + + &.gauge1 { + width : 580px; + left : calc(~"50% - 290px"); + top : calc(~"50% - 290px"); + height: 580px; + + .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/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 35cf061f..fc3028cd 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4099,6 +4099,7 @@ height: 178px; width: 545px; background-size: 545px; + position: relative; } .box-graph-dashboard .time-box .svg-dashboard.dashboard2 { height: 178px; @@ -4134,7 +4135,7 @@ z-index: 1; border: none; } -.box-graph-dashboard .box-circle-piece .gauge-container { +.box-graph-dashboard .box-circle-piece .gauge-container-dashboard { width: 610px; height: 610px; border-radius: 5px; @@ -4146,33 +4147,33 @@ top: calc(50% - 305px); left: calc(50% - 305px); } -.box-graph-dashboard .box-circle-piece #gauge1 { +.box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge1 { width: 580px; left: calc(50% - 290px); top: calc(50% - 290px); height: 580px; } -.box-graph-dashboard .box-circle-piece #gauge1 .gauge .dial { +.box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge1 .gauge .dial { fill: #99CFFF; stroke: #91A2B1; } -.box-graph-dashboard .box-circle-piece #gauge1 .gauge .value { +.box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge1 .gauge .value { stroke: #4DAAFF; } -.box-graph-dashboard .box-circle-piece #gauge1 .gauge .value-text { +.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 #gauge2 .gauge .value-text { +.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 #gauge2 .gauge .dial { +.box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge2 .gauge .dial { stroke: #003264; } -.box-graph-dashboard .box-circle-piece #gauge2 .gauge .value { +.box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge2 .gauge .value { stroke: #90C03D; stroke-width: 2; } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.ts index 23b6afa5..6d7757cd 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.ts @@ -6,7 +6,7 @@ import Gauge from "svg-gauge"; export default class archinterface extends Vue{ mounted(){ var gauge1 = Gauge( - document.getElementById("gauge1"), { + this.$refs.gauge1, { min:0, max: 100, value: 50 @@ -14,7 +14,7 @@ mounted(){ ); var gauge2 = Gauge( - document.getElementById("gauge2"), { + this.$refs.gauge2, { min:0, max: 100, value: 50 @@ -22,7 +22,7 @@ mounted(){ ); var gauge3 = Gauge( - document.getElementById("gauge3"), { + this.$refs.gauge3, { min: 0, max: 100, value: 50 diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.vue index 5e2204e0..c4d4c250 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.vue @@ -2,7 +2,7 @@
-
+
Kw
@@ -11,7 +11,7 @@
-
+
bar
@@ -20,7 +20,7 @@
-
+
bar
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.ts index 98219287..d2e09501 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.ts @@ -5,7 +5,7 @@ import Gauge from "svg-gauge"; export default class dashboard extends Vue{ mounted(){ var gauge1= Gauge( - document.getElementById("gauge1"), { + this.$refs.gauge1, { max: 100, dialStartAngle: -90, dialEndAngle: -90.001, @@ -17,7 +17,7 @@ mounted(){ ); var gauge2= Gauge( - document.getElementById("gauge2"), { + this.$refs.gauge2, { max: 100, dialStartAngle: -90, dialEndAngle: -90.001, diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue index b99b132f..87b8a2fc 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/graph-dashboard.vue @@ -19,10 +19,10 @@
-
+

-
+
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue index ff0894f4..3becf97e 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue @@ -38,7 +38,7 @@
- +
diff --git a/Thermo.Active/wwwroot/src/modules/app-header.vue b/Thermo.Active/wwwroot/src/modules/app-header.vue index 9a920865..53442e2f 100644 --- a/Thermo.Active/wwwroot/src/modules/app-header.vue +++ b/Thermo.Active/wwwroot/src/modules/app-header.vue @@ -95,7 +95,7 @@
- + From ef2f3d78747490fb9c9392718b1e349a96b101c5 Mon Sep 17 00:00:00 2001 From: Alessio Date: Thu, 21 May 2020 15:08:38 +0200 Subject: [PATCH 123/167] fix style archinterface --- .../assets/styles/base/arch-interface.less | 161 ++-- .../wwwroot/assets/styles/base/dashboard.less | 722 +++++++++--------- .../assets/styles/base/graph-dashboard.less | 4 +- Thermo.Active/wwwroot/assets/styles/style.css | 141 ++-- .../arch-interface/arch-interface.vue | 6 +- 5 files changed, 490 insertions(+), 544 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less b/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less index dcf52bbc..503825ba 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less +++ b/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less @@ -1,103 +1,72 @@ // out: false, sourceMap: false, main: ../style.less -@import "colors.less"; - -.arch{ - display:flex; - - .kW { - 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; - } + @import "colors.less"; - .Potenza { - 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; - } + .arch { + display : flex; + justify-content: center; + width : 650px; - .Bar { - 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; - } + .box-gauge { + width: 90px; + margin-right: 20px; - .Aria { - 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; - } + div{ -.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-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-weight: bold; - font-size: 3.9px; - margin-top:10px; + &:last-of-type{ + margin-top: -25px; + display: flex; + flex-direction: column; + text-align: center; -} + label{ + font-size: 13px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: normal; + text-align: center; + color: @color-darkish-blue; + } + } -.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 + } + + .gauge-container { + width : 90px; + height : 90px; + 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/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index 461cd731..41b2aebf 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -5,401 +5,410 @@ @modal: modal; -.dashboard{ - height: 100%; - width: 100%; +.dashboard { + 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; + position : fixed; + z-index : 1001; + display : flex; + flex-direction : column; + justify-content : flex-start; - .header{ - width: 100%; + .header { + width : 100%; display: flex; - - .ribbon-container{ - height: 80px; + + .ribbon-container { + height : 80px; z-index: 900; } - - .box-date{ - display: flex; - width: 100%; + + .box-date { + display : flex; + width : 70%; margin-left: 100px; - - div{ + + div { flex-shrink: 0; - font-size: 47px; - text-align: right; + font-size : 47px; + text-align : right; font-weight: 500; } - + time { flex-shrink: 0; - transition: color 200ms ease-in-out; + transition : color 200ms ease-in-out; margin-left: 28px; - display: flex; - font-size: 120px; + display : flex; + font-size : 120px; } - + } - - .arch{ - display: flex; - justify-content: flex-start; - // position: relative; - // z-index: 1002; + + .arch { width: 100%; - text-align: center; - - .box-gauge{ - position: relative; - display: inline-block; - - .gauge-container{ - display: inline-block; - - .gauge{ - width: 120px; - height: 90px; - } - - path.value{ - stroke: @color-clear-blue; - stroke-width: 5; - } - - text{ - font-size: 20px; - } - - path.dial{ - stroke: @color-whitegrey; - stroke-width: 5; + + .box-gauge { + height: 150px; + width : 126px; + + .gauge-container,.three { + width : 126px; + height: 92px; + + .gauge { + + .value { + stroke: #1791ff; + } + + .value-text { + fill: #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; - - .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 { + + &: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; + } + } } - - div{ - align-self: center; - margin-right: 10px; - font-size: 18px; + + } + + } + + } + + .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{ - margin-top: -400px; - height: 100%; - display: flex; + section { + margin-top : -400px; + height : 100%; + display : flex; + justify-content: flex-end; + padding-right : 15px; + padding-bottom : 50px; + + .specific { + display : flex; + flex-direction : column; justify-content: flex-end; - padding-right: 15px; - padding-bottom: 50px; - .specific{ + div { display: flex; - flex-direction: column; - justify-content: flex-end; + } - div{ - display: flex; - } + //inizio sezione style del primo specific + &:first-of-type { + margin-right: 15%; - //inizio sezione style del primo specific - &:first-of-type{ - margin-right: 15%; + div { - div{ + &:first-of-type { - &: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{ - 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{ - width: 641px; - height: 310px; - overflow-x: hidden; - - .component{ - width: 621px; - height: 77px; - } - - } - - .component{ - width: 641px; - height: 84px; - background-color: #e8e8e8; - flex-direction: column; - justify-content: flex-end; - - div{ - margin:auto; - padding: 0px 15px; - width: unset; - height: unset; - background-color: unset; - } - - span{ + img { flex-shrink: 0; - width: 100%; - height: 1px; - background-color: #676767; + width : 41px; + height : 41px; + object-fit : contain; } - - label{ - flex-shrink: 0; - font-size: 54px; - font-weight: 500; - font-stretch: normal; - font-style: normal; - line-height: normal; + + 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; + text-align : right; + color : #4b4b4b; } - .specific{ - height: unset; - width: unset; - background-color: unset; - margin: unset; + } - label{ - flex-shrink: 0; + &:last-of-type { + margin: unset; - &: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; - } + 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; + } - &: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; - } + 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 { + 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 { + width : 641px; + height : 310px; + overflow-x: hidden; + + .component { + width : 621px; + height: 77px; + } + + } + + .component { + width : 641px; + height : 84px; + background-color: #e8e8e8; + flex-direction : column; + justify-content : flex-end; + + div { + margin : auto; + padding : 0px 15px; + width : unset; + height : unset; + background-color: unset; + } + + span { + flex-shrink : 0; + width : 100%; + height : 1px; + background-color: #676767; + } + + 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; } } @@ -412,5 +421,6 @@ } -} + } +} \ 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 index 123d9bee..7afd3f14 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less @@ -14,7 +14,7 @@ justify-content : center; &.dashboard3 { - margin-bottom : 200px; + margin-bottom : 250px; height : 100px; width : 756px; background-size : 756px; @@ -136,9 +136,9 @@ &.gauge1 { width : 580px; + height: 580px; left : calc(~"50% - 290px"); top : calc(~"50% - 290px"); - height: 580px; .gauge { .dial { diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index fc3028cd..58e2ff40 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4050,7 +4050,7 @@ justify-content: center; } .box-graph-dashboard .svg-dashboard.dashboard3 { - margin-bottom: 200px; + margin-bottom: 250px; height: 100px; width: 756px; background-size: 756px; @@ -4149,9 +4149,9 @@ } .box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge1 { width: 580px; + height: 580px; left: calc(50% - 290px); top: calc(50% - 290px); - height: 580px; } .box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge1 .gauge .dial { fill: #99CFFF; @@ -4197,7 +4197,7 @@ } .dashboard .header .box-date { display: flex; - width: 100%; + width: 70%; margin-left: 100px; } .dashboard .header .box-date div { @@ -4214,43 +4214,47 @@ font-size: 120px; } .dashboard .header .arch { - display: flex; - justify-content: flex-start; width: 100%; - text-align: center; } .dashboard .header .arch .box-gauge { - position: relative; - display: inline-block; + height: 150px; + width: 126px; } -.dashboard .header .arch .box-gauge .gauge-container { - display: inline-block; +.dashboard .header .arch .box-gauge .gauge-container, +.dashboard .header .arch .box-gauge .three { + width: 126px; + height: 92px; } -.dashboard .header .arch .box-gauge .gauge-container .gauge { - width: 120px; - height: 90px; -} -.dashboard .header .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 .header .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 .header .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 .header .arch .box-gauge span { - position: absolute; - top: 60px; - left: 53px; - font-size: 14px; -} -.dashboard .header .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 .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; @@ -5229,96 +5233,59 @@ body { } .arch { display: flex; + justify-content: center; + width: 650px; } -.arch .kW { - font-size: 12px; - font-weight: 800; - font-stretch: normal; - font-style: normal; - line-height: normal; - letter-spacing: normal; +.arch .box-gauge { + width: 90px; + margin-right: 20px; +} +.arch .box-gauge div:last-of-type { + margin-top: -25px; + display: flex; + flex-direction: column; text-align: center; - margin-left: 20px ; - color: #002680; } -.arch .Potenza { - font-size: 14px; +.arch .box-gauge div:last-of-type label { + font-size: 13px; font-weight: normal; font-stretch: normal; font-style: normal; line-height: normal; letter-spacing: normal; text-align: center; - margin-left: -8px; color: #002680; } -.arch .Bar { - font-size: 9.7px; - font-weight: 500; - font-stretch: normal; - font-style: normal; - line-height: normal; - letter-spacing: normal; - text-align: center; - color: #002680; -} -.arch .Aria { - font-size: 10px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: normal; - letter-spacing: normal; - text-align: end; - color: #002680; -} -.arch .gauge-container { +.arch .box-gauge .gauge-container { width: 90px; height: 90px; display: block; - float: left; - margin: 56px; border-radius: 3px; - position: relative; - margin-top: 60px; - margin-left: -10px; } -.arch .label { - color: #002680; - font-size: 1.5em; - margin-left: 10px; -} -.arch .gauge-container > .gauge > .dial { +.arch .box-gauge .gauge-container > .gauge > .dial { stroke: #002680; stroke-width: 2; } -.arch .gauge-container > .gauge > .value { +.arch .box-gauge .gauge-container > .gauge > .value { stroke: #002680; stroke-width: 2; } -.arch .gauge-container > .gauge > .value-text { +.arch .box-gauge .gauge-container > .gauge > .value-text { color: #002680; font-weight: bold; - font-size: 3.9px; - margin-top: 10px; + font-size: 20px; } -.arch .gauge-container.three > .gauge > .dial { +.arch .box-gauge .gauge-container.three > .gauge > .dial { stroke: #bbbcbc; stroke-width: 4; } -.arch .gauge-container.three > .gauge > .value { +.arch .box-gauge .gauge-container.three > .gauge > .value { stroke: #002680; stroke-width: 5; } -.arch .gauge-container.three > .gauge > .value-text { +.arch .box-gauge .gauge-container.three > .gauge > .value-text { fill: #002680; } -.arch .labels { - display: flex; - flex-direction: column; - margin-left: 19px; - margin-top: -94px; -} .modal.avvio-produzione-info { margin-top: 100px; width: 653px; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.vue index c4d4c250..b01ea04d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.vue @@ -4,8 +4,8 @@
- Kw
+
@@ -13,8 +13,8 @@
- bar
+
@@ -22,8 +22,8 @@
- bar
+
From 3b1528fd07048104a9090226cfd0982d72052109 Mon Sep 17 00:00:00 2001 From: Damiano Date: Thu, 21 May 2020 16:02:54 +0200 Subject: [PATCH 124/167] fix modifies dashboard3 component --- .../assets/icons/svg/svg-dashboard3.svg | 28 +++++++++++-------- .../dashboard/dashboard.vue | 2 +- .../wwwroot/src/modules/app-header.vue | 12 ++++---- 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg index 78aeeb6b..cdc9b3f8 100644 --- a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg +++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg @@ -47,9 +47,9 @@ showgrid="false" inkscape:current-layer="layer1" inkscape:document-units="mm" - inkscape:cy="243.57596" - inkscape:cx="4261.8405" - inkscape:zoom="0.30578698" + inkscape:cy="235.71697" + inkscape:cx="185.11147" + inkscape:zoom="0.61157396" inkscape:pageshadow="2" inkscape:pageopacity="0.0" borderopacity="1.0" @@ -64,7 +64,7 @@ image/svg+xml - + @@ -76,22 +76,26 @@ + d="m 2.6796867,209.75995 c 45.8778903,31.47484 55.6982073,64.11699 60.4896563,81.97094 v 0" + style="fill:none;stroke:#0000ff;stroke-width:4.50324249;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="ccc" /> + d="m 60.286225,291.84561 c 230.166605,-1.6989 477.549405,0.0699 716.152025,0.0858" + style="fill:none;stroke:#0000ff;stroke-width:4.50324249;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="cc" /> + d="M 1.2648372,209.30108 773.37697,210.52857" + style="fill:none;stroke:#0000ff;stroke-width:4.51609039;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="cc" /> + d="M 50.469755,255.07729 C 34.402727,231.5433 44.486862,241.70781 9.4233305,211.58083 c 2.9536985,-0.0846 761.6017295,1.8089 762.7416295,2.90703 0.50422,0.48576 3.41186,57.0978 3.58501,70.41477 l 0.0587,4.54358 -355.17323,-0.27073 c -118.32192,-0.11851 -234.98642,-0.62709 -354.532001,0.55453 -0.01364,-0.0715 -1.233501,-0.58241 -1.233501,-0.58241 -2.667568,-10.86782 -8.687983,-24.85966 -8.687983,-24.85966 z" + style="fill:#b6d6f3;fill-rule:evenodd;stroke:none;stroke-width:8;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + sodipodi:nodetypes="cccccccscc" /> diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue index 3becf97e..c6d5a9fc 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue @@ -38,7 +38,7 @@
- +
diff --git a/Thermo.Active/wwwroot/src/modules/app-header.vue b/Thermo.Active/wwwroot/src/modules/app-header.vue index 53442e2f..ee8a1064 100644 --- a/Thermo.Active/wwwroot/src/modules/app-header.vue +++ b/Thermo.Active/wwwroot/src/modules/app-header.vue @@ -3,7 +3,7 @@ @@ -18,7 +18,7 @@ {{ p }} {{ alarms[0].process }} -
+
{{'header_maintainance_request' | localize('Effettuare manutenzione')}} @@ -76,17 +76,17 @@ :disabled="!state.resetAxesAlarm.clickable || checkSecurityDisabled('startupIcons')" v-if=" state.resetAxesAlarm && state.resetAxesAlarm.active" :title="'header_tooltip_zeroing' | localize('Make Zero Axes')" - + @click="manageClick(state.resetAxesAlarm)">
@@ -96,7 +96,7 @@
- + From 71e16325b96f740038269d74d93cdc6dab19fa46 Mon Sep 17 00:00:00 2001 From: Alessio Date: Fri, 22 May 2020 10:33:07 +0200 Subject: [PATCH 125/167] fix and add tastierino to other modals --- .../wwwroot/assets/icons/png/canc.png | Bin 2140 -> 5170 bytes .../wwwroot/assets/icons/png/submit.png | Bin 2384 -> 9739 bytes .../wwwroot/assets/styles/base/formato.less | 7 +++ .../wwwroot/assets/styles/base/pirometro.less | 10 ++-- .../assets/styles/base/quote-velocita.less | 6 +++ .../assets/styles/base/tastierino.less | 22 +++----- Thermo.Active/wwwroot/assets/styles/style.css | 51 ++++++++++-------- .../formato => }/components/tastierino.ts | 11 ++++ .../formato => }/components/tastierino.vue | 4 +- .../avvio-pruduzione/avvio-produzione.ts | 2 +- .../SVG_Components/controstampoSVG.ts | 12 +++++ .../SVG_Components/controstampoSVG.vue | 2 +- .../components/SVG_Components/corniceSVG.ts | 12 +++++ .../components/SVG_Components/corniceSVG.vue | 4 +- .../components/SVG_Components/lastraSVG.ts | 12 +++++ .../components/SVG_Components/lastraSVG.vue | 6 +-- .../components/SVG_Components/piastraSVG.ts | 12 +++++ .../components/SVG_Components/piastraSVG.vue | 4 +- .../components/SVG_Components/stampoSVG.ts | 36 ++++++++----- .../components/SVG_Components/stampoSVG.vue | 10 ++-- .../formato/components/show-formato-info.ts | 3 +- .../formato/components/show-formato-info.vue | 9 +++- .../SVG_Components/SVG-termo-superiore.ts | 11 ++++ .../SVG_Components/SVG-termo-superiore.vue | 10 ++-- .../base-components/termo-superiore.ts | 13 ++++- .../base-components/termo-superiore.vue | 4 +- .../SVG_Components/quote-velocita.ts | 11 +++- .../SVG_Components/quote-velocita.vue | 22 ++++---- .../components/SVG_Components/stampo.ts | 11 ++++ .../components/SVG_Components/stampo.vue | 26 ++++----- .../SVG_Components/svgcontrostampo.ts | 12 +++++ .../SVG_Components/svgcontrostampo.vue | 18 +++---- .../quote-velocita/components/controstampo.ts | 5 +- .../components/controstampo.vue | 2 + .../components/discesa-cornice.ts | 7 ++- .../components/discesa-cornice.vue | 4 +- .../components/salita-stampo.ts | 5 +- .../components/salita-stampo.vue | 2 + 38 files changed, 279 insertions(+), 119 deletions(-) rename Thermo.Active/wwwroot/src/app_modules_thermo/{setup/formato => }/components/tastierino.ts (54%) rename Thermo.Active/wwwroot/src/app_modules_thermo/{setup/formato => }/components/tastierino.vue (85%) diff --git a/Thermo.Active/wwwroot/assets/icons/png/canc.png b/Thermo.Active/wwwroot/assets/icons/png/canc.png index eb152e654d077054c60ff1aba8346102d7ba9bfe..28eead5a02e0993ea4eaaad374591350c9233710 100644 GIT binary patch delta 5167 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 diff --git a/Thermo.Active/wwwroot/assets/styles/base/formato.less b/Thermo.Active/wwwroot/assets/styles/base/formato.less index d3681086..2b8b10ef 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/formato.less +++ b/Thermo.Active/wwwroot/assets/styles/base/formato.less @@ -7,6 +7,13 @@ .@{modal}.formato-info { + section{ + .tast{ + margin-left: -300px; + } + } + + .radio-buttons{ display: flex; justify-content: flex-start; diff --git a/Thermo.Active/wwwroot/assets/styles/base/pirometro.less b/Thermo.Active/wwwroot/assets/styles/base/pirometro.less index acaa83b1..67c44202 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/pirometro.less +++ b/Thermo.Active/wwwroot/assets/styles/base/pirometro.less @@ -9,11 +9,15 @@ .@{modal}.pirometro-info { width: 1820px; height: 980px; - - section.body{ section{ + &.termo{ + .tast{ + margin-left: 400px; + } + } + .specific{ width: 470px; @{pirometro-margin}:37%; @@ -92,6 +96,4 @@ } - } - } \ 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..7b0e4412 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/quote-velocita.less +++ b/Thermo.Active/wwwroot/assets/styles/base/quote-velocita.less @@ -11,6 +11,12 @@ section{ + &.cornice{ + .tast{ + margin-left: 125px; + } + } + aside{ .box{ diff --git a/Thermo.Active/wwwroot/assets/styles/base/tastierino.less b/Thermo.Active/wwwroot/assets/styles/base/tastierino.less index 1709ee9f..dfe2eebe 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/tastierino.less +++ b/Thermo.Active/wwwroot/assets/styles/base/tastierino.less @@ -4,9 +4,11 @@ @import "fonts.less"; .tast{ - height: 261px; - width: 293px; + height: 262px; + width: 262px; background-color:@color-silver; + display: flex; + justify-content: center; .mask{ display: grid; @@ -14,7 +16,6 @@ grid-template-rows: repeat(4, 52px); grid-gap: 5px 8px; margin-top: 7%; - margin-left: 10%; button{ border:none; @@ -36,23 +37,16 @@ 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); - img{ - width: 30px; - height: 30px; - } - } .bCanc{ grid-column: 4/5; grid-row: 2/3; - - img{ - width: 30px; - height: 25px; - } + background-size : 52px; + background-image: url(/assets/icons/png/canc.png); } .b1{ diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 58e2ff40..846a56b7 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4505,56 +4505,59 @@ width: 1820px; height: 980px; } -.modal.pirometro-info section.body section .specific { +.modal.pirometro-info section.termo .tast { + margin-left: 400px; +} +.modal.pirometro-info section .specific { width: 470px; margin-left: 37%; } -.modal.pirometro-info section.body section .termospecific { +.modal.pirometro-info section .termospecific { margin-left: 0%; } -.modal.pirometro-info section.body section .termospecific .svg-area { +.modal.pirometro-info section .termospecific .svg-area { padding-left: 90px; width: 1270px; height: 800px; } -.modal.pirometro-info section.body section .termospecific .svg-area .disegnoTermoSuperiore { +.modal.pirometro-info section .termospecific .svg-area .disegnoTermoSuperiore { flex-shrink: 0; width: 1100px; height: 750px; } -.modal.pirometro-info section.body section .termospecific .svg-area .border-termo-superiore .circle1 { +.modal.pirometro-info section .termospecific .svg-area .border-termo-superiore .circle1 { position: relative; top: 135px; right: 1150px; } -.modal.pirometro-info section.body section .termospecific .svg-area .border-termo-superiore .circle2 { +.modal.pirometro-info section .termospecific .svg-area .border-termo-superiore .circle2 { position: relative; top: 355px; right: 1150px; } -.modal.pirometro-info section.body section .termospecific .svg-area .border-termo-superiore .circle3 { +.modal.pirometro-info section .termospecific .svg-area .border-termo-superiore .circle3 { position: relative; top: 425px; right: 1150px; } -.modal.pirometro-info section.body section .termospecific .svg-area .border-termo-superiore .circle4 { +.modal.pirometro-info section .termospecific .svg-area .border-termo-superiore .circle4 { position: relative; top: 470px; right: 635px; } -.modal.pirometro-info section.body section .termospecific .svg-area .border-termo-superiore .circle5 { +.modal.pirometro-info section .termospecific .svg-area .border-termo-superiore .circle5 { position: relative; top: 400px; right: 255px; } -.modal.pirometro-info section.body section .termospecific .svg-area .border-termo-superiore .circle6 { +.modal.pirometro-info section .termospecific .svg-area .border-termo-superiore .circle6 { width: 100px; background-color: #c03d58; position: relative; top: 87px; right: 150px; } -.modal.pirometro-info section.body section .termospecific button { +.modal.pirometro-info section .termospecific button { margin-left: 5px; width: 48px; height: 48px; @@ -4582,6 +4585,9 @@ width: 48px; height: 48px; } +.modal.formato-info section .tast { + margin-left: -300px; +} .modal.formato-info .radio-buttons { display: flex; justify-content: flex-start; @@ -4817,9 +4823,11 @@ margin: 16px; } .tast { - height: 261px; - width: 293px; + height: 262px; + width: 262px; background-color: #bbbcbc; + display: flex; + justify-content: center; } .tast .mask { display: grid; @@ -4827,7 +4835,6 @@ grid-template-rows: repeat(4, 52px); grid-gap: 5px 8px; margin-top: 7%; - margin-left: 10%; } .tast .mask button { border: none; @@ -4849,20 +4856,15 @@ 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); } -.tast .mask .submit img { - width: 30px; - height: 30px; -} .tast .mask .bCanc { grid-column: 0.8; grid-row: 0.66666667; -} -.tast .mask .bCanc img { - width: 30px; - height: 25px; + background-size: 52px; + background-image: url(/assets/icons/png/canc.png); } .tast .mask .b1 { grid-column: 0.5; @@ -5648,6 +5650,9 @@ body { 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; } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/tastierino.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts similarity index 54% rename from Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/tastierino.ts rename to Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts index 5fa9f015..4bcb3e27 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/tastierino.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts @@ -5,4 +5,15 @@ import Component from 'vue-class-component'; @Component({name:"tastierino"}) export default class Tastierino extends Vue{ + @Prop() + value: boolean; + + get showtast() { + return this.value; + } + + set showtast(v: boolean) { + this.$emit('input', v); + } + } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/tastierino.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue similarity index 85% rename from Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/tastierino.vue rename to Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue index a404b798..eb6bb59a 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/tastierino.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue @@ -8,11 +8,11 @@ - + - +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts index 2f75755a..1cfadf26 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts @@ -4,7 +4,7 @@ import { Factory, messageService, awaiter } from "@/_base"; import Component from "vue-class-component"; import { Prop } from 'vue-property-decorator'; import ToggleButton from "@/components/toggleButton.vue"; -import Tastierino from "@/app_modules_thermo/setup/formato/components/tastierino.vue"; +import Tastierino from "@/app_modules_thermo/components/tastierino.vue"; import {appModelActions} from "@/store/app.store"; @Component({ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts index 003251b8..563c41cb 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts @@ -4,6 +4,18 @@ import {Prop} from 'vue-property-decorator'; @Component({}) export default class ControstampoSVG extends Vue{ + + @Prop() + value: boolean; + + get showtast() { + return this.value; + } + + set showtast(v: boolean) { + this.$emit('input', v); + } + @Prop({default:0}) alt:Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue index 8a7a52f7..d5c6e728 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue @@ -4,7 +4,7 @@
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts index 39ac82f1..ddf872e5 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts @@ -4,6 +4,18 @@ import {Prop} from 'vue-property-decorator'; @Component({}) export default class CorniceSVG extends Vue{ + + @Prop() + value: boolean; + + get showtast() { + return this.value; + } + + set showtast(v: boolean) { + this.$emit('input', v); + } + @Prop({default:0}) x:Recipe.IValue; @Prop({default:0}) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue index 8fb8982e..b3f569bf 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue @@ -4,12 +4,12 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts index 3a219b9f..eeed06c1 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts @@ -4,6 +4,18 @@ import {Prop} from 'vue-property-decorator'; @Component({}) export default class LastraSVG extends Vue{ + + @Prop() + value: boolean; + + get showtast() { + return this.value; + } + + set showtast(v: boolean) { + this.$emit('input', v); + } + @Prop({default:0}) x:Recipe.IValue; @Prop({default:0}) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue index 30e54709..bf6ff682 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue @@ -4,17 +4,17 @@
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts index a34fdfb0..570047a0 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts @@ -4,6 +4,18 @@ import {Prop} from 'vue-property-decorator'; @Component({}) export default class PiastraSVG extends Vue{ + + @Prop() + value: boolean; + + get showtast() { + return this.value; + } + + set showtast(v: boolean) { + this.$emit('input', v); + } + @Prop({default:0}) x:Recipe.IValue; @Prop({default:0}) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue index f97eaadb..64ddc681 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue @@ -4,12 +4,12 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts index b8d77cc4..4816e78f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts @@ -1,17 +1,29 @@ 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 StampoSVG extends Vue{ - @Prop({default:0}) - x:Recipe.IValue; - @Prop({default:0}) - y:Recipe.IValue; - @Prop({default:0}) - alt:number; - @Prop({default:0}) - altB:Recipe.IValue; - @Prop({default:0}) - stampoNeg:number; +export default class StampoSVG extends Vue { + + @Prop() + value: boolean; + + get showtast() { + return this.value; + } + + set showtast(v: boolean) { + this.$emit('input', v); + } + + @Prop({ default: 0 }) + x: Recipe.IValue; + @Prop({ default: 0 }) + y: Recipe.IValue; + @Prop({ default: 0 }) + alt: number; + @Prop({ default: 0 }) + altB: Recipe.IValue; + @Prop({ default: 0 }) + stampoNeg: number; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue index 0dbf4b78..79a0ce6f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue @@ -4,27 +4,27 @@
- +
- +
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts index 13849c1f..bbb9fb20 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts @@ -8,7 +8,7 @@ import Lastra from "./lastra.vue"; import Piastra from "./piastra_riduzione.vue"; import Cornice from "./cornice.vue"; import Controstampo from "./controstampo.vue"; -import Tastierino from "./tastierino.vue"; +import Tastierino from "@/app_modules_thermo/components/tastierino.vue"; import StampoSVG from "./SVG_Components/stampoSVG.vue"; import LastraSVG from "./SVG_Components/lastraSVG.vue"; import PiastraSVG from "./SVG_Components/piastraSVG.vue"; @@ -39,6 +39,7 @@ export default class ShowFormatoInfo extends Vue { recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); show:string="placeholder"; + showtast:boolean=false; @Prop({default:0}) stamponeg:number; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue index 9a8fe8f5..16662483 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue @@ -43,6 +43,7 @@
-
@@ -94,7 +99,7 @@ />
- +
+ From 2237e78dd0297e815d68010357aef1a0d411fc97 Mon Sep 17 00:00:00 2001 From: Alessio Date: Fri, 22 May 2020 13:01:09 +0200 Subject: [PATCH 126/167] fix call for tastierino and add prop for value --- .../components/tastierino.ts | 7 ++-- .../components/tastierino.vue | 2 +- .../SVG_Components/controstampoSVG.ts | 4 +-- .../SVG_Components/controstampoSVG.vue | 4 +-- .../components/SVG_Components/corniceSVG.ts | 4 +-- .../components/SVG_Components/corniceSVG.vue | 8 ++--- .../components/SVG_Components/lastraSVG.ts | 4 +-- .../components/SVG_Components/lastraSVG.vue | 12 +++---- .../components/SVG_Components/piastraSVG.ts | 4 +-- .../components/SVG_Components/piastraSVG.vue | 8 ++--- .../components/SVG_Components/stampoSVG.ts | 4 +-- .../components/SVG_Components/stampoSVG.vue | 20 +++++------ .../formato/components/show-formato-info.ts | 26 +++++++++++++- .../formato/components/show-formato-info.vue | 4 ++- .../SVG_Components/SVG-termo-superiore.ts | 4 +-- .../SVG_Components/SVG-termo-superiore.vue | 20 +++++------ .../base-components/termo-superiore.ts | 18 +++++++++- .../base-components/termo-superiore.vue | 2 +- .../SVG_Components/quote-velocita.ts | 4 +-- .../SVG_Components/quote-velocita.vue | 30 ++++++++-------- .../components/SVG_Components/stampo.ts | 4 +-- .../components/SVG_Components/stampo.vue | 34 +++++++++---------- .../SVG_Components/svgcontrostampo.ts | 4 +-- .../SVG_Components/svgcontrostampo.vue | 16 ++++----- .../quote-velocita/components/controstampo.ts | 15 +++++++- .../components/controstampo.vue | 2 +- .../components/discesa-cornice.ts | 15 +++++++- .../components/discesa-cornice.vue | 2 +- .../components/salita-stampo.ts | 17 +++++++++- .../components/salita-stampo.vue | 2 +- 30 files changed, 193 insertions(+), 107 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts index 4bcb3e27..f3d22605 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts @@ -6,13 +6,16 @@ import Component from 'vue-class-component'; export default class Tastierino extends Vue{ @Prop() - value: boolean; + actualValue:Recipe.IValue; + + @Prop() + value: string; get showtast() { return this.value; } - set showtast(v: boolean) { + set showtast(v: string) { this.$emit('input', v); } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue index eb6bb59a..eecb29fd 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue @@ -12,7 +12,7 @@ - +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts index 563c41cb..c68e014c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts @@ -6,13 +6,13 @@ import {Prop} from 'vue-property-decorator'; export default class ControstampoSVG extends Vue{ @Prop() - value: boolean; + value: string; get showtast() { return this.value; } - set showtast(v: boolean) { + set showtast(v: string) { this.$emit('input', v); } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue index d5c6e728..308ccfcf 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue @@ -2,9 +2,9 @@
-
+
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts index ddf872e5..a20dbade 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts @@ -6,13 +6,13 @@ import {Prop} from 'vue-property-decorator'; export default class CorniceSVG extends Vue{ @Prop() - value: boolean; + value: string; get showtast() { return this.value; } - set showtast(v: boolean) { + set showtast(v: string) { this.$emit('input', v); } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue index b3f569bf..ae02d4bc 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue @@ -2,14 +2,14 @@
-
+
- +
-
+
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts index eeed06c1..39f975ce 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts @@ -6,13 +6,13 @@ import {Prop} from 'vue-property-decorator'; export default class LastraSVG extends Vue{ @Prop() - value: boolean; + value: string; get showtast() { return this.value; } - set showtast(v: boolean) { + set showtast(v: string) { this.$emit('input', v); } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue index bf6ff682..1d29f719 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue @@ -2,19 +2,19 @@
-
+
- +
-
+
- +
-
+
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts index 570047a0..802d5fdd 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts @@ -6,13 +6,13 @@ import {Prop} from 'vue-property-decorator'; export default class PiastraSVG extends Vue{ @Prop() - value: boolean; + value: string; get showtast() { return this.value; } - set showtast(v: boolean) { + set showtast(v: string) { this.$emit('input', v); } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue index 64ddc681..58cafa7c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue @@ -2,14 +2,14 @@
-
+
- +
-
+
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts index 4816e78f..0d31b330 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts @@ -6,13 +6,13 @@ import { Prop } from 'vue-property-decorator'; export default class StampoSVG extends Vue { @Prop() - value: boolean; + value: string; get showtast() { return this.value; } - set showtast(v: boolean) { + set showtast(v: string) { this.$emit('input', v); } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue index 79a0ce6f..64cb5ec6 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue @@ -2,29 +2,29 @@
-
+
- +
-
+
- +
-
+
- +
-
+
- +
-
+
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts index bbb9fb20..134bb1f4 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts @@ -39,13 +39,37 @@ export default class ShowFormatoInfo extends Vue { recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); show:string="placeholder"; - showtast:boolean=false; + showtast:string=''; + @Prop({default:0}) stamponeg:number; @Prop({default:0}) altezza:number; + get TastActualValue(): Recipe.IValue{ + if(!this.showtast) + return null; + + switch (this.showtast) { + case 'stampo-x': return this.recipe.general_sizes_mould_dim_x; + case 'stampo-y': return this.recipe.general_sizes_mould_dim_y; + // case 'stampo-alt': return this.altezza; + // case 'stampo-stamponeg': return this.stamponeg; + case 'stampo-altB': return this.recipe.general_sizes_mould_base_height; + case 'piastra-y': return this.recipe.general_sizes_plate_dim_y; + case 'piastra-x': return this.recipe.general_sizes_plate_dim_x; + case 'lastra-spes': return this.recipe.general_sizes_sheet_thickness; + case 'lastra-x': return this.recipe.general_sizes_sheet_dim_x; + case 'lastra-y': return this.recipe.general_sizes_sheet_dim_y; + case 'cornice-x': return this.recipe.general_sizes_frame_dim_x; + case 'cornice-y': return this.recipe.general_sizes_frame_dim_y; + case 'controstampo-alt': return this.recipe.general_sizes_upperplate_max_height; + default: + return null; + } + } + annulla(){ ModalHelper.HideModal(); }; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue index 16662483..1e63384c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue @@ -99,7 +99,9 @@ />
- +
- + 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 e1a16e1c..47ed2dc0 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 @@ -6,13 +6,13 @@ import {Prop} from 'vue-property-decorator'; export default class QuoteVelocita extends Vue{ @Prop() - value: boolean; + value: string; get showtast() { return this.value; } - set showtast(v: boolean) { + set showtast(v: string) { this.$emit('input', v); } 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 fadf194d..a7431174 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 @@ -3,69 +3,69 @@
-
+
- +
-
+
- +
-
+
- +
-
+
- +
- +
- +
- +
- +
- +
- +
- +
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 f6056c10..67baa7c4 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 @@ -6,13 +6,13 @@ import {Prop} from 'vue-property-decorator'; export default class QuoteVelocita extends Vue{ @Prop() - value: boolean; + value: string; get showtast() { return this.value; } - set showtast(v: boolean) { + set showtast(v: string) { this.$emit('input', v); } 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 704c590b..f36dee88 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 @@ -3,85 +3,85 @@
-
+
- +
-
+
- +
-
+
- +
-
+
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
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 ed76e788..e3bbfbc1 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 @@ -6,13 +6,13 @@ import {Prop} from 'vue-property-decorator'; export default class Controstamposvg extends Vue{ @Prop() - value: boolean; + value: string; get showtast() { return this.value; } - set showtast(v: boolean) { + set showtast(v: string) { this.$emit('input', v); } 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 30194a18..f219ce72 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 @@ -27,26 +27,26 @@ e 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 284d0890..e1c8bc70 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 @@ -8,7 +8,20 @@ import Tastierino from "@/app_modules_thermo/components/tastierino.vue"; @Component({name:"discesacornice", components:{quoteVelocitaSVG: QuoteVelocitaSVG,slider:Slider,tastierino:Tastierino}}) export default class DiscesaCornice extends Vue { - showtast:boolean=false; + showtast:string=''; + + get TastActualValue(): Recipe.IValue{ + if(!this.showtast) + return null; + + switch (this.showtast) { + case 'quote-corsa': return this.recipe.positions_frame_upper_position; + case 'quote-velsalita': return this.recipe.positions_frame_upper_speed; + + default: + return null; + } + } @Prop() recipe:Recipe.IRecipe; 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 66ec8f0a..1845e06c 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 @@ -67,7 +67,7 @@
- + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.ts index 798ac411..f67d5f97 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.ts @@ -11,7 +11,22 @@ export default class DiscesaCornice extends Vue { @Prop({default:0}) ritardo:number; - showtast:boolean=false; + showtast:string=''; + + get TastActualValue(): Recipe.IValue{ + if(!this.showtast) + return null; + + switch (this.showtast) { + case 'stampo-rallsalita': return this.recipe.positions_mould_upperdeceleration_position; + case 'stampo-velsalitalenta': return this.recipe.positions_mould_upperdeceleration_speed; + case 'stampo-corsa': return this.recipe.positions_mould_upper_position; + case 'stampo-velsalita': return this.recipe.positions_mould_upper_speed; + + default: + return null; + } + } mock_ritardo:number=this.ritardo; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue index 86107487..419cbc71 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue @@ -79,7 +79,7 @@
- + From 2c578a7944a25fefacde95ff46f18a423b541157 Mon Sep 17 00:00:00 2001 From: Alessio Date: Fri, 22 May 2020 15:15:44 +0200 Subject: [PATCH 127/167] add function to tastierino --- .../components/tastierino.ts | 30 +++++++++++++++++++ .../components/tastierino.vue | 26 ++++++++-------- 2 files changed, 43 insertions(+), 13 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts index f3d22605..d6109d35 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts @@ -8,6 +8,9 @@ export default class Tastierino extends Vue{ @Prop() actualValue:Recipe.IValue; + temp:string; + point:string; + @Prop() value: string; @@ -19,4 +22,31 @@ export default class Tastierino extends Vue{ this.$emit('input', v); } + del(){ + this.actualValue.valueAct=0; + } + + canc(){ + this.temp=String(this.actualValue.valueAct); + this.actualValue.valueAct=Number(this.temp.slice(0,-1)) + } + + add(num:string){ + if(this.point){ + this.point+=num; + this.actualValue.valueAct=Number(this.point) + }else{ + this.temp=String(this.actualValue.valueAct); + this.temp+=num; + this.actualValue.valueAct=Number(this.temp) + } + } + + addpoint(){ + if(!this.point){ + this.point=String(this.actualValue.valueAct); + this.point+="."; + } + } + } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue index eecb29fd..83bc7eb6 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue @@ -1,20 +1,20 @@ From 99ea0958cd6828581c5efdbff50cab28211d9131 Mon Sep 17 00:00:00 2001 From: Alessio Date: Fri, 22 May 2020 15:47:25 +0200 Subject: [PATCH 128/167] fix input tag --- .../src/app_modules_thermo/components/scheda.vue | 4 ++-- .../base-components/formatura-cristallizzazione.vue | 2 +- .../components/base-components/formatura-riscaldo.vue | 2 +- .../components/base-components/aria-controstampo.vue | 4 ++-- .../components/base-components/ciclo-controstampo.vue | 4 ++-- .../base-components/estrazione-principale.vue | 2 +- .../setup/formato/components/controstampo.vue | 2 +- .../setup/formato/components/cornice.vue | 4 ++-- .../setup/formato/components/lastra.vue | 6 +++--- .../setup/formato/components/piastra_riduzione.vue | 4 ++-- .../setup/formato/components/stampo.vue | 10 +++++----- .../setup/imbutitura/show-imbutitura-info.vue | 8 ++++---- .../components/base-components/inputSottosquadra.vue | 6 +++--- .../opzioni/components/base-components/inputTermo.vue | 2 +- .../pirometro/components/base-components/pirometro.vue | 4 ++-- .../components/base-components/termo-superiore.vue | 10 +++++----- .../setup/quote-velocita/components/controstampo.vue | 10 +++++----- .../quote-velocita/components/discesa-cornice.vue | 10 +++++----- .../setup/quote-velocita/components/salita-stampo.vue | 10 +++++----- .../components/base-components/ventilatori.vue | 4 ++-- .../components/base-components/riscaldi-superiori.vue | 4 ++-- .../base-components/sostentamento-decompressione.vue | 4 ++-- .../setup/vuoto/base-components/vuoto-principale.vue | 6 +++--- 23 files changed, 61 insertions(+), 61 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue index 70618a3f..e0a5c506 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue @@ -3,12 +3,12 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue index 8373bfce..5e098914 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue @@ -10,7 +10,7 @@
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue index a327e1ad..1548a11b 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue @@ -11,7 +11,7 @@
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
@@ -18,7 +18,7 @@
- +
- +
- +
- +
- +
@@ -18,7 +18,7 @@
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue index 99947634..920f72b8 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue @@ -9,7 +9,7 @@
- +
- +
- + - +
- +
Date: Fri, 22 May 2020 16:29:16 +0200 Subject: [PATCH 129/167] Svg modifies dashboard --- .../assets/icons/svg/svg-dashboard.svg | 23 ++++++++++--------- .../assets/icons/svg/svg-dashboard2.svg | 21 +++++++++-------- .../assets/icons/svg/svg-dashboard3.svg | 16 ++++++------- .../wwwroot/assets/styles/base/dashboard.less | 2 +- Thermo.Active/wwwroot/assets/styles/style.css | 2 +- 5 files changed, 33 insertions(+), 31 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg index 9782e8ea..1dfadf6e 100644 --- a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg +++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg @@ -9,9 +9,9 @@ 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="549mm" - height="175mm" - viewBox="0 0 549 175" + width="659mm" + height="265mm" + viewBox="0 0 659 265" version="1.1" id="svg837" inkscape:version="0.92.4 (5da689c313, 2019-01-14)" @@ -25,9 +25,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="0.49497475" - inkscape:cx="1137.5785" - inkscape:cy="553.18711" + inkscape:zoom="0.24748738" + inkscape:cx="665.46468" + inkscape:cy="524.82402" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" @@ -44,7 +44,7 @@ image/svg+xml - + @@ -52,11 +52,12 @@ inkscape:label="Livello 1" inkscape:groupmode="layer" id="layer1" - transform="translate(0,-122)"> + transform="translate(0,-32)"> + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccsccccccccccccscc" /> diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg index a3161320..165ac092 100644 --- a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg +++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg @@ -9,9 +9,9 @@ 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="558mm" - height="184mm" - viewBox="0 0 558 184" + width="1175mm" + height="395mm" + viewBox="0 0 1175 395" version="1.1" id="svg860" inkscape:version="0.92.4 (5da689c313, 2019-01-14)" @@ -86,9 +86,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="0.49497476" - inkscape:cx="1117.5973" - inkscape:cy="199.82812" + inkscape:zoom="0.12374369" + inkscape:cx="1462.6088" + inkscape:cy="518.4563" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" @@ -113,11 +113,12 @@ inkscape:label="Livello 1" inkscape:groupmode="layer" id="layer1" - transform="translate(0,-113)"> + transform="translate(0,98)"> + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccsccccccccccccscc" /> diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg index cdc9b3f8..f4cf3386 100644 --- a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg +++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg @@ -47,9 +47,9 @@ showgrid="false" inkscape:current-layer="layer1" inkscape:document-units="mm" - inkscape:cy="235.71697" - inkscape:cx="185.11147" - inkscape:zoom="0.61157396" + inkscape:cy="277.12757" + inkscape:cx="581.66684" + inkscape:zoom="1.2231479" inkscape:pageshadow="2" inkscape:pageopacity="0.0" borderopacity="1.0" @@ -77,25 +77,25 @@ inkscape:connector-curvature="0" id="path844" d="m 2.6796867,209.75995 c 45.8778903,31.47484 55.6982073,64.11699 60.4896563,81.97094 v 0" - style="fill:none;stroke:#0000ff;stroke-width:4.50324249;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;stroke:#0000ff;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" sodipodi:nodetypes="ccc" /> diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index 41b2aebf..4af95d2b 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -51,7 +51,7 @@ .box-gauge { height: 150px; - width : 126px; + width : 150px; .gauge-container,.three { width : 126px; diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 58e2ff40..64f4c7d9 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4218,7 +4218,7 @@ } .dashboard .header .arch .box-gauge { height: 150px; - width: 126px; + width: 150px; } .dashboard .header .arch .box-gauge .gauge-container, .dashboard .header .arch .box-gauge .three { From 302456b21b91dedab584a229385f1ef98774a71c Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 22 May 2020 18:23:25 +0200 Subject: [PATCH 130/167] Vari update x testing client/server --- Libs/System.Windows.Interactivity.dll | Bin 0 -> 55904 bytes Thermo.Active/App.config | 226 ++++++++++++++-------- Thermo.Active/App_Start/Startup.cs | 10 +- Thermo.Active/Thermo.Active.csproj | 8 + Thermo.Active/wwwroot/index.html | 2 +- Thermo.Active/wwwroot/src/main.ts | 7 +- Thermo.Active/wwwroot/src/services/hub.ts | 58 +++--- 7 files changed, 200 insertions(+), 111 deletions(-) create mode 100644 Libs/System.Windows.Interactivity.dll diff --git a/Libs/System.Windows.Interactivity.dll b/Libs/System.Windows.Interactivity.dll new file mode 100644 index 0000000000000000000000000000000000000000..931c744c87a5bafbfa9471ee90b082c752b12dfc GIT binary patch literal 55904 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 icF~$l7!ZGY?^C - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Thermo.Active/App_Start/Startup.cs b/Thermo.Active/App_Start/Startup.cs index 12991bdc..29d585b8 100644 --- a/Thermo.Active/App_Start/Startup.cs +++ b/Thermo.Active/App_Start/Startup.cs @@ -107,11 +107,11 @@ namespace Thermo.Active.App_Start { map.UseCors(CorsOptions.AllowAll); - map.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions() - { - Provider = new SignalROAuthBearerProvider(), - AuthenticationType = AUTHENTICATION_TYPE - }); + //map.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions() + //{ + // Provider = new SignalROAuthBearerProvider(), + // AuthenticationType = AUTHENTICATION_TYPE + //}); var hubConfiguration = new HubConfiguration { Resolver = GlobalHost.DependencyResolver, diff --git a/Thermo.Active/Thermo.Active.csproj b/Thermo.Active/Thermo.Active.csproj index f2f75143..3677d1d4 100644 --- a/Thermo.Active/Thermo.Active.csproj +++ b/Thermo.Active/Thermo.Active.csproj @@ -119,6 +119,8 @@ ..\packages\Owin.1.0\lib\net40\Owin.dll + + ..\packages\Swashbuckle.Core.5.6.0\lib\net40\Swashbuckle.Core.dll @@ -163,6 +165,10 @@ ..\packages\Microsoft.AspNet.WebPages.2.0.20505.0\lib\net40\System.Web.WebPages.Razor.dll + + ..\Libs\System.Windows.Interactivity.dll + + @@ -204,6 +210,7 @@ ..\packages\Microsoft.AspNet.WebPages.WebData.2.0.20505.0\lib\net40\WebMatrix.WebData.dll + @@ -16427,6 +16434,7 @@ + diff --git a/Thermo.Active/wwwroot/index.html b/Thermo.Active/wwwroot/index.html index f1b8ee9e..fdd93267 100644 --- a/Thermo.Active/wwwroot/index.html +++ b/Thermo.Active/wwwroot/index.html @@ -13,7 +13,7 @@ - + diff --git a/Thermo.Active/wwwroot/src/main.ts b/Thermo.Active/wwwroot/src/main.ts index d5592f39..95e26e10 100644 --- a/Thermo.Active/wwwroot/src/main.ts +++ b/Thermo.Active/wwwroot/src/main.ts @@ -88,7 +88,12 @@ 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({ diff --git a/Thermo.Active/wwwroot/src/services/hub.ts b/Thermo.Active/wwwroot/src/services/hub.ts index d8cfa95d..391dd772 100644 --- a/Thermo.Active/wwwroot/src/services/hub.ts +++ b/Thermo.Active/wwwroot/src/services/hub.ts @@ -70,27 +70,29 @@ export class Hub { try { $.connection.ncHub.logging = true; } catch{ } // Registro le callback; - this._hub.client.alarms = this.manageAlarmsCallbacks; + // this._hub.client.alarms = this.manageAlarmsCallbacks; this._hub.client.powerOn = this.managePowerCallbacks; - this._hub.client.ncNetworkStatus = Hub.manageNcStatus; - this._hub.client.processesData = Hub.manageProcesses; - this._hub.client.functionalityData = Hub.functionalityData; - this._hub.client.expiredMaintenances = Hub.expiredMaintenances; + // this._hub.client.ncNetworkStatus = Hub.manageNcStatus; + // this._hub.client.processesData = Hub.manageProcesses; + // this._hub.client.functionalityData = Hub.functionalityData; + // this._hub.client.expiredMaintenances = Hub.expiredMaintenances; - this._hub.client.ncSoftKeys = Hub.ncSoftKeyChanged; - this._hub.client.userSoftKeys = Hub.userSoftKeyChanged; - this._hub.client.headsData = Hub.headsDataChanged; - this._hub.client.processesData = Hub.processDataChanged; - this._hub.client.axesNames = Hub.axesNamesDataChanged; - this._hub.client.axesPositions = Hub.axesPositionsDataChanged; - this._hub.client.magazinesStatus = Hub.magazineStatusChanged; - this._hub.client.activeProgramData = Hub.activeProgramData; - this._hub.client.magazineIsActive = Hub.magazineIsActive; - this._hub.client.m155Data = Hub.m155Data; - this._hub.client.partProgramQueue = Hub.partProgramQueue; + // this._hub.client.ncSoftKeys = Hub.ncSoftKeyChanged; + // this._hub.client.userSoftKeys = Hub.userSoftKeyChanged; + // this._hub.client.headsData = Hub.headsDataChanged; + // this._hub.client.processesData = Hub.processDataChanged; + // this._hub.client.axesNames = Hub.axesNamesDataChanged; + // this._hub.client.axesPositions = Hub.axesPositionsDataChanged; + // this._hub.client.magazinesStatus = Hub.magazineStatusChanged; + // this._hub.client.activeProgramData = Hub.activeProgramData; + // this._hub.client.magazineIsActive = Hub.magazineIsActive; + // this._hub.client.m155Data = Hub.m155Data; + // this._hub.client.partProgramQueue = Hub.partProgramQueue; - this._hub.client.scadaData = Hub.scadaDataChanged; - this._hub.client.cmsConnectGatewayRebbot = Hub.cmsConnectGatewayRebbot; + // this._hub.client.scadaData = Hub.scadaDataChanged; + // this._hub.client.cmsConnectGatewayRebbot = Hub.cmsConnectGatewayRebbot; + + // sottoscrivere qui i metodi NUOVI dal server (Recipe, gauges) this._hub.client.logout = this.logout; @@ -108,15 +110,15 @@ export class Hub { $.connection.hub.start({ transport: ['serverSentEvents'] }); }, 5000); // Restart connection after 5 seconds. }); - $.connection.hub.stateChanged(async (state) => { - if (state.newState == $.signalR.connectionState.connected) { - try { - await scadaService.ListScada(); - } - catch (err) { } - Hub.manageServerStatus("connected"); - } - }) + // $.connection.hub.stateChanged(async (state) => { + // if (state.newState == $.signalR.connectionState.connected) { + // try { + // await scadaService.ListScada(); + // } + // catch (err) { } + // Hub.manageServerStatus("connected"); + // } + // }) $.connection.hub.start({ transport: ['serverSentEvents'] }); @@ -428,6 +430,8 @@ export class Hub { }); } + // mettere qui metodo x pubblicare su server + public RefreshAlarm(id: string) { this._hub.server.refreshAlarm(id) .catch((err) => { From f3b30281673e0db647540d061fd64e8ffb7ad1f9 Mon Sep 17 00:00:00 2001 From: Alessio Date: Mon, 25 May 2020 16:28:24 +0200 Subject: [PATCH 131/167] fix gauge positioning and dimensions --- .../assets/icons/svg/svg-dashboard.svg | 18 +++---- .../assets/icons/svg/svg-dashboard2.svg | 10 ++-- .../assets/icons/svg/svg-dashboard3.svg | 28 +++++------ .../wwwroot/assets/styles/base/dashboard.less | 1 - .../assets/styles/base/graph-dashboard.less | 48 +++++++++++-------- Thermo.Active/wwwroot/assets/styles/style.css | 37 +++++++------- .../dashboard/dashboard.vue | 2 +- 7 files changed, 75 insertions(+), 69 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg index 1dfadf6e..687e52b5 100644 --- a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg +++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard.svg @@ -9,9 +9,9 @@ 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="659mm" - height="265mm" - viewBox="0 0 659 265" + width="1210mm" + height="395mm" + viewBox="0 0 1210 395" version="1.1" id="svg837" inkscape:version="0.92.4 (5da689c313, 2019-01-14)" @@ -25,9 +25,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="0.24748738" - inkscape:cx="665.46468" - inkscape:cy="524.82402" + inkscape:zoom="0.175" + inkscape:cx="2014.3602" + inkscape:cy="807.48659" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" @@ -52,10 +52,10 @@ inkscape:label="Livello 1" inkscape:groupmode="layer" id="layer1" - transform="translate(0,-32)"> + transform="translate(0,98)"> diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg index 165ac092..dae661a9 100644 --- a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg +++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard2.svg @@ -9,9 +9,9 @@ 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="1175mm" + width="1206mm" height="395mm" - viewBox="0 0 1175 395" + viewBox="0 0 1206 395" version="1.1" id="svg860" inkscape:version="0.92.4 (5da689c313, 2019-01-14)" @@ -87,7 +87,7 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.12374369" - inkscape:cx="1462.6088" + inkscape:cx="-141.5134" inkscape:cy="518.4563" inkscape:document-units="mm" inkscape:current-layer="layer1" @@ -115,8 +115,8 @@ id="layer1" transform="translate(0,98)"> diff --git a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg index f4cf3386..b6970a13 100644 --- a/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg +++ b/Thermo.Active/wwwroot/assets/icons/svg/svg-dashboard3.svg @@ -11,9 +11,9 @@ inkscape:version="0.92.4 (5da689c313, 2019-01-14)" id="svg2161" version="1.1" - viewBox="0 0 756 94" + viewBox="0 0 920 94" height="94mm" - width="756mm"> + width="920mm"> image/svg+xml - + @@ -76,26 +76,26 @@ diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index 4af95d2b..20c02f3e 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -2,7 +2,6 @@ @import "grid-system.less"; @import "colors.less"; @import "fonts.less"; -@modal: modal; .dashboard { diff --git a/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less index 7afd3f14..0f906139 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/graph-dashboard.less @@ -1,6 +1,12 @@ // 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; @@ -14,10 +20,11 @@ justify-content : center; &.dashboard3 { + margin-left: -150px; margin-bottom : 250px; height : 100px; - width : 756px; - background-size : 756px; + width : 900px; + background-size : 900px; background-image: url(/assets/icons/svg/svg-dashboard3.svg); label { @@ -39,6 +46,8 @@ flex-direction : column; justify-content: center; height : 100%; + margin-top: 200px; + margin-right: -150px; .svg-dashboard { @@ -84,7 +93,7 @@ .box-time-passed { height : 117px; - margin : 30px 0px; + margin : 40px 0px; text-align : center; display : flex; justify-content: center; @@ -107,38 +116,35 @@ } .box-circle-piece { + margin-top: 200px; display : flex; align-items: center; position : relative; - height : 610px; - width : 610px; + height : @gauge-h; + width : @gauge-w; hr { + margin : auto; height : 5px; - width : 320px; + width : calc(@gauge-w/2); background-color: gray; z-index : 1; border : none; } .gauge-container-dashboard { - width : 610px; - height : 610px; - border-radius : 5px; - position : absolute; - flex-direction : column; - justify-content: center; - align-items : center; - display : flex; - top : calc(~"50% - 305px"); - left : calc(~"50% - 305px"); - + 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 : 580px; - height: 580px; - left : calc(~"50% - 290px"); - top : calc(~"50% - 290px"); + width : @smallgauge-w; + height: @smallgauge-h; + top : calc(~"50%" - (@smallgauge-h/2)); + left : calc(~"50%" - (@smallgauge-w/2)); .gauge { .dial { diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 64f4c7d9..a8c9a527 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4050,10 +4050,11 @@ justify-content: center; } .box-graph-dashboard .svg-dashboard.dashboard3 { + margin-left: -150px; margin-bottom: 250px; height: 100px; - width: 756px; - background-size: 756px; + width: 900px; + background-size: 900px; background-image: url(/assets/icons/svg/svg-dashboard3.svg); } .box-graph-dashboard .svg-dashboard.dashboard3 label { @@ -4072,6 +4073,8 @@ 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; @@ -4109,7 +4112,7 @@ } .box-graph-dashboard .time-box .box-time-passed { height: 117px; - margin: 30px 0px; + margin: 40px 0px; text-align: center; display: flex; justify-content: center; @@ -4122,36 +4125,34 @@ font-size: 54px; } .box-graph-dashboard .box-circle-piece { + margin-top: 200px; display: flex; align-items: center; position: relative; - height: 610px; - width: 610px; + height: 800px; + width: 800px; } .box-graph-dashboard .box-circle-piece hr { + margin: auto; height: 5px; - width: 320px; + width: calc(800px/2); background-color: gray; z-index: 1; border: none; } .box-graph-dashboard .box-circle-piece .gauge-container-dashboard { - width: 610px; - height: 610px; + width: 800px; + height: 800px; border-radius: 5px; position: absolute; - flex-direction: column; - justify-content: center; - align-items: center; - display: flex; - top: calc(50% - 305px); - left: calc(50% - 305px); + top: calc(50% - (800px/2)); + left: calc(50% - (800px/2)); } .box-graph-dashboard .box-circle-piece .gauge-container-dashboard.gauge1 { - width: 580px; - height: 580px; - left: calc(50% - 290px); - top: calc(50% - 290px); + 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; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue index c6d5a9fc..0891ab93 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/dashboard.vue @@ -38,7 +38,7 @@ - +
From 15328983299a7cf2a2977735dae7c0e35e8a3aba Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 26 May 2020 13:01:37 +0200 Subject: [PATCH 132/167] Fix client/server for Signal-r, test OK! --- Thermo.Active/App_Start/Startup.cs | 14 ++--- .../Listeners/SignalR/SignalRListener.cs | 4 +- Thermo.Active/wwwroot/index.html | 2 +- Thermo.Active/wwwroot/src/services/hub.ts | 54 ++++++++++++------- 4 files changed, 45 insertions(+), 29 deletions(-) diff --git a/Thermo.Active/App_Start/Startup.cs b/Thermo.Active/App_Start/Startup.cs index 29d585b8..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,12 +106,12 @@ namespace Thermo.Active.App_Start app.Map("/signalr", map => { map.UseCors(CorsOptions.AllowAll); - - //map.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions() - //{ - // Provider = new SignalROAuthBearerProvider(), - // AuthenticationType = AUTHENTICATION_TYPE - //}); + + map.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions() + { + Provider = new SignalROAuthBearerProvider(), + AuthenticationType = AUTHENTICATION_TYPE + }); var hubConfiguration = new HubConfiguration { Resolver = GlobalHost.DependencyResolver, diff --git a/Thermo.Active/Listeners/SignalR/SignalRListener.cs b/Thermo.Active/Listeners/SignalR/SignalRListener.cs index 68f08c27..7da335f9 100644 --- a/Thermo.Active/Listeners/SignalR/SignalRListener.cs +++ b/Thermo.Active/Listeners/SignalR/SignalRListener.cs @@ -304,7 +304,6 @@ namespace Thermo.Active.Listeners.SignalR var context = GlobalHost.ConnectionManager.GetHubContext(); context.Clients.Group("ncData").recipeFullData(diffData); - //context.Clients.Group("ncData").recipeFullData(currRecipeFull); } } @@ -352,7 +351,6 @@ namespace Thermo.Active.Listeners.SignalR { GaugeModel currGauge = gaugeData as GaugeModel; - // FIXME TODO: usare un foreach comparer? if (!LastGaugeData.Equals(currGauge)) { LastGaugeData = currGauge; @@ -433,6 +431,8 @@ namespace Thermo.Active.Listeners.SignalR 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/wwwroot/index.html b/Thermo.Active/wwwroot/index.html index fdd93267..132cf26d 100644 --- a/Thermo.Active/wwwroot/index.html +++ b/Thermo.Active/wwwroot/index.html @@ -13,7 +13,7 @@ - + diff --git a/Thermo.Active/wwwroot/src/services/hub.ts b/Thermo.Active/wwwroot/src/services/hub.ts index 391dd772..01c18c1f 100644 --- a/Thermo.Active/wwwroot/src/services/hub.ts +++ b/Thermo.Active/wwwroot/src/services/hub.ts @@ -66,33 +66,47 @@ export class Hub { this._hub = $.connection.ncHub; + $.connection.hub.error(function(error, exc) { + console.log('SignalrAdapter: ' + error, exc); + }); + + $.connection.hub.url="http://localhost:9000/signalr"; + +// debugger + try { $.connection.hub.logging = true; } catch{ } try { $.connection.ncHub.logging = true; } catch{ } // Registro le callback; - // this._hub.client.alarms = this.manageAlarmsCallbacks; + this._hub.client.alarms = this.manageAlarmsCallbacks; this._hub.client.powerOn = this.managePowerCallbacks; - // this._hub.client.ncNetworkStatus = Hub.manageNcStatus; - // this._hub.client.processesData = Hub.manageProcesses; - // this._hub.client.functionalityData = Hub.functionalityData; - // this._hub.client.expiredMaintenances = Hub.expiredMaintenances; + this._hub.client.ncNetworkStatus = Hub.manageNcStatus; + this._hub.client.processesData = Hub.manageProcesses; + this._hub.client.functionalityData = Hub.functionalityData; + this._hub.client.expiredMaintenances = Hub.expiredMaintenances; - // this._hub.client.ncSoftKeys = Hub.ncSoftKeyChanged; - // this._hub.client.userSoftKeys = Hub.userSoftKeyChanged; - // this._hub.client.headsData = Hub.headsDataChanged; - // this._hub.client.processesData = Hub.processDataChanged; - // this._hub.client.axesNames = Hub.axesNamesDataChanged; - // this._hub.client.axesPositions = Hub.axesPositionsDataChanged; - // this._hub.client.magazinesStatus = Hub.magazineStatusChanged; - // this._hub.client.activeProgramData = Hub.activeProgramData; + this._hub.client.ncSoftKeys = Hub.ncSoftKeyChanged; + this._hub.client.userSoftKeys = Hub.userSoftKeyChanged; + this._hub.client.headsData = Hub.headsDataChanged; + this._hub.client.processesData = Hub.processDataChanged; + this._hub.client.axesNames = Hub.axesNamesDataChanged; + this._hub.client.axesPositions = Hub.axesPositionsDataChanged; + this._hub.client.magazinesStatus = Hub.magazineStatusChanged; + this._hub.client.activeProgramData = Hub.activeProgramData; // this._hub.client.magazineIsActive = Hub.magazineIsActive; - // this._hub.client.m155Data = Hub.m155Data; - // this._hub.client.partProgramQueue = Hub.partProgramQueue; + this._hub.client.m155Data = Hub.m155Data; + this._hub.client.partProgramQueue = Hub.partProgramQueue; // this._hub.client.scadaData = Hub.scadaDataChanged; - // this._hub.client.cmsConnectGatewayRebbot = Hub.cmsConnectGatewayRebbot; + this._hub.client.cmsConnectGatewayRebbot = Hub.cmsConnectGatewayRebbot; + + // qui i NUOVI metodi NUOVI dal server (Recipe, gauges) da completare lato HUB + // this._hub.client.recipeFullData = Hub.recipeFullData; + // this._hub.client.recipeOverData = Hub.recipeOverData; + // this._hub.client.modulesData = Hub.modulesData; + // this._hub.client.warmersData = Hub.warmersData; + // this._hub.client.gaugeData = Hub.gaugeData; - // sottoscrivere qui i metodi NUOVI dal server (Recipe, gauges) this._hub.client.logout = this.logout; @@ -107,7 +121,8 @@ export class Hub { Hub.manageServerStatus("disconnected"); console.log("SERVER CONNECTION: restart-connection") setTimeout(function () { - $.connection.hub.start({ transport: ['serverSentEvents'] }); + $.connection.hub.start(); + // $.connection.hub.start({ transport: ['serverSentEvents'] }); }, 5000); // Restart connection after 5 seconds. }); // $.connection.hub.stateChanged(async (state) => { @@ -120,7 +135,8 @@ export class Hub { // } // }) - $.connection.hub.start({ transport: ['serverSentEvents'] }); + $.connection.hub.start(); + // $.connection.hub.start({ transport: ['serverSentEvents'] }); this.checkShowAxes(); From c020a5588b2ba73cf52e6e9a4803b05f0bfa8104 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 26 May 2020 13:04:10 +0200 Subject: [PATCH 133/167] Update vers number --- Thermo.Active/Properties/AssemblyInfo.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Thermo.Active/Properties/AssemblyInfo.cs b/Thermo.Active/Properties/AssemblyInfo.cs index 8f4b9784..61cf208b 100644 --- a/Thermo.Active/Properties/AssemblyInfo.cs +++ b/Thermo.Active/Properties/AssemblyInfo.cs @@ -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("0.2.3")] +[assembly: AssemblyVersion("0.3.2")] From 2e84a57cfbba6e567c3c6ef3323c4b77fc0af75f Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Tue, 26 May 2020 19:16:51 +0200 Subject: [PATCH 134/167] Added pause after thread start on init (it RUNS!) --- Thermo.Active.Core/ThreadsHandler.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Thermo.Active.Core/ThreadsHandler.cs b/Thermo.Active.Core/ThreadsHandler.cs index 49bc82d0..ff2a4420 100644 --- a/Thermo.Active.Core/ThreadsHandler.cs +++ b/Thermo.Active.Core/ThreadsHandler.cs @@ -48,6 +48,7 @@ namespace Thermo.Active.Core { Thread t = new Thread(() => ThreadSetupCmsConnect()); t.Start(); + Thread.Sleep(50); } } @@ -64,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); From d06f36edbeef68aac83085d9b6202c953e15f7ef Mon Sep 17 00:00:00 2001 From: = Date: Thu, 28 May 2020 14:15:58 +0200 Subject: [PATCH 135/167] fix signalr hub connection url --- Thermo.Active/wwwroot/src/services/hub.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Thermo.Active/wwwroot/src/services/hub.ts b/Thermo.Active/wwwroot/src/services/hub.ts index d8cfa95d..7656932e 100644 --- a/Thermo.Active/wwwroot/src/services/hub.ts +++ b/Thermo.Active/wwwroot/src/services/hub.ts @@ -21,6 +21,7 @@ import { scadaActions } from "../store/scada"; import { scadaService } from "./scadaService"; import { loginService } from "./loginService"; import { ToolingService } from "./toolingService"; +import { CONFIGURATION } from "@/config"; declare let $: any; @@ -65,6 +66,7 @@ export class Hub { Hub._current = this; this._hub = $.connection.ncHub; + $.connection.hub.url = (await CONFIGURATION).api.apiServerUrl + "/signalr"; try { $.connection.hub.logging = true; } catch{ } try { $.connection.ncHub.logging = true; } catch{ } From a44813c8a4830feca846df2f31988595465e8dc7 Mon Sep 17 00:00:00 2001 From: Alessio Date: Mon, 8 Jun 2020 11:34:03 +0200 Subject: [PATCH 136/167] =?UTF-8?q?add=20the=20sub-men=C3=B9=20to=20the=20?= =?UTF-8?q?components=20in=20production?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Thermo.Active/wwwroot/assets/icons/png/bt.png | Bin 0 -> 891 bytes .../wwwroot/assets/icons/png/bt@2x.png | Bin 0 -> 1691 bytes .../wwwroot/assets/icons/png/bt@3x.png | Bin 0 -> 2427 bytes .../wwwroot/assets/styles/base/dashboard.less | 167 ++++++++++++------ Thermo.Active/wwwroot/assets/styles/style.css | 54 +++++- .../dashboard/base-components/componente.ts | 2 + .../dashboard/base-components/componente.vue | 75 +++++++- 7 files changed, 224 insertions(+), 74 deletions(-) create mode 100644 Thermo.Active/wwwroot/assets/icons/png/bt.png create mode 100644 Thermo.Active/wwwroot/assets/icons/png/bt@2x.png create mode 100644 Thermo.Active/wwwroot/assets/icons/png/bt@3x.png 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 0000000000000000000000000000000000000000..ca26b0a2e75f92e9098ad849a1dab1f72d4f515f GIT binary patch literal 891 zcmV->1BCpEP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR919iRgM1ONa40RR919RL6T0N#5RQ2+n}T&qlhcDTJ3?$?`irbO{de-5Y{1hgnXkiVxK`jVp-PC za=H9N`3FfODFl}Qo#TmX;BAoY!2STyn)2h5m|Z-d@vmzB8PvIYy?((B8fJrE0Kbo-ukrofb;p}JmHqrBfq=$Eaw$x4!0rcw!JE}; z^$92ZH1<{E&QsJpBsb7c@`+^mM3&LjJ{oVTpd@uK$n0RiHYxHHF_RF@NGvjsZ$D~I zY}PE#0sP0sP{k5s7cV}2d6BA4RmC9zk<8u>lG!+A^U8jYU%j_+OvXQ{st{>+s#iHo z&*gG*S}lpAsL{s@Xk=2j9E>Vn3ecBvyjrjtuZ|h0w^}U+Gg7By{o^1FWO2P@ADvD) zSflSLl{!_sa(kNXcH1GP0RMZcP90;8DFzxj72@Efr|BD?F9 RDAE7`002ovPDHLkV1ngVg6#kR literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8c9d78a7f564bb3e4cc1db5ee87d56dd5975dce9 GIT binary patch literal 1691 zcmV;M24wk(P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91I-mmp1ONa40RR91IsgCw0Hdp`^Z)<`1xZ9fRA>e5nq6pIMHI*LwcR9E zBXyO6KE#NUqG%I8qCvDp?MprgLLS<;J{TV~5B8x56&e)$g4U0`_+)%hlqiY$5PT2? zeG(#WD76iAMKBr?Yf#%HW|OSHN%vmnYxmyC-n$jL7j9g}J4zja^%yZMz)1y&>lXca~ji~Aa0|SZW<>hYyc?g|BAcfiMc>7yhTQhTW zbF+dF^%KSkXPe#K-NyiV%Iipq{!IHfuPv3Zszq8i=4pR5Ha6ZiIy!nul8K~R7l{^A z$&((brl#iY$;rtVytZDF;(J$CR?b0h5-;ig0OdElkv>i%+SS!{4s6I}}hxvKM8ahf!Eg88P||4Gj-5r`Ln*)&vO%J_=8S zkt??hX?)+>+FDN-yMc?*;NV~~lgYHn$^gDfdqt*|s}8uEWLr$9hiQK%(`@xXp!4(d zd+4alON^c7Z}#R=sqmz&#{lbrM|vCE71y81A%fN-k|qIwt$NORTN<;J2p0U zQ6a|E;IpFmN{}yeSokBXxxmH9Q^be)vRC&?fNyWyy>^@>z!Y29b~?%_Q7Yyrqjw3g ziU`Jc%LGRKK^%AmnsDmPsi~<+jsGktsAmw6k9+le zxnEqINwfn}T?FHx+@|gaRnXxZf!E}fW@wc%#rTtXYE zt4FzjgCnHVL?7XqM$KgA4%PTltQc4I^VszkY%p;CAY3k!yw*iu*gWIzUi*!+IJ7khM zMnGd7QGEd@SL)gpqqyg&KB7jXcQ|N8yV*um4|-7rFr89YS5AAE_|Z3S#JIWF(o6pa zZ?UbE`^a@=;j>K7Q535aPz)N%7Z(?|M>UyD&cZ(1(X+oTilQ@?;B@u0Rdt-u%JoO)km~&_0QiuTyr&_etC)oWbEv zc&FhVOQllsMOPI+|DA$<1pYgeecT6q;5kh{V~R92H5ozoFB8Y5WXv9HYul z5jeFEr^GMTu|3#*AG=2-139i~Y6*&ReO%A0{ioyUFZ1^uOAV7jQ9G$4iO3f z@)Q0!002ovPDHLkV1n4E1*`x7 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..af4b48e935368427b247d74e8df2ebc77a1e7508 GIT binary patch literal 2427 zcmZWrXE+;*8cvMZHENVnVsu2Ua}Z5?lhW9$5lL_qrDi26Mysm!)}kmOMr}n<#Ma=b zphk(Rnk5=kb)Z)1(I5BT=ehU!p7(pd{p0)f#$UHE6yTNO1poj7#zsi1W5)dkH|W^= z(x<$S3Fv2Ks0W}7ORpX$NLL$UH*<3Uyqb+d+R#zlfsQT*1B2{fB7Ka;&sxqM42?}dB!%R&~^6-2@DyLP%ee~BclXQV51iWd&;_~KL42dZvGb7Rf!x{I*<|0Djnw7#EF2O1!+|^d z<7R6`QISiVr5o(Z4K&*COax*Fa`Uc6Uyu^?3E7n6>4_63;7O62zFy*Q%IYiAhV(p*8ez>eaefk%drkIHa9ot zGab9_6|P*7A=LKyz9Kd?-be83CKWPGzzR3r?1@>;RK2lQi2fq^Ui@0sw3wJ!wbRf8 z2B;Xr)LTCZWvffLZjpW(ABVwL(Mx6zsWKMbfp0tQs{L$Vlz+OXVoBy;3}wnTW@v~< z9I)T{6j41UP8Dkj6H-$FcScHYlT->GG`cL0Bj=a1kMte2T2CUW%%>K$i1`ElHzX9;3N z_jPz4t|DhFT)@du8s_g2R3LA__I7CvbkGJfLVnUFKszawgVt^t;#RMKUvbaZeZ9=-yLd&2vO$2m}czEvIwao=B&i2LZwr zh6l`^+2)Q~z1rEBogNVo43Lp-UL_v;9M+UppBZu=bNER`;%RP?^;%G;QucD!W+9`FCGh~gG1QuwRb)hpA~Yn+w{ zOsfbfIsUC#h;ZBmSa;a#7*%FA$iW^M-L+_@igx7CV`djB@DI}i%-MZl$x*;XGYXFp zd0a0$T*BSOqF;#(DOb9}&Hl&f*0bJ>_<9X~aTZ;xgfr}KZI!HA;R$CNGu<9-2Z&oO z76!R9TT8X>k>w{f2kIWpXnJ-r(XZG)lf~lz8i?M#DA2Vis=`|m9mhJBq`WbhUt@aRPJR0Tp_SZPkf-mXCDo^bxnVVPLjB(Pt zn#u)9A9T_x??*V{z2snQmSL&!^W)!-x}#1ruAol_tolW4Wc3xosWta)pLOVbO{v`O zn}(+m6`6Wj_pCM%K+x`8n3GQMQ$f;Uphbal37IAfGN#sjJ2*N#7}?tw>(|OH4$)4E zO-(TsTr^s$osWkG?5DI%B&S1NhZRCc)C>df|5%@r-CN$8Fv{KVJF2E1Mk6z@BlS1LI3MKmo|I|R}(~VL-aoc&F-YC z;0c60^&!kPhxq;I)t9GoE#I|GCD$Q(^Ig`hw&#ZY^_Cu!R+1+TT8RrXHU0wr+wGD? zN1BVM8!|7Vb;{!6Cth79bO^17Zn7Mc#@`vCuxeL=bCV#%Ue97{IznBiZ-} zn`IkCX10X~!`z53$mP#>b>f-*nFT!ciXucwyoMo)g?L61UM>h+_o*wMbnmr2C7#XD zJ%73Mjhk)#)1TVs(z`AyZ#LO1HuaZY<>6BnA+9!zjDCaB9o@^5F=95sMQozRc20Yn zc++NQ7&=Da5wFWSc_HVzXbOtD6!N^Mkw9y&9+Yd hpPKl$x*%Ky9RVW>_yQT4{*u3ikFmZ5lA`An@ekv(W}E;3 literal 0 HcmV?d00001 diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index 20c02f3e..cbe1c13f 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -52,7 +52,8 @@ height: 150px; width : 150px; - .gauge-container,.three { + .gauge-container, + .three { width : 126px; height: 92px; @@ -345,75 +346,127 @@ } - .component { - width : 641px; - height : 84px; - background-color: #e8e8e8; - flex-direction : column; - justify-content : flex-end; + .component-info { + width : 656px; + height : unset; + background-color: unset; + display: flex; + flex-direction: column; - div { - margin : auto; - padding : 0px 15px; - width : unset; - height : unset; - background-color: unset; - } + section { + margin : unset; + padding : unset; + display : flex; + justify-content: flex-end; - span { - flex-shrink : 0; - width : 100%; - height : 1px; - background-color: #676767; - } + section { + margin : unset; + padding : unset; + display : flex; + flex-direction: column; - 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; - } + .component { + margin-top: 0.5px; + width : 478px; + height : 60px; + background-color: #e8e8e8; - .specific { - height : unset; - width : unset; - background-color: unset; - margin : unset; + div { - label { - flex-shrink: 0; + button { + border-color : black; + width : 50PX; + height : 50px; + border-radius : 50%; + background-color: unset; + } - &: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; } } } + .component { + width : 641px; + height : 84px; + background-color: #e8e8e8; + display : flex; + flex-direction : column; + justify-content : flex-end; + + div { + margin : auto; + padding : 0px 15px; + width : unset; + height : unset; + background-color: unset; + + button { + height : 10px; + width : 10px; + background-color: black; + } + + } + + span { + flex-shrink : 0; + width : 100%; + height : 1px; + background-color: #676767; + } + + 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; + } + + } + + } + + } } } diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index a8c9a527..16c5423f 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4442,27 +4442,65 @@ width: 621px; height: 77px; } -.dashboard section .specific:last-of-type .component { +.dashboard section .specific:last-of-type .component-info { + width: 656px; + height: unset; + background-color: unset; + display: flex; + flex-direction: column; +} +.dashboard section .specific:last-of-type .component-info section { + margin: unset; + padding: unset; + display: flex; + justify-content: flex-end; +} +.dashboard section .specific:last-of-type .component-info section section { + margin: unset; + padding: unset; + display: flex; + flex-direction: column; +} +.dashboard section .specific:last-of-type .component-info section section .component { + margin-top: 0.5px; + width: 478px; + height: 60px; + background-color: #e8e8e8; +} +.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 div { +.dashboard section .specific:last-of-type .component-info .component div { margin: auto; padding: 0px 15px; width: unset; height: unset; background-color: unset; } -.dashboard section .specific:last-of-type .component span { +.dashboard section .specific:last-of-type .component-info .component div button { + height: 10px; + width: 10px; + background-color: black; +} +.dashboard section .specific:last-of-type .component-info .component span { flex-shrink: 0; width: 100%; height: 1px; background-color: #676767; } -.dashboard section .specific:last-of-type .component label { +.dashboard section .specific:last-of-type .component-info .component label { flex-shrink: 0; font-size: 54px; font-weight: 500; @@ -4473,16 +4511,16 @@ text-align: right; color: #4b4b4b; } -.dashboard section .specific:last-of-type .component .specific { +.dashboard section .specific:last-of-type .component-info .component .specific { height: unset; width: unset; background-color: unset; margin: unset; } -.dashboard section .specific:last-of-type .component .specific label { +.dashboard section .specific:last-of-type .component-info .component .specific label { flex-shrink: 0; } -.dashboard section .specific:last-of-type .component .specific label:first-of-type { +.dashboard section .specific:last-of-type .component-info .component .specific label:first-of-type { font-size: 12px; font-weight: 500; font-stretch: normal; @@ -4492,7 +4530,7 @@ text-align: center; color: #4b4b4b; } -.dashboard section .specific:last-of-type .component .specific label:last-of-type { +.dashboard section .specific:last-of-type .component-info .component .specific label:last-of-type { font-size: 25px; font-weight: 500; font-stretch: normal; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.ts index 0cfab6a6..98ee8c72 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.ts @@ -5,4 +5,6 @@ import {Prop} from 'vue-property-decorator'; @Component({}) export default class Componente extends Vue{ + submenù:boolean=false; + } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.vue index f0fad60c..4eeab76f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/dashboard/base-components/componente.vue @@ -1,22 +1,79 @@ \ No newline at end of file From 8d661f0bda6019690d561d312999dd5aced16577 Mon Sep 17 00:00:00 2001 From: Alessio Date: Mon, 8 Jun 2020 12:21:15 +0200 Subject: [PATCH 137/167] =?UTF-8?q?fix=20sub-men=C3=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wwwroot/assets/styles/base/dashboard.less | 119 ++++++++++-------- Thermo.Active/wwwroot/assets/styles/style.css | 92 +++++++------- 2 files changed, 113 insertions(+), 98 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index cbe1c13f..ed43eaa7 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -157,7 +157,7 @@ section { margin-top : -400px; - height : 100%; + height : 722px; display : flex; justify-content: flex-end; padding-right : 15px; @@ -287,6 +287,7 @@ margin-left: 15%; div { + flex-shrink : 0; width : 542px; height : 71px; background-color: rgba(0, 0, 0, 0.5); @@ -335,38 +336,43 @@ } aside { + // margin-top: 10px; width : 641px; - height : 310px; + height : 100%; overflow-x: hidden; .component { - width : 621px; - height: 77px; + width : 621px; + height : 77px; } } .component-info { - width : 656px; + width : unset; height : unset; background-color: unset; - display: flex; - flex-direction: column; + 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 { - margin-top: 0.5px; + margin-top : 0.5px; width : 478px; height : 60px; background-color: #e8e8e8; @@ -398,12 +404,61 @@ 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 : 10px; width : 10px; @@ -419,54 +474,8 @@ background-color: #676767; } - 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; - } - - } - - } - } + } } diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 16c5423f..50879028 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4296,7 +4296,7 @@ } .dashboard section { margin-top: -400px; - height: 100%; + height: 722px; display: flex; justify-content: flex-end; padding-right: 15px; @@ -4395,6 +4395,7 @@ 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); @@ -4435,7 +4436,7 @@ } .dashboard section .specific:last-of-type aside { width: 641px; - height: 310px; + height: 100%; overflow-x: hidden; } .dashboard section .specific:last-of-type aside .component { @@ -4443,7 +4444,7 @@ height: 77px; } .dashboard section .specific:last-of-type .component-info { - width: 656px; + width: unset; height: unset; background-color: unset; display: flex; @@ -4452,12 +4453,16 @@ .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; } @@ -4483,12 +4488,53 @@ 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: 10px; width: 10px; @@ -4500,46 +4546,6 @@ height: 1px; background-color: #676767; } -.dashboard section .specific:last-of-type .component-info .component 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 .specific { - height: unset; - width: unset; - background-color: unset; - margin: unset; -} -.dashboard section .specific:last-of-type .component-info .component .specific label { - flex-shrink: 0; -} -.dashboard section .specific:last-of-type .component-info .component .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 .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; -} .modal.pirometro-info { width: 1820px; height: 980px; From 08c6ca521a39bd5ff0f3ebba680e884f7dc653ce Mon Sep 17 00:00:00 2001 From: Alessio Date: Mon, 8 Jun 2020 14:38:39 +0200 Subject: [PATCH 138/167] =?UTF-8?q?fix=20sub-men=C3=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wwwroot/assets/styles/base/dashboard.less | 14 +++++++------- Thermo.Active/wwwroot/assets/styles/style.css | 9 ++++++--- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less index ed43eaa7..dd2347d1 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/dashboard.less +++ b/Thermo.Active/wwwroot/assets/styles/base/dashboard.less @@ -336,14 +336,14 @@ } aside { - // margin-top: 10px; + margin-top: 5px; width : 641px; height : 100%; overflow-x: hidden; .component { - width : 621px; - height : 77px; + width : 621px; + height: 77px; } } @@ -372,12 +372,12 @@ flex-direction: column; .component { - margin-top : 0.5px; width : 478px; height : 60px; background-color: #e8e8e8; div { + flex-shrink: unset; button { border-color : black; @@ -404,7 +404,7 @@ justify-content : flex-end; div { - flex-shrink: 0; + flex-shrink : 0; margin : auto; padding : 0px 15px; width : unset; @@ -460,8 +460,8 @@ } button { - height : 10px; - width : 10px; + height : 20px; + width : 20px; background-color: black; } diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 50879028..b2fb953f 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4435,6 +4435,7 @@ color: #4b4b4b; } .dashboard section .specific:last-of-type aside { + margin-top: 5px; width: 641px; height: 100%; overflow-x: hidden; @@ -4467,11 +4468,13 @@ flex-direction: column; } .dashboard section .specific:last-of-type .component-info section section .component { - margin-top: 0.5px; 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; @@ -4536,8 +4539,8 @@ color: #4b4b4b; } .dashboard section .specific:last-of-type .component-info .component div button { - height: 10px; - width: 10px; + height: 20px; + width: 20px; background-color: black; } .dashboard section .specific:last-of-type .component-info .component span { From 7ba5090dd3c9a8972db1e002f946671b0e565fc1 Mon Sep 17 00:00:00 2001 From: Alessio Date: Mon, 8 Jun 2020 16:24:22 +0200 Subject: [PATCH 139/167] fix riscaldi superiori --- .../wwwroot/assets/styles/base/riscaldi.less | 56 ++++-- .../wwwroot/assets/styles/base/setup.less | 10 +- Thermo.Active/wwwroot/assets/styles/style.css | 43 +++-- .../components/show-estrazione-info.vue | 44 ++--- .../base-components/riscaldi-superiori.vue | 160 +++++++++--------- .../components/show-riscaldi-info.vue | 47 +++-- 6 files changed, 201 insertions(+), 159 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/riscaldi.less b/Thermo.Active/wwwroot/assets/styles/base/riscaldi.less index 02755aeb..90d0eb19 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/riscaldi.less +++ b/Thermo.Active/wwwroot/assets/styles/base/riscaldi.less @@ -6,25 +6,51 @@ .@{modal}.riscaldi-info { - .presenter { - position: relative; + .specific { width: 100%; - height: 100%; + margin-top: 10px; + margin-bottom: 10px; - .zoom { - position: absolute; - bottom: 0; - right: 0; - display: grid; - grid-template-rows: 1fr 1fr; - grid-row-gap: 10px; - - .btn { - padding: 0; - width: 48px; - height: 48px; + &: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 a9386061..e259b57f 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/setup.less +++ b/Thermo.Active/wwwroot/assets/styles/base/setup.less @@ -279,10 +279,6 @@ &.fa-check-circle.undone-step{ color: #1791FF; } - - // &.fa-minus-circle{ - // color: #7A7C74; - // } } position: relative; @@ -421,10 +417,6 @@ } .rect { - // display: flex; - // align-items: center; - // justify-content: flex-end; - // padding-inline-end: 20px; object-fit: contain; font-size: 20px; font-weight: 500; @@ -446,7 +438,7 @@ background-color: #fff; padding: 0 20px; font-size: 1rem; - ; + } } diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index b2fb953f..346a2cc1 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4612,24 +4612,43 @@ border: solid 1px #001e48; background-image: linear-gradient(to bottom, #1756ad, #002680); } -.modal.riscaldi-info .presenter { - position: relative; +.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 .radio-buttons { display: flex; justify-content: flex-start; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.vue index 72abea39..103113aa 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.vue @@ -1,23 +1,29 @@ 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 6a2a51c8..b0741386 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,86 +1,88 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue index 459fb441..77c7ab74 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue @@ -1,32 +1,29 @@ \ No newline at end of file From d653391253ed73354e438efa9faabc2e2a6ac9d3 Mon Sep 17 00:00:00 2001 From: Alessio Date: Mon, 8 Jun 2020 16:37:52 +0200 Subject: [PATCH 140/167] fix riscaldi modal --- .../wwwroot/assets/styles/base/riscaldi.less | 51 ++++++++++++------- Thermo.Active/wwwroot/assets/styles/style.css | 6 +++ .../sostentamento-decompressione.vue | 6 +-- 3 files changed, 41 insertions(+), 22 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/riscaldi.less b/Thermo.Active/wwwroot/assets/styles/base/riscaldi.less index 90d0eb19..64ec8167 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/riscaldi.less +++ b/Thermo.Active/wwwroot/assets/styles/base/riscaldi.less @@ -6,51 +6,64 @@ .@{modal}.riscaldi-info { + + section.body { + + section { + justify-content: center; + + .sost-dec { + width: 471px; + } + + } + } + .specific { - width: 100%; - margin-top: 10px; + width : 100%; + margin-top : 10px; margin-bottom: 10px; - &:last-of-type{ + &:last-of-type { margin: unset; - div{ - display: flex; + div { + display : flex; justify-content: flex-end; - + div { display : flex; flex-direction: column; - + button { - width : 48px; - height : 48px; - + width : 48px; + height: 48px; + } } } } - select{ - width: 110px; + select { + width : 110px; height: 48px; } - .btn{ + .btn { margin-top: 10px; - width: 201px; + width : 201px; } - button{ + button { height: 48px; } label { margin-bottom: 10px; - color: #002680; - font-size: 24px; - font-weight: 500; + color : #002680; + font-size : 24px; + font-weight : 500; } - + } } \ 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 346a2cc1..a75566fb 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4612,6 +4612,12 @@ border: solid 1px #001e48; background-image: linear-gradient(to bottom, #1756ad, #002680); } +.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%; margin-top: 10px; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue index 7bb35b6f..a8571e11 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue @@ -1,10 +1,10 @@ From d7859a61fa95db3bcff8b9cb9d9703d6fbd5a506 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 9 Jun 2020 11:11:09 +0200 Subject: [PATCH 141/167] fix layout maschera principale --- .../assets/styles/base/arch-interface.less | 68 ++-- .../wwwroot/assets/styles/base/header.less | 347 +++++++++--------- .../wwwroot/assets/styles/base/paddle.less | 337 ++++++++--------- .../wwwroot/assets/styles/base/setup.less | 19 +- Thermo.Active/wwwroot/assets/styles/style.css | 28 +- Thermo.Active/wwwroot/config.development.json | 2 +- .../libs/font-awesome/css/font-awesome.css | 1 + 7 files changed, 403 insertions(+), 399 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less b/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less index 503825ba..8413732d 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less +++ b/Thermo.Active/wwwroot/assets/styles/base/arch-interface.less @@ -2,66 +2,66 @@ @import "colors.less"; .arch { - display : flex; - justify-content: center; - width : 650px; + display: flex; + justify-content: flex-end; + flex: 1; + .box-gauge { - width: 90px; - margin-right: 20px; + width: 68px; - div{ + div { - &:last-of-type{ - margin-top: -25px; - display: flex; - flex-direction: column; - text-align: center; + &:last-of-type { + margin-top: -25px; + display: flex; + flex-direction: column; + text-align: center; - label{ - font-size: 13px; - font-weight: normal; - font-stretch: normal; - font-style: normal; - line-height: normal; - letter-spacing: normal; - text-align: center; - color: @color-darkish-blue; - } - } + 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 : 90px; - height : 90px; - display : block; + } + + .gauge-container { + width: 68px; + height: 68px; + display: block; border-radius: 3px; } .gauge-container>.gauge>.dial { - stroke : @color-darkish-blue; + stroke: @color-darkish-blue; stroke-width: 2; } .gauge-container>.gauge>.value { - stroke : @color-darkish-blue; + stroke: @color-darkish-blue; stroke-width: 2; } .gauge-container>.gauge>.value-text { - color : @color-darkish-blue; + color: @color-darkish-blue; font-weight: bold; - font-size : 20px; + font-size: 20px; } .gauge-container.three>.gauge>.dial { - stroke : @color-silver; + stroke: @color-silver; stroke-width: 4; } .gauge-container.three>.gauge>.value { - stroke : @color-darkish-blue; + stroke: @color-darkish-blue; stroke-width: 5; } 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/paddle.less b/Thermo.Active/wwwroot/assets/styles/base/paddle.less index b93df168..5b8cad97 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/paddle.less +++ b/Thermo.Active/wwwroot/assets/styles/base/paddle.less @@ -4,182 +4,185 @@ @import "fonts.less"; html { - height: 100%; - overflow:hidden; + height: 100%; + overflow: hidden; } - - body { - border: 0; margin: 0; padding: 0; - height: 100%; - } - - .hidden { - visibility: hidden; + +body { + border: 0; + margin: 0; + padding: 0; + height: 100%; +} + +.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; + + } + + } + + } + + } } - - .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; - - 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; - - } - - } - - } - - } + + .sidebar { + + .sidebar-backdrop { + width: 100vw; + height: 100vh; + position: fixed; + top: 0; + left: 0; + cursor: pointer; + } + + .sidebar-panel { + + overflow-y: auto; + background-color: #130f40; + position: fixed; + right: 0; + top: 141px; + height: 100vh; + z-index: 900; + padding: 3rem 20px 2rem 20px; + width: 721px; + height: 920px; + border-radius: 4px; + box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5); + background-color: #dddddd; + + .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; } - - - .sidebar{ - - .sidebar-backdrop{ - width: 100vw; - height: 100vh; - position: fixed; - top: 0; - left: 0; - cursor: pointer; - } + .box-sidebar-panel { + display: grid; + grid-template-columns: repeat(2, 1fr); + align-items: center; + justify-items: center; - .sidebar-panel{ - - overflow-y: auto; - background-color: #130f40; - position: fixed; - right: 0; - top: 141px; - height: 100vh; - z-index: 900; - padding: 3rem 20px 2rem 20px; - width: 721px; - height: 920px; - border-radius: 4px; - box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5); - background-color: #dddddd; - - .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; - } - - .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; - } - } - - } - - } - - - } + .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; + } + } + + } - - } + + } + + + } -} - \ No newline at end of file + } + +} \ 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 e259b57f..66a415ec 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/setup.less +++ b/Thermo.Active/wwwroot/assets/styles/base/setup.less @@ -38,8 +38,8 @@ justify-content: flex-start; width: calc(~'100% - 28px'); height: calc(~'100% - 28px - 82px'); - - .auto{ + + .auto { overflow-y: auto; overflow-x: hidden; } @@ -76,7 +76,7 @@ display: flex; flex-direction: column; - span{ + span { object-fit: contain; font-size: 22px; font-weight: 500; @@ -101,7 +101,7 @@ border: solid 4px #9b9b9b; } - input{ + input { width: 40px; height: 21px; margin: auto; @@ -266,17 +266,18 @@ 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; } } @@ -438,7 +439,7 @@ background-color: #fff; padding: 0 20px; font-size: 1rem; - + } } diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 8d784801..f9b7b776 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -221,11 +221,12 @@ margin: auto; } .setup-button 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; } .setup-button i.fa-check-circle { color: #90BF3D; @@ -4641,9 +4642,6 @@ width: 48px; height: 48px; } -.modal.formato-info section .tast { - margin-left: -300px; -} .modal.riscaldi-info .specific select { width: 110px; height: 48px; @@ -4661,6 +4659,9 @@ 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; @@ -5211,6 +5212,7 @@ body { border-top-left-radius: 90px; height: 90px; width: 45px; + box-shadow: -3px 0 3px rgba(0, 0, 0, 0.2); } .container #app nav div button div { display: grid; @@ -5308,12 +5310,11 @@ body { } .arch { display: flex; - justify-content: center; - width: 650px; + justify-content: flex-end; + flex: 1; } .arch .box-gauge { - width: 90px; - margin-right: 20px; + width: 68px; } .arch .box-gauge div:last-of-type { margin-top: -25px; @@ -5322,7 +5323,7 @@ body { text-align: center; } .arch .box-gauge div:last-of-type label { - font-size: 13px; + font-size: 12px; font-weight: normal; font-stretch: normal; font-style: normal; @@ -5332,8 +5333,8 @@ body { color: #002680; } .arch .box-gauge .gauge-container { - width: 90px; - height: 90px; + width: 68px; + height: 68px; display: block; border-radius: 3px; } @@ -6646,6 +6647,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; @@ -6723,11 +6725,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, diff --git a/Thermo.Active/wwwroot/config.development.json b/Thermo.Active/wwwroot/config.development.json index 52582d19..3f9529d8 100644 --- a/Thermo.Active/wwwroot/config.development.json +++ b/Thermo.Active/wwwroot/config.development.json @@ -2,6 +2,6 @@ "env": "development", "api": { "enabled": true, - "apiServerUrl": "http://10.74.82.72:9000" + "apiServerUrl": "http://seriate.steamware.net:9000/" } } \ 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"; From 2fd2012dd37781094f97ef5f3f317617812a285a Mon Sep 17 00:00:00 2001 From: = Date: Tue, 9 Jun 2020 11:29:27 +0200 Subject: [PATCH 142/167] fix layout --- Thermo.Active/wwwroot/assets/styles/base/setup.less | 3 +++ Thermo.Active/wwwroot/assets/styles/style.css | 3 +++ Thermo.Active/wwwroot/index.html | 2 +- Thermo.Active/wwwroot/src/services/hub.ts | 10 ++++------ 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/setup.less b/Thermo.Active/wwwroot/assets/styles/base/setup.less index 66a415ec..8fcaafea 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/setup.less +++ b/Thermo.Active/wwwroot/assets/styles/base/setup.less @@ -236,6 +236,9 @@ grid-template-columns: 50px 1fr; grid-template-rows: 1fr 50px; + *{ + cursor: pointer; + } span, label { diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index f9b7b776..c34f4a5c 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -197,6 +197,9 @@ grid-template-rows: 1fr 50px; position: relative; } +.setup-button * { + cursor: pointer; +} .setup-button span, .setup-button label { grid-column: 1; diff --git a/Thermo.Active/wwwroot/index.html b/Thermo.Active/wwwroot/index.html index 132cf26d..dbc47d4e 100644 --- a/Thermo.Active/wwwroot/index.html +++ b/Thermo.Active/wwwroot/index.html @@ -13,7 +13,7 @@ - + diff --git a/Thermo.Active/wwwroot/src/services/hub.ts b/Thermo.Active/wwwroot/src/services/hub.ts index 29d64130..fa36a463 100644 --- a/Thermo.Active/wwwroot/src/services/hub.ts +++ b/Thermo.Active/wwwroot/src/services/hub.ts @@ -68,13 +68,11 @@ export class Hub { this._hub = $.connection.ncHub; $.connection.hub.url = (await CONFIGURATION).api.apiServerUrl + "/signalr"; - $.connection.hub.error(function(error, exc) { - console.log('SignalrAdapter: ' + error, exc); - }); + $.connection.hub.error = function (error, exc) { + console.log('SignalrAdapter: ' + error, exc); + }; - $.connection.hub.url="http://localhost:9000/signalr"; - -// debugger + // debugger try { $.connection.hub.logging = true; } catch{ } try { $.connection.ncHub.logging = true; } catch{ } From b52c2d740f347e345aad998c265c44c0015b2a69 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 9 Jun 2020 12:08:09 +0200 Subject: [PATCH 143/167] fix input edit --- .../wwwroot/assets/styles/base/setup.less | 6 +- Thermo.Active/wwwroot/assets/styles/style.css | 4 +- .../app_modules_thermo/components/numeric.ts | 14 ++ .../app_modules_thermo/components/numeric.vue | 7 + .../app_modules_thermo/components/scheda.vue | 28 +-- .../formatura-cristallizzazione.vue | 12 +- .../base-components/formatura-riscaldo.vue | 12 +- .../base-components/aria-controstampo.vue | 84 ++++---- .../base-components/ciclo-controstampo.vue | 70 +++---- .../base-components/estrazione-principale.vue | 60 +++--- .../SVG_Components/controstampoSVG.vue | 20 +- .../components/SVG_Components/corniceSVG.vue | 30 +-- .../components/SVG_Components/lastraSVG.vue | 40 ++-- .../components/SVG_Components/piastraSVG.vue | 30 +-- .../components/SVG_Components/stampoSVG.vue | 60 +++--- .../setup/formato/components/controstampo.vue | 13 +- .../setup/formato/components/cornice.vue | 28 +-- .../setup/formato/components/lastra.vue | 43 +++-- .../formato/components/piastra_riduzione.vue | 30 +-- .../formato/components/show-formato-info.ts | 104 +++++----- .../formato/components/show-formato-info.vue | 79 ++++---- .../setup/formato/components/stampo.vue | 10 +- .../setup/imbutitura/show-imbutitura-info.vue | 150 +++++++-------- .../base-components/inputSottosquadra.vue | 50 ++--- .../components/base-components/inputTermo.vue | 14 +- .../SVG_Components/SVG-termo-superiore.vue | 56 +++--- .../components/base-components/pirometro.vue | 61 +++--- .../base-components/termo-superiore.vue | 166 +++++++++------- .../SVG_Components/quote-velocita.vue | 148 +++++++------- .../components/SVG_Components/stampo.vue | 180 +++++++++--------- .../SVG_Components/svgcontrostampo.vue | 127 ++++++------ .../components/controstampo.vue | 52 ++--- .../components/discesa-cornice.vue | 43 +++-- .../components/salita-stampo.vue | 65 ++++--- .../base-components/ventilatori.vue | 62 +++--- .../base-components/riscaldi-superiori.vue | 148 +++++++------- .../sostentamento-decompressione.vue | 36 ++-- .../base-components/vuoto-principale.vue | 111 +++++------ 38 files changed, 1159 insertions(+), 1094 deletions(-) create mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.ts create mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.vue diff --git a/Thermo.Active/wwwroot/assets/styles/base/setup.less b/Thermo.Active/wwwroot/assets/styles/base/setup.less index 8fcaafea..b1d3f171 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/setup.less +++ b/Thermo.Active/wwwroot/assets/styles/base/setup.less @@ -236,7 +236,7 @@ grid-template-columns: 50px 1fr; grid-template-rows: 1fr 50px; - *{ + * { cursor: pointer; } @@ -421,8 +421,7 @@ } .rect { - object-fit: contain; - font-size: 20px; + font-size: 18px; font-weight: 500; font-stretch: normal; font-style: normal; @@ -434,6 +433,7 @@ height: 48px; border-radius: 2px; box-shadow: inset 0 1px 3px 0 rgba(0, 0, 0, 0.5); + border: none; } select { diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index c34f4a5c..aa546420 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -346,8 +346,7 @@ flex: 1; } .input-area .rect { - object-fit: contain; - font-size: 20px; + font-size: 18px; font-weight: 500; font-stretch: normal; font-style: normal; @@ -359,6 +358,7 @@ height: 48px; border-radius: 2px; box-shadow: inset 0 1px 3px 0 rgba(0, 0, 0, 0.5); + border: none; } .input-area select { min-width: 150px; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.ts new file mode 100644 index 00000000..9b8d0f74 --- /dev/null +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.ts @@ -0,0 +1,14 @@ +import Vue from "vue"; +import Component from "vue-class-component"; +import { Prop } from "vue-property-decorator"; + +@Component({}) +export default class Numeric extends Vue { + + @Prop() + value: number; + + get Value() { return this.value; } + set Value(v) { this.$emit("input", v); } + +} \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.vue new file mode 100644 index 00000000..476bd681 --- /dev/null +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.vue @@ -0,0 +1,7 @@ + + \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue index e0a5c506..d3936d01 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue @@ -1,18 +1,18 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue index 5e098914..0a50fea8 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-cristallizzazione.vue @@ -10,13 +10,13 @@
- +
- - +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.vue index 6d662d86..8839a64b 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/formatura-riscaldo.vue @@ -6,13 +6,13 @@
- +
- - +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue index 0d5d73c0..9159f850 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/aria-controstampo.vue @@ -1,46 +1,46 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.vue index ab5de995..692250af 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/base-components/ciclo-controstampo.vue @@ -1,39 +1,39 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/base-components/estrazione-principale.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/base-components/estrazione-principale.vue index 8319cf8a..2038b96a 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/base-components/estrazione-principale.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/base-components/estrazione-principale.vue @@ -1,34 +1,34 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue index 308ccfcf..b74863f0 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue @@ -1,14 +1,14 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue index ae02d4bc..2cac98f2 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue @@ -1,19 +1,19 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue index 1d29f719..8d2163d6 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue @@ -1,24 +1,24 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue index 58cafa7c..87974cb0 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue @@ -1,19 +1,19 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue index 64cb5ec6..74fd923a 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue @@ -1,34 +1,34 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue index cc51cfb5..bf3725e2 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue @@ -6,13 +6,14 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue index 964e42cb..ef2f79be 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/cornice.vue @@ -13,24 +13,26 @@
- +
- + - +
- +
- + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue index 93cdb7c2..89dc56be 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.vue @@ -13,33 +13,36 @@
- +
- - + +
- +
- - + +
- +
- + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue index ea540851..5a923e11 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/piastra_riduzione.vue @@ -1,7 +1,7 @@ \ 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 1bfc3822..198f3c38 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,34 +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.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/pirometro/components/base-components/termo-superiore.vue index 61f01754..a347a044 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,83 +1,103 @@ \ 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 a7431174..c2d1c2b7 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,78 @@ \ 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 f36dee88..54a8024d 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,94 @@ \ 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 f219ce72..264c1b28 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,69 @@ e \ 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 adebb44b..e564a2f2 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,7 +9,7 @@
- +
@@ -18,50 +18,50 @@
- +
- - +
- +
- - +
- +
- - +
- +
- + -
+
- +
@@ -18,41 +18,46 @@
- +
- - +
- +
- - +
- +
- +
- + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue index eacc5933..6e8cdcaf 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue @@ -9,54 +9,65 @@
- +
- - +
- +
- - +
- +
- - +
- +
- - +
- +
-
+
-
-
-
- - -
-
- - - -
- - -
- - -
- - -
-
+
+
+
+ + +
+
+ + + +
+ +
+ + +
+ +
+
\ 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 4e39f045..683671da 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,88 +1,88 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue index abeca9c3..820d7120 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/base-components/sostentamento-decompressione.vue @@ -9,24 +9,32 @@
- +
- - +
- +
- - +
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 262f4d20..906038a4 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,67 +1,68 @@ \ No newline at end of file From d71bfe36babc38d827527057e5b79fe9a3902482 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 9 Jun 2020 12:32:11 +0200 Subject: [PATCH 144/167] binding gauge header --- .../arch-interface/arch-interface.ts | 61 +++++++------------ Thermo.Active/wwwroot/src/services/hub.ts | 8 ++- .../wwwroot/src/store/machineStatus.store.ts | 47 ++++++++------ 3 files changed, 58 insertions(+), 58 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.ts index 6d7757cd..03691e5e 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/arch-interface/arch-interface.ts @@ -1,48 +1,33 @@ import Vue from "vue"; import Component from "vue-class-component"; import Gauge from "svg-gauge"; +import { NavigationGuard } from "vue-router"; +import { store } from "@/store"; +import { Watch } from "vue-property-decorator"; @Component({}) -export default class archinterface extends Vue{ -mounted(){ - var gauge1 = Gauge( - this.$refs.gauge1, { - min:0, - max: 100, - value: 50 - } - ); +export default class archinterface extends Vue { - var gauge2 = Gauge( - this.$refs.gauge2, { - min:0, - max: 100, - value: 50 - } - ); + gaugePower: Gauge = null; + gaugeVacuum: Gauge = null; + gaugeAir: Gauge = null; - var gauge3 = Gauge( - this.$refs.gauge3, { - min: 0, - max: 100, - value: 50 - } - ); - - function loop() { - var value1 = Math.random() * 100, - value2 = Math.random() * 100, - value3 = Math.random() * 100, - value4 = Math.random() * 100, - value5 = Math.random() * 100; - - // setValueAnimated(value, durationInSecs); - gauge1.setValueAnimated(value1, 1.5); - gauge2.setValueAnimated(value2, 1.5); - gauge3.setValueAnimated(value3, 1.5); - window.setTimeout(loop, 6000); + get gaugeData() { + return store.state.machineStatus.gaugeData; } - loop() + + @Watch('gaugeData') + gaugeDataChanged(n, o) { + if (this.gaugePower) this.gaugePower.setValueAnimated(n.power, 1); + if (this.gaugeAir) this.gaugeAir.setValueAnimated(n.air, 1); + if (this.gaugeVacuum) this.gaugeVacuum.setValueAnimated(n.vacuum, 1); + } + + mounted() { + this.gaugePower = Gauge(this.$refs.gauge1, { min: 0, max: 100, value: 0 }); + this.gaugeAir = Gauge(this.$refs.gauge2, { min: 0, max: 100, value: 0 }); + this.gaugeVacuum = Gauge(this.$refs.gauge3, { min: 0, max: 100, value: 0 }); + } + } -} diff --git a/Thermo.Active/wwwroot/src/services/hub.ts b/Thermo.Active/wwwroot/src/services/hub.ts index fa36a463..552fc814 100644 --- a/Thermo.Active/wwwroot/src/services/hub.ts +++ b/Thermo.Active/wwwroot/src/services/hub.ts @@ -97,6 +97,8 @@ export class Hub { this._hub.client.m155Data = Hub.m155Data; this._hub.client.partProgramQueue = Hub.partProgramQueue; + + // this._hub.client.scadaData = Hub.scadaDataChanged; this._hub.client.cmsConnectGatewayRebbot = Hub.cmsConnectGatewayRebbot; @@ -105,7 +107,7 @@ export class Hub { // this._hub.client.recipeOverData = Hub.recipeOverData; // this._hub.client.modulesData = Hub.modulesData; // this._hub.client.warmersData = Hub.warmersData; - // this._hub.client.gaugeData = Hub.gaugeData; + this._hub.client.gaugeData = Hub.gaugeData; this._hub.client.logout = this.logout; @@ -223,8 +225,10 @@ export class Hub { private static magazineStatusChanged(data) { depotActions.setMagazineStatusModel(store, data); + } - + private static gaugeData(data) { + machineStatusActions.setGauge(store, data); } private static processDataChanged(data) { diff --git a/Thermo.Active/wwwroot/src/store/machineStatus.store.ts b/Thermo.Active/wwwroot/src/store/machineStatus.store.ts index 0a7e52b1..18564083 100644 --- a/Thermo.Active/wwwroot/src/store/machineStatus.store.ts +++ b/Thermo.Active/wwwroot/src/store/machineStatus.store.ts @@ -26,10 +26,10 @@ export interface HeadsPropertyModel { overrideEditable: boolean; override: number; process: number; - abrasiveIsActive:boolean; + abrasiveIsActive: boolean; actualSpeed: number; - isActive:boolean; - isSelected:boolean; + isActive: boolean; + isSelected: boolean; load: number; mountedTool: number; workedTime: number; @@ -59,7 +59,8 @@ export interface MachineStatusModel { resetAxesProgress: number, areasConfiguration: Array, - functions: Array + functions: Array, + gaugeData: { timeAdv: number, power: number, vacuum: number, air: number } } export interface buttonStatus { @@ -85,10 +86,11 @@ export interface MachineStatusActions { userCanAccessToArea(context, areaname): boolean; setNcConnectionStatus(context, connected: boolean); setSecurityFunction(context, securityFunctions: Array); - updateSecurityFunction(context, securityFunctions: Array); + updateSecurityFunction(context, securityFunctions: Array); setSoftKeyStatus(context, status: SoftKeyModel); setHeadsProperty(context, status: HeadsPropertyModel); setNcSoftKeyStatus(context, status); + setGauge(context, model: { timeAdv: number, power: number, vacuum: number, air: number }); } export const machineStatusStore = { @@ -105,6 +107,8 @@ export const machineStatusStore = { waterJet1Alarm: { active: false, clickable: false, id: null }, waterJet2Alarm: { active: false, clickable: false, id: null }, + gaugeData: { timeAdv: 0, power: 0, vacuum: 0, air: 0 }, + ncReady: false, softKeys: [], @@ -160,15 +164,15 @@ export const machineStatusStore = { }, mutations: { SetSecurityFunction(store, func: signalr_security.securityFunction) { - store._functions.set(func.name, func); - store.functions = Array.from(store._functions.values()); - messageService.publishToChannel("force-ui-update"); + store._functions.set(func.name, func); + store.functions = Array.from(store._functions.values()); + messageService.publishToChannel("force-ui-update"); }, UpdateSecurityFunction(store, func: signalr_security.securityFunction) { if (store._functions.get(func.name) && store._functions.get(func.name).enabled != func.enabled) { - store._functions.get(func.name).enabled = func.enabled; - store.functions = Array.from(store._functions.values()); - messageService.publishToChannel("force-ui-update"); + store._functions.get(func.name).enabled = func.enabled; + store.functions = Array.from(store._functions.values()); + messageService.publishToChannel("force-ui-update"); } }, UpdateMachineStatus(store, model: MachineStatusModel) { @@ -187,9 +191,16 @@ export const machineStatusStore = { SetHeadsProperty(store, model) { store._headsProperty.set(model.id, model); store.headsProperty = Array.from(store._headsProperty.values()); + }, + SetGauge(store, model) { + store.gaugeData = model; } }, actions: { + + setGauge(context, model) { + context.commit("SetGauge", model); + }, setResetAxes(context, status: { reset: boolean, progress: number }) { context.commit('UpdateMachineStatus', { resetAxes: status.reset, resetAxesProgress: status.progress }); }, @@ -266,8 +277,8 @@ export const machineStatusStore = { let areaUserEnabled = false; for (const key in machconfig) { - if(machconfig.hasOwnProperty(key)){ - if(machconfig[key].name == areaname + "Area"){ + if (machconfig.hasOwnProperty(key)) { + if (machconfig[key].name == areaname + "Area") { areaUserEnabled = machconfig[key].canWrite; break; } @@ -290,17 +301,17 @@ export const machineStatusStore = { let machconfig = context.state.machineStatus.functions; for (const key in machconfig) { - if(machconfig.hasOwnProperty(key)){ - if(machconfig[key].name == areaname + "Area"){ + if (machconfig.hasOwnProperty(key)) { + if (machconfig[key].name == areaname + "Area") { return machconfig[key].canWrite; } } } - + return false; }, setSecurityFunction(context, securityFunctions: Array) { - if(securityFunctions) + if (securityFunctions) securityFunctions.forEach(element => { context.commit("SetSecurityFunction", element); }); @@ -309,7 +320,7 @@ export const machineStatusStore = { securityFunctions.forEach(element => { context.commit("UpdateSecurityFunction", element); }); - }, + }, setSoftKeyStatus(context, status: SoftKeyModel) { context.commit("SetSoftKeyStatus", status); From c857cffbe59800917b1fe05b93eb7dc0bdd3165a Mon Sep 17 00:00:00 2001 From: = Date: Tue, 9 Jun 2020 12:36:05 +0200 Subject: [PATCH 145/167] fix modal height --- Thermo.Active/wwwroot/assets/styles/base/setup.less | 2 +- Thermo.Active/wwwroot/assets/styles/style.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/setup.less b/Thermo.Active/wwwroot/assets/styles/base/setup.less index b1d3f171..437787d0 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/setup.less +++ b/Thermo.Active/wwwroot/assets/styles/base/setup.less @@ -24,7 +24,7 @@ .modal { width: 1820px; - height: 980px; + height: 949px; section.body { height: calc(~'100% - 66px'); diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index aa546420..47d5772e 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -20,7 +20,7 @@ } .setup .modal { width: 1820px; - height: 980px; + height: 949px; } .setup .modal section.body { height: calc(100% - 66px); From 5f7941f4799922b2105d4a49fc293cebf6c95dff Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 10 Jun 2020 10:37:11 +0200 Subject: [PATCH 146/167] add sliders to stampo on formato modal --- .../setup/formato/components/stampo.ts | 3 ++- .../setup/formato/components/stampo.vue | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts index 2607840b..7bc7f8d6 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts @@ -1,8 +1,9 @@ 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" -@Component({name:"stampo" }) +@Component({name:"stampo", components:{slider:Slider} }) export default class Stampo extends Vue { @Prop({default:0}) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue index 5a00dd47..6d754b4e 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue @@ -8,22 +8,47 @@
+
+
+
+
+ From 44bb957508a3c66c4bb7a554953b294f0dd0656e Mon Sep 17 00:00:00 2001 From: = Date: Wed, 10 Jun 2020 11:28:25 +0200 Subject: [PATCH 147/167] components --- .../wwwroot/assets/styles/base/layout.less | 6 + .../wwwroot/assets/styles/base/setup.less | 40 +++- .../assets/styles/base/tastierino.less | 195 ++++++++++-------- Thermo.Active/wwwroot/assets/styles/style.css | 74 ++++--- .../app_modules_thermo/components/index.ts | 9 + .../app_modules_thermo/components/numeric.ts | 15 +- .../app_modules_thermo/components/numeric.vue | 6 +- .../components/tastierino.vue | 60 ++++-- .../setup/formato/components/lastra.ts | 18 +- .../setup/formato/components/stampo.vue | 10 +- Thermo.Active/wwwroot/src/main.ts | 10 +- 11 files changed, 276 insertions(+), 167 deletions(-) create mode 100644 Thermo.Active/wwwroot/src/app_modules_thermo/components/index.ts diff --git a/Thermo.Active/wwwroot/assets/styles/base/layout.less b/Thermo.Active/wwwroot/assets/styles/base/layout.less index 616fe402..fdd22a9b 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/layout.less +++ b/Thermo.Active/wwwroot/assets/styles/base/layout.less @@ -134,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/setup.less b/Thermo.Active/wwwroot/assets/styles/base/setup.less index 437787d0..fdb3a03d 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/setup.less +++ b/Thermo.Active/wwwroot/assets/styles/base/setup.less @@ -207,8 +207,9 @@ width: 1639px; height: 695px; background-color: #fff; - margin: 150px 193px; + margin: 150px auto; box-shadow: none; + position: relative; section { height: 100%; @@ -420,20 +421,43 @@ flex: 1; } - .rect { + .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 { diff --git a/Thermo.Active/wwwroot/assets/styles/base/tastierino.less b/Thermo.Active/wwwroot/assets/styles/base/tastierino.less index dfe2eebe..236b2d09 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/tastierino.less +++ b/Thermo.Active/wwwroot/assets/styles/base/tastierino.less @@ -3,98 +3,111 @@ @import "colors.less"; @import "fonts.less"; -.tast{ - height: 262px; - width: 262px; - background-color:@color-silver; - display: flex; - justify-content: center; +.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%; - - 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); + .mask { + display: grid; + grid-template-columns: repeat(4, 52px); + grid-template-rows: repeat(4, 52px); + grid-gap: 5px 8px; + margin-top: 7%; - } - .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; - } - + 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/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 47d5772e..d54b34b9 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -171,8 +171,9 @@ width: 1639px; height: 695px; background-color: #fff; - margin: 150px 193px; + margin: 150px auto; box-shadow: none; + position: relative; } .modal.setup-info section { height: 100%; @@ -345,20 +346,38 @@ font-weight: 500; flex: 1; } -.input-area .rect { +.input-area .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-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; @@ -4899,35 +4918,35 @@ background-image: linear-gradient(to bottom, #fff 0%, #bbbcbc 98%); margin: 16px; } -.tast { +.keyboard { height: 262px; width: 262px; background-color: #bbbcbc; display: flex; justify-content: center; } -.tast .mask { +.keyboard .mask { display: grid; grid-template-columns: repeat(4, 52px); grid-template-rows: repeat(4, 52px); grid-gap: 5px 8px; margin-top: 7%; } -.tast .mask button { +.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; } -.tast .mask .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); } -.tast .mask .submit { +.keyboard .mask .submit { grid-column-start: 4; grid-column-end: 5; grid-row-start: 3; @@ -4937,53 +4956,53 @@ background-image: url(/assets/icons/png/submit.png); box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5); } -.tast .mask .bCanc { +.keyboard .mask .bCanc { grid-column: 0.8; grid-row: 0.66666667; background-size: 52px; background-image: url(/assets/icons/png/canc.png); } -.tast .mask .b1 { +.keyboard .mask .b1 { grid-column: 0.5; grid-row: 0.75; } -.tast .mask .b2 { +.keyboard .mask .b2 { grid-column: 0.66666667; grid-row: 0.75; } -.tast .mask .b3 { +.keyboard .mask .b3 { grid-column: 0.75; grid-row: 0.75; } -.tast .mask .b4 { +.keyboard .mask .b4 { grid-column: 0.5; grid-row: 0.66666667; } -.tast .mask .b5 { +.keyboard .mask .b5 { grid-column: 0.66666667; grid-row: 0.66666667; } -.tast .mask .b6 { +.keyboard .mask .b6 { grid-column: 0.75; grid-row: 0.66666667; } -.tast .mask .b7 { +.keyboard .mask .b7 { grid-column: 0.5; grid-row: 0.5; } -.tast .mask .b8 { +.keyboard .mask .b8 { grid-column: 0.66666667; grid-row: 0.5; } -.tast .mask .b9 { +.keyboard .mask .b9 { grid-column: 0.75; grid-row: 0.5; } -.tast .mask .bPunto { +.keyboard .mask .bPunto { grid-column: 0.75; grid-row: 0.8; } -.tast .mask .bDel { +.keyboard .mask .bDel { grid-column: 0.8; grid-row: 0.5; } @@ -24241,6 +24260,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/src/app_modules_thermo/components/index.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/components/index.ts new file mode 100644 index 00000000..f2385f8f --- /dev/null +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/index.ts @@ -0,0 +1,9 @@ +import numeric from "./numeric.vue"; +import keyboard from "./tastierino.vue"; +import slider from "./slider.vue"; + +export default { + numeric, + keyboard, + slider +} \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.ts index 9b8d0f74..523fcd3a 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.ts @@ -6,9 +6,18 @@ import { Prop } from "vue-property-decorator"; export default class Numeric extends Vue { @Prop() - value: number; + value: Recipe.IValue; - get Value() { return this.value; } - set Value(v) { this.$emit("input", v); } + // get Value() { return this.value; } + // set Value(v) { this.$emit("input", v); } + + @Prop() + min: number; + + @Prop() + max: number; + + @Prop() + unitOfMeasure: string; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.vue index 476bd681..66d09cfa 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/numeric.vue @@ -1,7 +1,7 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue index 83bc7eb6..ae5f3ea6 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.vue @@ -1,22 +1,46 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts index 6aba8a42..173a92a7 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/lastra.ts @@ -3,17 +3,13 @@ import Component from "vue-class-component"; import { Prop } from 'vue-property-decorator'; import Slider from "@/app_modules_thermo/components/slider.vue" -@Component({name:"lastra", components:{slider:Slider}}) +@Component({ name: "lastra" }) export default class Lastra extends Vue { - @Prop({default:0}) - x:Recipe.IValue; - @Prop({default:0}) - y:Recipe.IValue; - @Prop({default:0}) - spes:Recipe.IValue; - - - - + @Prop({ default: 0 }) + x: Recipe.IValue; + @Prop({ default: 0 }) + y: Recipe.IValue; + @Prop({ default: 0 }) + spes: Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue index 5a00dd47..577983ba 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue @@ -6,23 +6,23 @@
- +
- +
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/main.ts b/Thermo.Active/wwwroot/src/main.ts index beb666ea..ad0c21e1 100644 --- a/Thermo.Active/wwwroot/src/main.ts +++ b/Thermo.Active/wwwroot/src/main.ts @@ -25,7 +25,7 @@ import "./_base/gestures"; import "./app.business-logic"; import "./app.modules"; import { messageService } from "src/_base"; -import {recipeService} from "@/services/recipeService"; +import { recipeService } from "@/services/recipeService"; recipeService.GetCurrent(); recipeService.GetOverview(); @@ -90,8 +90,7 @@ router.beforeEach((to, from, next) => { // Initialize default language import { LocalizationService } from "src/services/localizationService"; -try -{ +try { new LocalizationService().init(); } catch @@ -114,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) { From 0d042b86988f17fe25c4e58ac4b6e8d7e015b1be Mon Sep 17 00:00:00 2001 From: = Date: Wed, 10 Jun 2020 11:40:31 +0200 Subject: [PATCH 148/167] rimozione del tastierino ovunque --- .../components/tastierino.ts | 72 +++++++++---------- .../SVG_Components/controstampoSVG.ts | 20 ++---- .../SVG_Components/controstampoSVG.vue | 2 +- .../components/SVG_Components/corniceSVG.ts | 23 ++---- .../components/SVG_Components/corniceSVG.vue | 4 +- .../components/SVG_Components/lastraSVG.ts | 26 +++---- .../components/SVG_Components/lastraSVG.vue | 6 +- .../components/SVG_Components/piastraSVG.ts | 22 ++---- .../components/SVG_Components/piastraSVG.vue | 4 +- .../components/SVG_Components/stampoSVG.ts | 30 +++----- .../components/SVG_Components/stampoSVG.vue | 10 +-- .../formato/components/show-formato-info.ts | 26 ------- .../formato/components/show-formato-info.vue | 11 +-- .../setup/formato/components/stampo.ts | 24 +++---- .../setup/formato/components/stampo.vue | 30 ++------ .../SVG_Components/SVG-termo-superiore.ts | 36 ++++------ .../SVG_Components/SVG-termo-superiore.vue | 10 +-- .../base-components/termo-superiore.ts | 40 ++++------- .../base-components/termo-superiore.vue | 2 - .../SVG_Components/quote-velocita.ts | 30 +++----- .../SVG_Components/quote-velocita.vue | 22 +++--- .../components/SVG_Components/stampo.ts | 29 +++----- .../SVG_Components/svgcontrostampo.ts | 29 +++----- .../SVG_Components/svgcontrostampo.vue | 18 ++--- .../quote-velocita/components/controstampo.ts | 47 +++++------- .../components/controstampo.vue | 2 - .../components/discesa-cornice.ts | 40 ++++------- .../components/discesa-cornice.vue | 2 - .../components/salita-stampo.ts | 27 ++----- .../components/salita-stampo.vue | 2 - 30 files changed, 213 insertions(+), 433 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts index d6109d35..f6c8e70b 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/tastierino.ts @@ -1,52 +1,44 @@ import Vue from 'vue'; -import {Prop} from 'vue-property-decorator'; +import { Prop } from 'vue-property-decorator'; import Component from 'vue-class-component'; -@Component({name:"tastierino"}) -export default class Tastierino extends Vue{ +@Component({ name: "tastierino" }) +export default class Tastierino extends Vue { - @Prop() - actualValue:Recipe.IValue; + @Prop() + actualValue: Recipe.IValue; - temp:string; - point:string; + temp: string; + point: string; - @Prop() - value: string; + @Prop() + value: string; - get showtast() { - return this.value; + del() { + this.actualValue.valueAct = 0; + } + + canc() { + this.temp = String(this.actualValue.valueAct); + this.actualValue.valueAct = Number(this.temp.slice(0, -1)) + } + + add(num: string) { + if (this.point) { + this.point += num; + this.actualValue.valueAct = Number(this.point) + } else { + this.temp = String(this.actualValue.valueAct); + this.temp += num; + this.actualValue.valueAct = Number(this.temp) } + } - set showtast(v: string) { - this.$emit('input', v); - } - - del(){ - this.actualValue.valueAct=0; - } - - canc(){ - this.temp=String(this.actualValue.valueAct); - this.actualValue.valueAct=Number(this.temp.slice(0,-1)) - } - - add(num:string){ - if(this.point){ - this.point+=num; - this.actualValue.valueAct=Number(this.point) - }else{ - this.temp=String(this.actualValue.valueAct); - this.temp+=num; - this.actualValue.valueAct=Number(this.temp) - } - } - - addpoint(){ - if(!this.point){ - this.point=String(this.actualValue.valueAct); - this.point+="."; - } + addpoint() { + if (!this.point) { + this.point = String(this.actualValue.valueAct); + this.point += "."; } + } } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts index c68e014c..b0ea83e3 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.ts @@ -1,21 +1,9 @@ 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() - value: string; - - get showtast() { - return this.value; - } - - set showtast(v: string) { - this.$emit('input', v); - } - - @Prop({default:0}) - alt:Recipe.IValue; +export default class ControstampoSVG extends Vue { + @Prop({ default: 0 }) + alt: Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue index b74863f0..e3aa6661 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue @@ -2,7 +2,7 @@
-
+
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts index a20dbade..90b3919c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts @@ -1,23 +1,12 @@ 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 CorniceSVG extends Vue{ - - @Prop() - value: string; +export default class CorniceSVG extends Vue { - get showtast() { - return this.value; - } - - set showtast(v: string) { - this.$emit('input', v); - } - - @Prop({default:0}) - x:Recipe.IValue; - @Prop({default:0}) - y:Recipe.IValue; + @Prop({ default: 0 }) + x: Recipe.IValue; + @Prop({ default: 0 }) + y: Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue index 2cac98f2..c8a577c3 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue @@ -2,12 +2,12 @@
-
+
-
+
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts index 39f975ce..b89df503 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts @@ -1,26 +1,16 @@ 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 LastraSVG extends Vue{ +export default class LastraSVG extends Vue { - @Prop() - value: string; - get showtast() { - return this.value; - } - - set showtast(v: string) { - this.$emit('input', v); - } - - @Prop({default:0}) - x:Recipe.IValue; - @Prop({default:0}) - y:Recipe.IValue; - @Prop({default:0}) - spes:Recipe.IValue; + @Prop({ default: 0 }) + x: Recipe.IValue; + @Prop({ default: 0 }) + y: Recipe.IValue; + @Prop({ default: 0 }) + spes: Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue index 8d2163d6..b043eb49 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue @@ -2,17 +2,17 @@
-
+
-
+
-
+
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts index 802d5fdd..4e7b9fbc 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts @@ -1,23 +1,13 @@ 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 PiastraSVG extends Vue{ +export default class PiastraSVG extends Vue { - @Prop() - value: string; - get showtast() { - return this.value; - } - - set showtast(v: string) { - this.$emit('input', v); - } - - @Prop({default:0}) - x:Recipe.IValue; - @Prop({default:0}) - y:Recipe.IValue; + @Prop({ default: 0 }) + x: Recipe.IValue; + @Prop({ default: 0 }) + y: Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue index 87974cb0..b4e4df99 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue @@ -2,12 +2,12 @@
-
+
-
+
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts index 0d31b330..8fc245b9 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts @@ -5,25 +5,15 @@ import { Prop } from 'vue-property-decorator'; @Component({}) export default class StampoSVG extends Vue { - @Prop() - value: string; - get showtast() { - return this.value; - } - - set showtast(v: string) { - this.$emit('input', v); - } - - @Prop({ default: 0 }) - x: Recipe.IValue; - @Prop({ default: 0 }) - y: Recipe.IValue; - @Prop({ default: 0 }) - alt: number; - @Prop({ default: 0 }) - altB: Recipe.IValue; - @Prop({ default: 0 }) - stampoNeg: number; + @Prop({ default: 0 }) + x: Recipe.IValue; + @Prop({ default: 0 }) + y: Recipe.IValue; + @Prop({ default: 0 }) + alt: number; + @Prop({ default: 0 }) + altB: Recipe.IValue; + @Prop({ default: 0 }) + stampoNeg: number; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue index 74fd923a..1e04fe42 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue @@ -2,27 +2,27 @@
-
+
-
+
-
+
-
+
-
+
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts index 6844d773..6397f49f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts @@ -26,7 +26,6 @@ import { store } from "@/store"; piastra: Piastra, cornice: Cornice, controstampo: Controstampo, - tastierino: Tastierino, stampoSVG: StampoSVG, lastraSVG: LastraSVG, piastraSVG: PiastraSVG, @@ -39,37 +38,12 @@ export default class ShowFormatoInfo extends Vue { recipe: Recipe.IRecipe = this.$store.getters.getCurrent(); show: string = "placeholder"; - showtast: string = ''; - @Prop({ default: 0 }) stamponeg: number; @Prop({ default: 0 }) altezza: number; - get TastActualValue(): Recipe.IValue { - if (!this.showtast) - return null; - - switch (this.showtast) { - case 'stampo-x': return this.recipe.general_sizes_mould_dim_x; - case 'stampo-y': return this.recipe.general_sizes_mould_dim_y; - // case 'stampo-alt': return this.altezza; - // case 'stampo-stamponeg': return this.stamponeg; - case 'stampo-altB': return this.recipe.general_sizes_mould_base_height; - case 'piastra-y': return this.recipe.general_sizes_plate_dim_y; - case 'piastra-x': return this.recipe.general_sizes_plate_dim_x; - case 'lastra-spes': return this.recipe.general_sizes_sheet_thickness; - case 'lastra-x': return this.recipe.general_sizes_sheet_dim_x; - case 'lastra-y': return this.recipe.general_sizes_sheet_dim_y; - case 'cornice-x': return this.recipe.general_sizes_frame_dim_x; - case 'cornice-y': return this.recipe.general_sizes_frame_dim_y; - case 'controstampo-alt': return this.recipe.general_sizes_upperplate_max_height; - default: - return null; - } - } - annulla() { ModalHelper.HideModal(); }; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue index e3ca3e53..75cf0083 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.vue @@ -36,7 +36,6 @@
- +
-
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts index 7bc7f8d6..58da4b15 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.ts @@ -3,18 +3,18 @@ import Component from "vue-class-component"; import { Prop } from 'vue-property-decorator'; import Slider from "@/app_modules_thermo/components/slider.vue" -@Component({name:"stampo", components:{slider:Slider} }) +@Component({ name: "stampo" }) export default class Stampo extends Vue { - @Prop({default:0}) - x:Recipe.IValue; - @Prop({default:0}) - y:Recipe.IValue; - @Prop({default:0}) - alt:number; - @Prop({default:0}) - altB:Recipe.IValue; - @Prop({default:0}) - stampoNeg:number; - + @Prop() + x: Recipe.IValue; + @Prop() + y: Recipe.IValue; + @Prop() + alt: number; + @Prop() + altB: Recipe.IValue; + @Prop() + stampoNeg: number; + } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue index 3b1ef410..02806791 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/stampo.vue @@ -8,47 +8,27 @@ - +
- +
- +
- +
- + 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 a5d9fd99..c43b44a4 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,30 +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() - value: string; - get showtast() { - return this.value; - } - - set showtast(v: string) { - this.$emit('input', v); - } - - @Prop({default:0}) - max:Recipe.IValue; - @Prop({default:0}) - min:Recipe.IValue; - @Prop({default:0}) - inizio:Recipe.IValue; - @Prop({default:0}) - fine:Recipe.IValue; - @Prop({default:0}) - perc_riposo:Recipe.IValue; + @Prop({ default: 0 }) + max: Recipe.IValue; + @Prop({ default: 0 }) + min: Recipe.IValue; + @Prop({ default: 0 }) + inizio: Recipe.IValue; + @Prop({ default: 0 }) + fine: Recipe.IValue; + @Prop({ default: 0 }) + 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 5d000e7a..62afcb22 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 @@ -2,24 +2,24 @@
-
+
-
+
-
+
-
+
-
+
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 4260cc8d..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,39 +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 Tastierino from "@/app_modules_thermo/components/tastierino.vue"; -@Component({name:'termosuperiore', - components: { - slider:Slider, - ToggleButton, - svgtermosuperiore:SVGTermoregolazioneSuperiore, - tastierino:Tastierino - }}) -export default class TermoregolazioneSuperiore extends Vue{ +@Component({ + name: 'termosuperiore', + components: { + slider: Slider, + ToggleButton, + svgtermosuperiore: SVGTermoregolazioneSuperiore, + } +}) +export default class TermoregolazioneSuperiore extends Vue { - showtast:string=''; - @Prop() - recipe:Recipe.IRecipe; + @Prop() + recipe: Recipe.IRecipe; + - get TastActualValue(): Recipe.IValue{ - if(!this.showtast) - return null; - - switch (this.showtast) { - case 'termo-max': return this.recipe.pyrometer_upperthermoregulator_max_percentage; - case 'termo-min': return this.recipe.pyrometer_upperthermoregulator_min_percentage; - case 'termo-percriposo': return this.recipe.pyrometer_upperthermoregulator_sleep_percentage; - case 'termo-inizio': return this.recipe.pyrometer_upperthermoregulator_start_adjustment; - case 'termo-fine': return this.recipe.pyrometer_upperthermoregulator_end_adjustment; - - default: - return null; - } - } } \ 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 a347a044..c48d5f38 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 @@ -85,7 +85,6 @@
-
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 47ed2dc0..81f1ecef 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,28 +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() - value: string; +export default class QuoteVelocita extends Vue { - get showtast() { - return this.value; - } - set showtast(v: string) { - this.$emit('input', v); - } - - @Prop({default:0}) - corsa:Recipe.IValue; - @Prop({default:0}) - vel_salita:Recipe.IValue; - @Prop({default:0}) - vel_salita_lenta:number; - @Prop({default:0}) - rall_salita:number; + @Prop({ default: 0 }) + corsa: Recipe.IValue; + @Prop({ default: 0 }) + vel_salita: Recipe.IValue; + @Prop({ default: 0 }) + vel_salita_lenta: number; + @Prop({ default: 0 }) + 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 c2d1c2b7..a4550cc7 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 @@ -3,24 +3,24 @@
-
+
-
+
-
+
-
+
@@ -29,43 +29,43 @@
- +
- +
- +
- +
- +
- +
- +
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 67baa7c4..1064ae58 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,28 +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{ +export default class QuoteVelocita extends Vue { - @Prop() - value: string; - get showtast() { - return this.value; - } - set showtast(v: string) { - this.$emit('input', v); - } - - @Prop({default:0}) - corsa:Recipe.IValue; - @Prop({default:0}) - vel_salita:Recipe.IValue; - @Prop({default:0}) - vel_salita_lenta:Recipe.IValue; - @Prop({default:0}) - rall_salita:Recipe.IValue; + @Prop({ default: 0 }) + corsa: Recipe.IValue; + @Prop({ default: 0 }) + vel_salita: Recipe.IValue; + @Prop({ default: 0 }) + vel_salita_lenta: Recipe.IValue; + @Prop({ default: 0 }) + 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/svgcontrostampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/SVG_Components/svgcontrostampo.ts index e3bbfbc1..a6429a9d 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,28 +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() - value: string; +export default class Controstamposvg extends Vue { - get showtast() { - return this.value; - } - set showtast(v: string) { - this.$emit('input', v); - } - @Prop({default:0}) - corsa:Recipe.IValue; - @Prop({default:0}) - vel_discesa:Recipe.IValue; - @Prop({default:0}) - vel_discesa_lenta:number; - @Prop({default:0}) - rall_discesa:number; + @Prop({ default: 0 }) + corsa: Recipe.IValue; + @Prop({ default: 0 }) + vel_discesa: Recipe.IValue; + @Prop({ default: 0 }) + vel_discesa_lenta: number; + @Prop({ default: 0 }) + 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 264c1b28..1e36b07e 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 @@ -8,46 +8,46 @@ e diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.ts index f67d5f97..cf2ffee8 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.ts @@ -5,32 +5,13 @@ import Slider from "@/app_modules_thermo/components/slider.vue" import StampoSVG from "./SVG_Components/stampo.vue"; import Tastierino from "@/app_modules_thermo/components/tastierino.vue"; -@Component({name:"salita-stampo", components:{slider:Slider, tastierino:Tastierino, stampoSVG: StampoSVG}}) +@Component({ name: "salita-stampo", components: { stampoSVG: StampoSVG } }) export default class DiscesaCornice extends Vue { - @Prop({default:0}) - ritardo:number; - - showtast:string=''; - - get TastActualValue(): Recipe.IValue{ - if(!this.showtast) - return null; - - switch (this.showtast) { - case 'stampo-rallsalita': return this.recipe.positions_mould_upperdeceleration_position; - case 'stampo-velsalitalenta': return this.recipe.positions_mould_upperdeceleration_speed; - case 'stampo-corsa': return this.recipe.positions_mould_upper_position; - case 'stampo-velsalita': return this.recipe.positions_mould_upper_speed; - - default: - return null; - } - } - - mock_ritardo:number=this.ritardo; + @Prop({ default: 0 }) + ritardo: number; @Prop() - recipe:Recipe.IRecipe; + recipe: Recipe.IRecipe; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue index 6e8cdcaf..097a29fc 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/salita-stampo.vue @@ -80,7 +80,6 @@
- From 8743f1f924b8f9e4b75a65d6fe23b01d44b1498b Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 10 Jun 2020 12:10:58 +0200 Subject: [PATCH 149/167] replaced input with numeric and deleted default from the property --- .../app_modules_thermo/components/scheda.ts | 4 +-- .../app_modules_thermo/components/scheda.vue | 4 +-- .../avvio-pruduzione/avvio-produzione.ts | 2 +- .../avvio-pruduzione/avvio-produzione.vue | 2 +- .../components/base-components/caricatore.vue | 10 +++---- .../base-components/formatura-acrilico.vue | 2 +- .../formatura-cristallizzazione.vue | 2 +- .../base-components/formatura-riscaldo.vue | 2 +- .../base-components/aria-controstampo.vue | 4 +-- .../base-components/ciclo-controstampo.vue | 4 +-- .../base-components/estrazione-principale.vue | 2 +- .../SVG_Components/controstampoSVG.ts | 9 ++++--- .../SVG_Components/controstampoSVG.vue | 2 +- .../components/SVG_Components/corniceSVG.ts | 12 ++++----- .../components/SVG_Components/corniceSVG.vue | 4 +-- .../components/SVG_Components/lastraSVG.ts | 17 ++++++------ .../components/SVG_Components/lastraSVG.vue | 6 ++--- .../components/SVG_Components/piastraSVG.ts | 13 +++++----- .../components/SVG_Components/piastraSVG.vue | 4 +-- .../components/SVG_Components/stampoSVG.ts | 21 +++++++-------- .../components/SVG_Components/stampoSVG.vue | 10 +++---- .../setup/formato/components/controstampo.ts | 2 +- .../setup/formato/components/controstampo.vue | 2 +- .../setup/formato/components/cornice.ts | 4 +-- .../setup/formato/components/cornice.vue | 4 +-- .../setup/formato/components/lastra.ts | 6 ++--- .../setup/formato/components/lastra.vue | 6 ++--- .../formato/components/piastra_riduzione.ts | 4 +-- .../formato/components/piastra_riduzione.vue | 4 +-- .../formato/components/show-formato-info.ts | 4 +-- .../setup/imbutitura/show-imbutitura-info.vue | 8 +++--- .../base-components/inputSottosquadra.vue | 6 ++--- .../components/base-components/inputTermo.vue | 2 +- .../SVG_Components/SVG-termo-superiore.ts | 10 +++---- .../SVG_Components/SVG-termo-superiore.vue | 10 +++---- .../components/base-components/pirometro.vue | 4 +-- .../base-components/termo-superiore.vue | 20 ++++---------- .../SVG_Components/quote-velocita.ts | 8 +++--- .../SVG_Components/quote-velocita.vue | 22 ++++++++-------- .../components/SVG_Components/stampo.ts | 8 +++--- .../components/SVG_Components/stampo.vue | 26 +++++++++---------- .../SVG_Components/svgcontrostampo.ts | 8 +++--- .../SVG_Components/svgcontrostampo.vue | 18 ++++++------- .../quote-velocita/components/controstampo.ts | 6 ++--- .../components/controstampo.vue | 14 ++++------ .../components/discesa-cornice.ts | 6 ++--- .../components/discesa-cornice.vue | 14 ++++------ .../components/salita-stampo.ts | 2 +- .../components/salita-stampo.vue | 18 ++++--------- .../base-components/ventilatori.vue | 4 +-- .../base-components/riscaldi-superiori.ts | 2 +- .../base-components/riscaldi-superiori.vue | 4 +-- .../sostentamento-decompressione.vue | 8 ++---- .../base-components/vuoto-principale.vue | 6 ++--- 54 files changed, 187 insertions(+), 219 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.ts index e7840ff1..482f3352 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.ts @@ -6,9 +6,9 @@ import Slider from "@/app_modules_thermo/components/slider.vue"; @Component({name:"scheda",components: { slider:Slider} }) export default class Scheda extends Vue{ - @Prop({default:0}) + @Prop({}) portata:Recipe.IValue; - @Prop({default:0}) + @Prop({}) durata:Recipe.IValue; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue index d3936d01..ff5e547d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue @@ -3,12 +3,12 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts index 1cfadf26..75ca35d7 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.ts @@ -17,7 +17,7 @@ import {appModelActions} from "@/store/app.store"; export default class AvvioProduzione extends Vue { enabling:boolean=true; - @Prop({default:0}) + @Prop({}) pieces:number; mock_pieces:number=this.pieces; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.vue index af42cc09..9f59e28e 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.vue @@ -15,7 +15,7 @@
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.vue index 9962bcf6..791f5ab8 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.vue @@ -8,7 +8,7 @@
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts index 90b3919c..ad0c5422 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.ts @@ -1,12 +1,12 @@ 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 CorniceSVG extends Vue { +export default class CorniceSVG extends Vue{ - @Prop({ default: 0 }) - x: Recipe.IValue; - @Prop({ default: 0 }) - y: Recipe.IValue; + @Prop({}) + x:Recipe.IValue; + @Prop({}) + y:Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue index c8a577c3..2f860c5b 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue @@ -4,12 +4,12 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts index b89df503..84e88ad1 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.ts @@ -1,16 +1,15 @@ 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 LastraSVG extends Vue { +export default class LastraSVG extends Vue{ - - @Prop({ default: 0 }) - x: Recipe.IValue; - @Prop({ default: 0 }) - y: Recipe.IValue; - @Prop({ default: 0 }) - spes: Recipe.IValue; + @Prop({}) + x:Recipe.IValue; + @Prop({}) + y:Recipe.IValue; + @Prop({}) + spes:Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue index b043eb49..03af1ff9 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue @@ -4,17 +4,17 @@
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts index 4e7b9fbc..bf216419 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.ts @@ -1,13 +1,12 @@ 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 PiastraSVG extends Vue { +export default class PiastraSVG extends Vue{ - - @Prop({ default: 0 }) - x: Recipe.IValue; - @Prop({ default: 0 }) - y: Recipe.IValue; + @Prop({}) + x:Recipe.IValue; + @Prop({}) + y:Recipe.IValue; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue index b4e4df99..d4642d2c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue @@ -4,12 +4,12 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts index 8fc245b9..ac3502b1 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.ts @@ -5,15 +5,14 @@ import { Prop } from 'vue-property-decorator'; @Component({}) export default class StampoSVG extends Vue { - - @Prop({ default: 0 }) - x: Recipe.IValue; - @Prop({ default: 0 }) - y: Recipe.IValue; - @Prop({ default: 0 }) - alt: number; - @Prop({ default: 0 }) - altB: Recipe.IValue; - @Prop({ default: 0 }) - stampoNeg: number; + @Prop({}) + x: Recipe.IValue; + @Prop({}) + y: Recipe.IValue; + @Prop({}) + alt: number; + @Prop({}) + altB: Recipe.IValue; + @Prop({}) + stampoNeg: number; } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue index 1e04fe42..a40344f0 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue @@ -4,27 +4,27 @@
- +
- +
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts index 590b276d..97f0433c 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.ts @@ -6,7 +6,7 @@ import Slider from "@/app_modules_thermo/components/slider.vue" @Component({name:"controstampo", components:{slider:Slider}}) export default class Controstampo extends Vue { - @Prop({default:0}) + @Prop({}) alt:Recipe.IValue; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue index bf3725e2..8b56735d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue @@ -6,7 +6,7 @@
- +
- +
- +
- +
- +
- +
- +
- + - +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
270 °C 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 198f3c38..a0545089 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 @@ -10,7 +10,7 @@
- +
- +
-
@@ -17,9 +15,7 @@ >
-
@@ -34,9 +30,7 @@
-
@@ -48,9 +42,7 @@ >
-
@@ -69,9 +61,7 @@
-
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 81f1ecef..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 @@ -6,13 +6,13 @@ import { Prop } from 'vue-property-decorator'; export default class QuoteVelocita extends Vue { - @Prop({ default: 0 }) + @Prop({}) corsa: Recipe.IValue; - @Prop({ default: 0 }) + @Prop({}) vel_salita: Recipe.IValue; - @Prop({ default: 0 }) + @Prop({}) vel_salita_lenta: number; - @Prop({ default: 0 }) + @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 a4550cc7..339e4135 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 @@ -5,67 +5,67 @@
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
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 1064ae58..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 @@ -7,13 +7,13 @@ export default class QuoteVelocita extends Vue { - @Prop({ default: 0 }) + @Prop({}) corsa: Recipe.IValue; - @Prop({ default: 0 }) + @Prop({}) vel_salita: Recipe.IValue; - @Prop({ default: 0 }) + @Prop({}) vel_salita_lenta: Recipe.IValue; - @Prop({ default: 0 }) + @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 54a8024d..2fef15a7 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 @@ -5,83 +5,83 @@
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
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 a6429a9d..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 @@ -7,13 +7,13 @@ export default class Controstamposvg extends Vue { - @Prop({ default: 0 }) + @Prop({}) corsa: Recipe.IValue; - @Prop({ default: 0 }) + @Prop({}) vel_discesa: Recipe.IValue; - @Prop({ default: 0 }) + @Prop({}) vel_discesa_lenta: number; - @Prop({ default: 0 }) + @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 1e36b07e..d92a19ea 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 @@ -8,55 +8,55 @@ e 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 3e32f01e..9b915032 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,51 +1,54 @@ 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 { recipeActions } from "@/store/recipe.store"; -import { store } from "@/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; - recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); - show: string = "ventilatori"; + recipe: Recipe.IRecipe = this.$store.getters.getCurrent(); + show: string = "ventilatori"; - annulla(){ - ModalHelper.HideModal(); - messageService.publishToChannel('show-controstampo-info'); - }; - - conferma(){ - recipeActions.setCurrent(store, this.recipe); - 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(); - } + 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"); + 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 99c59535..7b9e836a 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 @@ From d51c900173f50e779e09952ce77bdbf6af011b14 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 10 Jun 2020 12:20:50 +0200 Subject: [PATCH 152/167] fix --- .../setup/formato/components/show-formato-info.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts index 97fa98a9..51a48e30 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts @@ -72,6 +72,7 @@ export default class ShowFormatoInfo extends Vue { close() { messageService.deleteChannel("esc_pressed"); + this.deferred.reject(); ModalHelper.HideModal(); } From 133bec82e49d819b6183a92d454bf74f0addf1a8 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 10 Jun 2020 12:22:22 +0200 Subject: [PATCH 153/167] fix --- .../setup/formato/components/show-formato-info.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts index 4d869698..aac8a3f2 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts @@ -53,7 +53,7 @@ export default class ShowFormatoInfo extends Vue { this.deferred.resolve(-1); }; - conferma(name: string) { + conferma() { recipeActions.setCurrent(store, this.recipe); ModalHelper.HideModal(); this.deferred.resolve(1); From c6a108d29ae8aba4c1a1ba3f38d076e674ca272e Mon Sep 17 00:00:00 2001 From: = Date: Wed, 10 Jun 2020 12:48:05 +0200 Subject: [PATCH 154/167] refactoring processo apertura modale --- .../setup/ciclo/components/show-ciclo-info.ts | 19 +++-- .../ciclo/components/show-ciclo-info.vue | 4 +- .../setup/components/setup.ts | 6 +- .../setup/components/setup.vue | 20 ++--- .../components/show-controstampo-info.ts | 59 ++++++++------- .../components/show-controstampo-info.vue | 44 +++++------ .../components/show-estrazione-info.ts | 75 ++++++++++--------- .../formato/components/show-formato-info.ts | 4 + .../setup/imbutitura/show-imbutitura-info.ts | 65 +++++++++------- .../setup/imbutitura/show-imbutitura-info.vue | 4 +- .../setup/opzioni/show-opzioni-info.ts | 15 +++- .../components/show-pirometro-info.ts | 1 + .../components/show-quote-velocita-info.ts | 3 +- .../components/show-raffreddamento-info.ts | 1 + .../riscaldi/components/show-riscaldi-info.ts | 17 +++-- .../components/show-riscaldi-info.vue | 19 +++-- .../setup/vuoto/show-vuoto-info.ts | 61 ++++++++------- 17 files changed, 235 insertions(+), 182 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.ts index 245b0fb5..c5d5dae5 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.ts @@ -8,20 +8,26 @@ import CicloFormatura from "./base-components/ciclo-formatura.vue"; import Caricatore from "./base-components/caricatore.vue"; import { recipeActions } from "@/store/recipe.store"; import { store } from "@/store"; +import { Deferred } from '@/services'; @Component({ components: { modal: Modal, stepfooter: StepFooter, caricatore: Caricatore, cicloformatura: CicloFormatura } }) export default class ShowCicloInfo extends Vue { - - recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); + + recipe: Recipe.IRecipe = this.$store.getters.getCurrent(); show: string = "caricatore"; - annulla(name:string) { - messageService.publishToChannel(name); + @Prop() + deferred: Deferred; + + annulla() { + ModalHelper.HideModal(); + this.deferred.resolve(-1); }; - conferma(name:string) { + conferma() { recipeActions.setCurrent(store, this.recipe); - messageService.publishToChannel(name); + ModalHelper.HideModal(); + this.deferred.resolve(1); }; async beforeMount() { @@ -37,6 +43,7 @@ export default class ShowCicloInfo extends Vue { close() { messageService.deleteChannel("esc_pressed"); + this.deferred.reject(); ModalHelper.HideModal(); } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue index bd411ca0..ffd2dc48 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue @@ -13,8 +13,8 @@
- - + +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.ts index 2983b3f6..8c4e2144 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.ts @@ -26,21 +26,17 @@ import ShowArretramentoRiscaldiInfo from "@/app_modules_thermo/processo/arretram } }) export default class Setup extends Vue { - public sendMessage(name: string) { - messageService.publishToChannel(name); - } async showModalAtStep(step: number) { try { let next = await this.showModalStep(step); - this.showModalAtStep(next); + this.showModalAtStep(step + next); } catch { } } showModalStep(step: number): Promise { - switch (step) { case 0: return ModalHelper.ShowModalAsync(ShowFormatoInfo); case 1: return ModalHelper.ShowModalAsync(ShowQuoteVelocitaInfo); diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.vue index 4fe2d10e..c1aed2e7 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.vue @@ -10,70 +10,70 @@ > ; - conferma(name:string){ - recipeActions.setCurrent(store, this.recipe); - messageService.publishToChannel(name); - }; + annulla(name: string) { + 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(name: string) { + 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/controstampo_setup/components/show-controstampo-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue index 75a34431..2c7bb14d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue @@ -1,26 +1,26 @@ \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.ts index d6c54bcf..73de9f51 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.ts @@ -1,48 +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 { Factory, messageService, awaiter } from "@/_base"; import { Modal, ModalHelper } from "@/components/modals"; import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue"; import EstrazionePrincipale from "./base-components/estrazione-principale.vue"; import { recipeActions } from "@/store/recipe.store"; import { store } from "@/store"; -@Component({components: - { modal: Modal, - stepfooter:StepFooter, - estrprincipale:EstrazionePrincipale +import { Deferred } from '@/services'; +@Component({ + components: + { + modal: Modal, + stepfooter: StepFooter, + estrprincipale: EstrazionePrincipale } }) -export default class ShowEstrazioneInfo extends Vue{ +export default class ShowEstrazioneInfo extends Vue { - recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); - show:string="principale"; + recipe: Recipe.IRecipe = this.$store.getters.getCurrent(); + show: string = "principale"; - annulla(){ - ModalHelper.HideModal(); - messageService.publishToChannel('show-vuoto-info'); - }; - - conferma(){ - recipeActions.setCurrent(store, this.recipe); - ModalHelper.HideModal(); - messageService.publishToChannel('show-opzioni-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(); - }; + @Prop() + deferred: Deferred; + + 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/formato/components/show-formato-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts index aac8a3f2..4f79891e 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/show-formato-info.ts @@ -55,6 +55,10 @@ export default class ShowFormatoInfo extends Vue { conferma() { recipeActions.setCurrent(store, this.recipe); + + + + ModalHelper.HideModal(); this.deferred.resolve(1); }; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts index 5f3be8df..c00cce64 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.ts @@ -8,42 +8,49 @@ import Slider from "@/app_modules_thermo/components/slider.vue"; import Scheda from "@/app_modules_thermo/components/scheda.vue"; import { recipeActions } from "@/store/recipe.store"; import { store } from "@/store"; +import { Deferred } from "@/services"; -@Component({ - components: { - modal: Modal, - slider: Slider, - stepfooter:StepFooter, - scheda:Scheda - } +@Component({ + components: { + modal: Modal, + slider: Slider, + stepfooter: StepFooter, + scheda: Scheda + } }) export default class ShowImbutituraInfo extends Vue { - recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); + recipe: Recipe.IRecipe = this.$store.getters.getCurrent(); - annulla(name:string){ - messageService.publishToChannel(name); + @Prop() + deferred: Deferred; + + annulla(name: string) { + ModalHelper.HideModal(); + this.deferred.resolve(-1); }; - conferma(name:string){ + conferma(name: string) { recipeActions.setCurrent(store, this.recipe); - messageService.publishToChannel(name); + 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(); - } - + + 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/imbutitura/show-imbutitura-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue index bd09f471..1b8a7c82 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue @@ -67,10 +67,10 @@
- -
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.ts index 41521536..f1ef11cf 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.ts @@ -7,28 +7,34 @@ import SottosquadraStampo from "./components/sottosquadra-stampo.vue"; import Termoregolatori from "./components/termoregolatori.vue"; import { recipeActions } from "@/store/recipe.store"; import { store } from "@/store"; +import { Prop } from "vue-property-decorator"; +import { Deferred } from "@/services"; @Component({ components: { modal: Modal, - sottosquadrastampo:SottosquadraStampo, - termoregolatori:Termoregolatori, + sottosquadrastampo: SottosquadraStampo, + termoregolatori: Termoregolatori, stepfooter: StepFooter } }) export default class ShowOpzioniInfo extends Vue { - recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); + recipe: Recipe.IRecipe = this.$store.getters.getCurrent(); showOpzioni: string = "TR"; + @Prop() + deferred: Deferred; + annulla() { ModalHelper.HideModal(); - messageService.publishToChannel('show-estrazione-info'); + this.deferred.resolve(-1); }; conferma() { recipeActions.setCurrent(store, this.recipe); ModalHelper.HideModal(); + this.deferred.resolve(1); }; async beforeMount() { @@ -44,6 +50,7 @@ export default class ShowOpzioniInfo extends Vue { close() { messageService.deleteChannel("esc_pressed"); + this.deferred.reject(); ModalHelper.HideModal(); } 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 f97759ff..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 @@ -43,6 +43,7 @@ export default class ShowPirometroInfo extends Vue { close() { messageService.deleteChannel("esc_pressed"); + this.deferred.reject(); ModalHelper.HideModal(); } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/show-quote-velocita-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/show-quote-velocita-info.ts index de407e78..1af1a07f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/show-quote-velocita-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/show-quote-velocita-info.ts @@ -36,7 +36,7 @@ export default class ShowQuoteVelocitaInfo extends Vue { conferma() { recipeActions.setCurrent(store, this.recipe); ModalHelper.HideModal(); - this.deferred.resolve(-1); + this.deferred.resolve(1); }; async beforeMount() { @@ -52,6 +52,7 @@ export default class ShowQuoteVelocitaInfo extends Vue { close() { messageService.deleteChannel("esc_pressed"); + this.deferred.reject(); ModalHelper.HideModal(); } 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 9b915032..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 @@ -48,6 +48,7 @@ export default class Raffreddamento extends Vue { close() { messageService.deleteChannel("esc_pressed"); + this.deferred.reject(); ModalHelper.HideModal(); } diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.ts index b6630393..fb276190 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.ts @@ -8,20 +8,26 @@ import RiscaldiSup from "./base-components/riscaldi-superiori.vue"; import SostDecomp from "./base-components/sostentamento-decompressione.vue"; import { recipeActions } from "@/store/recipe.store"; import { store } from "@/store"; +import { Deferred } from "@/services"; @Component({ components: { modal: Modal, stepfooter: StepFooter, riscaldisup: RiscaldiSup, sostdecomp: SostDecomp } }) export default class ShowRiscaldamentoSuperioreInfo extends Vue { - recipe:Recipe.IRecipe=this.$store.getters.getCurrent(); + recipe: Recipe.IRecipe = this.$store.getters.getCurrent(); show: string = "activeRS"; - annulla(name:string){ - messageService.publishToChannel(name); + @Prop() + deferred: Deferred; + + annulla(name: string) { + ModalHelper.HideModal(); + this.deferred.resolve(-1); }; - conferma(name:string){ + conferma(name: string) { recipeActions.setCurrent(store, this.recipe); - messageService.publishToChannel(name); + ModalHelper.HideModal(); + this.deferred.resolve(1); }; async beforeMount() { @@ -37,6 +43,7 @@ export default class ShowRiscaldamentoSuperioreInfo extends Vue { close() { messageService.deleteChannel("esc_pressed"); + this.deferred.reject(); ModalHelper.HideModal(); }; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue index bbc1a115..768effa5 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue @@ -1,12 +1,15 @@ From 20a864bfb52cdb3bb19c939fe72c61ee7a6ac7cb Mon Sep 17 00:00:00 2001 From: Alessio Date: Wed, 10 Jun 2020 14:19:19 +0200 Subject: [PATCH 157/167] fix all the numeric --- .../src/app_modules_thermo/components/scheda.vue | 4 ++-- .../ciclo/components/base-components/caricatore.vue | 10 +++++----- .../components/base-components/formatura-acrilico.vue | 2 +- .../base-components/formatura-cristallizzazione.vue | 2 +- .../components/base-components/formatura-riscaldo.vue | 2 +- .../components/base-components/aria-controstampo.vue | 4 ++-- .../components/base-components/ciclo-controstampo.vue | 4 ++-- .../base-components/estrazione-principale.vue | 2 +- .../components/SVG_Components/controstampoSVG.vue | 2 +- .../formato/components/SVG_Components/corniceSVG.vue | 4 ++-- .../formato/components/SVG_Components/lastraSVG.vue | 6 +++--- .../formato/components/SVG_Components/piastraSVG.vue | 4 ++-- .../formato/components/SVG_Components/stampoSVG.vue | 6 +++--- .../setup/formato/components/controstampo.vue | 2 +- .../setup/formato/components/cornice.vue | 4 ++-- .../setup/formato/components/lastra.vue | 6 +++--- .../setup/formato/components/piastra_riduzione.vue | 4 ++-- .../setup/imbutitura/show-imbutitura-info.vue | 8 ++++---- .../components/base-components/inputSottosquadra.vue | 6 +++--- .../opzioni/components/base-components/inputTermo.vue | 2 +- .../SVG_Components/SVG-termo-superiore.vue | 10 +++++----- .../pirometro/components/base-components/pirometro.vue | 4 ++-- .../components/base-components/termo-superiore.vue | 10 +++++----- .../components/SVG_Components/quote-velocita.vue | 4 ++-- .../components/SVG_Components/stampo.vue | 8 ++++---- .../components/SVG_Components/svgcontrostampo.vue | 4 ++-- .../setup/quote-velocita/components/controstampo.vue | 4 ++-- .../quote-velocita/components/discesa-cornice.vue | 4 ++-- .../setup/quote-velocita/components/salita-stampo.vue | 8 ++++---- .../components/base-components/ventilatori.vue | 4 ++-- .../components/base-components/riscaldi-superiori.vue | 2 +- .../base-components/sostentamento-decompressione.vue | 4 ++-- .../setup/vuoto/base-components/vuoto-principale.vue | 6 +++--- 33 files changed, 78 insertions(+), 78 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue index ff5e547d..7c6e02ae 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/scheda.vue @@ -3,12 +3,12 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.vue index 791f5ab8..20cadd3d 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/base-components/caricatore.vue @@ -8,7 +8,7 @@
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue index 2f860c5b..1ffa3d49 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue @@ -4,12 +4,12 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue index 03af1ff9..1ae30513 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue @@ -4,17 +4,17 @@
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue index d4642d2c..8a50662f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue @@ -4,12 +4,12 @@
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue index a40344f0..79bad008 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue @@ -9,17 +9,17 @@
- +
- +
- +
diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue index 8b56735d..6e609061 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/controstampo.vue @@ -6,7 +6,7 @@
- +
- +
- +
- +
- +
- +
- +
- + - +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
270 °C 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 a0545089..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 @@ -10,7 +10,7 @@
- +
- +
- +
- +
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 afa23837..5e28d173 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 @@ -5,24 +5,24 @@
- +
- +
- +
- +
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 d92a19ea..e9eae196 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 @@ -44,12 +44,12 @@ e diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue index faf86f62..1a90a364 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/controstampoSVG.vue @@ -1,6 +1,6 @@ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue index a1662086..8e1dd014 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/corniceSVG.vue @@ -1,6 +1,6 @@ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue index 611366c1..2e72ae92 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/lastraSVG.vue @@ -1,6 +1,6 @@ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue index c4c201bc..be3f6fa1 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/piastraSVG.vue @@ -1,6 +1,6 @@ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue index c1244712..b850b601 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/formato/components/SVG_Components/stampoSVG.vue @@ -1,6 +1,6 @@ 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 c7b15532..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,6 +1,6 @@ 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 c5c80186..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,6 +1,6 @@ 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 1ba481b0..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,6 +1,6 @@ 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 55b476c9..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,6 +1,6 @@ e From 0bda8aa7486c1d39123eed602eb34113112c2537 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 10 Jun 2020 17:26:51 +0200 Subject: [PATCH 164/167] layout... --- Thermo.Active/wwwroot/assets/styles/base/setup.less | 7 ++++++- Thermo.Active/wwwroot/assets/styles/style.css | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/base/setup.less b/Thermo.Active/wwwroot/assets/styles/base/setup.less index 3de4f339..f1324be8 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/setup.less +++ b/Thermo.Active/wwwroot/assets/styles/base/setup.less @@ -96,8 +96,13 @@ display: flex; justify-content: center; position: relative; - height: 100%; + min-height: 50%; + width: 100%; + flex: 1; + img { + width: 100%; + } } } } diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 24e92fe6..93512c5a 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -83,7 +83,12 @@ display: flex; justify-content: center; position: relative; - height: 100%; + 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; From eca07872489d28c1e3c0cd20de8b6e19a06644a3 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 10 Jun 2020 17:31:28 +0200 Subject: [PATCH 165/167] fix minifooter --- .../ciclo/components/show-ciclo-info.vue | 2 +- .../components/show-controstampo-info.vue | 2 +- .../components/show-estrazione-info.vue | 28 ++++++++----- .../setup/imbutitura/show-imbutitura-info.vue | 2 +- .../setup/opzioni/show-opzioni-info.vue | 9 ++-- .../components/show-pirometro-info.vue | 2 +- .../components/show-quote-velocita-info.vue | 2 +- .../components/show-raffreddamento-info.vue | 2 +- .../components/show-riscaldi-info.vue | 2 +- .../setup/vuoto/show-vuoto-info.vue | 42 +++++++++---------- 10 files changed, 51 insertions(+), 42 deletions(-) diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue index ffd2dc48..5caa9962 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/ciclo/components/show-ciclo-info.vue @@ -17,7 +17,7 @@
- + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue index 2c7bb14d..1de1ceed 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/controstampo_setup/components/show-controstampo-info.vue @@ -19,7 +19,7 @@
- + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.vue index 76ebe977..864ca21a 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/estrazione/components/show-estrazione-info.vue @@ -1,23 +1,29 @@ diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue index 120adebc..a0668568 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue @@ -75,7 +75,7 @@
- + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.vue index f69bb5d9..18c8656f 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/opzioni/show-opzioni-info.vue @@ -10,9 +10,12 @@ -
+
@@ -21,7 +24,7 @@
- + 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 052914bb..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 @@ -24,7 +24,7 @@
- + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/show-quote-velocita-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/show-quote-velocita-info.vue index 3a73b1dd..646b4839 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/show-quote-velocita-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/quote-velocita/components/show-quote-velocita-info.vue @@ -19,7 +19,7 @@
- + 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 7b9e836a..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 @@ -17,7 +17,7 @@
- + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue index 768effa5..58cfcc84 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/riscaldi/components/show-riscaldi-info.vue @@ -25,7 +25,7 @@
- + 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 8b79060b..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 From c3b211fa01a54f599868f440ad5b75dfc299a213 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 10 Jun 2020 17:52:53 +0200 Subject: [PATCH 166/167] layout footer bar --- Thermo.Active/wwwroot/assets/styles/style.css | 4 ++-- .../src/app_modules_thermo/setup/components/setup.ts | 6 ++++++ .../src/app_modules_thermo/setup/components/step-footer.ts | 4 ++-- .../src/app_modules_thermo/setup/components/step-footer.vue | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 93512c5a..de274567 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -2,9 +2,9 @@ @import url(../../libs/glyphicons/styles/glyphicons.css); @import "iziToast.min.css"; .setup { - padding-top: 50px; + /* padding-top: 50px; */ display: flex; - justify-content: flex-start; + justify-content: center; align-items: center; flex-flow: column nowrap; width: 100vw; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.ts index 8690d7bb..cd327318 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/setup.ts @@ -54,4 +54,10 @@ export default class Setup extends Vue { return null; } + + mounted() { + messageService.subscribeToChannel('show-setup-modal', (m) => this.showModalAtStep(m)); + } + + } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/step-footer.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/step-footer.ts index 76404fbe..7b2dbc5b 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/step-footer.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/step-footer.ts @@ -10,7 +10,7 @@ export default class StepFooter extends Vue { @Prop() current: number; - public sendMessage(name: string) { - messageService.publishToChannel(name); + public showModalAtStep(step: number) { + messageService.publishToChannel('show-setup-modal', step); } } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/step-footer.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/step-footer.vue index ebec593d..c36d6fd7 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/step-footer.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/setup/components/step-footer.vue @@ -22,7 +22,7 @@ > Date: Thu, 11 Jun 2020 10:44:44 +0200 Subject: [PATCH 167/167] fix buttons of the footer --- .../wwwroot/assets/icons/png/dashboard.png | Bin 0 -> 3621 bytes .../wwwroot/assets/icons/png/dashboard@2x.png | Bin 0 -> 9115 bytes .../wwwroot/assets/icons/png/dashboard@3x.png | Bin 0 -> 15440 bytes .../wwwroot/assets/icons/png/programmazione.png | Bin 0 -> 2019 bytes .../assets/icons/png/programmazione@2x.png | Bin 0 -> 5116 bytes .../assets/icons/png/programmazione@3x.png | Bin 0 -> 9209 bytes .../wwwroot/assets/styles/base/footer.less | 13 ++++++++++++- Thermo.Active/wwwroot/assets/styles/style.css | 16 ++++++++++++++-- .../wwwroot/src/modules/app-footer.vue | 2 +- 9 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 Thermo.Active/wwwroot/assets/icons/png/dashboard.png create mode 100644 Thermo.Active/wwwroot/assets/icons/png/dashboard@2x.png create mode 100644 Thermo.Active/wwwroot/assets/icons/png/dashboard@3x.png create mode 100644 Thermo.Active/wwwroot/assets/icons/png/programmazione.png create mode 100644 Thermo.Active/wwwroot/assets/icons/png/programmazione@2x.png create mode 100644 Thermo.Active/wwwroot/assets/icons/png/programmazione@3x.png 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 0000000000000000000000000000000000000000..3478f9a80d67d9ad976e735d91c4b7a88cb12774 GIT binary patch literal 3621 zcmV+=4%+dFP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91L!biy1ONa40RR91LI3~&0B;LQQ~&@Ck4Z#9RCodHTYGSn)fGS4B%94k z5=;W&6#@!~P_aJRI`~4RwLV~~0*+2+I;d#vICWZe)V9FbTE_mNe~2^UsQ*+eqcdu) zFclvtXsuX5MI-@=L6Rs22xK>}&F=R1yZfDQZ$7fwFJae5CwJy@&OP^>bI<*K=RUq~ zgUCo3L0|-d5d=mM7(rkJfe{2o5Xd zAE^90LovZT)azog*k06xUHkg_`nB2D+1-1LjB>9oKzSX0&-^X{aS0~!0Vm?8KJ)U& ziHeKXB)0E8%_ghwjG6jU}Un#ScL#% z6~=w~z<~p0@O50EWCaWaGZ)$L9)dqjCr8SPfSq}!08yDz)uqNT?Uz(mR&IbfPo`m) z;|2pjT!2ZvhFYVOBh?8qGPb=k?bpfcsiOMYukFF?sf+#}_Vo0;1HOtj!zsrF1_qvj zAf7`FGN5Q*+*A!jC!lTWu#mD(`IGBLOQkmpp;E`i^xH4VB5fvnKTOkGO8??(V*oK88|; zl^LC#or@6AS{=wcMBExVZQv&@WV$i4GYIfKZ66*a7r8P`@D9W?Av@CRzRBE}1iDvTXRv zynZ_DS39MYv8X+ty!Q3>B_vpo3iC*~M^0PxlncZaKNy=d9>5-=M@vgfZ*~KHAnf?km$9TE&!}o9UmgyJ_dvDU zt8PC{24)w#k8*E6Wws9cU*Gnn-1hKR`RN&>Wa+%o#-^yK$beE_&X?T&#cOZ%J`eq$ zS?#p!kTL^%#Wg^@n!(zG(>rB+8aAbl_9<^u^`km!|HS&;a^GJ+5iAy|t4fAQJ3M7+ zYikpnVp3LCCIm#a;rod?3D~Gb&5(-z4vT(k6oYMqVB- zUwu+HwgmSNF#s?l6bJ&ts({dEhVd^%{|Sic=s@GE%y(wM;Bp#q(1EJAPoI`8w|Vt( zxT8m|xo3mC^WhiB24onPMk3D4h|9^fsZ1actoix*1_T8{{dj%bI_zV zg8_%LIRHz#0JKjj^)x8u?LKD2;=4D~253eQ0A>UMVdmMs z=wI7PbxcxR2WA_ELH_Z*OfdL#1w#i@%E0VCTW<3jFlBM<2{){KT|R2~$}A20NlOCH z2tL0zb(GmBbXgDt%?$NL>SuiT=f~$ki?7VUfF+phD0bS3wsjCtMC1F;ukIRF6StuYg>MG3SH5&+o#z1QOG#$=AD))>(&ej=-_mvqqr_1dD zp4;3iuWmii&tG|Qf!w=fnpBo2k3LOfDsht9rXTXJ{d=F8bRJS4B1zI@ANlW}T!CXW zb#mAlL3@pd{u`UxW!2+bq^mn>_LD>+Zb1CS!kIGf?1?)5u{SjuTg4X`_<$3#2Veh2 zqrCF&=aw6hqF}x(y?DG-lqEkU*!ono+vIU*B=-k`!v=~0j3uvEyrdZ00^Kp7q$|HB5Ba7#sbj;Ei$X>@% zfA*L*?~I=j3}4HH&RSYpHi66~Z&I3!Q#de-%GuU5wq=gGtEX+gWAyg+x=Vt`EbkWT zhk7~&dG$%2Mf+5)c1o#(zI(=w9s6hU>5A{nfP)?Cgil1Dias&+ad2%bwPoq-`Od-D za$OeOFo$BVe(kZm_5kBk)k{ZxgMoq8aR3geMR`)K?DNW1mdRf46SjZbS0;N~SI2Z@ zy#V7?^_!0RI$CLrr}Zjc;d|gb^-k^a%7HaiJzZ{719k-#lPi0~^rmwNSfd@w`pyij zH~#I!TMXE)bg6BdR~czKxwkK!UOKs7dw{Xd1d-t%-(Wa?o>zZ5SxsGUVA@aW)u9jV z_x7pWre2+)*h4ptto}P~GL<2LF@F5`ClO=|gJWU9TFBe-&)a%r>+U1&q*b3fwq81W zTdw2i7_YszU)tJJU%71G%3Jnp$BY^CUu_RYhXe-Fts4QYqC-xI!D)b$DZjlbEKB~l zMSitvGsUi+@}z^=+x==o-z|ugLx{!|s@>r$9S2hGTjK`}~w4fkB6p zCQVv{z?#)LgVajd_NIv3{NOfeYdIjly>_~r1v+`^Xu#yvmQ;)K)KguxuP7~$UoM_0 z2V+HY-Mw$PfT)f7B*iz3rzT98(5QYh(IJC@?BI#=dks#5WiTIq)*-h%v`r4Sw#ofB z&Xy}Ls5j$lplU;*^0vLosIPMBdhM6ZA1Ajgnkk0>$o0Q_Lz)jn+zg?vQ#+9rD{1ey z3>geMuCK3u5}^D|gVX?4J+n*NTECJ%-8f4YTv)F`xsCA_(AD?1m=E0dVl9ZiTB0i>{-db83AB! zkSR<5oFDs*+uNn?#6qdBEp;8k?y)ITrrhKTd@{oZgZ}sJ+cygru`Nhx^R2)RUU{2p zOqvDkW3k&_ei-&!ag?5e?CsX^{LA$a zhql2-5PTT+rk`zAN4FEdlXhSu>;mYWB_$;t_^r1SFLr&f!KaTv9wC>k_gQqwHfv!O{=Oid^XAGP)!L}nKAJaBK zG<^VxdU1dfLyaRFK=9j|Q}O#MeWlJ|G_qN;1_pz|I&B9i%MkpznCK^*FvMnpsv1)k8!`0Q*dd%9c zvdVvLnPEqbcZMCf&ff>wKQZ|}W(o>evzhW^jM-1PZ*ae0X0*1p=5)VceBVfB*udZ? zh$_r=9+nAz*yioiy>xL8VH>y3NNsH`FIzpfZMOMu91Knf8IcE2reUe@FOGXr%}o@O zkKk{&!uaE~@TgIvxY_n*8vxs%@2}&wQMP$ZlJ}1WfbbcX&kQF^%>4o<30FycVO0$daSY&CQkAHwwV> rl9p2-yfJ($+W>-Kr2XM4n?e5%Zu86YT9K?L00000NkvXXu0mjfi|6qE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5000e8ee168c22bb0d19bba042b630d022c85099 GIT binary patch literal 9115 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 Q-^UnbdDZt7vPOab18A?Pq5uE@ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f6ece941d242d8a0bf49d3e70451a0f9d28e2283 GIT binary patch literal 15440 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 AeEH}l9EfgEc9udO)<4f zG`@z!NX3zZnPqYUt`Yt=ls4uzTf+M-sgGW=lSdX=gs!^bXDG?vj+eGD5KAy zFfw+Q0SQu+b)}N%AsNXLFs?{IO|PC%HlVP6=m-xF09>X)0J+lx=7tx zCwzk@QuSf551fHvHV*FG3b51In{vfu$l2*F3wT=O^fuQ33JP8ieUfYn^#e!J!>C9r z#EAGm!yZj63s%}Vb;~Laha*Pdi0A9q+P{+4T9za&8{0D^GLd*I%f08+|Eac}qV%W+ zL7e}PVTb8&gvQTa!i1DS1X7_U@|(d7I4;A(OKt1|7z{paQF=DS2mgHuq>VyR6pc3@Rv)2seLXIUhKa8G z26eyIm^4<8h=UYA{7LHD!WQTsr zHao(qJQ2`_4Y^m6eyPjW0f9g`nwhQqYqFrb`6jdjUa8LTT}3_jUatSpWdPT>j^2o7 zWhUqu*w53mE7mWuC*U7zd>`TW0<+Jrt*wm+ZLJ*~7Huv%7yg1O+;t)dF>7Q>usIyT zRWP$nrfp8P-+*;^CKCON>LjR_(LZ zfMdNJa6I+p#u!c|?PRt0iW z+9yLc>R|<@vu01x=XFg zU0SPPj90Ao!o&WOsrKvGKBTCjuPg7^$9Wa{C!P3lCO%{5cLy3-`s3R? z+0)Z=HD}%*iB){mAMY1i9<-rr`U)ZTfixH^>+e8+1QuyVIzrih_J!B7+(06bl3cBR z74EL-P=}%ee7`_2?UhRH=;-)k#AxHL`U9oi?G!L@f#K|Z?A*pn@lD4tEBnM7ppuHN zQ&-)sFLVwHLr{lW175`t4fjoDSZ`z}sfbHpo5SVFkw^h{_2?hTxN(6=o|nCzma3|o zGTYx?U0VsS%{YR!JlDg6{B_OnMbU3j!xOmM>DDZ6ZdJ+31BE3#xP@BeX4pu*nt4_5 z^fa$RrHdGx7|L#F7MA%Pl!0&ME2_c&R`2GEwu!B{MII?WP7yM$pG}Xic?z<-X}do1%v&O-xKwpV!oM6BK7E z0|N-U>mNl*%7`kepyq88NOlG*;et&D5cItG<2m!u)`@*{KPlTgW-*B(or?wWxl4H*bR{mR2o~&Dp+ zwlM5H#t@vM`AA;+eV){?FF$2DKVeVX+}s>g`G@N64n%H>&9{Y|Q6TXdK~VAWN&ZBf z+RU}@su<*PI)LGHcxGlM7zlc1Bydiu#e@9X74rGtD2h{JM&;|J#YHP2x^z9;dien2CM(Pk z6T!Z_D&jpw80}*`j#2Hh!vfakwXT_~or?%oh=Owi$+SQJku<#9C}$ia4;Bbr)o`>|Rkhyiar^z0prB?naTfe?Pw}W6|Su)m=rgzKK}V&(WgC8HOSB#e*^b|zwiJ6 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..28a763cdd8f95d6d0400ce64676011c1a9e2e0e5 GIT binary patch literal 5116 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 M)%Db>R9}bxAMLBp_5c6? literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1c6b55bfb82d71551714df4872f5ef0fc07e89ec GIT binary patch literal 9209 zcmdUVWl&tfvoEs2-Q9x+2qD2177d!kf_nnNB@kqB3j_-ef#6Pn;1FPO!m_v%9D+M6 zEG~ERuUq%iyH)Swd#7qn&zYVxbEbQy=hxFGQWLC1h)0KqhK5F{qO72eqHt8|!@)w` zz2ghVPz2pwTS*S>=Lo|t>OsNUK;^@mH)y=5JPsOqgdG~-UlmlMLnSmc%v^LdOcX`` zSC)(MKU{b&=KtjT{#7g(R&GK=V}GxrAp6!E{m_)K+Emv=TJU&t`)P3ew|LGc2+UyR z_=F$2<7|1l<8sk2DjA(T93}0I8GET18YX`<=uPc1>liEAMbzlY%2qb$e*6MbuZf~8 zF9;3`yOWU%P{x3Cz+0>K7j6SCE9#ELkC)TDMw`7lDx}<3jC>CpF6VC-9J1Oj#V@nd zI8q7F3I&mFd+W{J?|9x;y8dZ$ zS=pGWG$w{`V~uCc9zN(c_>tm#a2tRzIbe5$Le5|m|ni@`nD>~8bsDvp?d z0P1pogVYeAupyl!B9inxaAl|B_Z&%ou^o;t@N0FjyQFiN4Jei@ZUwgCl|69;V1$G) zZ>ikg-Ud&5Xa|&3@K#Z_STtJB5D~d0tX2ntL)JeudoQx(#8QmBwwGnA;~l9%>*@@` zfdIhw_TrrNoL>suTNpj9nOu}`X7b? zqvv?xGMy2@a@i2OK=n*Zg$?%ZxPcOvWhmtP2GnggTgn&9#=b*;uc;e-6Dh(A#IROy zrKQZ&BO)SdmpL(biZE=5b*ac=xZYLXrJ<3`lHpuA&BdX}d+&-T24IkXyOi?QDycRt zM-bAV52lfnRxV^E;wGmZu_0to*f{wn>2*}PNSeuI9jhD?Z~zZc_@G%y72BDc6hF}W z-r+gMc08{u$u2^Y$HN!KJVR-3ac@#cnObo1VzPv8)bL`8t?RRJ6WiDu5?o;4>&5lnyQkyQ=;Yg%yOc=$MBASq|D&YrlEe z=Gv~L`4r4XzBEOWxlMU|onv(wobX!B?$B|6naJr1P2syOW?6HG4ZzlB??QO5 znmeZ+#Iphn@pS!Vqn zYgAmQBykLjkyKpF@g{}BcB7K>Wiw`YD3CD~OzdBuSiE(i^LWRE&G72^~-1V5j|E;a%-I#cFaP~7L&WDE=H|8!ycs8PDz zeKRl5avkZp_g>Z|!gJ*XX)PyYa6MZOZO3XPLGp1gxJ-2GHa^^Oc;HqQnKq{Au-mo~ zGF#Q_i!tp|dsxK!Y+Lqo6J^s zbQkrQPhGVDDv6mC=Te-|?xZct?npUW$b=^Ip#}ZtII!idE5Rk)Lyq}di!|g9VQAxZ zOvoDLXtMyjhN@)7UQHs`w9o1|5oQ%0(9#P7e6*PUFEuzt3pU%{} zH6BM2alU%w3;!6ug)~h|;2NGBO}cif+b4EzHs?J1)C3q9-k+(w^_weKWsqg#Q_+fF z#pqf1ftCi``9u~Hs{eMXpst$G3rV0ypK3SX0@|U`BlL{-J5|kJAikct=%&-zwuzG8 zf5@D_`k0V-oiJ!E%ulhB(&JLGa=ud#XIATfdl5Gf*FmH%RjVTy%ccx|*EH=q_8}fZ zPa$NHD1vM*d$@R7@E$3tkL;HVVzKx{$0(_FEMMn;d{UNFM_j6r{kCZrQV;8q;;0NM zo_kP-X?#Ci>%^xzwL7X};)7^|KHN7ApWf07dQZf$&?Z)4KR1}^7iD%%%;EEU$aEjM z&Q2~O&l?^JiepoDBufct-G8Ibc(qFA;+I zAZoj4pRnvU`>G}`MOyIlg`JAdUamA`e)OVgPOdc0lgD8x`{=VvE9A}*^&V&fBO=0G zK<@w_MsAd878ueYD zD@%fmr5e(WmaFs&HDdwuwcFhfVKUF!SGc4VROhejqcrG9AcmPQk|ng$ zH8>vwOIDb}d|dF*&W}R&?0ZR3 zQ(Hbl9`limLNl)VjMT>VM4dDdNBk`1!5b10HVj2Kzbpw^Q#Qb)72;e(pKdy7EaKVuV}=4>S>Qmf zbUHK%61#F0duehj7t%ULZG&0AKi|j7XjpR9TLMaR!bMaq_!gKOwG`%F?K;wSumrQN ziAUm7{A6QuFNg2!*xG>tqS=)71n5nww`Cse=_DXKK*SsNxsU7nTc5sHB<{x;5A)p(+}ngt_qNGUx&p}CkE3@jZgmtep85PP`^V=xIp{W zyGO!5Btb+Q1vrUmrtO~hPG0NcqznSS)Dq;De?K}E{r#Xm}sAXj+kYYFCMn$^4 zI)PG+xgxkrgvDeD^z`afyT_b+Z|@Ct?3_dZfUnU&*qPxEJu&I#$jsQEKL&Q&q^k^y z@k7iEV!avQUC*IbJ37@l7CC0<)8ZdqR37`xLZZ(X|miD|K1Q z01B^ZOO&B~9mH?)i$pfGQr|AZGnYm&KDXew^ItJ(^|zTNX@B^m=$THbD!0=4%#1j z0;e1`P4e4d?8vMzgY;b`uyZZFAa$(S*gutb(|4e03P|HOl>1YRv6nn31e3}E#0*cs zedn~AeZ;6DnxSEceBmAA`>T_r>$|x;`G|+NjrvMfFU8rqJ~}?!T`O6Yd+?89OYlU0 zcsd@M&5M>>GT8Nk`%kz)iMo!dGtw6mlpaBsUB8}MHAE>bua+k8d+Fzdj>uzg#Mg2j z?<{Piycl%tLVXS!V?9voo-I_aA~Jnumm*-Iu{Q#rq-irTsB7|4dz6iaSoZr7!$ z#-lbkDiLTlI5A)LQ($zxVQ8-ehlE-?dE?Y5bq4I=0U%UvBnA|#fpG0a_*Ak(<%>5BSmWzsFa;9rnx~KL?#9F&>v+X0 zCS7C-aLGQU61~Br)&A!46d&0Goz9_~B&iZI#|o(ZdzNL4=!vw~5m~5oWkVo*_TP$V zh0X5SG@W-Aq@5<|wm149_XhMyuhb}H+012af%~heIOIQccFy?=GH>)&T*|&EeIY+9 zlnOI{5H*<_C$oFI@GKUSGmac*pgcEK>*s!gQu<88%>!E1^WEonwQ9^nC^-l*cTINkeWV_+(uh5eQ%0ata5AI5Cw^EXufj96O%7y3S zA0z$VM`MXMI<%Vv^0@8(g&?SUQs6m{7r)`@(Ob=XdCzbfDhOH~LG?wj6}wg&{>=S8 zHDJTDXRS!SxK9i=F=;9b6YDmRX_3~Ns(GL97aMPAzCY>p#Wgc)2)ykZ*(i>?XQ?VB zB~lC>4v%s9n<991y+JP8E;MPDeJ^|vfG8ex*9SXw5VSH>H5Q-;-A!H|?BI>O^Br7W zUDa&?>7I^Pa@^pR%ibJFEhI*cKj%uE3)>A$+`k+8?Nm=U&E?T~P z687hH^{+X~;IG;9#8V;PWRnEeI>y6!>dnJV?*xfBu)>ZoQ4LVfQv9(Rs6!R5svB1x z)Vb(R*oG*CDh1Uah`y?N(|&)iWJ;<*zk9*UhpV6A$dj?7_Otn&Q?0?pPQC0N!PKLS zUdqzH-l++Tk7RsVpY;g1zRrI(tn+%0g6|BnAgnU3uO%}jmM^|ex zhwX?cBz)MVgKYSfBgGudThf|({eG2D(C$y>K!Bl`!}p9)deA_*x}uqmHM7xtcb92^ znx?nwHdSFMYid%skD}XNO=hy&1RKP_47GThZkU24q>ZTr%@$Kaecuw3Lv-`b;t@O& zXROvz6V;1*qB(6MuX|(PrUh5wb&NUdUUN4Z-x=X?+WjaO;7X7vL`wqNF?H&#FwaMl z+EuNliQ4G)=Nqc*bQZFT8G*AYS~gTF1E|nr@gWmtoq`Js_U_{VT+6jyyC2uCa)uv} zQW(ARI>VO|0husfI}zEC$f+cFC7P{R4S%Rfnz4UJ76wtT^13{O;f%vo9tfq`Ocg{B z9G`CQIZga5aFEA_mOJaS^;8kjSz&zL&|X?xPB!z1tgc8#3Lt3g`EDja#r(PyCOng8 zvR(EbIl0nI&h@U~l#Td@j_#G+cU{DI1;<*ikOtmZ)K#_mcJ!WY^9*)eubcKW{OdA= z9*FQ48$aSCwBiTFu&OX+kfH_U^f)5FCElTpZF!HHT{A2_m3nsM@5-Lx(A&eIdj5}zoZ6A32!Z_sBmX$G=K}@FNW6f| zI_EK4J+h#l!-Q;^5G>lkh8Q6CU}b=h0jKoyRam>;n*swB9K2MM!`0R6;I9J2$Zod{ z!?YGX(C@TwBqe5@#Qr<4qwJru%4Ev?Bq-#b1tO-Nj4IH2sA&C!Y?R?=M+)yH=9`@L z>rey9t*4$UHg6@A2zYZ2l&VF!4YO;Qo~S2lrBQ5VC}p>-rgIkv@C>|+1A275(0XmE zo$SB_*$X+=L)mXugF>_zpe?C}g$E>CJwKhlkPfCnUS7qn4hh0aylCMuFq4Y;LD+imF|-m1&p4j2;?@WHp@F8=E}QzU`A$@a1yEz2A1vq=iWW;X)?SEUje9X_rEq!DAqgv@0ebzTtG-G2`1>BX zQdQtrhd57_h6Kru<`R+CdimDEczsLJ(TDB!hNk4xcaDlGajnWF>JSlGxm=OyPQRmN zMn?bRnZTtcKJkY>wI$ys3#El={kGbJzir0VaEf`sL4oBL;f1g-z{50aQ3e;=j_<_e zsQCj+fi!LrjX4y2WSDN9LzuF`4Ue%c|CH>wH@#aLB^oT*{Z48%`D9~za0`UJCKTmzg;Kjo^*E#EMMw|o6f`QR(4MxejDH2MtHDn z%>@om)2q@8!c%)@@rFk%8WslEN;W+Rkmol0VKx_MDoCM?=nC_edoj#VjJ70YJTd6KF?5pWUr_tBL zu#wi78}ddtux$F+>2B(6>cH!!L=wV#S6uKL*avaj?3hhGkpH7g%+*Jx@?5Pak=a8~ z`4RzQNKl!z9!RQla$H23bp`*bCP#OYyUF;Q3@4&6?@R|A5T^H{w^kHj{R$ek}7L%5LB!l2E8;JXA9X3k>?agF8r-=e#TZ7>N$LXyQe!$FZ81 zV!tw2H=l&e6o5-@kn3H7nWH}tT1<<$;GL79h-CC`pTa5pvwwJHD_WC@vzM^tjU}<0$ZDy1ZSr;ZJ**9oDBpP`ImdwIln%JZ~XZbakG~J8gI+ID~^^#ldSIpBW-3o~VO~O}qA}66UbvGZ^OSWry zrCV6gg`fk^NkpcBvV}2_@|-rLnxD)|4Jh~f_63w6bjNL*jM2U%Jz*k8IglyIo4FEN z%);d>3s;nfOy_>7zm>>2<`dva-E#@fkA2G$SejTZ8-pXv{1T$!8IYMrN&%(Gqvc^t1Z*7>fN z&%9c0{T+?{k?_!K;%8rau%=bceQCyPa*j_VnjC~2R$ePjg4g|w#G8L%t|xg@75Va5 zryjGSajlom_lL}=O)sL6rI5fAbT?Ny94n_J?I@`cY@IuQv~s^z1a7mf;N~9`aO%c_ ze5E}9c??`0KmB`;7I?O$X7Mw)Y_Ol%DW}$Xj61~Y-Mel}%(0WTLRn>&j+4Wsf7VE9 z#h;({VJSN4^Vu!^KZ9ae$ule;Bnc?ps)Pn zNL|%!Pk^ps0S*~qI1vfPc4kS~rTH}H$#;Baj(W;@!F8#(NK=cg5R&<-*jO&EO{b)i z#B;pj{WGce^-oO1m%}R*GUw95D;aL5$`Vn6fM$>~fSJx_&DwddkC~4==C+)`dTjd% zj-NM(G?wV=ifr=*A#?b8qRXvMR1#2lQy|$3F=3`WPF-m3JHEH^fX(dgXZBbG(+($d zJ&e^~@SxPvXP}I%k2yu$e;Cm`iSSej{i|9#4p8~>8fU)Tyk)t~YyTo}CF5Z3vA%TD zLo*5Ll~G+emB*P>H}Wk9dj5HvBk-blTm0ppwUjrr1^2ZF6M6~vwTD!5RRhim{sZNO z|BbljTfL4yh^H+MPKPE__5e2v`HAfeM*Ng}e1>!chjhRLi1_f$p$L%*7!cY0zq0Gi zTm~~Sa^PUzA|FEN2 zcm~Ch(;$%H9iWEGTST8nZRmlbWk|t_2*<xKvy~DNr$A1R>nY_=Bw5Xr}xbghD zQrjTn<^#xAk5z#6kR#v*OV+mJz)xi1nb|nnmo0J9+&dX;AZ9R-J8@dW<(7kju$J-RDRR7Kc$+sS=b`r{ftZF$6$kcQ{Lu3up3p?SBL{b zg?v64rubcUyVDh9f&w2*^N*Z&9Aw}TBEZZ7;8gInW*>BVl5< zwG3HFD|*DF5pPocCgzOIVw3$9ES1cvmFBj0t6i=E^r7eoji!2b<2#}|EfU3o&W$?j z_Kg#}LJCKMQY!UhN5Gw*%+B~>8)u;iO{MLZF8}Z~Q9bWn??}?S`)Eu|%u(|O`)Sz` z#p!zFv+N(fB80xa7YDQqOiT~{WeAusWIyBw7hpr{IwsnWfO(BEg=KI17j*YyTm)~}8qGHf5i{P`K8rGyZzKF?);7~V!g6ZfJ z`uSe$E;%L&kEhCGSQs|yKmFe0PyxQ26!7W)3~PUUB%R1D`bF~PL+eY*ioZeR)Mnmm zHUcd>`GdVRRa8sQ5MB3XUZeU0jDq!?=&aIa>(pl^&0?=SioD&(ZsJ+<2zNqNS$;wP zeA`e8>Dy-E70d@3U z^xtxFMAtxfRci}c>GoQufNL0=Snj%&2cCJ=^DiVcI20U)Jc~-s8ZU4-VKA6!`dt}3 zb?_8Xu9~Wrl=@D=LeH_O7$X3swEf=Z6%L8nnb06(AE3{*(O++NY5)&?cUP{)t~{R?S2K>ih#tFCRf?@{x@@0km(Z0~nPiz96&A(ogU zEY*V0TV4W#evUQZ-_m~j{J0m(nQ%&-U0ne9yK(1>bhKsk|8kd4IG2`Ayt>=Hi8sr{bA#`T5((kAc9>i*aLxb`E97&Gue8hZP`P9v8s4wH+Z#OE6V1=J@ H79sxyU`nrs literal 0 HcmV?d00001 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/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index de274567..8287ac5d 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -2,9 +2,9 @@ @import url(../../libs/glyphicons/styles/glyphicons.css); @import "iziToast.min.css"; .setup { - /* padding-top: 50px; */ + padding-top: 50px; display: flex; - justify-content: center; + justify-content: flex-start; align-items: center; flex-flow: column nowrap; width: 100vw; @@ -6756,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; @@ -6764,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; } 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 @@ -