![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef DtIntercomControlPdu_H_ 00011 #define DtIntercomControlPdu_H_ 00012 00013 #if DtDIS 00014 00015 #include <vlutil/vlMachineTypes.h> 00016 #include "hostStructs.h" 00017 #include "dInteraction.h" 00018 #include "exerciseConn.h" 00019 00020 #include "packets/intercmCtlP.h" 00021 00022 #include "intercmParRec.h" 00023 #include "intercmEntDst.h" 00024 #include "intercmGrpAsg.h" 00025 #include "intercmGrpDst.h" 00026 00027 00028 00029 class DT_DLL_VL DtIntercomControlPdu; 00030 00032 typedef void (*DtIntercomControlPduCb)(DtIntercomControlPdu* pdu, void* usr); 00033 00034 00038 class DT_DLL_VL DtIntercomControlPdu : public DtInteraction 00039 { 00040 00041 public: 00042 00044 DtIntercomControlPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00045 DtIntercomControlPdu(const DtNetIntercomControlPdu* initial, 00046 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00047 DtIntercomControlPdu(const DtIntercomControlPdu& orig); 00048 00050 virtual ~DtIntercomControlPdu(); 00051 00053 DtIntercomControlPdu& operator=(const DtIntercomControlPdu& orig); 00054 00056 virtual void setControlType(DtIntercomCtlType controlType); 00057 virtual DtIntercomCtlType controlType() const; 00058 00060 virtual void setCommClass(DtIntercomCommClass commClass); 00061 virtual DtIntercomCommClass commClass() const; 00062 00064 virtual void setCommType(DtIntercomCommType commType); 00065 virtual DtIntercomCommType commType() const; 00066 00068 virtual void setSourceEntityID(const DtEntityIdentifier& entity); 00069 virtual const DtEntityIdentifier& sourceEntityID() const; 00070 00072 virtual void setSourceDeviceID(DtU16 deviceID); 00073 virtual DtU16 sourceDeviceID() const; 00074 00076 virtual void setSourceLineID(DtU8 lineID); 00077 virtual DtU8 sourceLineID() const; 00078 00080 virtual void setTransmitPriority(DtU8 transmitPriority); 00081 virtual DtU8 transmitPriority() const; 00082 00084 virtual void setTransmitLineState(DtIntercomTransLineState lineState); 00085 virtual DtIntercomTransLineState transmitLineState() const; 00086 00088 virtual void setCmdType(DtIntercomCmdType cmdType); 00089 virtual DtIntercomCmdType cmdType() const; 00090 00092 virtual void setMasterEntityID(const DtEntityIdentifier& entity); 00093 virtual const DtEntityIdentifier& masterEntityID() const; 00094 00096 virtual void setMasterDeviceID(DtU16 deviceID); 00097 virtual DtU16 masterDeviceID() const; 00098 00100 virtual void setMasterChannelID(DtU16 channelID); 00101 virtual DtU16 masterChannelID() const; 00102 00105 virtual DtU32 parmRecordsLength() const; 00106 00110 virtual bool setNumParmRecords(int numRecords); 00111 virtual int numParmRecords() const; 00112 00115 virtual bool getRecordType(int parmIndex, 00116 DtIntercomCtlRecType& recordType) const; 00117 00124 virtual bool setParmRecord(int parmIndex, 00125 const DtIntercomEntityDestRec& init); 00126 virtual bool getParmRecord(int parmIndex, 00127 DtIntercomEntityDestRec& record) const; 00128 virtual bool setParmRecord(int parmIndex, 00129 const DtIntercomGroupDestRec& init); 00130 virtual bool getParmRecord(int parmIndex, 00131 DtIntercomGroupDestRec& record) const; 00132 virtual bool setParmRecord(int parmIndex, 00133 const DtIntercomGroupAsgmtRec& init); 00134 virtual bool getParmRecord(int parmIndex, 00135 DtIntercomGroupAsgmtRec& record) const; 00136 00138 virtual void printData() const; 00139 00141 virtual void printDataToStream(std::ostream& stream) const; 00142 00143 public: 00144 00147 static DtPdu* create(const DtNetPacket* initial, 00148 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00149 00152 static void addCallback(DtExerciseConn* conn, 00153 DtIntercomControlPduCb cb, void* usr); 00154 static void removeCallback(DtExerciseConn* conn, 00155 DtIntercomControlPduCb cb, void* usr); 00156 00157 protected: 00158 00160 virtual DtPduKind internalGetPduKind() const; 00161 00163 virtual DtNetIntercomControlPdu* netPduStruct() const; 00164 00167 DtIntercomControlPdu* self() const; 00168 00170 virtual char* var() const; 00171 00173 virtual int recordOffset(int recordIndex) const; 00174 00176 virtual void resizeRecord(DtNetIntercomParmRec* rec, int newSize); 00177 00178 protected: 00179 00181 static const int theStaticSize; 00182 00183 protected: 00184 00186 int myNumParmRecords; 00187 00189 DtEntityIdentifier myEntityID; 00190 00191 }; 00192 00193 #endif 00194 #endif 00195