Per provare a farsi un'idea bisognerebbe guardare il codice entrando con la testa in multithreading;
se è troppo lungo potresti provare a postare solo "l'ossatura" del programma con le parti presumibilmente significative
ed in particolare quelle che accedono a risorse e/o variabili condivise dai thread
( ed un thread principale c'è sempre oltre a quello del BW);
l'accesso a file condivisi con altri programmi sembrerebbe significativo
HTH
[/quote]
using System;
using System.Collections.Generic;
using System.Windows.Interop;
using System.Windows;
using System.ComponentModel;
using System.IO;
using System.IO.Ports;
using System.Runtime.InteropServices;
using DizionarioPeriferiche;
using System.Threading;
using System.Diagnostics;
using System.Windows.Threading;
using System.Globalization;
#region USING SOSPESI
//using System.Windows.Threading;
//using System.Data;
//using System.Net;
//using System.Text.RegularExpressions;
//using System.Net.NetworkInformation;
////using gestionecomandi;
//using System.Collections;
//using System.Text;
//using System.Xml.Linq;
//using System.Windows.Media;
//using System.Threading.Tasks;
//using System.Linq;
////using System.Text;
////using System.Windows.Controls;
////using System.Windows.Data;
////using System.Windows.Documents;
////using System.Windows.Input;
////using System.Windows.Media;
////using System.Windows.Media.Imaging;
////using System.Windows.Navigation;
////using System.Windows.Shapes;
////using Microsoft.Win32;
#endregion
namespace Supervisore
{
///////////////////////////////////////////////////////////////////////1905151830 TOGLIERE ORE E MINUTI
/// <summary>
/// Logica di interazione per MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private SerialPort sp;
string Versione = "2001081500";
string ResultTitolo;
string ResultVers;
string ResultCOM;
int ResultVel;
int ResultTimeOut;
int MaxErrori;
List<int> NumeroPeriferiche;
List<string> comandi;
List<string> NomeCanOrario;
string Festintraset;
int Index;
int riga;
string testo;
string indperiferica;
GestioneComandi gestionecomandi = new GestioneComandi();
ObservableDictionary datiperiferica = new ObservableDictionary(); // Dichiarazione dizionario per immagazzinamento dati periferiche
PerifericaTipo1 PT1_1 = new PerifericaTipo1();
PerifericaTipo2 PT2_1 = new PerifericaTipo2();
PerifericaTipo3 PT3_1 = new PerifericaTipo3();
LeggiFileConfigurazione leggifileconf = new LeggiFileConfigurazione();
Festivita festivita = new Festivita();
private readonly BackgroundWorker backgroundWorker1 = new BackgroundWorker();
string[] Colonne;
int TipoPeriferica;
string idTipoGiorno = null;
string idTipoGiornoAbbr = null;
// Queue PerifericheDaComandare = new Queue();
//bool lampeggioAllarme;
//string NumeroAllarme = null;
//int ritardoAllarme;
//string GestioneAllarme = null;
// XDocument xmlDoc = null;
//string pathallarmi;
//string pathOrari;
string daticli = @"C:\ARCRETE\DATICLI.TXT";
string path = @"C:\ARCRETE\";
string pathset;
string[] protocolloIn;
string CodCli;
string CodLav;
string RamDisk;
string pathRisposta; //Protocollo a programma dos
string pathComando; //Protocollo di comando da programma dos
string pathSemaforoRIS;
string pathSemaforoCOM;
DispatcherTimer timerErroreStart = new DispatcherTimer(); //Timer per arresto START.EXE
int timer = 0;
#region Nasconde i pulsanti ridimensionamento e chiusura finestra
private const int GWL_STYLE = -16;
private const int WS_SYSMENU = 0x80000;
[DllImport("user32.dll", SetLastError = true)]
private static extern int GetWindowLong(IntPtr hWnd, int nIndex);
[DllImport("user32.dll")]
private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
#endregion
public MainWindow()
{
InitializeComponent();
InizializzaDizionariPeriferiche();
this.Reset();
InizializzaSeriale();
//pathOrari = path + "ORARI.XML";
//pathallarmi = path + "MESSAGGI.XML";
//CaricaOrariSuControllo();
//this.DataContext = this;
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
#region timer
DispatcherTimer Timer1 = new DispatcherTimer();
Timer1.Tick += new EventHandler(Timer1_Tick);
Timer1.Interval = new TimeSpan(0, 0, 0, 0, 1000);
Timer1.Start();
#endregion
var hwnd = new WindowInteropHelper(this).Handle; // Nasconde i pulsanti ridimensionamento e chiusura finestra
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU); // Nasconde i pulsanti ridimensionamento e chiusura finestra
backgroundWorker1.WorkerSupportsCancellation = true;
backgroundWorker1.RunWorkerAsync();
backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
}
#region Inizializzazione seriale
private void InizializzaSeriale()
{
try
{
sp = new SerialPort(ResultCOM, ResultVel, Parity.None, 8, StopBits.One);
sp.Handshake = Handshake.XOnXOff;
sp.NewLine = "\r";
sp.ReadTimeout = ResultTimeOut;
}
catch (ArgumentException e)
{
MessageBox.Show(e.Message);
this.Close();
}
try
{
sp.Open();
}
catch (IOException e)
{
MessageBox.Show(e.Message);
}
}
#endregion
#region Inizializzazione listWiew per visualizzazione stato periferiche
private void InizializzaRichTextbox()
{
System.Text.StringBuilder builder = new System.Text.StringBuilder();
for (int i = 0; i < NumeroPeriferiche.Count; i++)
{
FinestraProtocolli.Items.Add("P" + (i + 1));
PROMPT.Items.Add("");
}
}
private delegate void Scrivilabel(string text);
private void WriteToLabel(string text)
{
try
{
label.Content = string.Concat("TS=", text.Substring(6, 6), "s");
}
catch { }
}
// Scrittura protocolli di comunicazione su listView
private delegate void WriteToLineDelegate(int lineNumber, string text);
private void WriteToLine(int lineNumber, string text)
{
try
{
FinestraProtocolli.Items.RemoveAt(lineNumber);
for (int i = 0; i < NumeroPeriferiche.Count; i++)
{
PROMPT.Items.RemoveAt(i);
PROMPT.Items.Insert(i, "");
}
FinestraProtocolli.Items.Insert(lineNumber, "P" + (lineNumber + 1) + " " + text);
PROMPT.Items.RemoveAt(lineNumber);
PROMPT.Items.Insert(lineNumber, "¦");
}
catch { }
}
// Svuota la listView
private delegate void CancellaRichtextbox();
private void cancellaRichtextbox()
{
foreach (int i in NumeroPeriferiche)
{
FinestraProtocolli.Items.RemoveAt(0);
PROMPT.Items.RemoveAt(0);
}
}
#endregion
#region Inizializzazione dizionari stato periferiche
private void InizializzaDizionariPeriferiche()
{
for (int indper = 0; indper < 128; indper++)
{
datiperiferica[indper] = new DatiPeriferiche();
datiperiferica[indper].IngressiDigitali = string.Empty.PadLeft(51, ' ');
datiperiferica[indper].UsciteDigitali = string.Empty.PadLeft(8, '0');
datiperiferica[indper].IngressoAnalogico1 = string.Empty.PadLeft(4, '0');
datiperiferica[indper].IngressoAnalogico2 = string.Empty.PadLeft(4, '0');
datiperiferica[indper].IngressoTemperatura1 = string.Empty.PadLeft(4, '0');
datiperiferica[indper].IngressoTemperatura2 = string.Empty.PadLeft(4, '0');
datiperiferica[indper].Errori = 0;
}
}
#endregion
#region gestione pulsanti SOSPESI
//private void fasceOrarie_Click(object sender, RoutedEventArgs e)
//{
// //finestraAllarmi1.Visibility = System.Windows.Visibility.Collapsed;
// //FinestraProtocolli.Visibility = System.Windows.Visibility.Collapsed;
// //FinestraOrari.Visibility = Visibility.Visible;
// //fasceOrarie.IsEnabled = false;
// //protocolli.IsEnabled = true;
// //TacitazioneReset.Visibility = System.Windows.Visibility.Collapsed;
// //Visualizzaallarmi.Visibility = System.Windows.Visibility.Visible;
// //Aggiorna.Visibility = System.Windows.Visibility.Hidden;
//}
//private void protocolli_Click(object sender, RoutedEventArgs e)
//{
// //FinestraOrari .Visibility = Visibility.Collapsed;
// //fasceOrarie.IsEnabled = true;
// //protocolli.IsEnabled = false;
// //TacitazioneReset.Visibility = System.Windows.Visibility.Collapsed;
// //Visualizzaallarmi.Visibility = System.Windows.Visibility.Visible;
// //finestraAllarmi1.Visibility = System.Windows.Visibility.Collapsed;
// //FinestraProtocolli.Visibility = System.Windows.Visibility.Visible;
// //Aggiorna.Visibility = System.Windows.Visibility.Visible;
//}
private void Visualizzaallarmi_Click(object sender, RoutedEventArgs e)
{
// //FinestraOrari.Visibility = Visibility.Collapsed;
// //FinestraProtocolli.Visibility = System.Windows.Visibility.Collapsed;
// //fasceOrarie.IsEnabled = true;
// //protocolli.IsEnabled = true;
// //Visualizzaallarmi.Visibility = System.Windows.Visibility.Collapsed;
// //VisualizzaFinestraAllarmi();
// //Aggiorna.Visibility = System.Windows.Visibility.Hidden;
}
private void Aggiorna_Click(object sender, RoutedEventArgs e)
{
// //Password Password = new Password();
// //Password.ShowDialog();
// //if (Password.dummyString == "123")
// //{
// // numperif = new List<int>();
// // TipoPeriferica = 0;
// // Index = 0;
// // Colonne = null;
// // this.Reset();
// //}
// //else if (Password.dummyString == null)
// //{ }
// //else
// //{
// // MessageBoxResult key = MessageBox.Show("PASSWORD ERRATA", "confirm", MessageBoxButton.OK, MessageBoxImage.Exclamation);
// //}
}
#endregion
#region GESTIONE PULSANTI
private void exit_Click(object sender, RoutedEventArgs e)
{
MessageBoxResult key = MessageBox.Show("Sei sicuro di volere uscire?", "confirm", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);
if (key == MessageBoxResult.Yes)
{
this.Close();
}
else
{ }
}
private void mostraIP_Click(object sender, RoutedEventArgs e)
{
Window1 aaa = new Window1();
aaa.ShowDialog();
}
private void about_Click(object sender, RoutedEventArgs e)
{
About aboutWindow = new About(ResultVers, Versione, ResultTitolo);
aboutWindow.ShowDialog();
}
private void TacitazioneReset_Click(object sender, RoutedEventArgs e)
{
// finestraAllarmi1.Tacitazione();
// int numeroallarmi = finestraAllarmi1.numeroallarmi;
// lampeggioAllarme = false;
// if (numeroallarmi == 0)
// {
// ///////////////////////////// textBox1.Background = Brushes.LightGray;
// }
// else
// {
// ////////////////////////////// textBox1.Background = Brushes.Red;
// }
cancellaRichtextbox();
this.Reset();
}
#endregion
#region EFDF
//public void VisualizzaFinestraAllarmi()
//{
//TacitazioneReset.Visibility = System.Windows.Visibility.Visible;
//finestraAllarmi1.Visibility = System.Windows.Visibility.Visible;
//}
//public string Titolo
//{
// get
// {
// return ResultTitolo;
// }
//}
#endregion
private delegate void RESET();
public void Reset()
{
#region bbb
//if (!File.Exists(pathOrari))
//{
// MessageBoxResult dlgResult = MessageBox.Show("MANCA IL FILE " + pathOrari + ", RIAVVIARE IL PROGRAMMA", "", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.No);
// if (dlgResult == MessageBoxResult.OK)
// {
// Application.Current.Shutdown();
// this.Close();
// }
// else
// { }
//}
//else
//{ }
//if (!File.Exists(pathallarmi))
//{
// MessageBoxResult dlgResult = MessageBox.Show("MANCA IL FILE " + pathallarmi + ", RIAVVIARE IL PROGRAMMA", "", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.No);
// if (dlgResult == MessageBoxResult.OK)
// {
// this.Close();
// }
// else
// { }
//}
//else
//{ }
#endregion
//Lettura file daticli
if (!File.Exists(daticli))
{
MessageBoxResult dlgResult = MessageBox.Show("MANCA IL FILE " + daticli + ", RIAVVIARE IL PROGRAMMA", "", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.No);
if (dlgResult == MessageBoxResult.OK)
{
Environment.Exit(0);
// this.Close();
}
else
{ }
}
else
{
string[] daticli1 = File.ReadAllLines(daticli);
CodCli = daticli1[0].Substring(1, 6).Trim();
CodLav = daticli1[0].Substring(7, 6).Trim();
pathset = string.Concat(path, CodCli, "\\", CodLav, "\\ARCHIVI\\SET.TXT");
RamDisk = daticli1[0].Substring(13, 1);
pathRisposta = string.Concat(RamDisk, ":\\RISPOSTA.TXT"); //Protocollo a programma dos
pathComando = string.Concat(RamDisk, ":\\COMANDO.TXT"); //Protocollo di comando da programma dos
pathSemaforoRIS = string.Concat(RamDisk, ":\\SEMRIS.TXT"); //FILE SEMAFORO RISPOSTA
pathSemaforoCOM = string.Concat(RamDisk, ":\\SEMCOM.TXT"); //FILE SEMAFORO COMANDO
}
if (File.Exists(pathSemaforoCOM))
{
File.Delete(pathSemaforoCOM);
}
if (File.Exists(pathComando))
{
try
{
File.Delete(pathComando);
}
catch { }
}
if (File.Exists(pathRisposta))
{
try
{
File.Delete(pathRisposta);
}
catch { }
}
if (File.Exists(pathSemaforoRIS))
{
try
{
File.Delete(pathSemaforoRIS);
}
catch { }
}
NumeroPeriferiche = new List<int>();
if (!File.Exists(pathset))
{
MessageBoxResult dlgResult = MessageBox.Show("MANCA IL FILE " + pathset + ", RIAVVIARE IL PROGRAMMA", "", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.No);
if (dlgResult == MessageBoxResult.OK)
{
Environment.Exit(0);
//this.Close();
}
else
{ }
}
else
{
leggifileconf.caricafile(Index, NumeroPeriferiche, out comandi, out Colonne, out NomeCanOrario, pathset, out ResultCOM, out ResultVel, out ResultTimeOut, out ResultVers, out ResultTitolo, out MaxErrori, out Festintraset);
}
InizializzaRichTextbox();
protocolloIn = new string[NumeroPeriferiche.Count + 1];
// Reset errori di comunicazione periferiche
for (int i = 0; i < 128; i++)
{
datiperiferica[i].Errori = 0;
}
#region aaa
//finestraAllarmi1.pathAllarmi = pathallarmi;
//VisualizzaFinestraAllarmi();
//Visualizzaallarmi.Visibility = System.Windows.Visibility.Collapsed;
//Aggiorna.Visibility = System.Windows.Visibility.Collapsed;
//FinestraProtocolli.Visibility = System.Windows.Visibility.Collapsed;
//FinestraOrari.Visibility = System.Windows.Visibility.Collapsed;
//protocolli.IsEnabled = true;
//InizializzaCAnaleOrario();
#endregion
// Leggi il valore del timer dal file INI
string iniFileName = Path.Combine(Environment.CurrentDirectory, "Supervisore.ini");
var fileIni = new IniParser(iniFileName);
timer = fileIni.IRestorePref("Settings", "Timer", 30); //Sezione, variabile, valore di default
//Inibizione chiusura finestre
InibizioneChiusuraFinestre BLFinestre = new InibizioneChiusuraFinestre();
string temp = "";
for (int i = 0; i < 10; i++)
{
temp = fileIni.SRestorePref("Programmi", "Programma" + i.ToString(), ""); //Sezione, variabile, valore di default
if (temp.Length != 0)
{
BLFinestre.BloccoFinestre(temp);
}
}
}
private void TimerErroreStart_Tick(object sender, EventArgs e) //Evento causato dall'arresto dello START.EXE
{
////LOG log = new LOG();
////log.Log();
//ShowMessageBox();//Richiama messagebox senza arrestare l'esecuzione del programma
//Close();
}
public void ShowMessageBox()
{
var thread = new Thread(
() =>
{
MessageBox.Show("CHIUSURA PROGRAMMA PER TIMEOUT RISPOSTA DA START.EXE");
});
thread.Start();
}
string oggi = "oggi";
string GiornoPrec = "GiornoPrec";
private void Timer1_Tick(object sender, EventArgs e) //Aggiornamento data/ora
{
oggi = DateTime.Now.ToString("dddd", new CultureInfo("it-IT"));
if (oggi != GiornoPrec)
{
festivita.CalcoloTipoGiorno(Festintraset, oggi, out idTipoGiorno, out idTipoGiornoAbbr);
// AssTipoGiorno(idTipoGiorno);
GiornoPrec = oggi;
}
DataOra.Content = DateTime.Now.ToLongTimeString() + "\n" + DateTime.Now.ToShortDateString() + " " + idTipoGiornoAbbr; //Data e Ora visualizzata a video
// ControlloCanOrario(DateTime.Now); //////////////VERIFICARE LA FUNZIONE DI QUESTO COMANDO EVENTUALMENTE SPOSTARLO DENTRO IF OGGI != GIORNOPREC
}
// Gestione comunicazione seriale ed attuazione comandi
int NMaxProve = 1;
// int a = 0;
int b = 0;
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
timerErroreStart.Tick += new EventHandler(TimerErroreStart_Tick);
timerErroreStart.Interval = new TimeSpan(0, 0, 0, timer, 0);
Stopwatch stopWatch = new Stopwatch();
int err1 = 0;
int err2 = 0;
while (true)
{
err1 = 0;
err2 = 0;
Thread.Sleep(1);
#region Lettura e trattamento periferiche
if (File.Exists(pathSemaforoCOM) && File.Exists(pathComando)) //controllo se ci sono comandi da attuare
{
string[] sComando = null;////////////////
int p = 0;///////////////////
try
{
sComando = File.ReadAllLines(pathComando);
}
catch { }
foreach (string comando in sComando)
{
if (comando.Length > 0)
{
if (comando == "RESET")
{
this.Dispatcher.BeginInvoke(new CancellaRichtextbox(cancellaRichtextbox)); //this.Dispatcher.BeginInvoke(new WriteToLineDelegate(WriteToLine), Index - 1, protocolloIn[Index - 1]); // Aggiornamento RichTextbox
this.Dispatcher.BeginInvoke(new RESET(Reset));
}
else
{
try
{
//int p = (int)comando[1] - 100;
p = (int)comando[1] - 100;
}
catch { }
try
{
//////////////////MessageBox.Show("PROVA");
ComandoPeriferiche(p, comando);
}
catch { }
try
{
ScriviFileRisposta();
}
catch { }
//}
}
}
}
cancellapathComando:
try
{
File.Delete(pathComando);
File.Delete(pathSemaforoCOM);
err1 = 0;
}
catch
{
err1 = err1 + 1;
if (err1 < 10)
{
goto cancellapathComando;
}
}
}
else //interrogazione stato periferiche
{
stopWatch.Start();
if (Index < NumeroPeriferiche.Count)
{
indperiferica = char.ConvertFromUtf32(NumeroPeriferiche[Index] + 100);
Index++;
TipoPeriferica = int.Parse(Colonne[Index]); // Mi ricavo il tipo di periferica da gestire
switch (TipoPeriferica)
{
case 1:
PT1_1.letturaperiferiche(sp, indperiferica, datiperiferica, out riga, out testo, MaxErrori); // Interrogazione periferiche tipo 1
if (protocolloIn[riga] != null && protocolloIn[riga] != "^" && protocolloIn[riga] != "FUORI LINEA" && testo != "^" && testo != "FUORI LINEA")
{
try
{
if (protocolloIn[riga].Substring(3, 8) != testo.Substring(3, 8)) //SE E' CAMBIATO LO STATO DEGLI INGRESSI DIGITALI
{
AggiornaRisposta();
}
}
catch { }
}
break;
case 2:
PT2_1.letturaperiferiche(sp, indperiferica, datiperiferica, out riga, out testo, MaxErrori); // Interrogazione periferiche tipo 2
if (protocolloIn[riga] != null && protocolloIn[riga] != "^" && protocolloIn[riga] != "FUORI LINEA" && testo != "^" && testo != "FUORI LINEA")
{
try
{
if (protocolloIn[riga].Substring(3, 2) != testo.Substring(3, 2)) //SE E' CAMBIATO LO STATO DEGLI INGRESSI DIGITALI
{
AggiornaRisposta();
}
}
catch { }
}
break;
case 3:
PT3_1.letturaperiferiche(sp, indperiferica, datiperiferica, out riga, out testo, MaxErrori); // Interrogazione periferiche tipo 3
if (protocolloIn[riga] != null && protocolloIn[riga] != "^ " && testo != "^ ")
{
try
{
if (protocolloIn[riga].Substring(3, 8) != testo.Substring(3, 8)) //SE E' CAMBIATO LO STATO DEGLI INGRESSI DIGITALI
{
AggiornaRisposta();
}
}
catch { }
}
break;
case 4:
break;
case 5:
break;
default:
break;
}
protocolloIn[riga] = testo;//MATRICE PER FILE DI SCAMBIO CON PROGRAMMA DOS
this.Dispatcher.BeginInvoke(new WriteToLineDelegate(WriteToLine), riga, testo); // Aggiornamento RichTextbox //this.Dispatcher.BeginInvoke(new WriteToLineDelegate(WriteToLine), Index - 1, protocolloIn[Index - 1]); // Aggiornamento RichTextbox
}
else
{
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", // 1905151830
ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds);
protocolloIn[NumeroPeriferiche.Count] = elapsedTime;
stopWatch.Reset();
creaSemaforoRisposta:
if (!File.Exists(pathSemaforoRIS))
{
timerErroreStart.Stop();
try
{
ScriviFileRisposta();
FileStream fs2 = new FileStream(pathSemaforoRIS, FileMode.Create, FileAccess.Write, FileShare.None);
StreamWriter sw2 = new StreamWriter(fs2);
sw2.WriteLine();
sw2.Flush();
fs2.Close();
err2 = 0;
}
catch
{
err2 = err2 + 1;
if (err2 < 10)
{
goto creaSemaforoRisposta;
}
}
}
else
{
if (!timerErroreStart.IsEnabled)
{
timerErroreStart.Start();
}
}
this.Dispatcher.BeginInvoke(new Scrivilabel(WriteToLabel), elapsedTime);
Index = 0;
}
}
//gestionecomandi.gestionecomandi(comandi, datiperiferica, PerifericheDaComandare);//, out NumeroAllarme, out ritardoAllarme, out GestioneAllarme); // Verifica comandi da attuare
// // gestionecomandi.gestionecomandi(comandi, datiperiferica, PerifericheDaComandare, out NumeroAllarme, out ritardoAllarme, out GestioneAllarme); // Verifica comandi da attuare
// ComandoPeriferiche();
}
}
#endregion
//SuppCanOrario();
public void ComandoPeriferiche(int indiceScheda, string comando)
{
//while (PerifericheDaComandare.Count != 0)
//{
// int indiceScheda = int.Parse(PerifericheDaComandare.Dequeue().ToString());
TipoPeriferica = int.Parse(Colonne[indiceScheda]); // Mi ricavo il tipo di periferica da gestire
switch (TipoPeriferica)
{
case 1:
PT1_1.comandoperiferiche(indiceScheda, datiperiferica[indiceScheda].UsciteDigitali, sp, comando, datiperiferica, out riga, out testo, MaxErrori);
break;
case 2:
////////// VEDERE QUANTO FATTO PER PERIFERICA TIPO 1 E 3
// PT2_1.comandoperiferiche(indiceScheda, datiperiferica[indiceScheda].UsciteDigitali, sp);
break;
case 3:
if (comando[2] != 't')
{
PT3_1.comandoperiferiche(indiceScheda, datiperiferica[indiceScheda].UsciteDigitali, sp, comando, datiperiferica, out riga, out testo, MaxErrori);
}
else if (comando[2] == 't')
{
PT3_1.CancellaCodice(sp, comando);
goto salto;
}
break;
default:
break;
}
protocolloIn[riga] = testo;//MATRICE PER FILE DI SCAMBIO CON PROGRAMMA DOS
salto:
{ }
//}
}
public void ScriviFileRisposta()
{
scritturaFileRisposta:
try
{
FileStream fs = new FileStream(pathRisposta, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
StreamWriter sw = new StreamWriter(fs);
for (int i = 0; i < protocolloIn.Length; i++)
{
sw.WriteLine(protocolloIn[i]);
}
sw.Flush();
fs.Close();
b = 0;
}
catch
{
Thread.Sleep(10);
b++;
if (b < NMaxProve)
{
goto scritturaFileRisposta;
}
}
}
public void AggiornaRisposta()
{
protocolloIn[riga] = testo;//MATRICE PER FILE DI SCAMBIO CON PROGRAMMA DOS
if (!File.Exists(pathSemaforoRIS))
{
ScriviFileRisposta();
FileStream fs2 = new FileStream(pathSemaforoRIS, FileMode.Create, FileAccess.Write, FileShare.None);
StreamWriter sw2 = new StreamWriter(fs2);
sw2.Flush();
fs2.Close();
}
this.Dispatcher.BeginInvoke(new WriteToLineDelegate(WriteToLine), riga, testo); // Aggiornamento RichTextbox
}
}
}
#region gestione finestra allarmi
//private void Timer3_Tick(object sender, EventArgs e) //Aggiornamento finestra allarmi
//{
// if (GestioneAllarme == "ALLARMEON")
// {
// Task t = RitardoSegnalazioneAllarme(ritardoAllarme);
// }
// else if (GestioneAllarme == "ALLARMEOFF")
// {
// allarmeOFF();
// }
// finestraAllarmi1.LampeggioAllarmi();
// bool alternanzacolore = finestraAllarmi1.alternacolore;
// if (lampeggioAllarme == true)
// {
// if (alternanzacolore == true)
// {
// ////////////////////// // textBox1.Background = Brushes.LightGray;
// }
// else if (alternanzacolore == false)
// {
// /////////////////////// textBox1.Background = Brushes.Red;
// }
// }
//}
//async Task RitardoSegnalazioneAllarme(int millisecondi)
//{
// await Task.Delay(millisecondi);
// allarmeON();
//}
//private void allarmeON() //////usare un dizionario per i numeri allarme attivi????
//{//////////////////////mettere data ed ora comparsa/scomparsa allarme
// finestraAllarmi1.AggiuntaAllarme(NumeroAllarme);
// lampeggioAllarme = true;
//}
//private void allarmeOFF()
//{
// finestraAllarmi1.RientroAllarme(NumeroAllarme);
//}
//#region Supporto canali orario
//void ControlloCanOrario(DateTime time)
//{
//canaleOrario1.ControlloOrari(time);
//canaleOrario2.ControlloOrari(time);
//canaleOrario3.ControlloOrari(time);
//canaleOrario4.ControlloOrari(time);
//canaleOrario5.ControlloOrari(time);
//canaleOrario6.ControlloOrari(time);
//canaleOrario7.ControlloOrari(time);
//canaleOrario8.ControlloOrari(time);
//canaleOrario9.ControlloOrari(time);
//canaleOrario10.ControlloOrari(time);
//canaleOrario11.ControlloOrari(time);
//canaleOrario12.ControlloOrari(time);
//canaleOrario13.ControlloOrari(time);
//canaleOrario14.ControlloOrari(time);
//canaleOrario15.ControlloOrari(time);
//canaleOrario16.ControlloOrari(time);
//canaleOrario17.ControlloOrari(time);
//canaleOrario18.ControlloOrari(time);
//canaleOrario19.ControlloOrari(time);
//canaleOrario20.ControlloOrari(time);
//canaleOrario21.ControlloOrari(time);
//canaleOrario22.ControlloOrari(time);
//canaleOrario23.ControlloOrari(time);
//canaleOrario24.ControlloOrari(time);
//canaleOrario25.ControlloOrari(time);
//canaleOrario26.ControlloOrari(time);
//canaleOrario27.ControlloOrari(time);
//canaleOrario28.ControlloOrari(time);
//canaleOrario29.ControlloOrari(time);
//canaleOrario30.ControlloOrari(time);
//canaleOrario31.ControlloOrari(time);
//canaleOrario32.ControlloOrari(time);
//canaleOrario33.ControlloOrari(time);
//canaleOrario34.ControlloOrari(time);
//canaleOrario35.ControlloOrari(time);
//canaleOrario36.ControlloOrari(time);
//canaleOrario37.ControlloOrari(time);
//canaleOrario38.ControlloOrari(time);
//canaleOrario39.ControlloOrari(time);
//canaleOrario40.ControlloOrari(time);
//}
//void CaricaOrariSuControllo()
//{
// try
// {
// XDocument xmlDoc = XDocument.Load(pathOrari);
// canaleOrario1.Orari = xmlDoc;
// canaleOrario2.Orari = xmlDoc;
// canaleOrario3.Orari = xmlDoc;
// canaleOrario4.Orari = xmlDoc;
// canaleOrario5.Orari = xmlDoc;
// canaleOrario6.Orari = xmlDoc;
// canaleOrario7.Orari = xmlDoc;
// canaleOrario8.Orari = xmlDoc;
// canaleOrario9.Orari = xmlDoc;
// canaleOrario10.Orari = xmlDoc;
// canaleOrario11.Orari = xmlDoc;
// canaleOrario12.Orari = xmlDoc;
// canaleOrario13.Orari = xmlDoc;
// canaleOrario14.Orari = xmlDoc;
// canaleOrario15.Orari = xmlDoc;
// canaleOrario16.Orari = xmlDoc;
// canaleOrario17.Orari = xmlDoc;
// canaleOrario18.Orari = xmlDoc;
// canaleOrario19.Orari = xmlDoc;
// canaleOrario20.Orari = xmlDoc;
// canaleOrario21.Orari = xmlDoc;
// canaleOrario22.Orari = xmlDoc;
// canaleOrario23.Orari = xmlDoc;
// canaleOrario24.Orari = xmlDoc;
// canaleOrario25.Orari = xmlDoc;
// canaleOrario26.Orari = xmlDoc;
// canaleOrario27.Orari = xmlDoc;
// canaleOrario28.Orari = xmlDoc;
// canaleOrario29.Orari = xmlDoc;
// canaleOrario30.Orari = xmlDoc;
// canaleOrario31.Orari = xmlDoc;
// canaleOrario32.Orari = xmlDoc;
// canaleOrario33.Orari = xmlDoc;
// canaleOrario34.Orari = xmlDoc;
// canaleOrario35.Orari = xmlDoc;
// canaleOrario36.Orari = xmlDoc;
// canaleOrario37.Orari = xmlDoc;
// canaleOrario38.Orari = xmlDoc;
// canaleOrario39.Orari = xmlDoc;
// canaleOrario40.Orari = xmlDoc;
// }
// catch
// {
// // messaggio di errore
// }
//}
//void AssTipoGiorno(string idTipoGiorno)
//{
// canaleOrario1.idTipoGiorno = idTipoGiorno;
// canaleOrario2.idTipoGiorno = idTipoGiorno;
// canaleOrario3.idTipoGiorno = idTipoGiorno;
// canaleOrario4.idTipoGiorno = idTipoGiorno;
// canaleOrario5.idTipoGiorno = idTipoGiorno;
// canaleOrario6.idTipoGiorno = idTipoGiorno;
// canaleOrario7.idTipoGiorno = idTipoGiorno;
// canaleOrario8.idTipoGiorno = idTipoGiorno;
// canaleOrario9.idTipoGiorno = idTipoGiorno;
// canaleOrario10.idTipoGiorno = idTipoGiorno;
// canaleOrario11.idTipoGiorno = idTipoGiorno;
// canaleOrario12.idTipoGiorno = idTipoGiorno;
// canaleOrario13.idTipoGiorno = idTipoGiorno;
// canaleOrario14.idTipoGiorno = idTipoGiorno;
// canaleOrario15.idTipoGiorno = idTipoGiorno;
// canaleOrario16.idTipoGiorno = idTipoGiorno;
// canaleOrario17.idTipoGiorno = idTipoGiorno;
// canaleOrario18.idTipoGiorno = idTipoGiorno;
// canaleOrario19.idTipoGiorno = idTipoGiorno;
// canaleOrario20.idTipoGiorno = idTipoGiorno;
// canaleOrario21.idTipoGiorno = idTipoGiorno;
// canaleOrario22.idTipoGiorno = idTipoGiorno;
// canaleOrario23.idTipoGiorno = idTipoGiorno;
// canaleOrario24.idTipoGiorno = idTipoGiorno;
// canaleOrario25.idTipoGiorno = idTipoGiorno;
// canaleOrario26.idTipoGiorno = idTipoGiorno;
// canaleOrario27.idTipoGiorno = idTipoGiorno;
// canaleOrario28.idTipoGiorno = idTipoGiorno;
// canaleOrario29.idTipoGiorno = idTipoGiorno;
// canaleOrario30.idTipoGiorno = idTipoGiorno;
// canaleOrario31.idTipoGiorno = idTipoGiorno;
// canaleOrario32.idTipoGiorno = idTipoGiorno;
// canaleOrario33.idTipoGiorno = idTipoGiorno;
// canaleOrario34.idTipoGiorno = idTipoGiorno;
// canaleOrario35.idTipoGiorno = idTipoGiorno;
// canaleOrario36.idTipoGiorno = idTipoGiorno;
// canaleOrario37.idTipoGiorno = idTipoGiorno;
// canaleOrario38.idTipoGiorno = idTipoGiorno;
// canaleOrario39.idTipoGiorno = idTipoGiorno;
// canaleOrario40.idTipoGiorno = idTipoGiorno;
//}
// Inizializzazione nomi canali orario
//void InizializzaCAnaleOrario()
//{
// canaleOrario1.Testo = NomeCanOrario[0].Substring(9, 23);
// canaleOrario2.Testo = NomeCanOrario[1].Substring(9, 23);
// canaleOrario3.Testo = NomeCanOrario[2].Substring(9, 23);
// canaleOrario4.Testo = NomeCanOrario[3].Substring(9, 23);
// canaleOrario5.Testo = NomeCanOrario[4].Substring(9, 23);
// canaleOrario6.Testo = NomeCanOrario[5].Substring(9, 23);
// canaleOrario7.Testo = NomeCanOrario[6].Substring(9, 23);
// canaleOrario8.Testo = NomeCanOrario[7].Substring(9, 23);
// canaleOrario9.Testo = NomeCanOrario[8].Substring(9, 23);
// canaleOrario10.Testo = NomeCanOrario[9].Substring(9, 23);
// canaleOrario11.Testo = NomeCanOrario[10].Substring(9, 23);
// canaleOrario12.Testo = NomeCanOrario[11].Substring(9, 23);
// canaleOrario13.Testo = NomeCanOrario[12].Substring(9, 23);
// canaleOrario14.Testo = NomeCanOrario[13].Substring(9, 23);
// canaleOrario15.Testo = NomeCanOrario[14].Substring(9, 23);
// canaleOrario16.Testo = NomeCanOrario[15].Substring(9, 23);
// canaleOrario17.Testo = NomeCanOrario[16].Substring(9, 23);
// canaleOrario18.Testo = NomeCanOrario[17].Substring(9, 23);
// canaleOrario19.Testo = NomeCanOrario[18].Substring(9, 23);
// canaleOrario20.Testo = NomeCanOrario[19].Substring(9, 23);
// canaleOrario21.Testo = NomeCanOrario[20].Substring(9, 23);
// canaleOrario22.Testo = NomeCanOrario[21].Substring(9, 23);
// canaleOrario23.Testo = NomeCanOrario[22].Substring(9, 23);
// canaleOrario24.Testo = NomeCanOrario[23].Substring(9, 23);
// canaleOrario25.Testo = NomeCanOrario[24].Substring(9, 23);
// canaleOrario26.Testo = NomeCanOrario[25].Substring(9, 23);
// canaleOrario27.Testo = NomeCanOrario[26].Substring(9, 23);
// canaleOrario28.Testo = NomeCanOrario[27].Substring(9, 23);
// canaleOrario29.Testo = NomeCanOrario[28].Substring(9, 23);
// canaleOrario30.Testo = NomeCanOrario[29].Substring(9, 23);
// canaleOrario31.Testo = NomeCanOrario[30].Substring(9, 23);
// canaleOrario32.Testo = NomeCanOrario[31].Substring(9, 23);
// canaleOrario33.Testo = NomeCanOrario[32].Substring(9, 23);
// canaleOrario34.Testo = NomeCanOrario[33].Substring(9, 23);
// canaleOrario35.Testo = NomeCanOrario[34].Substring(9, 23);
// canaleOrario36.Testo = NomeCanOrario[35].Substring(9, 23);
// canaleOrario37.Testo = NomeCanOrario[36].Substring(9, 23);
// canaleOrario38.Testo = NomeCanOrario[37].Substring(9, 23);
// canaleOrario39.Testo = NomeCanOrario[38].Substring(9, 23);
// canaleOrario40.Testo = NomeCanOrario[39].Substring(9, 23);
//}
//void SuppCanOrario()
//{
// bool[] d = new bool[41];
// if (canaleOrario1.attivo == true)
// {
// d[1] = true;
// }
// else
// {
// d[1] = false;
// }
// if (canaleOrario2.attivo == true)
// {
// d[2] = true;
// }
// else
// {
// d[2] = false;
// }
// if (canaleOrario3.attivo == true)
// {
// d[3] = true;
// }
// else
// {
// d[3] = false;
// }
// if (canaleOrario4.attivo == true)
// {
// d[4] = true;
// }
// else
// {
// d[4] = false;
// }
// if (canaleOrario5.attivo == true)
// {
// d[5] = true;
// }
// else
// {
// d[5] = false;
// }
// if (canaleOrario6.attivo == true)
// {
// d[6] = true;
// }
// else
// {
// d[6] = false;
// }
// if (canaleOrario7.attivo == true)
// {
// d[7] = true;
// }
// else
// {
// d[7] = false;
// }
// if (canaleOrario8.attivo == true)
// {
// d[8] = true;
// }
// else
// {
// d[8] = false;
// }
// if (canaleOrario9.attivo == true)
// {
// d[9] = true;
// }
// else
// {
// d[9] = false;
// }
// if (canaleOrario10.attivo == true)
// {
// d[10] = true;
// }
// else
// {
// d[10] = false;
// }
// if (canaleOrario11.attivo == true)
// {
// d[11] = true;
// }
// else
// {
// d[11] = false;
// }
// if (canaleOrario12.attivo == true)
// {
// d[12] = true;
// }
// else
// {
// d[12] = false;
// }
// if (canaleOrario13.attivo == true)
// {
// d[13] = true;
// }
// else
// {
// d[13] = false;
// }
// if (canaleOrario14.attivo == true)
// {
// d[14] = true;
// }
// else
// {
// d[14] = false;
// }
// if (canaleOrario15.attivo == true)
// {
// d[15] = true;
// }
// else
// {
// d[15] = false;
// }
// if (canaleOrario16.attivo == true)
// {
// d[16] = true;
// }
// else
// {
// d[16] = false;
// }
// if (canaleOrario17.attivo == true)
// {
// d[17] = true;
// }
// else
// {
// d[17] = false;
// }
// if (canaleOrario18.attivo == true)
// {
// d[18] = true;
// }
// else
// {
// d[18] = false;
// }
// if (canaleOrario19.attivo == true)
// {
// d[19] = true;
// }
// else
// {
// d[19] = false;
// }
// if (canaleOrario20.attivo == true)
// {
// d[20] = true;
// }
// else
// {
// d[20] = false;
// }
// if (canaleOrario21.attivo == true)
// {
// d[21] = true;
// }
// else
// {
// d[21] = false;
// }
// if (canaleOrario22.attivo == true)
// {
// d[22] = true;
// }
// else
// {
// d[22] = false;
// }
// if (canaleOrario23.attivo == true)
// {
// d[23] = true;
// }
// else
// {
// d[23] = false;
// }
// if (canaleOrario24.attivo == true)
// {
// d[24] = true;
// }
// else
// {
// d[24] = false;
// }
// if (canaleOrario25.attivo == true)
// {
// d[25] = true;
// }
// else
// {
// d[25] = false;
// }
// if (canaleOrario26.attivo == true)
// {
// d[26] = true;
// }
// else
// {
// d[26] = false;
// }
// if (canaleOrario27.attivo == true)
// {
// d[27] = true;
// }
// else
// {
// d[27] = false;
// }
// if (canaleOrario28.attivo == true)
// {
// d[28] = true;
// }
// else
// {
// d[28] = false;
// }
// if (canaleOrario29.attivo == true)
// {
// d[29] = true;
// }
// else
// {
// d[29] = false;
// }
// if (canaleOrario30.attivo == true)
// {
// d[30] = true;
// }
// else
// {
// d[30] = false;
// }
// if (canaleOrario31.attivo == true)
// {
// d[31] = true;
// }
// else
// {
// d[31] = false;
// }
// if (canaleOrario32.attivo == true)
// {
// d[32] = true;
// }
// else
// {
// d[32] = false;
// }
// if (canaleOrario33.attivo == true)
// {
// d[33] = true;
// }
// else
// {
// d[33] = false;
// }
// if (canaleOrario34.attivo == true)
// {
// d[34] = true;
// }
// else
// {
// d[34] = false;
// }
// if (canaleOrario35.attivo == true)
// {
// d[35] = true;
// }
// else
// {
// d[35] = false;
// }
// if (canaleOrario36.attivo == true)
// {
// d[36] = true;
// }
// else
// {
// d[36] = false;
// }
// if (canaleOrario37.attivo == true)
// {
// d[37] = true;
// }
// else
// {
// d[37] = false;
// }
// if (canaleOrario38.attivo == true)
// {
// d[38] = true;
// }
// else
// {
// d[38] = false;
// }
// if (canaleOrario39.attivo == true)
// {
// d[39] = true;
// }
// else
// {
// d[39] = false;
// }
// if (canaleOrario40.attivo == true)
// {
// d[40] = true;
// }
// else
// {
// d[40] = false;
// }
// gestionecomandi.canorario(d);
//}
//#endregion
//#region Eventi canali orario
//private void canaleOrario1_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario1.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario2_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario2.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario3_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario3.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario4_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario4.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario5_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario5.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario6_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario6.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario7_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario7.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario8_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario8.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario9_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario9.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario10_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario10.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario11_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario11.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario12_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario12.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario13_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario13.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario14_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario14.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario15_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario15.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario16_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario16.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario17_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario17.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario18_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario18.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario19_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario19.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario20_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario20.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario21_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario21.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario22_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario22.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario23_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario23.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario24_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario24.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario25_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario25.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario26_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario26.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario27_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario27.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario28_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario28.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario29_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario29.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario30_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario30.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario31_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario31.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario32_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario32.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario33_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario33.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario34_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario34.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario35_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario35.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario36_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario36.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario37_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario37.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario38_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario38.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario39_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario39.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//private void canaleOrario40_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
//{
// ModificaOrari ModificaOrari = new ModificaOrari(canaleOrario40.IDCanale, pathOrari);
// ModificaOrari.ShowDialog();
// CaricaOrariSuControllo();
//}
//}
#endregion