From: Maps Date: Thu, 12 Dec 2024 10:56:55 +0000 (+0100) Subject: Added Analysis module X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=8411e76d70cfcfb1e73869f71299e5806d9b5f44;p=mimosis_chain.git Added Analysis module --- diff --git a/scripts/modules/Analysis/Analysis.xs b/scripts/modules/Analysis/Analysis.xs new file mode 100644 index 0000000..b2a7207 --- /dev/null +++ b/scripts/modules/Analysis/Analysis.xs @@ -0,0 +1,70 @@ +#define PERL_NO_GET_CONTEXT + +#ifdef __cplusplus +extern "C" { +#endif +#include "EXTERN.h" +#include "perl.h" +#include "XSUB.h" +#include "ppport.h" +#ifdef __cplusplus +} +#endif + +#include "../../cpp/analysis.hpp" + +MODULE = Analysis PACKAGE = Analysis + + + +void +mimosis_make_fit(file,offset,slopex,stepSize,maxPulse) + char* file + float offset + float slopex + int stepSize + int maxPulse + CODE: + analysis::make_fit(file, offset, slopex, stepSize, maxPulse); + + + +void +mimosis_make_quick_fit(file,offset,slopex,stepSize,maxPulse,start,end) + char* file + float offset + float slopex + int stepSize + int maxPulse + int start + int end + CODE: + analysis::make_quick_fit(file, offset, slopex, stepSize, maxPulse, start, end); + + + +void +mimosis_pixel_dump(fpga, frameLimit, src) + int fpga + int frameLimit + char* src + CODE: + analysis::pixel_dump(fpga, frameLimit, src); + +void +mimosis_find_noisy_pixels(file, frameLimit, noiseLimit) + char* file + int frameLimit + float noiseLimit + CODE: + analysis::find_noisy_pixels(file, frameLimit, noiseLimit); + + +void +mimosis_plot_dead_pixels(matA, matB, matC, matD) + char* matA + char* matB + char* matC + char* matD + CODE: + analysis::plot_dead_pixels(matA, matB, matC, matD); diff --git a/scripts/modules/Analysis/Makefile.PL b/scripts/modules/Analysis/Makefile.PL new file mode 100644 index 0000000..09a969e --- /dev/null +++ b/scripts/modules/Analysis/Makefile.PL @@ -0,0 +1,21 @@ +use 5.026001; +use ExtUtils::MakeMaker; +# See lib/ExtUtils/MakeMaker.pm for details of how to influence +# the contents of the Makefile that is written. +WriteMakefile( + NAME => 'Analysis', + VERSION_FROM => 'lib/Analysis.pm', # finds $VERSION, requires EU::MM from perl >= 5.5 + PREREQ_PM => {}, # e.g., Module::Name => 1.1 + ABSTRACT_FROM => 'lib/Analysis.pm', # retrieve abstract from module + AUTHOR => 'maps ', + #LICENSE => 'perl', + #Value must be from legacy list of licenses here + #http://search.cpan.org/perldoc?Module%3A%3ABuild%3A%3AAPI + LIBS => ['-L../../cpp/build -lanalysis'], + DEFINE => '', # e.g., '-DHAVE_SOMETHING' + INC => '-I.', # e.g., '-I. -I/usr/include/other' + CC => 'g++', + LD => 'g++', + # Un-comment this if you add C files to link with later: + # OBJECT => '$(O_FILES)', # link all the C files too +); diff --git a/scripts/modules/Analysis/lib/Analysis.pm b/scripts/modules/Analysis/lib/Analysis.pm new file mode 100644 index 0000000..c4ce83c --- /dev/null +++ b/scripts/modules/Analysis/lib/Analysis.pm @@ -0,0 +1,153 @@ +package Analysis; + +use 5.026001; +use strict; +use warnings; + +require Exporter; + +our @ISA = qw(Exporter); + +# Items to export into callers namespace by default. Note: do not export +# names by default without a very good reason. Use EXPORT_OK instead. +# Do not simply export all your public functions/methods/constants. + +# This allows declaration use Analysis ':all'; +# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK +# will save memory. +our %EXPORT_TAGS = ( 'all' => [ qw( + +) ] ); + +our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); + +our @EXPORT = qw( + +); + +our $VERSION = '0.01'; + +require XSLoader; +XSLoader::load('Analysis', $VERSION); + +sub mimosis_make_fit { + + my ( + $file, + $offset, + $slopex, + $stepsize, + $maxPulse, + ) = @_; + + analysis::make_fit( $file, $offset, $slopex, $stepsize, $maxPulse ); + +}; + +sub mimosis_make_quick_fit { + + my ( + $file, + $offset, + $slopex, + $stepsize, + $maxPulse, + $start, + $end, + ) = @_; + + analysis::make_quick_fit( $file, $offset, $slopex, $stepsize, $maxPulse, $start, $end ); + +}; + +sub mimosis_pixel_dump { + + my ( + $fpga, + $frameLimit, + $src, + ) = @_; + + analysis::pixel_dump( $fpga, $frameLimit, $src ); + +}; + +sub mimosis_find_noisy_pixels { + + my ( + $file, + $frameLimit, + $maxNoiseLimit + ) = @_; + + analysis::find_noisy_pixels( $file, $frameLimit, $maxNoiseLimit ); + +}; + +sub mimosis_plot_dead_pixels { + + my ( + $matA, + $matB, + $matC, + $matD + ) = @_; + + analysis::plot_dead_pixels( $matA,$matB,$matC,$matD ); + +}; + +# Preloaded methods go here. + +1; +__END__ +# Below is stub documentation for your module. You'd better edit it! + +=head1 NAME + +Analysis - Perl extension for blah blah blah + +=head1 SYNOPSIS + + use Analysis; + blah blah blah + +=head1 DESCRIPTION + +Stub documentation for Analysis, created by h2xs. It looks like the +author of the extension was negligent enough to leave the stub +unedited. + +Blah blah blah. + +=head2 EXPORT + +None by default. + + + +=head1 SEE ALSO + +Mention other useful documentation such as the documentation of +related modules or operating system documentation (such as man pages +in UNIX), or any relevant external documentation such as RFCs or +standards. + +If you have a mailing list set up for your module, mention it here. + +If you have a web site set up for your module, mention it here. + +=head1 AUTHOR + +maps, Emaps@(none)E + +=head1 COPYRIGHT AND LICENSE + +Copyright (C) 2024 by maps + +This library is free software; you can redistribute it and/or modify +it under the same terms as Perl itself, either Perl version 5.26.1 or, +at your option, any later version of Perl 5 you may have available. + + +=cut