FHEM Forum

FHEM => Sonstiges => Thema gestartet von: PatrickR am 25 Februar 2017, 21:40:35

Titel: Patch für 98_apptime.pm
Beitrag von: PatrickR am 25 Februar 2017, 21:40:35
Hallo Martin und Mitstreiter!

Als regelmäßiger Nutzer der ausgesprochen hilfreichen Apptime-Moduls habe ich einen Patch vorbereitet:

--- 98_apptime.pm.dist 2016-12-18 16:22:37.000000000 +0100
+++ 98_apptime.pm 2017-04-04 20:21:48.041642659 +0200
@@ -86,7 +86,7 @@

     %{$defs{$e}{helper}{bm}{$fnName}} =(max =>0, mAr =>"",
                                         cnt =>1, tot =>0,
-                                        dmx =>0);
+                                        dmx =>0, mTS => "");

     $h = $defs{$e}{helper}{bm}{$fnName};
   }
@@ -108,6 +108,7 @@
   if ($ts1 && $h->{max}<$ts1){
     $h->{max}=$ts1;
     $h->{mAr}= \@arg;
+    $h->{mTS}= strftime("%d.%m. %H:%M:%S", localtime());
   }

   $h->{tot}+=$ts1;
@@ -147,7 +148,7 @@
             ${$h->{mAr}}[$i] = "HASH(".${$h->{mAr}}[$i]->{NAME}.")";
           }
         }
-        $arg = join ("; ",@{$h->{mAr}});
+        $arg = join ("; ", map { $_ // "(undef)" } @{$h->{mAr}});
       }

       push @bmArr,[($n,$t
@@ -156,6 +157,7 @@
                    ,$h->{tot}
                    ,$h->{tot} /$h->{cnt}
                    ,$h->{dmx}
+                   ,$h->{mTS}
                    ,$arg
                   )];
     }
@@ -163,12 +165,12 @@
   my $field = $fld{$sFld};
   if ($field>1){@bmArr = sort { $b->[$field] <=> $a->[$field] } @bmArr;}
   else         {@bmArr = sort { $b->[$field] cmp $a->[$field] } @bmArr;}
-  my $ret = sprintf("\n %35s %20s %6s %6s %8s %8s %s",
-            "name","function","max","count","total","average","maxDly","param Max call");
+  my $ret = sprintf("\n %-40s %-35s %6s %6s %8s %8s %6s %-15s %s",
+            "name","function","max","count","total","average","maxDly","TS Max call","param Max call");
   my $end = ($top && $top eq "top")?20:@bmArr-1;
   $end = @bmArr-1 if ($end>@bmArr-1);

-  $ret .= sprintf("\n %35s %20s %6d %6d %8d %8.2f %6d %s",@{$bmArr[$_]})for (0..$end);
+  $ret .= sprintf("\n %-40s %-35s %6d %6d %8d %8.2f %6d %-15s %s",@{$bmArr[$_]})for (0..$end);
   return $ret;
}


Änderungen:

/Edit: Patch gefixt :)

Patrick