Changeset 2615 for trunk/MagicSoft/Cosy


Ignore:
Timestamp:
12/07/03 14:48:11 (21 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Cosy
Files:
31 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Cosy/Changelog

    r2614 r2615  
    2626   * Makefile:
    2727     - added 'install'
     28
     29   * bending_magic.txt:
     30     - small chenges to correct AN, AW correction (new fit)
     31     
     32   * cosy.cc, candrv/nodedrv.cc, devdrv/macs.[h,cc],
     33     devdrv/shaftencoder.[h,cc], gui/MGCosy.cc,
     34     gui/MGPngReader.cc, gui/MGTPoint.cc, main/MBending.cc,
     35     main/MCaos.cc, main/MCosy.cc, main/MStarguider.[h,cc],
     36     tcpip/MCeCoCom.[h,cc], tcpip/MDriveCom.cc,
     37     videodev/Writer.cc:
     38     - replaced Timer by MTime
     39     
     40   * base/BaseLinkDef.h:
     41     - added MTime
     42     - added MAstro
     43     
     44   * base/Makefile:
     45     - added MTime
     46     - added MAstro
     47     
     48   * catalog/SlaStars.[h,cc], catalog/Slalib.[h,cc]:
     49     - made independant of derivement from Timer
     50     - added old Timer as new MTime fTime data member
     51
     52   * catalog/Slalib.h:
     53     - removed conversion functions - use MAstro instead
     54
     55   * gui/MGCosy.cc, gui/MGSkyPosition.cc, tcpip/MDriveCom.cc:
     56     - replaced static Slalib:: methody by MAstro
     57     
     58   * main/MBending.[h,cc]:
     59     - added corrected An/Aw algorithm
     60     - removed 360deg ambiguity
    2861
    2962
  • trunk/MagicSoft/Cosy/Makefile

    r2384 r2615  
    131131        @ln -sf ../../Mars/mbase/MLogManip.h base/MLogManip.h
    132132        @ln -sf ../../Mars/mbase/MLogManip.cc base/MLogManip.cc
     133        @ln -sf ../../Mars/mbase/MAstro.h base/MAstro.h
     134        @ln -sf ../../Mars/mbase/MAstro.cc base/MAstro.cc
    133135        @ln -sf ../../Mars/mbase/MGList.h base/MGList.h
    134136        @ln -sf ../../Mars/mbase/MGList.cc base/MGList.cc
     137        @ln -sf ../../Mars/mbase/MTime.h base/MTime.h
     138        @ln -sf ../../Mars/mbase/MTime.cc base/MTime.cc
    135139        @ln -sf ../../Mars/mbase/MParContainer.h base/MParContainer.h
    136140        @ln -sf ../../Mars/mbase/MParContainer.cc base/MParContainer.cc
  • trunk/MagicSoft/Cosy/base/BaseLinkDef.h

    r1759 r2615  
    1111#pragma link C++ class MParContainer+;
    1212#pragma link C++ class MObservatory+;
     13#pragma link C++ class MAstro+;
     14
     15#pragma link C++ class MTime+;
     16#pragma link C++ function operator<<(ostream&, MTime&);
    1317
    1418#endif
  • trunk/MagicSoft/Cosy/base/Makefile

    r1759 r2615  
    3636           MThread.cc \
    3737           MTimeout.cc \
     38           MTime.cc \
     39           MAstro.cc \
    3840           MStar.cc \
    3941           MStarList.cc \
     
    4244           MLogManip.cc \
    4345           MObservatory.cc \
    44            MGList.cc \
    45            timer.cc
     46           MGList.cc
    4647
    4748CINTHEADERS = MStar.h \
    4849              MGList.h \
     50              MTime.h \
     51              MAstro.h \
    4952              MLog.h \
    5053              MLogManip.h \
  • trunk/MagicSoft/Cosy/bending_magic.txt

    r2568 r2615  
    1 MAGIC1 2003/11/23 0:46:12.880585
     1MAGIC1 2003/12/07 0:02:39.100594
    22S   00   000000   000000  0000000
    3      IA      501.6639   0.034618314
    4      IE    -9.0592286   0.020049537
     3     IA     501.66388   0.034611014
     4     IE    -9.0592376    0.02005678
    55   FLOP             0             0
    66     AN             0             0
    7      AW    -1.5593339   0.022280707
    8    NPAE   0.073756927   0.039384952
     7     AW    -1.5593388   0.022279916
     8   NPAE   0.073726654   0.039384899
    99     CA             0             0
    1010     TF             0             0
  • trunk/MagicSoft/Cosy/candrv/nodedrv.cc

    r2518 r2615  
    5050#include <TTimer.h>
    5151
    52 #include "base/timer.h"
     52#include "MTime.h"
    5353#include "network.h"
    5454#include "MLogManip.h"
     
    489489class NodeGuard : public MThread
    490490{
    491     Double_t fTimeoutTime;
    492     Double_t fGuardTime;
     491    Double_t fTimeoutTime;     //[s]
     492    Double_t fGuardTime;       //[s]
    493493    Int_t    fLifeTimeFactor;
    494494
     
    503503    void Reset(timeval_t *tv=NULL)
    504504    {
    505         Timer t;
     505        MTime t;
    506506        if (tv)
    507             t.SetTimer(tv);
     507            t.Set(*tv);
    508508        else
    509509            t.Now();
     
    525525                fDrv->SendNodeguard();
    526526
    527             Timer t;
     527            MTime t;
    528528            t.Now();
    529529
    530             const Timer t0 = t+fGuardTime;
     530            const Double_t t0 = t+fGuardTime;
    531531
    532532            while (!HasStopFlag() && t<t0 && t<fTimeoutTime)
  • trunk/MagicSoft/Cosy/catalog/SlaStars.cc

    r1758 r2615  
    3131}
    3232
    33 void SlaStars::SetMjd(const double mjd)
     33void SlaStars::SetMjd(double mjd)
    3434{
    3535    Slalib::SetMjd(mjd);
  • trunk/MagicSoft/Cosy/catalog/SlaStars.h

    r1953 r2615  
    2323    //    const RaDec GetRaDec() const { return fRaDec*360/D2PI; }
    2424
    25     virtual void SetMjd(const double mjd);
     25    virtual void SetMjd(double mjd);
    2626
    2727    void   Set(const AltAz &altaz);
  • trunk/MagicSoft/Cosy/catalog/Slalib.cc

    r2280 r2615  
    1010ClassImp(Slalib);
    1111
    12 Slalib::Slalib(MObservatory::LocationName_t key) : Timer(), MObservatory(key)
    13 {
    14 }
    15 
    16 Slalib::~Slalib()
     12Slalib::Slalib(MObservatory::LocationName_t key) : MObservatory(key)
    1713{
    1814}
     
    3228void Slalib::SetMjd(double mjd)
    3329{
    34     Timer::SetMjd(mjd);
     30    fTime.SetMjd(mjd);
    3531    fAlpha = slaGmst(mjd) + GetElong();
    3632}
     
    5753    return ZdAz(kPiDiv2-alt, az);
    5854}
    59 
     55/*
    6056Double_t Slalib::Hms2Sec(Int_t deg, UInt_t min, Double_t sec, Char_t sgn)
    6157{
     
    6662Double_t Slalib::Dms2Rad(Int_t deg, UInt_t min, Double_t sec, Char_t sgn)
    6763{
    68     /* pi/(180*3600):  arcseconds to radians */
     64    // pi/(180*3600):  arcseconds to radians
    6965#define DAS2R 4.8481368110953599358991410235794797595635330237270e-6
    7066    return Hms2Sec(deg, min, sec, sgn)*DAS2R;
     
    7369Double_t Slalib::Hms2Rad(Int_t hor, UInt_t min, Double_t sec, Char_t sgn)
    7470{
    75     /* pi/(12*3600):  seconds of time to radians */
     71    // pi/(12*3600):  seconds of time to radians
    7672#define DS2R 7.2722052166430399038487115353692196393452995355905e-5
    7773    return Hms2Sec(hor, min, sec, sgn)*DS2R;
     
    10096void Slalib::Day2Hms(Double_t day, Char_t &sgn, UShort_t &hor, UShort_t &min, UShort_t &sec)
    10197{
    102     /* Handle sign */
     98    // Handle sign
    10399    sgn = day<0?'-':'+';
    104100
    105     /* Round interval and express in smallest units required */
     101    // Round interval and express in smallest units required
    106102    Double_t a = Round(86400. * TMath::Abs(day)); // Days to seconds
    107103
    108     /* Separate into fields */
     104    // Separate into fields
    109105    const Double_t ah = Trunc(a/3600.);
    110106    a -= ah * 3600.;
     
    113109    const Double_t as = Trunc(a);
    114110
    115     /* Return results */
     111    // Return results
    116112    hor = (UShort_t)ah;
    117113    min = (UShort_t)am;
     
    151147void Slalib::Day2Hm(Double_t day, Char_t &sgn, UShort_t &hor, Double_t &min)
    152148{
    153     /* Handle sign */
     149    // Handle sign
    154150    sgn = day<0?'-':'+';
    155151
    156     /* Round interval and express in smallest units required */
     152    // Round interval and express in smallest units required
    157153    Double_t a = Round(86400. * TMath::Abs(day)); // Days to seconds
    158154
    159     /* Separate into fields */
     155    // Separate into fields
    160156    const Double_t ah = Trunc(a/3600.);
    161157    a -= ah * 3600.;
    162158
    163     /* Return results */
     159    // Return results
    164160    hor = (UShort_t)ah;
    165161    min = a/60.;
     
    196192}
    197193
     194*/
  • trunk/MagicSoft/Cosy/catalog/Slalib.h

    r2280 r2615  
    55
    66#include "coord.h"
    7 #include "timer.h"
     7#include "MTime.h"
    88#include "MObservatory.h"
    99
    10 class Slalib : public Timer, public MObservatory
     10class Slalib : public MObservatory
    1111{
    1212private:
     13    MTime fTime;
     14
    1315    double fAlpha;
    1416
     
    1820public:
    1921    Slalib(MObservatory::LocationName_t key);
    20     virtual ~Slalib();
    21 
    22     static Double_t Hms2Sec(Int_t deg, UInt_t min, Double_t sec, char sgn='+');
    23     static Double_t Dms2Rad(Int_t deg, UInt_t min, Double_t sec, Char_t sgn='+');
    24     static Double_t Hms2Rad(Int_t hor, UInt_t min, Double_t sec, Char_t sgn='+');
    25     static Double_t Dms2Deg(Int_t deg, UInt_t min, Double_t sec, Char_t sgn='+');
    26     static Double_t Hms2Deg(Int_t hor, UInt_t min, Double_t sec, Char_t sgn='+');
    27     static Double_t Dms2Hor(Int_t deg, UInt_t min, Double_t sec, Char_t sgn='+');
    28     static Double_t Hms2Hor(Int_t hor, UInt_t min, Double_t sec, Char_t sgn='+');
    29 
    30     static void Day2Hms(Double_t rad, Char_t &sgn, UShort_t &deg, UShort_t &min, UShort_t &sec);
    31     static void Rad2Dms(Double_t rad, Char_t &sgn, UShort_t &deg, UShort_t &min, UShort_t &sec);
    32     static void Rad2Hms(Double_t rad, Char_t &sgn, UShort_t &deg, UShort_t &min, UShort_t &sec);
    33     static void Deg2Dms(Double_t rad, Char_t &sgn, UShort_t &deg, UShort_t &min, UShort_t &sec);
    34     static void Deg2Hms(Double_t rad, Char_t &sgn, UShort_t &deg, UShort_t &min, UShort_t &sec);
    35     static void Hor2Dms(Double_t rad, Char_t &sgn, UShort_t &deg, UShort_t &min, UShort_t &sec);
    36     static void Hor2Hms(Double_t rad, Char_t &sgn, UShort_t &deg, UShort_t &min, UShort_t &sec);
    37 
    38     static void Day2Hm(Double_t rad, Char_t &sgn, UShort_t &deg, Double_t &min);
    39     static void Rad2Dm(Double_t rad, Char_t &sgn, UShort_t &deg, Double_t &min);
    40     static void Rad2Hm(Double_t rad, Char_t &sgn, UShort_t &deg, Double_t &min);
    41     static void Deg2Dm(Double_t rad, Char_t &sgn, UShort_t &deg, Double_t &min);
    42     static void Deg2Hm(Double_t rad, Char_t &sgn, UShort_t &deg, Double_t &min);
    43     static void Hor2Dm(Double_t rad, Char_t &sgn, UShort_t &deg, Double_t &min);
    44     static void Hor2Hm(Double_t rad, Char_t &sgn, UShort_t &deg, Double_t &min);
    4522
    4623    virtual void SetMjd(double mjd);
     24    Double_t GetMjd() const { return fTime.GetMjd(); }
     25    void Now() { fTime.Now(); }
     26    const MTime &GetTime() const { return fTime; }
    4727
    4828    double GetAlpha() const  { return fAlpha; }
  • trunk/MagicSoft/Cosy/cosy.cc

    r2568 r2615  
    77
    88#include "MCosy.h"
     9#include "MTime.h"
    910#include "MLogManip.h"
    10 #include "base/timer.h"
    1111
    1212#include "Camera.h"
     
    3636    gLog << endl;
    3737
    38     Timer time;
    39     time.Now();
    40 
    4138    //
    42     // this must move to MGCosy !!!! (or MApplication)
     39    // this must move to MGCosy !!!!
    4340    //
    44     int i=0;
    45     char name[100];
     41    MTime time;
     42    TString name;
    4643    while (1)
    4744    {
    48         sprintf(name, "log/cosy%03d.log", i++);
     45        time.Now();
     46        name = Form("log/cosy_%s.log", (const char*)time.GetFileName());
     47        cout << "Test: " << time.GetFileName() << " " << name << endl;
    4948        if (gSystem->AccessPathName(name, kFileExists))
    5049            break;
     
    7069    //
    7170    clog("- Constructing MCosy.");
    72 
     71/*
    7372    //
    7473    // check for the right usage of the program
     
    8887            break;
    8988        }
    90 
    91     MCosy *cosy = new MCosy(mode, "/dev/dpm_00", 125, lout);
     89*/
     90    MCosy *cosy = new MCosy("/dev/dpm_00", 125, lout);
    9291
    9392    clog("- Starting MCosy.");
     
    134133
    135134    cout << "The End." << endl;
    136 
    137135}
  • trunk/MagicSoft/Cosy/devdrv/macs.cc

    r2613 r2615  
    44#include <sys/time.h>   // timeval->tv_sec
    55
    6 #include "timer.h"
    76#include "network.h"
    87#include "MLogManip.h"
     
    3231Macs::Macs(const BYTE_t nodeid, const char *name, MLog &out)
    3332    : NodeDrv(nodeid, name, out), fMacId(2*nodeid+1),
    34     fPos(0), fPosTime(0.0), fPdoPos(0), fPdoTime(0.0),
    35     fPosActive(0), fRpmActive(0), fStatusPdo3(0xff)
     33    fPos(0), fPdoPos(0), fPosActive(0), fRpmActive(0),
     34    fStatusPdo3(0xff)
    3635{
    3736//    fTimeout = new TTimer(this, 100); //, kFALSE); // 100ms, asynchronous
     
    8786//        lout << "Actual Position: " << dec << (signed long)val << endl;
    8887        fPos = (LWORDS_t)val;
    89         fPosTime.SetTimer(tv);
     88        fPosTime.Set(*tv);
    9089        return;
    9190/*
     
    576575    fStatus = data[3];
    577576
    578     fPdoTime.SetTimer(tv);
     577    fPdoTime.Set(*tv);
    579578}
    580579
     
    735734        return;
    736735
    737     Timer time;
     736    MTime time;
    738737    time.Now();
    739738
     
    811810}
    812811
    813 double Macs::GetTime()
    814 {
    815     return fPosTime.Now();
    816 }
    817 
    818 double Macs::GetMjd()
    819 {
    820     return fPosTime.GetMjd();
    821 }
    822 
    823 double Macs::GetPdoTime()
    824 {
    825     return fPdoTime.Now();
    826 }
    827 
    828 double Macs::GetPdoMjd()
    829 {
    830     return fPdoTime.GetMjd();
    831 }
    832 
    833812/*   0x2000 0 rw Maximum positioning error     */
    834813/*          1 rw Negative Software Endswitch   */
  • trunk/MagicSoft/Cosy/devdrv/macs.h

    r2280 r2615  
    33
    44#include "nodedrv.h"
    5 #include "base/timer.h"
     5#include "MTime.h"
    66
    77class Macs : public NodeDrv
     
    1616
    1717    LWORDS_t fPos;
    18     Timer    fPosTime;
     18    MTime    fPosTime;
    1919
    2020    LWORD_t  fRes;      // Encoder resolution
    2121
    2222    LWORDS_t fPdoPos;
    23     Timer    fPdoTime;
     23    MTime    fPdoTime;
    2424
    2525    BYTE_t   fPosActive;
     
    106106    BYTE_t GetStatus() const { return fStatus; }
    107107
    108     double GetTime();
    109     double GetMjd();
    110 
    111     double GetPdoTime();
    112     double GetPdoMjd();
    113 
    114108    LWORDS_t GetPdoPos() const { return fPdoPos; }
    115109
  • trunk/MagicSoft/Cosy/devdrv/shaftencoder.cc

    r2518 r2615  
    11#include "shaftencoder.h"
    22
    3 #include "base/timer.h"
    43#include "network.h"
    54
     
    182181
    183182    fPos = pos;
    184     fTime.SetTimer(tv);
     183    fTime.Set(*tv);
    185184    fPosHasChanged = true;
    186185}
     
    198197
    199198    fPos=pos;
    200     fTime.SetTimer(tv);
     199    fTime.Set(*tv);
    201200    fPosHasChanged=true;
    202201
     
    234233    fTurn = turn;
    235234
    236     fTime.SetTimer(tv);
     235    fTime.Set(*tv);
    237236    fPosHasChanged=true;
    238 }
    239 
    240 double ShaftEncoder::GetTime()
    241 {
    242     return fTime.Now();
    243237}
    244238
  • trunk/MagicSoft/Cosy/devdrv/shaftencoder.h

    r2518 r2615  
    22#define SHAFTENCODER_H
    33
    4 #include "base/timer.h"
    54#include "nodedrv.h"
     5#include "MTime.h"
    66
    77class TGLabel;
     
    2424    bool fPosHasChanged;  //!
    2525
    26     Timer fTime;
     26    MTime fTime;
    2727
    2828    void HandlePDOType0(BYTE_t *data, timeval_t *tv);
     
    5454    LWORD_t  GetPhysRes() { return fTicks; }
    5555
    56     double GetTime();
    5756    double GetMjd();
    5857
  • trunk/MagicSoft/Cosy/gui/MGCosy.cc

    r2518 r2615  
    2222#include <TApplication.h>  // gApplication
    2323
    24 //#include "timer.h"         // Timer
    25 
    2624#include "MCosy.h"
     25#include "MTime.h"
     26#include "MAstro.h"
    2727#include "MGList.h"
    2828#include "MDriveCom.h"
     
    365365        box->AddEntry(str, i++);
    366366
    367         fStarList.Add(Slalib::Hms2Hor(h, m, s), Slalib::Dms2Deg(d, am, as));
     367        fStarList.Add(MAstro::Hms2Hor(h, m, s), MAstro::Dms2Deg(d, am, as));
    368368    }
    369369}
     
    889889
    890890    // Calculate Display values
    891     Slalib::Rad2Hm(rd.Ra(),  sh, h, hm);
    892     Slalib::Rad2Dm(rd.Dec(), sd, d, dm);
     891    MAstro::Rad2Hm(rd.Ra(),  sh, h, hm);
     892    MAstro::Rad2Dm(rd.Dec(), sd, d, dm);
    893893
    894894    rd.Ra(rd.Ra()  * 12/TMath::Pi());
     
    922922
    923923    // Calculate display values
    924     Slalib::Hor2Hm(radec.Ra(),  sh, h, hm);
    925     Slalib::Deg2Dm(radec.Dec(), sd, d, dm);
     924    MAstro::Hor2Hm(radec.Ra(),  sh, h, hm);
     925    MAstro::Deg2Dm(radec.Dec(), sd, d, dm);
    926926
    927927    test = radec*600;
     
    974974    Char_t   sz, sa;
    975975
    976     Slalib::Rad2Dm(soll.Zd(), sz, z, zm);
    977     Slalib::Rad2Dm(soll.Az(), sa, a, am);
     976    MAstro::Rad2Dm(soll.Zd(), sz, z, zm);
     977    MAstro::Rad2Dm(soll.Az(), sa, a, am);
    978978
    979979    const ZdAz test = soll*kRad2Deg*600;
     
    994994double MGCosy::UpdateTime()
    995995{
    996     Timer time;
     996    MTime time;
    997997    time.Now();
    998998
    999     static char oldtxt[256];
    1000 
    1001     char text[256];
    1002 
    1003     strcpy(text, time.GetTimeStr());
    1004 
    1005     char *dot = strrchr(text, '.');
    1006 
    1007     if (dot)
    1008         dot[2] = 0;
    1009 
    1010     if (strcmp(oldtxt, text))
     999    static TString oldtxt;
     1000
     1001    TString text(time.GetString());
     1002    text.Remove(text.Last('.')+2);
     1003
     1004    if (text!=oldtxt)
    10111005    {
    10121006        fUtc->SetText(new TGString(text));
    1013         strcpy(oldtxt, text);
    1014     }
    1015 
    1016     static long oldmjd;
    1017     double mjd = time.GetMjd();
    1018 
    1019     if (oldmjd != 1000000*mjd)
    1020     {
    1021         sprintf(text, "%12.6f", mjd);
    1022         fMjd->SetText(new TGString(text));
    1023 
    1024         oldmjd = (long)(1000000*mjd);
     1007        oldtxt = text;
     1008    }
     1009
     1010    static ULong_t oldmjd=0;
     1011    const double mjd = time.GetMjd();
     1012
     1013    if (oldmjd != (ULong_t)(1000000*mjd))
     1014    {
     1015        fMjd->SetText(new TGString(Form("%12.6f", mjd)));
     1016        oldmjd = (ULong_t)(1000000*mjd);
    10251017    }
    10261018
     
    10341026    acc *= kRad2Deg;   // [deg]
    10351027
    1036     double mjd = UpdateTime();
     1028    const double mjd = UpdateTime();
    10371029    fSkyPosition->Update(pos, mjd);
    10381030    //UpdateOffset(off);
     
    12051197        while (i-->0)
    12061198        {
    1207             Timer tm;
    1208             tm.Now();
     1199            //Timer tm;
     1200            //tm.Now();
    12091201
    12101202            if (!Move(75, -80, 1000000, 13))
     
    13861378                    UShort_t d, m, s;
    13871379                    Char_t sgn;
    1388                     Slalib::Deg2Dms(za.X(), sgn, d, m, s);
     1380                    MAstro::Deg2Dms(za.X(), sgn, d, m, s);
    13891381                    if (sgn=='-') fout << sgn;
    13901382                    fout << d << " " << m << " " << s << " \t";
    1391                     Slalib::Deg2Dms(za.Y(), sgn, d, m, s);
     1383                    MAstro::Deg2Dms(za.Y(), sgn, d, m, s);
    13921384                    if (sgn=='-') fout << sgn;
    13931385                    fout << d << " " << m << " " << s << " \t";
  • trunk/MagicSoft/Cosy/gui/MGPngReader.cc

    r1816 r2615  
    2525#include "CaosFilter.h"
    2626#include "Writer.h"
    27 #include "base/timer.h"
     27#include "MTime.h"
    2828
    2929#include "MStarList.h"
     
    10221022        // Double_t kConv = 0.502; // [pix/mm]
    10231023
    1024         static Timer t0(tm);
    1025         Timer t(tm);
    1026 
    1027         fTime = (t.GetMjd()-t0.GetMjd())*24*60*60;
     1024        static MTime t0(*tm);
     1025        MTime t(*tm);
     1026
     1027        fTime = t-t0;
    10281028
    10291029        Leds leds;
     
    10981098    if (fDisplay->IsEntryChecked(IDM_kCatalog))
    10991099    {
    1100         Timer time(tm);
     1100        MTime time(*tm);
    11011101
    11021102        GetCoordinates();
  • trunk/MagicSoft/Cosy/gui/MGSkyPosition.cc

    r2280 r2615  
    1616
    1717#include "coord.h"
     18#include "MAstro.h"
    1819#include "SlaStars.h"
    1920#include "SlaPlanets.h"
     
    113114{
    114115    // 32349   Sirius           -1.44 1.45    2.64      0.009   A0m
    115     (RaDec(Slalib::Hms2Rad(  6, 45,  0), Slalib::Dms2Rad(-16, 42,  0))),
     116    (RaDec(MAstro::Hms2Rad(  6, 45,  0), MAstro::Dms2Rad(-16, 42,  0))),
    116117    // 30438   Canopus          -0.62 -5.53   95.88     0.164   F0Ib
    117     (RaDec(Slalib::Hms2Rad(  6, 23,  0), Slalib::Dms2Rad(-52, 41,  0))),
     118    (RaDec(MAstro::Hms2Rad(  6, 23,  0), MAstro::Dms2Rad(-52, 41,  0))),
    118119    // 69673   Arcturus         -0.05 -0.31   11.25     1.239   K2IIIp
    119     (RaDec(Slalib::Hms2Rad( 14, 15,  0), Slalib::Dms2Rad( 19, 10,  0))),
     120    (RaDec(MAstro::Hms2Rad( 14, 15,  0), MAstro::Dms2Rad( 19, 10,  0))),
    120121    //         Vega              0.03
    121     (RaDec(Slalib::Hms2Rad( 18, 37,  0), Slalib::Dms2Rad( 38, 47,  0))),
     122    (RaDec(MAstro::Hms2Rad( 18, 37,  0), MAstro::Dms2Rad( 38, 47,  0))),
    122123    //         Altair            0.77
    123     (RaDec(Slalib::Hms2Rad( 19, 50,  0), Slalib::Dms2Rad(  8, 52,  6))),
     124    (RaDec(MAstro::Hms2Rad( 19, 50,  0), MAstro::Dms2Rad(  8, 52,  6))),
    124125    //         Antares           0.96
    125     (RaDec(Slalib::Hms2Rad( 16, 29, 25), Slalib::Dms2Rad(-26, 25, 55))),
     126    (RaDec(MAstro::Hms2Rad( 16, 29, 25), MAstro::Dms2Rad(-26, 25, 55))),
    126127    //         Spica             0.98
    127     (RaDec(Slalib::Hms2Rad( 13, 25, 13), Slalib::Dms2Rad(-11,  9, 41))),
     128    (RaDec(MAstro::Hms2Rad( 13, 25, 13), MAstro::Dms2Rad(-11,  9, 41))),
    128129    //         Deneb             1.25
    129     (RaDec(Slalib::Hms2Rad( 20, 41, 26), Slalib::Dms2Rad( 45, 16, 49))),
    130     (RaDec(Slalib::Hms2Rad(  1, 37,  6), Slalib::Dms2Rad(-57, 14,  0))),
    131     (RaDec(Slalib::Hms2Rad( 12, 26,  6), Slalib::Dms2Rad(-63, 06,  0))),
    132     (RaDec(Slalib::Hms2Rad(  5, 14,  0), Slalib::Dms2Rad(- 8, 12,  5))),
    133     (RaDec(Slalib::Hms2Rad(  5, 16,  0), Slalib::Dms2Rad( 46, 00,  0))),
    134     (RaDec(Slalib::Hms2Rad(  7, 39,  0), Slalib::Dms2Rad(  5, 14,  0))),
    135     (RaDec(Slalib::Hms2Rad(  5, 55,  0), Slalib::Dms2Rad(  7, 24,  0)))
     130    (RaDec(MAstro::Hms2Rad( 20, 41, 26), MAstro::Dms2Rad( 45, 16, 49))),
     131    (RaDec(MAstro::Hms2Rad(  1, 37,  6), MAstro::Dms2Rad(-57, 14,  0))),
     132    (RaDec(MAstro::Hms2Rad( 12, 26,  6), MAstro::Dms2Rad(-63, 06,  0))),
     133    (RaDec(MAstro::Hms2Rad(  5, 14,  0), MAstro::Dms2Rad(- 8, 12,  5))),
     134    (RaDec(MAstro::Hms2Rad(  5, 16,  0), MAstro::Dms2Rad( 46, 00,  0))),
     135    (RaDec(MAstro::Hms2Rad(  7, 39,  0), MAstro::Dms2Rad(  5, 14,  0))),
     136    (RaDec(MAstro::Hms2Rad(  5, 55,  0), MAstro::Dms2Rad(  7, 24,  0)))
    136137};
    137138
     
    334335    Char_t   sx, sy;
    335336    Double_t xm, ym;
    336     Slalib::Deg2Dm(x, sx, xd, xm);
    337     Slalib::Deg2Dm(y, sy, yd, ym);
     337    MAstro::Deg2Dm(x, sx, xd, xm);
     338    MAstro::Deg2Dm(y, sy, yd, ym);
    338339
    339340    const int fx = (int)(x*600);
  • trunk/MagicSoft/Cosy/gui/MGTPoint.cc

    r1692 r2615  
    1818#include "Filter.h"
    1919#include "Writer.h"
    20 #include "base/timer.h"
     20#include "MTime.h"
    2121
    2222ClassImp(MGStarguider);
     
    397397            GetCoordinates();
    398398
    399             Timer time(tm);
     399            MTime time(*tm);
    400400            fSao->GetImg(myimg, cimg, time.CalcMjd(), *fRaDec);
    401401            fImage->DrawColImg(myimg, cimg);
  • trunk/MagicSoft/Cosy/main/MBending.cc

    r2568 r2615  
    6565#include <TMinuit.h>
    6666
    67 #include "timer.h"
     67#include "MTime.h"
    6868
    6969ClassImp(MBending);
     
    262262    }
    263263
    264     Timer t;
     264    MTime t;
    265265    t.Now();
    266266
    267     fout << "MAGIC1 " << t.GetTimeStr() << endl;
     267    fout << "MAGIC1 " << t << endl;
    268268    fout << "S   00   000000   000000  0000000" << endl;
    269269    fout << setprecision(8);
     
    285285}
    286286
     287AltAz MBending::AddOffsets(const AltAz &aa) const
     288{
     289    // Correct [rad]
     290    // zdaz    [rad]
     291    AltAz p = aa;
     292
     293    const AltAz I(fIe, fIa);
     294    p += I;
     295
     296    return p;
     297}
     298
     299AltAz MBending::SubtractOffsets(const AltAz &aa) const
     300{
     301    // Correct [rad]
     302    // zdaz    [rad]
     303    AltAz p = aa;
     304
     305    const AltAz I(fIe, fIa);
     306    p -= I;
     307
     308    return p;
     309}
     310
     311AltAz MBending::CalcAnAw(const AltAz &p, Int_t sign) const
     312{
     313    // Corrections for AN and AW without approximations
     314    // as done by Patrick Wallace. The approximation cannot
     315    // be used for MAGIC because the correctioon angle
     316    // AW (~1.5deg) is not small enough.
     317
     318    // Vector in cartesian coordinates
     319    TVector3 v(1., 1., 1.);
     320
     321    // Set Azimuth and Elevation
     322    v.SetPhi(p.Az());
     323    v.SetTheta(TMath::Pi()/2-p.Alt());
     324
     325    // Rotate around the x- and y-axis
     326    v.RotateY(sign*fAn);
     327    v.RotateX(sign*fAw);
     328
     329    // Calculate Delta Azimuth and Delta Elevation
     330    AltAz d(TMath::Pi()/2-v.Theta(), v.Phi());
     331    d -= p;
     332    d *= sign;
     333
     334    // Fix 'direction' of output depending on input vector
     335    if (sign*p.Alt()>TMath::Pi()/2)
     336        d.Alt(d.Alt()-TMath::Pi());
     337
     338    // Align correction into [-180,180]
     339    while (d.Az()>TMath::Pi())
     340        d.Az(d.Az()-TMath::Pi()*2);
     341    while (d.Az()<-TMath::Pi())
     342        d.Az(d.Az()+TMath::Pi()*2);
     343
     344    return d;
     345}
     346
     347
    287348AltAz MBending::Correct(const AltAz &aa) const
    288349{
     
    350411    DEBUG(cout << "Bend2: " << 90-p.Alt()*180/TMath::Pi() << " " << p.Az()*180/TMath::Pi() << endl);
    351412
    352     // New Corrections for AW and AN:
    353     TVector3 v2(1.,1.,1.); // Vector in cartesian coordinates
    354     // Set Azimuth and Elevation
    355     v2.SetPhi(p.Az());
    356     v2.SetTheta(TMath::Pi()/2-p.Alt());
    357     // Rotate around the x- and y-axis
    358     v2.RotateX(fAw);
    359     v2.RotateY(fAn);
    360     // Get Azimuth and Elevation
    361     p.Az(v2.Phi());
    362     p.Alt(TMath::Pi()/2-v2.Theta());
    363 
    364     /*
    365     // Old correction terms for An and Aw:
    366     cout << fAw << " " << cos(p.Az()) << " " << tan(p.Alt()) << endl;
    367     cout << fAw* cos(p.Az())*tan(p.Alt())*180/3.1415 << endl;
    368 
    369     const AltAz AW( fAw*sin(p.Az()), -fAw*cos(p.Az())*tan(p.Alt()));
    370     const AltAz AN(-fAn*cos(p.Az()), -fAn*sin(p.Az())*tan(p.Alt()));
    371     p += AW;
    372     p += AN;
     413    const AltAz ANAW(CalcAnAw(p, -1));
     414    p += ANAW;
     415
     416    /* Old correction terms for An and Aw:
     417     const AltAz AW( fAw*sin(p.Az()), -fAw*cos(p.Az())*tan(p.Alt()));
     418     const AltAz AN(-fAn*cos(p.Az()), -fAn*sin(p.Az())*tan(p.Alt()));
     419     p += AW;
     420     p += AN;
    373421    */
    374 
    375 
    376 
    377422
    378423    DEBUG(cout << "Bend1: " << 90-p.Alt()*180/TMath::Pi() << " " << p.Az()*180/TMath::Pi() << endl);
     
    389434}
    390435
    391 AltAz MBending::AddOffsets(const AltAz &aa) const
     436AltAz MBending::CorrectBack(const AltAz &aa) const
    392437{
    393438    // Correct [rad]
     
    395440    AltAz p = aa;
    396441
    397     const AltAz I(fIe, fIa);
    398     p += I;
    399 
    400     return p;
    401 }
    402 
    403 AltAz MBending::CorrectBack(const AltAz &aa) const
    404 {
    405     // Correct [rad]
    406     // zdaz    [rad]
    407     AltAz p = aa;
    408 
    409442    DEBUG(cout << setprecision(16));
    410443    DEBUG(cout << "Back0: " << 90-p.Alt()*180/TMath::Pi() << " " << p.Az()*180/TMath::Pi() << endl);
     
    418451    DEBUG(cout << "Back1: " << 90-p.Alt()*180/TMath::Pi() << " " << p.Az()*180/TMath::Pi() << endl);
    419452
    420     /*
    421      //Old correction terms for An and Aw:
     453    /* Old correction terms for An and Aw:
    422454     const AltAz AN(-fAn*cos(p.Az()), -fAn*sin(p.Az())*tan(p.Alt()));
    423455     const AltAz AW( fAw*sin(p.Az()), -fAw*cos(p.Az())*tan(p.Alt()));
     
    426458     */
    427459
    428     // New Corrections for AN and AW:
    429     TVector3 v(1.,1.,1.); // Vector in cartesian coordinates
    430     // Set Azimuth and Elevation
    431     v.SetPhi(p.Az());
    432     v.SetTheta(TMath::Pi()/2-p.Alt());
    433     // Rotate around the x- and y-axis
    434     v.RotateY(-fAn);
    435     v.RotateX(-fAw);
    436     // Get Azimuth and Elevation
    437     p.Az(v.Phi());
    438     p.Alt(TMath::Pi()/2-v.Theta());
    439 
     460    const AltAz ANAW(CalcAnAw(p, -1));
     461    p -= ANAW;
    440462
    441463    DEBUG(cout << "Back2: " << 90-p.Alt()*180/TMath::Pi() << " " << p.Az()*180/TMath::Pi() << endl);
     
    498520}
    499521
    500 AltAz MBending::SubtractOffsets(const AltAz &aa) const
    501 {
    502     // Correct [rad]
    503     // zdaz    [rad]
    504     AltAz p = aa;
    505 
    506     const AltAz I(fIe, fIa);
    507     p -= I;
    508 
    509     return p;
    510 }
    511 
    512 
    513522ZdAz MBending::Correct(const ZdAz &zdaz) const
    514523{
  • trunk/MagicSoft/Cosy/main/MBending.h

    r2518 r2615  
    5353
    5454    static Double_t Sign(Double_t val, Double_t alt);
     55    AltAz CalcAnAw(const AltAz &p, Int_t sign) const;
    5556
    5657public:
  • trunk/MagicSoft/Cosy/main/MCaos.cc

    r2280 r2615  
    1212#include <TCanvas.h>
    1313
     14#include "MTime.h"
     15
    1416#include "Led.h"
    1517#include "Ring.h"
     
    1820
    1921#include "coord.h"
    20 #include "base/timer.h"
    2122
    2223void MCaos::ReadResources(const char *name="leds.txt")
     
    306307}
    307308
    308 void MCaos::Run(byte *img, bool printl, bool printr, const ZdAz &pos, const Timer &t)
     309void MCaos::Run(byte *img, bool printl, bool printr, const ZdAz &pos, const MTime &t)
    309310{
    310311    Leds &leds = *fLeds;
     
    354355
    355356    // FIXME!
    356     static const Timer t0(t);
    357     fEvtTime = (double)t-(double)t0;
     357    static const MTime t0(t);
     358    fEvtTime = t-t0;
    358359
    359360    if (fHistpr)
  • trunk/MagicSoft/Cosy/main/MCaos.h

    r2278 r2615  
    1515class TGraph;
    1616
    17 class Timer;
     17class MTime;
    1818class ZdAz;
    1919
     
    6868    void ResetHistograms();
    6969
    70     void Run(byte *img, bool printl, bool printr, const ZdAz &pos, const Timer &t);
     70    void Run(byte *img, bool printl, bool printr, const ZdAz &pos, const MTime &t);
    7171};
    7272
  • trunk/MagicSoft/Cosy/main/MCosy.cc

    r2613 r2615  
    1818
    1919#include "MGCosy.h"
     20#include "MTime.h"
    2021#include "MDriveCom.h"
    2122#include "MStarguider.h"
     
    2526
    2627#include "macs.h"
    27 #include "base/timer.h"
    2828#include "shaftencoder.h"
    2929
     
    341341        return;
    342342
    343     Timer t;
     343    MTime t;
    344344    t.Now();
    345345    lout << t << " - MCosy::WaitForEndMovement aborted...";
     
    449449    const ZdAz d = dst*kRad2Deg;
    450450
    451     Timer t;
     451    MTime t;
    452452    t.Now();
    453453    lout << t << " - Target Position: " << d.Zd() << "deg, " << d.Az() << "deg (Zd/Az)" << endl;
     
    958958
    959959    sla.Now();
    960     lout << sla << " - Start tracking:";
     960    lout << sla.GetTime() << " - Start tracking:";
    961961    lout << " Ra: " << xy.X() << "h  " << "Dec: " << xy.Y() << "\xb0" << endl;
    962962/*#ifdef EXPERT
     
    11051105    StopMovement();
    11061106
    1107     lout << sla << " - Tracking stopped." << endl;
     1107    lout << sla.GetTime() << " - Tracking stopped." << endl;
    11081108}
    11091109
     
    21842184    fWin=new MGCosy(fObservatory, this, gClient->GetRoot(), 1, 1);
    21852185}
    2186 
     2186/*
    21872187void MCosy::ConstructorSE(Int_t id4, Int_t id5, Int_t id6)
    21882188{
     
    22312231    fWin=new MGCosy(fObservatory, this, gClient->GetRoot(), 1, 1);
    22322232}
    2233 
    2234 MCosy::MCosy(int mode, const char *dev, const int baud, MLog &out)
     2233*/
     2234MCosy::MCosy(/*int mode,*/ const char *dev, const int baud, MLog &out)
    22352235: Network(dev, baud, out), fObservatory(MObservatory::kMagic1), fStarguider(NULL), fZd1(0), fZd2(0), fAz(0), fMac1(0), fMac2(0), fMac3(0), fBackground(kBgdNone), fStatus(MDriveCom::kStopped)
    22362236{
     
    22422242    const Int_t id5 = env.GetValue("Zd_Id-SE2",  5); //5
    22432243    const Int_t id6 = env.GetValue("Az_Id-SE",   6); //6
    2244 
     2244/*
    22452245    lout << "- Program in ";
    22462246    switch (mode)
    22472247    {
    22482248    case 0:
    2249         lout << "<<Standard mode>>" << endl;
     2249        lout << "<<Standard mode>>" << endl;*/
    22502250        fBending.Load("bending.txt");
    2251         Constructor(id1, id2, id3, id4, id5, id6);
     2251        Constructor(id1, id2, id3, id4, id5, id6);/*
    22522252        break;
    22532253    case 1:
     
    22602260        ConstructorDemo();
    22612261    }
    2262 
     2262*/
    22632263    lout.SetOutputGui(fWin->GetLog(), kTRUE);
    22642264
     
    22672267    fAz->SetDisplay(fWin->GetLabel1());
    22682268
    2269     int i=0;
    2270     char name[100];
     2269    //
     2270    // open tpoint file
     2271    //
     2272    MTime time;
     2273    TString name;
    22712274    while (1)
    22722275    {
    2273         sprintf(name, "tpoint/tpoint%03d.txt", i++);
     2276        time.Now();
     2277        name = Form("tpoint/tpoint_%s.txt", (const char*)time.GetFileName());
    22742278        if (gSystem->AccessPathName(name, kFileExists))
    22752279            break;
    22762280    }
    2277 
    2278     Timer time;
    2279     time.Now();
    22802281
    22812282    cout << "TPoint File ********* " << name << " ********** " << endl;
  • trunk/MagicSoft/Cosy/main/MCosy.h

    r2518 r2615  
    168168
    169169    void Constructor(Int_t id1, Int_t id2, Int_t id3, Int_t id4, Int_t id5, Int_t id6);
    170     void ConstructorSE(Int_t id1, Int_t id2, Int_t id3);
    171     void ConstructorDemo();
     170    //void ConstructorSE(Int_t id1, Int_t id2, Int_t id3);
     171    //void ConstructorDemo();
    172172
    173173    void ReadConfig();
     
    176176
    177177public:
    178     MCosy(int mode, const char *dev, const int baud, MLog &out=gLog);
     178    MCosy(/*int mode,*/ const char *dev, const int baud, MLog &out=gLog);
    179179    ~MCosy();
    180180
  • trunk/MagicSoft/Cosy/main/MStarguider.cc

    r2613 r2615  
    839839    static unsigned long n0 = n;
    840840
    841     Timer t(tm);
     841    MTime t(*tm);
    842842
    843843    const Double_t d = t-fTime;
     
    894894    if (fDisplay->IsEntryChecked(IDM_kCatalog))
    895895    {
    896         Timer time(tm);
     896        MTime time(*tm);
    897897
    898898        XY xy = fCRaDec->GetCoordinates();
     
    934934    if (fDisplay->IsEntryChecked(IDM_kCatalog))
    935935    {
     936        // FIXME: Necessary?
    936937        fSao->Now();
    937938        AltAz aa = fSao->CalcAltAzFromPix(fDx, fDy)*kRad2Deg;
  • trunk/MagicSoft/Cosy/main/MStarguider.h

    r2278 r2615  
    55#include <TGFrame.h>
    66#endif
     7
    78#include "PixClient.h"
     9
    810#ifndef MARS_MObservatory
    911#include "MObservatory.h"
     12#endif
     13
     14#ifndef MARS_MTime
     15#include "MTime.h"
    1016#endif
    1117
     
    1420
    1521#include "coord.h"
    16 #include "timer.h"
    1722
    1823class TArrayF;
     
    7681
    7782    TTimer *fTimer;
    78     Timer   fTime;
     83    MTime   fTime;
    7984
    8085    Int_t fDx;
  • trunk/MagicSoft/Cosy/tcpip/MCeCoCom.cc

    r2517 r2615  
    2626    str.Remove(0, len);
    2727
    28     fT.SetTimer(y, m, d, h, min, s, ms/1000.);
     28    fT.Set(y, m, d, h, min, s, ms);
    2929
    3030    // Remove the 30 tokens of the subsystem status
     
    8888bool MCeCoCom::Send(const char *str)
    8989{
    90     Timer t;
     90    MTime t;
    9191    t.Now();
     92
     93    UShort_t y1, y2, ms1, ms2;
     94    Byte_t mon1, mon2, d1, d2, h1, h2, m1, m2, s1, s2;
     95
     96    t.GetDate(y1, mon1, d1);
     97    t.GetTime(h1, m1, s1, ms1);
     98
     99    fT.GetDate(y2, mon2, d2);
     100    fT.GetTime(h2, m2, s2, ms2);
    92101
    93102    const char *msg =
     
    96105             "%02d %04d %02d %02d %02d %02d %02d %03d "
    97106             "%s\n", (const char*)fCommand,
    98              fStatus, t.Year(), t.Month(), t.Day(), t.H(), t.M(), t.S(), t.MilliSec(),
    99              fComStat, fT.Year(), fT.Month(), fT.Day(), fT.H(), fT.M(), fT.S(), fT.MilliSec(),
     107             fStatus,  y1, mon1, d1, h1, m1, s1, ms1,
     108             fComStat, y2, mon2, d2, h2, m2, s2, ms2,
    100109             str);
    101110
  • trunk/MagicSoft/Cosy/tcpip/MCeCoCom.h

    r2517 r2615  
    1010#endif
    1111
    12 #ifndef COSY_Timer
    13 #include "timer.h"
     12#ifndef MARS_MTime
     13#include "MTime.h"
    1414#endif
    1515
     
    2525
    2626    TString fCommand;     // report string of the current system
    27     Timer   fT;           // time of last report received
     27    MTime   fT;           // time of last report received
    2828    char    fStatus;      // current status of this system
    2929    int     fCCStatus;    // global status of CC
  • trunk/MagicSoft/Cosy/tcpip/MDriveCom.cc

    r2613 r2615  
    44
    55#include "coord.h"
    6 #include "Slalib.h"
     6#include "MAstro.h"
    77#include "MCosy.h"
    88
     
    2424    str.Remove(0, len);
    2525
    26     ret = Slalib::Dms2Deg(d, m, s, sgn);
     26    ret = MAstro::Dms2Deg(d, m, s, sgn);
    2727    return true;
    2828}
     
    137137    UShort_t d, m, s;
    138138
    139     Slalib::Deg2Dms(deg, sgn, d, m, s);
     139    MAstro::Deg2Dms(deg, sgn, d, m, s);
    140140
    141141    str += Form("%c %03d %02d %03d ", sgn, d, m, s);
     
    161161        SetStatus(4);
    162162
    163     Timer t;
     163    MTime t;
    164164    t.Now();
    165165
  • trunk/MagicSoft/Cosy/videodev/Writer.cc

    r1953 r2615  
    77#include <png.h>
    88
    9 #include "base/timer.h"
     9#include "MTime.h"
    1010
    1111ClassImp(Writer);
     
    1414                 struct timeval *date)
    1515{
    16     Timer t(date);
     16    MTime t(*date);
    1717    TString mjd;
    1818    mjd += t.GetMjd()-52000;
     
    129129    TString name = fname;
    130130
    131     Timer t(date);
     131    MTime t(*date);
    132132
    133133    name += "_";
Note: See TracChangeset for help on using the changeset viewer.