CCS Modul   E_AWG
 
 *
 * Revision 1.1  2001/12/18 10:52:19  sgc3sa
 * Anpassungen fuer Linux und QT
 *
 * Revision 1.5  2001/06/19 14:42:58  lehmann
 * Linux ändeungen
 *
 * Revision 1.4  2000/02/16 12:15:28  klm3sa
 * *** empty log message ***
 *
 * Revision 1.3  1999/12/22 10:06:01  keppler
 * $ID -> $Id
 *
 * Revision 1.2  1999/12/22 09:12:30  keppler
 * $Header -> $Id
 *
 * Revision 1.1  1999/12/20 15:47:02  juilfs
 * Init
 *
 * Revision 1.1  1999/11/23 14:23:40  katzenma
 * Initial Version by Sniff
 *                                                 
 Revision 1.0  1999/05/05  mr/SSE (M.Riethmueller)          
 Erstellt                                                   

 Includes                              
 !! changed code will be overwritten!! 
-- pragmas -----------------------------------------------------------
#pragma  COPYRIGHT "Robert Bosch GmbH Salzgitter, SaW/TEF7.2"
#pragma  VERSIONID "$Id: e_awg.C,v 1.4 2004/03/23 15:53:45 lehmann Exp $"

-- defines -----------------------------------------------------------
#define HEADER "$Id: e_awg.C,v 1.4 2004/03/23 15:53:45 lehmann Exp $" 
#define EXTERN  extern  Bei allen Subroutinen 

-- includes ----------------------------------------------------------
//#include "unit_nummern.H"
#include "shm_syscom.H"

#include "ccl_defines.H"
#include "libccs.H"
#include "libtestmodul_pool.H"

#include <stdlib.h>
#include <stdio.h>
#include <string.h>


-- external functions / variables ------------------------------------
extern  struct Pruefprogramm_verwaltung  *Ssp_pp_verwaltung;


-- global variables (nur im  "main" erlaubt) -------------------------


 locale variables 
static const unsigned short PRUEFSCHRITT   =  1;
static const unsigned short POSITION       =  2;
static const unsigned short ANSTEUER_UNIT  =  3;


 <userdoc>                                                           
    Funktionsbeschreibung:                                           
    Index der expandierten Pruefliste, und der Name der              
    anzusteuerenden Unit werden ermittelt und via Message-Queue      
    an den Prozess AWG uebermittelt.                                 
                                                                     
    Beschreibung der Moduluebergabeparameter:
1 PRUEFSCHRITT
                                                 
         GAUDI Pruefschritt                                          
    ------------------------------
2 POSITION
                                                     
         PAV- Position                                               
    ------------------------------
3 ANSTEUER_UNIT
                                                
         z.B.: GEN_AMPL1_1 (siehe aktuelles HW-Config-File)          
    ------------------------------
4 SIGNALFILE
                                                   
         Name der Signaldatei ohne Extension (".cnf")                
    ------------------------------
5 START_SIGNAL
                                                 
         Name des zu startenden Signals falls nicht gleich wie P4    
    ------------------------------
6 CLOCK
                                                        
         INT|INTERN / EXTERN: Grundtakt                              
    ------------------------------
7 OUTPUT
                                                       
         ON / OFF: Signal soll am Ausgang anliegen ja/Nein           
    ------------------------------
8 IMPEDANCE
                                                    
         NORM|50 / LOW: Impedanz des Ausgangs                        
    ------------------------------
9 ATTENUATOR
                                                   
         ON / OFF: Abschwaecher ein/aus                              
    ------------------------------
10 TIEFPASS
                                                     
         ON / OFF: Tiefpass ein/aus                                  
    ------------------------------
11 RUN_MODE
                                                     
         SINGLE / LOOP: Signal als 'Single Shot' oder kontinuierlich 
    ------------------------------
12 RUN_STOP
                                                     
         RUN / SYN / STOP / -                                        
         RUN:  Signal sofort starten                                 
         SYN:  Beide Kanaele starten (vorher anderen Kanal mit '-'   
               programmieren)                                        
         STOP: Signal stoppen                                        
         '-':  nur Signal programmieren (spaeter mit SYN starten)    
    ------------------------------
13 IN_TR_MODE
                                                   
         SOF|SOFTWARE/FRONT/TTL/NONE/FREE                            
    ------------------------------
14 IN_TTL_TR
                                                    
         OFF/0/1/2/3/4/5/6/7                                         
    ------------------------------
15 IN_TR_ART
                                                    
         OFF/EDGE/LEVEL                                              
    ------------------------------
16 IN_TR_FLAN
                                                   
         OFF/POS/NEG                                                 
    ------------------------------
17 OU_TR_MODE
                                                   
         OFF/MARKER/FRONT                                            
    ------------------------------
18 OU_TTL_TR
                                                    
         OFF/0/1/2/3/4/5/6/7                                         
    ------------------------------
19 FREQ_PREC
                                                    
         Maximal erlaubte Frequenzabweichung in Promille, sonst      
         Fehlermeldung                                               
    ------------------------------
20 AMPL_PREC
                                                    
         Maximal erlaubte Amplitudenabweichung in Promille, sonst    
         Fehlermeldung                                               
    ------------------------------                                   
                                                                     
                                                                     
 Input:                                                              
 shm_stringpointer *zeilen_wert - hierueber erhaelt die Funktion     
                                  den Zugriff auf den tatsaechl.     
                                  Inhalt, naemlich den Wert,         
                                  in der Parameterzeile;             
 long        index_oePrfL - die Positionsangabe der Parameter im     
                            Parameterarray des SHM;                  
 long        anzahl - die Anzahl der fuer dieses Modul               
                      relevanten Parameter;                          
                                                                     
 Output: none                                                        
                                                                     
 ----------------------------------------------------------          
 Return Value:                                                       
    = 0:   normaler Durchlauf oder der Schrittbetrieb ist            
           aktiviert und die Pruefschrittnummer ungleich 1;          
    = -1:  die Funktion "msg_send_wait" meldete einen Fehler,        
           der auf ein Kommunikationsproblem oder einen Timeout      
           hindeutet;                                                
           die Interprozess-Kommunikation zum AWG-Prozess wurde      
           mit einer Fehlermeldung beendet;                          
                                                                     
 ----------------------------------------------------------          
 Beispiel (optional):                                                
                                                                     
 ----------------------------------------------------------