VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
exerciseConnInitializerHLA.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2017 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #if DtHLA
13 
14 #include <vlutil/vlString.h>
15 
17 #include <mtl/configVariable.h>
19 
20 
21 #include <cmdLine/cmdLine.h>
22 #include "fomMapper.h"
23 
24 class DtMtlEnvironment;
25 
26 
27 #if defined (DtHLA_1516_EVOLVED)
28 #define DtDefaultRpr2Fom "RPR_FOM_v2.0_1516-2010.xml"
29 #define DtDefaultRpr1Fom "MAK-RPR1-1-10_evolved.xml"
30 #elif defined(DtHLA_1516)
31 #define DtDefaultRpr2Fom "MAK-RPR2-1-10.xml"
32 #define DtDefaultRpr1Fom "MAK-RPR1-1-10.xml"
33 #else //HLA 1.3
34 #define DtDefaultRpr2Fom "MAK-RPR2-1-10.fed"
35 #define DtDefaultRpr1Fom "MAK-RPR1-1-10.fed"
36 #endif
37 
42 {
43 public:
44 
47  enum DtGetValueMethod
48  {
49  DtForceGetValue,
50  DtForceGetValuePointer,
51  DtGetValuePointerWhereAvailable
52  };
53 
54 public:
57 
59  virtual ~DtExerciseConnInitializer();
60 
63 
66 
68  virtual DtString execName() const;
69 
71  virtual void setExecName(const DtString& name);
72 
75  virtual DtString federateName() const;
76 
79  virtual void setFederateName(const DtString& name);
80 
82  virtual DtString federateType() const;
83 
86  virtual void setFederateType(const DtString& type);
87 
89  virtual DtString fedFileName() const;
90 
92  virtual void setFedFileName(const DtString& name);
93 
95  virtual DtFomMapper* fomMapper() const;
96 
98  virtual void setFomMapper(DtFomMapper* mapper);
99 
102  virtual DtString fomMapperLibName() const;
103 
105  virtual void setFomMapperLibName(const DtString& name);
106 
108  virtual void* fomMapperInitData() const;
109 
111  virtual void setFomMapperInitData(void* data);
112 
119  virtual void setRprFomVersion(double version);
120 
122  virtual double rprFomVersion() const;
123 
126  virtual void setReflecting(bool onOff);
127 
129  virtual bool reflecting() const;
130 
133  virtual void setPassiveMode(bool onOff);
134 
136  virtual bool passiveMode() const;
137 
151  virtual void setReflectRemoteUpdatesIntoPub(bool onOff);
152 
154  virtual bool reflectRemoteUpdatesIntoPub() const;
155 
162  virtual void setReflectThroughRti(bool onOff);
163 
165  virtual bool reflectThroughRti() const;
166 
174  virtual void setUseAdvisories(bool onOff);
175 
177  virtual bool useAdvisories() const;
178 
184  virtual void setReplyToSynchPoints(bool onOff);
185 
187  virtual bool replyToSynchPoints() const;
188 
194  virtual void setAutoSubscribe(bool onOff);
195 
197  virtual bool autoSubscribe() const;
198 
204  virtual void setRequestClassUpdate(bool onOff);
205 
207  virtual bool requestClassUpdate() const;
208 
213  virtual void setRequestObjectUpdate(bool onOff);
214 
216  virtual bool requestObjectUpdate() const;
217 
229  virtual void setRequestWhenInitialized(bool onOff);
230 
232  virtual bool requestWhenInitialized() const;
233 
245  virtual void setDefaultRefreshWaitList(bool onOff);
246 
248  virtual bool defaultRefreshWaitList() const;
249 
254  virtual void setDefaultWaitListRefreshPeriod(double period);
255 
257  virtual double defaultWaitListRefreshPeriod() const;
258 
262  virtual void setTimeStampType(DtTimeStampType relOrAbs);
263 
265  virtual DtTimeStampType timeStampType() const;
266 
272  virtual void setDestroyFedExec(bool onOff);
273 
275  virtual bool destroyFedExec() const;
276 
281  virtual void setSendFedTime(bool onOff);
282 
284  virtual bool sendFedTime() const;
285 
287  virtual void setNotifyLevel(int level);
288 
290  virtual void setUseGeographicDdm(bool yesNo);
291 
293  virtual bool useGeographicDdm() const;
294 
300  virtual void setRprFomRevision(int val);
303  virtual int rprFomRevision() const;
304 
310  virtual void setExceptionOnRtiCompilerMismatch( bool useException );
311 
312  virtual bool exceptionOnRtiCompilerMismatch() const;
313 
325 
326  virtual void setGetValueMethod( DtGetValueMethod getValueMethodChoice );
327  virtual DtGetValueMethod getValueMethod( ) const;
329 
335 
336  virtual void setGenericAttributes(bool yesNo);
337  virtual bool enabledGenericAttributes() const;
339 
340 
342 
343  virtual bool pauseOnSaveRestore() const;
344  virtual void setPauseOnSaveRestore(bool yesNo);
346 
347 #if DtHLA_1516_EVOLVED
348 
350  virtual void setMimModule(const DtString& mimFomModule);
352  virtual DtString mimModule() const;
353 
355  virtual void addFomModule(const DtString& module);
357  virtual void setFomModules(const std::vector<DtString>& fomModules);
358 
360  virtual void fomModules(std::vector<DtString>& fomModules) const;
362  virtual void fomModules(std::vector<std::wstring>& fomModules) const;
363 
365  virtual void setLocalSettingsDesignator( const std::wstring & localSettingsDesignator );
367  virtual void setLocalSettingsDesignator( const DtString & localSettingsDesignator );
369  virtual std::wstring localSettingsDesignator() const;
370 
371 #elif DtHLA_1516
372 
374  virtual void setRtiArguments(const std::vector<std::wstring>& args);
375 
377  virtual void setRtiArguments(const std::vector<DtString>& args);
378 
380  virtual void rtiArguments(std::vector<std::wstring>& args) const;
381 
382 #endif
383 
384 public:
385 
387  static DtString vrlinkVersion();
388 
391 private:
392  DtString myExecName;
393  DtString myFederateType;
394  DtString myFederateName;
395  DtFomMapper* myFomMapper;
396  DtString myFomMapperLibName;
397  void* myFomMapperInitData;
398  double myRprFomVersion;
399  bool myReflecting;
400  bool myPassiveMode;
401  bool myUseAdvisories;
402  bool myReplyToSynchPoints;
403  bool myAutoSubscribe;
404  bool myRequestClassUpdate;
405  bool myRequestObjectUpdate;
406  bool myRequestWhenInitialized;
407  bool myDefaultRefreshWaitList;
408  double myDefaultWaitListRefreshPeriod;
409  bool myReflectRemoteUpdatesIntoPub;
410  bool myReflectThroughRti;
411  DtTimeStampType myTimeStampType;
412  bool myDestroyFedExec;
413  bool mySendFedTime;
414  bool myPauseOnSaveRestore;
415  bool myGenericAttributes;
416  bool myUseGeographicDdm;
417  int myRprFomRevision;
418  bool myExceptionOnRtiCompilerMismatch;
419  DtGetValueMethod myGetValueMethod;
420 
421 
422 #if DtHLA_1516_EVOLVED
423  std::wstring myLocalSettingsDesignator;
424 #elif DtHLA_1516
425  std::vector<std::wstring> myRtiArguments;
426 #endif
427 
430  DtString myFedFileName;
431 
434  std::vector<DtString> myFomModules;
435 
436  DtString myMimModule;
437 
438 };
439 
452 {
453 public:
455  DtVrlApplicationInitializer(int argc, char* argv[], const DtString& appName,
457 #ifdef _WIN32
458  bool pressAnyKey = true);
459 #else
460  bool pressAnyKey = false);
461 #endif
462 
464  virtual ~DtVrlApplicationInitializer();
465 
467  virtual int argc() const;
468 
470  virtual char** argv() const;
471 
476  virtual void parseCmdLine();
477 
481  virtual void loadFile(const DtString& fileName);
482  virtual void loadMtlFile(const DtString& fileName);
483 
485  virtual void saveFile(const DtString& filename);
486 
487  //{@
489  virtual void setExecName(const DtString& name);
490  virtual DtString execName() const;
492 
493  //{@
496  virtual void setFederateName(const DtString& name);
497  virtual DtString federateName() const;
499 
500 #if DtHLA_1516_EVOLVED
501  //{@
504  virtual void setLocalSettingsDesignator(const DtString& name);
505  virtual std::wstring localSettingsDesignator() const;
506 
509  virtual void setMimModule(const DtString& mimFomModule);
510  virtual DtString mimModule() const;
512 #endif
513 
514  //{@
516  virtual void setNotifyFileLevel(int level);
517  virtual int notifyFileLevel() const;
519 
520  //{@
522  virtual void setNotifyFilename(const DtString& file);
523  virtual DtString notifyFilename() const;
525 
526  //{@
528  virtual void setFederateType(const DtString& type);
529  virtual DtString federateType() const;
531 
532  //{@
534  void setFedFileName(const DtString& name);
535  virtual DtString fedFileName() const;
537 
538  //{@
540  virtual void setFomMapperLibName(const DtString& name);
541  virtual DtString fomMapperLibName() const;
543 
544  //{@
546  virtual void setRprFomVersion(double version);
547  virtual double rprFomVersion() const;
549 
550  //{@
552  virtual void* fomMapperInitData() const;
553  virtual void setFomMapperInitData(void* data);
555 
556  //{@
558  virtual void setUseAdvisories(bool onOff);
559  virtual bool useAdvisories() const;
561 
562 
563  //{@
565  virtual void setRequestClassUpdate(bool onOff);
566  virtual bool requestClassUpdate() const;
568 
569 
570  //{@
572  virtual void setRequestObjectUpdate(bool onOff);
573  virtual bool requestObjectUpdate() const;
575 
576  //{@
578  virtual void setRequestWhenInitialized(bool onOff);
579  virtual bool requestWhenInitialized() const;
581 
582  //{@
584  virtual void setDefaultRefreshWaitList(bool onOff);
585  virtual bool defaultRefreshWaitList() const;
587 
588  //{@
590  virtual void setDefaultWaitListRefreshPeriod(double period);
591  virtual double defaultWaitListRefreshPeriod() const;
593 
597  virtual void setTimeStampType(DtTimeStampType relOrAbs);
598 
600  virtual DtTimeStampType timeStampType() const;
601 
607  virtual void setDestroyFedExec(bool onOff);
608 
610  virtual bool destroyFedExec() const;
611 
616  virtual void setSendFedTime(bool onOff);
617 
619  virtual bool sendFedTime() const;
620 
621  virtual void setUseGeographicDdm(bool yesNo);
622 
623  virtual bool useGeographicDdm() const;
624 
625  virtual void setRprFomRevision(int val);
626  virtual int rprFomRevision() const;
627 
633  virtual void setGenericAttributes(bool yesNo);
634  virtual bool enabledGenericAttributes() const;
635 
637 
638  virtual bool pauseOnSaveRestore() const;
639  virtual void setPauseOnSaveRestore(bool yesNo);
640 
641  virtual void setExceptionOnRtiCompilerMismatch(bool yesNo);
642  virtual bool exceptionOnRtiCompilerMismatch() const;
644 
649  virtual void setOutputInterval(double period);
650 
652  virtual double outputInterval() const;
653 
654 protected:
656  virtual void initializeFileLogging();
657 
658 protected:
659  int myArgc;
660  char** myArgv;
661  DtMtlEnvironment* myMtlEnv;
662 
663  virtual void initializeMtlParams();
664 
665  DtApplicationSettings mySettings;
666  DtConfigVariable<int> myConfigVarNotifyLevel;
667  DtVariableGroup myHlaConnection;
668  DtConfigVariable<DtString> myConfigVarFederateType;
669  DtConfigVariable<DtString> myConfigVarExecName;
670  DtConfigVariable<DtString> myConfigVarFedFileName;
671  DtConfigVariable<DtString> myConfigVarFederateName;
672 #if DtHLA_1516_EVOLVED
673  DtMultiConfigVariable<DtString> myConfigVarFomModules;
674  DtConfigVariable<DtString> myConfigVarMimModule;
675  DtConfigVariable<DtString> myConfigVarLocalSettingsDesignator;
676 #endif
677  DtConfigVariable<DtString> myConfigVarFomMapperLibName;
678  DtConfigVariable<DtString> myConfigVarFomMapperInitData;
679  DtConfigVariable<double> myConfigVarRprFomVersion;
680  DtConfigVariable<int> myConfigVarRprFomRevision;
681  DtConfigVariable<bool> myConfigVarUseAdvisories;
682  DtConfigVariable<bool> myConfigVarRequestClassUpdate;
683  DtConfigVariable<bool> myConfigVarRequestObjectUpdate;
684  DtConfigVariable<bool> myConfigVarRequestWhenInitialized;
685  DtConfigVariable<bool> myConfigVarDefaultRefreshWaitList;
686  DtConfigVariable<double> myConfigVarDefaultWaitListRefreshPeriod;
687 
688  DtConfigVariable<bool> myConfigVarIgnoreAdvisories;
689  DtConfigVariable<bool> myConfigVarUseGeographicDdm;
690  DtConfigVariable<bool> myConfigVarUseAbsoluteTimestamps;
691  DtConfigVariable<bool> myConfigVarDestroyFedExec;
692  DtConfigVariable<bool> myConfigVarSendFedTime;
693  DtConfigVariable<bool> myConfigVarGenericAttributes;
694  DtConfigVariable<bool> myConfigVarPauseOnSaveRestore;
695  DtConfigVariable<bool> myConfigVarRtiCompilerCheck;
696  DtConfigVariable<int> myConfigVarNotifyFileLevel;
697  DtConfigVariable<DtString> myConfigVarNotifyFilename;
698  DtConfigVariable<double> myConfigVarOutputInterval;
699 
700  // If logging is turned on, this printer will remain in memory
701  // even after this class is destroyed. Otherwise we would
702  // have to stop logging prematurely.
703  DtFilePrinter* myLogFilePrinter;
704 
705  // MTL doesn't support boolean
706  int myMtlUseAdvisories;
707  int myMtlUseGeographicDdm;
708  int myMtlUseAbsoluteTimeStamps;
709  int myMtlDestroyFedExec;
710  int myMtlSendFedTime;
711  int myMtlPauseOnSaveRestore;
712  int myMtlRequestClassUpdate;
713  int myMtlRequestObjectUpdate;
714  int myMtlRequestWhenInitialized;
715  int myMtlDefaultRefreshWaitList;
716 
717 };
718 
719 #endif // DtHLA
command line support
Definition: mtlEnvironment.h:42
Contains the DtApplicationSettings class declaration.
Definition: applicationSettings.h:24
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Instances of DtExerciseConnInitializer are used to provide the DtExerciseConn with initialization dat...
Definition: exerciseConnInitializerDIS.h:36
Contains the DtString class declaration.
DtFilePrinter is a subclass of DtPrinter which opens a file and dumps all information received from D...
Definition: vlPrint.h:80
This file declares DtFomMapper.
static DtString vrlinkVersion()
Returns a string indicating the VR-Link version number.
virtual DtTimeStampType timeStampType() const
Get the time stamp type.
Contains the DtMultiConfigVariable class declaration.
Contains the DtConfigVariable class declaration.
Instances of DtVrlApplicationInitializer are used to initialize the exercise connection with command ...
Definition: exerciseConnInitializerDIS.h:202
This file declares the class DtCmdLine::CmdLine.
virtual void setTimeStampType(DtTimeStampType relOrAbs)
Set the time stamp type (DtTimeStampAbsolute or DtTimeStampRelative).
Represents a group of variables.
Definition: variableGroup.h:21
DtTimeStampType
Definition: vlTimeStampType.h:16
Instances of DtString are used to represent strings.
Definition: vlString.h:29

Document ID: Generated on Mon Apr 25 03:39:01 EDT 2022 from SVN revision 242502
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)