VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfSimOptions.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 /*******************************************************************************
7 ** Modify this class to add options that you can use to set up
8 ** initial simulation state. This object is used exclusively by the
9 ** DtVrfApp class.
10 *******************************************************************************/
11 
12 #pragma once
13 
17 
18 #include <vlutil/vlMachineTypes.h>
19 #include <vlutil/vlFilename.h>
20 #include <mtl/configVariable.h>
21 #include <mtl/multiConfigVariable.h>
22 #include <mtl/mtlEnvironment.h>
23 
25 
26 namespace makVrf
27 {
28  class DT_DLL_vrlinkNetworkInterface DtVrfSimOptions
31  {
32  public:
34  DtVrfSimOptions(int argc, char** argv, const char* appName, const char* appVersion);
35 
37  virtual ~DtVrfSimOptions();
38 
41  virtual bool readConfigurationFile(const DtFilename& mtlFile);
42 
43  public:
45  virtual DtFloat64 entVrfDataTimeThreshold() const;
46 
48  virtual double rotationThreshold() const;
49 
51  virtual double translationThreshold() const;
52 
54  virtual double aggDimensionThreshold() const;
55 
58  virtual void setPublishZeroVelocityWhenPaused(bool);
59  virtual bool publishZeroVelocityWhenPaused() const;
60 
64  virtual void setSetDeadReckoningAlgorithmToStaticOnPause(bool);
65  virtual bool setDeadReckoningAlgorithmToStaticOnPause() const;
66 
67  virtual void setSendMessagesInNetworkProcess(bool);
68  virtual bool sendMessagesInNetworkProcess() const;
69 
70  virtual void setSelfReflect(bool use);
71  virtual bool selfReflect() const;
72 
75  virtual void setNumNetworkCallbackThreads(unsigned n);
76  virtual unsigned numNetworkCallbackThreads() const;
77 
79  virtual bool useAbsoluteTimeStamps() const;
80 
81  #if DtDIS
82  virtual std::vector<DtString> additionalDestinationAddresses() const;
83 
85  virtual void setAdditionalDestinationAddresses(const DtString& addresses);
86 
88  virtual void setAdditionalDestinationAddresses(const std::vector<DtString>& addresses);
89  #endif
90 
91  virtual void setTaskVisualizationPublicationMode(short state);
92  virtual short taskVisualizationPublicationMode() const;
93 
94  virtual void setUseDrawControlForTaskVisualizations(bool);
95  virtual bool useDrawControlForTaskVisualizations() const;
96 
103  virtual void setNonVrfObjectsUUIDScheme(const DtString&);
104  virtual DtString nonVrfObjectsUUIDScheme() const;
106 
108  virtual int statusUpdateHeartbeat() const;
109 
110  virtual bool connectionless() const;
111  virtual bool disableRemoteDiscovery() const;
112 
116  virtual DtFilename simulationModelSetFilename() const;
117 
119  virtual bool forceParameterDbReload() const;
120 
126  virtual void setTargetFrameRate(int rate);
127  virtual int targetFrameRate() const;
129 
131  virtual int clockMode() const;
132 
135  virtual void setDefaultParameterDatabasePath(const DtFilename& path);
136  virtual const DtFilename& defaultParameterDatabasePath() const;
137 
140  virtual void setDefaultTerrainDatabasePath(const DtFilename& path);
141  virtual const DtFilename& defaultTerrainDatabasePath() const;
142 
144  virtual DtFilename diGuyCharacterDataFile() const;
145 
147  virtual DtFilename diGuyAnimationsFile() const;
148 
151  virtual bool logFrameRateStats() const;
152  virtual void setLogFrameRateStats(bool yesOrNo);
153 
155  virtual void setRejectMismatchedScenarioMessages(bool);
156  virtual bool rejectMismatchedScenarioMessages() const;
157 
158  virtual bool enableNavigationLabDebugging() const;
159  virtual void setEnableNavigationLabDebugging(bool enable);
160 
161  virtual int sessionId() const;
162  virtual int appIdRangeMax() const;
163  virtual void setAppIdRangeMax(int);
164  virtual DtFilename batchFile() const;
165  virtual DtFilename scenarioFile() const;
166  virtual DtFilename terrainFile() const;
167 
168  virtual int frontEndProcessId() const;
169 
170  virtual void setStartInRunMode(bool);
171  virtual bool startInRunMode() const;
172 
173  #ifdef WIN32
174  virtual void setDoNotUseConsole(bool);
175  virtual bool usingConsole() const;
176 
177  virtual void setStartMinimized(bool);
178  virtual bool startMinimized() const;
179  #endif
180 
181  virtual void setDaemonMode(bool);
182  virtual bool daemonMode() const;
183 
184  #if DtHLA
185  virtual bool runInTimeManagementMode() const;
187  virtual void setRunInTimeManagementMode(bool yesNo);
188 
189  virtual bool disableRequestUpdates() const;
190  virtual void setDisableRequestUpdates(bool yesNo);
191  #elif DtDIS
192  virtual double heartbeatVariance() const;
193  virtual void setHeartbeatVariance(double variance);
194  #endif
195 
196  virtual void setReuseEntityIdentifiersOnScenarioLoad(bool);
197  virtual bool reuseEntityIdentifiersOnScenarioLoad() const;
198 
200  virtual void parseCmdLine();
201 
202  virtual short simMgmtPduProcessLevel() const;
203 
204  virtual int cgfDispatcherReceivePort() const;
205  virtual void setCgfDispatcherReceivePort(int port);
206 
208  virtual int tracyPort() const;
209  virtual bool tracyPortSet() const;
210  virtual void setTracyPort(int port);
211 
213  const std::vector<std::string>& pluginsToLoad() const;
214 
215  virtual void setLoadPluginIfVersionMismatch(bool);
216  virtual bool loadPluginIfVersionMismatch() const;
217 
218  virtual void setPluginsDirectory(const DtFilename&);
219  virtual const DtFilename& pluginsDirectory() const;
220 
221  virtual DtString additionalSystemScriptsDirectory() const;
222  virtual void setAdditionalSystemScriptsDirectory(const DtString&);
223 
225  virtual void setDoNotUsePluginsDirectory(bool b);
226  virtual bool doNotUsePluginsDirectory() const;
227 
229  virtual DtFilename outputFile() const;
230  virtual void setOutputFile(const DtFilename& s);
231 
233  virtual void setNotifyLevel(DtNotifyLevelType level);
235  virtual DtNotifyLevelType notifyLevel() const;
236 
241 
242  virtual void setSendBackendLogToNetwork(bool v);
243  virtual bool sendBackendLogToNetwork() const;
245 
247 
248  virtual void setFullyLoadTerrain(bool v);
249  virtual bool fullyLoadTerrain() const;
251 
254 
255  virtual void setAssertOnBlockingTerrainCalls(bool b);
256  virtual bool assertOnBlockingTerrainCalls() const;
258 
263 
264  virtual void setHostAddress(const DtString& address);
265  virtual DtString hostAddress() const;
267 
271 
272  virtual void setReportedHostAddress(const DtString& address);
273  virtual DtString reportedHostAddress() const;
275 
278  virtual void setAppDataDir(const DtString&);
279  virtual DtString appDataDir() const;
281 
283  virtual void setupSettingsDirectory(const DtFilename& f, bool useSharedSettingsDirectory);
284 
287  virtual void setSharedDataDir(const DtFilename&);
288  virtual DtFilename sharedDataDir() const;
290 
293  virtual bool isSharedDataDirSet() const;
295 
298  virtual void setSharedDataRoot(const DtFilename&);
299  virtual DtFilename sharedDataRoot() const;
301 
304  virtual bool isSharedDataRootSet() const;
306 
309  virtual void setSharedDataStem(const DtString&);
310  virtual DtString sharedDataStem() const;
312 
315  virtual bool isSharedDataStemSet() const;
317 
320  virtual void setDataDir(const DtString&);
321  virtual DtString dataDir() const;
323 
326  virtual bool isDataDirSet() const;
328 
331  virtual void setUserDataDir(const DtString&);
332  virtual DtString userDataDir() const;
334 
337  virtual bool isUserDataDirSet() const;
339 
341 
342  virtual void setMsdlSidcMappingFile(const DtString& address);
343  virtual DtFilename msdlSidcMappingFile() const;
345 
347 
348  virtual void setCountryCodesMappingFile(const DtString& address);
349  virtual DtFilename countryCodesMappingFile() const;
351 
353  virtual void outputMtl();
354 
355  virtual void setMainThreadWaitForQueue(bool enable);
356  virtual void setNumCallbackThreads(unsigned n);
357 
358  virtual void setDisableParallelTick(bool use);
359  virtual void setIssueSimExitOnFinishTestCommand(bool shouldExit);
360 
361  virtual void setEnableMetoc(bool enable);
362 
363  virtual bool mainThreadWaitForQueue() const;
364  virtual unsigned numCallbackThreads() const;
365  virtual bool disableParallelTick() const;
366  virtual bool enableMetoc() const;
367  virtual bool issueSimExitOnFinishTestCommand() const;
368 
369  virtual void setDisableParallelPublisherTick(bool);
370  virtual bool disableParallelPublisherTick() const;
371 
372  virtual void setTickPublishersDuringEntityTick(bool);
373  virtual bool tickPublishersDuringEntityTick() const;
374 
375  virtual DtFilename testLogFile() const;
376 
377  virtual void setGamewareMemorySize(int sizeInMb);
378  virtual int gamewareMemorySize() const;
379 
380  virtual void setGamewareQueryTimeBudget(double ms);
381  virtual double gamewareQueryTimeBudget() const;
382 
383  virtual void setRegenerateNavigationDataAtRuntime(bool v);
384  virtual bool regenerateNavigationDataAtRuntime() const;
385 
386  virtual void setMaxNavigationRegenerationThreads(int threads);
387  virtual int maxNavigationRegenerationThreads() const;
388 
389  virtual void setNumberOfNavQueueProcessingThreads(int threads);
390  virtual int numberOfNavQueueProcessingThreads() const;
391 
392  virtual void setNavigationRegenerationFileDirectory(const DtString& dir);
393  virtual DtFilename navigationRegenerationFileDirectory() const;
394 
395  virtual void setNavigationRegenerationDelay(double delay);
396  virtual double navigationRegenerationDelay() const;
397 
398  virtual void setEnableLogFileTimestamps(bool v);
399  virtual bool enableLogFileTimestamps() const;
400 
401  #if DtHLA
402  virtual void setUseSingleNetworkThreadWhenRtiThreadSafetyNotGuaranteed(bool v);
403  virtual bool useSingleNetworkThreadWhenRtiThreadSafetyNotGuaranteed() const;
404 
405  virtual void setExpectedLocalEntityCount(int v);
406  virtual int expectedLocalEntityCount() const;
407  #endif
408 
409  #ifdef WIN32
410  virtual void setMainThreadToHighPriority(bool);
412  #endif
413 
415  virtual std::vector<DtString> enabledChannels() const;
416 
420  virtual bool suppressDataAvailableException() const;
421  virtual void setSuppressDataAvailableException(bool);
423 
426  virtual bool enablePduProfiling(double& pduTime, int& numberOfPackets
427 #if DtDIS
428  , bool& includeSummary
429 #endif
430  ) const;
431 
432  DtApplicationSettings& settings() { return mySettings; };
433 
434  protected:
438  virtual void initializeMtlParams();
439 
442 
443  virtual void setVariablesFromMtl();
444  virtual void processStringList(std::vector<DtString>& v, const std::vector<DtString>& list) const;
445 
447  virtual void initPluginVariables();
448 
450  virtual void processPluginsDirectory(const DtFilename& directory);
451 
452  private:
454  DtVrfSimOptions(const DtVrfSimOptions& orig);
455 
457  DtVrfSimOptions& operator=(const DtVrfSimOptions& rhs);
458 
459  protected:
461  DtConfigVariable<DtString> mySimulationModelSetFile;
462 
464  DtConfigVariable<DtString> myBatchFile;
465 
467  DtConfigVariable<int> myTargetFrameRate;
468 
470  DtConfigVariable<int> myClockMode;
471 
475  DtConfigVariable<int> mySessionId;
476 
478  DtConfigVariable<int> myAppIdRangeMax;
479 
481  DtConfigVariable<DtString> myScenarioFile;
482 
484  DtConfigVariable<DtString> mySharedSettingsDirectory;
485 
487  DtConfigVariable<bool> myUseUserSettingsDirectory;
488 
490  DtConfigVariable<DtString> myTerrainFile;
491 
493  short myUseDIGuy;
494 
496  DtConfigVariable<DtString> mySharedDataDir;
497 
499  DtConfigVariable<DtString> mySharedDataRoot;
500 
502  DtConfigVariable<DtString> mySharedDataStem;
503 
505  DtConfigVariable<DtString> myDIGuyCharacterDataFile;
506  DtConfigVariable<DtString> myDIGuyAnimationsFile;
507 
510  DtConfigVariable<DtString> mySettingsFile;
511 
513  DtConfigVariable<DtString> myAppDataDir;
514 
516  DtConfigVariable<DtString> myDataDir;
517 
519  DtConfigVariable<DtString> myUserDataDir;
520 
522  DtConfigVariable<DtString> myAdditionalSystemScriptsDirectory;
523 
525  DtConfigVariable<int> myFrontEndPID;
526 
527  DtConfigVariable<bool> myCmdConnectionless;
528  DtConfigVariable<bool> myCmdDisableRemoteDiscovery;
529 
530  #ifndef WIN32
531  DtConfigVariable<bool> myCmdDaemonMode;
533  short myDaemonMode;
534  #endif
535 
536  DtConfigVariable<DtString> myNonVrfObjectsUUIDScheme;
540 
545  DtConfigVariable<bool> myCmdUseAbsoluteTimeStamps;
546  DtConfigVariable<int> myCmdNumNetworkCallbackThreads;
547  DtConfigVariable<bool> myCmdSelfReflect;
548 
549  #if DtHLA
550  DtConfigVariable<bool> myCmdRunInTimeManagementMode;
555  DtConfigVariable<bool> myCmdDisableRequestUpdates;
557  #elif DtDIS
558  DtFloat64 myHeartbeatVariance;
559 
560  DtString myAdditionalDestinationAddresses;
561  #endif
562 
563  short myReuseEntityIdentifiersOnScenarioLoad;
564 
566  int myCgfDispatcherReceivePort;
567 
568  DtString myReportedHostAddress;
569 
570  int myStatusUpdateHeartbeat;
571  short myForceParameterDbReload;
572 
574  short myLogFrameRateStatistics;
575 
576  short myEnableNavigationLabDebugging;
577 
578  DtFilename myDefaultParameterDatabasePath;
579  DtFilename myDefaultTerrainDatabasePath;
580 
582  short myStartInRunMode;
583 
584  #ifdef WIN32
585  short myDoNotUseConsole;
586  short myStartMinimized;
587  #endif
588 
589  DtFilename myPluginsDirectory;
590 
592  #ifdef WIN32
593  DtConfigVariable<bool> myCmdNotUsingConsole;
594  DtConfigVariable<bool> myCmdStartMinimized;
595  #endif
596  DtConfigVariable<bool> myCmdStartInRunMode;
597  DtConfigVariable<bool> myCmdDoNotUsePluginsDirectory;
598 
599  DtConfigVariable<bool> myCmdLogFrameRateStatistics;
600 
601  DtMultiConfigVariable<std::string> myPluginFiles;
602 
603  DtMultiConfigVariable<DtString> myEnabledChannels;
604 
605  std::vector<std::string> myPluginsToLoad;
606  bool myDoNotUsePluginsDirectory;
607  DtConfigVariable<DtString> myOutputFile;
608 
610  short mySimMgmtPduProcessLevel;
611 
612  short myLoadPluginIfVersionMismatch;
613 
615  int myObjectConsoleNotifyLevel;
616  short mySendBackendLogToNetwork;
617 
618  DtConfigVariable<bool> myCmdFullyLoadTerrain;
619  short myFullyLoadTerrain;
620 
621  short myAssertOnBlockingTerrainCalls;
622  short myPublishZeroVelocityWhenPaused;
623  short mySetDeadReckoningAlgorithmToStaticOnPause;
624  short mySendMessagesInNetworkProcess;
625 
626  DtVrfPluginRecordManager myPluginRecordManager;
627 
629  DtConfigVariable<DtString> myHostAddress;
630 
631  DtConfigVariable<DtString> myMsdlSidcMappingFile;
632  DtConfigVariable<DtString> myCountryCodesMappingFile;
633 
634  DtConfigVariable<int> myTracyPort;
635  DtConfigVariable<int> myCmdNumCallbackThreads;
636  DtConfigVariable<bool> myCmdMainThreadWaitForQueue;
637  DtConfigVariable<bool> myCmdDisableParallelTick;
638  DtConfigVariable<bool> myCmdDisableParallelPublisherTick;
639 
642  DtConfigVariable<DtString> myCmdEnablePduProfiling;
643  short myDisableParallelPublisherTick;
644  DtConfigVariable<bool> myCmdTickPublishersDuringEntityTick;
645  short myTickPublishersDuringEntityTick;
646 
647  DtConfigVariable<bool> myCmdIssueSimExitOnFinishTestCommand;
648  DtConfigVariable<DtString> myCmdLogTestFilename;
649 
650  DtConfigVariable<bool> myCmdEnableMetoc;
651 
652  short myMainThreadWaitForQueue;
653  short myDisableParallelTick;
654  short mySelfReflect;
655  short myIssueSimExitOnFinishTestCommand;
656  short myEnableMetoc;
657  #ifdef WIN32
658  DtConfigVariable<bool> myCmdSetMainThreadToHighPriority;
659  short mySetMainThreadToHighPriority;
660  #endif
661 
662  #if DtHLA
665  #endif
666 
667  int myGamewareMemorySize;
668  double myGamewareQueryTimeBudget;
669  short myRegenerateNavigationDataAtRuntime;
670  int myMaxNavigationRegenerationThreads;
671  int myNumberOfNavQueueProcessingThreads;
672  double myNavigationRegenerationDelay;
673  DtFilename myNavigationRegenerationFileDirectory;
674 
675  short myEnableLogFileTimestamps;
676 
677  short myRejectMismatchedScenarioMessages;
678 
679  DtConfigVariable<bool> myCmdSuppressDataAvailableException;
680  int mySuppressDataAvailableException;
681  };
682 
683  inline const std::vector<std::string>& DtVrfSimOptions::pluginsToLoad() const
684  {
685  return myPluginsToLoad;
686  }
687 }
DtConfigVariable< bool > myCmdUseAbsoluteTimeStamps
Definition: vrfSimOptions.h:545
DtApplicationSettings & settings()
Definition: vrfSimOptions.h:432
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
DtConfigVariable< int > myCmdNumNetworkCallbackThreads
Definition: vrfSimOptions.h:546
Options for the configuring the sim.
Definition: vrfSimOptionsInterface.h:20
DtConfigVariable< bool > myCmdSelfReflect
Definition: vrfSimOptions.h:547
short myTaskVisualizationPublicationMode
Definition: vrfSimOptions.h:538
class DtVrfPluginRecordManager:
Definition: vrfPluginRecordManager.h:24
Definition: vrfSimOptions.h:15
DtFloat64 myDefaultAggDimensionThreshold
Definition: vrfSimOptions.h:544
std::string dataDir()
Definition: vrfExtApplicationInitializer.h:20
DtFloat64 myDefaultTranslationThreshold
Default threshold values.
Definition: vrfSimOptions.h:542
double DtFloat64
Definition: vrvControlStructTypes.h:36
DtFloat64 myDefaultRotationThreshold
Definition: vrfSimOptions.h:543
Contains the DtVrfExtApplicationInitializer class declaration.
DtFloat64 myEntVrfDataTimeThreshold
Definition: vrfSimOptions.h:537
int myDisableRequestUpdates
Definition: vrfSimOptions.h:556
std::vector< std::string > myPluginsToLoad
Definition: vrfSimOptions.h:469
int myRunInTimeManagementMode
Definition: vrfSimOptions.h:553
const std::vector< std::string > & pluginsToLoad() const
Returns plugins to load.
Definition: vrfSimOptions.h:538
DtConfigVariable< DtString > myCmdEnablePduProfiling
Turn on with flood check of a given time and/or a number of packets over that time: &quot;0...
Definition: vrfSimOptions.h:642
int myExpectedLocalEntityCount
Definition: vrfSimOptions.h:664
DtConfigVariable< bool > myCmdDisableRequestUpdates
HLA only - flag indicating whether or not to request updates.
Definition: vrfSimOptions.h:555
short myUseDrawControlForTaskVisualizations
Definition: vrfSimOptions.h:539
DtConfigVariable< DtString > myNonVrfObjectsUUIDScheme
Definition: vrfSimOptions.h:536
short myUseSingleNetworkThreadWhenRtiThreadSafetyNotGuaranteed
Definition: vrfSimOptions.h:663

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)