![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00006 #ifndef hSignalInter_H_ 00007 #define hSignalInter_H_ 00008 00009 #if DtHLA 00010 00011 00012 #include <vlutil/vlMachineTypes.h> 00013 #include "hIntWEncDec.h" 00014 #include "hostStructs.h" 00015 00019 00020 class DtSignalInteraction; 00021 class DtExerciseConn; 00022 00023 #ifndef DT_ENUM_LONG_WORD_PORTION 00024 #define DT_ENUM_LONG_WORD_PORTION 00025 enum DtLongWordPortion 00026 { 00027 DtUpperWord, 00028 DtLowerWord 00029 }; 00030 #endif 00031 00032 00033 00035 typedef void (*DtSignalInteractionCb) 00036 (DtSignalInteraction* inter, void* usr); 00037 00042 class DT_DLL_VL DtSignalInteraction : public DtInteractionWithEncDec 00043 { 00044 public: 00046 DtSignalInteraction(); 00047 00049 virtual ~DtSignalInteraction(); 00050 00052 DtSignalInteraction(const DtSignalInteraction& orig); 00053 00055 DtSignalInteraction& operator=(const DtSignalInteraction& orig); 00056 00058 virtual void printData() const; 00059 00061 virtual void printDataToStream(std::ostream& stream) const; 00062 00064 00065 00066 00067 00068 virtual void setRadioId(const DtGlobalObjectDesignator& id); 00069 virtual const DtGlobalObjectDesignator& radioId() const; 00071 00073 00074 virtual void setSampleRate(DtU32 rate); 00075 virtual DtU32 sampleRate() const; 00077 00079 virtual void setNumSamples(DtU32 count); 00080 virtual DtU32 numSamples() const; 00081 00083 00084 virtual void setNumDataBytes(DtU16 len); 00085 virtual DtU16 numDataBytes() const; 00087 00089 00090 virtual void setNumDataBits(DtU16 len); 00091 virtual DtU16 numDataBits() const; 00093 00095 00096 virtual void setData(const void* data, int numBytes); 00097 virtual const void* data() const; 00099 00101 00102 virtual DtU8 dataByte(int byteNum) const; 00103 virtual void setDataByte(int byteNum, DtU8 data); 00105 00107 virtual void setTdlType(DtTacticalDataLinkType link); 00108 virtual DtTacticalDataLinkType tdlType() const; 00109 00111 00112 virtual void setEncodingType(DtEncodingType encoding); 00113 virtual DtEncodingType encodingType() const; 00115 00117 00118 00119 virtual DtEncodingClass encodingClass() const; 00120 virtual void setEncodingClass(DtEncodingClass encodingClass); 00122 00124 00125 00126 00127 virtual void setTdlMessageCount(DtU16 count); 00128 virtual DtU16 tdlMessageCount() const; 00130 00132 00133 00134 00135 00136 00137 virtual void setProtocolId(DtUserProtocol id); 00138 virtual DtUserProtocol protocolId() const; 00140 00142 00143 00144 00145 00146 virtual void setDatabaseIndex(DtU32 index); 00147 virtual DtU32 databaseIndex() const; 00149 00151 00152 00153 00154 00155 virtual void setDuration(DtU32 duration); 00156 virtual DtU32 duration() const; 00158 00160 00161 00162 00163 00164 00165 virtual void setStartOffset(DtU32 offset); 00166 virtual DtU32 startOffset() const; 00168 00170 00171 00172 00173 virtual void setStreamTag(unsigned long upper, unsigned long lower); 00174 virtual void setStreamTag(unsigned long st); 00176 00180 virtual unsigned long streamTag( 00181 DtLongWordPortion upperLower = DtLowerWord) const; 00182 00184 virtual const char* name() const; 00185 00186 public: 00187 00190 static DtInteraction* create(); 00191 00194 static void addCallback(DtExerciseConn* conn, 00195 DtSignalInteractionCb cb, void* usr, 00196 DtDDMRegionSP region = DtDDMRegionSP()); 00197 static void removeCallback(DtExerciseConn* conn, 00198 DtSignalInteractionCb cb, void* usr, 00199 DtDDMRegionSP region = DtDDMRegionSP()); 00200 00201 protected: 00202 00203 DtGlobalObjectDesignator myHostRadioId; 00204 DtU16 mySignalDataLength; 00205 DtU8* mySignalData; 00206 DtTacticalDataLinkType myTacticalDataLink; 00207 DtU16 myTDLMessageCount; 00208 DtUserProtocol myUserProtocolId; 00209 DtU32 myDatabaseIndex; 00210 DtU32 myDuration; 00211 DtU32 myStartOffset; 00212 DtEncodingType myEncodingType; 00213 DtEncodingClass myEncodingClass; 00214 DtU32 mySampleRate; 00215 DtU32 mySampleCount; 00216 00218 DtU32 myStreamTagHi; 00219 DtU32 myStreamTagLo; 00220 }; 00221 00222 #endif //DtHLA 00223 00224 #endif //DtSignalInteraction_H_ 00225