Compare commits

12 Commits

3 changed files with 59 additions and 17 deletions

View File

@@ -30,6 +30,7 @@ my (
); );
my $matlab_proxy_ssh = "localhost"; #"80.211.107.201"; my $matlab_proxy_ssh = "localhost"; #"80.211.107.201";
my $matlab_proxy_ssh_port = 22; #2222; my $matlab_proxy_ssh_port = 22; #2222;
my $matlab_exec_user = 'asega';
my $matlab_cmd = ""; my $matlab_cmd = "";
my $matlab_timestamp = ""; my $matlab_timestamp = "";
my $ftp_send = 1; my $ftp_send = 1;
@@ -53,9 +54,11 @@ my ( $email_msg, $email_obj );
my $G201_fcheck = 0; my $G201_fcheck = 0;
my $D2W_fcheck = 0; my $D2W_fcheck = 0;
my $G301_fcheck = 0; my $G301_fcheck = 0;
my $CR1000X_fcheck = 0;
my $FtpToCustomerCmd = 'SendFtpElabData.pl'; my $FtpToCustomerCmd = 'SendFtpElabData.pl';
my ( $scriptname, $scriptpath ); my ( $scriptname, $scriptpath );
my $MatlabErrorFilename = "/tmp/"; my $MatlabErrorPath = "/tmp/";
my $MatlabErrorFilename = $MatlabErrorPath;
my @matlabOutputErrorArray; my @matlabOutputErrorArray;
my @errors; my @errors;
my @warnings; my @warnings;
@@ -135,15 +138,17 @@ sub matlabCalc {
#print $ENV{"HOME"} . "\n"; #print $ENV{"HOME"} . "\n";
$ENV{"HOME"} = "/" . $ENV{"HOME"}; $ENV{"HOME"} = "/" . $ENV{"HOME"};
my $cmd_elab = chdir($matlab_func_dir)
"timeout $matlab_timeout $matlab_cmd $matlab_rt $unit $tool"; or die "cannot change: $!\n";
print getTimeStamp("log")
#my $args = "sh -c \'cd $matlab_func_dir; pwd; $cmd_elab\'"; . " - pid $$ >> current dir: $matlab_func_dir\n";
my $args = "timeout $matlab_timeout $matlab_cmd $matlab_rt $unit $tool";
my $args =
"ssh $matlab_proxy_ssh -p $matlab_proxy_ssh_port \"sh -c \'cd $matlab_func_dir; $cmd_elab\'\"";
if ( system($args) != 0 ) { if ( system($args) != 0 ) {
my $argscat =
"cd $MatlabErrorPath; cat _${unit}_${tool}*_\*_output_error.txt > ${unit}${tool}_output_error.txt";
system($argscat);
open( my $fh, '<', $MatlabErrorFilename ) open( my $fh, '<', $MatlabErrorFilename )
or warn print getTimeStamp("log") or warn print getTimeStamp("log")
. " - pid $$ >> Cannot open Matlab output error file: ${MatlabErrorFilename}\n"; . " - pid $$ >> Cannot open Matlab output error file: ${MatlabErrorFilename}\n";
@@ -207,7 +212,7 @@ sub getNodesType {
inner join tools as t on t.id = n.tool_id inner join tools as t on t.id = n.tool_id
inner join units as u on u.id = t.unit_id inner join units as u on u.id = t.unit_id
inner join nodetypes as y on n.nodetype_id = y.id inner join nodetypes as y on n.nodetype_id = y.id
where t.name = "' where y.type not in (\'Anchor Link\', \'None\') and t.name = "'
. $tool . $tool
. '" and u.name = "' . '" and u.name = "'
. $unit . $unit
@@ -431,6 +436,13 @@ elsif ( $filecsvname =~ m/^D2W_ID\d\d\d\d_DT\d\d\d\d_\d*$/i ) {
$tool = $strings[2]; $tool = $strings[2];
$tooltype = 'D2W'; $tooltype = 'D2W';
} }
elsif ( $filecsvname =~ m/^CR1000X_ID\d\d\d\d_DT\d\d\d\d_\d*$/i ) {
my @strings = $filecsvname =~ /(.{1,7})_(.{1,6})_(.{1,6}).*/;
$unittype = $strings[0];
$unit = $strings[1];
$tool = $strings[2];
$tooltype = 'CR1000X';
}
elsif ( $filecsvname =~ m/^(\d*_|)(G301_ID\d\d\d\d_DT\d\d\d\d_\d*)$/i ) { elsif ( $filecsvname =~ m/^(\d*_|)(G301_ID\d\d\d\d_DT\d\d\d\d_\d*)$/i ) {
my $filecsvname_clean = my $filecsvname_clean =
substr( $filecsvname, index( $filecsvname, "G301" ) ); substr( $filecsvname, index( $filecsvname, "G301" ) );
@@ -442,10 +454,15 @@ elsif ( $filecsvname =~ m/^(\d*_|)(G301_ID\d\d\d\d_DT\d\d\d\d_\d*)$/i ) {
} }
while ( my $line = <FILE> ) { while ( my $line = <FILE> ) {
if ( $line =~ m/\A [[:ascii:]]* \Z/xms ) {
#if ( $line =~ m/\A [[:ascii:]]* \Z/xms ) {
if ( $line !~ /\x00/ ) {
$line =~ tr /\,/\;/ if ( $line =~ m/^\"\d\d\d\d.*/i ); #CR1000X
$line =~ s/\"//g;
my ( $first, $NodeData ) = split( /;/, $line, 2 ); my ( $first, $NodeData ) = split( /;/, $line, 2 );
if ( defined $first and ( $first ne '' ) ) { if ( defined $first and ( $first ne '' ) ) {
$first =~ s/;+$//; $first =~ s/;+$//;
$first =~ tr /\-/\//;
if ( !defined $NodeData or ( $NodeData =~ m/^;+/ ) ) { if ( !defined $NodeData or ( $NodeData =~ m/^;+/ ) ) {
my @info = ( split( /[\/,\.]/, $first ) ); my @info = ( split( /[\/,\.]/, $first ) );
if ( defined $info[3] && $info[3] =~ m/^DT\d\d\d\d$/i ) { #G801 if ( defined $info[3] && $info[3] =~ m/^DT\d\d\d\d$/i ) { #G801
@@ -502,6 +519,12 @@ while ( my $line = <FILE> ) {
getNodesType(); getNodesType();
$D2W_fcheck = 1; $D2W_fcheck = 1;
} }
if ( $unittype eq 'CR1000X' and $CR1000X_fcheck eq 0 ) {
print getTimeStamp("log")
. " - pid $$ >> Found $tooltype tool name: $tool\n";
getNodesType();
$CR1000X_fcheck = 1;
}
if ( $unittype eq 'G301' and $G301_fcheck eq 0 ) { if ( $unittype eq 'G301' and $G301_fcheck eq 0 ) {
print getTimeStamp("log") print getTimeStamp("log")
. " - pid $$ >> Found $tooltype tool name: $tool\n"; . " - pid $$ >> Found $tooltype tool name: $tool\n";
@@ -527,6 +550,11 @@ while ( my $line = <FILE> ) {
} }
} }
} }
elsif ( $tooltype eq "CR1000X" )
{ # può essere tolto per attivarlo
@CSVData = split( /\|/, $NodeData );
}
elsif ( $tooltype eq "MUSA" ) { elsif ( $tooltype eq "MUSA" ) {
#$NodeData =~ s/Dis\./N\/A/g; #$NodeData =~ s/Dis\./N\/A/g;

View File

@@ -72,7 +72,7 @@ sub trxelab {
my $fileelab; my $fileelab;
if ( !defined($ftp_filename) or $ftp_filename eq "" ) { if ( !defined $ftp_filename or $ftp_filename eq "" ) {
$fileelab = $fileelab =
'/var/lib/mysql-files/' '/var/lib/mysql-files/'
. $tool . '_' . $tool . '_'
@@ -123,8 +123,7 @@ sub trxelab {
print getTimeStamp("log") . " - pid $$ >> $unit - $tool ftp parm:\n"; print getTimeStamp("log") . " - pid $$ >> $unit - $tool ftp parm:\n";
while ( my ( $key, $value ) = each(%ftp_parms) ) { while ( my ( $key, $value ) = each(%ftp_parms) ) {
print getTimeStamp("log") print getTimeStamp("log") . " - pid $$ >> - $key = $ftp_parms{$key}\n";
. " - pid $$ >> - $key = $ftp_parms{$key}\n";
} }
if ( !defined $duedate if ( !defined $duedate
@@ -195,4 +194,4 @@ if ( $tool eq 'DT0076' ) {
trxelab(); trxelab();
print getTimeStamp("log") . " - pid $$ >> Execution ended.\n"; print getTimeStamp("log") . " - pid $$ >> Execution ended.\n";
exit; exit;

View File

@@ -54,13 +54,24 @@ sub getUnitName { # parm => file received ($trfile)
elsif ( $filenamecsv =~ m/^measurements_\d\d_\d\d_\d\d\d\d__\d\d_\d\d$/i ) { elsif ( $filenamecsv =~ m/^measurements_\d\d_\d\d_\d\d\d\d__\d\d_\d\d$/i ) {
$unittype = "NESA"; $unittype = "NESA";
} }
elsif ( $filenamecsv =~ m/^\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d$/i )
{ # nesa file con serial number centralina
$unittype = "NESA";
}
elsif ( $filenamecsv =~ m/^D2W_ID\d\d\d\d_DT\d\d\d\d$/i ) { elsif ( $filenamecsv =~ m/^D2W_ID\d\d\d\d_DT\d\d\d\d$/i ) {
my @strings = $filenamecsv =~ /(.{1,3})_(.{1,6})_(.{1,6}).*/; my @strings = $filenamecsv =~ /(.{1,3})_(.{1,6})_(.{1,6}).*/;
$unittype = $strings[0]; $unittype = $strings[0];
$unit = $strings[1]; $unit = $strings[1];
} }
elsif ( $filenamecsv =~ m/^CR1000X_ID\d\d\d\d_DT\d\d\d\d$/i ) {
my @strings = $filenamecsv =~ /(.{1,7})_(.{1,6})_(.{1,6}).*/;
$unittype = $strings[0];
$unit = $strings[1];
}
elsif ( $filenamecsv =~ m/^(\d*_|)G301_ID\d\d\d\d_DT\d\d\d\d$/i ) { elsif ( $filenamecsv =~ m/^(\d*_|)G301_ID\d\d\d\d_DT\d\d\d\d$/i ) {
my @strings = $filenamecsv =~ /(.{1,4})_(.{1,6})_(.{1,6}).*/; my $filecsvname_clean =
substr( $filenamecsv, index( $filenamecsv, "G301" ) );
my @strings = $filecsvname_clean =~ /(.{1,4})_(.{1,6})_(.{1,6}).*/;
$unittype = $strings[0]; $unittype = $strings[0];
$unit = $strings[1]; $unit = $strings[1];
} }
@@ -107,10 +118,11 @@ while ( my $line = $tail->GetLine() ) {
m/^(\d\d_\d\d\d\d_|)(DT\d\d\d\d|LOC\d\d\d\d|GD\d\d\d\d)$/i m/^(\d\d_\d\d\d\d_|)(DT\d\d\d\d|LOC\d\d\d\d|GD\d\d\d\d)$/i
or $filename =~ m/^G201_ID\d\d\d\d_DT\d\d\d\d_\d*$/i or $filename =~ m/^G201_ID\d\d\d\d_DT\d\d\d\d_\d*$/i
or $filename =~ m/^D2W_ID\d\d\d\d_DT\d\d\d\d$/i or $filename =~ m/^D2W_ID\d\d\d\d_DT\d\d\d\d$/i
or $filename =~ m/^CR1000X_ID\d\d\d\d_DT\d\d\d\d$/i
or $filename =~ m/^(\d*_|)G301_ID\d\d\d\d_DT\d\d\d\d$/i or $filename =~ m/^(\d*_|)G301_ID\d\d\d\d_DT\d\d\d\d$/i
or $filename =~ m/^GFLOW_ID\d\d\d\d_DT\d\d\d\d_\d*$/i or $filename =~ m/^GFLOW_ID\d\d\d\d_DT\d\d\d\d_\d*$/i
or $filename =~ or $filename =~ m/^measurements_\d\d_\d\d_\d\d\d\d__\d\d_\d\d$/i
m/^measurements_\d\d_\d\d_\d\d\d\d__\d\d_\d\d$/i ) or $filename =~ m/^\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d$/i )
) )
{ {
@@ -149,10 +161,13 @@ while ( my $line = $tail->GetLine() ) {
m/^(\d\d_\d\d\d\d_|)(DT\d\d\d\d|LOC\d.*|GD\d*)$/i m/^(\d\d_\d\d\d\d_|)(DT\d\d\d\d|LOC\d.*|GD\d*)$/i
or $filename =~ m/^G201_ID\d\d\d\d_DT\d\d\d\d_\d*$/i or $filename =~ m/^G201_ID\d\d\d\d_DT\d\d\d\d_\d*$/i
or $filename =~ m/^D2W_ID\d\d\d\d_DT\d\d\d\d$/i or $filename =~ m/^D2W_ID\d\d\d\d_DT\d\d\d\d$/i
or $filename =~ m/^CR1000X_ID\d\d\d\d_DT\d\d\d\d$/i
or $filename =~ m/^(\d*_|)G301_ID\d\d\d\d_DT\d\d\d\d$/i or $filename =~ m/^(\d*_|)G301_ID\d\d\d\d_DT\d\d\d\d$/i
or $filename =~ m/^GFLOW_ID\d\d\d\d_DT\d\d\d\d_\d*$/i or $filename =~ m/^GFLOW_ID\d\d\d\d_DT\d\d\d\d_\d*$/i
or $filename =~ or $filename =~
m/^measurements_\d\d_\d\d_\d\d\d\d__\d\d_\d\d$/i m/^measurements_\d\d_\d\d_\d\d\d\d__\d\d_\d\d$/i
or $filename =~
m/^\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d$/i
) )
and ( $unit ne 'ID9999' ) and ( $unit ne 'ID9999' )
and ( $truser ne 'corra' ) and ( $truser ne 'corra' )