Skip to content
Snippets Groups Projects
drexec.c 12.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • #include "ndf.h"
    
    JAB's avatar
    JAB committed
    #include "DitsFix.h"
    #include "Sdp.h"
    #include "f77.h"
    #include "Git.h"
    #include "dul_err.h"
    
    Ron's avatar
    Ron committed
    #include "drs_err.h" 
    
    Ron's avatar
    Ron committed
    #include "drexec.h"
    
    /* globals */
    
    /* string containing drexec, tdfred, and clalib versions */
    char versionStr[128];
    
    /* DrexecVersion, TdfredVersion, and ClalibDate are defined in modules
       drexecversion.c, tdfredversion.c, and clalibversion.c, respectively.
       The source files are created by the respective Makefiles. */
    
    Ron's avatar
    Ron committed
    extern const char* const DrexecVersion;
    
    extern const char* const TdfredVersion;
    extern const char* const ClalibVersion;
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
    /* externals */
    extern void tdfio_init_();
    extern void combine_image_(DitsArgType*,StatusType*);
    extern void combine_spectra_(DitsArgType*,StatusType*);
    /* extern void CMFSOBJ_FLXCALIB_(DitsArgType*,StatusType*); */
    /* extern void CMFSOBJ_GENCALIB_(DitsArgType*,StatusType*); */
    extern void cmfim_gfibpos_(DitsArgType*,StatusType*);
    extern void plot_file_(DitsArgType*,StatusType*);
    extern void reduce_arc_(DitsArgType*,StatusType*);
    extern void reduce_bias_(DitsArgType*,StatusType*);
    extern void reduce_fflat_(DitsArgType*,StatusType*);
    extern void reduce_lflat_(DitsArgType*,StatusType*);
    extern void reduce_object_(DitsArgType*,StatusType*);
    extern void reduce_sky_(DitsArgType*,StatusType*);
    extern void splice_aaomega_(DitsArgType*,StatusType*);
    
    
    Ron's avatar
    Ron committed
    /* forward declarations */
    
    static void combineImageAction(StatusType*);
    static void combineSpectraAction(StatusType*);
    
    Ron's avatar
    Ron committed
    /* static void flxCalibAction(StatusType*); */
    /* static void genCalibAction(StatusType*); */
    
    Ron's avatar
    Ron committed
    static void find2dfFibresAction(StatusType*);
    
    Ron's avatar
    Ron committed
    static void plotAction(StatusType*);
    static void reduceArcAction(StatusType*);
    static void reduceBiasAction(StatusType*);
    static void reduceFFlatAction(StatusType*);
    static void reduceLFlatAction(StatusType*);
    static void reduceObjAction(StatusType*);
    static void reduceSkyAction(StatusType*);
    static void spliceAction(StatusType*);
    
    static void exitAction(StatusType*);
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
    /*---------------------------------------------------------------------------*/
    
    Ron's avatar
    Ron committed
    
    int main(int argc,char** argv)
    /*
    
    Ron's avatar
    Ron committed
     * This program is a DRAMA task acting as an action server for 2dfdr. The
     * drcontrol DRAMA task normally acts as its client.
    
    Ron's avatar
    Ron committed
     *
    
    Ron's avatar
    Ron committed
     * 1. EXECUTE - Execute a sequence of steps.
    
    Ron's avatar
    Ron committed
     * 3. EXIT    - Shutdown this task.
     *
    
    Ron's avatar
    Ron committed
     * The task name is normally given in argv[1]. Multiple copies of the task can 
     * be started using different task names. A default name is used if one is not
     * given.
    
    Ron's avatar
    Ron committed
     */
    
    JAB's avatar
    JAB committed
    {
    
        StatusType status = DITS__OK;
        SdsIdType parsysid = 0;
        char taskName[40];
    
    
    Ron's avatar
    Ron committed
        /* this task can execute following DRAMA actions */
    
    Ron's avatar
    Ron committed
        DitsActionDetailsType actions[] = {
    
    Ron's avatar
    Ron committed
    	{ combineImageAction,  0,0,0,0,0,"COMBINE_IMAGE"},
    	{ combineSpectraAction,0,0,0,0,0,"COMBINE_SPECTRA"},
    	/* FLX_CALIB */
    	/* GEN_CALIB */
    	{ find2dfFibresAction, 0,0,0,0,0,"GFIBPOS"},
    	{ plotAction,          0,0,0,0,0,"PLOT"},
    	{ reduceArcAction,     0,0,0,0,0,"REDUCE_ARC"},
    	{ reduceBiasAction,    0,0,0,0,0,"REDUCE_BIAS"},
    	{ reduceFFlatAction,   0,0,0,0,0,"REDUCE_FFLAT"},
    	{ reduceLFlatAction,   0,0,0,0,0,"REDUCE_LFLAT"},
    	{ reduceObjAction,     0,0,0,0,0,"REDUCE_OBJECT"},
    	{ reduceSkyAction,     0,0,0,0,0,"REDUCE_SKY"},
    	{ spliceAction,        0,0,0,0,0,"SPLICE"},
    	{ exitAction,          0,0,0,0,0,"EXIT"}
    
    Ron's avatar
    Ron committed
        };
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* DRAMA parameters */
        SdpParDefType params[] = {
    
    	{ "EXEC_VERSION","",ARG_STRING }};
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* initialise DRAMA
           DITS_M_NOEXHAND => we will install exit handler */
    
    Ron's avatar
    Ron committed
        strcpy(taskName,(argc > 1) ? argv[1] : "DREXEC");
    
    Ron's avatar
    Ron committed
        DitsAppInit(taskName,300000,DITS_M_NOEXHAND,0,&status);
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* initialise parameter system */
        SdpInit(&parsysid,&status);        
        SdpCreate(parsysid,DitsNumber(params),params,&status);
    
    JAB's avatar
    JAB committed
    
    
        /* fill version parameter value */
        sprintf(versionStr,"drexec %s, tdfred %s, clalib %s",
    	    DrexecVersion,TdfredVersion,ClalibVersion);
        SdpPutString ("EXEC_VERSION",versionStr,&status);
    
    
    Ron's avatar
    Ron committed
        /* define supported actions */
        DitsPutActions(DitsNumber(actions),actions,&status);  
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* enter DRAMA main loop
           This returns when action returns DITS_REQ_EXIT */
        DitsMainLoop(&status);
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
         /* here returned from DRAMA main loop, shutdown DRAMA and exit */
    
    Ron's avatar
    Ron committed
        return DitsStop(taskName,&status);
    
    JAB's avatar
    JAB committed
    }
    
    
    Ron's avatar
    Ron committed
    /*---------------------------------------------------------------------------*/
    
    Ron's avatar
    Ron committed
    void combineImageAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    
    Ron's avatar
    Ron committed
     * Handler for "COMBINE_IMAGE" DRAMA action.
    
    JAB's avatar
    JAB committed
    {
    
    Ron's avatar
    Ron committed
        DitsArgType args;
    
    
    Ron's avatar
    Ron committed
        if (*pStatus != DITS__OK) return;
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
    Ron's avatar
    Ron committed
        args = DitsGetArgument();
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
    
    Ron's avatar
    Ron committed
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT and COMBINE_IMAGE() */
        tdfio_init_();
        combine_image_(&args,pStatus);
        
        DitsPutRequest(DITS_REQ_END,pStatus);
    
    Ron's avatar
    Ron committed
    }
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
    /*---------------------------------------------------------------------------*/
    
    Ron's avatar
    Ron committed
    void combineSpectraAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    
    Ron's avatar
    Ron committed
     * Handler for "COMBINE_SPECTRA" DRAMA action.
    
    JAB's avatar
    JAB committed
    {
    
    Ron's avatar
    Ron committed
        DitsArgType args;
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        if (*pStatus != DITS__OK) return;
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
        args = DitsGetArgument();
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and COMBINE_SPECTRA() */
        tdfio_init_();
        combine_spectra_(&args,pStatus);
    
    Ron's avatar
    Ron committed
        
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    
    Ron's avatar
    Ron committed
    }
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
    /*---------------------------------------------------------------------------*/
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
    void flxCalibAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    
    Ron's avatar
    Ron committed
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "REDUCE_BIAS" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    
    JAB's avatar
    JAB committed
    {
    
    Ron's avatar
    Ron committed
        DitsArgType args;
    /*    SdsIdType localArgs; */
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        if (*pStatus != DITS__OK) return;
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
        args = DitsGetArgument();
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
    /*    SdsCopy(args,&localArgs,pStatus); */
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and ???() */
        tdfio_init_();
    /*    ???_(&args,pStatus); */
        
    /*    SdsDelete(localArgs,pStatus); */
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    
    JAB's avatar
    JAB committed
    }
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
    /*---------------------------------------------------------------------------*/
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
    void genCalibAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    
    Ron's avatar
    Ron committed
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "REDUCE_BIAS" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    {
    
    Ron's avatar
    Ron committed
        DitsArgType args;
    /*    SdsIdType localArgs; */
    
    
    Ron's avatar
    Ron committed
        if (*pStatus != DITS__OK) return;
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
        args = DitsGetArgument();
    
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    /*    SdsCopy(args,&localArgs,pStatus); */
    
        /* call Fortran TDFIO_INIT() and ???() */
        tdfio_init_();
    /*    ???_(&args,pStatus); */
    
    Ron's avatar
    Ron committed
    /*    SdsDelete(localArgs,pStatus); */
    
        DitsPutRequest(DITS_REQ_END,pStatus);
    
    Ron's avatar
    Ron committed
    }
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
    /*---------------------------------------------------------------------------*/
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
    void find2dfFibresAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    
    Ron's avatar
    Ron committed
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "GFIBPOS" (find 2df fibre positions) DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    
    JAB's avatar
    JAB committed
    {
    
    Ron's avatar
    Ron committed
        DitsArgType args;
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        if (*pStatus != DITS__OK) return;
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
        args = DitsGetArgument();
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and CMFIM_GFIBPOS() */
        tdfio_init_();
        cmfim_gfibpos_(&args,pStatus);
        
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    
    JAB's avatar
    JAB committed
    }
    
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
    /*---------------------------------------------------------------------------*/
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
    void plotAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "PLOT" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    {
        DitsArgType args;
    
        if (*pStatus != DITS__OK) return;
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
    Ron's avatar
    Ron committed
        args = DitsGetArgument();
    
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and PLOT_FILE() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        plot_file_(&args,pStatus);
    
    Ron's avatar
    Ron committed
        
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void reduceArcAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "REDUCE_ARC" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    {
        DitsArgType args;
    
        if (*pStatus != DITS__OK) return;
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
    Ron's avatar
    Ron committed
        args = DitsGetArgument();
    
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and REDUCE_ARC() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        reduce_arc_(&args,pStatus);
    
    Ron's avatar
    Ron committed
        
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void reduceBiasAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "REDUCE_BIAS" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    {
        DitsArgType args;
    
        if (*pStatus != DITS__OK) return;
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
    Ron's avatar
    Ron committed
        args = DitsGetArgument();
    
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and REDUCE_BIAS() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        reduce_bias_(&args,pStatus);
    
    Ron's avatar
    Ron committed
        
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void reduceFFlatAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "REDUCE_FFLAT" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    {
        DitsArgType args;
    
    Ron's avatar
    Ron committed
        SdsIdType localArgs;
    
    Ron's avatar
    Ron committed
    
        if (*pStatus != DITS__OK) return;
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
    Ron's avatar
    Ron committed
        args = DitsGetArgument();
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* make copy so it can be changed (external SDS -> internal) */
        /* ??? WHY IS THIS NEEDED ??? */
        SdsCopy(args,&localArgs,pStatus);
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and REDUCE_FFLAT() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        reduce_fflat_(&localArgs,pStatus);
    
    Ron's avatar
    Ron committed
        /* delete local SDS copy */
        SdsDelete(localArgs,pStatus);
    
    Ron's avatar
    Ron committed
    
    
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void reduceLFlatAction(
    
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "REDUCE_LFLAT" DRAMA action.
    
     */
    {
        DitsArgType args;
    
        if (*pStatus != DITS__OK) return;
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
        args = DitsGetArgument();
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and REDUCE_LFLAT() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        reduce_lflat_(&args,pStatus);
    
    Ron's avatar
    Ron committed
    
    
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void reduceObjAction(
    
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "REDUCE_OBJECT" DRAMA action.
    
     */
    {
        DitsArgType args;
    
    Ron's avatar
    Ron committed
        SdsIdType localArgs;
    
    
        if (*pStatus != DITS__OK) return;
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
        args = DitsGetArgument();
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* make copy so it can be changed (external SDS -> internal) */
        /* ??? WHY IS THIS NEEDED ??? */
        SdsCopy(args,&localArgs,pStatus);
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and REDUCE_OBJECT() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        reduce_object_(&localArgs,pStatus);
    
    Ron's avatar
    Ron committed
        
    
    Ron's avatar
    Ron committed
        /* delete local SDS copy */
        SdsDelete(localArgs,pStatus);
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void reduceSkyAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "REDUCE_SKY" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    {
        DitsArgType args;
    
    Ron's avatar
    Ron committed
        SdsIdType localArgs;   /* temporary !!! */
    
    Ron's avatar
    Ron committed
    
        if (*pStatus != DITS__OK) return;
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
    Ron's avatar
    Ron committed
        args = DitsGetArgument();
    
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* make copy so it can be changed (external SDS -> internal) */
        SdsCopy(args,&localArgs,pStatus);
    
        /* call Fortran TDFIO_INIT() and REDUCE_SKY() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        reduce_sky_(&localArgs,pStatus);
    
    Ron's avatar
    Ron committed
        
    
    Ron's avatar
    Ron committed
        /* delete local SDS copy */
        SdsDelete(localArgs,pStatus);
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void spliceAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "SPLICE" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    {
        DitsArgType args;
    
        if (*pStatus != DITS__OK) return;
    
        /* get our SDS argument structure */
        args = DitsGetArgument();
    
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and SPLICE_AAOMEGA() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        splice_aaomega_(&args,pStatus);
    
    Ron's avatar
    Ron committed
        
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void exitAction(
    
    Ron's avatar
    Ron committed
        StatusType *pStatus)
    
    Ron's avatar
    Ron committed
    /*
     * Handler for "EXIT" DRAMA action.
     */
    
    JAB's avatar
    JAB committed
    {
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_EXIT,pStatus);
    
    JAB's avatar
    JAB committed
    }