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 
199  virtual void setLoadAllNavigationDataOnTerrainLoad(bool);
200  virtual bool loadAllNavigationDataOnTerrainLoad() const;
201 
203  virtual void parseCmdLine();
204 
205  virtual short simMgmtPduProcessLevel() const;
206 
207  virtual int cgfDispatcherReceivePort() const;
208  virtual void setCgfDispatcherReceivePort(int port);
209 
211  virtual int tracyPort() const;
212  virtual bool tracyPortSet() const;
213  virtual void setTracyPort(int port);
214 
216  const std::vector<std::string>& pluginsToLoad() const;
217 
218  virtual void setLoadPluginIfVersionMismatch(bool);
219  virtual bool loadPluginIfVersionMismatch() const;
220 
221  virtual void setPluginsDirectory(const DtFilename&);
222  virtual const DtFilename& pluginsDirectory() const;
223 
224  virtual DtString additionalSystemScriptsDirectory() const;
225  virtual void setAdditionalSystemScriptsDirectory(const DtString&);
226 
228  virtual void setDoNotUsePluginsDirectory(bool b);
229  virtual bool doNotUsePluginsDirectory() const;
230 
232  virtual DtFilename outputFile() const;
233  virtual void setOutputFile(const DtFilename& s);
234 
236  virtual void setNotifyLevel(DtNotifyLevelType level);
238  virtual DtNotifyLevelType notifyLevel() const;
239 
244 
245  virtual void setSendBackendLogToNetwork(bool v);
246  virtual bool sendBackendLogToNetwork() const;
248 
250 
251  virtual void setFullyLoadTerrain(bool v);
252  virtual bool fullyLoadTerrain() const;
254 
257 
258  virtual void setAssertOnBlockingTerrainCalls(bool b);
259  virtual bool assertOnBlockingTerrainCalls() const;
261 
266 
267  virtual void setHostAddress(const DtString& address);
268  virtual DtString hostAddress() const;
270 
274 
275  virtual void setReportedHostAddress(const DtString& address);
276  virtual DtString reportedHostAddress() const;
278 
281  virtual void setAppDataDir(const DtString&);
282  virtual DtString appDataDir() const;
284 
286  virtual void setupSettingsDirectory(const DtFilename& f, bool useSharedSettingsDirectory);
287 
290  virtual void setSharedDataDir(const DtFilename&);
291  virtual DtFilename sharedDataDir() const;
293 
296  virtual bool isSharedDataDirSet() const;
298 
301  virtual void setSharedDataRoot(const DtFilename&);
302  virtual DtFilename sharedDataRoot() const;
304 
307  virtual bool isSharedDataRootSet() const;
309 
312  virtual void setSharedDataStem(const DtString&);
313  virtual DtString sharedDataStem() const;
315 
318  virtual bool isSharedDataStemSet() const;
320 
323  virtual void setDataDir(const DtString&);
324  virtual DtString dataDir() const;
326 
329  virtual bool isDataDirSet() const;
331 
334  virtual void setUserDataDir(const DtString&);
335  virtual DtString userDataDir() const;
337 
340  virtual bool isUserDataDirSet() const;
342 
344 
345  virtual void setMsdlSidcMappingFile(const DtString& address);
346  virtual DtFilename msdlSidcMappingFile() const;
348 
350 
351  virtual void setCountryCodesMappingFile(const DtString& address);
352  virtual DtFilename countryCodesMappingFile() const;
354 
356  virtual void outputMtl();
357 
358  virtual void setMainThreadWaitForQueue(bool enable);
359  virtual void setNumCallbackThreads(unsigned n);
360 
361  virtual void setDisableParallelTick(bool use);
362  virtual void setIssueSimExitOnFinishTestCommand(bool shouldExit);
363 
364  virtual void setEnableMetoc(bool enable);
365 
366  virtual bool mainThreadWaitForQueue() const;
367  virtual unsigned numCallbackThreads() const;
368  virtual bool disableParallelTick() const;
369  virtual bool enableMetoc() const;
370  virtual bool issueSimExitOnFinishTestCommand() const;
371 
372  virtual void setDisableParallelPublisherTick(bool);
373  virtual bool disableParallelPublisherTick() const;
374 
375  virtual void setTickPublishersDuringEntityTick(bool);
376  virtual bool tickPublishersDuringEntityTick() const;
377 
378  virtual DtFilename testLogFile() const;
379 
380  virtual void setGamewareMemorySize(int sizeInMb);
381  virtual int gamewareMemorySize() const;
382 
383  virtual void setGamewareQueryTimeBudget(double ms);
384  virtual double gamewareQueryTimeBudget() const;
385 
386  virtual void setRegenerateNavigationDataAtRuntime(bool v);
387  virtual bool regenerateNavigationDataAtRuntime() const;
388 
389  virtual void setMaxNavigationRegenerationThreads(int threads);
390  virtual int maxNavigationRegenerationThreads() const;
391 
392  virtual void setNumberOfNavQueueProcessingThreads(int threads);
393  virtual int numberOfNavQueueProcessingThreads() const;
394 
395  virtual void setNavigationRegenerationFileDirectory(const DtString& dir);
396  virtual DtFilename navigationRegenerationFileDirectory() const;
397 
398  virtual void setNavigationRegenerationDelay(double delay);
399  virtual double navigationRegenerationDelay() const;
400 
401  virtual void setEnableLogFileTimestamps(bool v);
402  virtual bool enableLogFileTimestamps() const;
403 
404  #if DtHLA
405  virtual void setUseSingleNetworkThreadWhenRtiThreadSafetyNotGuaranteed(bool v);
406  virtual bool useSingleNetworkThreadWhenRtiThreadSafetyNotGuaranteed() const;
407 
408  virtual void setExpectedLocalEntityCount(int v);
409  virtual int expectedLocalEntityCount() const;
410  #endif
411 
412  #ifdef WIN32
413  virtual void setMainThreadToHighPriority(bool);
415  #endif
416 
418  virtual std::vector<DtString> enabledChannels() const;
419 
423  virtual bool suppressDataAvailableException() const;
424  virtual void setSuppressDataAvailableException(bool);
426 
429  virtual bool enablePduProfiling(double& pduTime, int& numberOfPackets
430 #if DtDIS
431  , bool& includeSummary
432 #endif
433  ) const;
434 
435  DtApplicationSettings& settings() { return mySettings; };
436 
437  protected:
441  virtual void initializeMtlParams();
442 
445 
446  virtual void setVariablesFromMtl();
447  virtual void processStringList(std::vector<DtString>& v, const std::vector<DtString>& list) const;
448 
450  virtual void initPluginVariables();
451 
453  virtual void processPluginsDirectory(const DtFilename& directory);
454 
455  private:
457  DtVrfSimOptions(const DtVrfSimOptions& orig);
458 
460  DtVrfSimOptions& operator=(const DtVrfSimOptions& rhs);
461 
462  protected:
464  DtConfigVariable<DtString> mySimulationModelSetFile;
465 
467  DtConfigVariable<DtString> myBatchFile;
468 
470  DtConfigVariable<int> myTargetFrameRate;
471 
473  DtConfigVariable<int> myClockMode;
474 
478  DtConfigVariable<int> mySessionId;
479 
481  DtConfigVariable<int> myAppIdRangeMax;
482 
484  DtConfigVariable<DtString> myScenarioFile;
485 
487  DtConfigVariable<DtString> mySharedSettingsDirectory;
488 
490  DtConfigVariable<bool> myUseUserSettingsDirectory;
491 
493  DtConfigVariable<DtString> myTerrainFile;
494 
496  short myUseDIGuy;
497 
499  DtConfigVariable<DtString> mySharedDataDir;
500 
502  DtConfigVariable<DtString> mySharedDataRoot;
503 
505  DtConfigVariable<DtString> mySharedDataStem;
506 
508  DtConfigVariable<DtString> myDIGuyCharacterDataFile;
509  DtConfigVariable<DtString> myDIGuyAnimationsFile;
510 
513  DtConfigVariable<DtString> mySettingsFile;
514 
516  DtConfigVariable<DtString> myAppDataDir;
517 
519  DtConfigVariable<DtString> myDataDir;
520 
522  DtConfigVariable<DtString> myUserDataDir;
523 
525  DtConfigVariable<DtString> myAdditionalSystemScriptsDirectory;
526 
528  DtConfigVariable<int> myFrontEndPID;
529 
530  DtConfigVariable<bool> myCmdConnectionless;
531  DtConfigVariable<bool> myCmdDisableRemoteDiscovery;
532 
533  #ifndef WIN32
534  DtConfigVariable<bool> myCmdDaemonMode;
536  short myDaemonMode;
537  #endif
538 
539  DtConfigVariable<DtString> myNonVrfObjectsUUIDScheme;
543 
548  DtConfigVariable<bool> myCmdUseAbsoluteTimeStamps;
549  DtConfigVariable<int> myCmdNumNetworkCallbackThreads;
550  DtConfigVariable<bool> myCmdSelfReflect;
551 
552  #if DtHLA
553  DtConfigVariable<bool> myCmdRunInTimeManagementMode;
558  DtConfigVariable<bool> myCmdDisableRequestUpdates;
560  #elif DtDIS
561  DtFloat64 myHeartbeatVariance;
562 
563  DtString myAdditionalDestinationAddresses;
564  #endif
565 
566  short myReuseEntityIdentifiersOnScenarioLoad;
567 
569  int myCgfDispatcherReceivePort;
570 
571  DtString myReportedHostAddress;
572 
573  int myStatusUpdateHeartbeat;
574  short myForceParameterDbReload;
575 
577  short myLogFrameRateStatistics;
578 
579  short myEnableNavigationLabDebugging;
580 
581  DtFilename myDefaultParameterDatabasePath;
582  DtFilename myDefaultTerrainDatabasePath;
583 
585  short myStartInRunMode;
586 
587  #ifdef WIN32
588  short myDoNotUseConsole;
589  short myStartMinimized;
590  #endif
591 
592  DtFilename myPluginsDirectory;
593 
595  #ifdef WIN32
596  DtConfigVariable<bool> myCmdNotUsingConsole;
597  DtConfigVariable<bool> myCmdStartMinimized;
598  #endif
599  DtConfigVariable<bool> myCmdStartInRunMode;
600  DtConfigVariable<bool> myCmdDoNotUsePluginsDirectory;
601 
602  DtConfigVariable<bool> myCmdLogFrameRateStatistics;
603 
604  DtMultiConfigVariable<std::string> myPluginFiles;
605 
606  DtMultiConfigVariable<DtString> myEnabledChannels;
607 
608  std::vector<std::string> myPluginsToLoad;
609  bool myDoNotUsePluginsDirectory;
610  DtConfigVariable<DtString> myOutputFile;
611 
613  short mySimMgmtPduProcessLevel;
614 
615  short myLoadPluginIfVersionMismatch;
616 
618  int myObjectConsoleNotifyLevel;
619  short mySendBackendLogToNetwork;
620 
621  DtConfigVariable<bool> myCmdFullyLoadTerrain;
622  short myFullyLoadTerrain;
623 
624  short myAssertOnBlockingTerrainCalls;
625  short myPublishZeroVelocityWhenPaused;
626  short mySetDeadReckoningAlgorithmToStaticOnPause;
627  short mySendMessagesInNetworkProcess;
628  short myLoadAllNavigationDataOnTerrainLoad;
629 
630  DtVrfPluginRecordManager myPluginRecordManager;
631 
633  DtConfigVariable<DtString> myHostAddress;
634 
635  DtConfigVariable<DtString> myMsdlSidcMappingFile;
636  DtConfigVariable<DtString> myCountryCodesMappingFile;
637 
638  DtConfigVariable<int> myTracyPort;
639  DtConfigVariable<int> myCmdNumCallbackThreads;
640  DtConfigVariable<bool> myCmdMainThreadWaitForQueue;
641  DtConfigVariable<bool> myCmdDisableParallelTick;
642  DtConfigVariable<bool> myCmdDisableParallelPublisherTick;
643 
646  DtConfigVariable<DtString> myCmdEnablePduProfiling;
647  short myDisableParallelPublisherTick;
648  DtConfigVariable<bool> myCmdTickPublishersDuringEntityTick;
649  short myTickPublishersDuringEntityTick;
650 
651  DtConfigVariable<bool> myCmdIssueSimExitOnFinishTestCommand;
652  DtConfigVariable<DtString> myCmdLogTestFilename;
653 
654  DtConfigVariable<bool> myCmdEnableMetoc;
655 
656  short myMainThreadWaitForQueue;
657  short myDisableParallelTick;
658  short mySelfReflect;
659  short myIssueSimExitOnFinishTestCommand;
660  short myEnableMetoc;
661  #ifdef WIN32
662  DtConfigVariable<bool> myCmdSetMainThreadToHighPriority;
663  short mySetMainThreadToHighPriority;
664  #endif
665 
666  #if DtHLA
669  #endif
670 
671  int myGamewareMemorySize;
672  double myGamewareQueryTimeBudget;
673  short myRegenerateNavigationDataAtRuntime;
674  int myMaxNavigationRegenerationThreads;
675  int myNumberOfNavQueueProcessingThreads;
676  double myNavigationRegenerationDelay;
677  DtFilename myNavigationRegenerationFileDirectory;
678 
679  short myEnableLogFileTimestamps;
680 
681  short myRejectMismatchedScenarioMessages;
682 
683  DtConfigVariable<bool> myCmdSuppressDataAvailableException;
684  int mySuppressDataAvailableException;
685  };
686 
687  inline const std::vector<std::string>& DtVrfSimOptions::pluginsToLoad() const
688  {
689  return myPluginsToLoad;
690  }
691 }
DtConfigVariable< bool > myCmdUseAbsoluteTimeStamps
Definition: vrfSimOptions.h:548
DtApplicationSettings & settings()
Definition: vrfSimOptions.h:435
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:549
Options for the configuring the sim.
Definition: vrfSimOptionsInterface.h:20
DtConfigVariable< bool > myCmdSelfReflect
Definition: vrfSimOptions.h:550
short myTaskVisualizationPublicationMode
Definition: vrfSimOptions.h:541
class DtVrfPluginRecordManager:
Definition: vrfPluginRecordManager.h:24
Definition: vrfSimOptions.h:15
DtFloat64 myDefaultAggDimensionThreshold
Definition: vrfSimOptions.h:547
std::string dataDir()
Definition: vrfExtApplicationInitializer.h:20
DtFloat64 myDefaultTranslationThreshold
Default threshold values.
Definition: vrfSimOptions.h:545
double DtFloat64
Definition: vrvControlStructTypes.h:36
DtFloat64 myDefaultRotationThreshold
Definition: vrfSimOptions.h:546
Contains the DtVrfExtApplicationInitializer class declaration.
DtFloat64 myEntVrfDataTimeThreshold
Definition: vrfSimOptions.h:540
int myDisableRequestUpdates
Definition: vrfSimOptions.h:559
std::vector< std::string > myPluginsToLoad
Definition: vrfSimOptions.h:474
int myRunInTimeManagementMode
Definition: vrfSimOptions.h:556
const std::vector< std::string > & pluginsToLoad() const
Returns plugins to load.
Definition: vrfSimOptions.h:543
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:646
int myExpectedLocalEntityCount
Definition: vrfSimOptions.h:668
DtConfigVariable< bool > myCmdDisableRequestUpdates
HLA only - flag indicating whether or not to request updates.
Definition: vrfSimOptions.h:558
short myUseDrawControlForTaskVisualizations
Definition: vrfSimOptions.h:542
DtConfigVariable< DtString > myNonVrfObjectsUUIDScheme
Definition: vrfSimOptions.h:539
short myUseSingleNetworkThreadWhenRtiThreadSafetyNotGuaranteed
Definition: vrfSimOptions.h:667

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)