]> git.mxchange.org Git - flightgear.git/commitdiff
NewAtis: handle varying winds
authorTorsten Dreyer <torsten@t3r.de>
Wed, 5 Mar 2014 12:52:43 +0000 (13:52 +0100)
committerTorsten Dreyer <torsten@t3r.de>
Wed, 5 Mar 2014 12:52:43 +0000 (13:52 +0100)
src/ATC/ATISEncoder.cxx
src/ATC/ATISEncoder.hxx
src/ATC/CurrentWeatherATISInformationProvider.hxx
src/ATC/MetarPropertiesATISInformationProvider.cxx
src/ATC/MetarPropertiesATISInformationProvider.hxx

index 6b6259b218d50c1d04ab20461532ce3c9d926703..436c6bb5568e59ca1d4bc22da848309e8d08d94d 100644 (file)
@@ -113,6 +113,8 @@ ATISEncoder::ATISEncoder()
   handlerMap.insert( std::make_pair( "rwy-to", &ATISEncoder::getTakeoffRunway ));
   handlerMap.insert( std::make_pair( "transition-level", &ATISEncoder::getTransitionLevel ));
   handlerMap.insert( std::make_pair( "wind-dir", &ATISEncoder::getWindDirection ));
+  handlerMap.insert( std::make_pair( "wind-from", &ATISEncoder::getWindMinDirection ));
+  handlerMap.insert( std::make_pair( "wind-to", &ATISEncoder::getWindMaxDirection ));
   handlerMap.insert( std::make_pair( "wind-speed-kn", &ATISEncoder::getWindspeedKnots ));
   handlerMap.insert( std::make_pair( "gusts", &ATISEncoder::getGustsKnots ));
   handlerMap.insert( std::make_pair( "visibility-metric", &ATISEncoder::getVisibilityMetric ));
@@ -386,6 +388,16 @@ string ATISEncoder::getWindDirection( SGPropertyNode_ptr )
   return getSpokenNumber( _atis->getWindDeg(), true, 3 );
 }
 
+string ATISEncoder::getWindMinDirection( SGPropertyNode_ptr )
+{
+  return getSpokenNumber( _atis->getWindMinDeg(), true, 3 );
+}
+
+string ATISEncoder::getWindMaxDirection( SGPropertyNode_ptr )
+{
+  return getSpokenNumber( _atis->getWindMaxDeg(), true, 3 );
+}
+
 string ATISEncoder::getWindspeedKnots( SGPropertyNode_ptr )
 {
   return getSpokenNumber( _atis->getWindSpeedKt() );
index 2696929693a4c6e7a82eb27099dae3c79bc705ce..410eb842ca3387d52a002aecce74b7aeaa4f9525 100644 (file)
@@ -48,6 +48,8 @@ public:
     virtual long getTime() = 0; // see makeAtisTime
 
     virtual int getWindDeg() = 0;
+    virtual int getWindMinDeg() = 0;
+    virtual int getWindMaxDeg() = 0;
     virtual int getWindSpeedKt() = 0;
     virtual int getGustsKt() = 0;
     virtual int getQnh() = 0;
@@ -77,6 +79,8 @@ protected:
   virtual std::string getTakeoffRunway( SGPropertyNode_ptr );
   virtual std::string getTransitionLevel( SGPropertyNode_ptr );
   virtual std::string getWindDirection( SGPropertyNode_ptr );
+  virtual std::string getWindMinDirection( SGPropertyNode_ptr );
+  virtual std::string getWindMaxDirection( SGPropertyNode_ptr );
   virtual std::string getWindspeedKnots( SGPropertyNode_ptr );
   virtual std::string getGustsKnots( SGPropertyNode_ptr );
   virtual std::string getCavok( SGPropertyNode_ptr );
index f3d7fdbb96eaf9388c23faaa7b7b879538bbef76..1c96bacecb951f0a41cc47425a2e1f0071f303c6 100644 (file)
@@ -36,6 +36,8 @@ protected:
     virtual std::string airportId();
     virtual long getTime();
     virtual int getWindDeg();
+    virtual int getWindMinDeg() { return getWindDeg(); }
+    virtual int getWindMaxDeg() { return getWindDeg(); }
     virtual int getWindSpeedKt();
     virtual int getGustsKt();
     virtual int getQnh();
index d32033a53ce1424b0b84501ac6ea8e958d9398f2..7380ca93e51adeac17c28f8aabc3d37a40e32dd8 100644 (file)
@@ -54,6 +54,14 @@ int MetarPropertiesATISInformationProvider::getWindDeg()
    return _metar->getIntValue( "base-wind-dir-deg" );
 }
 
+int MetarPropertiesATISInformationProvider::getWindMinDeg()
+{
+   return _metar->getIntValue( "base-wind-range-from" );
+}
+int MetarPropertiesATISInformationProvider::getWindMaxDeg()
+{
+   return _metar->getIntValue( "base-wind-range-to" );
+}
 int MetarPropertiesATISInformationProvider::getWindSpeedKt()
 {
   return _metar->getIntValue( "base-wind-speed-kt" );
index 2df6e626330f971cb3b5705593e6df8c87bdcc80..151ded47509bec78e5a171410e93704a9ae4801c 100644 (file)
@@ -38,6 +38,8 @@ protected:
     virtual std::string airportId();
     virtual long getTime();
     virtual int getWindDeg();
+    virtual int getWindMinDeg();
+    virtual int getWindMaxDeg();
     virtual int getWindSpeedKt();
     virtual int getGustsKt();
     virtual int getQnh();