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 
18 #include "vrfutil/version.h"
19 
20 
21 #include <vlutil/vlMachineTypes.h>
22 #include <vlutil/vlFilename.h>
23 #include <mtl/configVariable.h>
24 #include <mtl/multiConfigVariable.h>
25 #include <mtl/mtlEnvironment.h>
26 
28 
29 namespace makVrf
30 {
31  class DT_DLL_vrlinkNetworkInterface DtVrfSimOptions
34  {
35  public:
37  DtVrfSimOptions(int argc, char** argv, const char* appName,
38  const DtString& defaultConfigFilePath = DtFilename::combine(makVrf::DtAppPathResolver::Instance().connectionsSettingsDirectory(), DtDefaultConfigFile),
39  const char* appVersion = DtVrfVersionNumber);
40 
42  virtual ~DtVrfSimOptions() override;
43 
46  virtual bool readConfigurationFile(const DtFilename& mtlFile);
47 
48  public:
50  virtual DtFloat64 entVrfDataTimeThreshold() const;
51 
53  virtual double rotationThreshold() const;
54 
56  virtual double translationThreshold() const;
57 
59  virtual double aggDimensionThreshold() const;
60 
63  virtual void setPublishZeroVelocityWhenPaused(bool);
64  virtual bool publishZeroVelocityWhenPaused() const;
65 
69  virtual void setSetDeadReckoningAlgorithmToStaticOnPause(bool);
70  virtual bool setDeadReckoningAlgorithmToStaticOnPause() const;
71 
72  virtual void setSendMessagesInNetworkProcess(bool);
73  virtual bool sendMessagesInNetworkProcess() const;
74 
77  virtual void setNumNetworkCallbackThreads(unsigned n);
78  virtual unsigned numNetworkCallbackThreads() const;
79 
81  virtual bool useAbsoluteTimeStamps() const;
82 
83  #if DtDIS
84  virtual std::vector<DtString> additionalDestinationAddresses() const;
85 
87  virtual void setAdditionalDestinationAddresses(const DtString& addresses);
88 
90  virtual void setAdditionalDestinationAddresses(const std::vector<DtString>& addresses);
91  #endif
92 
93  virtual void setTaskVisualizationPublicationMode(short state);
94  virtual short taskVisualizationPublicationMode() const;
95 
96  virtual void setUseDrawControlForTaskVisualizations(bool);
97  virtual bool useDrawControlForTaskVisualizations() const;
98 
105  virtual void setNonVrfObjectsUUIDScheme(const DtString&);
106  virtual DtString nonVrfObjectsUUIDScheme() const;
108 
110  virtual int statusUpdateHeartbeat() const;
111 
112  virtual bool connectionless() const;
113  virtual bool disableRemoteDiscovery() const;
114 
118  virtual DtFilename simulationModelSetFilename() const;
119 
121  virtual bool forceParameterDbReload() const;
122 
128  virtual void setTargetFrameRate(int rate);
129  virtual int targetFrameRate() const;
131 
133  virtual int clockMode() const;
134 
137  virtual void setDefaultParameterDatabasePath(const DtFilename& path);
138  virtual const DtFilename& defaultParameterDatabasePath() const;
139 
142  virtual void setDefaultTerrainDatabasePath(const DtFilename& path);
143  virtual const DtFilename& defaultTerrainDatabasePath() const;
144 
146  virtual DtFilename diGuyCharacterDataFile() const;
147 
149  virtual DtFilename diGuyAnimationsFile() const;
150 
153  virtual bool logFrameRateStats() const;
154  virtual void setLogFrameRateStats(bool yesOrNo);
155 
157  virtual void setRejectMismatchedScenarioMessages(bool);
158  virtual bool rejectMismatchedScenarioMessages() const;
159 
160  virtual bool enableNavigationLabDebugging() const;
161  virtual void setEnableNavigationLabDebugging(bool enable);
162 
163  virtual int sessionId() const;
164  virtual int appIdRangeMax() const;
165  virtual void setAppIdRangeMax(int);
166  virtual DtFilename batchFile() const;
167  virtual DtFilename scenarioFile() const;
168  virtual DtFilename terrainFile() const;
169 
170  virtual int frontEndProcessId() const;
171 
172  virtual void setStartInRunMode(bool);
173  virtual bool startInRunMode() const;
174 
175  #ifdef WIN32
176  virtual void setDoNotUseConsole(bool);
177  virtual bool usingConsole() const;
178 
179  virtual void setStartMinimized(bool);
180  virtual bool startMinimized() const;
181  #endif
182 
183  virtual void setDaemonMode(bool);
184  virtual bool daemonMode() const;
185 
186  #if DtHLA
187  virtual bool runInTimeManagementMode() const;
189  virtual void setRunInTimeManagementMode(bool yesNo);
190 
191  virtual bool disableRequestUpdates() const;
192  virtual void setDisableRequestUpdates(bool yesNo);
193  #elif DtDIS
194  virtual double heartbeatVariance() const;
195  virtual void setHeartbeatVariance(double variance);
196  #endif
197 
198  virtual void setReuseEntityIdentifiersOnScenarioLoad(bool);
199  virtual bool reuseEntityIdentifiersOnScenarioLoad() const;
200 
201  virtual void setLoadAllNavigationDataOnTerrainLoad(bool);
202  virtual bool loadAllNavigationDataOnTerrainLoad() const;
203 
205  virtual void parseCmdLine() override;
206 
207  virtual short simMgmtPduProcessLevel() const;
208 
209  virtual int cgfDispatcherReceivePort() const;
210  virtual void setCgfDispatcherReceivePort(int port);
211 
213  virtual int tracyPort() const;
214  virtual bool tracyPortSet() const;
215  virtual void setTracyPort(int port);
216 
218  const std::vector<std::string>& pluginsToLoad() const;
219 
220  virtual void setLoadPluginIfVersionMismatch(bool);
221  virtual bool loadPluginIfVersionMismatch() const;
222 
223  virtual void setPluginsDirectory(const DtFilename&);
224  virtual const DtFilename& pluginsDirectory() const;
225 
226  virtual DtString additionalSystemScriptsDirectory() const;
227  virtual void setAdditionalSystemScriptsDirectory(const DtString&);
228 
230  virtual void setDoNotUsePluginsDirectory(bool b);
231  virtual bool doNotUsePluginsDirectory() const;
232 
234  virtual DtFilename outputFile() const;
235  virtual void setOutputFile(const DtFilename& s);
236 
238  virtual void setNotifyLevel(DtNotifyLevelType level);
240  virtual DtNotifyLevelType notifyLevel() const;
241 
246 
247  virtual void setSendBackendLogToNetwork(bool v);
248  virtual bool sendBackendLogToNetwork() const;
250 
252 
253  virtual void setFullyLoadTerrain(bool v);
254  virtual bool fullyLoadTerrain() const;
256 
259 
260  virtual void setAssertOnBlockingTerrainCalls(bool b);
261  virtual bool assertOnBlockingTerrainCalls() const;
263 
268 
269  virtual void setHostAddress(const DtString& address);
270  virtual DtString hostAddress() const;
272 
276 
277  virtual void setReportedHostAddress(const DtString& address);
278  virtual DtString reportedHostAddress() const;
280 
283  virtual void setAppDataDir(const DtString&);
284  virtual DtString appDataDir() const;
286 
288  virtual void setupSettingsDirectory(const DtFilename& f, bool useSharedSettingsDirectory);
289 
292  virtual void setSharedDataDir(const DtFilename&);
293  virtual DtFilename sharedDataDir() const;
295 
298  virtual bool isSharedDataDirSet() const;
300 
303  virtual void setSharedDataRoot(const DtFilename&);
304  virtual DtFilename sharedDataRoot() const;
306 
309  virtual bool isSharedDataRootSet() const;
311 
314  virtual void setSharedDataStem(const DtString&);
315  virtual DtString sharedDataStem() const;
317 
320  virtual bool isSharedDataStemSet() const;
322 
325  virtual void setDataDir(const DtString&);
326  virtual DtString dataDir() const;
328 
331  virtual bool isDataDirSet() const;
333 
336  virtual void setUserDataDir(const DtString&);
337  virtual DtString userDataDir() const;
339 
342  virtual bool isUserDataDirSet() const;
344 
346 
347  virtual void setMsdlSidcMappingFile(const DtString& address);
348  virtual DtFilename msdlSidcMappingFile() const;
350 
352 
353  virtual void setCountryCodesMappingFile(const DtString& address);
354  virtual DtFilename countryCodesMappingFile() const;
356 
358  virtual void outputMtl();
359 
360  virtual void setMainThreadWaitForQueue(bool enable);
361  virtual void setNumCallbackThreads(unsigned n);
362 
363  virtual void setDisableParallelTick(bool use);
364  virtual void setIssueSimExitOnFinishTestCommand(bool shouldExit);
365 
366  virtual bool mainThreadWaitForQueue() const override;
367  virtual unsigned numCallbackThreads() const override;
368  virtual bool disableParallelTick() const override;
369  virtual bool issueSimExitOnFinishTestCommand() const override;
370 
371  virtual void setDisableParallelPublisherTick(bool);
372  virtual bool disableParallelPublisherTick() const;
373 
374  virtual void setTickPublishersDuringEntityTick(bool);
375  virtual bool tickPublishersDuringEntityTick() const;
376 
377  virtual DtFilename testLogFile() const override;
378 
379  virtual void setGamewareMemorySize(int sizeInMb);
380  virtual int gamewareMemorySize() const;
381 
382  virtual void setGamewareQueryTimeBudget(double ms);
383  virtual double gamewareQueryTimeBudget() const;
384 
385  virtual void setRegenerateNavigationDataAtRuntime(bool v);
386  virtual bool regenerateNavigationDataAtRuntime() const;
387 
388  virtual void setMaxNavigationRegenerationThreads(int threads);
389  virtual int maxNavigationRegenerationThreads() const;
390 
391  virtual void setNumberOfNavQueueProcessingThreads(int threads);
392  virtual int numberOfNavQueueProcessingThreads() const;
393 
394  virtual void setNavigationRegenerationFileDirectory(const DtString& dir);
395  virtual DtFilename navigationRegenerationFileDirectory() const;
396 
397  virtual void setNavigationRegenerationDelay(double delay);
398  virtual double navigationRegenerationDelay() const;
399 
400  virtual void setEnableLogFileTimestamps(bool v);
401  virtual bool enableLogFileTimestamps() const;
402 
403  #if DtHLA
404  virtual void setUseSingleNetworkThreadWhenRtiThreadSafetyNotGuaranteed(bool v);
405  virtual bool useSingleNetworkThreadWhenRtiThreadSafetyNotGuaranteed() const;
406 
407  virtual void setExpectedLocalEntityCount(int v);
408  virtual int expectedLocalEntityCount() const;
409  #endif
410 
411  virtual void setMaxAsynchronousTerrainThreads(int num);
412  virtual int maxAsynchronousTerrainThreads() const;
413 
414  virtual void setBlockOnAsynchronousOperations(bool shouldBlock);
415  virtual bool blockOnAsynchronousOperations() const;
416 
417  #ifdef WIN32
418  virtual void setMainThreadToHighPriority(bool);
420  #endif
421 
423  virtual std::vector<DtString> enabledChannels() const;
424 
428  virtual bool suppressDataAvailableException() const;
429  virtual void setSuppressDataAvailableException(bool);
431 
434  virtual bool enablePduProfiling(double& pduTime, int& numberOfPackets
435 #if DtDIS
436  , bool& includeSummary
437 #endif
438  ) const;
439 
440  virtual void setAutomaticallyCreateGlobalEnvironment(bool autoCreate);
441  virtual bool automaticallyCreateGlobalEnvironment() const;
442 
443  virtual DtApplicationSettings& settings() override { return exerciseConnectionConfig()->settings(); };
444 
445  protected:
449  virtual void initializeMtlParams() override;
450 
453 
454  virtual void setVariablesFromMtl();
455  virtual void processStringList(std::vector<DtString>& v, const std::vector<DtString>& list) const;
456 
458  virtual void initPluginVariables();
459 
461  virtual void processPluginsDirectory(const DtFilename& directory);
462 
463  private:
465  DtVrfSimOptions(const DtVrfSimOptions& orig);
466 
468  DtVrfSimOptions& operator=(const DtVrfSimOptions& rhs);
469 
470  protected:
472  DtConfigVariable<DtString> mySimulationModelSetFile;
473 
475  DtConfigVariable<DtString> myBatchFile;
476 
478  DtConfigVariable<int> myTargetFrameRate;
479 
481  DtConfigVariable<int> myClockMode;
482 
486  DtConfigVariable<int> mySessionId;
487 
489  DtConfigVariable<int> myAppIdRangeMax;
490 
492  DtConfigVariable<DtString> myScenarioFile;
493 
495  DtConfigVariable<DtString> mySharedSettingsDirectory;
496 
498  DtConfigVariable<bool> myUseUserSettingsDirectory;
499 
501  DtConfigVariable<DtString> myTerrainFile;
502 
504  short myUseDIGuy;
505 
507  DtConfigVariable<DtString> mySharedDataDir;
508 
510  DtConfigVariable<DtString> mySharedDataRoot;
511 
513  DtConfigVariable<DtString> mySharedDataStem;
514 
516  DtConfigVariable<DtString> myDIGuyCharacterDataFile;
517  DtConfigVariable<DtString> myDIGuyAnimationsFile;
518 
521  DtConfigVariable<DtString> mySettingsFile;
522 
524  DtConfigVariable<DtString> myAppDataDir;
525 
527  DtConfigVariable<DtString> myDataDir;
528 
530  DtConfigVariable<DtString> myUserDataDir;
531 
533  DtConfigVariable<DtString> myAdditionalSystemScriptsDirectory;
534 
536  DtConfigVariable<int> myFrontEndPID;
537 
538  DtConfigVariable<bool> myCmdConnectionless;
539  DtConfigVariable<bool> myCmdDisableRemoteDiscovery;
540 
541  #ifndef WIN32
542  DtConfigVariable<bool> myCmdDaemonMode;
544  short myDaemonMode;
545  #endif
546 
547  DtConfigVariable<DtString> myNonVrfObjectsUUIDScheme;
551 
556  DtConfigVariable<bool> myCmdUseAbsoluteTimeStamps;
557  DtConfigVariable<int> myCmdNumNetworkCallbackThreads;
558 
559  #if DtHLA
560  DtConfigVariable<bool> myCmdRunInTimeManagementMode;
565  DtConfigVariable<bool> myCmdDisableRequestUpdates;
567  #elif DtDIS
568  DtFloat64 myHeartbeatVariance;
569 
570  DtString myAdditionalDestinationAddresses;
571  #endif
572 
573  short myReuseEntityIdentifiersOnScenarioLoad;
574 
576  int myCgfDispatcherReceivePort;
577 
578  DtString myReportedHostAddress;
579 
580  int myStatusUpdateHeartbeat;
581  short myForceParameterDbReload;
582 
584  short myLogFrameRateStatistics;
585 
586  short myEnableNavigationLabDebugging;
587 
588  DtFilename myDefaultParameterDatabasePath;
589  DtFilename myDefaultTerrainDatabasePath;
590 
592  short myStartInRunMode;
593 
594  #ifdef WIN32
595  short myDoNotUseConsole;
596  short myStartMinimized;
597  #endif
598 
599  DtFilename myPluginsDirectory;
600 
602  #ifdef WIN32
603  DtConfigVariable<bool> myCmdNotUsingConsole;
604  DtConfigVariable<bool> myCmdStartMinimized;
605  #endif
606  DtConfigVariable<bool> myCmdStartInRunMode;
607  DtConfigVariable<bool> myCmdDoNotUsePluginsDirectory;
608 
609  DtConfigVariable<bool> myCmdLogFrameRateStatistics;
610 
611  DtMultiConfigVariable<std::string> myPluginFiles;
612 
613  DtMultiConfigVariable<DtString> myEnabledChannels;
614 
615  std::vector<std::string> myPluginsToLoad;
616  bool myDoNotUsePluginsDirectory;
617  DtConfigVariable<DtString> myOutputFile;
618 
620  short mySimMgmtPduProcessLevel;
621 
622  short myLoadPluginIfVersionMismatch;
623 
625  int myObjectConsoleNotifyLevel;
626  short mySendBackendLogToNetwork;
627 
628  DtConfigVariable<bool> myCmdFullyLoadTerrain;
629  short myFullyLoadTerrain;
630 
631  short myAssertOnBlockingTerrainCalls;
632  short myPublishZeroVelocityWhenPaused;
633  short mySetDeadReckoningAlgorithmToStaticOnPause;
634  short mySendMessagesInNetworkProcess;
635  short myLoadAllNavigationDataOnTerrainLoad;
636 
637  DtVrfPluginRecordManager myPluginRecordManager;
638 
640  DtConfigVariable<DtString> myHostAddress;
641 
642  DtConfigVariable<DtString> myMsdlSidcMappingFile;
643  DtConfigVariable<DtString> myCountryCodesMappingFile;
644 
645  DtConfigVariable<int> myTracyPort;
646  DtConfigVariable<int> myCmdNumCallbackThreads;
647  DtConfigVariable<bool> myCmdMainThreadWaitForQueue;
648  DtConfigVariable<bool> myCmdDisableParallelTick;
649  DtConfigVariable<bool> myCmdDisableParallelPublisherTick;
650 
653  DtConfigVariable<DtString> myCmdEnablePduProfiling;
654  short myDisableParallelPublisherTick;
655  DtConfigVariable<bool> myCmdTickPublishersDuringEntityTick;
656  short myTickPublishersDuringEntityTick;
657 
658  DtConfigVariable<bool> myCmdIssueSimExitOnFinishTestCommand;
659  DtConfigVariable<DtString> myCmdLogTestFilename;
660 
661  short myMainThreadWaitForQueue;
662  short myDisableParallelTick;
663  short mySelfReflect;
664  short myIssueSimExitOnFinishTestCommand;
665  #ifdef WIN32
666  DtConfigVariable<bool> myCmdSetMainThreadToHighPriority;
667  short mySetMainThreadToHighPriority;
668  #endif
669 
670  #if DtHLA
673  #endif
674 
675  int myGamewareMemorySize;
676  double myGamewareQueryTimeBudget;
677  short myRegenerateNavigationDataAtRuntime;
678  int myMaxNavigationRegenerationThreads;
679  int myNumberOfNavQueueProcessingThreads;
680  double myNavigationRegenerationDelay;
681  DtFilename myNavigationRegenerationFileDirectory;
682 
684 
685  short myEnableLogFileTimestamps;
686 
687  short myRejectMismatchedScenarioMessages;
688 
689  DtConfigVariable<bool> myCmdSuppressDataAvailableException;
690  int mySuppressDataAvailableException;
691 
692  short myAutomaticallyCreateGlobalEnvironment;
694  };
695 
696  inline const std::vector<std::string>& DtVrfSimOptions::pluginsToLoad() const
697  {
698  return myPluginsToLoad;
699  }
700 }
DtConfigVariable< bool > myCmdUseAbsoluteTimeStamps
Definition: vrfSimOptions.h:556
int myMaxAsynchronousTerrainThreads
Definition: vrfSimOptions.h:683
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:557
Options for the configuring the sim.
Definition: vrfSimOptionsInterface.h:20
short myTaskVisualizationPublicationMode
Definition: vrfSimOptions.h:549
class DtVrfPluginRecordManager:
Definition: vrfPluginRecordManager.h:24
Definition: vrfSimOptions.h:15
DtFloat64 myDefaultAggDimensionThreshold
Definition: vrfSimOptions.h:555
Definition: vrfExtApplicationInitializer.h:20
DtFloat64 myDefaultTranslationThreshold
Default threshold values.
Definition: vrfSimOptions.h:553
double DtFloat64
Definition: vrvControlStructTypes.h:36
DtFloat64 myDefaultRotationThreshold
Definition: vrfSimOptions.h:554
Contains the DtVrfExtApplicationInitializer class declaration.
DtFloat64 myEntVrfDataTimeThreshold
Definition: vrfSimOptions.h:548
int myDisableRequestUpdates
Definition: vrfSimOptions.h:566
std::vector< std::string > myPluginsToLoad
Definition: vrfSimOptions.h:477
#define DtVrfVersionNumber
Version strings must not contain spaces.
Definition: version.h:9
static DtAppPathResolver & Instance()
virtual DtApplicationSettings & settings() override
Definition: vrfSimOptions.h:443
int myRunInTimeManagementMode
Definition: vrfSimOptions.h:563
const std::vector< std::string > & pluginsToLoad() const
Returns plugins to load.
Definition: vrfSimOptions.h:548
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:653
int myExpectedLocalEntityCount
Definition: vrfSimOptions.h:672
DtConfigVariable< bool > myCmdDisableRequestUpdates
HLA only - flag indicating whether or not to request updates.
Definition: vrfSimOptions.h:565
short myBlockOnAsynchronousOperations
Definition: vrfSimOptions.h:693
short myUseDrawControlForTaskVisualizations
Definition: vrfSimOptions.h:550
DtConfigVariable< DtString > myNonVrfObjectsUUIDScheme
Definition: vrfSimOptions.h:547
short myUseSingleNetworkThreadWhenRtiThreadSafetyNotGuaranteed
Definition: vrfSimOptions.h:671

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)