?? testb_a_lot.java
字號:
package hfut.wispy.Client;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import nl.justobjects.pushlet.client.PushletClient;
import nl.justobjects.pushlet.client.PushletClientListener;
import nl.justobjects.pushlet.core.Event;
import nl.justobjects.pushlet.core.Protocol;
import nl.justobjects.pushlet.util.PushletException;
public class TestB_a_lot implements PushletClientListener, Protocol{
private static String SUBJECT = "/stocks/aexonlinewispy";
private static final String MODE = MODE_STREAM;
private Integer firstRate = 0;
private Integer lastRate = 0;
private boolean first = true;
public static long maxWaitTime = 0;
public static long minWaitTime = 5000;
public static int maxWaitNo = 0;
public static int minWaitNo = 0;
public static int zeroUnkind = 0;
public static int b0toN200 = 0;
public static int bN200toN400 = 0;
public static int bN400toN600 = 0;
public static int bN600toN800 = 0;
public static int bN800toN1000 = 0;
public static int bN1000toN1200 = 0;
public static int bN1200toN1400 = 0;
public static int bN1400toN1600 = 0;
public static int bN1600toN1800 = 0;
public static int bN1800toN2000 = 0;
public static int b0to200 = 0;
public static int b200to400 = 0;
public static int b400to600 = 0;
public static int b600to800 = 0;
public static int b800to1000 = 0;
public static int b1000to1200 = 0;
public static int b1200to1400 = 0;
public static int b1400to1600 = 0;
public static int b1600to1800 = 0;
public static int b1800to2000 = 0;
public static int b2000to2400 = 0;
public static int b2400to2800 = 0;
public static int b2800to3200 = 0;
public static int up3200 = 0;
public static int unkind = 0;
public static long totalWaitTime = 0;
public static long totalRunTimes = 0;
public TestB_a_lot(String aHost, int aPort) {
// Create and start a Pushlet client; we receive callbacks
// through onHeartbeat() and onData().
try {
PushletClient pushletClient = new PushletClient(aHost, aPort);
pushletClient.setDebug(true);
pushletClient.join();
pushletClient.listen(this, MODE, SUBJECT);
// pushletClient.joinListen(this, MODE, SUBJECT);
System.out.println("here pushletClient started");
p("pushletClient started MyTest");
} catch (PushletException pe) {
p("Error in setting up pushlet session pe=" + pe);
}
}
/** Error occurred. */
public void onError(String message) {
p("onAbort onError: " + message);
}
/** Abort event from server. */
public void onAbort(Event theEvent) {
p("onAbort received: " + theEvent.toString());
}
/** Data event from server. */
public void onData(Event theEvent) {
// Calculate round trip delay
//p("theEvent.toXML() : " + theEvent.toXML());
// p("here is the city :" + theEvent.getField("city"));
p("name : " + theEvent.getField("name"));
p("rate : " + theEvent.getField("rate"));
Integer rateInteger = new Integer(theEvent.getField("rate"));
lastRate = rateInteger;
if(first)
{
firstRate = rateInteger;
first = false;
}
Date now = new Date();
Date date = new Date(theEvent.getField("time"));
//----------------------------------------------------------
long time = now.getTime() - date.getTime();
totalWaitTime += time;
//條件表達式的執行順序為:先求解表達式1,若值為非0,表示條件為真,則求解表達式2,此時表達式2的值就作為整個條件表達式的值;
//若表達式1的值為0,表示條件為假,則求解表達式3,表達式3的值就是整個條件表達式的值
minWaitTime = (minWaitTime < time) ? minWaitTime : time;
maxWaitTime = (maxWaitTime < time) ? time : maxWaitTime;
if(maxWaitTime <= time){
maxWaitNo = new Integer(theEvent.getField("rate"));
}
if(minWaitTime >= time){
minWaitNo = new Integer(theEvent.getField("rate"));
}
p("延時時間 : " + time + "毫秒。");
if (time > 2000){
p("------------------------奇了-- >2000 max ----------------------------");
p("time : " + theEvent.getField("time"));
p("now : " + now.toString());
}
if (time <200){
p("------------------------奇了--- <200 min ---------------------------");
p("time : " + theEvent.getField("time"));
p("now : " + now.toString());
}
int sw = (int)time/200;
switch (sw) {
case -1:
b200to400++;
break;
case -2:
bN400toN600++;
break;
case -3:
bN600toN800++;
break;
case -4:
bN800toN1000++;
break;
case -5:
bN1000toN1200++;
break;
case -6:
bN1200toN1400++;
break;
case -7:
bN1400toN1600++;
break;
case -8:
bN1600toN1800++;
break;
case -9:
bN1800toN2000++;
break;
case 0:
if(time >= 0)
b0to200++;
else if(time < 0){
b0toN200++;
}
else {
zeroUnkind++;
}
break;
case 1:
b200to400++;
break;
case 2:
b400to600++;
break;
case 3:
b600to800++;
break;
case 4:
b800to1000++;
break;
case 5:
b1000to1200++;
break;
case 6:
b1200to1400++;
break;
case 7:
b1400to1600++;
break;
case 8:
b1600to1800++;
break;
case 9:
b1800to2000++;
break;
case 10:
b2000to2400++;
break;
case 11:
b2000to2400++;
break;
case 12:
b2400to2800++;
break;
case 13:
b2400to2800++;
break;
case 14:
b2800to3200++;
break;
case 15:
b2800to3200++;
break;
case 16:
up3200++;
break;
default:
unkind++;
break;
}
// p("here is the EPCCode :" + theEvent.getField("epc"));
// p("p_event :" + theEvent.getField("p_event"));
// p("p_time : " + theEvent.getField("p_time"));
// p("p_from : " + theEvent.getField("p_from"));
// p("p_mode : " + theEvent.getField("p_mode"));
showSummery();
}
private void showSummery() {
System.out.println();
//每10次輸出一下統計信息
totalRunTimes++;
if(totalRunTimes % 30 == 0){
p(" ");
p("--------------哇咔咔 統計信息開始----------- ");
p("第一次開始調用的rate " + firstRate);
p("總共獲取調用了多少次 : " + totalRunTimes + "次");
p("下面應該是多少 " + (int)(firstRate+totalRunTimes-1));
p("最后一次rate " + lastRate);
p("");
p("最大延時時間 : " + maxWaitTime + "毫秒");
p("最大延遲產生的rate : " + maxWaitNo);
p("最小延時時間 : " + minWaitTime + "毫秒");
p("最小延遲產生的rate : " + minWaitNo);
p("平均延時時間 : " + totalWaitTime/totalRunTimes + "毫秒");
p(" ");
p("-1800 -2000出現次數 :" + bN1800toN2000);
p("-1600 -1800出現次數 :" + bN1600toN1800);
p("-1400 -1600出現次數 :" + bN1400toN1600);
p("-1200 -1400出現次數 :" + bN1200toN1400);
p("-1000 -1200出現次數 :" + bN1000toN1200);
p("-800 -1000出現次數 :" + bN800toN1000);
p("-600 -800出現次數 :" + bN600toN800);
p("-400 -600出現次數 :" + bN400toN600);
p("-200 -400出現次數 :" + bN200toN400);
p("0 TO -200出現次數 :" + b0toN200);
p("0 TO 200出現次數 :" + b0to200);
p("200-400出現次數 :" + b200to400);
p("400-600出現次數 :" + b400to600);
p("600-800出現次數 :" + b600to800);
p("800-1000出現次數 :" + b800to1000);
p("1000-1200出現次數 :" + b1000to1200);
p("1200-1400出現次數 :" + b1200to1400);
p("1400-1600出現次數 :" + b1400to1600);
p("1600-1800出現次數 :" + b1600to1800);
p("1800-2000出現次數 :" + b1800to2000);
p("2000-2400出現次數 :" + b2000to2400);
p("2400-2800出現次數 :" + b2400to2800);
p("2800-3200出現次數 :" + b2800to3200);
p("3200以上出現次數 :" + up3200);
p("未能統計的次數 :" + unkind);
p("未能統計的ZROE次數 :" + zeroUnkind);
p(" ");
System.out.println();
}
}
/** Heartbeat event from server. */
public void onHeartbeat(Event theEvent) {
p("onHeartbeat received: " + theEvent.toString());
}
/** Generic print. */
public static void p(String s) {
System.out.println("[MyTest] " + s);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成方法存根
new TestB_a_lot("192.168.21.187", 8080);
new TestB_a_lot("192.168.21.187", 8080);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -