Line 14... |
Line 14... |
my @charts=@{$charts_ref};
|
my @charts=@{$charts_ref};
|
my $notebook = Gtk2::Notebook->new;
|
my $notebook = Gtk2::Notebook->new;
|
$notebook->set_scrollable(TRUE);
|
$notebook->set_scrollable(TRUE);
|
$notebook->can_focus(FALSE);
|
$notebook->can_focus(FALSE);
|
|
|
|
#check if we ned to save all graph results
|
|
my $save_all_status = $self->object_get_attribute ("graph_save","save_all_result");
|
|
$save_all_status=0 if (!defined $save_all_status);
|
|
$self->object_add_attribute ("graph_save","save_all_result",0);
|
|
if ($save_all_status ==1){
|
|
my $save_path = $self->object_get_attribute ('sim_param','ALL_RESULT_DIR');
|
|
if (-d $save_path){
|
|
my $results_path = "$save_path/all_results";
|
|
rmtree("$results_path");
|
|
mkpath("$results_path",1,01777);
|
|
save_all_results($self,$pageref,$charts_ref,$results_path);
|
|
|
|
}
|
|
}
|
|
|
foreach my $page (@pages){
|
foreach my $page (@pages){
|
my @selects;
|
my @selects;
|
my $page_id= "P$page->{page_num}";
|
my $page_id= "P$page->{page_num}";
|
my $active = $self->object_get_attribute ($page_id,'active');
|
my $active = $self->object_get_attribute ($page_id,'active');
|
Line 68... |
Line 81... |
|
|
|
|
}
|
}
|
|
|
|
|
|
sub save_all_results{
|
|
my ($self,$pageref,$charts_ref,$results_path)=@_;
|
|
my @pages=@{$pageref};
|
|
my @charts=@{$charts_ref};
|
|
foreach my $chart (@charts){
|
|
my $result_name= "$chart->{result_name}";
|
|
my $charttype= "$chart->{type}";
|
|
|
|
if($charttype eq '2D_line'){
|
|
my $file_name = "$results_path/${result_name}.txt";
|
|
write_graph_results_in_file($self,$file_name,$result_name,undef,$charttype);
|
|
next;
|
|
};#3d
|
|
|
|
my @ratios;
|
|
my @x;
|
|
|
|
|
|
my @samples =$self->object_get_attribute_order("samples");
|
|
foreach my $sample (@samples){
|
|
|
|
my $ref=$self->object_get_attribute ($sample,$result_name);
|
|
if(defined $ref){
|
|
@ratios=get_uniq_keys($ref,@ratios);
|
|
|
|
}
|
|
|
|
foreach my $ratio (@ratios){
|
|
|
|
my @results;
|
|
foreach my $sample2 (@samples){
|
|
my $ref=$self->object_get_attribute ($sample2,"$result_name");
|
|
@x=get_uniq_keys($ref->{$ratio},@x) if(defined $ref);
|
|
|
|
}
|
|
|
|
my $i=1;
|
|
foreach my $sample (@samples){
|
|
my @y;
|
|
my $ref=$self->object_get_attribute ($sample,"$result_name");
|
|
if(defined $ref){
|
|
foreach my $v (@x){
|
|
my $w=$ref->{$ratio}->{$v};
|
|
push(@y,$w);
|
|
}#for v
|
|
$results[$i]=\@y if(scalar @x);
|
|
$i++;
|
|
}#if
|
|
}#sample
|
|
$results[0]=\@x if(scalar @x);
|
|
my $file_name = "$results_path/${result_name}_r$ratio.txt";
|
|
write_graph_results_in_file($self,$file_name,$result_name,\@results,$charttype);
|
|
|
|
}#ratio
|
|
}#sample
|
|
}#chart
|
|
#done saving clear the saving status
|
|
|
|
|
|
}
|
|
|
|
|
sub get_uniq_keys {
|
sub get_uniq_keys {
|
my ($ref,@x)=@_;
|
my ($ref,@x)=@_;
|
|
|
if(defined $ref) {
|
if(defined $ref) {
|
Line 363... |
Line 437... |
|
|
#$table->attach ($plus , 9, 10, $row, $row+1,'shrink','shrink',2,2); $row++;
|
#$table->attach ($plus , 9, 10, $row, $row+1,'shrink','shrink',2,2); $row++;
|
#$table->attach ($minues, 9, 10, $row, $row+1,'shrink','shrink',2,2); $row++;
|
#$table->attach ($minues, 9, 10, $row, $row+1,'shrink','shrink',2,2); $row++;
|
$table->attach ($setting, 9, 10, $row, $row+1,'shrink','shrink',2,2); $row++;
|
$table->attach ($setting, 9, 10, $row, $row+1,'shrink','shrink',2,2); $row++;
|
$table->attach ($save, 9, 10, $row, $row+1,'shrink','shrink',2,2); $row++;
|
$table->attach ($save, 9, 10, $row, $row+1,'shrink','shrink',2,2); $row++;
|
|
|
while ($row<10){
|
while ($row<10){
|
|
|
my $tmp=gen_label_in_left('');
|
my $tmp=gen_label_in_left('');
|
$table->attach_defaults ($tmp, 9, 10, $row, $row+1);$row++;
|
$table->attach_defaults ($tmp, 9, 10, $row, $row+1);$row++;
|
}
|
}
|
Line 773... |
Line 848... |
my $table = def_table(10, 2, FALSE);
|
my $table = def_table(10, 2, FALSE);
|
my $row=0;
|
my $row=0;
|
|
|
|
|
my @data=@$ref;
|
my @data=@$ref;
|
|
my $coltmp;
|
foreach my $d (@data) {
|
foreach my $d (@data) {
|
$row=noc_param_widget ($self, $d->{label}, $d->{param_name}, $d->{default_val}, $d->{type}, $d->{content}, $d->{info}, $table,$row,1, $d->{param_parent}, $d->{ref_delay});
|
#$row=noc_param_widget ($self, $d->{label}, $d->{param_name}, $d->{default_val}, $d->{type}, $d->{content}, $d->{info}, $table,$row, 1, $d->{param_parent}, $d->{ref_delay});
|
|
($row,$coltmp)=add_param_widget ($self, $d->{label}, $d->{param_name}, $d->{default_val}, $d->{type}, $d->{content}, $d->{info}, $table,$row,undef,1, $d->{param_parent}, $d->{ref_delay} ,undef,undef);
|
}
|
}
|
|
|
|
|
|
|
|
|
Line 807... |
Line 884... |
|
|
sub write_image {
|
sub write_image {
|
my ($self,$graph_name,$image)=@_;
|
my ($self,$graph_name,$image)=@_;
|
my $save=$self->object_get_attribute("graph_save","save");
|
my $save=$self->object_get_attribute("graph_save","save");
|
|
|
|
|
my $active_graph=$self->object_get_attribute("graph_save","graph_name");
|
my $active_graph=$self->object_get_attribute("graph_save","graph_name");
|
$save=0 if (!defined $save);
|
$save=0 if (!defined $save);
|
$active_graph = 0 if(!defined $active_graph);
|
$active_graph = 0 if(!defined $active_graph);
|
|
|
if ($save ==1 && $active_graph eq $graph_name){
|
if ($save ==1 && $active_graph eq $graph_name){
|
Line 842... |
Line 918... |
my $save=$self->object_get_attribute("graph_save","save_result");
|
my $save=$self->object_get_attribute("graph_save","save_result");
|
my $active_graph=$self->object_get_attribute("graph_save","graph_name");
|
my $active_graph=$self->object_get_attribute("graph_save","graph_name");
|
$save=0 if (!defined $save);
|
$save=0 if (!defined $save);
|
$active_graph = 0 if(!defined $active_graph);
|
$active_graph = 0 if(!defined $active_graph);
|
|
|
|
|
|
|
if ($save ==1 && $active_graph eq $graph_name){
|
if ($save ==1 && $active_graph eq $graph_name){
|
my $file=$self->object_get_attribute("graph_save","name");
|
my $file=$self->object_get_attribute("graph_save","name");
|
my $ext=$self->object_get_attribute("graph_save","extension");
|
|
$self->object_add_attribute("graph_save","save_result",0);
|
$self->object_add_attribute("graph_save","save_result",0);
|
|
write_graph_results_in_file($self,"$file.txt",$result_name,$result_ref,$charttype);
|
|
}
|
|
}
|
|
|
open( my $out, '>', "$file.txt");
|
sub write_graph_results_in_file{
|
|
my ($self,$file_name,$result_name,$result_ref,$charttype)=@_;
|
|
|
|
open( my $out, '>', $file_name);
|
if (tell $out )
|
if (tell $out )
|
{
|
{
|
warn "Cannot open $file.txt to write: $!";
|
warn "Cannot open $file_name to write: $!";
|
|
return;
|
}
|
}
|
else
|
else
|
{
|
{
|
if($charttype eq '2D_line'){
|
if($charttype eq '2D_line'){
|
|
write_2d_graph_results($self,$out,$result_name);
|
|
} else{
|
|
write_3d_graph_results($self,$out,$result_ref);
|
|
}
|
|
close $out;
|
|
}
|
|
}
|
|
|
|
|
|
sub write_2d_graph_results{
|
|
my ($self,$out,$result_name)=@_;
|
my @samples =$self->object_get_attribute_order("samples");
|
my @samples =$self->object_get_attribute_order("samples");
|
foreach my $sample (@samples){
|
foreach my $sample (@samples){
|
my $l_name= $self->object_get_attribute($sample,"line_name");
|
my $l_name= $self->object_get_attribute($sample,"line_name");
|
my $ref=$self->object_get_attribute ($sample,$result_name);
|
my $ref=$self->object_get_attribute ($sample,$result_name);
|
my @x;
|
my @x;
|
if(defined $ref) {
|
if(defined $ref) {
|
|
|
print $out "$l_name\n";
|
print $out "$l_name\n";
|
foreach my $x (sort {$a<=>$b} keys %{$ref}) {
|
foreach my $x (sort {$a<=>$b} keys %{$ref}) {
|
my $y=$ref->{$x};
|
my $y=$ref->{$x};
|
print $out "\t$x , $y\n";
|
print $out "\t$x , $y\n";
|
}
|
}
|
print $out "\n\n";
|
print $out "\n\n";
|
}
|
}
|
}#for
|
}#for
|
} else{
|
|
write_3d_graph_results($self,$out,$result_ref);
|
|
|
|
|
|
}
|
|
|
|
close $out;
|
|
}
|
|
}
|
|
}
|
}
|
|
|
|
|
sub write_3d_graph_results{
|
sub write_3d_graph_results{
|
my ($self,$out,$result_ref)=@_;
|
my ($self,$out,$result_ref)=@_;
|