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(nullptr)
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(nullptr)
52 , myModulationParamsSize(0)
53 , myRadioId(orig.myRadioId)
65 if (myModulationParams)
67 free(myModulationParams);
80 if (myModulationParams)
82 free(myModulationParams);
83 myModulationParams =
nullptr;
84 myModulationParamsSize = 0;
104 const
char* modulationParams()
const {
return myModulationParams; };
109 if (myModulationParams)
111 free(myModulationParams);
112 myModulationParamsSize = 0;
113 myModulationParams =
nullptr;
118 myModulationParams = (
char*)malloc(l);
119 memcpy(myModulationParams, p, l);
120 myModulationParamsSize = l;
153 virtual const
unsigned long long frequency()
const {
throw DtUnimplementedMethod(
"The const frequency() method is unimplemented"); };
162 virtual const
unsigned long long streamTag()
const {
throw DtUnimplementedMethod(
"The const streamTag() method is unimplemented"); };
179 virtual
void setModulationParams(const
char* params,
unsigned char length) {
throw DtUnimplementedMethod(
"The const setModulationParams() method is unimplemented"); };
194 virtual const DtUUID hostId()
const override;
196 virtual const unsigned int transmitState()
const override;
197 virtual void setTransmitState(
const unsigned int&)
override;
199 virtual const unsigned int& antennaPatternType()
const override;
200 virtual void setAntennaPatternType(
const unsigned int&)
override;
202 virtual const UInt64 radioId()
const override;
203 virtual void setRadioId(
const UInt64&)
override;
208 virtual const unsigned long long frequency()
const override;
209 virtual void setFrequency(
unsigned long long)
override;
211 virtual const unsigned long streamTagUpper()
const override;
212 virtual const unsigned long streamTagLower()
const override;
213 virtual const unsigned long long streamTag()
const override;
214 virtual void setStreamTag(
unsigned long u,
unsigned long l)
override;
215 virtual void setStreamTag(
unsigned long long tag)
override;
217 virtual const float power()
const override;
218 virtual void setPower(
const float&)
override;
220 virtual const char* modulationParams()
const override;
221 virtual const unsigned char& modulationParamsSize()
const override;
222 virtual void setModulationParams(
const char* params,
unsigned char length)
override;
224 virtual const DtVector& relativeAntennaLoc()
const override;
225 virtual void setRelativeAntennaLoc(
const DtVector&)
override;
227 virtual const DtVector& worldAntennaLoc()
const override;
228 virtual void setWorldAntennaLoc(
const DtVector&)
override;
230 virtual const DtVector relativePosition()
const override;
231 virtual void setRelativePosition(
const DtVector&)
override;
233 virtual const unsigned int inputSource()
const override;
234 virtual void setInputSource(
const unsigned int&)
override;
236 virtual const unsigned int cryptoKey()
const override;
237 virtual void setCryptoKey(
const unsigned int&)
override;
239 virtual const unsigned int cryptoMode()
const override;
240 virtual void setCryptoMode(
const unsigned int&)
override;
242 virtual const unsigned int cryptoSystem()
const override;
243 virtual void setCryptoSystem(
const unsigned int&)
override;
245 virtual const unsigned int majorModulationType()
const override;
246 virtual void setMajorModulationType(
const unsigned int&)
override;
248 virtual const unsigned int modulationSystemType()
const override;
249 virtual void setModulationSystemType(
const unsigned int&)
override;
251 virtual const unsigned int detailedModulationType()
const override;
252 virtual void setDetailedModulationType(
const unsigned int&)
override;
254 virtual const float frequencyBandwidth()
const override;
255 virtual void setFrequencyBandwidth(
const float&)
override;
257 virtual const bool frequencyHopInUse()
const override;
258 virtual void setFrequencyHopInUse(
const bool&)
override;
260 virtual const bool& pseudoNoiseInUse()
const override;
261 virtual void setPseudoNoiseInUse(
const bool&)
override;
263 virtual const bool& timeHopInUse()
const override;
264 virtual void setTimeHopInUse(
const bool&)
override;
267 virtual void makeWritable()
override;
270 virtual void makeReadOnly()
override;
275 virtual Legion::WriteStateInstance writeStateInstance()
override;
276 virtual void updateStateData(
DtStateData*)
override;
278 void cleanupWriteState();
280 void setPublishingOnLegionNetwork(
bool b);
297 virtual const DtUUID hostId()
const override;
298 virtual const unsigned int transmitState()
const override;
300 virtual const unsigned long long frequency()
const override;
301 virtual const unsigned long long streamTag()
const override;
302 virtual const unsigned long streamTagUpper()
const override;
303 virtual const unsigned long streamTagLower()
const override;
304 virtual const float power()
const override;
305 virtual const DtVector& worldAntennaLoc()
const override;
306 virtual const DtVector& relativeAntennaLoc()
const override;
307 virtual const DtVector relativePosition()
const override;
308 virtual const unsigned int inputSource()
const override;
309 virtual const unsigned int& antennaPatternType()
const override;
310 virtual const UInt64 radioId()
const override;
311 virtual const unsigned int cryptoKey()
const override;
312 virtual const unsigned int cryptoMode()
const override;
313 virtual const unsigned int cryptoSystem()
const override;
314 virtual const unsigned int detailedModulationType()
const override;
315 virtual const float frequencyBandwidth()
const override;
316 virtual const bool frequencyHopInUse()
const override;
317 virtual const bool& pseudoNoiseInUse()
const override;
318 virtual const bool& timeHopInUse()
const override;
319 virtual const unsigned int majorModulationType()
const override;
320 virtual const unsigned int modulationSystemType()
const override;
321 virtual const char* modulationParams()
const override;
322 virtual const unsigned char& modulationParamsSize()
const override;
324 bool readComponentValid()
const;
325 bool findReadComponent();
326 virtual Legion::ReadStateInstance readStateInstance()
const override;
330 virtual void updateStateData(
DtStateData*)
override;
358 if (!myFoundComponent)
360 myFoundComponent = myCurrentFrameState.findReadComponent();
363 if (myNextFrameState.isWritable())
365 myCurrentFrameState.advanceFrame(myNextFrameState.frameState());
368 myCurrentFrameState.emitComponentUpdated();
373 myCurrentFrameState.updateStateData(sd);
374 myNextFrameState.updateStateData(sd);
378 virtual bool forceAdvance()
override;
381 virtual void firstFrameAdvance()
override;
386 myCurrentFrameState.aboutToBeDeleted();
387 myNextFrameState.aboutToBeDeleted();
390 virtual void completeSetup()
override;
391 virtual void removeAdditionalStateComponents()
override;
392 virtual void setPublishingOnLegionNetwork(
bool b)
override;
Definition: radioTransmitterStateComponent.h:27
UUID is a unique ID wrapper class.
Definition: uuid.h:59
DtRadioTransmitterStateComponentCurrentFrame myCurrentFrameState
Definition: radioTransmitterStateComponent.h:395
Definition: radioTransmitterStateComponent.h:24
Definition: stateDataTypes.h:23
virtual void aboutToBeDeleted() override
Definition: radioTransmitterStateComponent.h:383
3) Define the current frame class. This will be used for read access.
Definition: radioTransmitterStateComponent.h:289
bool isDoubleBuffered()
Definition: radioTransmitterStateComponent.h:351
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:140
CryptoSystem
Definition: radioStateTypes.h:18
DtRadioTransmitterStateComponentData & frameState()
Definition: radioTransmitterStateComponent.h:192
Definition: radioTransmitterStateComponent.h:19
virtual void setFrequency(unsigned long long)
Definition: radioTransmitterStateComponent.h:154
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:164
Definition: stateComponent.h:269
Definition: radioTransmitterStateComponent.h:30
ModulationSystemType
Definition: radioStateTypes.h:29
Definition: radioTransmitterStateComponent.h:31
virtual DtFrameStateInterface * nextFrameState() override
Definition: radioTransmitterStateComponent.h:353
#define UNDEFINED_RETURNVALUE_ACCESSOR(ReturnType, Member)
Definition: doubleBufferedDataStorage.h:31
TransmitState
Definition: radioStateTypes.h:34
DtRadioTransmitterStateComponentNextFrame myNextFrameState
Definition: radioTransmitterStateComponent.h:396
Contains the DtUUID class declaration.
unsigned long long UInt64
Definition: stateDataTypes.h:17
#define UNDEFINED_RETURNREF_ACCESSOR(ReturnType, Member)
Definition: doubleBufferedDataStorage.h:34
unsigned int myAntennaPatternType
Definition: radioTransmitterStateComponent.h:130
InputSource
Definition: radioStateTypes.h:20
2) Define the next frame class. This will be used for write access.
Definition: radioTransmitterStateComponent.h:183
char * myModulationParams
Definition: radioTransmitterStateComponent.h:125
virtual void updateStateData(DtStateData *sd) override
Implement to update data storage to the new state data.
Definition: radioTransmitterStateComponent.h:371
Definition: radioTransmitterStateComponent.h:25
Definition: radioTransmitterStateComponent.h:23
UInt64 myRadioId
Definition: radioTransmitterStateComponent.h:135
LOM::WriteRadioTransmitterRepository myWriteRadioTransmitterRepository
Definition: radioTransmitterStateComponent.h:284
Definition: stateComponent.h:90
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
#define DEFINE_STATE_COMPONENT_TYPE(CreatedComponent)
Definition: stateComponent.h:231
const unsigned char & modulationParamsSize() const
Definition: radioTransmitterStateComponent.h:105
CryptoMode
Definition: radioStateTypes.h:17
bool myPseudoNoiseInUse
Definition: radioTransmitterStateComponent.h:132
Subclass from this to indicate that this will be a double buffered state component.
Definition: stateComponent.h:384
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:129
unsigned char myModulationParamsSize
Definition: radioTransmitterStateComponent.h:126
virtual void aboutToBeDeleted()
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:402
DtVector myWorldAntennaLoc
Definition: radioTransmitterStateComponent.h:128
#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:397
RadioInputSource
Definition: radioTransmitterStateComponent.h:21
bool myPublishingOnLegionNetwork
Definition: radioTransmitterStateComponent.h:283
Definition: radioTransmitterStateComponent.h:28
DtRadioTransmitterStateComponentData & operator=(const DtRadioTransmitterStateComponentData &orig)
Definition: radioTransmitterStateComponent.h:71
virtual const DtFrameStateInterface * currentFrameState() const override
Definition: radioTransmitterStateComponent.h:352
virtual void setStreamTag(unsigned long u, unsigned long l)
Definition: radioTransmitterStateComponent.h:163
DT_DLL_VRVCORE double length(const makVrv::DtCoordinateSystem &, const std::vector< DtVector > &vertices)
Returns the total distance of a segmented line defined by the provided vector of vertices. Coordinates are in local database coordinates. The coordinate system is used to convert between the local database coordinates and geocentric. All distance is in 2D – the Z value is ignored.
virtual void updateDataStorage() override
Implement to update data storage. Called from advanceFrame.
Definition: radioTransmitterStateComponent.h:356
4) Define the state component that will contain the wrappers to the next and current frame states tha...
Definition: radioTransmitterStateComponent.h:346
virtual const DtFrameStateInterface * nextFrameState() const override
Definition: radioTransmitterStateComponent.h:354
DtRadioTransmitterStateComponentData(const DtRadioTransmitterStateComponentData &orig)
Definition: radioTransmitterStateComponent.h:45
void advanceFrame(const DtRadioTransmitterStateComponentData &data)
Definition: radioTransmitterStateComponent.h:334
#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:341
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:191
bool myTimeHopInUse
Definition: radioTransmitterStateComponent.h:133
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:294
LOM::ReadRadioTransmitterRepository myReadRadioTransmitterRepository
Definition: radioTransmitterStateComponent.h:340