]> jspc29.x-matter.uni-frankfurt.de Git - mimosis_chain.git/commitdiff
Added Analysis module
authorMaps <maps@ikf>
Thu, 12 Dec 2024 10:56:55 +0000 (11:56 +0100)
committerMaps <maps@ikf>
Thu, 12 Dec 2024 10:56:55 +0000 (11:56 +0100)
scripts/modules/Analysis/Analysis.xs [new file with mode: 0644]
scripts/modules/Analysis/Makefile.PL [new file with mode: 0644]
scripts/modules/Analysis/lib/Analysis.pm [new file with mode: 0644]

diff --git a/scripts/modules/Analysis/Analysis.xs b/scripts/modules/Analysis/Analysis.xs
new file mode 100644 (file)
index 0000000..b2a7207
--- /dev/null
@@ -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 (file)
index 0000000..09a969e
--- /dev/null
@@ -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 <maps@(none)>',
+    #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 (file)
index 0000000..c4ce83c
--- /dev/null
@@ -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, E<lt>maps@(none)E<gt>
+
+=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