#include "fgmetar.hxx"
-FGMetar::FGMetar(const string& icao, const string& proxy, const string& port, const string& auth) :
- SGMetar(icao, proxy, port, auth, _rq_time = globals->get_time_params()->get_cur_time()),
+FGMetar::FGMetar(const string& icao) :
+ SGMetar(icao),
_snow_cover(false)
{
int i;
vector<SGMetarCloud> cv = _clouds;;
if (!cv.size()) {
SGMetarCloud cl;
- cl.set(5500 * SG_FEET_TO_METER, 2);
+ cl.set(5500 * SG_FEET_TO_METER, SGMetarCloud::COVERAGE_SCATTERED);
_clouds.push_back(cl);
}
}
_wind_range_from = _wind_range_to = _wind_dir;
}
+ if (_wind_speed == SGMetarNaN)
+ _wind_speed = 0.0;
if (_gust_speed == SGMetarNaN)
_gust_speed = 0.0;
// clouds
vector<SGMetarCloud> cv = _clouds;
- vector<SGMetarCloud>::iterator cloud;
+ vector<SGMetarCloud>::iterator cloud, cv_end = cv.end();
- for (i = 0, cloud = cv.begin(); cloud != cv.end(); cloud++, i++) {
- int cov = cloud->getCoverage();
- if (cov == -1)
- cov = 0;
+ for (i = 0, cloud = cv.begin(); cloud != cv_end; ++cloud, i++) {
+ SGMetarCloud::Coverage cov = cloud->getCoverage();
+ if (cov == SGMetarCloud::COVERAGE_NIL)
+ cov = SGMetarCloud::COVERAGE_CLEAR;
double alt = cloud->getAltitude_ft();
if (alt == SGMetarNaN)
// snow cover
map<string, SGMetarRunway> rm = getRunways();
- map<string, SGMetarRunway>::const_iterator runway;
- for (runway = rm.begin(); runway != rm.end(); runway++) {
+ map<string, SGMetarRunway>::const_iterator runway, rm_end = rm.end();
+ for (runway = rm.begin(); runway != rm_end; ++runway) {
SGMetarRunway rwy = runway->second;
if (rwy.getDeposit() >= 3 ) {
_snow_cover = true;
_time = sgTimeGetGMT(_year - 1900, _month - 1, _day, _hour, _minute, 0);
- SG_LOG(SG_GENERAL, SG_INFO, _data);
+ SG_LOG(SG_ENVIRONMENT, SG_INFO, _data);
if (_x_proxy)
- SG_LOG(SG_GENERAL, SG_INFO, "METAR from proxy");
+ SG_LOG(SG_ENVIRONMENT, SG_INFO, "METAR from proxy");
else
- SG_LOG(SG_GENERAL, SG_INFO, "METAR from weather.noaa.gov");
+ SG_LOG(SG_ENVIRONMENT, SG_INFO, "METAR from weather.noaa.gov");
}