CCS Modul   E_PAMSCRIPTS
 
   $Id: e_pamscripts.C,v 1.4 2005/04/01 07:37:46 lehmann Exp $
   ---------------------------------------------------------------------
   Kurzbeschreibung: 	Initialisierung von Array-Variablen
   ---------------------------------------------------------------------
   Projekt:		CCS
   Sourcefile:		e_pamscripts.C
   Autor:			RtW/TEF72-Juilfs (12.12.95)
   Zielsystem:		HP9000/V743 (HP-RT 2.0x), /Sxxx (HP-UX 9.0x)
   Sprache:		C++
   ---------------------------------------------------------------------
   Prototyp:
   MPI Schnittstelle
   void e_pamscripts(
     ,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:
   Dieses Modul startet einen script auf dem PAM an.
   
   
   Beschreibung der Modulübergabeparameter:
1 PRUEFSCHRITT
   GAUDI Prüfschritt
   ------------------------------
2 POSITION
   PAV- Position
   ------------------------------
3 SCRIPTNAME
   Scriptname		
   ------------------------------
4 SUB_DIRECTORY
   Unterverzeichnis. Das Verzeichnis in dem der Script gesucht
   wird setzt sich aus dem Verzeichnis, das im Service PAMSCIPTS
   fuer den Pruefstand definiert wurde, und diesem Unterverzeichnis
   zusammen.
   ------------------------------
5 PARA_1
   Parameter 1 mit dem der Script ausgefuehrt wird
   ------------------------------
6 PARA_2
   Parameter 2 mit dem der Script ausgefuehrt wird
   ------------------------------
7 PARA_3
   Parameter 3 mit dem der Script ausgefuehrt wird
   ------------------------------
8 PARA_4
   Parameter 4 mit dem der Script ausgefuehrt wird
   ------------------------------
9 PARA_5
   Parameter 5 mit dem der Script ausgefuehrt wird
   ------------------------------
10 ERGEBNIS
   Exit code des Scripts
   ------------------------------
11 FEHLERFLAG
   TRUE  = der Inhalt der Variable wird bei jedem Programmstart gelöscht.
   FALSE = der Inhalt der Variable wird nur beim Laden des Pruefprogrammes gelöscht.
   ...
   ---------------------------------------------------------------------

-- pragmas -----------------------------------------------------------
#pragma  COPYRIGHT "Robert Bosch GmbH Reutlingen, RtW/TEF72"
#pragma  VERSIONID "$Id: e_pamscripts.C,v 1.4 2005/04/01 07:37:46 lehmann Exp $"

-- defines -----------------------------------------------------------
#define HEADER "$Id: e_pamscripts.C,v 1.4 2005/04/01 07:37:46 lehmann Exp $" 
#define EXTERN extern	 Bei allen Subroutinen 

#define MAX_ANZ_PARAM		5
-- includes ----------------------------------------------------------
#include "shm_syscom.H"
#include <stdlib.h>
#include "libccs.H"
#include "ccl_defines.H"         ccl_definition   PREINT              
-- external functions / variables ------------------------------------
-- global variables (nur im  "main" erlaubt) -------------------------

 -Begin---------------------------------------------------------------
   ---------------------------------------------------------------------
int e_pamscripts(shm_stringpointer *zeilen_wert
	   ,long index1
	   ,long anzahl)
{
-- local variables ---------------------------------------------------  
   int			i;			// Schleifenvariable
   int			ind;			// Index
   int			iIndErgebnis;   	// Index auf die Ergebnis
   int			iIndFehlerflag;   	// Index auf das Fehlerflag
   int			iStat;			// Status
   Ss_services		service;		// Service struktur
   QString		strNum;		   	// Nummern string
   QString		strParam;		// Parameterstring
   QString		strParamOne;		// Parameter
   QString		strScript;		// Scriptname
   QString		strSubDir;		// Unterverzeichnis
   QString		strRun;		   	// Run String

   //------------------------------------------------------------------
   if(strcmp(Ssp_vi->job.liststate,PREINT)==0) return 0;   

   ind = index1 + 2;
   strScript = (const char*)*zeilen_wert->ptr[ind];
   ind++;
   strSubDir = (const char*)*zeilen_wert->ptr[ind]; 
   ind++;
   strParam  = " ";
   for( i = 0; i < MAX_ANZ_PARAM; i++)
   {
      strParamOne = (const char*)*zeilen_wert->ptr[ind]; 
      if (strParamOne.isEmpty())
         strParam += "\"\" ";
      else
         strParam += "\"" + strParamOne + "\" ";
      ind++;
   }
   iIndErgebnis = ind;
   ind ++;
   iIndFehlerflag = ind;
   *zeilen_wert->ptr[iIndErgebnis]   = "0";    
   *zeilen_wert->ptr[iIndFehlerflag] = "1";    
   if ( get_service ("pamscripts", 1, &service) != 0 )
   {
      error_message (ERR_ERROR, HEADER,__LINE__,	
		     "Fehlerwert = %i, if Wert = 1, then Service not found !", get_service ("pamscripts", 1, &service));
      return -1;
   }      
   strRun  = service.directory;
   strRun += "/" + strSubDir + "/" + strScript;
   strRun  = strRun.lower() + strParam;
   iStat = system( strRun.latin1() );
   iStat /= 256;
//qDebug(strRun);   
   strNum.setNum(iStat);
   *zeilen_wert->ptr[iIndErgebnis] = strNum.latin1();
   if (iStat == 127)
   {
      error_message (ERR_ERROR, HEADER,__LINE__,	
		     "Script not found: %s", strRun.latin1());
      return -1;
   }      
   *zeilen_wert->ptr[iIndFehlerflag] = "0";
   return 0;
}
 -End of file---------------------------------------------------------
   Historie: