📄 icapi.h
字号:
#define IC_MIN_TRANSFER_SETS 100#define IC_MAX_TRANSFER_SETS 9999#define IC_MIN_DATA_SETS 100#define IC_MAX_DATA_SETS 9999#define IC_MAX_NAME_SIZE 32/* -- MMS Min/Max Values -- */#define IC_MMS_MIN_MSGSIZE 200 /* Max value - is negotiated between local and remote system *//* -- Timeout/Retry values (in seconds) -- */#define IC_REQUEST_MIN_TIMEOUT 1#define IC_REQUEST_MAX_TIMEOUT 600#define IC_REQUEST_MIN_RETRY 1#define IC_REQUEST_MAX_RETRY 600#define IC_REPLY_MIN_RETRY 1#define IC_REPLY_MAX_RETRY 600/* -- Channel number values -- */#define IC_MAX_CHANNEL_NUMBER 99 /* -- Periodic Interval values (in seconds) -- */#define IC_MIN_PERIODIC_INTERVAL 1#define IC_MAX_PERIODIC_INTERVAL 3600#define IC_MIN_PERIODIC_OFFSET 0 #define IC_MAX_PERIODIC_OFFSET 3599/* -- Buffer/Integrity Interval values (in seconds) -- */#define IC_MIN_BUFFER_INTERVAL 0#define IC_MAX_BUFFER_INTERVAL 600#define IC_MIN_INTEGRITY_INTERVAL 0#define IC_MAX_INTEGRITY_INTERVAL 3600/* -- Data Types -- */#ifdef __cplusplusextern "C" {#endif/* Misc. 'basic' types and values *//* SISCO_START */typedef ST_BOOLEAN icBoolean ;typedef ST_CHAR icChar ; typedef ST_UCHAR icUChar ; typedef ST_INT16 icShort ;typedef ST_UINT16 icUShort ; typedef ST_INT icInt ;typedef ST_UINT icUInt ; typedef ST_INT32 icLong ;typedef ST_UINT32 icULong ;typedef ST_FLOAT icFloat ;typedef ST_DOUBLE icDouble ; /* SISCO_END */#define icTrue 1#define icFalse 0 /* -- user specific error log routine type -- */typedef void (*icErrLogProcType) ( short int icInd, short int icErrNum, icChar Txt[], icInt lTxt);/* MMS-EASE Type Description Language (TDL) example strings and structures for pre-defined Data Types The Data Type name precedes its TDL string. The TDL string is defined above its corresponding data structure. Note that the use of spaces in the TDL descriptor is optional, and may be included for easier reading. However, also note that while spaces are ignored, other items aren't. For example, the TDL's "{Long}" and "Long" are not considered identical by MMS-EASE. Keep this in mind when trying to match types to remote system(s).*/#define IC_TYPE_REAL_NAME "Data_Real"#define IC_TYPE_REAL_TDL "Float"typedef icFloat icTypeReal ; #define IC_TYPE_REAL_Q_NAME "Data_RealQ"#define IC_TYPE_REAL_Q_TDL "{(Value)Float,(Flags)Bstring8}"typedef struct _ictyperealq { icFloat Value ; icUChar Flags ;} icTypeRealQ ; #define IC_TYPE_REAL_Q_TIME_TAG_NAME "Data_RealQTimeTag"#define IC_TYPE_REAL_Q_TIME_TAG_TDL \ "{(Value)Float,(TimeStamp)Long,(Flags)Bstring8}"typedef struct _ictyperealqtimetag { icFloat Value ; icLong TimeStamp ; icUChar Flags ; } icTypeRealQTimeTag ; #define IC_TYPE_REAL_EXTENDED_NAME "Data_RealExtended"#define IC_TYPE_REAL_EXTENDED_TDL \ "{(Value)Float,(TimeStamp)Long,(Flags)Bstring8,(COV)Ushort}"typedef struct _ictyperealextended { icFloat Value ; icLong TimeStamp ; icUChar Flags ; icUShort COVCount ; } icTypeRealExtended ; #define IC_TYPE_STATE_NAME "Data_State"#define IC_TYPE_STATE_TDL "Bstring8" typedef icUChar icTypeState ; #define IC_TYPE_STATE_Q_NAME "Data_StateQ"#define IC_TYPE_STATE_Q_TDL "Bstring8" typedef icUChar icTypeStateQ ; #define IC_TYPE_STATE_Q_TIME_TAG_NAME "Data_StateQTimeTag"#define IC_TYPE_STATE_Q_TIME_TAG_TDL "{(TimeStamp)Long,(Flags)Bstring8}"typedef struct _ictypestateqtimetag { icLong TimeStamp ; icUChar Flags ; } icTypeStateQTimeTag ; #define IC_TYPE_STATE_EXTENDED_NAME "Data_StateExtended"#define IC_TYPE_STATE_EXTENDED_TDL \ "{(TimeStamp)Long,(Flags)Bstring8,(COV)Ushort}" typedef struct _ictypestateextended { icLong TimeStamp ; icUChar Flags ; icUShort COVCount ; } icTypeStateExtended ; #define IC_TYPE_DISCRETE_NAME "Data_Discrete"#define IC_TYPE_DISCRETE_TDL "Long" typedef icInt icTypeDiscrete ; #define IC_TYPE_DISCRETE_Q_NAME "Data_DiscreteQ" #define IC_TYPE_DISCRETE_Q_TDL "{(Value)Long,(Flags)Bstring8}" typedef struct _ictypediscreteq { icInt Value ; icUChar Flags ; } icTypeDiscreteQ ; #define IC_TYPE_DISCRETE_Q_TIME_TAG_NAME "Data_DiscreteQTimeTag" #define IC_TYPE_DISCRETE_Q_TIME_TAG_TDL \ "{(Value)Long,(TimeStamp)Long,(Flags)Bstring8}" typedef struct _ictypediscreteqtimetag { icInt Value ; icLong TimeStamp ; icUChar Flags ; } icTypeDiscreteQTimeTag ; #define IC_TYPE_DISCRETE_Q_EXTENDED_NAME "Data_DiscreteExtended"#define IC_TYPE_DISCRETE_Q_EXTENDED_TDL \ "{(Value)Long,(TimeStamp)Long,(Flags)Bstring8,(COV)Ushort}" typedef struct _ictypediscreteqextended { icInt Value ; icLong TimeStamp ; icUChar Flags ; icUShort COVCount ; } icTypeDiscreteQExtended ; /* * ICCP Time Stamp Types *//* SISCO_START use ST_INT32 instead of long int SISCO_END */typedef ST_INT32 icGMTBasedSType; /* seconds since Jan. 1, 1970 GMT */#define TIME_INT_LEN 17 /* length of TimeIntervalString */#define MAX_IDENT_LEN 32 /* length of MMS Identifiers */#define HOURLY_PERIOD "00:00:00:01:00:00"#define MONTHLY_PERIOD "00:00:01:00:00:00"/* * foundation types for Account Objects *//* SISCO_START define with toolkit types */typedef icFloat icPriceType; /* format 24, exponent 8 */typedef icShort icAccountTypeCodeType; /* integer 16 */typedef icShort icCommodityClassType; /* integer 16 */typedef icFloat icTransactionAmountType; /* fmt 24, exponent 8 */typedef icShort icTransSegCodeType; /* integer 16 */typedef icLong icReferenceNumType; /* integer 32 */typedef icLong icUtilityIdType; /* integer 32 */typedef icLong icInterchangeIdType; /* integer 32 */typedef icGMTBasedSType icScheduleTimeType; /* GMTBasedS */typedef icGMTBasedSType icDurationType; /* GMTBasedS */typedef icShort icNumberType; /* integer 16 */typedef icInt icMatrixId; /* integer 32 *//* SISCO_END *//* * Information Buffer Objects (Block 4) */#if 0 /* the following was version 5.2 */#define IC_TYPE_INFO_BUF_HDR_NAME "InformationMessageHeader"#endif#define IC_TYPE_INFO_BUF_HDR_NAME "InfoMessHeader"#define IC_TYPE_INFO_BUF_HDR_TDL \ "{(InfoReference)Long,(LocalReference)Long,(MessageId)Long,(Size)Long}"/* SISCO_START use toolkit types SISCO_END */typedef struct _ictypeinfobufferheader { icReferenceNumType InfoReference; icReferenceNumType LocalReference; icLong MessageId; /* integer 32 */ icLong Size; /* integer 32 */} icTypeInfoBufferHeader ; /* * Account Object Types (Block 8) */#define IC_TYPE_SEG_PERIODIC_NAME "TASegmentsPeriodic"#define IC_TYPE_SEG_PERIODIC_TDL \ "{Long, Long, Long, Long, Long, Long, Vstring32, Long, Vstring32, Short, Short, Short, Short, Short}"#if 0 /* definition too long, skip type name len =304*/ "{(TransferAccountRef)Long,(SendUtility)Long,(RecvUtility)Long,(SellingUtility)Long,(BuyingUtility)Long,(TimeStamp)Long,(Name)Vstring32,(StartTime)Long,(PeriodResolution)Vstring32,(NumberLocalReferences)Short,(NumberSegments)Short,(NumberFloatIds)Short,(NumberIntegerIds)Short,(NumberPeriods)Short}"#endiftypedef struct _ictypenamedsegperiodicheader { icReferenceNumType TransferAccountRef; icUtilityIdType SendUtility; icUtilityIdType RecvUtility; icUtilityIdType SellingUtility; icUtilityIdType BuyerUtility; icGMTBasedSType TimeStamp; icChar Name[MAX_IDENT_LEN+1]; icScheduleTimeType StartTime; icChar PeriodResolution[MAX_IDENT_LEN+1]; icNumberType NumberLocalRef; icNumberType NumberSegments; icNumberType NumberFloatIds; icNumberType NumberIntegerIds; icNumberType NumberPeriods;} icTypeNamedSegPeriodicHeader ; #define IC_TYPE_NO_SEG_PRD_NAME "TANoSegmentsPeriodic"#define IC_TYPE_NO_SEG_PRD_TDL \ "{Long, Long, Long, Long, Long, Long, Vstring32, Long, Vstring32, Short, Short, Short, Short}"#if 0 /* if definition too long, skip type name len = 281 */ "{(TransferAccountRef)Long,(SendUtility)Long,(RecvUtility)Long,(SellingUtility)Long,(BuyingUtility)Long,(TimeStamp)Long,(Name)Vstring32,(StartTime)Long,(PeriodResolution)Vstring32,(NumberLocalReferences)Short,(NumberFloatIds)Short,(NumberIntegerIds)Short,(NumberPeriods)Short}"#endiftypedef struct _ictypenamedperiodicheader { icReferenceNumType TransferAccountRef; icUtilityIdType SendUtility; icUtilityIdType RecvUtility; icUtilityIdType SellingUtility; icUtilityIdType BuyerUtility; icGMTBasedSType TimeStamp; icChar Name[MAX_IDENT_LEN+1]; icScheduleTimeType StartTime; icChar PeriodResolution[MAX_IDENT_LEN+1]; icNumberType NumberLocalRef; icNumberType NumberFloatIds; icNumberType NumberIntegerIds; icNumberType NumberPeriods;} icTypeNamedPeriodicHeader ; #define IC_TYPE_SEG_PROFILE_NAME "TASegmentsProfile"#define IC_TYPE_SEG_PROFILE_TDL \ "{(TransferAccountRef)Long,(SendUtility)Long,(RecvUtility)Long,(SellingUtility)Long,(BuyingUtility)Long,(TimeStamp)Long,(Name)Vstring32,(NumberLocalReferences)Short,(NumberSegments)Short,(NumberProfileValues)Short}"typedef struct _ictypenamedsegprofileheader { icReferenceNumType TransferAccountRef; icUtilityIdType SendUtility; icUtilityIdType RecvUtility; icUtilityIdType SellingUtility; icUtilityIdType BuyerUtility; icGMTBasedSType TimeStamp; icChar Name[MAX_IDENT_LEN+1]; icNumberType NumberLocalRef; icNumberType NumberSegments; icNumberType NumberProfileVals;} icTypeNamedSegProfileHeader ; #define IC_TYPE_NO_SEG_PRF_NAME "TANoSegmentsProfile"#define IC_TYPE_NO_SEG_PRF_TDL \ "{(TransferAccountRef)Long,(SendUtility)Long,(RecvUtility)Long,(SellingUtility)Long,(BuyingUtility)Long,(TimeStamp)Long,(Name)Vstring32,(NumberLocalReferences)Short,(NumberProfileValues)Short}"typedef struct _ictypenamedprofileheader {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -