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; rc = dbOpenConnection("DSN=trdfero;UID=trdfero;PWD=$D108&trd",con); //rc = dbOpenConnection("DSN=trdfero;UID=trdfero;PWD=secret;server=trdro2;port=1521",con); if(!rc){ for(int sec = 0; sec<18; sec++){ count = 0; DebugTN("sector = "+sec); //----------------------- for HV ------------------------ 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, getCurrentTime()); 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, getCurrentTime()); 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, getCurrentTime()); 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, getCurrentTime()); 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, getCurrentTime()); 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,getCurrentTime()); 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, getCurrentTime()); 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, getCurrentTime()); 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, getCurrentTime()); 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,getCurrentTime()); rc = dbUpdate(rec); DebugTN("position = "+pvssrack+pvsscrate+pvssslot); DebugTN("sm_slot = "+sec); } } } } } } // LV for Pretrigger for(int i=0; i<14; i++){ count = 0; if(i==0) tmp = "trd_lv:PreTrigger/PT_CBA_FEBA_B_LV/PTCBA_M6V5"; if(i==1) tmp = "trd_lv:PreTrigger/PT_CBA_FEBA_B_LV/PTCBA_P6V5"; if(i==2) tmp = "trd_lv:PreTrigger/PT_CBA_FEBA_P_LV/PTCBA_M6V5"; if(i==3) tmp = "trd_lv:PreTrigger/PT_CBA_FEBA_P_LV/PTCBA_P6V5"; if(i==4) tmp = "trd_lv:PreTrigger/PT_CBB_CBC_T0C_B_LV/PTCBB_M12V0"; if(i==5) tmp = "trd_lv:PreTrigger/PT_CBB_CBC_T0C_B_LV/PTCBB_M6V5"; if(i==6) tmp = "trd_lv:PreTrigger/PT_CBB_CBC_T0C_B_LV/PTCBB_P12V0"; if(i==7) tmp = "trd_lv:PreTrigger/PT_CBB_CBC_T0C_B_LV/PTCBB_P6V5"; if(i==8) tmp = "trd_lv:PreTrigger/PT_CBB_CBC_T0C_P_LV/PTCBB_M12V0"; if(i==9) tmp = "trd_lv:PreTrigger/PT_CBB_CBC_T0C_P_LV/PTCBB_M6V5"; if(i==10) tmp = "trd_lv:PreTrigger/PT_CBB_CBC_T0C_P_LV/PTCBB_P12V0"; if(i==11) tmp = "trd_lv:PreTrigger/PT_CBB_CBC_T0C_P_LV/PTCBB_P6V5"; if(i==12) tmp = "trd_lv:PreTrigger/PT_V0C_P_LV/PTV0C_M6V5"; if(i==13) tmp = "trd_lv:PreTrigger/PT_V0C_P_LV/PTV0C_P6V5"; dp = dpAliasToName(tmp); if(dpExists(dp)){ //Get serial number from PVSS split = strsplit(dp,"/"); pvssmodule = split[1]+"/"+split[2]+"."; dpGet(pvssmodule+"Description",pvssserial); split = strsplit(pvssserial,"(,"); count = -1; while(strpos(pvssmodule,wienerid) <= 0){ count++; sprintf(wienerid,"%03d",count); } if(dynlen(split) >= 2) pvssserialconv = split[2]; //Get rack and height from wingDB LV_CHAN if(i==0) query = "select * from LV_CHAN where GOESTO='PT-A-M65V-Backup'"; if(i==1) query = "select * from LV_CHAN where GOESTO='PT-A-P65V-Backup'"; if(i==2) query = "select * from LV_CHAN where GOESTO='PT-A-M65V-Primary'"; if(i==3) query = "select * from LV_CHAN where GOESTO='PT-A-P65V-Primary'"; if(i==4) query = "select * from LV_CHAN where GOESTO='PT-B-M120V-Backup'"; if(i==5) query = "select * from LV_CHAN where GOESTO='PT-B-M65V-Backup'"; if(i==6) query = "select * from LV_CHAN where GOESTO='PT-B-P120V-Backup'"; if(i==7) query = "select * from LV_CHAN where GOESTO='PT-B-P65V-Backup'"; if(i==8) query = "select * from LV_CHAN where GOESTO='PT-B-M120V-Primary'"; if(i==9) query = "select * from LV_CHAN where GOESTO='PT-B-M65V-Primary'"; if(i==10) query = "select * from LV_CHAN where GOESTO='PT-B-P120V-Primary'"; if(i==11) query = "select * from LV_CHAN where GOESTO='PT-B-P65V-Primary'"; if(i==12) query = "select * from LV_CHAN where GOESTO='PT-C-M65V-Primary'"; if(i==13) query = "select * from LV_CHAN where GOESTO='PT-C-P65V-Primary'"; rc = dbOpenRecordset(con,query,rec,2); if(!rc){ if(dbEOF(rec)){ DebugTN("please update wingDB via gateDB for PreTrigger"); continue; } while(!rc && !dbEOF(rec)){ rc = dbGetField(rec,0,fld); lvrack = fld; rc = dbGetField(rec,1,fld); lvheight = fld; rc = dbGetField(rec,2,fld); lvchan = fld; rc = dbGetField(rec,3,fld); lvgo = fld; rc = dbMoveNext(rec); } } count = 0; //Write serial, rack and height for wingDB LV_LOC sprintf(query ,"select * from LV_LOC where SERIAL='%s' order by loctime desc",pvssserialconv); rc = dbOpenRecordset(con,query,rec,2); if(!rc){ skip = false; if(dbEOF(rec)){ rc = dbAddNew(rec); if(!rc){ DebugTN("New Mapping !! Write the wingDB for LV PreTrigger "+tmp); rc = dbPutField(rec, 0, pvssserialconv); rc = dbPutField(rec, 1, lvrack); rc = dbPutField(rec, 2, lvheight); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); skip = true; } } if(!skip){ rc = dbGetField(rec,1,fld); winglvrack = fld; rc = dbGetField(rec,2,fld); wingheight = fld; if(lvrack != winglvrack || lvheight != wingheight){ rc = dbAddNew(rec); if(!rc){ DebugTN("Mapping was changed write the wingDB for LV PreTrigger "+tmp); rc = dbPutField(rec, 0, pvssserialconv); rc = dbPutField(rec, 1, lvrack); rc = dbPutField(rec, 2, lvheight); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); } } } } DebugTN("alidscwie = "+wienerid); sprintf(query ,"select * from lv_conn where wiener_id=%s and channel=%d order by loctime desc",wienerid,lvchan); rc = dbOpenRecordset(con,query,rec,2); if(!rc){ skip = false; if(dbEOF(rec)){ rc = dbAddNew(rec); if(!rc){ DebugTN("New Mapping for LV connection!! Write the wingDB for LV PreTrigger "+tmp); rc = dbPutField(rec, 0, wienerid); rc = dbPutField(rec, 1, lvchan); rc = dbPutField(rec, 2, lvgo); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); skip = true; } } if(!skip){ rc = dbGetField(rec,2,fld); if(lvgo != fld){ rc = dbAddNew(rec); if(!rc){ DebugTN("Mapping was changed for LV connection!! Write the wingDB for LV PreTrigger "+tmp); rc = dbPutField(rec, 0, wienerid); rc = dbPutField(rec, 1, lvchan); rc = dbPutField(rec, 2, lvgo); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); } } } } } } count = 0; // LV for PDB for(int i=0; i<9; i++){ count = 0; if(i!=8) sprintf(tmp,"trd_lv:TRD_PDB_LV/SEC%02d%02d",i*2+1,i*2+2); if(i==8) tmp = "trd_lv:TRD_PDB_LV/SEC1700"; dp = dpAliasToName(tmp); if(dpExists(dp)){ //Get serial number from PVSS split = strsplit(dp,"/"); pvssmodule = split[1]+"/"+split[2]+"."; dpGet(pvssmodule+"Description",pvssserial); split = strsplit(pvssserial,"(,"); count = -1; while(strpos(pvssmodule,wienerid) <= 0){ count++; sprintf(wienerid,"%03d",count); } if(dynlen(split) >= 2) pvssserialconv = split[2]; //Get rack and height from wingDB LV_CHAN sprintf(query, "select * from LV_CHAN where GOESTO='PDB-SEC%02d-SEC%02d'",i*2+1,i*2+2); if(i==8) query = "select * from LV_CHAN where GOESTO='PDB-SEC17-SEC00'"; rc = dbOpenRecordset(con,query,rec,2); if(!rc){ if(dbEOF(rec)){ DebugTN("please update wingDB via gateDB for PDB"); continue; } while(!rc && !dbEOF(rec)){ rc = dbGetField(rec,0,fld); lvrack = fld; rc = dbGetField(rec,1,fld); lvheight = fld; rc = dbGetField(rec,2,fld); lvchan = fld; rc = dbGetField(rec,3,fld); lvgo = fld; rc = dbMoveNext(rec); } } count = 0; //Write serial, rach and height for wingDB LV_LOC sprintf(query ,"select * from LV_LOC where SERIAL='%s' order by loctime desc",pvssserialconv); rc = dbOpenRecordset(con,query,rec,2); if(!rc){ skip=false; if(dbEOF(rec)){ rc = dbAddNew(rec); if(!rc){ DebugTN("New Mapping !! Write the wingDB for LV PDB "+tmp); rc = dbPutField(rec, 0, pvssserialconv); rc = dbPutField(rec, 1, lvrack); rc = dbPutField(rec, 2, lvheight); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); skip = true; } } if(!skip){ rc = dbGetField(rec,1,fld); winglvrack = fld; rc = dbGetField(rec,2,fld); wingheight = fld; if(lvrack != winglvrack || lvheight != wingheight){ rc = dbAddNew(rec); if(!rc){ DebugTN("Mapping was changed write the wingDB for LV PDB "+tmp); rc = dbPutField(rec, 0, pvssserialconv); rc = dbPutField(rec, 1, lvrack); rc = dbPutField(rec, 2, lvheight); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); } } } } sprintf(query ,"select * from lv_conn where wiener_id=%s and channel=%d order by loctime desc",wienerid,lvchan); rc = dbOpenRecordset(con,query,rec,2); if(!rc){ skip = false; if(dbEOF(rec)){ rc = dbAddNew(rec); if(!rc){ DebugTN("New Mapping for LV connection!! Write the wingDB for LV PDB "+tmp); rc = dbPutField(rec, 0, wienerid); rc = dbPutField(rec, 1, lvchan); rc = dbPutField(rec, 2, lvgo); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); skip = true; } } if(!skip){ rc = dbGetField(rec,2,fld); if(lvgo != fld){ rc = dbAddNew(rec); if(!rc){ DebugTN("Mapping was changed for LV connection!! Write the wingDB for LV PDB "+tmp); rc = dbPutField(rec, 0, wienerid); rc = dbPutField(rec, 1, lvchan); rc = dbPutField(rec, 2, lvgo); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); } } } } } } // LV for PCU for(int i=0; i<3; i++){ count = 0; if(i==0) tmp = "trd_lv:PCU/PCU_LVchA"; if(i==1) tmp = "trd_lv:PCU/PCU_LVchB"; if(i==2) tmp = "trd_lv:PCU/PCU_LVchC"; dp = dpAliasToName(tmp); if(dpExists(dp)){ //Get serial number from PVSS split = strsplit(dp,"/"); pvssmodule = split[1]+"/"+split[2]+"."; dpGet(pvssmodule+"Description",pvssserial); split = strsplit(pvssserial,"(,"); count = -1; while(strpos(pvssmodule,wienerid) <= 0){ count++; sprintf(wienerid,"%03d",count); } if(dynlen(split) >= 2) pvssserialconv = split[2]; //Get rack and height from wingDB LV_CHAN if(i==0) query = "select * from LV_CHAN where GOESTO='PCU-channel-A'"; if(i==1) query = "select * from LV_CHAN where GOESTO='PCU-channel-B'"; if(i==2) query = "select * from LV_CHAN where GOESTO='PCU-channel-C'"; rc = dbOpenRecordset(con,query,rec,2); if(!rc){ if(dbEOF(rec)){ DebugTN("please update wingDB via gateDB for PCU"); continue; } while(!rc && !dbEOF(rec)){ rc = dbGetField(rec,0,fld); lvrack = fld; rc = dbGetField(rec,1,fld); lvheight = fld; rc = dbGetField(rec,2,fld); lvchan = fld; rc = dbGetField(rec,3,fld); lvgo = fld; rc = dbMoveNext(rec); } } count = 0; //Write serial, rach and height for wingDB LV_LOC sprintf(query ,"select * from LV_LOC where SERIAL='%s' order by loctime desc",pvssserialconv); rc = dbOpenRecordset(con,query,rec,2); if(!rc){ skip=false; if(dbEOF(rec)){ rc = dbAddNew(rec); if(!rc){ DebugTN("New Mapping !! Write the wingDB for LV PCU "+tmp); rc = dbPutField(rec, 0, pvssserialconv); rc = dbPutField(rec, 1, lvrack); rc = dbPutField(rec, 2, lvheight); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); skip = true; } } if(!skip){ rc = dbGetField(rec,1,fld); winglvrack = fld; rc = dbGetField(rec,2,fld); wingheight = fld; if(lvrack != winglvrack || lvheight != wingheight){ rc = dbAddNew(rec); if(!rc){ DebugTN("Mapping was changed write the wingDB for LV PCU "+tmp); rc = dbPutField(rec, 0, pvssserialconv); rc = dbPutField(rec, 1, lvrack); rc = dbPutField(rec, 2, lvheight); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); } } } } sprintf(query ,"select * from lv_conn where wiener_id=%s and channel=%d order by loctime desc",wienerid,lvchan); rc = dbOpenRecordset(con,query,rec,2); if(!rc){ skip = false; if(dbEOF(rec)){ rc = dbAddNew(rec); if(!rc){ DebugTN("New Mapping for LV connection!! Write the wingDB for LV PCU "+tmp); rc = dbPutField(rec, 0, wienerid); rc = dbPutField(rec, 1, lvchan); rc = dbPutField(rec, 2, lvgo); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); skip = true; } } if(!skip){ rc = dbGetField(rec,2,fld); if(lvgo != fld){ rc = dbAddNew(rec); if(!rc){ DebugTN("Mapping was changed for LV connection!! Write the wingDB for LV PCU "+tmp); rc = dbPutField(rec, 0, wienerid); rc = dbPutField(rec, 1, lvchan); rc = dbPutField(rec, 2, lvgo); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); } } } } } } // LV for SM for(int i=0; i<18; i++){ //sprintf(pvsssector,"%02d",i); pvsssector = i; for(int st=0; st<10; st++){ count = 0; if(st==0) sprintf(tmp,"trd_lv:TRD_SEC%02d_LV/SEC%02dD3V3LV/SEC%02dD3V3",i,i,i); if(st==1) sprintf(tmp,"trd_lv;TRD_SEC%02d_LV/SEC%02dL01LV/SEC%02dL01A1V8",i,i,i); if(st==2) sprintf(tmp,"trd_lv:TRD_SEC%02d_LV/SEC%02dL01LV/SEC%02dL01A3V3",i,i,i); if(st==3) sprintf(tmp,"trd_lv:TRD_SEC%02d_LV/SEC%02dL01LV/SEC%02dL01D1V8",i,i,i); if(st==4) sprintf(tmp,"trd_lv;TRD_SEC%02d_LV/SEC%02dL23LV/SEC%02dL23A1V8",i,i,i); if(st==5) sprintf(tmp,"trd_lv:TRD_SEC%02d_LV/SEC%02dL23LV/SEC%02dL23A3V3",i,i,i); if(st==6) sprintf(tmp,"trd_lv:TRD_SEC%02d_LV/SEC%02dL23LV/SEC%02dL23D1V8",i,i,i); if(st==7) sprintf(tmp,"trd_lv;TRD_SEC%02d_LV/SEC%02dL45LV/SEC%02dL45A1V8",i,i,i); if(st==8) sprintf(tmp,"trd_lv:TRD_SEC%02d_LV/SEC%02dL45LV/SEC%02dL45A3V3",i,i,i); if(st==9) sprintf(tmp,"trd_lv:TRD_SEC%02d_LV/SEC%02dL45LV/SEC%02dL45D1V8",i,i,i); dp = dpAliasToName(tmp); if(dpExists(dp)){ //Get Serial number from PVSS split = strsplit(dp,"/"); pvssmodule = split[1]+"/"+split[2]+"."; dpGet(pvssmodule+"Description",pvssserial); split = strsplit(pvssserial,"(,"); count = -1; while(strpos(pvssmodule,wienerid) <= 0){ count++; sprintf(wienerid,"%03d",count); } if(dynlen(split) >= 2) pvssserialconv = split[2]; //Get rack and height from wingDB LV_CHAN sprintf(query,"select * from LV_CHAN where GOESTO='SEC%02d-",i); if(st==0) sprintf(query,"select * from LV_CHAN where GOESTO='SEC%02d-D33V-L05'",i); if(st==1) sprintf(query,"select * from LV_CHAN where GOESTO='SEC%02d-A18V-L01'",i); if(st==2) sprintf(query,"select * from LV_CHAN where GOESTO='SEC%02d-A33V-L01'",i); if(st==3) sprintf(query,"select * from LV_CHAN where GOESTO='SEC%02d-D18V-L01'",i); if(st==4) sprintf(query,"select * from LV_CHAN where GOESTO='SEC%02d-A18V-L23'",i); if(st==5) sprintf(query,"select * from LV_CHAN where GOESTO='SEC%02d-A33V-L23'",i); if(st==6) sprintf(query,"select * from LV_CHAN where GOESTO='SEC%02d-D18V-L23'",i); if(st==7) sprintf(query,"select * from LV_CHAN where GOESTO='SEC%02d-A18V-L45'",i); if(st==8) sprintf(query,"select * from LV_CHAN where GOESTO='SEC%02d-A33V-L45'",i); if(st==9) sprintf(query,"select * from LV_CHAN where GOESTO='SEC%02d-D18V-L45'",i); rc = dbOpenRecordset(con,query,rec,2); if(!rc){ if(dbEOF(rec)){ DebugTN("please update wingDB via gateDB for SM"); continue; } while(!rc && !dbEOF(rec)){ rc = dbGetField(rec,0,fld); lvrack = fld; rc = dbGetField(rec,1,fld); lvheight = fld; rc = dbGetField(rec,2,fld); lvchan = fld; rc = dbGetField(rec,3,fld); lvgo = fld; rc = dbMoveNext(rec); } } count = 0; //Write serial, rach and height for wingDB LV_LOC sprintf(query ,"select * from LV_LOC where SERIAL='%s' order by loctime desc",pvssserialconv); rc = dbOpenRecordset(con,query,rec,2); if(!rc){ skip=false; if(dbEOF(rec)){ rc = dbAddNew(rec); if(!rc){ DebugTN("New Mapping !! Write the wingDB for LV Sector"+pvsssector); rc = dbPutField(rec, 0, pvssserialconv); rc = dbPutField(rec, 1, lvrack); rc = dbPutField(rec, 2, lvheight); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); skip = true; } } if(!skip){ rc = dbGetField(rec,1,fld); winglvrack = fld; rc = dbGetField(rec,2,fld); wingheight = fld; if(lvrack != winglvrack || lvheight != wingheight){ rc = dbAddNew(rec); if(!rc){ DebugTN("Mapping was changed write the wingDB for LV sector"+pvsssector); rc = dbPutField(rec, 0, pvssserialconv); rc = dbPutField(rec, 1, lvrack); rc = dbPutField(rec, 2, lvheight); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); } } } } sprintf(query ,"select * from lv_conn where wiener_id=%s and channel=%d order by loctime desc",wienerid,lvchan); rc = dbOpenRecordset(con,query,rec,2); if(!rc){ skip = false; if(dbEOF(rec)){ rc = dbAddNew(rec); if(!rc){ DebugTN("New Mapping for LV connection!! Write the wingDB for LV PCU "+tmp); rc = dbPutField(rec, 0, wienerid); rc = dbPutField(rec, 1, lvchan); rc = dbPutField(rec, 2, lvgo); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); skip = true; } } if(!skip){ rc = dbGetField(rec,2,fld); if(lvgo != fld){ rc = dbAddNew(rec); if(!rc){ DebugTN("Mapping was changed for LV connection!! Write the wingDB for LV PCU "+tmp); rc = dbPutField(rec, 0, wienerid); rc = dbPutField(rec, 1, lvchan); rc = dbPutField(rec, 2, lvgo); rc = dbPutField(rec, 3, getCurrentTime()); rc = dbUpdate(rec); DebugTN("serial = "+pvssserialconv); DebugTN("rack = "+lvrack); DebugTN("height = "+lvheight); } } } } } } } dbCloseConnection(con); } }