TOC PREV NEXT INDEX

Put your logo here!


A INCLUDE FILE

--->BEGIN IMPORTED FILE: ../include/pco.h (96/5/7 18:25)
#ifndef PCO_H
#define PCO_H
/******************************************************************************
* E.S.O. - VLT project
#
# "@(#) $Id: pco.h,v 1.13+ 1996/04/25 08:06:36 jknudstr Exp $"
*
* pco.h
*
* who when what
* -------- -------- ----------------------------------------------
* jknudstr 18/08/94 Created 1. version
*/

/************************************************************************
* Header file for the Protocol Converter - PCO
*
*----------------------------------------------------------------------
*/
#ifdef __cplusplus
extern "C" {
#endif

#include "ccs.h"
#include "msg.h"
#include "evt.h"
#include "pcoMidas.h"

/* Definition of constants
*/
#define pcoNOT_USED "-"
#define pcoUNKNOWN_PROC "unknown"
#define pcoMODULE_ID "pco"
#define pcoQUIT "pCoQuIt"
#define pcoMAX_CCS_BODY msgBODYMAXLEN
#define pcoMAX_MSG_LEN (pcoMAX_CCS_BODY - 1024)
#define pcoPCO_PROC_NAME "pco"
#define pcoRTAP_ENV_VAR "RTAPENV"
#define pcoQUIT_NAME "pcoQuit"
#define pcoPING "pCoPiNg"
#define pcoLOCAL_ENV "\0"
#define pcoMAX_VAL_MSG_COUNT 65000
#define pcoMAX_FAIL_EXT_PROC 5
#define pcoGEN_KEYW_LEN 32
#define pcoPROTOCOL_ID_LEN 32
#define pcoPROCESS_ID_LEN 32
#define pcoHOST_NAME_LEN 32
#define pcoMIDAS_KEY_NAME_LEN 64
#define pcoATTRIB_NAME_LEN 512
#define pcoINTEGER_STR_LEN 10
#define pcoREAL_STR_LEN 20
#define pcoDOUBLE_STR_LEN 32

/* PCO commands as strings
*/
#define pcoATTACH_COM_STR "ATTACH"
#define pcoDISCON_COM_STR "DISCON"
#define pcoDETACH_COM_STR "DETACH"
#define pcoEXIT_COM_STR "EXIT"
#define pcoFORWARD_COM_STR "FORWMSG"
#define pcoNO_COMMAND_STR "NOCOM"
#define pcoPING_COM_STR "PING"
#define pcoREAD_KEY_COM_STR "READKEY"
#define pcoWRITE_KEY_COM_STR "WRITKEY"

/* Protocols as strings
*/
#define pcoUNKNOWN_PROTOCOL "UNKNOWN"
#define pcoMIDAS_PROTOCOL "MIDAS"
#define pcoARCHIVE_PROTOCOL "ARCHIVE"

/* MIDAS types as strings
*/
#define pcoMIDAS_INTEGER_STR "INTEGER"
#define pcoMIDAS_REAL_STR "REAL"
#define pcoMIDAS_DOUBLE_STR "DOUBLE"
#define pcoMIDAS_STRING_STR "STRING"

/* Macro definitions
*/
#define INFO(info) if (verbose) printf("\npco> %s", info)

/* Type definitions
*/
typedef char pcoMSG[pcoMAX_MSG_LEN];
typedef vltUINT32 pcoMSG_LEN;

/* Enumerated type definitions
*/
typedef enum {
pcoUNKNOWN = 1,
pcoMIDAS,
pcoARCHIVE
} pcoPROTOCOL;

typedef enum {
pcoNO_CONNECTION = 1,
pcoCONNECTION
} pcoCON_STAT;

typedef enum {
pcoCOM_NOT_DEF = 1,
pcoUNKNOWN_COM,
pcoPING_COM,
pcoFORWARD_MSG_COM,
pcoREAD_KEY_COM,
pcoWRITE_KEY_COM,
pcoATTACH_COM,
pcoDETACH_COM,
pcoEXIT_COM,
pcoDISCON_COM
} pcoCOMMAND_TYPE;

typedef enum {
pcoMIDAS_UNKNOWN = 1,
pcoMIDAS_INTEGER,
pcoMIDAS_REAL,
pcoMIDAS_DOUBLE,
pcoMIDAS_STRING
} pcoMIDAS_KEY_TYPE;


/* Type definitions of Structures
*/
typedef struct pcoPROC {
struct pcoPROC *next;
struct pcoPROC *prev;
pcoCON_STAT conStatus;
pcoPROTOCOL protocol;
char processID[pcoPROCESS_ID_LEN];
char hostName[pcoHOST_NAME_LEN];
evtEVENT_ID eventID;
char attributeName[pcoATTRIB_NAME_LEN];
int conID;
int sockFd;
vltLOGICAL message;
vltLOGICAL waitingReply;
vltLOGICAL waitingEventReply;
msgPROCESSID ccsProcID;
msgCMD command;
msgCMDID commandID;
vltUINT16 count;
} pcoPROC_HANDLE;

typedef struct {
msgPROCESSID srcID;
vltUINT16 msgID;
} pcoMSG_HANDLE;


/* Function prototyping
*/
ccsCOMPL_STAT pcoPackMsg(pcoPROTOCOL protocol,
char *processID,
char *hostName,
char *sendBuf,
msgLENGTH *sendBufLen,
...);

ccsCOMPL_STAT pcoPing(ccsENVNAME pcoEnvName,
msgTIMEOUT timeOut,
ccsERROR *error);

ccsCOMPL_STAT pcoReadMidasKey(msgTIMEOUT timeOut,
ccsENVNAME pcoEnvName,
vltUINT8 midasUnitID,
char *hostName,
char *keyName,
pcoMIDAS_KEY_TYPE keyType,
vltUINT16 elSize,
vltUINT16 firstEl,
vltUINT16 numberOfEls,
void *keyArray,
vltUINT16 *elsRead,
ccsERROR *error);

ccsCOMPL_STAT pcoWriteMidasKey(msgTIMEOUT timeOut,
ccsENVNAME pcoEnvName,
vltUINT8 midasUnitID,
char *hostName,
char *keyName,
pcoMIDAS_KEY_TYPE keyType,
vltUINT16 elSize,
vltUINT16 firstEl,
vltUINT16 numberOfEls,
void *elArray,
ccsERROR *error);

#ifdef __cplusplus
}
#endif

#endif /*!PCO_H*/





--->END IMPORTED FILE: ../include/pco.h (96/5/7 18:25)

B COMMAND DEFINITION

--->BEGIN IMPORTED FILE: ../CDT/pco.cdt (96/5/7 18:25)
//*************************************
//
// E.S.O. - VLT project
//
// "@(#) $Id: pco.cdt,v 1.13+ 1996/04/25 08:06:33 jknudstr Exp $"
//
// pco.cdt"
//
// Who When What
// -------- -------- ----------------------------------------------
// jknudstr 22/09/94 Created 1. version
// jknudstr 02/03/95 Modified to new format
// jknudstr 10/06/95 Modified WRITKEY command definition
//
//
//======================================================================

//======================================================================
// The Public commands defined for the PCO
//======================================================================

PUBLIC_COMMANDS

//======================================================================
COMMAND= DISCON
SYNONYMS= pcoDisconnect
FORMAT= A
PARAMETERS=
PAR_NAME= protocol
PAR_TYPE= STRING
PAR_RANGE= ENUM "MIDAS"

PAR_NAME= procID
PAR_TYPE= STRING

PAR_NAME= hostName
PAR_TYPE= STRING
REPLY_FORMAT= A
HELP_TEXT=
Make PCO disconnect from an external process, closing down the connection
in a clean manner.
@

//======================================================================
COMMAND= PING
SYNONYMS= pcoPing
FORMAT= A
REPLY_FORMAT= A
HELP_TEXT=
Makes the PCO send back a reply indicating if it is running properly.
@

//======================================================================
COMMAND= FORWMSG
SYNONYMS= pcoForwardMessage
FORMAT= A
PARAMETERS=
PAR_NAME= protocol
PAR_TYPE= STRING
PAR_RANGE= ENUM "MIDAS"

PAR_NAME= procID
PAR_TYPE= STRING

PAR_NAME= hostName
PAR_TYPE= STRING

PAR_NAME= message
PAR_TYPE= STRING
PAR_MAX_REPETITION= 999

REPLY_FORMAT= A
HELP_TEXT=
Indicates for PCO that the message contained in this package shall be
forwarded to the specified destination.
@

//======================================================================
COMMAND= READKEY
SYNONYMS= pcoReadKey
FORMAT= A
PARAMETERS=
PAR_NAME= protocol
PAR_TYPE= STRING
PAR_RANGE= ENUM "MIDAS"

PAR_NAME= procID
PAR_TYPE= STRING

PAR_NAME= hostName
PAR_TYPE= STRING

PAR_NAME= keyName
PAR_TYPE= STRING

PAR_NAME= keyType
PAR_TYPE= STRING
PAR_RANGE= ENUM "INTEGER", "REAL", "DOUBLE", "STRING"

PAR_NAME= elSize
PAR_TYPE= INTEGER
PAR_RANGE= INTERVAL MIN=0; MAX=65535

PAR_NAME= firstEl
PAR_TYPE= INTEGER
PAR_RANGE= INTERVAL MIN=0; MAX=65535

PAR_NAME= noOfEls
PAR_TYPE= INTEGER
PAR_RANGE= INTERVAL MIN=0; MAX=65535

REPLY_FORMAT= A
HELP_TEXT=
Read a MIDAS key (scalar or vector) and send back the elements.
@

//======================================================================
COMMAND= WRITKEY
SYNONYMS= pcoWriteKey
FORMAT= A
PARAMETERS=
PAR_NAME= protocol
PAR_TYPE= STRING
PAR_RANGE= ENUM "MIDAS"

PAR_NAME= procID
PAR_TYPE= STRING

PAR_NAME= hostName
PAR_TYPE= STRING

PAR_NAME= keyName
PAR_TYPE= STRING

PAR_NAME= keyType
PAR_TYPE= STRING
PAR_RANGE= ENUM "INTEGER", "REAL", "DOUBLE", "STRING"

PAR_NAME= elSize
PAR_TYPE= INTEGER
PAR_RANGE= INTERVAL MIN=0; MAX=65535

PAR_NAME= firstEl
PAR_TYPE= INTEGER
PAR_RANGE= INTERVAL MIN=0; MAX=65535

PAR_NAME= noOfEls
PAR_TYPE= INTEGER
PAR_RANGE= INTERVAL MIN=0; MAX=65535

PAR_NAME= els
PAR_TYPE= STRING
PAR_MAX_REPETITION= 999

REPLY_FORMAT= A
HELP_TEXT=
Write a MIDAS key. This can be either a scalar or a vector.
@

//======================================================================
COMMAND= ATTACH
SYNONYMS= pcoAttach
FORMAT= A

PARAMETERS=
PAR_NAME= protocol
PAR_TYPE= STRING
PAR_RANGE= ENUM "MIDAS"

PAR_NAME= procID
PAR_TYPE= STRING

PAR_NAME= hostName
PAR_TYPE= STRING

PAR_NAME= attribName
PAR_TYPE= STRING
PAR_MAX_REPETITION= 999

PAR_NAME= message
PAR_TYPE= STRING
PAR_OPTIONAL= YES
PAR_MAX_REPETITION= 999

REPLY_FORMAT= A
HELP_TEXT=
Make the PCO attach itself to an event on behalf of an external
process.
@

//======================================================================
COMMAND= DETACH
SYNONYMS= pcoDetach
FORMAT= A

PARAMETERS=
PAR_NAME= protocol
PAR_TYPE= STRING
PAR_RANGE= ENUM "MIDAS"

PAR_NAME= procID
PAR_TYPE= STRING

PAR_NAME= hostName
PAR_TYPE= STRING

PAR_NAME= attribName
PAR_TYPE= STRING
REPLY_FORMAT= A
HELP_TEXT=
Make the PCO detach itself from an event on behalf of an external
process. Make the PCO in the specified RTAP Environment terminate.
@

//======================================================================
COMMAND= EXIT
SYNONYMS= pcoExit
FORMAT= B
REPLY_FORMAT = A
HELP_TEXT =
Make the PCO in the specified RTAP Environment terminate.
@

MAINTENANCE_COMMANDS


TEST_COMMANDS









--->END IMPORTED FILE: ../CDT/pco.cdt (96/5/7 18:25)



Quadralay Corporation
http://www.webworks.com
Voice: (512) 719-3399
Fax: (512) 719-3606
sales@webworks.com
TOC PREV NEXT INDEX