diff --git a/tools/cooja/java/se/sics/cooja/plugins/RadioLogger.java b/tools/cooja/java/se/sics/cooja/plugins/RadioLogger.java index 3809be44d..3cf5a1b58 100644 --- a/tools/cooja/java/se/sics/cooja/plugins/RadioLogger.java +++ b/tools/cooja/java/se/sics/cooja/plugins/RadioLogger.java @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: RadioLogger.java,v 1.17 2009/04/20 17:24:03 nifi Exp $ + * $Id: RadioLogger.java,v 1.18 2009/05/20 12:02:06 fros4943 Exp $ */ package se.sics.cooja.plugins; @@ -227,7 +227,9 @@ public class RadioLogger extends VisPlugin { private void prepareDataString(RadioConnectionLog conn) { byte[] data; - if (conn.packet instanceof ConvertedRadioPacket) { + if (conn.packet == null) { + data = null; + } else if (conn.packet instanceof ConvertedRadioPacket) { data = ((ConvertedRadioPacket)conn.packet).getOriginalPacketData(); } else { data = conn.packet.getPacketData(); @@ -246,18 +248,32 @@ public class RadioLogger extends VisPlugin { return; } - byte[] data; - if (packet instanceof ConvertedRadioPacket) { - data = ((ConvertedRadioPacket)packet).getOriginalPacketData(); + if (packet instanceof ConvertedRadioPacket && packet.getPacketData().length > 0) { + byte[] original = ((ConvertedRadioPacket)packet).getOriginalPacketData(); + byte[] converted = ((ConvertedRadioPacket)packet).getPacketData(); + conn.tooltip = "" + + "Packet data (" + original.length + " bytes)
" + + "
" + StringUtils.hexDump(original) + "
" + + "
" + + "Cross-level packet data (" + converted.length + " bytes)
" + + "
" + StringUtils.hexDump(converted) + "
" + + "
"; + } else if (packet instanceof ConvertedRadioPacket) { + byte[] original = ((ConvertedRadioPacket)packet).getOriginalPacketData(); + conn.tooltip = "" + + "Packet data (" + original.length + " bytes)
" + + "
" + StringUtils.hexDump(original) + "
" + + "
" + + "Cross-level packet data conversion failed
" + + "
"; } else { - data = packet.getPacketData(); + byte[] data = packet.getPacketData(); + conn.tooltip = "" + + "Packet data (" + data.length + " bytes)
" + + "
" + StringUtils.hexDump(data) + "
" + + "
"; } - conn.tooltip = "Packet data (" + - data.length + - " bytes)
" +
-      StringUtils.hexDump(data) +
-      "
"; } public void closePlugin() {