⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icsdkt.h

📁 ICCP Toolkit 是在 Tru64下开发Tase.2通信协议的开发包
💻 H
📖 第 1 页 / 共 3 页
字号:
/* * Define bilateral table. * */typedef struct bilateralEntryType{    short       scope;          /* Scope of VMD_SPEC, DOM_SPEC, or AA_SPEC */    short       permissions;    /* Access permissions */                                /* Permissions = 0 means non-existent object */    timeIntervalSType interval; /* Shortest allowed periodic interval (secs) */    ldValueType valuePtr;       /* Pointer to type of local data */} bilateralEntryType;typedef struct bilateralTableType{    char        version[MAX_VERSION_LEN+1];                                /* Version number of bilateral table */    int         entries;        /* Number of array entries in use */    int         entriesAlloc;   /* Number of allocated array entries */    bilateralEntryType bilateralArray[1];                                /* Array of bilateral table entries, in                                   alphabetic order by name */} bilateralTableType;/* * Define data set object type. * */typedef struct objectSetArrayType{    bilateralEntryType   bilateralArray[1]; /* Array of bilateral entries */} objectSetArrayType;typedef struct dataSetObjectType{    short                type;          /* should always be PT_OBJECT_SET */    int                  useCount;      /* Number of transfers using data set */    short                scope;         /* Scope of data set */    int                  entries;       /* Number of entries in list */    int                  asn1len;       /* Total length of ASN.1 encoded                                           values within data set */    struct peerType     *peer;     objectSetArrayType  *objects;       /* Array of bilateral entries */    short                nameSize;      /* Number of characters in name not                                           including zero byte terminator  */    char                 name[1];       /* Name, nameSize+1 is actual                                           array size                      */} dataSetObjectType;/* * Define client data set object type. * */typedef struct cObjectSetArrayType{    ldValueType objectArray[1];         /* Array of object pointers */} cObjectSetArrayType;typedef enum icDsObjState {     DS_INIT,     DS_CREATING,     DS_DELETING,     DS_VALIDATING,     TS_DOWN,     TS_STARTING,  /* mp_write issued for Data Set */     TS_UP,        /* mp_write_conf received for Data Set */     TS_STOPPING,  /* mp_write issued for Data Set */     TS_OFF        /* Disabled & opportunitiy to start passed */} icDsObjState ;typedef struct cDataSetObjectType{                                        /*  Need to add a scope variable,                                             if later use of per-define data                                                feature is to be added  */    short                type;          /* should always be PT_C_OBJECT_SET */    short                transferValueC;/* Transfer Value Conditions */    GMTBasedSType        startTime;     /* Start Time (secs) */    timeIntervalSType    interval;      /* Periodic interval (secs) */    timeIntervalSType    periodicOffset;/* Periodic interval (secs) */    timeIntervalSType    bufferTime;    /* Interval for exception buffering                                           (secs) */    timeIntervalSType    integrity;     /* Integrity interval (secs) */    short                groupIndex;    /* Index into conditionDefArray */    int                  entries;       /* Number of entries in list */    struct peerType      *peer;      struct icTransferGroup *groupPtr;   /* Ptr to Transfer Group entry */    struct cDataSetObjectType *nextDS;  /* Next dataset in this tr group */    void             (*transferReject)   ( icInt status, icLinkId linkId );                                     /* procedure to call if defvlist failed */    cObjectSetArrayType *objects;       /* Array of objects */    mnTimerIdType        CriticalDataNotRcvdTimer;    short                CriticalAckInterval ;    icDsObjState         state ;    short                nameSize;      /* Number of characters in name not                                           including zero byte terminator  */    char                 name[1];       /* Name, nameSize+1 is actual                                           array size                      */} cDataSetObjectType;/* * Define transfer object. * */typedef struct objectChangeNotifyType{                               /* to keep track of who to notify when change */    struct dsTransferSetObjectType *dsTransferSet;                                /* Transfer set associated with change */    icInt  objectIndex;         /* index of point within transfer set  */    struct objectChangeNotifyType   *next; } objectChangeNotifyType;/* Queue to hold critical timeout timers				      */typedef struct criticalTimerQueueEntry{  mnTimerIdType			  timerId;  int				  timestamp;  struct criticalTimerQueueEntry  *next;} criticalTimerQueueEntry;typedef struct dsTransferSetObjectType{    short                type;          /* = PT_DSTRANSFER_SET */    short                scope;         /* Scope VMD_SPEC, DOM_SPEC, AA_SPEC */    DSTransferSetType    dsTransferSet; /* DS Transfer set object */    struct dsTransferSetObjectType *next; /* Next active transfer */    struct peerType     *peer ;                                 /* ??? change to ldValueType for DS, TS, TA */    icBoolean            assigned;      /* TRUE if it is assigned to client */    icBoolean            active;        /* TRUE if transfer set is active */    icBoolean            conditionMonitoring; /* TRUE if condition monitoring */		                        /* has been started                 */     icBoolean            TLEreportDiscard;   /* TRUE if report discarded due to TLE */    dataSetObjectType   *dataSet;       /* Pointer to data set */    icBoolean            *objectChangedArray; /* Pointer to object change set.                                           Only present if RBE.                                           Parallel to dataSet. */    mnTimerIdType        startTimer;    /* timerId for starttime */    criticalTimerQueueEntry *criticalTimerQueue;  /* criticl ACK Timers	*/    GMTBasedSType        nextIntervalTime; /* Time to trigger next interval report (secs) */    GMTBasedSType        nextBufferTime; /* Time to trigger buffer report (secs) */    GMTBasedSType        nextIntegrityTime; /* Time to trigger next integrity report (secs) */    DSConditionsType     conditions;    /* Conditions that occur while waiting                                           for buffertime to expire */    short                eventCode;     /* Event code that occur while waiting                                           for buffertime to expire */    icBoolean		 bTrigger;	/* used by icDataValuesChanged	    */    GMTBasedSType        secsPastTimeToSend;/* When blockdata is supported then add stuff to support RBE */    short                nameSize;      /* Number of characters in name not                                           including zero byte terminator  */    char                 name[1];       /* Name, nameSize+1 is actual                                           array size                      */} dsTransferSetObjectType;/* * Define client transfer object. * */typedef struct cdsTransferSetObjectType{    short                type;          /* = PT_C_DSTRANSFER_SET */    DSTransferSetType    dsTransferSet; /* DS Transfer set object */    cDataSetObjectType  *dataSet;       /* Pointer to data set */    short                nameSize;      /* Number of characters in name not                                           including zero byte terminator  */    char                 name[1];       /* Name, nameSize+1 is actual                                           array size                      */} cdsTransferSetObjectType;/* * Define channel configuration. * */typedef struct chanConfType  {  int         linkKey;                /* relation linkKey for this link */  char        linkName[cNormName+1];  /* the link name */  icShort       chan;                 /* MMS-EASE channel number */  icBoolean   initiator;              /* TRUE if this side initiates connections.                                         Implies alternate AR names and retry                                         parameters are configured */  icBoolean   identifyPeer;           /* TRUE if identity from Peer is required */  unsigned char  priority;            /* data priority for this link */  mnTimerIdType   restartTimer;       /* timerId for re-startAssociation */  mnTimerIdType   chkAssoTimer;       /* timerId for association request*/  int         assocReqTimeout;        /* Association request timeout in seconds */  int         assocReqRetry;          /* Association req retry time in seconds */  int         replyTimeout;           /* Server reply timeout in seconds */  int         criticalTimeout;        /* Timeout in secs for critical data                                         ACK from client */  int         maxTransmitDelay;       /* Delay before abort of hung transmit (sec) */  int         maxPDUSize;             /* Maximum desired MMS PDU size */  int         remArIndex;             /* index of ar name for mv_init */  int         numAttempts;            /* if tried all ar names - wait */   icChar     *connectedTo;            /* ar name of the remote on the other end of the connection */  } chanConfType;typedef struct nameType{    char        name[IC_MAX_NAME_LEN+1];} nameType;typedef struct nameListType{    icBoolean   more_follows;   /* There are more names to list */    short       num_names;      /* Number of names in this part of list */    nameType    nameList[1];    /* Array of names in this part of list */} nameListType;/* * list of bad Data Sets    cDataSetObjectType          *newDataSet; * */typedef struct dataSetListType{    struct dataSetListType      *next;    cDataSetObjectType          *oldDataSet;    icBoolean                    validateReadDone;} dataSetListType;typedef struct peerType{    int             remoteKey;      /* relation remoteKey for this peer */    icpeStateType   IcpeState;      /* state of the process */    char            localDomName[IC_MAX_NAME_LEN+1];    char            remoteDomName[IC_MAX_NAME_LEN+1];    icBoolean       singleReadSupported;   /* TRUE = MMS single var rd bought */    icBoolean       listReadSupported;     /* TRUE = MMS list read bought */    char            peerName[cNormName+1]; /* Peer control center name */    char            BltVersion[MAX_VERSION_LEN+1];                                /* Version num of peer's bilateral table */    unsigned char   remoteType;   /* type of remote system, 0 = single,                                   1 = list, 2 = ICCP */    icBoolean       strt_MMS_Done;       /* TRUE if strt_MMS has been called */    icBoolean       predefinedDataSets;  /* TRUE = predefined Data Sets used */    int             shortestPeriod;      /* shortest periodicity allowed */    chanConfType    chanConf;            /* Channel configuration & status */    bilateralTableType *bilateral; /* Bilateral table VMD scope.                                   Contains entries for data values,                                   data sets, devices, and operator stations */                                 /* "GW Configuration" inserts everything                                    but data sets */    bilateralTableType *domainVariables;                                /* Domain scope variables.                                   Contains entries for ICCPVersion,                                   Supported_Features, Bilateral_Table_ID,                                   Conclude_Retry, Abort_Retry,                                   TransferSetName, NextTransferSet, Flags,                                   TimeStamp, and transfer sets */                                /* ICCP Configuration inserts everything                                   but data sets */    bilateralTableType *associationVariables;                                /* Association scope variables */    bilateralTableType *clientAccountVariables;                                /* Client Account variables */    bilateralTableType *clientMsgVariables;                                /* Client Message variables */    bilateralTableType *clientVariables;                                /* internal Client variables, e.g. DS, TS  */	bilateralTableType *bilateralClient ;                                 /* Client variables, defined by SDK User */    int         numDataSets;    /* Numr of data sets created by client */    conditionTableType      *condition;       /* Transfer condition table */    conditionDefTableType   *conditionDef;    /* Transfer condition table */    dsTransferSetObjectType *activeTransfers; /* List of active transfers */    dsTransferSetObjectType *transferSetWaitingOnXmitFull;    GMTBasedSType        xmitFullTime; /* Time when xmitFull started (secs) */    mnTimerIdType xmitCheckTimer;    mnTimerIdType channelBusyTimer;    mnTimerIdType serverResponseTimer;                                /* timerId for timing out server response */    char        *timeoutText;   /* Text for timeout of server response */    icBoolean   getDataValueNames; /* TRUE if requesting list of data values */    icBoolean   startTransferWrite;/* TRUE if writing to start Transfer Set  */    icBoolean   stopTransferWrite; /* TRUE if writing to stop Transfer Set */    void       *transferSetPtrWritten;  /* ptr of DSTransferSet being written,                                  should be type (cdsTransferSetObjectType*) */    int         stopTransferIndex; /* Index to transfer set to be disabled */    nameListType *serverNameList;                                /* Partial list of server data set names */    int         currentServerListIndex;                                /* Index to current server data set name within                                   serverNameList */    int         currentClientListIndex;                                /* Index to current client data set name within                                   clientVariables */    int         maxDSTransferSets;    int         maxDataSets;    FILE        *idugFileID;       /* For writing to idug file */    icBoolean   requestDOM;        /* doing DOM_SPEC request */    icBoolean   ICPE;              /* user is the ICCP PE */    icBoolean   clientMsgDefined;  /* TRUE if Block 4 client msg defined */    dataSetListType *adjustDataSet;       /* SISCO_START	*/    icReceiveMessage        receiveMessage;    icUserData              receiveUserData;    icBlock4Conditions      receiveBlock4Conditions;    icUserData              receiveBlock4ConditionsUserData;    icBlock8Conditions      receiveBlock8Conditions;    icUserData              receiveBlock8ConditionsUserData;    icBoolean		    cleanAssoc;    mnTimerIdType	    concludeResponseTimer;    /* SISCO_END	*/} peerType;/* * Define type for information about MMS Data object types. * *//* nav added 'typedef' below	99317 */typedef struct typeInfoType {    char    *name;            /* Name of type - used to setup rest of entry */    struct named_type *type; /* Pointer to a named type definition */} typeInfoType;/* * Define type of MMS transfer set. */typedef struct mmsTransferSetObjectType {    cDataSetObjectType *dataSet;    mnTimerIdType intervalTimer;    mnTimerIdType readResponseTimer;    mnTimerIdType startTimer;    peerType *peer ;} mmsTransferSetObjectType;/* SISCO_START */#ifdef __cplusplus}#endif/* SISCO_END */#endif /* _ICSDKT_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -