// GMRT OBSERVING SETUP AND COMMAND FILE CREATOR (1.4)// // snk @ gmrt 2022 // // antenna list var ant=["C00","C01","C02","C03","C04","C05","C06","C08","C09","C10","C11","C12","C13","C14","E02","E03","E04","E05","E06","S01","S02","S03","S04","S06","W01","W02","W03","W04","W05","W06"]; var tmpant=["C00","C01","C02","C03","C04","C05","C06","C08","C09","C10","C11","C12","C13","C14","E02","E03","E04","E05","E06","S01","S02","S03","S04","S06","W01","W02","W03","W04","W05","W06"]; var pcode=["A","A","B","C","D"]; var max_sub=4; var max_beam=4; var beam_host=["gwbh","gwbh07(1)","gwbh08(2)","gwbh09(3)","gwbh10(4)"]; var beam_host_id=[0,1,2,3,4]; var gwb_version="release"; var tot_time_warn=0; var newlist; var ncmd; var total_weight; var ddc_lo=[0,0,0,0,0]; // add or remove rows for command/task file, enable disable row columns $(document).ready(function($) { "use strict"; // copy row below $(document).on('click',".btn_row_below_clone", function(e) { var row_num = $(this).parent().parent().index() ; var r = $(this).closest('tr').clone(); $(this).closest('tr').after(r); var table = document.getElementById("table2"); var rowCount = table.rows.length-1; for(var i=1; i<=rowCount; i++) { table.rows[i].cells[0].innerHTML=i; } $(this).closest('tr').next().find("td:eq(1)").find("select").val("--"); $(this).closest('tr').next().find("td:eq(2)").find("input").val("--"); $(this).closest('tr').next().find("td:eq(3)").find("input").val("--"); $(this).closest('tr').next().find("td:eq(4)").find("input").val("0"); }); // delete this row $(document).on('click',".btn_row_delete", function(e) { var row_num = $(this).parent().parent().index(); if(row_num<2) { return(0); } if(confirm("Do you want to delete this command")) { var r = $(this).closest('tr').remove(); } var table = document.getElementById("table2"); var rowCount = table.rows.length-1; for(var i=1; i<=rowCount; i++) { table.rows[i].cells[0].innerHTML=i; } }); // when clicked on command(task) $(document).on('change',".btn_set", function(e) { var cmd = $(this).val(); // phase, flux, target $(this).closest('tr').find("td:eq(2)").find("input").val("--"); $(this).closest('tr').find("td:eq(3)").find("input").removeAttr("readonly"); $(this).closest('tr').find("td:eq(4)").find("input").removeAttr("readonly"); $(this).closest('tr').css("background-color",""); // cmd setup if(cmd.match("setup")){ $(this).closest('tr').find("td:eq(3)").find("input").val("--"); $(this).closest('tr').find("td:eq(4)").find("input").val("15"); $(this).closest('tr').css("background-color","lightblue"); return(0); } // cmd loop_start, loop_stop if(cmd.match(/loop/g)) { if(cmd.match("loop_start")) { $(this).closest('tr').find("td:eq(2)").find("input").val("2"); $(this).closest('tr').find("td:eq(3)").find("input").val("{"); $(this).closest('tr').find("td:eq(4)").find("input").val("0"); $(this).closest('tr').find("td:eq(3)").find("input").attr("readonly","readonly"); $(this).closest('tr').find("td:eq(4)").find("input").attr("readonly","readonly"); $(this).closest('tr').css("background-color","lightblue"); } else { $(this).closest('tr').find("td:eq(2)").find("input").val("--"); $(this).closest('tr').find("td:eq(3)").find("input").val("}"); $(this).closest('tr').find("td:eq(4)").find("input").val("0"); $(this).closest('tr').find("td:eq(3)").find("input").attr("readonly","readonly"); $(this).closest('tr').find("td:eq(4)").find("input").attr("readonly","readonly"); $(this).closest('tr').css("background-color","lightblue"); } return(0); } // cmd power_eq if(cmd.match("power_eq")){ $(this).closest('tr').find("td:eq(2)").find("input").val("100"); $(this).closest('tr').find("td:eq(4)").find("input").val("5"); return(0); } // cmd phasing if(cmd.match("phasing")){ $(this).closest('tr').find("td:eq(2)").find("input").val("--"); $(this).closest('tr').find("td:eq(4)").find("input").val("5"); return(0); } // cmd position if(cmd.match("position")){ $(this).closest('tr').find("td:eq(2)").find("input").val("--"); $(this).closest('tr').find("td:eq(4)").find("input").val("2"); return(0); } // cmd sleep if(cmd.match("sleep")){ $(this).closest('tr').find("td:eq(2)").find("input").val("--"); $(this).closest('tr').find("td:eq(4)").find("input").val("2"); return(0); } }); // setup date input $('#dtpicker1').datetimepicker({ dayOfWeekStart : 1, format:'dMY H:00', lang:'en', startDate:currentDate }); var currentDate = new Date(); $('#dtpicker1').datetimepicker({value:currentDate,step:60}); onload_init(); }); // onload default function onload_init(){ "use strict"; // setup date input //$('#dtpicker1').datetimepicker({ //dayOfWeekStart : 1, //format:'dMY H:00', //lang:'en', //startDate:currentDate //}); //var currentDate = new Date(); //$('#dtpicker1').datetimepicker({value:currentDate,step:60}); // setup all subarrays and all beams (html) var i,j; for(i=1;i<=4;i++) { // sub loop document.getElementById('s'+i).innerHTML=add_sub(i,0); for(j=1;j<=4;j++) { // beam loop $('#t'+i).find("tr:last").after(add_beam(i,j)); } } // remove all antenna selection from subarrays and beams, set band "OFF" for all subarrays and set beam "OFF" for all beams for(i=1;i<=4;i++) { remove_sub_and_beam(i); } // hide all subarrays and beams (html) for(i=1;i<=4;i++) { // sub loop document.getElementById('s'+i).style.display="none"; document.getElementById('s'+i+'_bm').disabled=true; document.getElementById('s'+i+'_bm').value=0; document.getElementById('s'+i+'_bm0').style.display="none"; for(j=1;j<=4;j++) { // beam loop document.getElementById('s'+i+'_bm'+j).style.display="none"; } } // set check buttons (default) document.getElementById('type1').checked=1; // continuum document.getElementById('type2').checked=0; // line document.getElementById('type3').checked=0; // beam // set main parameters (default) document.getElementById('sub').value=1; // subarray document.getElementById('bw').value=200; // bandwidth document.getElementById('ch').value=2048; // channels document.getElementById('st').value=2; // stokes document.getElementById('rfi').value=0; // rfi document.getElementById('pfb').value=0; // pfb document.getElementById('sta_int').value=4; // sta cycles // show first subarray show_sub(1); // set default frequency band for subarray 1 document.getElementById('s1_bnd').value="OFF"; setdefaultfreq(1); // enable all antenna selection for subarray 1 and its beam 1 document.getElementById('s1_ant').value=tmpant; document.getElementById('s1_bm1_ant').value=tmpant; cnt_ant(1,0); cnt_ant(1,1); // default beam setup document.getElementById('s1_bm1_mod').value="IA"; document.getElementById('s1_bm1_bit1').value=16; document.getElementById('s1_bm1_bit2').value=16; document.getElementById('s1_bm1_int').value=81; document.getElementById('s1_bm1_st').value=1; document.getElementById('s1_bm1_st').disabled=true; check_beam(1,1,1); setup_cl_commandfile(); //setup_beam_commandfile(); uploadfile("src"); uploadfile("obs"); } // setup C/L sample command file function setup_cl_commandfile(){ "use strict"; // setup command file for C/L var table = document.getElementById("table2"); var rowCount = table.rows.length; // remove rows for(var i=rowCount; i>1; i--) { var r=$("#table2").find("tr:eq("+i+")").remove(); } // add 8 rows for(var i=1; i<8;i++) { var r=$("#table2").find("tr:eq("+i+")").clone(); $("#table2").find("tr:eq("+i+")").after(r); } // update index upto 8 for(var i=1; i<=8; i++) { table.rows[i].cells[0].innerHTML=i; } // 1 setup $("#table2").find("tr:eq(1)").find("td:eq(1)").find("select").val("setup"); $("#table2").find("tr:eq(1)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(1)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(1)").find("td:eq(3)").find("input").val("--"); $("#table2").find("tr:eq(1)").find("td:eq(4)").find("input").val("20"); $("#table2").find("tr:eq(1)").css("background-color","lightblue"); // 2 flux_cal $("#table2").find("tr:eq(2)").find("td:eq(1)").find("select").val("flux_cal"); $("#table2").find("tr:eq(2)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(2)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(2)").find("td:eq(3)").find("input").val("3Cxx"); $("#table2").find("tr:eq(2)").find("td:eq(4)").find("input").val("10"); // 3 phase_cal $("#table2").find("tr:eq(3)").find("td:eq(1)").find("select").val("phase_cal"); $("#table2").find("tr:eq(3)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(3)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(3)").find("td:eq(3)").find("input").val("0837-xx"); $("#table2").find("tr:eq(3)").find("td:eq(4)").find("input").val("5"); // 4 loop_start $("#table2").find("tr:eq(4)").find("td:eq(1)").find("select").val("loop_start"); $("#table2").find("tr:eq(4)").find("td:eq(2)").find("input").val("3"); $("#table2").find("tr:eq(4)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(4)").find("td:eq(3)").find("input").val("{"); $("#table2").find("tr:eq(4)").find("td:eq(3)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(4)").find("td:eq(4)").find("input").val("0"); $("#table2").find("tr:eq(4)").find("td:eq(4)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(4)").css("background-color","lightblue"); // 5 target $("#table2").find("tr:eq(5)").find("td:eq(1)").find("select").val("target"); $("#table2").find("tr:eq(5)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(5)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(5)").find("td:eq(3)").find("input").val("NGCxx"); $("#table2").find("tr:eq(5)").find("td:eq(4)").find("input").val("30"); // 6 phase_cal $("#table2").find("tr:eq(6)").find("td:eq(1)").find("select").val("phase_cal"); $("#table2").find("tr:eq(6)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(6)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(6)").find("td:eq(3)").find("input").val("0837-xx"); $("#table2").find("tr:eq(6)").find("td:eq(4)").find("input").val("5"); // 7 loop_stop $("#table2").find("tr:eq(7)").find("td:eq(1)").find("select").val("loop_stop"); $("#table2").find("tr:eq(7)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(7)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(7)").find("td:eq(3)").find("input").val("}"); $("#table2").find("tr:eq(7)").find("td:eq(3)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(7)").find("td:eq(4)").find("input").val("0"); $("#table2").find("tr:eq(7)").find("td:eq(4)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(7)").css("background-color","lightblue"); // 8 flux_cal $("#table2").find("tr:eq(8)").find("td:eq(1)").find("select").val("flux_cal"); $("#table2").find("tr:eq(8)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(8)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(8)").find("td:eq(3)").find("input").val("3Cxx"); $("#table2").find("tr:eq(8)").find("td:eq(4)").find("input").val("10"); gettimeval(); } // setup beam sample command file function setup_beam_commandfile(){ "use strict"; // setup command file for beam var table = document.getElementById("table2"); var rowCount = table.rows.length; // remove rows for(var i=rowCount; i>1; i--) { var r=$("#table2").find("tr:eq("+i+")").remove(); } // add 10 rows for(var i=1; i<10;i++) { var r=$("#table2").find("tr:eq("+i+")").clone(); $("#table2").find("tr:eq("+i+")").after(r); } // update index upto 10 for(var i=1; i<=10; i++) { table.rows[i].cells[0].innerHTML=i; } // 1 setup $("#table2").find("tr:eq(1)").find("td:eq(1)").find("select").val("setup"); $("#table2").find("tr:eq(1)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(1)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(1)").find("td:eq(3)").find("input").val("--"); $("#table2").find("tr:eq(1)").find("td:eq(4)").find("input").val("20"); $("#table2").find("tr:eq(1)").css("background-color","lightblue"); // 2 power_eq $("#table2").find("tr:eq(2)").find("td:eq(1)").find("select").val("power_eq"); $("#table2").find("tr:eq(2)").find("td:eq(2)").find("input").val("120"); $("#table2").find("tr:eq(2)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(2)").find("td:eq(3)").find("input").val("3Cxx"); $("#table2").find("tr:eq(2)").find("td:eq(4)").find("input").val("5"); // 3 phasing $("#table2").find("tr:eq(3)").find("td:eq(1)").find("select").val("phasing"); $("#table2").find("tr:eq(3)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(3)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(3)").find("td:eq(3)").find("input").val("3Cxx"); $("#table2").find("tr:eq(3)").find("td:eq(4)").find("input").val("8"); // 4 target $("#table2").find("tr:eq(4)").find("td:eq(1)").find("select").val("target"); $("#table2").find("tr:eq(4)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(4)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(4)").find("td:eq(3)").find("input").val("PSRxx"); $("#table2").find("tr:eq(4)").find("td:eq(4)").find("input").val("30"); // 5 flux_cal $("#table2").find("tr:eq(5)").find("td:eq(1)").find("select").val("flux_cal"); $("#table2").find("tr:eq(5)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(5)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(5)").find("td:eq(3)").find("input").val("3Cxx"); $("#table2").find("tr:eq(5)").find("td:eq(4)").find("input").val("10"); // 6 loop_start $("#table2").find("tr:eq(6)").find("td:eq(1)").find("select").val("loop_start"); $("#table2").find("tr:eq(6)").find("td:eq(2)").find("input").val("5"); $("#table2").find("tr:eq(6)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(6)").find("td:eq(3)").find("input").val("{"); $("#table2").find("tr:eq(6)").find("td:eq(3)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(6)").find("td:eq(4)").find("input").val("0"); $("#table2").find("tr:eq(6)").find("td:eq(4)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(6)").css("background-color","lightblue"); // 7 phasing $("#table2").find("tr:eq(7)").find("td:eq(1)").find("select").val("phasing"); $("#table2").find("tr:eq(7)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(7)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(7)").find("td:eq(3)").find("input").val("3Cxx"); $("#table2").find("tr:eq(7)").find("td:eq(4)").find("input").val("8"); // 8 target $("#table2").find("tr:eq(8)").find("td:eq(1)").find("select").val("target"); $("#table2").find("tr:eq(8)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(8)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(8)").find("td:eq(3)").find("input").val("PSRxx"); $("#table2").find("tr:eq(8)").find("td:eq(4)").find("input").val("30"); // 9 loop_stop $("#table2").find("tr:eq(9)").find("td:eq(1)").find("select").val("loop_stop"); $("#table2").find("tr:eq(9)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(9)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(9)").find("td:eq(3)").find("input").val("}"); $("#table2").find("tr:eq(9)").find("td:eq(3)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(9)").find("td:eq(4)").find("input").val("0"); $("#table2").find("tr:eq(9)").find("td:eq(4)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(9)").css("background-color","lightblue"); // 10 flux_cal $("#table2").find("tr:eq(10)").find("td:eq(1)").find("select").val("flux_cal"); $("#table2").find("tr:eq(10)").find("td:eq(2)").find("input").val("--"); $("#table2").find("tr:eq(10)").find("td:eq(2)").find("input").attr("readonly","readonly"); $("#table2").find("tr:eq(10)").find("td:eq(3)").find("input").val("3Cxx"); $("#table2").find("tr:eq(10)").find("td:eq(4)").find("input").val("10"); gettimeval(); } // set default values for each band change function setdefaultfreq(i){ "use strict"; // read band var band=document.getElementById('s'+i+'_bnd').value; var bw=document.getElementById("bw").value; // for non selected band if(band == "OFF"){ document.getElementById('s'+i+'_f1').value=0; document.getElementById('s'+i+'_f2').value=0; document.getElementById('s'+i+'_f3').value=0; document.getElementById('s'+i+'_f4').value=0; document.getElementById('s'+i+'_f5').value=1; document.getElementById('s'+i+'_int').value=10.7; return(0); } // set default frequencies for valid bands document.getElementById('s'+i+'_f1').value=get_band_val(band,"f1"); document.getElementById('s'+i+'_f2').value=get_band_val(band,"f2"); document.getElementById('s'+i+'_f3').value=get_band_val(band,"f3"); document.getElementById('s'+i+'_f4').value=get_band_val(band,"f4"); document.getElementById('s'+i+'_f4').readOnly=true; document.getElementById('s'+i+'_f4').style.backgroundColor="lightgreen"; document.getElementById('s'+i+'_f5').value=1; // set default int document.getElementById('s'+i+'_int').value=10.7; var def_bw=get_band_val(band,"bw"); var band_name=get_band_val(band,"name"); if( bw != def_bw) { var f1=get_band_val(band,"f1"); var f3=f1+(get_band_val(band,"net")*bw); var f2=(f1+f3)/2; document.getElementById('s'+i+'_f2').value=f2; document.getElementById('s'+i+'_f3').value=f3; alert("Warning: Default band width for "+band_name+" is " + def_bw + " MHz.!!"); } return(0); } // check beofre download function check_all(){ "use strict"; //user name if( document.getElementById("user").value == "" ) { alert( "Please provide User name" ); return(0); } //email id if( document.getElementById("email").value == "" ) { alert( "Please provide Email id" ); return(0); } // code if( document.getElementById("code").value == "" ) { alert( "Please provide GTAC code" ); return(0); } // title if( document.getElementById("title").value == "" ) { alert( "Please provide Project title" ); return(0); } // read project information var user=document.getElementById("user").value; var email=document.getElementById("email").value; var code=document.getElementById("code").value; var title=document.getElementById("title").value; var time1=document.getElementById("dtpicker1").value; var hh=document.getElementById("hh").value; var type1=0; var type2=0; var type3=0; if(document.getElementById('type1').checked) { type1=1; } if(document.getElementById('type2').checked) { type2=1; } if(document.getElementById('type3').checked) { type3=1; } if( type1 == 0 && type2 == 0 && type3 == 0) { alert( "Please select at least one Observing type" ); return(0); } // project info var input="## GMRT OBSERVING SETUP AND COMMAND FILE (V1.4) ##\n\n"; input=input +"## !!! PLEASE DO NOT EDIT THIS FILE MANUALLY. IT MAY CAUSE ERRORS IN OBSERVATION !!! ##\n\n"; input=input+"{PROJECT_INFO\n"; input=input+"USER_NAME = "+user+"\n"; input=input+"EMAIL_ID = "+email+"\n"; input=input+"GTAC_CODE = "+code+"\n"; input=input+"PROJECT_TITLE = "+title+"\n"; input=input+"DATE_TIME = "+time1+" (IST)\n"; input=input+"SLOT_LENGTH = "+hh+" h\n"; input=input+"TYPE_CONTINUUM = "+type1+"\n"; input=input+"TYPE_LINE = "+type2+"\n"; input=input+"TYPE_PULSAR = "+type3+"\n"; input=input+"}\n\n"; var tot_subarray=document.getElementById("sub").value; var bw=document.getElementById("bw").value; var ch=document.getElementById("ch").value; var res=document.getElementById("res").value; var st=document.getElementById("st").value; var sta=document.getElementById("sta_int").value; var rfi=document.getElementById("rfi").value; var pfb=document.getElementById("pfb").value; // receiver and backend setup input=input+"{RECEIVER_AND_BACKEND_SETUP\n"; input=input+"GWB_VERSION = "+gwb_version+"\n"; input=input+"TOTAL_SUBARRAY = "+tot_subarray+"\n"; input=input+"BAND_WIDTH = "+bw+" MHz.\n"; input=input+"SPECTRAL_CHAN = "+ch+"\n"; input=input+"CHAN_RESOLUTION = "+res+" kHz.\n"; input=input+"STOKES = "+st+"\n"; input=input+"STA_INTEG = "+sta+"\n"; input=input+"REALTIME_RFI_FILTER = "+rfi+"\n"; input=input+"POLY_PHASE_FILTER = "+pfb+"\n"; for(var i=1;i<=tot_subarray;i++) { var ant_list=document.getElementById('s'+i+'_ant').value; if(tot_subarray == 1 ) { var prj=document.getElementById('code').value; } else { var prj=document.getElementById('code').value; prj=prj.toUpperCase(); if(prj.match("DDTC")) { prj=prj.slice(1); } prj=prj+pcode[i]; } var tot_ant=document.getElementById('s'+i+'_antno').innerHTML; var band=document.getElementById('s'+i+'_bnd').value; var f1=document.getElementById('s'+i+'_f1').value; var f2=document.getElementById('s'+i+'_f2').value; var f3=document.getElementById('s'+i+'_f3').value; var f4=document.getElementById('s'+i+'_f4').value; var f5=document.getElementById('s'+i+'_f5').value; if(f5 == 1) { f5="default"; } else { f5 = "custom"; } //var ddclo=Math.abs(f4-f1); var band_flip="NO"; var net=1; if(f1 > f3) { band_flip="YES"; net=-1; } var lta_int=document.getElementById('s'+i+'_int').value; var walsh=document.getElementById('s'+i+'_wl').value; var tot_beam=document.getElementById('s'+i+'_bm').value; input=input+" {SUBARRAY_SETUP\n"; input=input+" SUBARRAY_NO = "+i+"\n"; input=input+" PROJECT = "+prj+"\n"; input=input+" TOTAL_ANTENNA = "+parseInt(tot_ant)+"\n"; input=input+" ANTENNA_LIST = "+ant_list+"\n"; input=input+" RF_BAND = "+get_band_val(band,'name')+"\n"; input=input+" START_FREQ = "+f1+" MHz. (0th chan)\n"; input=input+" CENTER_FREQ = "+f2+" MHz.\n"; input=input+" STOP_FREQ = "+f3+" MHz. (last chan)\n"; input=input+" GAB_LO = "+f4+" MHz. ("+f5+")\n"; input=input+" DDC_LO = "+ddc_lo[i]+" MHz.\n"; input=input+" BAND_FLIP = "+band_flip+"\n"; input=input+" LTA_INTEG = "+lta_int+ " sec\n"; input=input+" WALSH_MODU = "+walsh+ "\n"; input=input+" TOTAL_BEAM = "+tot_beam+ "\n"; for(var j=1;j<=tot_beam;j++) { var beam_ant_list=document.getElementById('s'+i+'_bm'+j+'_ant').value; var beam_tot_ant=document.getElementById('s'+i+'_bm'+j+'_antno').innerHTML; var beam_id=document.getElementById('s'+i+'_bm'+j+'_id').innerHTML; var beam_mod=document.getElementById('s'+i+'_bm'+j+'_mod').value; var beam_bit1=document.getElementById('s'+i+'_bm'+j+'_bit1').value; var beam_bit2=document.getElementById('s'+i+'_bm'+j+'_bit2').value; var beam_int=document.getElementById('s'+i+'_bm'+j+'_int').value; var beam_st=document.getElementById('s'+i+'_bm'+j+'_st').value; var beam_ch=document.getElementById('s'+i+'_bm'+j+'_ch').value; var beam_hst=document.getElementById('s'+i+'_bm'+j+'_hst').value; var beam_dir=document.getElementById('s'+i+'_bm'+j+'_dir').value; input=input+" {BEAM_SETUP\n"; input=input+" BEAM_NO = "+beam_id+"\n"; input=input+" BEAM_TOTAL_ANTENNA = "+parseInt(beam_tot_ant)+"\n"; input=input+" BEAM_ANTENNA_LIST = "+beam_ant_list+"\n"; input=input+" BEAM_MODE = "+beam_mod+"\n"; input=input+" BEAM_BIT1 = "+beam_bit1+" (beam data bit)\n"; input=input+" BEAM_BIT2 = "+beam_bit2+" (beam recording bit)\n"; input=input+" BEAM_INTEG = "+beam_int+" microsec\n"; input=input+" BEAM_STOKES = "+beam_st+"\n"; input=input+" BEAM_CHAN = "+beam_ch+"\n"; input=input+" BEAM_HOST = "+beam_host[beam_hst]+"\n"; input=input+" BEAM_DIR = "+beam_dir+"\n"; input=input+" }\n"; } input=input+" }\n"; } input=input+"}\n\n"; // read and check source list var sourcelist=document.getElementById('sourcelist').value; var co=sourcelist; co=co.trim(); co=co.replace(/["]+/g, ' '); co=co.replace(/[\n]+/g, 'newline'); co=encodeURIComponent(co); $.ajax({ type: "POST", url: "./cmd.php", data: { 'arg': "src", 'para': co }, async: false, success: function(data,status) {newlist=data; } }); input=input+"{SOURCE_LIST\n"; input=input+"#Source Ra Dec Epoch Time(min) DM(pc cm^-3)\n"; input=input+newlist; input=input+"}\n\n"; input=input+"{COMMAND_FILE\n"; input=input+"#command(task) option source(target) time(min) time_line(tentative)\n"; //read command file var rows = document.getElementById("table2").rows.length; // command loop for (i=0;i<=(rows-2);i++){ var cmd=document.getElementsByName("command")[i].value; if(cmd == "--" ) { alert("Please select the command # " + Math.abs(i+1) ); } var option=document.getElementsByName("option")[i].value; var target=document.getElementsByName("target")[i].value; var srctime=document.getElementsByName("srctime")[i].value; var timeline=document.getElementsByName("timeline")[i].value; input=input+cmd.padEnd(15,' ')+" "+option.padEnd(10,' ')+" "+target.padEnd(15,' ')+" "+srctime.padEnd(10,' ')+" "+timeline+"\n"; } // command loop end input=input+"}\n\n"; // check total time if(tot_time_warn > 0) { alert( "Total time exceeds the observing time by " + tot_time_warn + " minutes." ); return(0); } // read special requirments var spec_req=document.getElementById("spec_req").value; if(spec_req == "") { spec_req = "#NA"; } input=input+"{SPECIAL_REQUIREMENT\n"; input=input+spec_req+"\n"; input=input+"}\n\n"; //cmd=input.replace(/[\n]+/g, 'newline'); cmd=input.replace(/["]+/g, ' '); cmd=encodeURIComponent(cmd); $.ajax({ type: "POST", url: "./cmd.php", data: { 'arg': "cmd", 'para': cmd }, async: false, success: function(data,status) {ncmd=data;} }); var date_time=new Date(); input=input+"## "+date_time+" ##\n\n"; //input=input+"{TGC_PYTHON_CODE\n"; //input=input+ncmd; //input=input+"}\n\n"; // create file name var file="gtac_"+code+"_"+time1+".txt"; file=file.replace(/[' ']+/g,'_'); file=file.replace(/[':']+/g,''); // check freq para if(check_freq(2)) { return(0);} // check computing weight check_weight(); if(total_weight > 115) { return(0);} // download file download(file,input); return(true); } // download file function download(filename, text) { "use strict"; var element = document.createElement('a'); element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); } // calculate center and stop freq when start or bw is changed function getfreqval(i){ "use strict"; var bw=parseFloat(document.getElementById("bw").value); var ch=parseInt(document.getElementById("ch").value); document.getElementById("res").value=bw/ch*1000.0; var net; var sub; var band; var gablo; var j; if(i==0) { i=1; sub=parseInt(document.getElementById("sub").value); } // for all subarray (bw click) else { sub =i ; } // for single subarray (line/gablo click) for(var j=i;j<=sub;j++) { band=document.getElementById("s"+j+"_bnd").value; if(band == "OFF") { ; } else { // calculate net sign net = -1; if(get_band_val(band,"f2") > document.getElementById("s"+j+"_f4").value) { net = 1; } gablo=parseFloat(document.getElementById("s"+j+"_f4").value); if( bw > 50 ) { document.getElementById("s"+j+"_f1").value=gablo; document.getElementById("s"+j+"_f2").value=(gablo + (gablo+bw*net) )/2.0 ; document.getElementById("s"+j+"_f3").value=gablo+bw*net; } else { var line; var ddclo; var f1,f3,ff1,ff3; line=parseFloat(document.getElementById("s"+j+"_f2").value); f1=line-(bw/2)*net; f3=line+(bw/2)*net; ff1=gablo; ff3=gablo+100*net; //ddclo=Math.abs(ff1-f1); if(net == -1) { ddclo = ff1-f1; } if(net == 1 ) { ddclo = f1-ff1; } if(ddclo < 0) { alert("Warning: Not possible to tune the line at the center of the GWB band. You may set the custom GAB LO OR Contact to gmrtoperations@ncra.tifr.res.in"); //ddclo=0; } if((ddclo+bw) > 100 ) { alert("Warning: Not possible to tune the line at the center of the GWB band. You may set the custom GAB LO OR Contact to gmrtoperations@ncra.tifr.res.in"); //ddclo=100-bw; } ddc_lo[j]=ddclo; document.getElementById("s"+j+"_f1").value=line-(bw/2)*net; document.getElementById("s"+j+"_f3").value=line+(bw/2)*net; alert("Narrow band width (< 100) mode ON\n"+f1+" - "+f3+" = "+bw+" MHz.(bw)\n"+ff1+" - "+ff3+" = 100 MHz.(acq bw)\n DDC_LO = "+ddclo+" MHz."); } } }// for loop return(0); } // check frequency ranges function check_freq(arg){ "use strict"; // check for all subarrays var warn=0; var sub=parseInt(document.getElementById("sub").value); for(var i=1; i<=sub ;i++) { var band=document.getElementById('s'+i+'_bnd').value; var bw=parseFloat(document.getElementById("bw").value); // check band ranges and gab lo if(band != "OFF") { var f1=parseFloat(document.getElementById('s'+i+'_f1').value); var f2=parseFloat(document.getElementById('s'+i+'_f2').value); var f3=parseFloat(document.getElementById('s'+i+'_f3').value); var f4=parseFloat(document.getElementById('s'+i+'_f4').value); //var ddclo=Math.abs(f4-f1); var b1=get_band_val(band,"start"); var b2=get_band_val(band,"end"); if(f1 < b1 || f1 > b2 ) { alert("Warning: Sub-array "+i+": Start Frequency "+f1+" MHz is out of selected band range!! " + b1 + " - " + b2 + " MHz."); warn=1; } if(f3 < b1 || f3 > b2 ) { alert("Warning: Sub-array "+i+": Stop Frequency "+f3+ "MHz is out of selected band range!! " + b1 + " - " + b2 + " MHz."); warn=1; } if(f4 <= 0 ) { alert("Error: Sub-array "+i+": GAB LO is not set");return(1);} if(ddc_lo[i] < 0 || ( (bw < 100) && (ddc_lo[i]+bw > 100))) { alert("Error: Sub-array "+i+": GAB LO / DDC LO is out of range, You may set the custom GAB LO OR Contact to gmrtoperations@ncra.tifr.res.in");return(1);} } // check if band is off if(band == "OFF") { alert("Error: Sub-array "+i+": Please select the valid RF band"); return(1); } } if((arg ==1) && (warn == 0) ) { alert("Frequency configuration is OK"); } return(0); } // get prediected time function gettimeval(){ "use strict"; var i; var time1=document.getElementById("dtpicker1").value; var hh=document.getElementById("hh").value; var tsec1=datetosec(time1); var tsec2=tsec1+hh*3600; var start_time=tsec1; var end_time=0; var rows = document.getElementById("table2").rows.length-1; document.getElementById("time_slot").innerHTML="Time Slot (IST): " + time1 +" -- " + sectodate(tsec2) + " (" + hh + "h)" ; // command loop var flag=0; var loop_time=0; for (i=1;i<=rows;i++){ var cmd=document.getElementsByName("command")[i-1].value; var target=document.getElementsByName("target")[i-1].value; var srctime=document.getElementsByName("srctime")[i-1].value; var obs_time=parseInt(srctime)*60; if(cmd.match(/loop/g)){ if(cmd.match("loop_start")) { flag=1; loop_time=0; var cycles=parseInt(document.getElementsByName("option")[i-1].value); } else { flag=0; obs_time=loop_time*cycles; } } if(flag) { loop_time=loop_time+obs_time+oh_time(cmd);} else { end_time=start_time+obs_time+oh_time(cmd); } if(flag && !target.match("{") ) { document.getElementsByName('timeline')[i-1].value="--:--" + " -- " + "--:--"; } else { if(target.match("{")) { document.getElementsByName('timeline')[i-1].value=sectodate(start_time) + " -- " + sectodate(end_time); } else if(target.match("}")) { document.getElementsByName('timeline')[i-1].value=sectodate( end_time) + " -- " + sectodate(end_time); } else { document.getElementsByName('timeline')[i-1].value=sectodate(start_time) + " -- " + sectodate(end_time); } } tot_time_warn=0; if(end_time > tsec2) { tot_time_warn=(end_time-tsec2)/60; document.getElementsByName('timeline')[i-1].style.color="red"; } else { document.getElementsByName('timeline')[i-1].style.color="black"; } start_time=end_time; } // command loop end } // convert date to seconds function datetosec(date_time){ "use strict"; var t1=date_time.trim().replace(/[:]+/g,' ').split(/ +/); var mon = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); var d=t1[0].substr(0,2); var m=t1[0].substr(2,3); m=mon.indexOf(m); var y=t1[0].substr(5,4); var date=new Date(); date.setFullYear(y,m,d); date.setHours(t1[1]); date.setMinutes(t1[2]); date.setSeconds(0); var sec=parseInt(date.getTime()/1000); return(sec); } // convert seconds to date function sectodate(sec){ "use strict"; var date=new Date(); date.setTime(sec*1000); var h=date.getHours(); var m=date.getMinutes(); h=('0' + h).slice(-2); m=('0' + m).slice(-2); return(h+":"+m); } // get overhead time between two scans function oh_time(cmd){ "use strict"; if(cmd === "setup") { return(0); } if(cmd === "phasing") { return(0); } if(cmd === "position") { return(0); } if(cmd === "sleep") { return(0); } if(cmd.match(/loop/g)) { return(0); } return(120); } // show the no of selected subarrays (div: s1,s2,s3,s4) function show_sub(){ "use strict"; var sub=parseInt(document.getElementById("sub").value); var i; // disable remaining subarray for(i=(sub+1); i<=4 ; i++) { document.getElementById("s"+i).style.display="none"; // subarray table remove_sub_and_beam(i); // remove sub and beams and their ants } // enable selected subarray for(i=1; i<=sub ; i++) { document.getElementById("s"+i).style.display=''; } } // subarrary html table (onload) function add_sub(i,j) { "use strict"; var s_id ='"s'+i+'"'; // subar - s1 var t_id ='"t'+i+'"'; // table - t1 var a_id ='"s'+i+'_ant"'; // antennas - s1_ant var ano_id='"s'+i+'_antno"';// antennas - s1_antno var b_id ='"s'+i+'_bnd"'; // band - s1_bnd var f1_id ='"s'+i+'_f1"'; // f1 - s1_f1 var f2_id ='"s'+i+'_f2"'; // f2 - s1_f2 var f3_id ='"s'+i+'_f3"'; // f3 - s1_f3 var f4_id ='"s'+i+'_f4"'; // f4 - s1_f4 var f5_id ='"s'+i+'_f5"'; // f5 - s1_f5 var int_id='"s'+i+'_int"'; // int - s1_int var wl_id ='"s'+i+'_wl"'; // int - s1_wl var bm_id ='"s'+i+'_bm"'; // bm - s1_bm var obj='
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ '; return(obj); } // beam html code (onload) function add_beam(i,j) { "use strict"; var add_id = '"s'+i+'_bm'+j+'_id"';// mode s1_bm1_id (beam address) var a_id = '"s'+i+'_bm'+j+'_ant"';// mode s1_bm1_ant (beam antenna list) var bno_id = '"s'+i+'_bm'+j+'_antno"';// mode s1_bm1_antno (beam total antennas) var mod_id = '"s'+i+'_bm'+j+'_mod"';// mode s1_bm1_mod (beam mode) var bit1_id= '"s'+i+'_bm'+j+'_bit1"';// bits s1_bm1_bit1 var bit2_id= '"s'+i+'_bm'+j+'_bit2"';// bits s1_bm1_bit2 var int_id = '"s'+i+'_bm'+j+'_int"';// integ s1_bm1_int var st_id = '"s'+i+'_bm'+j+'_st"'; // stokes s1_bm1_st var ch_id = '"s'+i+'_bm'+j+'_ch"'; // chans s1_bm1_ch var hst_id = '"s'+i+'_bm'+j+'_hst"';// machine s1_bm1_hst var dir_id = '"s'+i+'_bm'+j+'_dir"';// dir/disk s1_bm1_dir var trh_id = '"s'+i+'_bm0"'; // header row s1_bm0 var tr_id = '"s'+i+'_bm'+j+'"'; // beam row s1_bm1 var obj; if(j == 1) { obj='\ \ \ \ \ \ \ \ \ \ '; } obj=obj+'\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ '; return(obj); } // beam selection for subarray function show_beam(i){ "use strict"; var j; var sub_no; sub_no=i; // pulsar/beam type click // enable beam selection for all subarrays if(i == 0 && document.getElementById('type3').checked) { for(j=1;j<=4;j++) { document.getElementById('s'+j+'_bm').disabled=false; } setup_beam_commandfile(); return(0); } // disable beam selection for all subarrays if(i == 0 && (!document.getElementById('type3').checked)) { for(i=1;i<=4;i++) { document.getElementById('s'+i+'_bm').disabled=true; document.getElementById('s'+i+'_bm').value=0; document.getElementById('s'+i+'_bm0').style.display="none"; for(j=1; j<=4 ; j++) { document.getElementById('s'+i+'_bm'+j).style.display="none"; document.getElementById('s'+i+'_bm'+j+'_ant').value=""; document.getElementById('s'+i+'_bm'+j+'_mod').value="OFF"; }} setup_cl_commandfile(); return(0); } // use beams click // read totol no of beams for all subarrays var tot_beams=get_tot_beams(0); // no of beams for selected subarray var beams=parseInt(document.getElementById('s'+i+'_bm').value); // warning max 4 beams possible if(tot_beams > 4) { alert("Max 4 beams are possible!!!"); document.getElementById('s'+i+'_bm').value=4-(tot_beams-beams); beams=4-(tot_beams-beams); } // hide all beams for selected subarray document.getElementById('s'+i+'_bm0').style.display="none"; for(j=(beams+1); j<=4 ; j++) { document.getElementById('s'+i+'_bm'+j).style.display="none"; document.getElementById('s'+i+'_bm'+j+'_ant').value=""; document.getElementById('s'+i+'_bm'+j+'_mod').value="IA"; } // show selected beams for selected subarray if(beams > 0){ document.getElementById('s'+i+'_bm0').style.display=""; for(j=1; j<=beams ; j++) { document.getElementById('s'+i+'_bm'+j).style.display=""; document.getElementById('s'+i+'_bm'+j+'_ant').value=document.getElementById('s'+i+'_ant').value; document.getElementById('s'+i+'_bm'+j+'_mod').value="IA"; cnt_ant(i,j); } } // check beams beams=get_tot_beams(i); for(j=1; j<=beams ; j++) { // beam loop //check_beam(i,j,0); check_beam(i,j,1); } // show beam_nos and beam_host var beam_no=0; var sub=document.getElementById('sub').value; for(i=1;i<=sub;i++) { // subarray loop beams=get_tot_beams(i); for(j=1; j<=beams ; j++) { // beam loop beam_no++; if(i==sub_no) { document.getElementById('s'+i+'_bm'+j+'_id').innerHTML=beam_host_id[beam_no]; document.getElementById('s'+i+'_bm'+j+'_hst').value=beam_host_id[beam_no]; } }} return(0); } function remove_ant(arr,value) { "use strict"; return arr.filter(function(ele){ return !ele.match(value); }); } // get frequency band details function get_band_val(band,type) { "use strict"; var freq_band; var b1, b2, bw, net, f1, gablo; if(band == "OFF") { freq_band="OFF"; b1=0; b2=0; bw=400; net=-1; f1=0;gablo=0;} if(band == "20") { freq_band="BAND-2 FULL(120-250)"; b1=100; b2=300; bw=200; net=-1; f1=300; gablo=300; } if(band == "30") { freq_band="BAND-3 FULL(250-500)"; b1=220; b2=500; bw=200; net=-1; f1=500; gablo=500; } if(band == "31") { freq_band="BAND-3 SB1(240-340)"; b1=240; b2=340; bw=100; net=-1; f1=340; gablo=340; } if(band == "32") { freq_band="BAND-3 SB2(300-400)"; b1=300; b2=400; bw=100; net=-1; f1=410; gablo=410; } if(band == "33") { freq_band="BAND-3 SB3(360-460)"; b1=360; b2=460; bw=100; net=-1; f1=460; gablo=460; } if(band == "34") { freq_band="BAND-3 SB4(420-520)"; b1=420; b2=520; bw=100; net=-1; f1=520; gablo=520; } if(band == "40") { freq_band="BAND-4 FULL(550-900)"; b1=550; b2=950; bw=200; net= 1; f1=550; gablo=550; } if(band == "41") { freq_band="BAND-4 SB1(550-650)"; b1=550; b2=650; bw=100; net= 1; f1=550; gablo=550; } if(band == "42") { freq_band="BAND-4 SB2(635-735)"; b1=635; b2=735; bw=100; net= 1; f1=635; gablo=635; } if(band == "43") { freq_band="BAND-4 SB3(720-820)"; b1=720; b2=820; bw=100; net=-1; f1=820; gablo=820; } if(band == "44") { freq_band="BAND-4 SB4(800-900)"; b1=800; b2=900; bw=100; net=-1; f1=900; gablo=900; } if(band == "50") { freq_band="BAND-5 FULL(950-1460)"; b1=950; b2=1460; bw=400; net=-1; f1=1460;gablo=1460;} if(band == "51") { freq_band="BAND-5 SB1(1000-1120)"; b1=1000; b2=1120; bw=100; net=-1; f1=1120;gablo=1120;} if(band == "52") { freq_band="BAND-5 SB2(1110-1230)"; b1=1110; b2=1230; bw=100; net=-1; f1=1230;gablo=1230;} if(band == "53") { freq_band="BAND-5 SB3(1220-1340)"; b1=1220; b2=1340; bw=100; net=-1; f1=1340;gablo=1340;} if(band == "54") { freq_band="BAND-5 SB4(1330-1460)"; b1=1330; b2=1450; bw=100; net=-1; f1=1450;gablo=1450;} if(band =="BAND-2 FULL(120-250)" ) { freq_band="20"; b1=100; b2=300; bw=200; net=-1; f1=300; gablo=300; } if(band =="BAND-3 FULL(250-500)" ) { freq_band="30"; b1=220; b2=500; bw=200; net=-1; f1=500; gablo=500; } if(band =="BAND-3 SB1(240-340)" ) { freq_band="31"; b1=240; b2=340; bw=100; net=-1; f1=340; gablo=340; } if(band =="BAND-3 SB2(300-400)" ) { freq_band="32"; b1=300; b2=400; bw=100; net=-1; f1=410; gablo=410; } if(band =="BAND-3 SB3(360-460)" ) { freq_band="33"; b1=360; b2=460; bw=100; net=-1; f1=460; gablo=460; } if(band =="BAND-3 SB4(420-520)" ) { freq_band="34"; b1=420; b2=520; bw=100; net=-1; f1=520; gablo=520; } if(band =="BAND-4 FULL(550-900)" ) { freq_band="40"; b1=550; b2=950; bw=200; net= 1; f1=550; gablo=550; } if(band =="BAND-4 SB1(550-650)" ) { freq_band="41"; b1=550; b2=650; bw=100; net= 1; f1=550; gablo=550; } if(band =="BAND-4 SB2(635-735)" ) { freq_band="42"; b1=635; b2=735; bw=100; net= 1; f1=635; gablo=635; } if(band =="BAND-4 SB3(720-820)" ) { freq_band="43"; b1=720; b2=820; bw=100; net=-1; f1=820; gablo=820; } if(band =="BAND-4 SB4(800-900)" ) { freq_band="44"; b1=800; b2=900; bw=100; net=-1; f1=900; gablo=900; } if(band =="BAND-5 FULL(950-1460)") { freq_band="50"; b1=950; b2=1460; bw=400; net=-1; f1=1460;gablo=1460;} if(band =="BAND-5 SB1(1000-1120)") { freq_band="51"; b1=1000; b2=1120; bw=100; net=-1; f1=1120;gablo=1120;} if(band =="BAND-5 SB2(1110-1230)") { freq_band="52"; b1=1110; b2=1230; bw=100; net=-1; f1=1230;gablo=1230;} if(band =="BAND-5 SB3(1220-1340)") { freq_band="53"; b1=1220; b2=1340; bw=100; net=-1; f1=1340;gablo=1340;} if(band =="BAND-5 SB4(1330-1460)") { freq_band="54"; b1=1330; b2=1450; bw=100; net=-1; f1=1450;gablo=1450;} var f3=f1+(bw*net); var f2=(f1+f3)/2 var f4=gablo; if(type == "name") { return(freq_band); } if(type == "start"){ return(b1); } if(type == "end") { return(b2); } if(type == "f1") { return(f1); } if(type == "f2") { return(f2); } if(type == "f3") { return(f3); } if(type == "f4") { return(f4); } if(type == "bw") { return(bw); } if(type == "net") { return(net);} if(type == "gablo"){ return(gablo);} return(0); } // count total no of beams function get_tot_beams(k) { "use strict"; var tot_beams=0; // for all subarrays if(k == 0) { var sub=document.getElementById('sub').value; for( var j=1;j<=sub;j++) { tot_beams=tot_beams+parseInt(document.getElementById('s'+j+'_bm').value); } return(tot_beams); } // for selected subarray if(k > 0) { tot_beams=parseInt(document.getElementById('s'+k+'_bm').value); return(tot_beams); } return(0); } function check_beam(i,j,k) { "use strict"; // k value: // 1 - mod // 2 - bit1 // 3 - bit2 // 4 - int // 5 - st // 6 - ch // 7 - hst // 8 - dir // 9 - main chan var sub_no=i; var bem_no=j; // enable disable beam stokes from main stokes if(k == 0 ) { var main_st=document.getElementById('st').value; if(main_st==2) { for(var i=1;i<=4;i++) { // subarray loop var beams=get_tot_beams(i); for(var j=1; j<=beams ; j++) { // beam loop document.getElementById('s'+i+'_bm'+j+'_st').value=1; document.getElementById('s'+i+'_bm'+j+'_st').disabled=true; make_sel('s'+i+'_bm'+j+'_mod',["IA","PA","PC","CD","PASV"],""); make_sel('s'+i+'_bm'+j+'_bit1',[16,8],"bit"); make_sel('s'+i+'_bm'+j+'_bit2',[16,8],"bit"); document.getElementById('s'+i+'_bm'+j+'_mod').value="IA"; } } } if(main_st==4) { for(var i=1;i<=4;i++) { // subarray loop var beams=get_tot_beams(i); for(var j=1; j<=beams ; j++) { // beam loop make_sel('s'+i+'_bm'+j+'_mod',["IA","PA"],""); make_sel('s'+i+'_bm'+j+'_bit1',[16,8],"bit"); make_sel('s'+i+'_bm'+j+'_bit2',[16,8],"bit"); document.getElementById('s'+i+'_bm'+j+'_mod').value="IA"; if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="IA") { document.getElementById('s'+i+'_bm'+j+'_st').disabled=false; } } } } } // set beam chan from main chan if(k == 9 ) { for(var i=1;i<=4;i++) { // subarray loop var beams=get_tot_beams(i); for(var j=1; j<=beams ; j++) { // beam loop // chan for CDP mode if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="CD") { make_sel('s'+i+'_bm'+j+'_ch',[32,64,128,256,512,1024,2048,4096],""); document.getElementById('s'+i+'_bm'+j+'_ch').value="2048"; document.getElementById('s'+i+'_bm'+j+'_ch').disabled=false; } else { make_sel('s'+i+'_bm'+j+'_ch',[document.getElementById("ch").value],""); document.getElementById('s'+i+'_bm'+j+'_ch').value=document.getElementById("ch").value; document.getElementById('s'+i+'_bm'+j+'_ch').disabled=true; } }} } // enable/disable when beam mode is selected (when selected IA/PA/PC/CD/PASV) if(k == 1 ) { // disable ch for IA,PA //if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="IA" || document.getElementById('s'+i+'_bm'+j+'_mod').value=="PA") { //document.getElementById('s'+i+'_bm'+j+'_ch').disabled=true; //document.getElementById('s'+i+'_bm'+j+'_ch').value="NA"; //} // enable ch for CD //document.getElementById('s'+i+'_bm'+j+'_ch').disabled=true; //document.getElementById('s'+i+'_bm'+j+'_ch').value=document.getElementById("ch").value; //if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="CD") { //document.getElementById('s'+i+'_bm'+j+'_ch').disabled=false; //make_sel('s'+i+'_bm'+j+'_ch',[32,64,128,512,1024,2048,4096],""); //} // chan for CDP mode if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="CD") { make_sel('s'+i+'_bm'+j+'_ch',[32,64,128,256,512,1024,2048,4096],""); document.getElementById('s'+i+'_bm'+j+'_ch').value="2048"; document.getElementById('s'+i+'_bm'+j+'_ch').disabled=false; } else { make_sel('s'+i+'_bm'+j+'_ch',[document.getElementById("ch").value],""); document.getElementById('s'+i+'_bm'+j+'_ch').value=document.getElementById("ch").value; document.getElementById('s'+i+'_bm'+j+'_ch').disabled=true; } // stoke enable for PA only, disable for IA/CD if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="PA" && document.getElementById('st').value==4 ) { document.getElementById('s'+i+'_bm'+j+'_st').disabled=false; } else { document.getElementById('s'+i+'_bm'+j+'_st').disabled=true; document.getElementById('s'+i+'_bm'+j+'_st').value=1; } // bit1 for IA/PA/PC if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="IA" || document.getElementById('s'+i+'_bm'+j+'_mod').value=="PA" || document.getElementById('s'+i+'_bm'+j+'_mod').value=="PC") { make_sel('s'+i+'_bm'+j+'_bit1',[16,8],"bit"); make_sel('s'+i+'_bm'+j+'_bit2',[16,8],"bit"); } // bit1 for CD if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="CD") { // removing CD 4 bit mode ref Deepak 21dec2022 //make_sel('s'+i+'_bm'+j+'_bit1',[8,4],"bit"); make_sel('s'+i+'_bm'+j+'_bit1',[8],"bit"); make_sel('s'+i+'_bm'+j+'_bit2',[16],"bit"); } // bit1 for PASV if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="PASV") { make_sel('s'+i+'_bm'+j+'_bit1',[8,4],"bit"); make_sel('s'+i+'_bm'+j+'_bit2',[8],"bit"); } // integration for PASV and other modes if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="PASV") { make_sel('s'+i+'_bm'+j+'_int',["NA"],""); document.getElementById('s'+i+'_bm'+j+'_int').value="NA"; document.getElementById('s'+i+'_bm'+j+'_int').disabled=true; } else { document.getElementById('s'+i+'_bm'+j+'_int').disabled=false; make_sel('s'+i+'_bm'+j+'_int',["5","10","20","40","81","163","327","655","1300"],"μs"); document.getElementById('s'+i+'_bm'+j+'_int').value="81"; } // dir if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="PASV") { document.getElementById('s'+i+'_bm'+j+'_dir').value="/nvme1"; } else { document.getElementById('s'+i+'_bm'+j+'_dir').value="/data2"; } } // when bit1 is selected if(k == 2 ) { if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="IA" && document.getElementById('s'+i+'_bm'+j+'_bit1').value=="16") { make_sel('s'+i+'_bm'+j+'_bit2',[16,8],"bit");} if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="IA" && document.getElementById('s'+i+'_bm'+j+'_bit1').value=="8" ) { make_sel('s'+i+'_bm'+j+'_bit2',[8],"bit");} if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="PA" && document.getElementById('s'+i+'_bm'+j+'_bit1').value=="16") { make_sel('s'+i+'_bm'+j+'_bit2',[16,8],"bit");} if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="PA" && document.getElementById('s'+i+'_bm'+j+'_bit1').value=="8" ) { make_sel('s'+i+'_bm'+j+'_bit2',[8],"bit");} if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="PC" && document.getElementById('s'+i+'_bm'+j+'_bit1').value=="16") { make_sel('s'+i+'_bm'+j+'_bit2',[16,8],"bit");} if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="PC" && document.getElementById('s'+i+'_bm'+j+'_bit1').value=="8" ) { make_sel('s'+i+'_bm'+j+'_bit2',[8],"bit");} if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="CD" && document.getElementById('s'+i+'_bm'+j+'_bit1').value=="8") { make_sel('s'+i+'_bm'+j+'_bit2',[16],"bit");} if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="CD" && document.getElementById('s'+i+'_bm'+j+'_bit1').value=="4") { make_sel('s'+i+'_bm'+j+'_bit2',[16],"bit");} if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="PASV" && document.getElementById('s'+i+'_bm'+j+'_bit1').value=="8") { make_sel('s'+i+'_bm'+j+'_bit2',[8],"bit");} if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="PASV" && document.getElementById('s'+i+'_bm'+j+'_bit1').value=="4") { make_sel('s'+i+'_bm'+j+'_bit2',[4],"bit");} } // make the integration same for for all IA/PA/PC mode if(k == 1 || k == 4){ var beam_no=0; for(i=1;i<=4;i++) { // subarray loop var beams=get_tot_beams(i); for(j=1; j<=beams ; j++) { // beam loop if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="IA" || document.getElementById('s'+i+'_bm'+j+'_mod').value=="PA" || document.getElementById('s'+i+'_bm'+j+'_mod').value=="PC" ) { beam_no++; if( beam_no == 1) { document.getElementById('s'+i+'_bm'+j+'_int').disabled=false; var int=document.getElementById('s'+i+'_bm'+j+'_int').value; } else{ document.getElementById('s'+i+'_bm'+j+'_int').disabled=true; document.getElementById('s'+i+'_bm'+j+'_int').value=int; } } if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="CD") { document.getElementById('s'+i+'_bm'+j+'_int').disabled=false; } if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="PASV") { document.getElementById('s'+i+'_bm'+j+'_int').disabled=true; } }} } // make the bit1 same for for all IA/PA/PC mode if(k == 1 || k == 2){ var beam_no=0; for(i=1;i<=4;i++) { // subarray loop var beams=get_tot_beams(i); for(j=1; j<=beams ; j++) { // beam loop if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="IA" || document.getElementById('s'+i+'_bm'+j+'_mod').value=="PA" || document.getElementById('s'+i+'_bm'+j+'_mod').value=="PC") { beam_no++; if( beam_no == 1) { document.getElementById('s'+i+'_bm'+j+'_bit1').disabled=false; var bit1=document.getElementById('s'+i+'_bm'+j+'_bit1').value; } else{ document.getElementById('s'+i+'_bm'+j+'_bit1').disabled=true; document.getElementById('s'+i+'_bm'+j+'_bit1').value=bit1; if(document.getElementById('s'+i+'_bm'+j+'_bit1').value=="16") { make_sel('s'+i+'_bm'+j+'_bit2',[16,8],"bit");} if(document.getElementById('s'+i+'_bm'+j+'_bit1').value=="8" ) { make_sel('s'+i+'_bm'+j+'_bit2',[8],"bit");} } } if(document.getElementById('s'+i+'_bm'+j+'_mod').value=="CD" || document.getElementById('s'+i+'_bm'+j+'_mod').value=="PASV") { document.getElementById('s'+i+'_bm'+j+'_bit1').disabled=false; } }} } // check beam hosts if( k == 7 ) { var new_val; var old_val; var beam_no; var sub=document.getElementById('sub').value; // read values beam_no=0; for(i=1;i<=sub;i++) { // subarray loop beams=get_tot_beams(i); for(j=1; j<=beams ; j++) { // beam loop beam_no++; if(i==sub_no && j==bem_no) { new_val=document.getElementById('s'+i+'_bm'+j+'_hst').value; old_val=beam_host_id[beam_no]; } }} // exchange and apply values beam_no=0; for(i=1;i<=sub;i++) { // subarray loop beams=get_tot_beams(i); for(j=1; j<=beams ; j++) { // beam loop beam_no++; if(i==sub_no && j==bem_no) { beam_host_id[beam_no]=new_val; } else { if(beam_host_id[beam_no] == new_val) { beam_host_id[beam_no]=old_val; } } // apply for host and beam address document.getElementById('s'+i+'_bm'+j+'_hst').value=beam_host_id[beam_no]; document.getElementById('s'+i+'_bm'+j+'_id').innerHTML=beam_host_id[beam_no]; }} // for non selected host if(beam_no < max_beam) { for(i=beam_no;i<=max_beam;i++) { if(beam_host_id[i] == new_val) { beam_host_id[i]=old_val; } }} } return(0); } function remove_sub_and_beam(i) { // remove all ante from beam // set beam mode to OFF // hide beams for(j=1;j<=4;j++) { // beam loop document.getElementById('s'+i+'_bm'+j+'_ant').value=[]; document.getElementById('s'+i+'_bm'+j+'_mod').value="OFF"; document.getElementById('s'+i+'_bm'+j).style.display="none"; } // remove all antenna from subarray // set band to OFF // set total beam 0 // hide beam header document.getElementById('s'+i+'_ant').value=[]; document.getElementById('s'+i+'_bnd').value="OFF"; document.getElementById('s'+i+'_bm').value=0; document.getElementById('s'+i+'_bm0').style.display="none"; setdefaultfreq(i); } function cnt_ant(i,j) { "use strict"; if(j==0) { var tot_ant=document.getElementById('s'+i+'_ant').value.split(',').filter(Boolean).length; document.getElementById('s'+i+'_antno').innerHTML=pad2(tot_ant); } if(j>0) { var tot_ant=document.getElementById('s'+i+'_bm'+j+'_ant').value.split(',').filter(Boolean).length; document.getElementById('s'+i+'_bm'+j+'_antno').innerHTML=pad2(tot_ant); } return(tot_ant); } function pad2(number) { return (number < 10 ? '0' : '') + number } // to generate antbox function get_antbox() { "use strict"; var sub, beam, i, j, k, l=0; var input, ant_list,bit_list,beam_mode, beam_id,beam_no=0; input="
\n"; input=input + "
Sub-array ('+i+')
Antennas
RF band/sub-band
(MHz)
Start Freq
(MHz)
Center Freq
(MHz)
Stop Freq
(MHz)
GAB LO Freq
(MHz)
LTA Integ
(sec)
Walsh
(modu)
Beam
(ON/OFF)
00\ \ \ \ \ \ \
Beam AntennasBeam (N) ModeBeam DataBeam RecordBeam IntegBeam StokesBeam ChanBeam HostBeam Dir
00 Beam ()\ \ \ \ \ \ \ \ \ \ \
" ; input=input+""; for(i=0;i<=29;i++) { input=input+""; } input=input+""; input=input+"\n"; sub=document.getElementById('sub').value; for(i=1;i<=sub;i++) { // subarray loop l++; input=input+""; ant_list=document.getElementById('s'+i+'_ant').value; bit_list=ant2bit(ant_list); for(k=0;k<=29;k++) { if(bit_list[k] == 1) { input=input+""; } else { input=input+""; } } input=input+""; input=input+"\n"; beam=document.getElementById('s'+i+"_bm").value; for(j=1;j<=beam;j++) { // beam loop beam_no++; l++; beam_id=document.getElementById('s'+i+'_bm'+j+'_id').innerHTML; ant_list=document.getElementById('s'+i+'_bm'+j+'_ant').value; beam_mode=document.getElementById('s'+i+'_bm'+j+'_mod').value; bit_list=ant2bit(ant_list); input=input+""; for(k=0;k<=29;k++) { if(bit_list[k] == 1) { input=input+""; } else { input=input+""; } } input=input+""; input=input+"\n"; } } input=input+"
Antenna" + ant[i] + "Total
Subarray ("+i+")"+cnt_ant(i,0)+"
Beam ("+beam_id+") " + beam_mode + " "+cnt_ant(i,j)+"
\n"; input=input+""; input=input+""; input=input+"\n"; return(input); } // to use the antbox selection function use_antbox() { "use strict"; var table = document.getElementById("anttab"); var rowCount = table.rows.length-1; var sub=0; var beam=0; var id; var ant_list=[]; var bit_list=[]; for(var i=1; i<=rowCount; i++) { var leb=table.rows[i].cells[0].innerHTML; if( leb.match(/Subarray/g) ) { sub=leb.replace(/\D/g,''); beam=0; id="s"+sub+"_ant";} if( leb.match(/Beam/g) ) { beam++; id="s"+sub+"_bm"+beam+"_ant";} for(var j=1; j<=30; j++ ) { if(table.rows[i].cells[j].childNodes[0].checked == 1) { bit_list[j-1]=1; } else { bit_list[j-1]=0; } } ant_list=bit2ant(bit_list); document.getElementById(id).value=ant_list; cnt_ant(sub,beam); } hide_antbox(); } function get_optbox(element) { "use strict"; var row_no=element.parentNode.parentNode.rowIndex-1; var cmd=document.getElementsByName("command")[row_no].value; var opt_val=document.getElementsByName("option")[row_no].value; var input; if(cmd == "flux_cal" || cmd == "phase_cal" || cmd == "target") { input="
\n"; if(opt_val == "nobeam") { input=input+""; } else { input=input+""; } input=input+"disable beam recording
"; input=input+""; input=input+""; input=input+"
\n"; return(input); } if(cmd == "power_eq") { input="
\n"; input=input+"power level counts
"; input=input+"
"; input=input+""; input=input+""; input=input+"
\n"; return(input); } if(cmd == "loop_start") { input="
\n"; input=input+"No of loop cycles
"; input=input+"
"; input=input+""; input=input+""; input=input+"
\n"; return(input); } return(0); } function use_optbox(row_no) { "use strict"; var cmd=document.getElementsByName("command")[row_no].value; // to disable beam recording if(cmd == "flux_cal" || cmd == "phase_cal" || cmd == "target") { if(document.getElementById("optid").checked) { document.getElementsByName("option")[row_no].value="nobeam"; } else { document.getElementsByName("option")[row_no].value="--"; } } // set power eq counts and loop cycles if(cmd == "power_eq" || cmd == "loop_start") { document.getElementsByName("option")[row_no].value=document.getElementById("optid").value; } hide_optbox(); gettimeval(); } function ant_sel(i,j,k,l){ // i=sub, j=beam, k=col_no, l=row_no "use strict"; k=k+1; var table = document.getElementById("anttab"); var rowCount = table.rows.length-1; var sub=0; var beam=0; var m; var leb; var tot_ant; // if ant is selected remove it from other subarrays and beams if(table.rows[l].cells[k].childNodes[0].checked == 1) { for(m=1; m<=rowCount; m++) { leb=table.rows[m].cells[0].innerHTML; if( leb.match(/Subarray/g) ) { sub=leb.replace(/\D/g,''); beam=0; } if( leb.match(/Beam/g) ) { beam=leb.replace(/\D/g,''); } if( sub != i ) { table.rows[m].cells[k].childNodes[0].checked = 0; } } } // if ant is selected in beam then add ant to that subarray if(table.rows[l].cells[k].childNodes[0].checked == 1) { for(m=1; m<=rowCount; m++) { leb=table.rows[m].cells[0].innerHTML; if( leb.match(/Subarray/g) ) { sub=leb.replace(/\D/g,''); beam=0; } if( leb.match(/Beam/g) ) { beam=leb.replace(/\D/g,''); } if( sub == i && beam == 0) { table.rows[m].cells[k].childNodes[0].checked = 1; } } } // if ant is removed from subarray then remove it from the its beams if(table.rows[l].cells[k].childNodes[0].checked == 0) { for(m=1; m<=rowCount; m++) { leb=table.rows[m].cells[0].innerHTML; if( leb.match(/Subarray/g) ) { sub=leb.replace(/\D/g,''); beam=0; } if( leb.match(/Beam/g) ) { beam=leb.replace(/\D/g,''); } if( sub == i && beam != 0 && j == 0) { table.rows[m].cells[k].childNodes[0].checked = 0; } } } // count no of anntennas for(i=1; i<=rowCount; i++) { tot_ant=0; for(j=1; j<=30 ; j++) { if(table.rows[i].cells[j].childNodes[0].checked == 1) { tot_ant++; } } table.rows[i].cells[31].innerHTML=tot_ant; } } // to hide/close antbox function hide_antbox() { "use strict"; $("#antbox").hide(300); } // to open antbox function show_antbox() { "use strict"; document.getElementById('antbox').innerHTML=get_antbox(); $("#antbox").show(300); } // to hide/close optbox function hide_optbox() { "use strict"; $("#optbox").hide(300); } // to open optbox function show_optbox(element) { "use strict"; var row_no=element.parentNode.parentNode.rowIndex-1; var cmd=document.getElementsByName("command")[row_no].value; if(cmd == "flux_cal" || cmd == "phase_cal" || cmd == "target") { if(document.getElementById('type3').checked) { document.getElementById('optbox').innerHTML=get_optbox(element); $("#optbox").show(300); } } if(cmd =="power_eq" || cmd == "loop_start") { document.getElementById('optbox').innerHTML=get_optbox(element); $("#optbox").show(300); } return(0); } // ant to bit function ant2bit(antn){ "use strict"; var bitn=[]; for(var i=0;i<=29;i++) { if(antn.match(ant[i])) { bitn.push(1) ; } else { bitn.push(0); } } return(bitn); } // bit to ant function bit2ant(bitn){ "use strict"; var antn=[]; for(var i=0;i<=29;i++) { if(bitn[i] ==1 ) { antn.push(ant[i]); } } return(antn.toString()); } // enable disable walsh when RFI filter is clicked function show_walsh() { "use strict"; // enable walsh selection when RFI is OFF if(document.getElementById('rfi').value == 0) { for(j=1;j<=4;j++) { document.getElementById('s'+j+'_wl').disabled=false; } } if(document.getElementById('rfi').value == 1) { for(j=1;j<=4;j++) { document.getElementById('s'+j+'_wl').value=0; document.getElementById('s'+j+'_wl').disabled=true; } } } // STA_cycle to LTA_int relation function show_ltaint() { "use strict"; // read STA cycles var sta_cycles; var bw; sta_cycles=document.getElementById('sta_int').value; bw=document.getElementById('bw').value; // set ltaint var ltaint; if(sta_cycles == 1 ) { ltaint=[0.6,1.3,2.6,5.3,10.7,21.4,42.9]; } if(sta_cycles == 2 ) { ltaint=[1.3,2.6,5.3,10.7,21.4,42.9]; } if(sta_cycles == 4 ) { ltaint=[2.6,5.3,10.7,21.4,42.9]; } if(sta_cycles == 8 ) { ltaint=[5.3,10.7,21.4,42.9]; } if(sta_cycles == 16) { ltaint=[10.7,21.4,42.9]; } if(sta_cycles == 32) { ltaint=[21.4,42.9]; } if(bw <= 100) { if(sta_cycles == 1 ) { ltaint=[1.3,2.6,5.3,10.7,21.4,42.9]; } if(sta_cycles == 2 ) { ltaint=[2.6,5.3,10.7,21.4,42.9]; } if(sta_cycles == 4 ) { ltaint=[5.3,10.7,21.4,42.9]; } if(sta_cycles == 8 ) { ltaint=[10.7,21.4,42.9]; } if(sta_cycles == 16) { ltaint=[21.4,42.9]; } if(sta_cycles == 32) { ltaint=[42.9]; } } // apply for(j=1;j<=4;j++) { make_sel('s'+j+'_int',ltaint,""); } } function show_ltachn() { "use strict"; // read bw var bw=document.getElementById('bw').value; // set ltachn; var ltachn; var ltachn1; if(bw >= 100 ) { ltachn=[16384,8192,4096,2048,1024]; ltachn1=["16K","8K","4K","2K","1K"]; } else { ltachn=[16384,8192,4096,2048];ltachn1=["16K","8K","4K","2K"]; } // apply var no=ltachn.length-1; var select = document.getElementById("ch"); // remove the options while( select.hasChildNodes() ){ select.removeChild(select.lastChild); } // add the option for (var i = 0; i<=no; i++){ var opt = document.createElement('option'); opt.value =ltachn[i]; opt.innerHTML = ltachn1[i]; select.appendChild(opt); } document.getElementById("ch").value = "2048"; } // enable disable center/line frequency if bw < 100 MHz. function show_line() { "use strict"; if(document.getElementById('bw').value >= 100) { // read only for(j=1;j<=4;j++) { document.getElementById('s'+j+'_f2').readOnly=true; document.getElementById('s'+j+'_f2').style.backgroundColor="lightgreen"; } } else{ // editable for(j=1;j<=4;j++) { document.getElementById('s'+j+'_f2').readOnly=false; document.getElementById('s'+j+'_f2').style.backgroundColor="white"; } } } function uploadfile(arg){ "use strict"; if(arg == "src" ) { var id="#srcfile"; } if(arg == "obs" ) { var id="#obsfile"; } document.querySelector(id).addEventListener('change', function() { // files that user has chosen var all_files = this.files; if(all_files.length == 0) { alert('Error : No file selected'); return; } // first file selected by user var file = all_files[0]; // files types allowed var allowed_types = [ 'text/plain' ]; if(allowed_types.indexOf(file.type) == -1) { alert('Error : Incorrect file type'); return; } // Max 2 MB allowed var max_size_allowed = 2*1024*1024 if(file.size > max_size_allowed) { alert('Error : Exceeded size 2MB'); return; } // file validation is successfull // we will now read the file var reader = new FileReader(); // file reading started reader.addEventListener('loadstart', function() { //document.querySelector("#file-input-label").style.display = 'none'; }); // file reading finished successfully reader.addEventListener('load', function(e) { var text = e.target.result; if(arg == 'src'){ document.getElementById('sourcelist').value=text; } if(arg == 'obs'){ loadoldfile(text); } // contents of the file //document.querySelector("#contents").innerHTML = text; //document.querySelector("#contents").style.display = 'block'; //document.querySelector("#file-input-label").style.display = 'block'; }); // file reading failed reader.addEventListener('error', function() { alert('Error : Failed to read file'); }); // file read progress reader.addEventListener('progress', function(e) { if(e.lengthComputable == true) { //document.querySelector("#file-progress-percent").innerHTML = Math.floor((e.loaded/e.total)*100); //document.querySelector("#file-progress-percent").style.display = 'block'; } }); // read as text file reader.readAsText(file); }); } function check_riseset(){ "use strict"; // read start time var time1=document.getElementById("dtpicker1").value.split(" "); var sourcelist=document.getElementById('sourcelist').value; var co=sourcelist; co=co.trim(co); co=co.replace(/["]+/g, '\\\"'); co=co.replace(/[\n]+/g, 'newline'); co=encodeURIComponent(co); var ndata; $.ajax({ type: "POST", url: "./cmd.php", data: { 'arg': "rst", 'para': co, 'para1': time1[0] }, async: true, success: function(data,status) { ndata=data; var mywin= window.open("","_blank"); mywin.document.write(ndata); mywin.document.close(); } }); } function check_weight() { "use strict"; var bw=document.getElementById("bw").value; var ch=document.getElementById("ch").value; var st=document.getElementById("st").value; var sta=document.getElementById("sta_int").value; var visi_weight=(8*st*ch*st*st)/(sta*2048*4); var tot_subarray=document.getElementById("sub").value; var beam_weight=0; total_weight=0; var fft; for(var i=1;i<=tot_subarray;i++) { var tot_beam=document.getElementById('s'+i+'_bm').value; for(var j=1;j<=tot_beam;j++) { var beam_mod=document.getElementById('s'+i+'_bm'+j+'_mod').value; var beam_bit1=document.getElementById('s'+i+'_bm'+j+'_bit1').value; var beam_int=document.getElementById('s'+i+'_bm'+j+'_int').value; var beam_st=document.getElementById('s'+i+'_bm'+j+'_st').value; // int_time(ms) * bw * 2 * 10^3 / (2*ch) = fft fft=Math.round(beam_int * bw * 2 / (2*ch)); if((st == 2) && (beam_mod == "IA" || beam_mod == "PA" || beam_mod == "PC" )) {beam_weight=beam_weight+(( 128*bw*beam_st)/(fft*200*(16/beam_bit1))+0.1); } if((st == 4) && (beam_mod == "IA" || beam_mod == "PA" || beam_mod == "PC" )) {beam_weight=beam_weight+((0.5*128*bw*beam_st)/(fft*200*(16/beam_bit1)) ); } if( beam_mod == "CD" || beam_mod == "PASV" ) {beam_weight=beam_weight+(32*bw/(200*(8/beam_bit1))); } } } total_weight=(visi_weight+beam_weight)*100/64; total_weight=total_weight.toFixed(2); if(total_weight > 100) { if(total_weight > 100 && total_weight <=115) { alert("Warning: Given configuration is not possible.\n" + "Computing budget= " + total_weight+"% (>100%).\nYou may reduce the Spectral chan or increase the STA Cycle.\nYou may increase Beam integ if beam mode is ON.\nComputing budget should be less than or equal to 100%"); return(0); } if(total_weight > 115) { alert("Error: Given configuration is not possible.\n" + "Computing budget= " + total_weight+"% (>100%).\nYou may reduce the Spectral chan or increase the STA Cycle.\nYou may increase Beam integ if beam mode is ON.\nComputing budget should be less than or equal to 100%"); return(0); } } else { alert("Given configuration is possible" + ", computing budget= " + total_weight+"% (<=100%)"); } } // for bit sel function make_sel(id,list,unit){ "use strict"; var no=list.length-1; var select = document.getElementById(id); // remove the options while( select.hasChildNodes() ){ select.removeChild(select.lastChild); } // add the option for (var i = 0; i<=no; i++){ var opt = document.createElement('option'); opt.value =list[i]; opt.innerHTML = list[i]+" "+unit; select.appendChild(opt); } } // check the source coords function check_sourcelist(){ "use strict"; var sourcelist=document.getElementById('sourcelist').value; var co=sourcelist; co=co.trim(co); co=co.replace(/["]+/g, '\\\"'); co=co.replace(/[\n]+/g, 'newline'); co=encodeURIComponent(co); var ndata; $.ajax({ type:"POST", url: "./cmd.php", data: { 'arg': "chk", 'para': co }, async: false, success: function(data,status) { ndata=data; var mywin= window.open("","_blank"); mywin.document.write(ndata); mywin.document.close(); } }); } // add source list to command file function addsrc_to_cmdfile(){ "use strict"; // remove all rows (keep the first row) var table = document.getElementById("table2"); var rowCount = table.rows.length; var i; for(i=rowCount; i>1; i--) { var r=$("#table2").find("tr:eq("+i+")").remove(); } var sourcelist=document.getElementById('sourcelist').value; sourcelist=sourcelist.trim(sourcelist); var co=sourcelist.split(/\r\n|\n\r|\n|\r/); var nos=co.length; // add rows for( i=1; i<=nos;i++) { var r=$("#table2").find("tr:eq("+i+")").clone(); $("#table2").find("tr:eq("+i+")").after(r); } // update index for( i=1; i<=nos+1; i++) { table.rows[i].cells[0].innerHTML=i; } for( i=0;i=1; j--) { var r=$("#table2").find("tr:eq("+j+")").remove(); } j=0; do { i++; if(!line[i].match("#") && !line[i].trim().charAt(0).match("}")) { t=line[i].split(/[ ]+/); j++; if(j>1) { r1=$("#table2").find('tr:eq('+(j-1)+')').clone(); } // add rows $("#table2").find('tr:eq('+(j-1)+')').after(r1); // update index table.rows[j].cells[0].innerHTML=j; // add targets var rowid='tr:eq('+(j)+')'; $("#table2").find(rowid).find("td:eq(1)").find("select").val(t[0]); $("#table2").find(rowid).find("td:eq(2)").find("input").val(t[1]); $("#table2").find(rowid).find("td:eq(3)").find("input").val(t[2]); $("#table2").find(rowid).find("td:eq(4)").find("input").val(t[3]); // make loop readonly if(t[0].match(/loop/g)) { $("#table2").find(rowid).find("td:eq(3)").find("input").attr("readonly","readonly"); $("#table2").find(rowid).find("td:eq(4)").find("input").attr("readonly","readonly"); } else { $("#table2").find(rowid).find("td:eq(3)").find("input").removeAttr("readonly"); $("#table2").find(rowid).find("td:eq(4)").find("input").removeAttr("readonly"); } gettimeval(); } } while(line[i].trim().charAt(0) !== "{" && line[i].trim().charAt(0) !== "}"); } // end command file // special requirment if(line[i].match("{SPECIAL_REQUIREMENT") || line[i].match("{SPECIAL_REQUIRMENT")){ var spreq=""; do { i++; if(!line[i].match("}")) { spreq=spreq+"\n"+line[i]; } document.getElementById('spec_req').value=spreq.trim(); } while(line[i].trim().charAt(0) !== "{" && line[i].trim().charAt(0) !== "}"); } // end special requirment } // end for loop } // end loadoldfile function gablomode(arg){ "use strict"; var sub=arg; var mode=document.getElementById('s'+sub+'_f5').value; if(mode == 1) { // default document.getElementById('s'+sub+'_f4').readOnly=true; document.getElementById('s'+sub+'_f4').style.backgroundColor="lightgreen"; document.getElementById('s'+sub+'_f4').value=getgablo(sub); } else { // custom document.getElementById('s'+sub+'_f4').readOnly=false; document.getElementById('s'+sub+'_f4').style.backgroundColor="white"; } } function getgablo(arg){ "use strict"; var sub=arg; var band=document.getElementById('s'+sub+'_bnd').value; if(band == "OFF") { alert("Please select the valid RF band"); return(0); } var gablo=get_band_val(band,"gablo"); return(gablo); }