Changeset 14040 for trunk


Ignore:
Timestamp:
06/02/12 16:52:21 (12 years ago)
Author:
tbretz
Message:
Added a third column to the astro table and a source-list page with the current source positions.
Location:
trunk/FACT++
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/src/smartfact.cc

    r14037 r14040  
    471471    // -------------------------------------------------------------------
    472472
     473    string GetDir(const double angle)
     474    {
     475        static const char *dir[] =
     476        {
     477            "N", "NNE", "NE", "ENE",
     478            "E", "ESE", "SE", "SSE",
     479            "S", "SSW", "SW", "WSW",
     480            "W", "WNW", "NW", "NNW"
     481        };
     482
     483        const uint16_t idx = uint16_t(floor(angle/22.5+16.5))%16;
     484        return dir[idx];
     485    }
     486
     487    // -------------------------------------------------------------------
     488
    473489    bool CheckDataSize(const EventImp &d, const char *name, size_t size, bool min=false)
    474490    {
     
    713729        }
    714730
    715         static const char *dir[] =
    716         {
    717             "N", "NNE", "NE", "ENE",
    718             "E", "ESE", "SE", "SSE",
    719             "S", "SSW", "SW", "WSW",
    720             "W", "WNW", "NW", "NNW"
    721         };
    722 
    723 
    724         const uint16_t idx = uint16_t(floor(fMagicWeatherHist[kDir].back()/22.5+16.5))%16;
    725         //const uint16_t idx = uint16_t(floor(fmod(fMagicWeatherHist[kDir].back()/22.5+360+11.25, 360)/22.5))%16;
    726 
    727731        ostringstream out;
    728732        out << d.GetJavaDate() << '\n';
     
    738742        for (int i=0; i<6; i++)
    739743            out << HTML::kWhite << '\t' << fMagicWeatherHist[i].back() << '\n';
    740         out << HTML::kWhite << '\t' << dir[idx] << '\n';
     744        out << HTML::kWhite << '\t' << GetDir(fMagicWeatherHist[kDir].back()) << '\n';
    741745        out << HTML::kWhite << '\t';
    742746        if (fTngWeatherDustHist.size()>0)
     
    791795        const double az = d.Get<double>(8);
    792796
    793         static const char *dir[] =
    794         {
    795             "N", "NNE", "NE", "ENE",
    796             "E", "ESE", "SE", "SSE",
    797             "S", "SSW", "SW", "WSW",
    798             "W", "WNW", "NW", "NNW"
    799         };
    800 
    801         const uint16_t idx = uint16_t(floor(az/22.5+16.5))%16;
    802         fDriveControlPointingAz = dir[idx];
     797        fDriveControlPointingAz = GetDir(az);
    803798
    804799        ostringstream out;
     
    16641659    void UpdateAstronomy()
    16651660    {
     1661        const double lon = -(17.+53./60+26.525/3600);
     1662        const double lat =   28.+45./60+42.462/3600;
     1663
    16661664        Time now;
    16671665
    1668         fSun  = Sun (-(17.+53./60+26.525/3600), 28.+45./60+42.462/3600);
    1669         fMoon = Moon(-(17.+53./60+26.525/3600), 28.+45./60+42.462/3600);
     1666        fSun  = Sun (lon, lat, now);
     1667        fMoon = Moon(lon, lat, now);
    16701668
    16711669        ostringstream out;
    16721670        out << setprecision(3);
    1673         out << fSun.time.JavaDate() << '\n';
     1671        out << now.JavaDate() << '\n';
    16741672        out << HTML::kWhite << '\t' << fSun.fSunRiseDarkTime.GetAsStr("%H:%M") << '\n';
    16751673        out << HTML::kWhite << '\t' << fSun.fSunRiseAstronomical.GetAsStr("%H:%M") << '\n';
     
    16821680        out << HTML::kWhite << '\t' << fSun.fSunSetDarkTime.GetAsStr("%H:%M") << '\n';
    16831681
     1682        ofstream(fPath+"/sun.data") << out.str();
     1683
     1684        out.str("");
     1685        out << now.JavaDate() << '\n';
     1686
    16841687        out << HTML::kWhite << '\t' << fMoon.fMoonRise.GetAsStr("%H:%M") << '\n';
    16851688        out << HTML::kWhite << '\t' << fMoon.fMoonTransit.GetAsStr("%H:%M") << '\n';
    16861689        out << HTML::kWhite << '\t' << fMoon.fMoonSet.GetAsStr("%H:%M") << '\n';
     1690
     1691        out << (fSun.visible?HTML::kWhite:fMoon.color) << '\t' << fMoon.description << '\n';
    16871692
    16881693        if (!fMoon.visible)
     
    16981703        }
    16991704
    1700         out << fMoon.color  << '\t' << fMoon.description << '\n';
     1705        ostringstream out2;
     1706        out2 << setprecision(3);
     1707        out2 << now.JavaDate() << '\n';
    17011708
    17021709#ifdef HAVE_SQL
    17031710        try
    17041711        {
    1705             //static const boost::regex expr("(([[:word:].-]+)(:(.+))?@)?([[:word:].-]+)(:([[:digit:]]+))?(/([[:word:].-]+))?");
    17061712            static const boost::regex expr("(([[:word:].-]+)(:(.+))?@)?([[:word:].-]+)(:([[:digit:]]+))?(/([[:word:].-]+))");
    1707             // 2: user
    1708             // 4: pass
    1709             // 5: server
    1710             // 7: port
    1711             // 9: db
    17121713
    17131714            boost::smatch what;
     
    17231724            const string db     = what[9];
    17241725            const int port      = atoi(string(what[7]).c_str());
    1725             /*
    1726              ostringstream out;
    1727              out << "Connecting to '";
    1728              if (!user.empty())
    1729              out << user << "@";
    1730              out << server;
    1731              if (port)
    1732              out << ":" << port;
    1733              if (!db.empty())
    1734              out << "/" << db;
    1735 
    1736              T::Message(out);
    1737              */
     1726
    17381727            mysqlpp::Connection conn(db.c_str(), server.c_str(), user.c_str(), passwd.c_str(), port);
    17391728
     
    17411730                conn.query("SELECT fSourceName, fRightAscension, fDeclination FROM source").store();
    17421731
    1743             out << HTML::kWhite << '\t';
     1732            out  << HTML::kWhite << '\t';
     1733            out2 << HTML::kWhite << '\t';
    17441734
    17451735            for (vector<mysqlpp::Row>::const_iterator v=res.begin(); v<res.end(); v++)
     
    17481738                const double ra   = (*v)[1];
    17491739                const double dec  = (*v)[2];
    1750 
     1740#ifdef HAVE_NOVA
     1741                ln_lnlat_posn observer;
     1742                observer.lng = lon;
     1743                observer.lat = lat;
     1744
     1745                ln_hrz_posn hrz;
     1746                ln_equ_posn pos;
     1747                pos.ra  = ra*15;
     1748                pos.dec = dec;
     1749
     1750                ln_get_hrz_from_equ(&pos, &observer, now.JD(), &hrz);
     1751                //az =    hrz.az;
     1752
     1753                string col = HTML::kWhite;
     1754                if (hrz.alt>5)
     1755                    col = HTML::kRed;
     1756                if (hrz.alt>25)
     1757                    col = HTML::kYellow;
     1758                if (hrz.alt>60)
     1759                    col = HTML::kGreen;
     1760
     1761                out2 << "<tr bgcolor='" << col << "'>";
     1762                out2 << "<td>" << name << "</td>";
     1763                if (hrz.alt>5)
     1764                {
     1765                    out2 << "<td>" << 90-hrz.alt << "&deg;</td>";
     1766                    out2 << "<td>" << GetDir(hrz.az) << "</td>";
     1767                }
     1768                else
     1769                    out2 << "<td/><td/>";
     1770                out2 << "</tr>";
     1771#endif
    17511772                const int32_t angle = fMoon.Angle(ra, dec);
    17521773
     
    17561777                out << "</tr>";
    17571778            }
    1758             out << '\n';
    1759             out << HTML::kWhite << '\t' << Time()-now << '\n';
     1779            out  << '\n';
     1780            out2 << '\n';
     1781            out  << HTML::kWhite << '\t' << Time()-now << '\n';
     1782            out2 << HTML::kWhite << '\t' << Time()-now << '\n';
    17601783        }
    17611784        catch (const exception &e)
    17621785        {
    1763             out << '\n';
    1764             out << HTML::kWhite << '\t' << "ERROR  - "+string(e.what()) << '\n';
     1786            out  << '\n';
     1787            out2 << '\n';
     1788            out  << HTML::kWhite << '\t' << "ERROR  - "+string(e.what()) << '\n';
     1789            out2 << HTML::kWhite << '\t' << "ERROR  - "+string(e.what()) << '\n';
    17651790        }
    17661791#endif
    17671792
    1768         ofstream(fPath+"/astro.data") << out.str();
     1793        ofstream(fPath+"/moon.data") << out.str();
     1794        ofstream(fPath+"/source-list.data") << out2.str();
    17691795    }
    17701796
  • trunk/FACT++/www/smartfact/index.css

    r14036 r14040  
    238238        margin:0;
    239239}
     240.astro td:nth-child(3) {
     241        text-align:center;
     242        padding:0px 5px 0px 0px;
     243        margin:0;
     244}
Note: See TracChangeset for help on using the changeset viewer.