|
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 PRUEFSCHRITTGAUDI 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: