Skip to Content.
Sympa Menu

ndt-dev - [ndt-dev] [ndt] r973 committed - Unified java and flash clients API visible from JS

Subject: NDT-DEV email list created

List archive

[ndt-dev] [ndt] r973 committed - Unified java and flash clients API visible from JS


Chronological Thread 
  • From:
  • To:
  • Subject: [ndt-dev] [ndt] r973 committed - Unified java and flash clients API visible from JS
  • Date: Wed, 05 Mar 2014 15:15:57 +0000

Revision: 973
Author:

Date: Wed Mar 5 15:15:26 2014 UTC
Log: Unified java and flash clients API visible from JS

http://code.google.com/p/ndt/source/detail?r=973

Added:
/branches/Issue126/HTML5-frontend/set-active-client.sh
Modified:
/branches/Issue126/Applet/src/edu/internet2/ndt/NDTConstants.java
/branches/Issue126/Applet/src/edu/internet2/ndt/Tcpbw100.java
/branches/Issue126/HTML5-frontend/script.js
/branches/Issue126/HTML5-frontend/widget.html
/branches/Issue126/flash-client/src/GUI.as
/branches/Issue126/flash-client/src/Main.as
/branches/Issue126/flash-client/src/NDTConstants.as
/branches/Issue126/flash-client/src/NDTPController.as
/branches/Issue126/flash-client/src/NDTUtils.as
/branches/Issue126/flash-client/src/TestMETA.as
/branches/Issue126/flash-client/src/TestResults.as
/branches/Issue126/flash-client/src/TestResultsUtils.as

=======================================
--- /dev/null
+++ /branches/Issue126/HTML5-frontend/set-active-client.sh Wed Mar 5 15:15:26 2014 UTC
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+# This script changes the widget.html page to use flash or java NDT client
+# as background for JS UI.
+
+flash="flash"
+java="java"
+widget="widget.html"
+embed_tag="<embed id=\"NDT\" name=\"NDT\" type=\"application\/x-shockwave-flash\" src=\"FlashClt.swf\" width=\"600\" height=\"400\" \/>"
+applet_tag="<applet id=\"NDT\" name=\"NDT\" code=\"edu.internet2.ndt.Tcpbw100.class\" codebase=\"<?php print \$applet_url ?>\" archive=\"Tcpbw100.jar\" width=\"400\" height=\"400\"><\/applet>"
+
+echo "This script allows you to change NDT client being used in $widget page."
+if test ! -f "$widget"; then
+ echo "$widget not found. Aborting..."
+ exit
+fi
+
+echo "Choose which client you want to use ($java/$flash): "
+read client
+while test "$client" != "$java" && test "$client" != "$flash"; do
+ echo "Choose which client you want to use ($java/$flash): "
+ read client
+done
+
+if test "$client" = "$java"; then
+ /bin/sed -i "s/$embed_tag/$applet_tag/" $widget
+ /bin/sed -i "s/<!--[ \t\n]*$applet_tag[ \t\n]*-->/<!--$embed_tag-->/" $widget
+fi
+
+if test "$client" = "$flash"; then
+ /bin/sed -i "s/$applet_tag/$embed_tag/" $widget
+ /bin/sed -i "s/<!--[ \t\n]*$embed_tag[ \t\n]*-->/<!--$applet_tag-->/" $widget
+fi
+
+echo "$widget has been successfully changed."
+
=======================================
--- /branches/Issue126/Applet/src/edu/internet2/ndt/NDTConstants.java Tue Feb 4 10:07:07 2014 UTC
+++ /branches/Issue126/Applet/src/edu/internet2/ndt/NDTConstants.java Wed Mar 5 15:15:26 2014 UTC
@@ -20,7 +20,26 @@
public static final String META_BROWSER_OS = "client.browser.name";
public static final String META_CLIENT_KERNEL_VERSION = "client.kernel.version";
public static final String META_CLIENT_VERSION = "client.version";
- public static final String META_CLIENT_APPLICATION = "client.application";
+ public static final String META_CLIENT_APPLICATION = "client.application";
+
+ // Section: NDT Variables sent by server
+ public static final String AVGRTT = "avgrtt";
+ public static final String CURRWINRCVD = "CurRwinRcvd";
+ public static final String MAXRWINRCVD = "MaxRwinRcvd";
+ public static final String LOSS = "loss";
+ public static final String MINRTT = "MinRTT";
+ public static final String MAXRTT = "MaxRTT";
+ public static final String WAITSEC = "waitsec";
+ public static final String CURRTO = "CurRTO";
+ public static final String SACKSRCVD = "SACKsRcvd";
+ public static final String MISMATCH = "mismatch";
+ public static final String BAD_CABLE = "bad_cable";
+ public static final String CONGESTION = "congestion";
+ public static final String CWNDTIME = "cwndtime";
+ public static final String RWINTIME = "rwintime";
+ public static final String OPTRCVRBUFF = "optimalRcvrBuffer";
+ public static final String ACCESS_TECH = "accessTech";
+ public static final String DUPACKSIN = "DupAcksIn";

/*
* TODO for a later release: Version could be moved to some
"configurable"
=======================================
--- /branches/Issue126/Applet/src/edu/internet2/ndt/Tcpbw100.java Fri Feb 14 13:46:27 2014 UTC
+++ /branches/Issue126/Applet/src/edu/internet2/ndt/Tcpbw100.java Wed Mar 5 15:15:26 2014 UTC
@@ -249,7 +249,7 @@
// private String pub_CWNDpeaks = ""; // source variable does not
exist
private int pub_SACKsRcvd = 0;
private String pub_osVer = "unknown";
- private String pub_javaVer = "unknown";
+ private String pub_pluginVer = "unknown";
private String pub_host = "unknown";
private String pub_osName = "unknown";
private String pub_osArch = "unknown";
@@ -261,6 +261,7 @@
private String pub_AccessTech = "unknown";
private String pub_natBox = "unknown";
private int pub_DupAcksOut = 0;
+ private int pub_DupAcksIn = 0;
private Date pub_TimeStamp;
private String pub_isReady = new String("no");
private String pub_clientIP = "unknown";
@@ -354,8 +355,8 @@
return pub_osVer;
}

- public String get_javaVer() {
- return pub_javaVer;
+ public String get_pluginVer() {
+ return pub_pluginVer;
}

public String get_host() {
@@ -428,6 +429,10 @@
public String get_DupAcksOut() {
return Integer.toString(pub_DupAcksOut);
}
+
+ public String get_DupAcksIn() {
+ return Integer.toString(pub_DupAcksIn);
+ }

public String get_TimeStamp() {
String result = "unknown";
@@ -2819,7 +2824,7 @@
pub_osVer = sOsVer;

sJavaVer = System.getProperty("java.version");
- pub_javaVer = sJavaVer;
+ pub_pluginVer = sJavaVer;

sJavaVendor = System.getProperty("java.vendor");

@@ -3832,8 +3837,10 @@
else if (sSysvarParam.equals("SACKsRcvd:")) {
_iSACKsRcvd = iSysvalParam;
pub_SACKsRcvd = _iSACKsRcvd;
- } else if (sSysvarParam.equals("DupAcksIn:"))
- _iDupAcksIn = iSysvalParam;
+ } else if (sSysvarParam.equals("DupAcksIn:")) {
+ _iDupAcksIn = iSysvalParam;
+ pub_DupAcksIn = _iDupAcksIn;
+ }
else if (sSysvarParam.equals("MaxRwinRcvd:")) {
_iMaxRwinRcvd = iSysvalParam;
pub_MaxRwinRcvd = _iMaxRwinRcvd;
@@ -4107,5 +4114,62 @@
this.hostAddress = addresses[0];
}
}
+
+ /**
+ * Function that returns a variable corresponding to the parameter passed to
+ * it as a request.
+ * @param {String} The parameter which the caller is seeking.
+ * @return {String} The value of the desired parameter.
+ */
+ public String getNDTvar(String varName) {
+ if (varName.equals("ClientToServerSpeed"))
+ return get_c2sspd();
+ else if (varName.equals("ServerToClientSpeed"))
+ return get_s2cspd();
+ else if (varName.equals("Jitter"))
+ return get_jitter();
+ else if (varName.equals("OperatingSystem"))
+ return get_osName() + " " + get_osVer();
+ else if (varName.equals("PluginVersion"))
+ return get_pluginVer();
+ else if (varName.equals("OsArchitecture"))
+ return get_osArch();
+ else if (varName.equals(NDTConstants.AVGRTT))
+ return get_avgrtt();
+ else if (varName.equals(NDTConstants.CURRWINRCVD))
+ return get_CurRwinRcvd();
+ else if (varName.equals(NDTConstants.MAXRWINRCVD))
+ return get_MaxRwinRcvd();
+ else if (varName.equals(NDTConstants.LOSS))
+ return get_loss();
+ else if (varName.equals(NDTConstants.MINRTT))
+ return get_Ping();
+ else if (varName.equals(NDTConstants.MAXRTT))
+ return get_MaxRTT();
+ else if (varName.equals(NDTConstants.WAITSEC))
+ return get_WaitSec();
+ else if (varName.equals(NDTConstants.CURRTO))
+ return get_CurRTO();
+ else if (varName.equals(NDTConstants.SACKSRCVD))
+ return get_SACKsRcvd();
+ else if (varName.equals(NDTConstants.MISMATCH))
+ return get_mismatch();
+ else if (varName.equals(NDTConstants.BAD_CABLE))
+ return get_Bad_cable();
+ else if (varName.equals(NDTConstants.CONGESTION))
+ return get_congestion();
+ else if (varName.equals(NDTConstants.CWNDTIME))
+ return get_cwndtime();
+ else if (varName.equals(NDTConstants.RWINTIME))
+ return get_rcvrLimiting();
+ else if (varName.equals(NDTConstants.OPTRCVRBUFF))
+ return get_optimalRcvrBuffer();
+ else if (varName.equals(NDTConstants.ACCESS_TECH))
+ return get_AccessTech();
+ else if (varName.equals(NDTConstants.DUPACKSIN))
+ return get_DupAcksIn();
+ else
+ return null;
+ }

} // class: Tcpbw100
=======================================
--- /branches/Issue126/HTML5-frontend/script.js Fri Mar 18 14:44:18 2011 UTC
+++ /branches/Issue126/HTML5-frontend/script.js Wed Mar 5 15:15:26 2014 UTC
@@ -58,7 +58,7 @@
showPage('test');
if (simulate) return simulateTest();
currentPhase = PHASE_WELCOME;
- testApplet().run_test();
+ testNDT().run_test();
monitorTest();
}

@@ -322,107 +322,107 @@



-// TESTING APPLET
+// TESTING JAVA/FLASH CLIENT

-function testApplet() {
- return applet = document.applets['NDT'];
+function testNDT() {
+ return ndt = document.getElementById('NDT');
}

function testStatus() {
- return testApplet().get_status();
+ return testNDT().get_status();
}

function testDiagnosis() {
if (simulate) return "Test diagnosis";
- return testApplet().get_diagnosis();
+ return testNDT().get_diagnosis();
}

function testError() {
- return testApplet().get_errmsg();
+ return testNDT().get_errmsg();
}

function remoteServer() {
if (simulate) return '0.0.0.0';
- return testApplet().get_host();
+ return testNDT().get_host();
}

function uploadSpeed(raw) {
if (simulate) return 0;
- var speed = testApplet().get_c2sspd();
+ var speed = testNDT().getNDTvar("ClientToServerSpeed");
return raw ? speed : parseFloat(speed);
}

function downloadSpeed() {
if (simulate) return 0;
- return parseFloat(testApplet().get_s2cspd());
+ return parseFloat(testNDT().getNDTvar("ServerToClientSpeed"));
}

function averageRoundTrip() {
if (simulate) return 0;
- return parseFloat(testApplet().get_avgrtt());
+ return parseFloat(testNDT().getNDTvar("avgrtt"));
}

function jitter() {
if (simulate) return 0;
- return parseFloat(testApplet().get_jitter());
+ return parseFloat(testNDT().getNDTvar("Jitter"));
}

function testDetails() {
if (simulate) return 'Test details';

- var a = testApplet();
+ var a = testNDT();
var d = '';

- d += "Your system: " + a.get_osName() + " version " + a.get_osVer() + "<br>";
- d += "Java version: " + a.get_javaVer() + " (" + a.get_osArch() + ")<br>";
+ d += "Your system: " + a.getNDTvar("OperatingSystem") + "<br>";
+ d += "Plugin version: " + a.getNDTvar("PluginVersion") + " (" + a.getNDTvar("OsArchitecture") + ")<br>";

d += "<br>";

- d += "TCP receive window: " + a.get_CurRwinRcvd() + " current, " + a.get_MaxRwinRcvd() + " maximum<br>";
- d += a.get_loss() + " packets lost during test<br>";
- d += "Round trip time: " + a.get_Ping() + " msec (minimum), " + a.get_MaxRTT() + " msec (maximum), " + a.get_avgrtt() + " msec (average)<br>";
- d += "Jitter: " + a.get_jitter() + " msec<br>";
- d += a.get_WaitSec() + " seconds spend waiting following a timeout<br>";
- d += "TCP time-out counter: " + a.get_CurRTO() + "<br>";
- d += a.get_SACKsRcvd() + " selective acknowledgement packets received<br>";
+ d += "TCP receive window: " + a.getNDTvar("CurRwinRcvd") + " current, " + a.getNDTvar("MaxRwinRcvd") + " maximum<br>";
+ d += a.getNDTvar("loss") + " packets lost during test<br>";
+ d += "Round trip time: " + a.getNDTvar("MinRTT") + " msec (minimum), " + a.getNDTvar("MaxRTT") + " msec (maximum), " + a.getNDTvar("avgrtt") + " msec (average)<br>";
+ d += "Jitter: " + a.getNDTvar("Jitter") + " msec<br>";
+ d += a.getNDTvar("waitsec") + " seconds spend waiting following a timeout<br>";
+ d += "TCP time-out counter: " + a.getNDTvar("CurRTO") + "<br>";
+ d += a.getNDTvar("SACKsRcvd") + " selective acknowledgement packets received<br>";

d += "<br>";

- if (a.get_mismatch() == "yes") {
+ if (a.getNDTvar("mismatch") == "yes") {
d += "A duplex mismatch condition was detected.<br>";
}
else {
d += "No duplex mismatch condition was detected.<br>";
}

- if (a.get_Bad_cable() == "yes") {
+ if (a.getNDTvar("bad_cable") == "yes") {
d += "The test detected a cable fault.<br>";
}
else {
d += "The test did not detect a cable fault.<br>";
}

- if (a.get_congestion() == "yes") {
+ if (a.getNDTvar("congestion") == "yes") {
d += "Network congestion may be limiting the connection.<br>";
}
else {
d += "No network congestion was detected.<br>";
}

- if (a.get_natStatus() == "yes") {
- d += "A network addess translation appliance was detected.<br>";
+ /*if (a.get_natStatus() == "yes") {
+ d += "A network address translation appliance was detected.<br>";
}
else {
d += "No network addess translation appliance was detected.<br>";
- }
+ }*/

d += "<br>";

- d += a.get_cwndtime() + "% of the time was not spent in a receiver limited or sender limited state.<br>";
- d += a.get_rcvrLimiting() + "% of the time the connection is limited by the client machine's receive buffer.<br>";
- d += "Optimal receive buffer: " + a.get_optimalRcvrBuffer() + " bytes<br>";
- d += "Bottleneck link: " + a.get_AccessTech() + "<br>";
- d += a.get_DupAcksOut() + " duplicate ACKs set<br>";
+ d += a.getNDTvar("cwndtime") + "% of the time was not spent in a receiver limited or sender limited state.<br>";
+ d += a.getNDTvar("rwintime") + "% of the time the connection is limited by the client machine's receive buffer.<br>";
+ d += "Optimal receive buffer: " + a.getNDTvar("optimalRcvrBuffer") + " bytes<br>";
+ d += "Bottleneck link: " + a.getNDTvar("accessTech") + "<br>";
+ d += a.getNDTvar("DupAcksIn") + " duplicate ACKs set<br>";

return d;
}
=======================================
--- /branches/Issue126/HTML5-frontend/widget.html Fri Mar 18 14:44:18 2011 UTC
+++ /branches/Issue126/HTML5-frontend/widget.html Wed Mar 5 15:15:26 2014 UTC
@@ -118,7 +118,11 @@
</div>
</div>

-<applet name="NDT" code="Tcpbw100.class" codebase="<?php print $applet_url ?>" archive="Tcpbw100.jar" width="400" height="400"></applet>
+<!--Use embed tag to have flash client being background for JS UI or applet tag if you want to use java applet instead. -->
+<applet id="NDT" name="NDT" code="edu.internet2.ndt.Tcpbw100.class" codebase="<?php print $applet_url ?>" archive="Tcpbw100.jar" width="400" height="400"></applet>
+
+<!--<embed id="NDT" name="NDT" type="application/x-shockwave-flash" src="FlashClt.swf" width="600" height="400" />-->
+

</body>
</html>
=======================================
--- /branches/Issue126/flash-client/src/GUI.as Wed Feb 26 07:57:55 2014 UTC
+++ /branches/Issue126/flash-client/src/GUI.as Wed Mar 5 15:15:26 2014 UTC
@@ -377,7 +377,6 @@

private function clickRestart(e:MouseEvent):void {
hideResultsScreen();
- TestResults.clearResults();
_consoleText.text = "";
this.addChild(_consoleText);
_callerObj.startNDTTest();
=======================================
--- /branches/Issue126/flash-client/src/Main.as Fri Feb 21 08:01:33 2014 UTC
+++ /branches/Issue126/flash-client/src/Main.as Wed Mar 5 15:15:26 2014 UTC
@@ -47,18 +47,18 @@
// Set the properties of the SWF from HTML tags.
NDTUtils.initializeFromHTML(this.root.loaderInfo.parameters);

- var frame:NDTPController = new NDTPController(server_hostname,
- client_application);
+ var frame:NDTPController = NDTPController.getInstance();

stage.showDefaultContextMenu = false;
if (guiEnabled) {
gui = new GUI(stage.stageWidth, stage.stageHeight, frame);
this.addChild(gui);
- } else {
- // If guiEnabled compiler flag set to false, start test immediately.
- frame.startNDTTest();
}
NDTUtils.addJSCallbacks();
}
+
+ public static function getHost():String {
+ return server_hostname;
+ }
}
}
=======================================
--- /branches/Issue126/flash-client/src/NDTConstants.as Fri Feb 21 08:01:33 2014 UTC
+++ /branches/Issue126/flash-client/src/NDTConstants.as Wed Mar 5 15:15:26 2014 UTC
@@ -101,6 +101,7 @@
public static const DATA_RATE_OC_48:int = 8;
public static const DATA_RATE_10G_ETHERNET:int = 9;

+ public static const ACCESS_TECH:String = "accessTech";
public static const ACCESS_TECH_UNKNOWN:String = "Connection type unknown";
public static const ACCESS_TECH_DIALUP:String = "Dial-up Modem";
public static const ACCESS_TECH_CABLEDSL:String = "Cable/DSL modem";
@@ -229,6 +230,7 @@
public static const CWIN:String = "cwin";
public static const SPD:String = "spd";
public static const ASPD:String = "aspd";
+ public static const OPTRCVRBUFF:String = "optimalRcvrBuffer";
}
}

=======================================
--- /branches/Issue126/flash-client/src/NDTPController.as Mon Feb 24 10:36:07 2014 UTC
+++ /branches/Issue126/flash-client/src/NDTPController.as Wed Mar 5 15:15:26 2014 UTC
@@ -30,6 +30,7 @@
* the measurement tests and the retrieval of the test results.
*/
public class NDTPController {
+ private static var _instance:NDTPController = null;
private const READ_TIMEOUT:int = 10000; // 10sec
// Valid values for _testStage.
private const REMOTE_RESULTS1:int = 0;
@@ -51,10 +52,21 @@

_remoteTestResults = ""
}
+
+ public static function getInstance():NDTPController {
+ if (_instance == null) {
+ _instance = new NDTPController(Main.server_hostname,
+ Main.client_application);
+ }
+ return _instance;
+ }

public function startNDTTest():void {
+ _currentTest = 0;
+ TestResults.clearResults();
TestResults.recordStartTime();
TestResults.ndt_test_results::ndtTestFailed = false;
+ TestResults.ndt_test_results::ndtErrStatus = "Test in progress.";
TestResults.appendDebugMsg(ResourceManager.getInstance().getString(
NDTConstants.BUNDLE_NAME, "connectingTo", null, Main.locale)
+ " " + _hostname + " " + ResourceManager.getInstance().getString(
@@ -250,6 +262,11 @@
"Client failed to close Control socket. Error" + e);
}

+ if (!TestResults.ndt_test_results::ndtTestFailed) {
+ TestResults.ndt_test_results::ndtErrStatus = "All tests completed OK.";
+ } else {
+ TestResults.ndt_test_results::ndtErrStatus = TestResults.getErrMsg();
+ }
TestResults.recordEndTime();
TestResults.ndt_test_results::remoteTestResults += _remoteTestResults;

=======================================
--- /branches/Issue126/flash-client/src/NDTUtils.as Fri Feb 21 08:01:33 2014 UTC
+++ /branches/Issue126/flash-client/src/NDTUtils.as Wed Mar 5 15:15:26 2014 UTC
@@ -153,12 +153,17 @@
// TODO(tiziana): Restrict domain to the M-Lab website/server.
Security.allowDomain("*");
try {
+ ExternalInterface.addCallback(
+ "run_test", NDTPController.getInstance().startNDTTest);
+ ExternalInterface.addCallback(
+ "get_status", TestResults.getTestStatus);
ExternalInterface.addCallback(
"getDebugOutput", TestResults.getDebugMsg);
ExternalInterface.addCallback(
- "getDetails", TestResults.getResultDetails);
+ "get_diagnosis", TestResults.getResultDetails);
ExternalInterface.addCallback(
- "getErrors", TestResults.getErrMsg);
+ "get_errmsg", TestResults.getErrStatus);
+ ExternalInterface.addCallback("get_host", Main.getHost);
ExternalInterface.addCallback(
"getNDTvar", TestResultsUtils.getNDTVariable);
} catch (e:Error) {
=======================================
--- /branches/Issue126/flash-client/src/TestMETA.as Fri Feb 21 07:41:20 2014 UTC
+++ /branches/Issue126/flash-client/src/TestMETA.as Wed Mar 5 15:15:26 2014 UTC
@@ -39,8 +39,8 @@
private var _testStage:int;
private var _clientApplication:String;

- public function TestMETA(ctlSocket:Socket,
- clientApplication:String,
+ public function TestMETA(ctlSocket:Socket,
+ clientApplication:String,
callerObject:NDTPController) {
_callerObj = callerObject;
_ctlSocket = ctlSocket;
=======================================
--- /branches/Issue126/flash-client/src/TestResults.as Mon Feb 24 10:22:22 2014 UTC
+++ /branches/Issue126/flash-client/src/TestResults.as Wed Mar 5 15:15:26 2014 UTC
@@ -34,7 +34,8 @@
ndt_test_results static var ndtVariables:Object = new Object();
ndt_test_results static var userAgent:String;
// Valid only when ndtTestFailed == false.
- ndt_test_results static var ndtTestStatus:String = null;
+ ndt_test_results static var ndtTestStatus:String = "";
+ ndt_test_results static var ndtErrStatus:String = "Test not run.";
ndt_test_results static var ndtTestFailed:Boolean = false;
ndt_test_results static var c2sSpeed:Number = 0.0;
ndt_test_results static var s2cSpeed:Number = 0.0;
@@ -55,6 +56,14 @@
public static function get duration():Number {
return _ndtTestEndTime - _ndtTestStartTime;
}
+
+ public static function getTestStatus():String {
+ return ndt_test_results::ndtTestStatus;
+ }
+
+ public static function getErrStatus():String {
+ return ndt_test_results::ndtErrStatus;
+ }

public static function get testList():String {
var testSuite:String = "";
=======================================
--- /branches/Issue126/flash-client/src/TestResultsUtils.as Sun Feb 2 19:14:17 2014 UTC
+++ /branches/Issue126/flash-client/src/TestResultsUtils.as Wed Mar 5 15:15:26 2014 UTC
@@ -84,14 +84,40 @@
return Capabilities.os;
case "ClientVersion":
return NDTConstants.CLIENT_VERSION;
- case "FlashVersion":
+ case "PluginVersion":
return Capabilities.version;
case "OsArchitecture":
return Capabilities.cpuArchitecture;
+ case NDTConstants.MISMATCH:
+ if (TestResults.ndtVariables[varName]
+ == NDTConstants.DUPLEX_OK_INDICATOR)
+ return "no";
+ else
+ return "yes";
+ case NDTConstants.BAD_CABLE:
+ if (TestResults.ndtVariables[varName]
+ == NDTConstants.CABLE_STATUS_OK)
+ return "no";
+ else
+ return "yes";
+ case NDTConstants.CONGESTION:
+ if (TestResults.ndtVariables[varName]
+ == NDTConstants.CONGESTION_NONE)
+ return "no";
+ else
+ return "yes";
+ case NDTConstants.RWINTIME:
+ return String(TestResults.ndtVariables[varName] * NDTConstants.PERCENTAGE);
+ case NDTConstants.OPTRCVRBUFF:
+ return String(TestResults.ndtVariables[NDTConstants.MAXRWINRCVD] * NDTConstants.KBITS2BITS);
+ case NDTConstants.ACCESS_TECH:
+ return TestResults.ndt_test_results::accessTech;
+ default:
+ if (varName in TestResults.ndtVariables) {
+ return TestResults.ndtVariables[varName].toString();
+ }
}
- if (varName in TestResults.ndtVariables) {
- return TestResults.ndtVariables[varName].toString();
- }
+
return null;
}



  • [ndt-dev] [ndt] r973 committed - Unified java and flash clients API visible from JS, ndt, 03/05/2014

Archive powered by MHonArc 2.6.16.

Top of Page