VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
intercomControlPdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2013 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
9 
10 #pragma once
11 
12 #if DtDIS
13 
14 #include <vlutil/vlMachineTypes.h>
15 #include "hostStructs.h"
16 #include "interactionDIS.h"
17 #include "exerciseConn.h"
18 
19 #include "packets/intercmCtlP.h"
20 
21 #include "intercomParmRec.h"
22 #include "intercomEntityDestRec.h"
23 #include "intercomGroupAsgmtRec.h"
24 #include "intercomGroupDestRec.h"
25 
26 
27 
29 
31 typedef void (*DtIntercomControlPduCb)(DtIntercomControlPdu* pdu, void* usr);
32 
33 
38 {
39 
40 public:
41 
45  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
47 
49  virtual ~DtIntercomControlPdu();
50 
53 
55  virtual void setControlType(DtIntercomCtlType controlType);
56  virtual DtIntercomCtlType controlType() const;
57 
59  virtual void setCommClass(DtIntercomCommClass commClass);
60  virtual DtIntercomCommClass commClass() const;
61 
63  virtual void setCommType(DtIntercomCommType commType);
64  virtual DtIntercomCommType commType() const;
65 
67  virtual void setSourceEntityID(const DtEntityIdentifier& entity);
68  virtual const DtEntityIdentifier& sourceEntityID() const;
69 
71  virtual void setSourceDeviceID(DtU16 deviceID);
72  virtual DtU16 sourceDeviceID() const;
73 
75  virtual void setSourceLineID(DtU8 lineID);
76  virtual DtU8 sourceLineID() const;
77 
79  virtual void setTransmitPriority(DtU8 transmitPriority);
80  virtual DtU8 transmitPriority() const;
81 
83  virtual void setTransmitLineState(DtIntercomTransLineState lineState);
84  virtual DtIntercomTransLineState transmitLineState() const;
85 
87  virtual void setCmdType(DtIntercomCmdType cmdType);
88  virtual DtIntercomCmdType cmdType() const;
89 
91  virtual void setMasterEntityID(const DtEntityIdentifier& entity);
92  virtual const DtEntityIdentifier& masterEntityID() const;
93 
95  virtual void setMasterDeviceID(DtU16 deviceID);
96  virtual DtU16 masterDeviceID() const;
97 
99  virtual void setMasterChannelID(DtU16 channelID);
100  virtual DtU16 masterChannelID() const;
101 
104  virtual DtU32 parmRecordsLength() const;
105 
109  virtual bool setNumParmRecords(int numRecords);
110  virtual int numParmRecords() const;
111 
114  virtual bool getRecordType(int parmIndex,
115  DtIntercomCtlRecType& recordType) const;
116 
123  virtual bool setParmRecord(int parmIndex,
124  const DtIntercomEntityDestRec& init);
125  virtual bool getParmRecord(int parmIndex,
126  DtIntercomEntityDestRec& record) const;
127  virtual bool setParmRecord(int parmIndex,
128  const DtIntercomGroupDestRec& init);
129  virtual bool getParmRecord(int parmIndex,
130  DtIntercomGroupDestRec& record) const;
131  virtual bool setParmRecord(int parmIndex,
132  const DtIntercomGroupAsgmtRec& init);
133  virtual bool getParmRecord(int parmIndex,
134  DtIntercomGroupAsgmtRec& record) const;
135 
137  virtual void printData() const;
138 
140  virtual void printDataToStream(std::ostream& stream) const;
141 
142 public:
143 
146  static DtPdu* create(const DtNetPacket* initial,
147  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
148 
151  static void addCallback(DtExerciseConn* conn,
152  DtIntercomControlPduCb cb, void* usr);
153  static void removeCallback(DtExerciseConn* conn,
154  DtIntercomControlPduCb cb, void* usr);
155 
156 protected:
157 
159  virtual DtPduKind internalGetPduKind() const;
160 
162  virtual DtNetIntercomControlPdu* netPduStruct() const;
163 
166  DtIntercomControlPdu* self() const;
167 
169  virtual char* var() const;
170 
172  virtual int recordOffset(int recordIndex) const;
173 
175  virtual void resizeRecord(DtNetIntercomParmRec* rec, int newSize);
176 
177 protected:
178 
180  static const int theStaticSize;
181 
182 protected:
183 
186 
189 
190 };
191 
192 #endif
DtInteraction is an base class for representing DIS PDUs which don&#39;t have state.
Definition: interactionDIS.h:24
DtIntercomTransLineState
Definition: disEnums.h:1991
DtIntercomCommClass
Definition: disEnums.h:1966
Instances of DtIntercomGroupDestRec are used to contain the information in the group destination para...
Definition: intercomGroupDestRec.h:27
int myNumParmRecords
Number of parameter records in this PDU.
Definition: intercomControlPdu.h:185
DtIntercomCmdType
Definition: disEnums.h:1980
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnDIS.h:61
DtInteraction & operator=(const DtInteraction &orig)
assignment operator
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
void(* DtIntercomControlPduCb)(DtIntercomControlPdu *pdu, void *usr)
DtIntercomControlPdu callback function signature.
Definition: intercomControlPdu.h:31
DtIntercomCtlType
DMO enums used by 2.1.4 PDUs.
Definition: disEnums.h:1957
Definition: pduHeader.h:14
Instances of DtIntercomControlPdu are used to communicate state information for simulated intercom de...
Definition: intercomControlPdu.h:37
class DtPduFactory:
Definition: pduFactory.h:38
This file declares classes related to intercom messages.
virtual void printDataToStream(std::ostream &stream) const
Instances of DtIntercomEntityDestRec are used to contain the information in the entity destination pa...
Definition: intercomEntityDestRec.h:27
Instances of DtIntercomGroupAsgmtRec are used to contain the information in the group assignment para...
Definition: intercomGroupAsgmtRec.h:28
The following are the network structures for the parameter records and base class for the parameter r...
Definition: intercmCtlP.h:23
virtual DtPduKind internalGetPduKind() const =0
Returns the PDU kind associated with the derived PDU class.
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
unsigned char DtU8
An eight bit unsigned integer value.
Definition: vlMachineTypes.h:137
DtEntityIdentifier myEntityID
Temporary object for reference returns.
Definition: intercomControlPdu.h:188
DtNetIntercomControlPdu is the network structure for the intercom control PDU.
Definition: intercmCtlP.h:61
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
This file provides protocol to independence DtExerciseConn.
DtIntercomCommType
Definition: disEnums.h:1972
virtual void printData() const
Print the PDU&#39;s data (not including header).
DtIntercomCtlRecType
Definition: disEnums.h:2006
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
static const int theStaticSize
Size of PDU with zero parameter records.
Definition: intercomControlPdu.h:180
unsigned long DtU32
A 32 bit unsigned integer value.
Definition: vlMachineTypes.h:153
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
This file contains typedefs for machine dependant types.

Document ID: Generated on Mon Apr 25 03:39:01 EDT 2022 from SVN revision 242502
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)