932 lines
53 KiB
Matlab
Executable File
932 lines
53 KiB
Matlab
Executable File
function Report_ASE_LOC(IDcentralina,siteID,unitID,chainID,Chain_Scheme,num_nodi,...
|
|
alarms,Mail,Users_Report,activeEN,time,conn,FileName)
|
|
% Software per la generazione automatica di report sull'attività di
|
|
% monitoraggio ASE
|
|
|
|
try
|
|
|
|
fileID = fopen(FileName,'a');
|
|
fmt = '%s \r';
|
|
text = 'report_ASE function started';
|
|
fprintf(fileID,fmt,text);
|
|
fclose(fileID);
|
|
|
|
RPT_ON = 0; % parametro che regola la creazione o meno del report
|
|
NomeFile = strcat('Report',siteID,'.txt');
|
|
meseadesso = str2double(datestr(today,'mm'));
|
|
if isfile(NomeFile) == 1 % Esiste
|
|
Filetesto = importdata(NomeFile);
|
|
datainvio = Filetesto(1,1); % mese di invio OPPURE data di ultimo invio
|
|
attivaReport = Filetesto(2,1);
|
|
|
|
% Scarico la frequenza del report
|
|
comando = ['select freq_report from sites where id like ''' siteID ''' '];
|
|
curs = exec(conn,comando);
|
|
curs = fetch(curs);
|
|
Freq = cell2mat(curs.Data);
|
|
numgiorni = Freq;
|
|
|
|
fileID = fopen(FileName,'a');
|
|
fmt = '%s \r';
|
|
text = ['Report frequency:' num2str(numgiorni) ' days'];
|
|
fprintf(fileID,fmt,text);
|
|
fclose(fileID);
|
|
|
|
if numgiorni == 30
|
|
adesso = str2double(datestr(today,'mm'));
|
|
if datainvio == adesso
|
|
RPT_ON = 1;
|
|
end
|
|
else
|
|
adesso = now;
|
|
if adesso >= datainvio + numgiorni
|
|
RPT_ON = 1;
|
|
end
|
|
end
|
|
|
|
if RPT_ON == 1
|
|
fileID = fopen(FileName,'a');
|
|
fmt = '%s \r';
|
|
text = 'Report creation started';
|
|
fprintf(fileID,fmt,text);
|
|
fclose(fileID);
|
|
if attivaReport == 0
|
|
attivaReport = 1;
|
|
outdat = fopen(NomeFile,'wt+');
|
|
fopen(NomeFile,'wt');
|
|
fmt = '%d \r';
|
|
fileID = fopen(NomeFile,'a');
|
|
fprintf(fileID,fmt,meseadesso);
|
|
fprintf(fileID,fmt,attivaReport);
|
|
fclose(fileID);
|
|
|
|
recipients_ASE{1,1} = 'alessandro.valletta@aseltd.eu';
|
|
recipients_ASE{2,1} = 'andrea.carri@aseltd.eu';
|
|
recipients_ASE{3,1} = 'roberto.savi@aseltd.eu';
|
|
Mail_ASE = 1;
|
|
|
|
if Mail_ASE == 1 || Mail == 1
|
|
|
|
% Importo librerie Matlab Report Generator e creo report
|
|
import mlreportgen.dom.*
|
|
import mlreportgen.report.*
|
|
|
|
FIG = 1; % Contatore Figure
|
|
FIG_ENG = 1;
|
|
NomeReport = (['Report_ASE_' siteID]);
|
|
rpt = Report(NomeReport, 'pdf'); % Crea report
|
|
NomeReport_ENG = (['Report_ASE_' siteID '_ENG']);
|
|
rpt_ENG = Report(NomeReport_ENG, 'pdf'); % Crea report
|
|
Section.number(rpt,false); % elimina numerazione capitoli
|
|
Section.number(rpt_ENG,false); % elimina numerazione capitoli
|
|
Font_caption = '8.5pt';
|
|
Font_table = '9pt';
|
|
Font_table_Loc = '8pt';
|
|
Font_section = '14pt';
|
|
Font_tools = '12pt';
|
|
Font_Chapter = '16pt';
|
|
|
|
%% Ricavo info sul sito
|
|
|
|
% Uso il siteID per identificare il nome del sito
|
|
comando = ['select name from sites where id like ''' siteID ''' '];
|
|
curs = exec(conn,comando);
|
|
curs = fetch(curs);
|
|
NomeSito = num2str(cell2mat(curs.Data));
|
|
|
|
[arraysito,arraysitoENG,controlsito,yesTL,yesTLHR,yesTLH,yesTLHRH,yesPL,yesBL,yesLL,...
|
|
yesRL,yesKL,yesKLHR,yesThL,yesPT100,yesIPL,yesIPLHR,yesTuL,yesRaL,yesPCL,yesPCLHR,...
|
|
yesPrL,yesEL,yes3DEL,yesWEL,yesMPBEL,yesCrL,yes3DCrL,yesBML,yesHL,...
|
|
yesLuxL,yesCO2,yesRSN,yesRSNHR,yesTrL,yesSM,yes2DCrL,yesPE,yesWL,yesGF,yesGS,...
|
|
rTL,rTLHR,rTLH,rTLHRH,rPL,rBL,rLL,rRL,rKL,rKLHR,rThL,rPT100,rIPL,rIPLHR,rTuL,rRaL,...
|
|
rPCL,rPCLHR,rPrL,rEL,r3DEL,rWEL,rMPBEL,rCrL,r3DCrL,rBML,rHL,rLuxL,rCO2,rRSN,rRSNHR,...
|
|
rTrL,rSM,r2DCrL,rPE,rWL,rGF,rGS,nCT,...
|
|
NodoTiltLink,NodoTiltLinkHR,NodoTiltLinkH,NodoTiltLinkHRH,NodoPiezoLink,NodoBaroLink,...
|
|
NodoLoadLink,NodoRainLink,NodoKlinoLink,NodoKlinoLinkHR,NodoThermLink,NodoPT100Link,...
|
|
NodoInPlaceLink,NodoInPlaceLinkHR,NodoTunnelLink,NodoRadialLink,NodoPreConvLink,...
|
|
NodoPreConvLinkHR,NodoPressureLink,NodoExtensometerLink,Nodo3DExtensometerLink,...
|
|
NodoWireExtensometerLink,NodoMultiPointExtensometerLink,NodoCrackLink,Nodo3DCrackLink,...
|
|
NodoBaroMusaLink,NodoHumidityLink,NodoLuxLink,NodoCO2Link,NodoRSNLink,NodoRSNHRLink,...
|
|
NodoTriggerLink,NodoStressMeter,Nodo2DCrackLink,NodoPendulum,NodoWeirLink,NodoGflowLink,...
|
|
NodoGshockLink,tipoarray,tipoalarms,nVMS,nTL,nCAM,nAL] = info_Sito(chainID,alarms,...
|
|
Chain_Scheme,conn,num_nodi,FileName);
|
|
|
|
info_sito = [chainID(:,2) chainID(:,4)];
|
|
|
|
%% Pagina titolo ITA
|
|
template_cover(rpt);
|
|
tp = TitlePage;
|
|
Titolo = Paragraph(['Report di monitoraggio del sito: ' NomeSito]);
|
|
Titolo.Style = {HAlign('center'),Bold(1), FontSize('32pt'),OuterMargin('0in','0in','3in','0.2in')};
|
|
tp.Title = (Titolo);
|
|
sottotitolo = Paragraph('Report automatico - Versione Beta Test');
|
|
sottotitolo.Style = {FontSize('12pt'),Bold(1),HAlign('center')};
|
|
tp.Subtitle = sottotitolo;
|
|
tp.Author = ' ';
|
|
datapub = Paragraph(datestr(today,'dd-mm-yyyy'));
|
|
datapub.Style = {FontSize('12pt'),HAlign('center')};
|
|
tp.PubDate = datapub;
|
|
add(rpt,tp);
|
|
|
|
if activeEN == 1
|
|
%% Pagina titolo ENG
|
|
template_cover(rpt_ENG);
|
|
tp_ENG = TitlePage;
|
|
Titolo = Paragraph('Monitoring activity report ');
|
|
Titolo.Style = {HAlign('center'),Bold(1), FontSize('32pt'),OuterMargin('0in','0in','3in','0in')};
|
|
tp_ENG.Title = (Titolo);
|
|
sottotitolo = Paragraph(NomeSito);
|
|
sottotitolo.Style = {HAlign('center'),Bold(1), FontSize('32pt'),OuterMargin('0in','0in','0in','0.2in')};
|
|
tp_ENG.Subtitle = sottotitolo;
|
|
report = Paragraph('Automatic report - Alpha test version');
|
|
report.Style = {FontSize('12pt'),Bold(1),HAlign('center'),OuterMargin('0in','0in','0.4in','0.2in')};
|
|
tp_ENG.Author = report;
|
|
datapub = Paragraph(datestr(today,'dd-mm-yyyy'));
|
|
datapub.Style = {FontSize('12pt'),HAlign('center')};
|
|
tp_ENG.PubDate = datapub;
|
|
add(rpt_ENG,tp_ENG);
|
|
end
|
|
|
|
fileID = fopen(FileName,'a');
|
|
fmt = '%s \r';
|
|
text = 'Title page created';
|
|
fprintf(fileID,fmt,text);
|
|
|
|
%% Pagina sommario
|
|
% Add a default table of contents object to the report
|
|
template(rpt);
|
|
TOC = TableOfContents();
|
|
TOC.Layout.PageNumberFormat = 'I';
|
|
add(rpt,TOC);
|
|
if activeEN == 1
|
|
template(rpt_ENG);
|
|
TOC_ENG = TableOfContents();
|
|
TOC_ENG.Layout.PageNumberFormat = 'I';
|
|
add(rpt_ENG,TOC_ENG);
|
|
end
|
|
text = 'Summary page created';
|
|
fprintf(fileID,fmt,text);
|
|
|
|
%% Disclaimer iniziale
|
|
disclaimer = Chapter;
|
|
dis = Heading1('Disclaimer');
|
|
dis.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
|
|
disclaimer.Title = dis;
|
|
text = Paragraph(['Il presente report ' char(232) ' un documento generato automaticamente '...
|
|
'dal software proprietario sviluppato da ASE S.r.l. Il suo obiettivo ' char(232) ' quello '...
|
|
'di riassumere i principali risultati ottenuti dalla strumentazione installata '...
|
|
'in un determinato sito del cliente, nel corso di un periodo temporale di riferimento. '...
|
|
'Il report riporta le principali informazioni relative al sito monitorato: queste includono '...
|
|
'numero e tipologia degli Array presenti, data di installazione, data di riferimento '...
|
|
'per i calcoli successivi, principali caratteristiche dei sensori utilizzati, etc. ']);
|
|
text2 = Paragraph(['Il report viene creato automaticamente il primo giorno di ogni mese e '...
|
|
'contiene i dati di monitoraggio elaborati a partire dal mese precedente (o dal mese '...
|
|
'della redazione dell''ultimo report, nel caso di Array inattivo), fornendo una panoramica generale '...
|
|
'del livello di attivit' char(224) ' del sito durante il periodo temporale di riferimento. '...
|
|
'Inoltre, nel caso in cui gli strumenti lo consentano, sono riportati grafici che '...
|
|
'integrano i dati raccolti da diverse tipologie di sensori, con l''obiettivo di '...
|
|
'evidenziare eventuali correlazioni tra le grandezze monitorate.']);
|
|
Link = Paragraph(ExternalLink('https://www2.aseltd.eu','cliccando qui.'));
|
|
text3 = Paragraph(['Si vuole sottolineare che questo documento ' char(232) ' generato completamente in automatico '...
|
|
'e non contiene pertanto alcuna valutazione o validazione di carattere tecnico '...
|
|
'relativamente ai risultati ottenuti dalla strumentazione installata. '...
|
|
'Si ricorda inoltre che quanto riportato nel report ' char(232) ' inteso come un riassunto dei risultati '...
|
|
'dell''attivit' char(224) ' di monitoraggio. Per la consultazione completa di tutti i dati '...
|
|
'relativi al sito in esame, ' char(232) ' possibile accedere con le proprie credenziali '...
|
|
'alla piattaforma interattiva web-based']);
|
|
text4 = Paragraph('ASE - Advanced Slope Engineering S.r.l.');
|
|
text5 = Paragraph('Via Robert Koch 53/A, 43123 Fraz. Pilastrello, Parma - Italy');
|
|
text6 = Paragraph('Tel: +39 0521 1404292');
|
|
text7 = Paragraph('REA n. 258983 - Cod Fis. e P.IVA 02687890349');
|
|
text8 = Paragraph('info@aseltd.eu - www.aseltd.eu');
|
|
text.HAlign = 'justify';
|
|
text2.HAlign = 'justify';
|
|
text3.HAlign = 'justify';
|
|
text4.Style = {Bold(1),HAlign('left')};
|
|
text5.Style = {HAlign('left'),OuterMargin('0in','0in','0in','0in'),FontSize('8pt')};
|
|
text6.Style = {HAlign('left'),OuterMargin('0in','0in','0in','0in'),FontSize('8pt')};
|
|
text7.Style = {HAlign('left'),OuterMargin('0in','0in','0in','0in'),FontSize('8pt')};
|
|
text8.Style = {HAlign('left'),OuterMargin('0in','0in','0in','0in'),FontSize('8pt')};
|
|
|
|
logo = Image('aselogo.jpeg');
|
|
logo.Style = {Height('9cm'),HAlign('left')};
|
|
|
|
add(disclaimer,text);
|
|
add(disclaimer,text2);
|
|
add(disclaimer,text3);
|
|
Link.Style = {OuterMargin('0in','0in','0in','0in')};
|
|
add(disclaimer,Link);
|
|
add(disclaimer,logo);
|
|
add(disclaimer,text4);
|
|
add(disclaimer,text5);
|
|
add(disclaimer,text6);
|
|
add(disclaimer,text7);
|
|
add(disclaimer,text8);
|
|
br = PageBreak();
|
|
add(disclaimer,br);
|
|
add(rpt,disclaimer);
|
|
|
|
if activeEN == 1
|
|
disclaimer_ENG = Chapter;
|
|
dis_ENG = Heading1('Disclaimer');
|
|
dis_ENG.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
|
|
disclaimer_ENG.Title = dis_ENG;
|
|
% Disclaimer ENG
|
|
text = Paragraph(['This report consists of a document automatically generated by ASE proprietary software. Its objective is '...
|
|
'to summarize the main monitoring results recorded during a specific time interval by the instrumentation installed on-site. Moreover, '...
|
|
'this document presents all the key information concerning the monitored site, including Arrays number and typology, installation date, '...
|
|
'reference date, installed sensors features, etc. The report is generated automatically on the first day of each month, and it contains '...
|
|
'monitoring data elaborated from the beginning of the previous month, in order to provide a general overview of the site activity '...
|
|
'during the reference time period. For specific typologies of sensors, the report also includes graphs composed of different physical quantities, '...
|
|
'in order to highlight any correlation between data sampled by these sensors.']);
|
|
Link = Paragraph(ExternalLink('https://www2.aseltd.eu','this link.'));
|
|
text2 = Paragraph(['We would like to remind that the report generation is completely automated, therefore it does not contain '...
|
|
'any technical evaluation or validation concerning the results obtained by the instrumentation installed on-site. '...
|
|
'Moreover, the report is intended as a resume of the main outcomes resulting from the monitoring activity. The user can access complete datasets '...
|
|
'and information concerning the monitored site by logging into the interactive web-based platform developed by ASE S.r.l., available at']);
|
|
text7 = Paragraph('REA n. 258983 - VAT ID 02687890349');
|
|
text.HAlign = 'justify';
|
|
text2.HAlign = 'justify';
|
|
text7.Style = {HAlign('left'),OuterMargin('0in','0in','0in','0in'),FontSize('8pt')};
|
|
|
|
add(disclaimer_ENG,text);
|
|
add(disclaimer_ENG,text2);
|
|
Link.Style = {OuterMargin('0in','0in','0in','0in')};
|
|
add(disclaimer_ENG,Link);
|
|
add(disclaimer_ENG,logo);
|
|
add(disclaimer_ENG,text4);
|
|
add(disclaimer_ENG,text5);
|
|
add(disclaimer_ENG,text6);
|
|
add(disclaimer_ENG,text7);
|
|
add(disclaimer_ENG,text8);
|
|
br = PageBreak();
|
|
add(disclaimer_ENG,br);
|
|
add(rpt_ENG,disclaimer_ENG);
|
|
end
|
|
|
|
text = 'Disclaimer page created';
|
|
fprintf(fileID,fmt,text);
|
|
fileID = fopen(FileName,'a');
|
|
|
|
%% Capitolo 1 - sistema MUMS
|
|
sys = Chapter;
|
|
app = Heading1('Sistema MUMS');
|
|
app.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
|
|
sys.Title = app;
|
|
testo = Paragraph(['Il monitoraggio ' char(232) ' svolto mediante sistema MUMS '...
|
|
'(Modular Underground Monitoring System), progettato per il controllo multiparametrico dei movimenti '...
|
|
'orizzontali o verticali del terreno, delle deformazioni di strutture civili '...
|
|
'e/o geotecniche, di barriere paramassi o debris flow. In ogni nodo possono essere collocati sensori per monitorare '...
|
|
'grandezze fisiche di varia natura come spostamenti, inclinazioni, pressione interstiziale, temperatura, etc.']);
|
|
testo2 = Paragraph(['In particolare, il sito ' char(232) ' caratterizzato dalla presenza di ' arraysito ' e relativo sistema'...
|
|
' di acquisizione automatico, completato da batteria tampone ed adeguato sistema di ricarica.']);
|
|
if controlsito ~= 0
|
|
[rTA,~] = size(tipoalarms);
|
|
aVMS = 0;
|
|
aCAM = 0;
|
|
aAL = 0;
|
|
aTL = 0;
|
|
for mm = 1:rTA
|
|
if strcmp(char(tipoalarms(mm)),'Variable Message System')
|
|
aVMS = 1;
|
|
elseif strcmp(char(tipoalarms(mm)),'Traffic Lights')
|
|
aCAM = 1;
|
|
elseif strcmp(char(tipoalarms(mm)),'Alarms')
|
|
aAL = 1;
|
|
elseif strcmp(char(tipoalarms(mm)),'Camera')
|
|
aCAM = 1;
|
|
end
|
|
end
|
|
testo2prep = [];
|
|
spazio = '';
|
|
if aAL > 0
|
|
if nAL == 1
|
|
testo2prep = [num2str(nAL) ' allarme acustico-visivo'];
|
|
else
|
|
testo2prep = [num2str(nAL) ' allarmi acustico-visivi'];
|
|
end
|
|
spazio = ', ';
|
|
end
|
|
if aTL > 0
|
|
if nTL == 1
|
|
testo2prep = [testo2prep spazio num2str(nTL) ' impianto semaforico'];
|
|
else
|
|
testo2prep = [testo2prep spazio num2str(nTL) ' impianti semaforici'];
|
|
end
|
|
spazio = ', ';
|
|
end
|
|
if aVMS > 0
|
|
if nVMS == 1
|
|
testo2prep = [testo2prep spazio num2str(nVMS) ' pannello a messaggio variabile'];
|
|
else
|
|
testo2prep = [testo2prep spazio num2str(nVMS) ' pannelli a messaggio variabile'];
|
|
end
|
|
spazio = ', ';
|
|
end
|
|
if aCAM > 0
|
|
if nCAM == 1
|
|
testo2prep = [testo2prep spazio num2str(nCAM) ' videocamera'];
|
|
else
|
|
testo2prep = [testo2prep spazio num2str(nCAM) ' videocamere'];
|
|
end
|
|
end
|
|
testo2bis = Paragraph(['Il sistema inoltre include un dispositivo di allertamento composto da ' testo2prep '.']);
|
|
else
|
|
testo2bis = [];
|
|
end
|
|
testo3 = Paragraph(['I dati grezzi (punti elettrici) sono salvati su apposito supporto' ...
|
|
' di memoria locale (scheda SD) ed inviati al centro di elaborazione secondo la frequenza impostata. '...
|
|
'Una volta ricevute le informazioni, il dato viene salvato su un Database con backup giornaliero automatico, '...
|
|
'elaborato mediante software con algoritmi proprietari e reso disponibile su piattaforma web ad accesso '...
|
|
'controllato in pochi secondi.']);
|
|
testo4 = Paragraph(['Il funzionamento completo del sisema MUMS ' char(232) ' schematizzato nella figura seguente.']);
|
|
ionh = Image(('ionh.png'));
|
|
testo.HAlign = 'justify';
|
|
testo2.HAlign = 'justify';
|
|
testo3.HAlign = 'justify';
|
|
testo4.HAlign = 'justify';
|
|
testo.HAlign = 'justify';
|
|
testo2.HAlign = 'justify';
|
|
testo3.HAlign = 'justify';
|
|
testo4.HAlign = 'justify';
|
|
ionhcaption = Paragraph(['Fig. ' num2str(FIG) ' - Struttura del sistema di monitoraggio']);
|
|
FIG = FIG + 1;
|
|
ionhcaption.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
|
|
ionh.Style = {Height('8cm'),HAlign('center')};
|
|
add(sys,testo);
|
|
add(sys,testo2);
|
|
if controlsito ~= 0
|
|
add(sys,testo2bis);
|
|
end
|
|
add(sys,testo3);
|
|
add(sys,testo4);
|
|
add(sys,ionh);
|
|
add(sys,ionhcaption);
|
|
add(rpt,sys);
|
|
template(rpt);
|
|
|
|
if activeEN == 1
|
|
sys_ENG = Chapter;
|
|
app_ENG = Heading1('MUMS System');
|
|
app_ENG.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
|
|
sys_ENG.Title = app_ENG;
|
|
testo = Paragraph(['The monitoring activity is performed with MUMS '...
|
|
'(Modular Underground Monitoring System) technology, specifically developed for the '...
|
|
'multi-parametric monitoring of slopes, civil and/or geotechnical structures, rockfall and '...
|
|
'debris flow barriers. Each node of the Array can equip sensors able to measure different '...
|
|
'physical quantities like displacements, tilts, pressure, temperatures, etc.']);
|
|
testo2 = Paragraph(['In particular, the monitoring system installed on-site includes ' arraysitoENG...
|
|
', the automatic data acquisition '...
|
|
'system and a battery, with dedicated recharge apparatus.']);
|
|
if controlsito ~= 0
|
|
testo2prep = [];
|
|
spazio = '';
|
|
if aAL > 0
|
|
if aAL == 1
|
|
testo2prep = [num2str(nAL) ' visual-acoustic alarm'];
|
|
else
|
|
testo2prep = [num2str(nAL) ' visual-acoustic alarms'];
|
|
end
|
|
spazio = ', ';
|
|
end
|
|
if aTL > 0
|
|
if aTL == 1
|
|
testo2prep = [testo2prep spazio num2str(nTL) ' traffic light'];
|
|
else
|
|
testo2prep = [testo2prep spazio num2str(nTL) ' traffic lights'];
|
|
end
|
|
spazio = ', ';
|
|
end
|
|
if aVMS > 0
|
|
if aVMS == 1
|
|
testo2prep = [testo2prep spazio num2str(nVMS) ' variable message panel (VMP)'];
|
|
else
|
|
testo2prep = [testo2prep spazio num2str(nVMS) ' variable message panels (VMPs)'];
|
|
end
|
|
spazio = ', ';
|
|
end
|
|
if aCAM > 0
|
|
if aCAM == 1
|
|
testo2prep = [testo2prep spazio num2str(nCAM) ' camera'];
|
|
else
|
|
testo2prep = [testo2prep spazio num2str(nCAM) ' cameras'];
|
|
end
|
|
end
|
|
testo2bis = Paragraph(['Moreover, the following devices are included for early warning purposes: ' testo2prep '.']);
|
|
end
|
|
testo3 = Paragraph(['The datalogger saves raw data (electrical signals) on a volatile memory (SD card) and then transmits them '...
|
|
'to the elaboration centre, according to a predefined frequency. Upon arrival on central server, a proprietary '...
|
|
'software routine automatically elaborates raw data and converts them into physical units. '...
|
|
'Results are stored in a "parallel" database from which they can be accessed and analysed '...
|
|
'thanks to a dedicated web-based platform with private access.']);
|
|
testo4 = Paragraph('The following image describes the structure of the MUMS-based system.');
|
|
testo.HAlign = 'justify';
|
|
testo2.HAlign = 'justify';
|
|
testo3.HAlign = 'justify';
|
|
testo4.HAlign = 'justify';
|
|
ionhcaption = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Structure of the monitoring system']);
|
|
FIG_ENG = FIG_ENG + 1;
|
|
ionhcaption.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
|
|
ionh.Style = {Height('9cm'),HAlign('center')};
|
|
add(sys_ENG,testo);
|
|
add(sys_ENG,testo2);
|
|
if controlsito ~= 0
|
|
add(sys_ENG,testo2bis);
|
|
end
|
|
add(sys_ENG,testo3);
|
|
add(sys_ENG,testo4);
|
|
add(sys_ENG,ionh);
|
|
add(sys_ENG,ionhcaption);
|
|
add(rpt_ENG,sys_ENG);
|
|
template(rpt_ENG);
|
|
end
|
|
|
|
text = 'MUMS system defined';
|
|
fprintf(fileID,fmt,text);
|
|
fileID = fopen(FileName,'a');
|
|
fclose(fileID);
|
|
|
|
%% Capitolo 2 - Geografia e composizione
|
|
geoloc = Chapter;
|
|
app = Heading1('Caratteristiche del sito');
|
|
app.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
|
|
geoloc.Title = app;
|
|
|
|
testo = Paragraph(['Le principali caratteristiche della strumentazione installata nel sito '...
|
|
'in esame sono riportate nella seguente tabella. Le figure sottostanti presentano la localizzazione '...
|
|
'geografica degli Array e del relativo sistema di acquisizione (immagini '...
|
|
'tratte da Mappe di Bing).']);
|
|
|
|
comando = ['select lat, lon from sites where id like ''' siteID ''' '];
|
|
curs = exec(conn,comando);
|
|
curs = fetch(curs);
|
|
Coordinate = (cell2mat(curs.Data))';
|
|
latNS = 'N';
|
|
lonEO = 'E';
|
|
if Coordinate(1) < 0
|
|
latNS = 'S';
|
|
end
|
|
if Coordinate(2) < 0
|
|
lonEO = 'O';
|
|
end
|
|
testo.HAlign = 'justify';
|
|
|
|
testo2 = Paragraph(['In particolare, il sito in esame si trova '...
|
|
'alle seguenti coordinate geografiche: Latitudine ' num2str(abs(Coordinate(1))) ...
|
|
' ' latNS ', Longitudine ' num2str(abs(Coordinate(2,:))) ' ' lonEO '.']);
|
|
testo2.HAlign = 'justify';
|
|
|
|
%--- IMMAGINI GEOGRAFICHE ---%
|
|
mapsito = ['sito' siteID '.png'];
|
|
geo = Image((mapsito));
|
|
geo.Style = [geo.Style {ScaleToFit}];
|
|
geo_cap = Paragraph(['Fig. ' num2str(FIG) ' - Localizzazione geografica della strumentazione installata e del sistema di acquisizione dati']);
|
|
FIG = FIG+1;
|
|
geo_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
|
|
mapcatene = ['sito' siteID 'det.png'];
|
|
sito = Image((mapcatene));
|
|
sito.Style = [sito.Style {ScaleToFit}];
|
|
sito_cap = Paragraph(['Fig. ' num2str(FIG) ' - Posizione in sito delle centraline e degli strumenti installati']);
|
|
FIG = FIG+1;
|
|
sito_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
|
|
|
|
%--- TABELLA SITO MONITORATO ---%
|
|
Font_Loc = 0;
|
|
[Font_Loc,status,firstdata_num,datasample,colonna1,colonna2,colonna2bis,colonna3,...
|
|
colonna4,colonna5,colonna6,colonna6_short,colonna7,yesKLHR3D,c1trigger,c6trigger,cA] = ...
|
|
report_table(Font_Loc,info_sito,controlsito,tipoarray,tipoalarms,alarms,chainID,Chain_Scheme,...
|
|
yesTL,yesTLHR,yesTLH,yesTLHRH,yesPL,yesBL,yesLL,yesRL,yesKL,yesKLHR,yesThL,...
|
|
yesPT100,yesIPL,yesIPLHR,yesTuL,yesRaL,yesPCL,yesPCLHR,yesPrL,yesEL,yes3DEL,...
|
|
yesWEL,yesMPBEL,yesCrL,yes3DCrL,yesBML,yesHL,yesLuxL,yesCO2,yesRSN,yesRSNHR,yesTrL,...
|
|
yesPE,yesWL,yes2DCrL,yesGF,yesGS,rTL,rTLHR,rTLH,rTLHRH,rKL,rKLHR,rIPL,rIPLHR,nCT,...
|
|
num_nodi,time,conn,FileName) ;
|
|
|
|
% Controllo che Colonna 5 (lunghezza Array) abbia dei dati,
|
|
% altrimenti la elimino
|
|
[rC5,~] = size(colonna5);
|
|
C5 = 0;
|
|
for c = 2:rC5
|
|
if strcmp(char(colonna5(c)),'-') == 0 % Esiste almeno un valore di lunghezza
|
|
C5 = 1;
|
|
break
|
|
end
|
|
end
|
|
|
|
if C5 == 1
|
|
tab = FormalTable([colonna1,colonna2,colonna2bis,colonna3,colonna4,colonna5,colonna6_short,colonna7]);
|
|
else
|
|
tab = FormalTable([colonna1,colonna2,colonna2bis,colonna3,colonna4,colonna6,colonna7]);
|
|
end
|
|
|
|
% formattazione tabella
|
|
if Font_Loc == 1
|
|
tab.TableEntriesStyle = {HAlign('center'),VAlign('middle'),FontSize(Font_table_Loc),InnerMargin('0.5mm')};
|
|
else
|
|
tab.TableEntriesStyle = {HAlign('center'),VAlign('middle'),FontSize(Font_table),InnerMargin('0.5mm')};
|
|
end
|
|
tab.Style = {ResizeToFitContents(true),Width("100%"),RowSep('solid','black','1px'),...
|
|
ColSep('solid','black','1px'),Hyphenation(false),BackgroundColor('#E0F1FF')};
|
|
tab.Border = 'single';
|
|
tabCaption = Paragraph('Tab. 1 - Tipologia e caratteristiche della strumentazione installata in sito');
|
|
tabCaption.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
|
|
bodyFirstRow = tab.Body.Children(1);
|
|
bodyFirstRow.Style = [bodyFirstRow.Style {Bold()}];
|
|
if C5 == 0
|
|
grps(1) = TableColSpecGroup;
|
|
grps(1).Span = 7;
|
|
specs(1) = TableColSpec;
|
|
specs(1).Span = 1;
|
|
specs(1).Style = {Width("7.5%")};
|
|
specs(2) = TableColSpec;
|
|
specs(2).Span = 3;
|
|
specs(2).Style = {Width("15%")};
|
|
specs(3) = TableColSpec;
|
|
specs(3).Span = 1;
|
|
specs(3).Style = {Width("10%")};
|
|
specs(4) = TableColSpec;
|
|
specs(4).Span = 1;
|
|
specs(5) = TableColSpec;
|
|
specs(5).Span = 1;
|
|
specs(5).Style = {Width("12%")};
|
|
grps(1).ColSpecs = specs;
|
|
tab.ColSpecGroups = grps;
|
|
end
|
|
|
|
% Installazione
|
|
testo3 = Paragraph(['La prima lettura disponibile, riportata in Tab. 1, si riferisce '...
|
|
'alla data di inizio monitoraggio. Va sottolineato come i primissimi dati '...
|
|
'rilevati da uno strumento possano essere influenzati dagli assestamenti occorsi in '...
|
|
'seguito all''installazione o dall''adattamento del sensore in sito. Per questo motivo '...
|
|
'viene definita la lettura di riferimento come data in cui i dati raccolti non mostrano '...
|
|
'pi' char(249) ' i caratteri tipici dell''adattamento strumentale in sito (per maggiori informazioni '...
|
|
'consigliamo di fare riferimento agli standard ISO 18674-1:2015).']);
|
|
testo3.HAlign = 'justify';
|
|
|
|
add(geoloc,testo);
|
|
add(geoloc,testo2);
|
|
add(geoloc,testo3);
|
|
add(geoloc,tabCaption);
|
|
add(geoloc,tab);
|
|
add(geoloc,br);
|
|
add(geoloc,geo);
|
|
add(geoloc,geo_cap);
|
|
add(geoloc,sito);
|
|
add(geoloc,sito_cap);
|
|
add(rpt,geoloc);
|
|
template(rpt);
|
|
|
|
if activeEN == 1
|
|
geoloc_ENG = Chapter;
|
|
app_ENG = Heading1('Site features');
|
|
app_ENG.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
|
|
geoloc_ENG.Title = app_ENG;
|
|
|
|
testo = Paragraph(['The table reported below summarizes the main characteristics of the instrumentation installed on-site. '...
|
|
'Moreover, following images display the geographical position of the monitoring system, including the location of Arrays '...
|
|
'and acquisition devices (source: Bing Maps).']);
|
|
|
|
if Coordinate(2) < 0
|
|
lonEO = 'W';
|
|
end
|
|
testo.HAlign = 'justify';
|
|
|
|
testo2 = Paragraph(['Geographical coordinates of the monitored site are: '...
|
|
'Latitude ' num2str(abs(Coordinate(1))) ...
|
|
' ' latNS ', Longitude ' num2str(abs(Coordinate(2,:))) ' ' lonEO '.']);
|
|
testo2.HAlign = 'justify';
|
|
|
|
%--- IMMAGINI GEOGRAFICHE ---%
|
|
geo_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - Geographical position of the monitored site']);
|
|
FIG_ENG = FIG_ENG+1;
|
|
geo_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
|
|
sito_cap = Paragraph(['Fig. ' num2str(FIG_ENG) ' - On-site location of monitoring devices']);
|
|
FIG_ENG = FIG_ENG+1;
|
|
sito_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
|
|
|
|
%--- TABELLA SITO MONITORATO ---%
|
|
[status,firstdata_num,datasample,colonna1,colonna2,colonna2bis,colonna3,...
|
|
colonna4,colonna5,colonna6,colonna6_short,colonna7,yesKLHR3D,c1trigger,c6trigger,cA]...
|
|
= report_table_ENG(info_sito,controlsito,tipoarray,tipoalarms,alarms,chainID,Chain_Scheme,...
|
|
yesTL,yesTLHR,yesTLH,yesTLHRH,yesPL,yesBL,yesLL,yesRL,yesKL,yesKLHR,yesThL,...
|
|
yesPT100,yesIPL,yesIPLHR,yesTuL,yesRaL,yesPCL,yesPCLHR,yesPrL,yesEL,yes3DEL,...
|
|
yesWEL,yesMPBEL,yesCrL,yes3DCrL,yesBML,yesHL,yesLuxL,yesCO2,yesRSN,yesRSNHR,yesTrL,...
|
|
yesPE,yesWL,yes2DCrL,yesGF,yesGS,rTL,rTLHR,rTLH,rTLHRH,rKL,rKLHR,rIPL,rIPLHR,nCT,...
|
|
num_nodi,time,conn,FileName);
|
|
|
|
% Controllo che Colonna 5 (lunghezza Array) abbia dei dati,
|
|
% altrimenti la elimino
|
|
[rC5,~] = size(colonna5);
|
|
C5 = 0;
|
|
for c = 2:rC5
|
|
if strcmp(char(colonna5(c)),'-') == 0 % Esiste almeno un valore di lunghezza
|
|
C5 = 1;
|
|
break
|
|
end
|
|
end
|
|
|
|
if C5 == 1
|
|
tab = FormalTable([colonna1,colonna2,colonna2bis,colonna3,colonna4,colonna5,colonna6_short,colonna7]);
|
|
else
|
|
tab = FormalTable([colonna1,colonna2,colonna2bis,colonna3,colonna4,colonna6,colonna7]);
|
|
end
|
|
|
|
% formattazione tabella
|
|
if Font_Loc == 1
|
|
tab.TableEntriesStyle = {HAlign('center'),VAlign('middle'),FontSize(Font_table_Loc),InnerMargin('0.5mm')};
|
|
else
|
|
tab.TableEntriesStyle = {HAlign('center'),VAlign('middle'),FontSize(Font_table),InnerMargin('0.5mm')};
|
|
end
|
|
tab.Style = {ResizeToFitContents(true),Width("100%"),RowSep('solid','black','1px'),...
|
|
ColSep('solid','black','1px'),Hyphenation(false),BackgroundColor('#E0F1FF')};
|
|
tab.Border = 'single';
|
|
tabCaption = Paragraph('Tab. 1 - Instrumentation typologies and features');
|
|
tabCaption.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
|
|
bodyFirstRow = tab.Body.Children(1);
|
|
bodyFirstRow.Style = [bodyFirstRow.Style {Bold()}];
|
|
if C5 == 0
|
|
grps(1) = TableColSpecGroup;
|
|
grps(1).Span = 7;
|
|
specs(1) = TableColSpec;
|
|
specs(1).Span = 1;
|
|
specs(1).Style = {Width("7.5%")};
|
|
specs(2) = TableColSpec;
|
|
specs(2).Span = 3;
|
|
specs(2).Style = {Width("15%")};
|
|
specs(3) = TableColSpec;
|
|
specs(3).Span = 1;
|
|
specs(3).Style = {Width("10%")};
|
|
specs(4) = TableColSpec;
|
|
specs(4).Span = 1;
|
|
specs(5) = TableColSpec;
|
|
specs(5).Span = 1;
|
|
specs(5).Style = {Width("12%")};
|
|
grps(1).ColSpecs = specs;
|
|
tab.ColSpecGroups = grps;
|
|
end
|
|
|
|
% Installazione
|
|
testo3 = Paragraph(['The first available reading date, reported in Tab. 1, '...
|
|
'refers to the beginning of the monitoring activity. '...
|
|
'It should be taken into account that the very first monitoring data '...
|
|
'are usually influenced by stabilization phenomena, which are a '...
|
|
'natural consequence of the tool installation on-site. For this reason, '...
|
|
'a reference reading date is defined, representing a time reference '...
|
|
'where the device can be considered fully operational since no more '...
|
|
'stabilization movements are observed from sampled data '...
|
|
'(we suggest to refer to the International Standard EN ISO 18674-1:2015 '...
|
|
'documentation for further information on this matter).']);
|
|
testo3.HAlign = 'justify';
|
|
|
|
add(geoloc_ENG,testo);
|
|
add(geoloc_ENG,testo2);
|
|
add(geoloc_ENG,testo3);
|
|
add(geoloc_ENG,tabCaption);
|
|
add(geoloc_ENG,tab);
|
|
add(geoloc_ENG,br);
|
|
add(geoloc_ENG,geo);
|
|
add(geoloc_ENG,geo_cap);
|
|
add(geoloc_ENG,sito);
|
|
add(geoloc_ENG,sito_cap);
|
|
add(rpt_ENG,geoloc_ENG);
|
|
template(rpt_ENG);
|
|
end
|
|
|
|
fileID = fopen(FileName,'a');
|
|
fmt = '%s \r';
|
|
text = 'Site information defined';
|
|
fprintf(fileID,fmt,text);
|
|
fileID = fopen(FileName,'a');
|
|
fclose(fileID);
|
|
|
|
%% Capitolo 3 - Centraline
|
|
% --- Analisi centraline e catene ---
|
|
|
|
datalogger = Chapter;
|
|
app = Heading1('Risultati - Dati delle centraline');
|
|
app.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
|
|
datalogger.Title = app;
|
|
|
|
datalogger_ENG = Chapter;
|
|
if activeEN == 1
|
|
app_ENG = Heading1('Results - Control units');
|
|
app_ENG.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
|
|
datalogger_ENG.Title = app_ENG;
|
|
end
|
|
|
|
[FIG,FIG_ENG,datarif,contunit,IDscaduta] = report_CU(unitID,chainID,adesso,datainvio,numgiorni,...
|
|
datasample,tipoarray,firstdata_num,siteID,datalogger,datalogger_ENG,FIG,FIG_ENG,rpt,rpt_ENG,...
|
|
Font_caption,Font_section,activeEN,conn,FileName);
|
|
|
|
fileID = fopen(FileName,'a');
|
|
fmt = '%s \r';
|
|
text = 'Control units information defined';
|
|
fprintf(fileID,fmt,text);
|
|
fileID = fopen(FileName,'a');
|
|
fclose(fileID);
|
|
|
|
%% Capitolo 4 - Catene
|
|
|
|
MUMS = Chapter;
|
|
app = Heading1('Risultati - Dati della strumentazione installata');
|
|
app.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter)};
|
|
MUMS.Title = app;
|
|
|
|
if activeEN == 1
|
|
MUMS_ENG = Chapter;
|
|
app_ENG = Heading1('Results - Monitoring tools');
|
|
app_ENG.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter)};
|
|
MUMS_ENG.Title = app_ENG;
|
|
else
|
|
MUMS_ENG = [];
|
|
end
|
|
|
|
[PL_A,PL_D,FIG,FIG_ENG] = report_AR(chainID,unitID,tipoarray,contunit,...
|
|
siteID,FIG,FIG_ENG,rpt,rpt_ENG,Font_caption,Font_Chapter,Font_section,...
|
|
Font_tools,datarif,yesKLHR3D,rTL,rTLHR,rTLH,rTLHRH,rPL,rBL,rLL,rRL,rKL,...
|
|
rKLHR,rThL,rPT100,rIPL,rIPLHR,rTuL,rRaL,rPCL,rPCLHR,rPrL,rEL,r3DEL,rWEL,rMPBEL,...
|
|
rCrL,r2DCrL,r3DCrL,rBML,rHL,rLuxL,rCO2,rRSN,rRSNHR,rTrL,rPE,rWL,rGF,rGS,...
|
|
NodoTiltLink,NodoTiltLinkH,NodoPiezoLink,NodoBaroLink,NodoLoadLink,...
|
|
NodoRainLink,NodoKlinoLink,NodoKlinoLinkHR,NodoThermLink,NodoPT100Link,...
|
|
NodoInPlaceLink,NodoInPlaceLinkHR,NodoTunnelLink,NodoRadialLink,NodoPreConvLink,...
|
|
NodoPressureLink,NodoExtensometerLink,Nodo3DExtensometerLink,...
|
|
NodoWireExtensometerLink,NodoMultiPointExtensometerLink,NodoCrackLink,...
|
|
Nodo2DCrackLink,Nodo3DCrackLink,NodoBaroMusaLink,NodoHumidityLink,NodoLuxLink,...
|
|
NodoCO2Link,NodoRSNLink,NodoRSNHRLink,NodoTriggerLink,NodoStressMeter,NodoWeirLink,...
|
|
NodoPendulum,MUMS,MUMS_ENG,colonna2,colonna2bis,colonna4,firstdata_num,activeEN,IDscaduta,...
|
|
status,br,conn,FileName);
|
|
|
|
fileID = fopen(FileName,'a');
|
|
fmt = '%s \r';
|
|
text = 'Arrays information defined';
|
|
fprintf(fileID,fmt,text);
|
|
fileID = fopen(FileName,'a');
|
|
fclose(fileID);
|
|
|
|
%% Capitolo 5 - Control Tools
|
|
if cA > 1 % Significa che ci sono CT
|
|
CT = Chapter;
|
|
app = Heading1('Risultati - Attivazioni dei Control Tools');
|
|
app.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter)};
|
|
CT.Title = app;
|
|
|
|
if activeEN == 1
|
|
CT_ENG = Chapter;
|
|
app_ENG = Heading1('Results - Control Tools activations');
|
|
app_ENG.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter)};
|
|
CT_ENG.Title = app_ENG;
|
|
else
|
|
CT_ENG = [];
|
|
end
|
|
|
|
[FIG,FIG_ENG] = report_CT(c1trigger,c6trigger,alarms,nCT,rpt,Font_caption,...
|
|
Font_table,Font_section,datarif,CT,CT_ENG,FIG,FIG_ENG,activeEN,conn,FileName);
|
|
|
|
fileID = fopen(FileName,'a');
|
|
fmt = '%s \r';
|
|
text = 'Control tools information defined';
|
|
fprintf(fileID,fmt,text);
|
|
fileID = fopen(FileName,'a');
|
|
fclose(fileID);
|
|
end
|
|
|
|
%% Appendice
|
|
[dim,~]= size(colonna6);
|
|
appendice = Chapter;
|
|
app = Heading1('Appendice');
|
|
app.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
|
|
appendice.Title = app;
|
|
|
|
if activeEN == 1
|
|
appendice_ENG = Chapter;
|
|
app_ENG = Heading1('Appendix');
|
|
app_ENG.Style = {OuterMargin('0in','0in','0in','0in'),FontSize(Font_Chapter),HAlign('justify')};
|
|
appendice_ENG.Title = app_ENG;
|
|
else
|
|
appendice_ENG = [];
|
|
end
|
|
|
|
report_appendix(yesTL,yesIPL,yesIPLHR,yesTLH,yesPCL,yesTLHR,yesTLHRH,yesPCLHR,...
|
|
yesPL,yesBL,yesTuL,yesRaL,yesThL,yesKL,yesKLHR,yesRL,yesLL,yesPrL,yesPT100,...
|
|
yesCrL,yes3DCrL,yesEL,yes3DEL,yesWEL,yesMPBEL,yesTrL,nCAM,yesWL,yesPE,PL_A,PL_D,...
|
|
Font_section,Font_caption,Font_tools,FIG,FIG_ENG,dim,appendice,appendice_ENG,...
|
|
colonna4,colonna6,rpt,rpt_ENG,activeEN,FileName)
|
|
|
|
% Chiudi report
|
|
close(rpt);
|
|
close(rpt_ENG);
|
|
|
|
%% ---Email---
|
|
[rU,cU] = size(Users_Report);
|
|
sendReportmail(NomeSito,Coordinate,meseadesso,NomeReport,NomeReport_ENG,...
|
|
Users_Report,recipients_ASE,Mail,Mail_ASE,activeEN,rU,cU,FileName);
|
|
end
|
|
end
|
|
end
|
|
else
|
|
datainvio = meseadesso+1;
|
|
if datainvio > 12
|
|
datainvio = datainvio-12;
|
|
end
|
|
end
|
|
%% --- Modifica file di testo --- %%%
|
|
if numgiorni == 30
|
|
if datainvio == 12
|
|
nuovofile = 1;
|
|
elseif datainvio == 13
|
|
nuovofile = 13;
|
|
else
|
|
nuovofile = adesso+1;
|
|
end
|
|
else
|
|
nuovofile = datainvio + numgiorni;
|
|
end
|
|
attivaReport = 0;
|
|
outdat = fopen(NomeFile,'wt+');
|
|
fopen(NomeFile,'wt');
|
|
fmt = '%d \r';
|
|
fileID = fopen(NomeFile,'a');
|
|
fprintf(fileID,fmt,nuovofile);
|
|
fprintf(fileID,fmt,attivaReport);
|
|
fclose(fileID);
|
|
|
|
catch err
|
|
FileErr = ['ErrorFile-' IDcentralina '-' datestr(today) '-' datestr(now,'hhMMss') '.txt'];
|
|
fid = fopen(FileErr,'a+');
|
|
fprintf(fid, '%s', err.getReport('extended','hyperlinks','off'));
|
|
fclose(fid);
|
|
|
|
% Scarico la frequenza del report
|
|
comando = ['select freq_report from sites where id like ''' siteID ''' '];
|
|
curs = exec(conn,comando);
|
|
curs = fetch(curs);
|
|
Freq = cell2mat(curs.Data);
|
|
numgiorni = Freq;
|
|
|
|
NomeFile = strcat('Report',siteID,'.txt');
|
|
|
|
if isfile(NomeFile) == 1 % Esiste
|
|
Filetesto = importdata(NomeFile);
|
|
datainvio = Filetesto(1,1); % mese di invio OPPURE data di ultimo invio
|
|
else
|
|
datainvio = meseadesso+1;
|
|
if datainvio > 12
|
|
datainvio = datainvio-12;
|
|
end
|
|
end
|
|
|
|
attivaReport = 0;
|
|
outdat = fopen(NomeFile,'wt+');
|
|
fopen(NomeFile,'wt');
|
|
fmt = '%d \r';
|
|
fileID = fopen(NomeFile,'a');
|
|
if numgiorni == 30
|
|
if datainvio == 12
|
|
nuovofile = 12;
|
|
elseif datainvio == 13
|
|
nuovofile = 13;
|
|
else
|
|
nuovofile = adesso;
|
|
end
|
|
else
|
|
nuovofile = datainvio;
|
|
end
|
|
fprintf(fileID,fmt,nuovofile);
|
|
fprintf(fileID,fmt,attivaReport);
|
|
fclose(fileID);
|
|
|
|
%% Email
|
|
setpref('Internet','E_mail','aseparma@gmail.com');
|
|
setpref('Internet','SMTP_Server','smtp.gmail.com');
|
|
setpref('Internet','SMTP_Username','aseparma@gmail.com');
|
|
setpref('Internet','SMTP_Password','Mums@2016');
|
|
props=java.lang.System.getProperties;
|
|
pp=props.setProperty('mail.smtp.auth','true'); %#ok
|
|
pp=props.setProperty('mail.smtp.socketFactory.class','javax.net.ssl.SSLSocketFactory'); %#ok
|
|
pp=props.setProperty('mail.smtp.socketFactory.port','465'); %#ok
|
|
|
|
subject_ITA = (['CRASH del Report Automatico - ' NomeSito '']);
|
|
testo = cellstr('Ciao Andrea e Alessandro,');
|
|
testobis = cellstr('');
|
|
testo2 = cellstr(['Nella funzione del report avete scritto qualche minchiata per cui crasha. Vi prego di correggermi '...
|
|
'o continuer' char(243) ' a crashare e ad assillarvi con questa mail. Troverete l''errore in allegato.']);
|
|
message_ITA = [testo; testobis; testo2];
|
|
message = cellstr('Tanti Bip e Bop a te, ');
|
|
message2 = cellstr('Software Tilt');
|
|
message_ITA = [message_ITA; message; message2];
|
|
|
|
recipients_ASE{1,1} = 'alessandro.valletta@aseltd.eu';
|
|
recipients_ASE{2,1} = 'andrea.carri@aseltd.eu';
|
|
|
|
allegato = FileErr;
|
|
|
|
sendmail(recipients_ASE, subject_ITA, message_ITA, allegato)
|
|
|
|
end
|
|
|
|
fileID = fopen(FileName,'a');
|
|
fmt = '%s \r';
|
|
text = 'report_ASE function executed correctly';
|
|
fprintf(fileID,fmt,text);
|
|
fclose(fileID);
|
|
|
|
end |