CCS Modul   R_PAS4_WPULSE
 
   $Id: r_pas4_wpulse.cpp,v 1.2 2005/09/07 11:04:10 pv73rt Exp $
   ---------------------------------------------------------------------
   Kurzbeschreibung: 	Auswertung des Schreibimpulses bei PAS4/Zapper
   ---------------------------------------------------------------------
   Projekt:		CCS
   Sourcefile:		r_pas4_wpulse.C
   Autor:		Rtp/TEF32-Rapp (06.06.2005)
   Zielsystem:		Linux
   Sprache:		C++ 
   ---------------------------------------------------------------------
   Prototyp:
   MPI Schnittstelle
   void r_pas4_wpulse(
	   ,shm_stringpointer   *zeilen_wert 
	   ,long index1
	   ,long anzahl)
  ---------------------------------------------------------------------
   Aufruf: im Vectorinterpreter
   
	 (*funktionen[modulnummer])
	    (Ssp_expand_zeile
	     ,Ssp_expand_wert
	     ,p_verwaltung->begin_modulblock
	     ,p_verwaltung->anzahl_modulparameter);
   ---------------------------------------------------------------------
   Funktionsbeschreibung:
   
   Auswertung des Schreibimpulses des PAS4 Zappers ueber die gesampelten Daten
   von Spannung und Strom.
   Auswertung:
   1. Die Spannungdaten werden mit der Schrittweite 0.75 * PULSE_WIDTH nach 
      einem Schreibimpuls durchsucht. Dieser wird erkannt falls die Spannung
      in den Grenzen MIN_IMP1 und MAX_IMP1 liegt.
   2. Startflanke des Schreibimpulses suchen.
   3. Der Start der Auswertung erfolgt wenn der Stromwert LEVEL ueberschreitet
      und gestoppt wenn der Stromwert LEVEL unterschreitet.


        ARRAY_1              -->       PULSE_WIDTH        <--
  40V (MIN_IMP1 bzw. MAX_IMP1)  +------------------------+ 
                                |                        | 
                 ----+          |                        | 
                     |          |                        | 
                     +----------+                        +----------------

       ARRAY_2
                                          +-----+ +--+
                                          /     / /  /             
       LEVEL ->                           /     / /  /             
                                    /-----+     +-+  /             
                 -------------------+                +--------------------
       DELTA_T                ->    <-
       MEASURE_T                    ->   <- 
           Ergebnis Offset          ->   <-       

           Ergebnis t_diff    ->           <-
           Ergebnis t_puls               ->           <-

   Beschreibung der Modulübergabeparameter:
1 PRUEFSCHRITT
   GAUDI Prüfschritt
   ------------------------------
2 POSITION
   PAV- Position
   ------------------------------
3 ARRAY_1
   Variablen Name in der die gesampelte Schreibsapannung gespeichert ist
   ------------------------------
4 ARRAY_2
   Variablen Name in der der gesampelte Strom gespeichert ist
   ------------------------------
5 SAMPLE_RATE
   Abtastrate in us der gesampelten Daten.
   ------------------------------
6 MIN_IMP1
   Untere Grenze der ersten Schreibspannung, wird zur Erkennung eines Schreibimpulses
   verwendet.
   ------------------------------
7 MAX_IMP1
   Obere Grenze der ersten Schreibspannung, wird zur Erkennung eines Schreibimpulses
   verwendet.
   ------------------------------
8 PULSE_WIDTH
   Erwartete Pulsbreite des Schreibimpulses, damit bei hohen Abtsatraten nicht jeder
   Messwert überprüft werden muss, wird 0.75 * PULSE_WIDTH_V als Schrittweite für
   die Erkennung des Schreibimpulses. 
   ------------------------------
9 LEVEL
   Schwelle ab dem die Auswertung der Stromwerte gestartet bzw. gestoppt wird
   ------------------------------
10 DELTA_T
   Zeit vom Start des Schreibimpulses bis zur Auswertung des Stromoffsets
   ------------------------------
11 MEASURE_T
   Messzeit des Stromoffsets. Ueber diese Zeit wird der Mittelwert gebildet
   ------------------------------
12 ARRAY_3
   Fuer jeden Schreibimpuls werden die Ergebnisdaten in der nachfolgende Reihenfolge 
   gespeichert:
   t_diff[us]    = Zeitdifferenz zwischen dem Start des Schreibimpulses und 
                   der Überschreitung des Stromwertes von LEVEL
   t_puls[us]    = Länge des Stromimpulses zwischen Überschreiten bzw. Unterschreiten
                   von LEVEL.
   min[Volt]     = Minimalwert des Stromes
   max[Volt]     = Maximalwert des Stromes
   mittel[Volt]  = Mittelwert des Strompulses
   Offset[Volt]  = Stromoffset 
                   (dieser Offset wird bei der Berechnung von min/max/mittel sowie
                    dem Parameter LEVEL beruecksichtigt)
   ------------------------------
13 ERGEBNIS
    n = Anzahl der gefundenen Schreibimpulse
   -1 = allgemeiner Fehler
   -2 = Anzahl der erkannten Schreibimpulse uebersteigt die Kapazität im ARRAY_3 
   ------------------------------
14 FEHLERFLAG
   Fehlerflag