CCS Modul   A_FAULTMEM
 
   $Header: /rweglobal/cvs/testsystem/ccs/6_testmodul_pool/testlisten_anw_module/src/a_faultmem.C,v 1.5 2004/12/23 10:33:40 jsj3rt Exp $
   ---------------------------------------------------------------------
   Kurzbeschreibung: 	Auswertemodul von Fehlerspeichereintägen Airbag
   ---------------------------------------------------------------------
   Projekt:		FaultMem
   Sourcefile:		a_faultmem.C  
   Autor:		AnW/TEF7-Schroll (24.06.2004_Ersterstellung)
   Zielsystem:		HP9000/V743 (HP-RT 3.01), /7/C/D (HP-UX 10.20)
   Sprache:		C++
   Ruekgabe             Resultstring1 + Resultstring2
   szModus              Status => Statuswert + ErrNo
                        0      => ?
   Notice               Copyright (c) 2002 Ludwig Schroll
                        All Rights Reserved
   ---------------------------------------------------------------------
   Aufruf:                            <GFMT KS=on TAB=8 LF=on>

     int  a_faultmem (shm_stringpointer *zeilen_wert,// <I> Zeiger auf Werte
                  long index,                     // <I> Index-Nummer
                  long anzahl)                    // <I> Anzahl der Werte

    int  a_faultmem (STRING     PRUEFSCHRITT
                     STRING     POSITION
                     STRING     INPUT_STRING
                     STRING     ANZAHL
                     STRING     MODUS
                     STRING     STATUSWERT
                     STRING     FEHLERNR
                     STRING     RESULTSTRING2
                     STRING     RESULTSTRING1)

   -------------------------------------------------------------------------
   Returnparameter:                   <GFMT KS=on TAB=8 LF=on>
   -------------------------------------------------------------------------
   Funktionsbeschreibung:             <GFMT KS=on TAB=8 LF=on>
   Das Modul durchsucht Hex-Input Daten auf unterschiedliche Status und
   Fehlerdaten. Der Inputstring wird mit dem Modul p_auftrag aus den Airbag-SG
   gelesen.

   // wir zerlegen den Inputstring in seine Komponenten:
   // Die Übergabe erfolgt immer 16 Bit weise ...
   // Die ersten 6 Bit beschreiben die Status-Bit gemäss Spec.
   // z.B. 4995
   //
   //------------------------------------------------
   // |   1    |    2    |    3    |    4     |	Byte
   //------------------------------------------------
   //     4         9         9         5     | Hex
   //  0 1 0 0   1 0 0 1   1 0 0 1   0 1 0 1  |	Bit
   //------------------------------------------------
   //  0 1 0 0   1 0                          | Status     6 Bit
   //                0 1   1 0 0 1   0 1 0 1  | Fehler Nr 10 Bit  

   // Bsp. 4995FFFF1234 = 010010011001010111111111111111110001001000110100   	(reinstecken)
   // szErrNo         	= 0110010101
   // ANZAHL        	= 6						  	(reinstecken)
   // FEHLERNR        	= 405						  	(reinstecken)
   // STATUSWERT      	= 01XX10                             			(reinstecken)
   // RESULTSTRING1   	= 010010						(rausbekommen STATUS als Bit-Hex-String)
   // RESULTSTRING2   	= 1							(rausbekommen n-te-Eintrag in Fault Mem)

   Beschreibung der Moduluebergabeparameter:
1 PRUEFSCHRITT
   GAUDI Pruefschritt
2 POSITION
   PAV-Position
3 INPUT_STRING
   Übergabe der Daten an das Modul
4 ANZAHL
   Übergabe der Anzahl zulaessiger Fehler an das Modul
   Der Fehler muss innerhalb von Fehlereintrag ANZAHL sein
5 MODUS
   Mit Modus kann die Art der internen Vrarbeitung und der Rückgabewert beeinflusst werden.
   Modus = STATUS --> d.h. es wird der Statudwert zurückgegeben
   Modus = 0      --> d.h. es wird die Fehlernummer zurückgegeben
6 STATUSWERT
   Übergabe vom Soll-Statuswert an das Modul
7 FEHLERNR
   Übergabe der Fehler Nr an das Modul
8 RESULTSTRING1
   erste Ergebnis-Zeichenkette --> Statuswert bei Modus Status
9 RESULTSTRING2
   erste Ergebnis-Zeichenkette
      -1 = Fehler: Error-Number not fount

      -2 = Fehler: Status-Bit läuft auf Error

         // wie bewerten die Status_Bit's wie folgt ...  
         // übergebener StatusWert kann folgende Zustaende einnehmen:
         // 0 = OK
         // 1 = NOK
         // X = don't care (s..egal)
         //------------------------------------------------------------------------
         // |   1    |    2    |    3    |    4     |	Byte
         //------------------------------------------------------------------------
         //  0 1 1 0   1 0                          | Status-Bit's aus INPUT_STRING
         //  0 1 X X   1 0                          | Bit-Maske aus STATUSWERT 6 Bit
         //                0 1   1 0 0 1   0 1 0 1  | Fehler Nr 10 Bit
         //------------------------------------------------------------------------
         // d.h. wenn ein Bit, welches nicht mit X gekennzeichnet ist auf einen anderen Zustand als die 
         //      übergebene Bit-Maske kippt, dann Fehler ausgeben !