Skip to content
Permalink
8ac51c6fb9
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
157 lines (140 sloc) 5.38 KB
import { setAnimateInstructions } from './index.js';
// How to get base URL of server to use for api calls
var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + '/'
// Start Simulation to assigns variables.
var DDDstate;
var skipsim;
var outputFile;
var sumOut;
var logOut;
var packetsize;
var rtsa;
var maxqueuesize;
var dddmappingdelay;
var propagationdelay;
var numofDDDport;
var bandwidthconnection;
var timetonextDDDport;
var overlaptimeoldDDD;
var durationSim;
var numbSynAckResends;
var clienttoRouter;
var routertoClient;
var routertoReflector;
var routertoNormal;
var normaltoRouter;
var reflectortoRouter;
var attackertoReflector;
var queueLimit;
var attackerType;
var amplification;
var storageFolder;
// When simulation started, we will retrieve a session ID.
var sessionId;
function startSimulation(){
DDDstate = document.getElementById("DDDstate").checked;
skipsim = document.getElementById("simOption").checked;
outputFile= document.getElementById("downOutput").checked;
// If the output File option is checked we get summfile, and logfile. Otherwise set it to false.
if(outputFile){
sumOut = document.getElementById("summfile").checked;
logOut = document.getElementById("logfile").checked;
}
else{
sumOut = false;
logOut = false;
}
packetsize = document.getElementById("packetsize").value;
rtsa = document.getElementById("rtsa").value;
maxqueuesize = document.getElementById("maxqueuesize").value;
dddmappingdelay = document.getElementById("dddmappingdelay").value;
propagationdelay = document.getElementById("propagationdelay").value;
numofDDDport = document.getElementById("numofDDDport").value;
timetonextDDDport = document.getElementById("timetonextDDDport").value;
overlaptimeoldDDD = document.getElementById("overlaptimeoldDDD").value;
durationSim = document.getElementById("durationSim").value;
numbSynAckResends = document.getElementById("numbSynAckResends").value;
clienttoRouter=document.getElementById("clienttoRouter").value;
routertoClient=document.getElementById("routertoClient").value;
routertoReflector=document.getElementById("routertoReflector").value;
routertoNormal=document.getElementById("routertoNormal").value;
normaltoRouter=document.getElementById("normaltoRouter").value;
reflectortoRouter=document.getElementById("reflectortoRouter").value;
attackertoReflector=document.getElementById("attackertoReflector").value;
queueLimit=document.getElementById("queueLimit").value;
attackerType = document.getElementById("AtkType").value;
amplification = document.getElementById("Amp").value;
storageFolder = document.getElementById("storageFolder").value;
}
// sendGet is the function that is called when user presses button on index.html
window.sendGet = sendGet;
function sendGet(){
startSimulation();
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200){
let jsonObj = JSON.parse(xmlHttp.responseText);
sessionId = jsonObj[jsonObj.length - 1];
console.log('Session GUID = ' + sessionId);
console.log('length of animateInstructions list is ' + jsonObj.length);
setAnimateInstructions(jsonObj);
}
}
// This line creates the url that will send a request to the python server
let sendRequestUrl = baseUrl + "runSimulation/"
+ DDDstate + "&" + skipsim +"&" + sumOut + "&" + logOut + "&" + packetsize + "&" +
rtsa + "&" +
maxqueuesize + "&" +
dddmappingdelay+ "&" + propagationdelay + "&" + numofDDDport + "&" + timetonextDDDport +"&" + overlaptimeoldDDD
+ "&" + durationSim + "&" + numbSynAckResends + "&" + clienttoRouter + "&" + routertoClient + "&" +
routertoReflector + "&" + routertoNormal + "&" + normaltoRouter + "&" + reflectortoRouter + "&" + attackertoReflector + "&" + queueLimit +"&" + attackerType + "&"
+ amplification + "&" + storageFolder;
console.log(sendRequestUrl);
xmlHttp.open("GET", sendRequestUrl, true); // true for asynchronous
xmlHttp.send(null);
}
// When click download button its pulled the user's inputs for the name and add .csv to the end of it.
var filename1;
var filename2;
function downloadFiles(){
filename1 = document.getElementById("file1").value;
if(filename1){
filename1 = filename1.concat(".csv");
}
filename2 = document.getElementById("file2").value;
if(filename2){
filename2 = filename2.concat(".csv");
}
}
window.downloadFile = downloadFile;
function downloadFile(){
downloadFiles();
console.log(filename2);
var summfile = document.getElementById("summfile").checked;
var logfile = document.getElementById("logfile").checked;
var request1;
var request2;
console.log(summfile);
console.log(logfile);
if(summfile){
if(filename1){
request1 = `${baseUrl}download2/${storageFolder}/${sessionId}/summary.csv&${filename1}`;
window.open(request1, '_blank');
}
else{
request1 = `${baseUrl}download/${storageFolder}/${sessionId}/summary.csv`;
window.open(request1, '_blank');
}
}
if(logfile){
if(filename2){
request2 = `${baseUrl}download2/${storageFolder}/${sessionId}/log.csv&${filename2}`;
window.open(request2, '_blank');
}
else{
request2 = `${baseUrl}download/${storageFolder}/${sessionId}/log.csv`;
window.open(request2, '_blank');
}
}
}