| 154 | obtfirst = 0; | obtfirst = 0; | 
| 155 | pktfirst = 0; | pktfirst = 0; | 
| 156 | toffset  = 0; | toffset  = 0; | 
| 157 | ID       = 0; | //  ID       = 0; | 
| 158 | ID_RAW   = 0; | //  ID_RAW   = 0; | 
| 159 | OBT0     = 0; | OBT0     = 0; | 
| 160 | TIMESYNC = 0; | TIMESYNC = 0; | 
| 161 | TYPE     = 0; | TYPE     = 0; | 
| 1304 | // | // | 
| 1305 | // look for Resurs offset | // look for Resurs offset | 
| 1306 | // | // | 
| 1307 | UInt_t t0 = 0; | T0 = 0; | 
| 1308 | // | // | 
| 1309 | // | // | 
| 1310 | stringstream oss; | stringstream oss; | 
| 1311 | oss.str(""); | oss.str(""); | 
| 1312 | 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='" | 
| 1313 | << rname.str().c_str() << "';"; | << rname.str().c_str() << "';"; | 
|  | //  if ( IsDebug() ) printf(" %s \n",oss.str().c_str()); |  | 
| 1314 | pResult = dbc->Query(oss.str().c_str()); | pResult = dbc->Query(oss.str().c_str()); | 
| 1315 | Row = pResult->Next(); | Row = pResult->Next(); | 
| 1316 | // | // | 
| 1331 | }; | }; | 
| 1332 | if ( dwo.IsDigit() ) dworbit = (UInt_t)dwo.Atoi(); | if ( dwo.IsDigit() ) dworbit = (UInt_t)dwo.Atoi(); | 
| 1333 | }; | }; | 
|  | // if ( IsDebug() ) printf(" Downlink orbit is %i (dwo = %s) \n",dworbit,dwo.Data()); |  | 
| 1334 | // | // | 
| 1335 | if ( !Row ){ | if ( !Row ){ | 
| 1336 | oss.str(""); | oss.str(""); | 
| 1337 | 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< " | 
| 1338 | << dworbit << " order by FROM_ORBIT desc limit 1;"; | << dworbit << " order by FROM_ORBIT desc limit 1;"; | 
|  | //    if ( IsDebug() ) printf(" %s \n",oss.str().c_str()); |  | 
| 1339 | pResult = dbc->Query(oss.str().c_str()); | pResult = dbc->Query(oss.str().c_str()); | 
| 1340 | Row = pResult->Next(); | Row = pResult->Next(); | 
| 1341 | if ( !Row ){ | if ( !Row ){ | 
| 1344 | }; | }; | 
| 1345 | }; | }; | 
| 1346 | // | // | 
| 1347 | // | 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); | 
| 1348 | TDatime ti = TDatime(Row->GetField(0)); | T0 = (UInt_t)tu.GetSec(); | 
|  | 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(); |  | 
| 1349 | // | // | 
| 1350 | // look for the correct timesync entry | // look for the correct timesync entry | 
| 1351 | // | // | 
| 1352 | myquery.str(""); | myquery.str(""); | 
| 1353 | myquery << " SELECT OBT0,TIMESYNC FROM GL_TIMESYNC " | myquery << " SELECT OBT0,TIMESYNC,TYPE FROM GL_TIMESYNC " | 
| 1354 | << " WHERE ID_RAW = " << idraw | << " WHERE ID_RAW = " << idraw | 
| 1355 | << ";"; | << ";"; | 
| 1356 | pResult = dbc->Query(myquery.str().c_str()); | pResult = dbc->Query(myquery.str().c_str()); | 
| 1357 | if ( pResult ){ | if ( pResult ){ | 
| 1358 | Row = pResult->Next(); | Row = pResult->Next(); | 
| 1359 | if ( (Row != NULL) && ((UInt_t)atoll(Row->GetField(0)) > 0 ) ){ | if ( (Row != NULL) && ((UInt_t)atoll(Row->GetField(0)) > 0 ) ){ | 
| 1360 | 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)); | 
| 1361 |  | TIMESYNC = (UInt_t)atoll(Row->GetField(1)); | 
| 1362 |  | TYPE = (UInt_t)atoll(Row->GetField(2)); | 
| 1363 |  | toffset = (UInt_t)atoll(Row->GetField(1)) - (UInt_t)(this->DBobt((UInt_t)atoll(Row->GetField(0)))/1000) + T0; | 
| 1364 | }; | }; | 
| 1365 | }; | }; | 
| 1366 | // | // | 
| 1379 | // | // | 
| 1380 | }; | }; | 
| 1381 |  |  | 
| 1382 |  | /** | 
| 1383 |  | * | 
| 1384 |  | * Returns the Resurs time given the OBT needed to process inclination and orbital infos | 
| 1385 |  | * | 
| 1386 |  | */ | 
| 1387 |  | UInt_t GL_TIMESYNC::ResursTime(UInt_t OBT){ | 
| 1388 |  | // | 
| 1389 |  | return(((UInt_t)((Int_t)(this->DBobt(OBT)-this->DBobt(OBT0))/1000)+TIMESYNC)); | 
| 1390 |  | // | 
| 1391 |  | }; | 
| 1392 |  |  | 
| 1393 |  |  | 
| 1394 | ULong64_t GL_TIMESYNC::DBobt(UInt_t obt){ | ULong64_t GL_TIMESYNC::DBobt(UInt_t obt){ | 
| 1395 | // | // |