--- chewbacca/PamOffLineSW/PacketUser.cpp 2009/12/24 10:31:12 1.10 +++ chewbacca/PamOffLineSW/PacketUser.cpp 2009/12/30 14:49:51 1.12 @@ -1,5 +1,5 @@ //============================================================================ -// $Id: PacketUser.cpp,v 1.9 2009/10/01 08:55:42 mocchiut Exp $ +// $Id: PacketUser.cpp,v 1.11 2009/12/30 10:46:33 mocchiut Exp $ // Description : //============================================================================ #include "PacketUser.h" @@ -541,7 +541,7 @@ //Finish the old root file void PacketUser::FinishGroup(char * filename) { if (pRun) { - if ( !( !real_time_init && !real_time_last && numPKTSaved <= recoverlimit ) && candelete ) pRun->WriteFiles(); + if ( !( !real_time_init && !real_time_last && numPKTSaved <= recoverlimit ) || !candelete ) pRun->WriteFiles(); delete pRun; pRun = NULL; stringstream close; @@ -1145,21 +1145,32 @@ if (type_rel == AFTER) { mainLogUtil->logInfo("Relaz:AFTER = Updating Last values of the DB ROOT file"); //marco_new:tolti tutti gli apici che qui non devono essere + + int good = 1; + if ( pkt_number_in >= (pkt_number_init - 1) && abs((int)(pkt_number_in-(pkt_number_init-1)))<10 ) good = 0; + oss << "UPDATE " << table_name << " SET PKT_NUMBER_FINAL =" << (pkt_number_init - 1) << ", PKT_OBT_FINAL =" - << obt_init << ", REAL_TIME_LAST =" << real_time_init << " WHERE ID_N =" << ID_record << ";"; + << obt_init << ", REAL_TIME_LAST =" << real_time_init << ", GOOD="<< good << " WHERE ID_N =" << ID_record << ";"; } else if (type_rel == BEFORE) { mainLogUtil->logInfo("Relaz:BEFORE = Updating Init values of the DB ROOT file"); + + int good = 1; + if ( (pkt_number_last+1) >= pkt_number_fin && abs((int)((pkt_number_last+1)-pkt_number_fin))<10 ) good = 0; + oss << "UPDATE " << table_name << " SET PKT_NUMBER_INIT =" << (pkt_number_last + 1) << ", PKT_OBT_INIT =" - << obt_last << ", REAL_TIME_INIT =" << real_time_last << " WHERE ID_N =" << ID_record << ";"; + << obt_last << ", REAL_TIME_INIT =" << real_time_last << ", GOOD="<< good << " WHERE ID_N =" << ID_record << ";"; } else if (type_rel == SMALLER) { //spezzettamentento mainLogUtil->logInfo("Relaz:SMALLER = (1st part) Updating Last values of the DB ROOT file"); + int good = 1; + if ( pkt_number_in >= (pkt_number_init - 1) && abs((int)(pkt_number_in-(pkt_number_init-1)))<10 ) good = 0; + oss << "UPDATE " << table_name << " SET PKT_NUMBER_FINAL=" << (pkt_number_init - 1) << ", PKT_OBT_FINAL =" - << obt_init << ", REAL_TIME_LAST =" << real_time_init << " WHERE ID_N =" << ID_record << ";"; + << obt_init << ", REAL_TIME_LAST =" << real_time_init << ", GOOD="<< good << " WHERE ID_N =" << ID_record << ";"; mainLogUtil->logInfo("Relaz:SMALLER = (2nd part) Saving the second part of the DB ROOT file"); @@ -1222,7 +1233,7 @@ else return 0; - query << " order by REAL_TIME_INIT ASC";//marco_new: inutile + query << " order by REAL_TIME_INIT ASC;";//marco_new: inutile //se volessi mettere un filtro sulla qualita' // query<<" and NUM_PKT_SAVED - BAD_PKT_CALREAD - BAD_PKT_READ - BAD_PKT >= 2" ; string msg = query.str(); @@ -1245,13 +1256,16 @@ unsigned long int pkt_number_fin, unsigned long int obt_in, unsigned long int obt_fin, unsigned long int mtime_init, unsigned long int mtime_last, unsigned long int mboot_num, double percentage) { + int good = 1; + if ( pkt_number_in >= pkt_number_fin && abs((int)(pkt_number_fin-pkt_number_in))<10 ) good = 0; + stringstream oss; oss.str(""); oss << "INSERT INTO " << table_name - << " (ID_N, ROOT_ID_N, PKT_NUMBER_INIT, PKT_NUMBER_FINAL, PKT_OBT_INIT, PKT_OBT_FINAL, REAL_TIME_INIT, REAL_TIME_LAST, BOOT_NUMBER, BAD_PKT_PERCENTAGE, INSERT_TIME, INSERTED_BY)" + << " (ID_N, ROOT_ID_N, PKT_NUMBER_INIT, PKT_NUMBER_FINAL, PKT_OBT_INIT, PKT_OBT_FINAL, REAL_TIME_INIT, REAL_TIME_LAST, BOOT_NUMBER, BAD_PKT_PERCENTAGE, INSERT_TIME, INSERTED_BY,GOOD)" << " VALUES ('" << 0 << "','" << root_id << "','" << pkt_number_in << "','" << pkt_number_fin << "','" << obt_in << "','" << obt_fin << "','" << mtime_init << "','" << mtime_last << "','" << mboot_num << "','" << percentage - << "'," << "NULL" << ",'" << tag_value << "'" << ");"; + << "'," << "NULL" << ",'" << tag_value << "','" << good <<"');"; string msg = oss.str(); mainLogUtil->logAll(msg);