📄 diagmsgdisplay.java
字号:
case TYPE_CHAR: addChar(); break; case TYPE_INT64: addInt64(); break; case TYPE_UINT64: addUint64(); break; case TYPE_TOKEN: addToken(); break; case TYPE_ARRAY: addArray(); break; default: line.append(delimiter + "unknown"); } } protected void addArray() throws DiagMsgException { int len = getByte(); int type = (len >> 4) & 0xF; len &= 0xF; if( type == TYPE_CHAR ) addStr(len); else { line.append(delimiter + "["); while( --len >= 0 ) addSimple(type); line.append(" ]"); } } protected void check(int len) throws DiagMsgException { if( head + len > end ) throw new DiagMsgException("illegal message format"); } protected byte getByte() throws DiagMsgException { check(1); byte ret = packet[head]; head += 1; return ret; } protected short getShort() throws DiagMsgException { short a,b; check(2); a = packet[head]; a &= 0x00FF; b = packet[head+1]; b <<= 8; b &= 0xFF00; a |= b; head += 2; return a; } protected int getInt() throws DiagMsgException { int a,b; check(4); a = packet[head]; a &= 0x000000FF; b = packet[head+1]; b <<= 8; b &= 0x0000FF00; a |= b; b = packet[head+2]; b <<= 16; b &= 0x00FF0000; a |= b; b = packet[head+3]; b <<= 24; b &= 0xFF000000; a |= b; head += 4; return a; } protected long getLong() throws DiagMsgException { long a,b; check(8); a = packet[head]; a &= 0x00000000000000FF; b = packet[head+1]; b <<= 8; b &= 0x000000000000FF00; a |= b; b = packet[head+2]; b <<= 16; b &= 0x0000000000FF0000; a |= b; b = packet[head+3]; b <<= 24; b &= 0x00000000FF000000; a |= b; b = packet[head+4]; b &= 0x00000000000000FF; b <<= 32; a |= b; b = packet[head+5]; b &= 0x00000000000000FF; b <<= 40; a |= b; b = packet[head+6]; b &= 0x00000000000000FF; b <<= 48; a |= b; b = packet[head+7]; b &= 0x00000000000000FF; b <<= 56; a |= b; head += 8; return a; } protected void addUint8() throws DiagMsgException { String value = Integer.toString(getByte() & 0xFF); line.append(delimiter + value); } protected void addInt8() throws DiagMsgException { String value = Byte.toString(getByte()); line.append(delimiter + value); } protected void addHex8() throws DiagMsgException { String value = Integer.toHexString(getByte() & 0xFF); line.append(delimiter + "0x"); for(int i = value.length(); i < 2; ++i) line.append('0'); line.append(value); } protected void addUint16() throws DiagMsgException { String value = Integer.toString(getShort() & 0xFFFF); line.append(delimiter + value); } protected void addInt16() throws DiagMsgException { String value = Short.toString(getShort()); line.append(delimiter + value); } protected void addHex16() throws DiagMsgException { String value = Integer.toHexString(getShort() & 0xFFFF); line.append(delimiter + "0x"); for(int i = value.length(); i < 4; ++i) line.append('0'); line.append(value); } protected void addUint32() throws DiagMsgException { String value = Long.toString(getInt() & 0xFFFFFFFF); line.append(delimiter + value); } protected void addInt32() throws DiagMsgException { String value = Integer.toString(getInt()); line.append(delimiter + value); } protected void addHex32() throws DiagMsgException { String value = Integer.toHexString(getInt()); line.append(delimiter + "0x"); for(int i = value.length(); i < 8; ++i) line.append('0'); line.append(value); } protected void addInt64() throws DiagMsgException { String value = Long.toString(getLong()); line.append(delimiter + value); } protected void addUint64() throws DiagMsgException { String value = Long.toString(getLong()); line.append(delimiter + value); } protected void addReal() throws DiagMsgException { float value = Float.intBitsToFloat(getInt()); line.append(delimiter + Float.toString(value)); } protected void addChar() throws DiagMsgException { char value = (char)getByte(); line.append(delimiter + "'" + value + "'"); } protected void addStr(int len) throws DiagMsgException { line.append(delimiter + "\""); while( --len >= 0 ) line.append((char)getByte()); line.append('"'); } protected void addToken() throws DiagMsgException { int token = getByte() & 0xFF; line.append(delimiter); switch(token) { case 0 : line.append("false"); break; case 1 : line.append("true"); break; case 2 : line.append("node"); break; case 3 : line.append("source"); break; case 4 : line.append("destination"); break; case 5 : line.append("target"); break; case 6 : line.append("minimum"); break; case 7 : line.append("maximum"); break; case 8 : line.append("mean"); break; case 9 : line.append("average"); break; case 10 : line.append("time"); break; case 11 : line.append("counter"); break; case 12 : line.append("stamp"); break; case 13 : line.append("sequence"); break; case 14 : line.append("number"); break; case 15 : line.append("config"); break; case 16 : line.append("diameter"); break; case 17 : line.append("fail"); break; case 18 : line.append("success"); break; case 19 : line.append("ack"); break; case 20 : line.append("power"); break; case 21 : line.append("local"); break; case 22 : line.append("remote"); break; case 23 : line.append("leader"); break; case 24 : line.append("root"); break; case 25 : line.append("first"); break; case 26 : line.append("second"); break; case 27 : line.append("third"); break; case 28 : line.append("nodeid"); break; case 29 : line.append("delta"); break; case 30 : line.append("delay"); break; case 31 : line.append("rate"); break; case 32 : line.append("frequency"); break; case 33 : line.append("coord"); break; case 34 : line.append("coords"); break; case 35 : line.append("angle"); break; case 36 : line.append("temperature"); break; case 37 : line.append("light"); break; case 38 : line.append("next"); break; case 39 : line.append("previous"); break; case 40 : line.append("start"); break; case 41 : line.append("end"); break; case 42 : line.append("speed"); break; case 43 : line.append("cpu"); break; case 44 : line.append("beacon"); break; case 45 : line.append("arrival"); break; case 46 : line.append("senddone"); break; case 47 : line.append("global"); break; case 48 : line.append("clock"); break; default: line.append("token:" + token); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -