/*================================================================================================= * DD SYSTEM * DD.h * Version: 6.0 * Description: The public header to use DD library libDD.a * List of changes: * Apr. 17, 2002 Fedorov, - New error constant to interrupt the * transmission if data dimensions are changed from file * to file * Nov 18, 2004 - V.4.2 - Fedorov, New errors for CACH manipulating * Jun 17, 2007 - V.4.6 Fedorov New requestes and external executables * Aug 02, 2007 - V.4.7 Fedorov Modification of call external executables * Sep 24, 2007 - V.5.0 Fedorov New status of Get Data: MOREDELAY * May 21, 2008 - V.5.1 Fedorov New Status of SetTime: CTIMEISSHIFTED * Oct 18, 2012 - V.5.2 Knizhnikova New DD_SetTimeInfo() function *=================================================================================================*/ #include "DD_time.h" typedef struct { int type; /* Type of variable in netcdf style */ int DimNumber; /* number of dimensions */ int *Dimensions; /* Dimensions array * fastest change is last */ int VarNumber; /* Dimension of variable array */ void **Variables;/* Variables array pointer * It is static array refreshed * each call */ } DD_data_t; /*------------------- FUNCTIONS ---------------------------*/ #ifdef __cplusplus extern "C" { #endif extern int DD_SetVariable(char *VarName); /* * VarName - full name of variable :: * Returns VarID or negative in case of error (see bellow) */ extern int DD_GetInform(int VarID,char *AttrName, DD_data_t **data); /* * VarID - Variable ID from DD_SetVariable * AttrName - name of attribute ( defined by konvention ) * data - address of data structure * Returns 1 if OK and negative value in case of error (see bellow) */ extern int DD_SetTime(int VarID, char *Time); /* * VarID - Variable ID from DD_SetVariable * Time - string defined in DD_time.h * Returns 1 if OK and negative value in case of error (see bellow) */ extern int DD_SetTimeInfo(int VarID, char *Time, double *RealTime); /* * VarID - Variable ID from DD_SetVariable * Time - string defined in DD_time.h * RealTime - time pointer was set to * Returns 1 if OK and negative value in case of error (see bellow) */ extern int DD_GetMultiData(int VarID, size_t VarSize, char **VarNames, char *TimeInt, DD_data_t **data, int BackFlag); /* * VarID - Variable ID from DD_SetVariable * VarSize - number of variables to return * VarNames - the array of Names of the requested Variable * TimeInt - String of Time interval in DD_time style * data - Data structures array * BackFlag - 0 - pointer is at the lasy position, 1 - pointer returns to the start point * Returns 1 if OK and negative value in case of error (see bellow) */ /* ---------------------------------------- * This function below just call DD_GetMultiData * for backup *---------------------------------------*/ extern int DD_GetData(int VarID, char *VarName, char *TimeInt, DD_data_t **data); extern int DD_MovePoint(int VarID, int RecordNumber); /* * VarID - Open virtual instrument ID * int RecordNumber - +/- records to move * Move pointer in the open instrument and return 1 or negative if error */ extern int DD_Close(int VarID); /* * VarID - Variable ID from DD_SetVariable * Returns 1 if OK and negative value in case of error (see bellow) */ extern char *DD_GetVersion(); /* * return static pointer to internal string with the DDLIB-SERVER package version */ /*----------- Data Update functions -----------------------------------*/ extern int DD_AddDataSet(char *DataSetName, char *RemSetID, char *BaseName); /* * Request for new VI. See ../DOC/TECHDOC/DDServFunct.html */ #ifdef __cplusplus } #endif /*--------------------- CONSTANTS -----------------------------------------*/ #define MOREDATA 1 /* There is data, but we have to call GetData again right now*/ #define MOREDELAY 2 /* There is data, but we have to call GetData again after delay */ #define OK 0 /* It is last data packet */ #define NOCONNECTION -1 #define TOOMANYREQ -2 #define REQSENDERR -3 #define REPLYRECERR -4 #define NOID -5 #define NOREFFILE -6 #define NOTIMESFILE -7 #define NOINFOFILE -8 #define NOVAR -9 #define OUTOFTIME -10 #define CACHERR -11 /* The error occured when program manipulated the cach */ #define CACHTOOREC -33 /* Off files in the CASH are created less then 5 sec ago */ #define WAITEXTCALL -34 /* Server Waits external call finish */ #define TRYAGAIN -35 /* Times file is locked. This request should be repeated again */ #define NODATAATTIME -36 /* Requested time is inside NODATA time interval */ #define GAPISSMALL -37 /* Gap is too small to call external archive */ #define CTIMEISSHIFTED -38 /* The request was in NoData interval, try again with time at the end */ #define DATAFILEERR -12 /* The error while manipulate with data file */ #define ENVIRERROR -13 /* Error in Environments */ #define NOPOINTER -14 /* The pointer points nowhere, SetTime were failed */ #define INTSERERR -15 /* Server internal error */ #define TIMEINEMPTY -16 /* No data for specified time interval */ #define NOEXEC -17 /* No executable */ #define DD_SHORT 4 #define DD_INT 1 #define DD_FLOAT 2 #define DD_DOUBLE 3 #define DD_CHAR 0 int GetSocket();