VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtLightSignalSequenceGenerator.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
14 
15 #include <boost/unordered_map.hpp>
16 
17 namespace makVrv
18 {
19  class DtAgentManagerInterface;
20  class DtDe;
21 
32  : public DtVirtualBaseClass
33  {
34  public:
38 
39 
40  // These are the light signal types (characteristics) defined in S57
42  {
43  LightCharacteristicFixed = 1,
44  LightCharacteristicFlashing = 2,
45  LightCharacteristicLongFlashing = 3,
46  LightCharacteristicQuickFlashing = 4,
47  LightCharacteristicVeryQuickFlashing = 5,
48  LightCharacteristicUltraQuickFlashing = 6,
49  LightCharacteristicIsophased = 7,
50  LightCharacteristicOcculting = 8,
51  LightCharacteristicInterruptedQuickFlashing = 9,
52  LightCharacteristicInterruptedVeryQuickFlashing = 10,
53  LightCharacteristicInterruptedUltraQuickFlashing = 11,
54  LightCharacteristicMorse = 12,
55  LightCharacteristicFixedFlash = 13,
56  LightCharacteristicFlashLongFlash = 14,
57  LightCharacteristicOccultingFlash = 15,
58  LightCharacteristicFixedLongFlash = 16,
59  LightCharacteristicOccultingAlternating = 17,
60  LightCharacteristicLongFlashAlternating = 18,
61  LightCharacteristicFlashAlternating = 19,
62  LightCharacteristicGroupAlternating = 20,
64  LightCharacteristicQuickFlashLongFlash = 25,
65  LightCharacteristicVeryQuickFlashLongFlash = 26,
66  LightCharacteristicUntraQuickFlashLongFlash = 27,
67  LightCharacteristicAlternating = 28,
68  LightCharacteristicFixedAlternatingFlashing = 29
69  };
70 
72  static DtLightSignalSequenceGenerator& instance( DtDe& de );
73 
76 
81  int lightCharacteristic, float period,
82  const std::string& signalGroup ) const;
83 
87  void generateMorseCodeSignalSequencesMap();
88 
90 
91 
92 
93 
94 
95 
98  virtual void setDefaultAlternatingPeriod(float defaultPeriod);
99 
102  virtual void setDefaultFlashPeriod(float defaultPeriod);
103 
106  virtual void setDefaultLongFlashPeriod(float defaultPeriod);
107 
110  virtual void setDefaultQuickFlashPeriod(float defaultPeriod);
111 
114  virtual void setDefaultVeryQuickFlashPeriod(float defaultPeriod);
115 
118  virtual void setDefaultUltraQuickFlashPeriod(float defaultPeriod);
119 
126  virtual void setMinimumFlashOnTime(float defaultTime);
127 
130  virtual void setMinimumLongFlashOnTime(float defaultTime);
132 
134 
135 
136 
137 
138 
139 
140 
141 
142 
143 
144 
145 
146 
147 
150  virtual void setDefaultMorseCodeDot(float defaultTime);
151 
154  virtual void setDefaultMorseCodeDash(float defaultTime);
155 
158  virtual void setDefaultMorseCodeDotDashSpacing(float defaultTime);
159 
162  virtual void setDefaultMorseCodeLetterSpacing(float defaultTime);
163 
166  virtual void setDefaultMorseCodeGroupSpacing(float defaultTime);
168 
169 
170  protected:
171 
176 
179  const DtLightSignalSequenceGenerator& rhs );
180 
182  DtLightSignalSequenceGenerator& operator=(
183  const DtLightSignalSequenceGenerator& orig );
184 
186 
187 
188 
189 
190 
191 
192 
195  virtual DtNavigationLightController::SignalSequence fixedSignalSequence(
196  float period, const std::string& signalGroup ) const;
197 
203  flashingSignalSequence( float period,
204  const std::string& signalGroup ) const;
205 
211  longFlashingSignalSequence( float period,
212  const std::string& signalGroup ) const;
213 
219  quickFlashingSignalSequence( float period,
220  const std::string& signalGroup ) const;
221 
227  veryQuickFlashingSignalSequence( float period,
228  const std::string& signalGroup ) const;
229 
235  ultraQuickFlashingSignalSequence( float period,
236  const std::string& signalGroup ) const;
237 
246  isophasedSignalSequence( float period,
247  const std::string& signalGroup ) const;
248 
254  occultingSignalSequence( float period,
255  const std::string& signalGroup ) const;
256 
260  interruptedQuickFlashingSignalSequence(
261  float period, const std::string& signalGroup ) const;
262 
266  interruptedVeryQuickFlashingSignalSequence(
267  float period, const std::string& signalGroup ) const;
268 
272  interruptedUltraQuickFlashingSignalSequence(
273  float period, const std::string& signalGroup ) const;
274 
293  virtual DtNavigationLightController::SignalSequence morseSignalSequence(
294  float period, const std::string& signalGroup ) const;
295 
301  fixedFlashingSignalSequence( float period,
302  const std::string& signalGroup ) const;
303 
307  flashingLongFlashingSignalSequence( float period,
308  const std::string& signalGroup ) const;
309 
312  virtual DtNavigationLightController::SignalSequence occultingFlashingSignalSequence(
313  float period, const std::string& signalGroup ) const;
314 
319  virtual DtNavigationLightController::SignalSequence fixedLongFlashingSignalSequence(
320  float period, const std::string& signalGroup ) const;
321 
334  occultingAlternatingSignalSequence(
335  float period, const std::string& signalGroup ) const;
336 
349  longFlashAlternatingSignalSequence(
350  float period, const std::string& signalGroup ) const;
351 
363  virtual DtNavigationLightController::SignalSequence flashAlternatingSignalSequence(
364  float period, const std::string& signalGroup ) const;
365 
368  virtual DtNavigationLightController::SignalSequence groupAlternatingSignalSequence(
369  float period, const std::string& signalGroup ) const;
370 
371  // LITCHR == 21 through LITCHR == 24 no longer used.
372 
375  virtual DtNavigationLightController::SignalSequence quickFlashLongFlashSignalSequence(
376  float period, const std::string& signalGroup ) const;
377 
380  virtual DtNavigationLightController::SignalSequence veryQuickFlashLongFlashSignalSequence(
381  float period, const std::string& signalGroup ) const;
382 
385  virtual DtNavigationLightController::SignalSequence ultraQuickFlashLongFlashSignalSequence(
386  float period, const std::string& signalGroup ) const;
387 
392  virtual DtNavigationLightController::SignalSequence alternatingSignalSequence(
393  float period, const std::string& signalGroup ) const;
394 
397  virtual DtNavigationLightController::SignalSequence fixedAlternatingSignalSequence(
398  float period, const std::string& signalGroup ) const;
400 
401  //@(
404 
408  virtual DtNavigationLightController::SignalSequence flashNoGroup(
409  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
410 
416  virtual DtNavigationLightController::SignalSequence flashSimpleGroup(
417  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
418 
422  virtual DtNavigationLightController::SignalSequence flashCompositeGroup(
423  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
424 
428  virtual DtNavigationLightController::SignalSequence longFlashNoGroup(
429  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
430 
436  virtual DtNavigationLightController::SignalSequence longFlashSimpleGroup(
437  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
438 
441  virtual DtNavigationLightController::SignalSequence longFlashCompositeGroup(
442  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
443 
447  virtual DtNavigationLightController::SignalSequence quickFlashNoGroup(
448  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
449 
455  virtual DtNavigationLightController::SignalSequence quickFlashSimpleGroup(
456  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
457 
460  virtual DtNavigationLightController::SignalSequence quickFlashCompositeGroup(
461  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
462 
466  virtual DtNavigationLightController::SignalSequence veryQuickFlashNoGroup(
467  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
468 
474  virtual DtNavigationLightController::SignalSequence veryQuickFlashSimpleGroup(
475  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
476 
479  virtual DtNavigationLightController::SignalSequence veryQuickFlashCompositeGroup(
480  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
481 
485  virtual DtNavigationLightController::SignalSequence ultraQuickFlashNoGroup(
486  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
487 
493  virtual DtNavigationLightController::SignalSequence ultraQuickFlashSimpleGroup(
494  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
495 
498  virtual DtNavigationLightController::SignalSequence ultraQuickFlashCompositeGroup(
499  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
500 
504  virtual DtNavigationLightController::SignalSequence occultingNoGroup(
505  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
506 
512  virtual DtNavigationLightController::SignalSequence occultingSimpleGroup(
513  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
514 
517  virtual DtNavigationLightController::SignalSequence occultingCompositeGroup(
518  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
519 
526  virtual DtNavigationLightController::SignalSequence alternatingNoGroup(
527  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
528 
534  virtual DtNavigationLightController::SignalSequence alternatingSimpleGroup(
535  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
536 
539  virtual DtNavigationLightController::SignalSequence alternatingCompositeGroup(
540  float period, const DtLightMarkerStringParser::SignalGroup& signalGroup ) const;
542 
548  {
551  SignalGroupTypeCompositeGroup
552  };
553 
555  virtual SignalGroupType signalGroupType(
556  const DtLightMarkerStringParser::SiggrpData& data ) const;
557 
559  virtual DtNavigationLightController::SignalSequence morseCodeSequence(
560  char character ) const;
561 
562  public:
563 
566  static float sumSignalSequence(
568 
570  static void printSignalSequence(
572 
573  protected:
580 
583 
589 
590  typedef boost::unordered_map
592 
594 
595  };
596 
600  : public DtVirtualBaseClass
601  {
602 
603  public:
606  static DtLightSignalSequenceGeneratorCreator& instance( DtDe& de );
607 
609  static void registerInstance( DtDe& de,
611 
613  virtual DtLightSignalSequenceGenerator* create();
614  };
615 }
616 

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)