main(){ dbConnection con; dbRecordset rec; int rc; int wingsector; int wingsmid; int wingheight; string winglvrack; int count; anytype fld; string query; string dp; string pvssmodule; string pvssserial; string pvssserialconv; string pvssip; string pvssrack; string pvsscrate; string pvssslot; int pvsssector; string lvrack; int lvheight; int lvchan; string lvgo; string wienerid; dyn_string split; string tmp; bool skip; int selectcount; string sysname; bool isdp = false; time HVinit; //rc = dbOpenConnection("DSN=trdfero;UID=trdfero;PWD=secret;server=trdro2;port=1521",con); rc = dbOpenConnection("DSN=trdfero;UID=trdfero;PWD=$D108&trd",con); if(!rc){ for(int sec = 0; sec<18; sec++){ count = 0; DebugTN("sector = "+sec); //----------------------- for HV ------------------------ HVinit = makeTime(2009,7,28); sprintf(tmp,"trd_hv:Sector%02d/Stack0/Layer0/Drift/SEC%02dS0L0Drift",sec,sec); dp = dpAliasToName(tmp); isdp = dpExists(dp); if(!isdp){ sprintf(tmp,"trd_hv2:Sector%02d/Stack0/Layer0/Drift/SEC%02dS0L0Drift",sec,sec); dp = dpAliasToName(tmp); isdp = dpExists(dp); } if(isdp){ split = strsplit(dp,"/"); //-----------------------------for HV crate-------------------------- dpGet(split[1]+"/"+split[2]+"/"+split[3]+".Actual.DeviceID",pvssserial); for(int ra = 12; ra<=14; ra++){ sprintf(tmp,"ra%d",ra); if(strpos(split[3],tmp) >= 0) sprintf(pvssrack,"%02d",ra); } for(int cr = 0; cr<=5; cr++){ sprintf(tmp,"cr%d",cr); if(strpos(split[3],tmp) >= 0) sprintf(pvsscrate,"%02d",cr); } sprintf(query,"select * from hv_loc where position=%s order by loctime desc",pvssrack+pvsscrate); rc = dbOpenRecordset(con,query,rec,2); if(!rc){ skip = false; //if no row, add new row if(dbEOF(rec)){ rc = dbAddNew(rec); if(!rc){ DebugTN("New Mapping for hv_loc!! Write the wingDB for sector"+sec+" (crate)"); rc = dbPutField(rec, 0, pvssserial); rc = dbPutField(rec, 1, pvssrack+pvsscrate); rc = dbPutField(rec, 2, HVinit); rc = dbUpdate(rec); DebugTN("serial = "+pvssserial); DebugTN("position = "+pvssrack+pvsscrate); skip = true; } } //added new row //if rows are found, check to update if(!skip){ rc = dbGetField(rec,0,fld); if(fld != pvssserial){ rc = dbAddNew(rec); DebugTN("Mapping was changed for hv_loc!! Write the wingDB for sector"+sec+" (crate)"); rc = dbPutField(rec,0,pvssserial); rc = dbPutField(rec, 1, pvssrack+pvsscrate); rc = dbPutField(rec, 2, HVinit); rc = dbUpdate(rec); DebugTN("serial = "+pvssserial); DebugTN("position = "+pvssrack+pvsscrate); } } } //-----------------------for HV DRIFT----------------------------- dpGet(split[1]+"/"+split[2]+"/"+split[3]+"/"+split[4]+".Actual.DeviceID",pvssserial); sprintf(tmp,"%d",strlen(pvssserial)-1); sprintf(pvssserial,"%-"+tmp+"."+tmp+"s",pvssserial); for(int sl = 0; sl<16; sl++){ sprintf(tmp,"ma%02d",sl); if(strpos(split[4],tmp) >= 0) sprintf(pvssslot,"%02d",sl/2); } sprintf(query,"select * from hv_loc where position=%s order by loctime desc",pvssrack+pvsscrate+pvssslot); rc = dbOpenRecordset(con,query,rec,2); if(!rc){ skip = false; //if no row, add new row if(dbEOF(rec)){ rc = dbAddNew(rec); if(!rc){ DebugTN("New Mapping for hv_loc !! Write the wingDB for sector"+sec+" (drift)"); rc = dbPutField(rec, 0, pvssserial); rc = dbPutField(rec, 1, pvssrack+pvsscrate+pvssslot); rc = dbPutField(rec, 2, HVinit); rc = dbUpdate(rec); DebugTN("serial = "+pvssserial); DebugTN("position = "+pvssrack+pvsscrate+pvssslot); skip = true; } } if(!skip){ rc = dbGetField(rec,0,fld); if(fld != pvssserial){ rc = dbAddNew(rec); DebugTN("Mapping was changed for hv_loc!! Write the wingDB for sector"+sec+" (drift)"); rc = dbPutField(rec,0,pvssserial); rc = dbPutField(rec, 1, pvssrack+pvsscrate+pvssslot); rc = dbPutField(rec, 2, HVinit); rc = dbUpdate(rec); DebugTN("serial = "+pvssserial); DebugTN("position = "+pvssrack+pvsscrate+pvssslot); } } } sprintf(query,"select * from hv_conn where position=%s order by loctime desc",pvssrack+pvsscrate+pvssslot); rc = dbOpenRecordset(con,query,rec,2); if(!rc){ skip = false; //if no row, add new row if(dbEOF(rec)){ rc = dbAddNew(rec); if(!rc){ DebugTN("New Mapping for hv_conn!! Write the wingDB for sector"+sec+" (drift)"); rc = dbPutField(rec, 0, pvssrack+pvsscrate+pvssslot); rc = dbPutField(rec, 1, sec); rc = dbPutField(rec, 2, HVinit); rc = dbUpdate(rec); DebugTN("position = "+pvssrack+pvsscrate+pvssslot); DebugTN("sm_slot = "+sec); skip = true; } } if(!skip){ rc = dbGetField(rec,1,fld); wingsector = fld; if(wingsector != sec){ DebugTN("Mapping was changed for hv_conn!! Write the wingDB for sector"+sec+" (drift)"); rc = dbAddNew(rec); if(!rc){ rc = dbPutField(rec,0,pvssrack+pvsscrate+pvssslot); rc = dbPutField(rec,1,sec); rc = dbPutField(rec,2,HVinit); rc = dbUpdate(rec); DebugTN("position = "+pvssrack+pvsscrate+pvssslot); DebugTN("sm_slot = "+sec); } } } } } //---------------------for HV ANODE---------------------- sprintf(tmp,"trd_hv:Sector%02d/Stack0/Layer0/Anode/SEC%02dS0L0Anode",sec,sec); dp = dpAliasToName(tmp); isdp = dpExists(dp); if(!isdp){ sprintf(tmp,"trd_hv2:Sector%02d/Stack0/Layer0/Anode/SEC%02dS0L0Anode",sec,sec); dp = dpAliasToName(tmp); isdp = dpExists(dp); } if(isdp){ split = strsplit(dp,"/"); dpGet(split[1]+"/"+split[2]+"/"+split[3]+"/"+split[4]+".Actual.DeviceID",pvssserial); sprintf(tmp,"%d",strlen(pvssserial)-1); sprintf(pvssserial,"%-"+tmp+"."+tmp+"s",pvssserial); for(int ra = 12; ra<=14; ra++){ sprintf(tmp,"ra%d",ra); if(strpos(split[3],tmp) >= 0) sprintf(pvssrack,"%02d",ra); } for(int cr = 0; cr<=5; cr++){ sprintf(tmp,"cr%d",cr); if(strpos(split[3],tmp) >= 0) sprintf(pvsscrate,"%02d",cr); } for(int sl = 0; sl<16; sl++){ sprintf(tmp,"ma%02d",sl); if(strpos(split[4],tmp) >= 0) sprintf(pvssslot,"%02d",sl/2); } sprintf(query,"select * from hv_loc where position=%s order by loctime desc",pvssrack+pvsscrate+pvssslot); rc = dbOpenRecordset(con,query,rec,2); if(!rc){ skip = false; //if no row, add new row if(dbEOF(rec)){ rc = dbAddNew(rec); if(!rc){ DebugTN("New Mapping for hv_loc!! Write the wingDB for sector"+sec+" (anode)"); rc = dbPutField(rec, 0, pvssserial); rc = dbPutField(rec, 1, pvssrack+pvsscrate+pvssslot); rc = dbPutField(rec, 2, HVinit); rc = dbUpdate(rec); DebugTN("serial = "+pvssserial); DebugTN("position = "+pvssrack+pvsscrate+pvssslot); skip = true; } } if(!skip){ rc = dbGetField(rec,0,fld); if(fld != pvssserial){ rc = dbAddNew(rec); DebugTN("Mapping was changed for hv_loc!! Write the wingDB for sector"+sec+" (anode)"); rc = dbPutField(rec,0,pvssserial); rc = dbPutField(rec, 1, pvssrack+pvsscrate+pvssslot); rc = dbPutField(rec, 2, HVinit); rc = dbUpdate(rec); DebugTN("serial = "+pvssserial); DebugTN("position = "+pvssrack+pvsscrate+pvssslot); } } } sprintf(query,"select * from hv_conn where position=%s order by loctime desc",pvssrack+pvsscrate+pvssslot); rc = dbOpenRecordset(con,query,rec,2); if(!rc){ skip = false; //if no row, add new row if(dbEOF(rec)){ rc = dbAddNew(rec); if(!rc){ DebugTN("New Mapping for hv_conn!! Write the wingDB for sector"+sec+" (anode)"); rc = dbPutField(rec, 0, pvssrack+pvsscrate+pvssslot); rc = dbPutField(rec, 1, sec); rc = dbPutField(rec, 2, HVinit); rc = dbUpdate(rec); DebugTN("position = "+pvssrack+pvsscrate+pvssslot); DebugTN("sm_id = "+wingsmid); skip = true; } } if(!skip){ rc = dbGetField(rec,1,fld); wingsector = fld; if(wingsector != sec){ DebugTN("Mapping was changed for hv_conn!! Write the wingDB for sector"+sec+" (anode)"); rc = dbAddNew(rec); if(!rc){ rc = dbPutField(rec,0,pvssrack+pvsscrate+pvssslot); rc = dbPutField(rec,1,sec); rc = dbPutField(rec,2,HVinit); rc = dbUpdate(rec); DebugTN("position = "+pvssrack+pvsscrate+pvssslot); DebugTN("sm_slot = "+sec); } } } } } } dbCloseConnection(con); } }