--- YodaProfiler/src/GLTables.cpp 2006/11/07 12:17:44 1.16 +++ YodaProfiler/src/GLTables.cpp 2006/11/13 08:49:49 1.19 @@ -154,8 +154,8 @@ obtfirst = 0; pktfirst = 0; toffset = 0; - ID = 0; - ID_RAW = 0; + // ID = 0; + // ID_RAW = 0; OBT0 = 0; TIMESYNC = 0; TYPE = 0; @@ -1304,14 +1304,13 @@ // // look for Resurs offset // - UInt_t t0 = 0; + T0 = 0; // // stringstream oss; oss.str(""); - oss << "SELECT OFFSET_DATE FROM GL_RESURS_OFFSET WHERE SPECIAL_FILE='" + oss << "SELECT YEAR(OFFSET_DATE),MONTH(OFFSET_DATE),DAY(OFFSET_DATE),HOUR(OFFSET_DATE),MINUTE(OFFSET_DATE),SECOND(OFFSET_DATE) FROM GL_RESURS_OFFSET WHERE SPECIAL_FILE='" << rname.str().c_str() << "';"; - // if ( IsDebug() ) printf(" %s \n",oss.str().c_str()); pResult = dbc->Query(oss.str().c_str()); Row = pResult->Next(); // @@ -1332,13 +1331,11 @@ }; if ( dwo.IsDigit() ) dworbit = (UInt_t)dwo.Atoi(); }; - // if ( IsDebug() ) printf(" Downlink orbit is %i (dwo = %s) \n",dworbit,dwo.Data()); // if ( !Row ){ oss.str(""); - oss << "SELECT OFFSET_DATE FROM GL_RESURS_OFFSET WHERE FROM_ORBIT< " + oss << "SELECT YEAR(OFFSET_DATE),MONTH(OFFSET_DATE),DAY(OFFSET_DATE),HOUR(OFFSET_DATE),MINUTE(OFFSET_DATE),SECOND(OFFSET_DATE) FROM GL_RESURS_OFFSET WHERE FROM_ORBIT< " << dworbit << " order by FROM_ORBIT desc limit 1;"; - // if ( IsDebug() ) printf(" %s \n",oss.str().c_str()); pResult = dbc->Query(oss.str().c_str()); Row = pResult->Next(); if ( !Row ){ @@ -1347,22 +1344,23 @@ }; }; // - // - TDatime ti = TDatime(Row->GetField(0)); - TTimeStamp tu = TTimeStamp((UInt_t)ti.GetYear(),(UInt_t)ti.GetMonth(),(UInt_t)ti.GetDay(),(UInt_t)ti.GetHour(),(UInt_t)ti.GetMinute(),(UInt_t)ti.GetSecond(),0,true,0); - t0 = (UInt_t)tu.GetSec(); + TTimeStamp tu = TTimeStamp((UInt_t)atoi(Row->GetField(0)),(UInt_t)atoi(Row->GetField(1)),(UInt_t)atoi(Row->GetField(2)),(UInt_t)atoi(Row->GetField(3)),(UInt_t)atoi(Row->GetField(4)),(UInt_t)atoi(Row->GetField(5)),0,true,0); + T0 = (UInt_t)tu.GetSec(); // // look for the correct timesync entry // myquery.str(""); - myquery << " SELECT OBT0,TIMESYNC FROM GL_TIMESYNC " + myquery << " SELECT OBT0,TIMESYNC,TYPE FROM GL_TIMESYNC " << " WHERE ID_RAW = " << idraw << ";"; pResult = dbc->Query(myquery.str().c_str()); if ( pResult ){ Row = pResult->Next(); if ( (Row != NULL) && ((UInt_t)atoll(Row->GetField(0)) > 0 ) ){ - toffset = (UInt_t)atoll(Row->GetField(1)) - (UInt_t)(this->DBobt((UInt_t)atoll(Row->GetField(0)))/1000) + t0; + OBT0 = (UInt_t)atoll(Row->GetField(0)); + TIMESYNC = (UInt_t)atoll(Row->GetField(1)); + TYPE = (UInt_t)atoll(Row->GetField(2)); + toffset = (UInt_t)atoll(Row->GetField(1)) - (UInt_t)(this->DBobt((UInt_t)atoll(Row->GetField(0)))/1000) + T0; }; }; // @@ -1381,6 +1379,17 @@ // }; +/** + * + * Returns the Resurs time given the OBT needed to process inclination and orbital infos + * + */ +UInt_t GL_TIMESYNC::ResursTime(UInt_t OBT){ + // + return(((UInt_t)((Int_t)(this->DBobt(OBT)-this->DBobt(OBT0))/1000)+TIMESYNC)); + // +}; + ULong64_t GL_TIMESYNC::DBobt(UInt_t obt){ //