Ignore:
Timestamp:
07/12/06 03:00:16 (18 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Cosy/main
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Cosy/main/MCosy.cc

    r7614 r7788  
    401401//
    402402    point.SetPointAccDec(0.2, 0.1);
     403
    403404    point.SetPointVelocity(0.1);
    404405
     
    634635                // open tpoint file
    635636                //
    636                 const TString name = GetFileName("tpoint/old-tpoint_%s.txt");
     637                const TString name = GetFileName("tpoint", "old-tpoint", "txt");
    637638                cout << "TPoint-Cosy File ********* " << name << " ********** " << endl;
    638639
     
    675676
    676677            ZdAz dest = *((ZdAz*)mp) * kDeg2Rad;
    677             if (!SetPosition(dest))
     678            if (!SetPosition(dest, kTRUE))
    678679                return (void*)0x1234;
    679680
     
    686687        //cout << "WM_TrackPosition: done. (return 0xabcd)" << endl;
    687688        return (void*)0xabcd;
    688 
     689/*
     690    case WM_ARM:
     691        //cout << "WM_Position: start." << endl;
     692        {
     693            if (!CheckNetwork())
     694                return (void*)0xebb0;
     695
     696            const bool arm = *((bool*)mp);
     697            if (arm)
     698            {
     699                fMac1->Arm();
     700                fMac2->Arm();
     701                cout << "ARMED" << endl;
     702            }
     703            else
     704            {
     705                fMac1->Disarm();
     706                fMac2->Disarm();
     707                cout << "DISARMED" << endl;
     708            }
     709        }
     710        //cout << "WM_Position: done. (return 0x7777)" << endl;
     711        return (void*)0x9999;
     712  */
    689713    case WM_POSITION:
    690714        //cout << "WM_Position: start." << endl;
     
    711735        return (void*)0x7777;
    712736
     737    case WM_PREPS:
     738        //cout << "WM_Track: START" << endl;
     739        {
     740            if (!CheckNetwork())
     741                return (void*)0xebb0;
     742
     743            const char *preps = (const char*)mp;
     744            cout << "Preposition command to " << preps << " received." << endl;
     745
     746            ifstream fin("prepos.txt");
     747            if (!fin)
     748            {
     749                cout << "ERROR: cannot open prepos.txt." << endl;
     750                return (void*)0xebb1;
     751            }
     752
     753            while (1)
     754            {
     755                Double_t zd, az;
     756                fin >> zd >> az;
     757
     758                TString str;
     759                str.ReadLine(fin);
     760                if (!fin)
     761                    break;
     762
     763                str.ToLower();
     764
     765                if (str.Strip(TString::kBoth)==preps)
     766                {
     767                    ZdAz dest(zd, az);
     768                    SetPosition(dest*kDeg2Rad);
     769                    return (void*)0x7979;
     770                }
     771                cout << "ERROR - Requested preposition not found in file..." << endl;
     772            }
     773        }
     774        //cout << "WM_Track: done. (return 0x8888)" << endl;
     775        return (void*)0x7878;
     776
    713777    case WM_TESTSE:
    714778        //cout << "WM_TestSe: start." << endl;
     
    730794
    731795    case WM_TRACK:
    732         //cout << "WM_Track: START" << endl;
     796    case WM_GRB:
     797        //cout << "WM_Track/GRB: START" << endl;
    733798        {
    734799            RaDec dest = ((RaDec*)mp)[0];
     
    737802            if (!CheckNetwork())
    738803                return (void*)0xebb0;
    739             TrackPosition(dest*kDeg2Rad);
     804
     805            if (msg==WM_TRACK)
     806                TrackPosition(dest*kDeg2Rad);
     807            else
     808                TrackPositionGRB(dest*kDeg2Rad);
    740809        }
    741         //cout << "WM_Track: done. (return 0x8888)" << endl;
    742         return (void*)0x8888;
    743 
    744     case WM_GRB:
    745         //cout << "WM_Track: START" << endl;
    746         {
    747             RaDec dest = ((RaDec*)mp)[0];
    748             if (fStarguider)
    749                 fStarguider->SetPointingPosition(((RaDec*)mp)[1]);
    750             if (!CheckNetwork())
    751                 return (void*)0xebb0;
    752             TrackPositionGRB(dest*kDeg2Rad);
    753         }
    754         //cout << "WM_Track: done. (return 0x8888)" << endl;
     810        //cout << "WM_Track/GRB: done. (return 0x8888)" << endl;
    755811        return (void*)0x8888;
    756812
     
    11781234    avail |= (fZd2  && !fZd2->IsZombieNode())  ? 0x10 : 0;
    11791235    avail |= (fAz   && !fAz->IsZombieNode())   ? 0x20 : 0;
     1236//    avail |= (!(fStatus&MDriveCom::kError) && 1 ? 0x40 : 0;
    11801237
    11811238    if (HasError())
     
    14711528*/
    14721529
    1473 TString MCosy::GetFileName(const char *fmt)
     1530TString MCosy::GetFileName(const char *path, const char *name, const char *ext)
    14741531{
    14751532    // FIXME: Timeout missing
     1533
    14761534    while (1)
    14771535    {
    14781536        MTime time(-1);
    1479         const TString name = Form(fmt, (const char*)time.GetFileName());
    1480         if (gSystem->AccessPathName(name, kFileExists))
    1481             return name;
    1482             break;
     1537
     1538        // This is the full qualified date which is part of the name
     1539        const TString clock = time.GetStringFmt("%y%m%d_%H%M%S");
     1540
     1541        // This gives the night in which the date belongs to
     1542        time.SetMjd(TMath::Nint(time.GetMjd()));
     1543
     1544        const TString night = time.GetStringFmt("%Y_%m_%d");
     1545
     1546        const TString dir   = Form("%s/%s", path, night.Data());
     1547        const TString fname = Form("%s_%s.%s", name, clock.Data(), ext);
     1548
     1549        const TString full  = Form("%s/%s", dir.Data(), fname.Data());
     1550
     1551        gSystem->mkdir(dir, kTRUE);
     1552
     1553        if (gSystem->AccessPathName(full, kFileExists))
     1554            return full;
     1555
     1556        break;// !!!!!!!!!!!!!!!!!!!!!!!
    14831557
    14841558        usleep(1000);
     
    14981572    const Int_t id6 = env.GetValue("Az_Id-SE",   6); //6
    14991573
    1500     TString name = GetFileName("rep/cosy_%s.rep");
     1574    TString name = GetFileName("rep", "cosy", "rep");
    15011575    cout << "Open Repfile: " << name << endl;
    15021576    fOutRep = new MLog(name, kTRUE);
  • trunk/MagicSoft/Cosy/main/MCosy.h

    r6841 r7788  
    3838#define WM_ENDSWITCH    0x1010
    3939#define WM_GRB          0x1011
     40#define WM_PREPS        0x1012
     41#define WM_ARM          0x1013
    4042
    4143class ShaftEncoder;
     
    187189    void SetStarguider(MStarguider *s) { fStarguider = s; }
    188190
    189     static TString GetFileName(const char *name);
     191    static TString GetFileName(const char *path, const char *name, const char *ext);
    190192
    191193    MGCosy *GetWin() { return fWin; }
  • trunk/MagicSoft/Cosy/main/MStarguider.cc

    r7785 r7788  
     1#undef EXPERT
    12#undef EXPERT
    23
     
    335336
    336337    fCZdAz = new MGCoordinates(this, kETypeZdAz, kFALSE);
    337     fCZdAz->Move(240+12+28, fMenu->GetDefaultHeight()+581+12);
     338    fCZdAz->Move(240+12+28, fMenu->GetDefaultHeight()+581+20-4);
    338339    AddFrame(fCZdAz);
    339340    fList->Add(fCZdAz);
    340341
    341342    fPZdAz = new MGCoordinates(this, kETypeZdAz, kFALSE);
    342     fPZdAz->Move(240+12+28, fMenu->GetDefaultHeight()+627+2*12);
     343    fPZdAz->Move(240+12+28, fMenu->GetDefaultHeight()+627+2*20-4);
    343344    AddFrame(fPZdAz);
    344345    fList->Add(fPZdAz);
    345346
    346347    fDZdAz = new MGCoordinates(this, kETypeZdAz, kFALSE);
    347     fDZdAz->Move(240+12+28, fMenu->GetDefaultHeight()+673+3*12);
     348    fDZdAz->Move(240+12+28, fMenu->GetDefaultHeight()+673+3*20-4);
    348349    AddFrame(fDZdAz);
    349350    fList->Add(fDZdAz);
    350351
    351352    fSZdAz = new MGCoordinates(this, kETypeZdAz, kFALSE);
    352     fSZdAz->Move(240+12+28, fMenu->GetDefaultHeight()+719+4*12);
     353    fSZdAz->Move(240+12+28, fMenu->GetDefaultHeight()+719+4*20-4);
    353354    AddFrame(fSZdAz);
    354355    fList->Add(fSZdAz);
    355356
    356357    fTPoint = new TGTextButton(this, "TPoint");
    357     fTPoint->Move(4, fMenu->GetDefaultHeight()+722+3*12+25);
     358    fTPoint->Move(4, fMenu->GetDefaultHeight()+722+3*15+15);
    358359    fTPoint->AllowStayDown(kTRUE);
    359360    AddFrame(fTPoint);
     
    361362
    362363    fStargTPoint = new TGTextButton(this, "StargTPoint");
    363     fStargTPoint->Move(240+12+20, fMenu->GetDefaultHeight()+785);
     364    fStargTPoint->Move(240+12+28, fMenu->GetDefaultHeight()+785);
    364365    fStargTPoint->AllowStayDown(kTRUE);
    365366    AddFrame(fStargTPoint);
     
    368369    fFps = new TGLabel(this, "---fps");
    369370    fFps->SetTextJustify(kTextRight);
    370     fFps->Move(650-440, fMenu->GetDefaultHeight()+619+13+60+20);
     371    fFps->Move(650-495, fMenu->GetDefaultHeight()+619+13+60+20+2);
    371372    AddFrame(fFps);
    372373    fList->Add(fFps);
    373374
    374     fPosZoom = new TGLabel(this, "----.--d/----.--d (----, ----)");
    375     fPosZoom->SetTextJustify(kTextRight);
     375    fPosZoom = new TGLabel(this, "(----, ----) ----.--d/----.--d");
     376    fPosZoom->SetTextJustify(kTextLeft);
    376377    fPosZoom->Move(4, fMenu->GetDefaultHeight()+765);
    377378    AddFrame(fPosZoom);
     
    386387    TGLabel *l = new TGLabel(this, "arcsec/pix");
    387388    l->SetTextJustify(kTextLeft);
    388     l->Move(605-400, fMenu->GetDefaultHeight()+619+13+60);
     389    l->Move(606-412, fMenu->GetDefaultHeight()+619+13+60);
    389390    AddFrame(l);
    390391    fList->Add(l);
     
    392393    l = new TGLabel(this, "deg");
    393394    l->SetTextJustify(kTextLeft);
    394     l->Move(605-410, fMenu->GetDefaultHeight()+619-10+60);
     395    l->Move(606-412, fMenu->GetDefaultHeight()+619-10+60);
    395396    AddFrame(l);
    396397    fList->Add(l);
     
    398399    l = new TGLabel(this, "Telescope pointing at");
    399400    l->SetTextJustify(kTextLeft);
    400     l->Move(240+12+20, fMenu->GetDefaultHeight()+584-5);
     401    l->Move(240+12+20+7, fMenu->GetDefaultHeight()+584-5);
    401402    AddFrame(l);
    402403    fList->Add(l);
     
    404405    l = new TGLabel(this, "Starguider position");
    405406    l->SetTextJustify(kTextLeft);
    406     l->Move(240+12+20, fMenu->GetDefaultHeight()+630+12-5);
     407    l->Move(240+12+20+7, fMenu->GetDefaultHeight()+630+20-5);
    407408    AddFrame(l);
    408409    fList->Add(l);
     
    410411    l = new TGLabel(this, "Misspointing");
    411412    l->SetTextJustify(kTextLeft);
    412     l->Move(240+12+20, fMenu->GetDefaultHeight()+676+2*12-5);
     413    l->Move(240+12+20+7, fMenu->GetDefaultHeight()+676+2*20-5);
    413414    AddFrame(l);
    414415    fList->Add(l);
     
    417418    l = new TGLabel(this, "Misspointing/FindStar (Experts Only!)");
    418419    l->SetTextJustify(kTextLeft);
    419     l->Move(240+12+20, fMenu->GetDefaultHeight()+722+3*12-5);
     420    l->Move(240+12+20, fMenu->GetDefaultHeight()+722+3*20-5);
    420421    AddFrame(l);
    421422    fList->Add(l);
     
    436437    fList->Add(fPixSize);
    437438
    438     fAngle = new TGTextEntry(this, "         0", IDM_kAngle);
     439    const Double_t angle = -0.4;
     440    fSao->SetRotationAngle(angle);
     441
     442    txt = "";
     443    txt += angle;
     444
     445    fAngle = new TGTextEntry(this, txt, IDM_kAngle);
    439446    fAngle->SetAlignment(kTextCenterX);
    440447    fAngle->Move(547-410, fMenu->GetDefaultHeight()+617-10+60);
     
    13851392    {
    13861393        // open tpoint file
    1387         const TString name = MCosy::GetFileName("tpoint/starg_%s.txt");
     1394        const TString name = MCosy::GetFileName("tpoint", "starg", "txt");
    13881395        cout << "TPoint-Starg File ********* " << name << " ********** " << endl;
    13891396
     
    14511458    // Try to find Led in this area
    14521459    Leds leds;
    1453     f.FindStarCircle(leds, (Int_t)SearchCenter.X(), (Int_t)SearchCenter.Y());
     1460    f.FindStar(leds, (Int_t)SearchCenter.X(), (Int_t)SearchCenter.Y(), true);
    14541461
    14551462    // Check whether star found
     
    14701477    if (!fOutRq)
    14711478    {
    1472         const TString name = MCosy::GetFileName("tpoint/starg_roquelamp_%s.txt");
     1479        const TString name = MCosy::GetFileName("tpoint", "roquelamp", "txt");
    14731480        cout << "Starg_RoqueLamp File ********* " << name << " ********** " << endl;
    14741481        fOutRq = new ofstream(name);
     
    14761483    }
    14771484
    1478 
    14791485    return relroquepos;
    14801486}
    1481  
    14821487
    14831488ZdAz MStarguider::FindStar(FilterLed &f, FilterLed &f2, Ring &center, MTime &t, Double_t cut, Double_t box, Double_t scalefactor = 1.0)
     
    14891494    // Try to find Led in this area
    14901495    Leds leds;
    1491     f.FindStarCircle(leds, (Int_t)center.GetX(), (Int_t)center.GetY());
     1496    f.FindStar(leds, (Int_t)center.GetX(), (Int_t)center.GetY(), true);
    14921497
    14931498    if (leds.GetEntries()<0)
     
    15051510        return ZdAz(.0,.0);
    15061511    }
    1507 
    15081512    cout << "Found star @ " << flush;
    15091513    star->Print();
     
    15611565        // open tpoint file
    15621566        //
    1563         const TString name = MCosy::GetFileName("tpoint/tpoint_%s.txt");
     1567        const TString name = MCosy::GetFileName("tpoint", "tpoint", "txt");
    15641568        cout << "TPoint-Starg File ********* " << name << " ********** " << endl;
    15651569
     
    17151719    // Find Star at Center---for Tpoint Procedure
    17161720    if (fDisplay->IsEntryChecked(IDM_kFindStar))
    1717         /*ZdAz zdaz =*/ FindStar(f, f2, center, t, 3.5, 70);
     1721        FindStar(f, f2, center, t, 3.5, 70);
    17181722
    17191723    byte zimg[kZOOM*kZOOM];
     
    17791783    {
    17801784
    1781         XY roquelamp(0,0);
    1782 
    17831785        Double_t imageclean = 1.5;
    17841786        Double_t boxradius = 60;
     
    17861788        XY searchcenter(768/2-1,576/2+25);
    17871789
    1788         roquelamp = FindRoqueLamp(f, f2, sgcenter, t, imageclean, boxradius, searchcenter);
     1790        XY roquelamp = FindRoqueLamp(f, f2, sgcenter, t, imageclean, boxradius, searchcenter);
    17891791
    17901792        if (fOutRq)
     
    18041806
    18051807    // Find Spot on Camera Center in Starguider camera
    1806 
    18071808    if (fOperations->IsEntryChecked(IDM_kRoqueLampAna))
    18081809    {
     
    18321833        f2.DrawCircle(sgcenter, 115.0, 0x0fa);
    18331834    }
    1834 
    18351835    // we calculate the offset given by the three ETH Leds visible to
    18361836    // the guide camera
     
    18841884
    18851885        // Position around which the circles are drawn.
    1886         const Ring skycenter(768/2+off.X(), 576/2+off.Y());
     1886        const Ring skycenter(768/2-off.X(), 576/2+off.Y());
    18871887
    18881888        // There are two corrections to the misspointing
     
    18961896            Leds spots;
    18971897            f.SetBox(230);
    1898 //          f.SetCut(1.5);
    1899             double bright;
     1898            f.SetCut(2.5);
     1899
     1900            double bright;
    19001901            f.ExecuteAndMark(spots, 530, 292, bright);
    1901             MString txt;
     1902
     1903            MString txt;
    19021904            txt.Print("Sky Brightness: %.1f", bright);
    19031905            fSkyBright->SetText(txt);
     
    19611963    {
    19621964        f2.DrawCircle(center, 0x0a);
    1963         f2.DrawCircle(center,   5.0,
     1965        f2.DrawCircle(center,   7.0,
    19641966                      fDisplay->IsEntryChecked(IDM_kFindStar)?3:0xb0);
    19651967        f2.DrawCircle(center, 115.0, 0x0a);
     
    20032005        if (aa.Az()<0)
    20042006            aa.Az(aa.Az()+360);
    2005         txt.Print("%.1fd/%.1fd (%d, %d)", -aa.Alt(), aa.Az()-180, fDx, fDy);
     2007        txt.Print("(%d, %d) %.1fd/%.1fd", fDx, fDy, -aa.Alt(), aa.Az()-180);
    20062008    }
    20072009    else
Note: See TracChangeset for help on using the changeset viewer.