Changeset 14676 for trunk


Ignore:
Timestamp:
11/21/12 15:32:33 (12 years ago)
Author:
tbretz
Message:
Implemented interpreting and requesting wobble position from the databas and the resources.
File:
1 edited

Legend:

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

    r14669 r14676  
    701701    Source() : ra(0), dec(0), offset(0)
    702702    {
    703         angle[0] = angle[1] = 0;
     703        angle[0] = -90;
     704        angle[1] =  90;
    704705    }
    705706
     
    14021403    }
    14031404
     1405    bool AddSource(const string &name, const Source &src)
     1406    {
     1407        const auto it = fSources.find(name);
     1408        if (it!=fSources.end())
     1409            T::Warn("Source '"+name+"' already in list... overwriting.");
     1410
     1411        fSources[name] = src;
     1412        return it==fSources.end();
     1413    }
     1414
    14041415    void ReadDatabase(bool print=true)
    14051416    {
     
    14101421
    14111422        const mysqlpp::StoreQueryResult res =
    1412             db.query("SELECT fSourceName, fRightAscension, fDeclination FROM source").store();
     1423            db.query("SELECT fSourceName, fRightAscension, fDeclination, fWobbleOffset, fWobbleAngle0, fWobbleAngle1 FROM source").store();
    14131424
    14141425        fSources.clear();
    14151426        for (vector<mysqlpp::Row>::const_iterator v=res.begin(); v<res.end(); v++)
    14161427        {
     1428            const string name = (*v)[0].c_str();
     1429
    14171430            Source src;
    14181431            src.ra  = (*v)[1];
    14191432            src.dec = (*v)[2];
    1420             const string name = (*v)[0].c_str();
    1421 
    1422             // FIXME: Check double names
    1423             fSources[name] = src;
    1424 
    1425             if (print)
    1426             {
    1427                 ostringstream msg;
    1428                 msg << " " << name << setprecision(8) << ":   Ra=" << src.ra << "h Dec=" << src.dec << "deg";
    1429                 T::Message(msg);
    1430             }
     1433            src.offset = (*v)[3];
     1434            src.angle[0] = (*v)[4];
     1435            src.angle[1] = (*v)[5];
     1436            AddSource(name, src);
     1437
     1438            if (!print)
     1439                continue;
     1440
     1441            ostringstream msg;
     1442            msg << " " << name << setprecision(8) << ":   Ra=" << src.ra << "h Dec=" << src.dec << "deg";
     1443            msg << " Wobble=[" << src.offset << "," << src.angle[0] << "," << src.angle[1] << "]";
     1444            T::Message(msg);
    14311445        }
    14321446#else
     
    14491463
    14501464            string name;
    1451             double ra=0;
    1452             double dec=0;
    14531465
    14541466            int i=0;
     1467
     1468            Source src;
    14551469
    14561470            string buffer;
     
    14621476                {
    14631477                case 0: name = buffer; break;
    1464                 case 1: ra   = ConnectionDrive::ReadAngle(is); break;
    1465                 case 2: dec  = ConnectionDrive::ReadAngle(is); break;
     1478                case 1: src.ra  = ConnectionDrive::ReadAngle(is); break;
     1479                case 2: src.dec = ConnectionDrive::ReadAngle(is); break;
     1480                case 3: is >> src.offset; break;
     1481                case 4: is >> src.angle[0]; break;
     1482                case 5: is >> src.angle[1]; break;
    14661483                }
    14671484
     
    14701487            }
    14711488
    1472             if (i==3)
     1489            if (i==3 || i==6)
    14731490            {
    1474                 Source src;
    1475                 src.ra  = ra;
    1476                 src.dec = dec;
    1477 
    1478                 // FIXME: Check double names
    1479                 fSources[name] = src;
     1491                AddSource(name, src);
     1492                continue;
    14801493            }
     1494
     1495            T::Warn("Resource 'source' not correctly formatted: '"+*it+"'");
    14811496        }
    14821497
Note: See TracChangeset for help on using the changeset viewer.