12 #include <legionStandardOM/sets/readRadioTransmitterRepository.hpp>
13 #include <legionStandardOM/sets/writeRadioTransmitterRepository.hpp>
14 #include <matrix/vlVector.h>
15 #include <vlpi/entityType.h>
36 : myAntennaPatternType(0)
37 , myPseudoNoiseInUse(false)
38 , myTimeHopInUse(false)
39 , myModulationParams(0)
40 , myModulationParamsSize(0)
46 : myWorldAntennaLoc(orig.myWorldAntennaLoc)
47 , myRelativeAntennaLoc(orig.myRelativeAntennaLoc)
48 , myAntennaPatternType(orig.myAntennaPatternType)
49 , myPseudoNoiseInUse(orig.myPseudoNoiseInUse)
50 , myTimeHopInUse(orig.myTimeHopInUse)
51 , myModulationParams(0)
52 , myModulationParamsSize(0)
53 , myRadioId(orig.myRadioId)
65 if (myModulationParams)
67 free(myModulationParams);
80 if (myModulationParams)
82 free(myModulationParams);
83 myModulationParams = 0;
84 myModulationParamsSize = 0;
104 const
char* modulationParams()
const {
return myModulationParams; };
109 if (myModulationParams)
111 free(myModulationParams);
112 myModulationParamsSize = 0;
117 myModulationParams = (
char*)malloc(l);
118 memcpy(myModulationParams, p, l);
119 myModulationParamsSize = l;
152 virtual const
unsigned long long frequency()
const {
throw DtUnimplementedMethod(
"The const frequency() method is unimplemented"); };
161 virtual const
unsigned long long streamTag()
const {
throw DtUnimplementedMethod(
"The const streamTag() method is unimplemented"); };
178 virtual
void setModulationParams(const
char* params,
unsigned char length) {
throw DtUnimplementedMethod(
"The const setModulationParams() method is unimplemented"); };
193 const DtUUID hostId()
const;
195 const unsigned int transmitState()
const;
196 void setTransmitState(
const unsigned int&);
198 const unsigned int& antennaPatternType()
const;
199 void setAntennaPatternType(
const unsigned int&);
201 const UInt64 radioId()
const;
202 void setRadioId(
const UInt64&);
207 const unsigned long long frequency()
const;
208 void setFrequency(
unsigned long long);
210 const unsigned long streamTagUpper()
const;
211 const unsigned long streamTagLower()
const;
212 const unsigned long long streamTag()
const;
213 void setStreamTag(
unsigned long u,
unsigned long l);
214 void setStreamTag(
unsigned long long tag);
216 const float power()
const;
217 void setPower(
const float&);
219 const char* modulationParams()
const;
220 const unsigned char& modulationParamsSize()
const;
221 void setModulationParams(
const char* params,
unsigned char length);
223 const DtVector& relativeAntennaLoc()
const;
224 void setRelativeAntennaLoc(
const DtVector&);
226 const DtVector& worldAntennaLoc()
const;
227 void setWorldAntennaLoc(
const DtVector&);
229 const DtVector relativePosition()
const;
230 void setRelativePosition(
const DtVector&);
232 const unsigned int inputSource()
const;
233 void setInputSource(
const unsigned int&);
235 const unsigned int cryptoKey()
const;
236 void setCryptoKey(
const unsigned int&);
238 const unsigned int cryptoMode()
const;
239 void setCryptoMode(
const unsigned int&);
241 const unsigned int cryptoSystem()
const;
242 void setCryptoSystem(
const unsigned int&);
244 const unsigned int majorModulationType()
const;
245 void setMajorModulationType(
const unsigned int&);
247 const unsigned int modulationSystemType()
const;
248 void setModulationSystemType(
const unsigned int&);
250 const unsigned int detailedModulationType()
const;
251 void setDetailedModulationType(
const unsigned int&);
253 const float frequencyBandwidth()
const;
254 void setFrequencyBandwidth(
const float&);
256 const bool frequencyHopInUse()
const;
257 void setFrequencyHopInUse(
const bool&);
259 const bool& pseudoNoiseInUse()
const;
260 void setPseudoNoiseInUse(
const bool&);
262 const bool& timeHopInUse()
const;
263 void setTimeHopInUse(
const bool&);
266 virtual void makeWritable();
269 virtual void makeReadOnly();
274 Legion::WriteStateInstance writeStateInstance()
override;
275 virtual void updateStateData(
DtStateData*)
override;
277 void cleanupWriteState();
279 void setPublishingOnLegionNetwork(
bool b);
297 const DtUUID hostId()
const;
298 const unsigned int transmitState()
const;
300 const unsigned long long frequency()
const;
301 const unsigned long long streamTag()
const;
302 const unsigned long streamTagUpper()
const;
303 const unsigned long streamTagLower()
const;
304 const float power()
const;
305 const DtVector& worldAntennaLoc()
const;
306 const DtVector& relativeAntennaLoc()
const;
307 const DtVector relativePosition()
const;
308 const unsigned int inputSource()
const;
309 const unsigned int& antennaPatternType()
const;
310 const UInt64 radioId()
const;
311 const unsigned int cryptoKey()
const;
312 const unsigned int cryptoMode()
const;
313 const unsigned int cryptoSystem()
const;
314 const unsigned int detailedModulationType()
const;
315 const float frequencyBandwidth()
const;
316 const bool frequencyHopInUse()
const;
317 const bool& pseudoNoiseInUse()
const;
318 const bool& timeHopInUse()
const;
319 const unsigned int majorModulationType()
const;
320 const unsigned int modulationSystemType()
const;
321 const char* modulationParams()
const;
322 const unsigned char& modulationParamsSize()
const;
324 bool readComponentValid()
const;
325 bool findReadComponent();
326 Legion::ReadStateInstance readStateInstance()
const override;
330 virtual void updateStateData(
DtStateData*)
override;
359 if (!myFoundComponent)
361 myFoundComponent = myCurrentFrameState.findReadComponent();
364 if (myNextFrameState.isWritable())
366 myCurrentFrameState.advanceFrame(myNextFrameState.frameState());
369 myCurrentFrameState.emitComponentUpdated();
374 myCurrentFrameState.updateStateData(sd);
375 myNextFrameState.updateStateData(sd);
379 virtual bool forceAdvance();
382 virtual void firstFrameAdvance()
override;
387 myCurrentFrameState.aboutToBeDeleted();
388 myNextFrameState.aboutToBeDeleted();
391 virtual void completeSetup()
override;
392 virtual void removeAdditionalStateComponents()
override;
393 virtual void setPublishingOnLegionNetwork(
bool b)
override;
Definition: radioTransmitterStateComponent.h:27
UUID is a unique ID wrapper class.
Definition: rwUUID.h:226
DtRadioTransmitterStateComponentCurrentFrame myCurrentFrameState
Definition: radioTransmitterStateComponent.h:396
Definition: radioTransmitterStateComponent.h:24
Definition: stateDataTypes.h:23
virtual void aboutToBeDeleted() override
Definition: radioTransmitterStateComponent.h:384
3) Define the current frame class. This will be used for read access.
Definition: radioTransmitterStateComponent.h:289
bool isDoubleBuffered()
Definition: radioTransmitterStateComponent.h:352
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: radioTransmitterStateComponent.h:139
CryptoSystem
Definition: radioStateTypes.h:18
DtRadioTransmitterStateComponentData & frameState()
Definition: radioTransmitterStateComponent.h:191
Definition: radioTransmitterStateComponent.h:19
const DtFrameStateInterface * currentFrameState() const
Definition: radioTransmitterStateComponent.h:353
virtual void setFrequency(unsigned long long)
Definition: radioTransmitterStateComponent.h:153
const DtRadioTransmitterStateComponentData & frameState() const
Current frame state only can access current frame buffers. This ensures thread safety.
Definition: radioTransmitterStateComponent.h:295
virtual void setStreamTag(unsigned long long)
Definition: radioTransmitterStateComponent.h:163
Definition: stateComponent.h:257
virtual const DtFrameStateInterface * nextFrameState() const
Definition: radioTransmitterStateComponent.h:355
Definition: radioTransmitterStateComponent.h:30
ModulationSystemType
Definition: radioStateTypes.h:29
virtual DtFrameStateInterface * nextFrameState()
Definition: radioTransmitterStateComponent.h:354
Definition: radioTransmitterStateComponent.h:31
#define UNDEFINED_RETURNVALUE_ACCESSOR(ReturnType, Member)
Definition: doubleBufferedDataStorage.h:31
TransmitState
Definition: radioStateTypes.h:34
DtRadioTransmitterStateComponentNextFrame myNextFrameState
Definition: radioTransmitterStateComponent.h:397
Contains the DtUUID class declaration.
#define UNDEFINED_RETURNREF_ACCESSOR(ReturnType, Member)
Definition: doubleBufferedDataStorage.h:34
unsigned int myAntennaPatternType
Definition: radioTransmitterStateComponent.h:129
InputSource
Definition: radioStateTypes.h:20
2) Define the next frame class. This will be used for write access.
Definition: radioTransmitterStateComponent.h:182
char * myModulationParams
Definition: radioTransmitterStateComponent.h:124
Definition: radioTransmitterStateComponent.h:25
Definition: radioTransmitterStateComponent.h:23
UInt64 myRadioId
Definition: radioTransmitterStateComponent.h:134
LOM::WriteRadioTransmitterRepository myWriteRadioTransmitterRepository
Definition: radioTransmitterStateComponent.h:283
Definition: stateComponent.h:85
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:336
#define DEFINE_STATE_COMPONENT_TYPE(CreatedComponent)
Definition: stateComponent.h:219
const unsigned char & modulationParamsSize() const
Definition: radioTransmitterStateComponent.h:105
CryptoMode
Definition: radioStateTypes.h:17
bool myPseudoNoiseInUse
Definition: radioTransmitterStateComponent.h:131
Subclass from this to indicate that this will be a double buffered state component.
Definition: stateComponent.h:365
void setModulationParams(const char *p, unsigned char l)
Definition: radioTransmitterStateComponent.h:107
#define UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:53
DtVector myRelativeAntennaLoc
Definition: radioTransmitterStateComponent.h:128
unsigned char myModulationParamsSize
Definition: radioTransmitterStateComponent.h:125
virtual void aboutToBeDeleted()
DtStateData * myStateData
Definition: radioTransmitterStateComponent.h:284
virtual ~DtRadioTransmitterStateComponentData()
Definition: radioTransmitterStateComponent.h:63
DtStateComponentCreator< DtRadioTransmitterStateComponentImplementation > DtRadioTransmitterStateComponentCreator
5) Define the creator. This will need to be registered with the REGISTER_STATE_COMPONENT macro in the...
Definition: radioTransmitterStateComponent.h:403
DtVector myWorldAntennaLoc
Definition: radioTransmitterStateComponent.h:127
#define UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:57
#define DEFINE_ACCESSOR_MUTATOR(ReturnType, Accessor, Mutator)
Definition: doubleBufferedDataStorage.h:23
DtRadioTransmitterStateComponentData()
Definition: radioTransmitterStateComponent.h:35
bool myFoundComponent
Definition: radioTransmitterStateComponent.h:398
RadioInputSource
Definition: radioTransmitterStateComponent.h:21
bool myPublishingOnLegionNetwork
Definition: radioTransmitterStateComponent.h:282
Definition: radioTransmitterStateComponent.h:28
void updateStateData(DtStateData *sd)
Implement to update data storage to the new state data.
Definition: radioTransmitterStateComponent.h:372
DtRadioTransmitterStateComponentData & operator=(const DtRadioTransmitterStateComponentData &orig)
Definition: radioTransmitterStateComponent.h:71
virtual void setStreamTag(unsigned long u, unsigned long l)
Definition: radioTransmitterStateComponent.h:162
4) Define the state component that will contain the wrappers to the next and current frame states tha...
Definition: radioTransmitterStateComponent.h:347
DtRadioTransmitterStateComponentData(const DtRadioTransmitterStateComponentData &orig)
Definition: radioTransmitterStateComponent.h:45
void advanceFrame(const DtRadioTransmitterStateComponentData &data)
Definition: radioTransmitterStateComponent.h:334
void updateDataStorage()
Implement to update data storage. Called from advanceFrame.
Definition: radioTransmitterStateComponent.h:357
#define DT_DLL_vrfStateData
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfStateDataDefines.h:26
DtRadioTransmitterStateComponentData myData
Definition: radioTransmitterStateComponent.h:342
DtRadioTransmitterStateComponentData myData
Definition: radioTransmitterStateComponent.h:285
Definition: radioTransmitterStateComponent.h:29
AntennaPatternType
Definition: radioStateTypes.h:15
Definition: radioTransmitterStateComponent.h:26
Contains the DtStateComponent class declaration.
const DtRadioTransmitterStateComponentData & frameState() const
Next frame access write access. Ensure this is only used in a single thread (i.e.a controller thread)...
Definition: radioTransmitterStateComponent.h:190
DtStateData * myStateData
Definition: radioTransmitterStateComponent.h:341
bool myTimeHopInUse
Definition: radioTransmitterStateComponent.h:132
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:282
LOM::ReadRadioTransmitterRepository myReadRadioTransmitterRepository
Definition: radioTransmitterStateComponent.h:340