diff --git a/src/epics/util/feCodeGen.pl b/src/epics/util/feCodeGen.pl index b28710dea1b68f05e352d27f855d48918139b11c..ebe83247c2c7c04325d96aa3c59550adc59cd9c6 100755 --- a/src/epics/util/feCodeGen.pl +++ b/src/epics/util/feCodeGen.pl @@ -2541,6 +2541,10 @@ for($ii=0;$ii<$partCnt;$ii++) $port = $partInCnt[$ii]; # === MA === print OUT "double \L$xpartName[$ii];\n"; # === MA === } # === MA === + if($partType[$ii] eq "M_LOG10") { # === MA === + $port = $partInCnt[$ii]; # === MA === + print OUT "double \L$xpartName[$ii];\n"; # === MA === + } # === MA === if($partType[$ii] eq "DELAY") { print OUT "static double \L$xpartName[$ii] = 0.0;\n"; } @@ -2997,6 +3001,13 @@ HERE print OUT "$calcExp"; # === MA === print OUT "\}\n"; # === MA === } # === MA === + if ($partType[$mm] eq "M_LOG10") { # === MA === + print OUT "// MATH FUNCTION - LOG10\n"; # === MA === + $calcExp = "\t\L$xpartName[$mm]"; # === MA === + $calcExp .= " = "; # === MA === + $calcExp .= "llog10\($fromExp[0]\);\n"; # === MA === + print OUT "$calcExp"; # === MA === + } # === MA === # ******** GROUND INPUT ******************************************************************** if(($partType[$mm] eq "GROUND") && ($partUsed[$mm] == 0)) diff --git a/src/epics/util/lib/Parser3.pm b/src/epics/util/lib/Parser3.pm index d48aea03b0c2473b639b580181546228e1ea3569..56d366603d318ee53aa15f1c2a6d717d85434c43 100644 --- a/src/epics/util/lib/Parser3.pm +++ b/src/epics/util/lib/Parser3.pm @@ -438,6 +438,9 @@ sub node_processing { elsif ($math_op eq "mod") { # === MA === $block_type = "M_MOD"; # === MA === } # === MA === + elsif ($math_op eq "log10") { + $block_type = "M_LOG10"; + } # === MA === else { # === MA === die "*** ERROR: Math operator not supported: $math_op \n"; # === MA === } # === MA ===