Files
sil/cr929_SIL/R2018b/rtw/c/src/rtw_modelmap_logging.h
T

180 lines
5.4 KiB
C
Raw Normal View History

2020-09-30 11:44:05 +08:00
/* Copyright 1994-2013 The MathWorks, Inc. */
/*
* File: rtw_modelmap_logging.h
*
* Abstract:
* Meta information used in conjunction with the ModelMappingInfo to
* facilitate logging.
*
*/
#ifndef __RTW_MODELMAP_LOGGING__
#define __RTW_MODELMAP_LOGGING__
#ifdef SL_INTERNAL
# include "simstruct/sysran_types.h"
#else
# include "sysran_types.h"
#endif
typedef struct rtwCAPI_ModelMapLoggingStaticInfo_tag rtwCAPI_ModelMapLoggingStaticInfo;
typedef struct rtwCAPI_ModelMapLoggingInstanceInfo_tag rtwCAPI_ModelMapLoggingInstanceInfo;
typedef struct rtwCAPI_LoggingMetaInfo_tag {
uint_T sigIdx; /* same index as the rtwCAPI_Signals */
uint_T startIdx; /* starting index in the block I/O */
const char *blockPath;
uint_T portIdx;
int_T parentSysNum; /* system number of the parent signal that requested
the logging */
} rtwCAPI_LoggingMetaInfo;
typedef enum {
rtwCAPI_bus,
rtwCAPI_signal
} rtwCAPI_LoggingBusElementType;
typedef struct rtwCAPI_LoggingBusElement_tag {
uint_T index;
rtwCAPI_LoggingBusElementType type;
} rtwCAPI_LoggingBusElement;
typedef struct rtwCAPI_LoggingBusSignals_tag {
const char *signalName; /* logname should be in the sigProp */
const char *blockPath;
uint_T portIdx;
uint_T numElements;
const rtwCAPI_LoggingBusElement *elements;
} rtwCAPI_LoggingBusSignals;
typedef struct rtwCAPI_StateflowSignalLoggingInfo_tag {
const char *signalName;
const char *blockPath;
const char *loggingName;
uint_T maxPoints;
uint_T decimation;
boolean_T useCustomName;
} rtwCAPI_StateflowSignalLoggingInfo;
/* Structure used for representing bus hierarchy information for dataset logging */
typedef struct rtwCAPI_SignalHierLoggingInfo_tag {
const char_T* signalName;
uint_T numChildren;
int_T childStartIdx;
} rtwCAPI_SignalHierLoggingInfo;
typedef struct rtwCAPI_SignalHierLoggingInfoTable_tag {
uint_T numSignals;
rtwCAPI_SignalHierLoggingInfo const* infoTable;
uint_T const* childIndexTable;
} rtwCAPI_SignalHierLoggingInfoTable;
/* ModelMapLoggingStaticInfo */
struct rtwCAPI_ModelMapLoggingStaticInfo_tag {
/* Total number of non-virtual systems */
uint_T numSystems;
/* Effective context systems array */
int_T const * contextSystems;
rtwCAPI_LoggingMetaInfo const *logInfo;
/* Bus signals info */
uint_T numBusSignals;
rtwCAPI_LoggingBusSignals const *busSignals;
/* Dataset format hierarchy info */
rtwCAPI_SignalHierLoggingInfoTable hierInfoTable;
/* Dataset format Stateflow logging info */
uint_T numChartSignals;
rtwCAPI_StateflowSignalLoggingInfo const *chartSignals;
};
/* Macros for accessing static fields */
/* Note: These are all relative to the base MMI */
#define rtwCAPI_GetHierInfoMap(MMI) \
((MMI)->staticMap->staticLogInfo->hierInfoTable)
#define rtwCAPI_GetNumSystems(MMI) \
((MMI)->staticMap->staticLogInfo->numSystems)
#define rtwCAPI_GetContextSystems(MMI) \
((MMI)->staticMap->staticLogInfo->contextSystems)
#define rtwCAPI_GetLoggingInfoSigIdx(MMI, i) \
((MMI)->staticMap->staticLogInfo->logInfo[i].sigIdx)
#define rtwCAPI_GetLoggingInfoStartIdx(MMI, i) \
((MMI)->staticMap->staticLogInfo->logInfo[i].startIdx)
#define rtwCAPI_GetLoggingInfoBlockPath(MMI, i) \
((MMI)->staticMap->staticLogInfo->logInfo[i].blockPath)
#define rtwCAPI_GetLoggingInfoPortNumber(MMI, i) \
((MMI)->staticMap->staticLogInfo->logInfo[i].portIdx)
#define rtwCAPI_GetLoggingInfoParentSysNum(MMI, i) \
((MMI)->staticMap->staticLogInfo->logInfo[i].parentSysNum)
#define rtwCAPI_GetLoggingInfoNumBusSignals(MMI) \
((MMI)->staticMap->staticLogInfo->numBusSignals)
#define rtwCAPI_GetLoggingInfoBusSignalName(MMI, i) \
((MMI)->staticMap->staticLogInfo->busSignals[i].signalName)
#define rtwCAPI_GetLoggingInfoBusBlockPath(MMI, i) \
((MMI)->staticMap->staticLogInfo->busSignals[i].blockPath)
#define rtwCAPI_GetLoggingInfoBusPortIdx(MMI, i) \
((MMI)->staticMap->staticLogInfo->busSignals[i].portIdx)
#define rtwCAPI_GetLoggingInfoBusNumElements(MMI, i) \
((MMI)->staticMap->staticLogInfo->busSignals[i].numElements)
#define rtwCAPI_GetLoggingInfoBusElementIndex(MMI, i, j) \
((MMI)->staticMap->staticLogInfo->busSignals[i].elements[j].index)
#define rtwCAPI_GetLoggingInfoBusElementType(MMI, i, j) \
((MMI)->staticMap->staticLogInfo->busSignals[i].elements[j].type)
/* ModelMapLoggingInstanceInfo */
struct rtwCAPI_ModelMapLoggingInstanceInfo_tag {
/* Pointer to the sysRan dwork pointers */
sysRanDType **systemRan;
/* Effective non-triggered tid of each system */
int_T *systemTid;
/* Points to the global tid map */
int_T *globalTIDMap;
};
/* Note: These are all relative to the base MMI */
/* Get methods */
#define rtwCAPI_GetSystemRan(MMI) \
((MMI)->InstanceMap.instanceLogInfo->systemRan)
#define rtwCAPI_GetSystemTid(MMI) \
((MMI)->InstanceMap.instanceLogInfo->systemTid)
#define rtwCAPI_GetGlobalTIDMap(MMI) \
((MMI)->InstanceMap.instanceLogInfo->globalTIDMap)
/* Set methods */
#define rtwCAPI_SetSystemRan(MMI,s) \
((MMI).InstanceMap.instanceLogInfo->systemRan) = (s)
#define rtwCAPI_SetSystemTid(MMI,s) \
((MMI).InstanceMap.instanceLogInfo->systemTid) = (s)
#define rtwCAPI_SetGlobalTIDMap(MMI,s) \
((MMI).InstanceMap.instanceLogInfo->globalTIDMap) = (s)
#endif /* __RTW_MODELMAP_LOGGING__ */
/* EOF - rtw_modelmap_logging.h */