From 4247f8a78eae19139d953aa790bcc39c7a554fb6 Mon Sep 17 00:00:00 2001 From: Timotej Ecimovic Date: Thu, 22 Jun 2023 07:07:20 -0400 Subject: [PATCH 1/3] Some cleanup. --- silabs-pti/.classpath | 12 ++- .../.settings/org.eclipse.jdt.core.prefs | 2 +- silabs-pti/VERSION | 2 +- .../silabs/pti/adapter/PtiCodecFactory.java | 15 ++-- .../silabs/pti/adapter/PtiMessageDecoder.java | 12 ++- .../pti/adapter/PtiProtocolDecoder.java | 9 +- .../pti/adapter/PtiProtocolEncoder.java | 15 ++-- .../com/silabs/pti/decode/AemDecoder.java | 22 +++-- .../java/com/silabs/pti/decode/AemField.java | 14 ++- .../java/com/silabs/pti/decode/Endianess.java | 14 ++- .../silabs/pti/decode/IAemCurrentSample.java | 14 ++- .../pti/decode/IAemCurrentSampleWindow.java | 14 ++- .../pti/decode/IAemLogicAnalyzerSample.java | 14 ++- .../decode/IAemLogicAnalyzerSampleWindow.java | 14 ++- .../silabs/pti/decode/IAemTimedSample.java | 14 ++- .../com/silabs/pti/decode/IFieldName.java | 14 ++- .../pti/decode/IFieldNameWithLength.java | 14 ++- .../silabs/pti/decode/ISparseFieldEnum.java | 14 ++- .../pti/decode/LogicAnalyzerSample.java | 14 ++- .../pti/discovery/DiscoveryProtocol.java | 14 ++- .../silabs/pti/discovery/DiscoveryUtil.java | 58 ++++++------- .../com/silabs/pti/extcap/ExtcapCapture.java | 13 +++ .../pti/filter/CliDebugMessageFilter.java | 86 +++++++++++-------- .../pti/filter/IDebugMessageFilter.java | 14 ++- 24 files changed, 323 insertions(+), 105 deletions(-) diff --git a/silabs-pti/.classpath b/silabs-pti/.classpath index ca589ea..55dd540 100644 --- a/silabs-pti/.classpath +++ b/silabs-pti/.classpath @@ -14,20 +14,24 @@ + - + - - - + + + + + + diff --git a/silabs-pti/.settings/org.eclipse.jdt.core.prefs b/silabs-pti/.settings/org.eclipse.jdt.core.prefs index 6e78187..0757438 100644 --- a/silabs-pti/.settings/org.eclipse.jdt.core.prefs +++ b/silabs-pti/.settings/org.eclipse.jdt.core.prefs @@ -114,7 +114,7 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.release=enabled org.eclipse.jdt.core.compiler.source=11 org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 diff --git a/silabs-pti/VERSION b/silabs-pti/VERSION index f8f4f03..6b89d58 100644 --- a/silabs-pti/VERSION +++ b/silabs-pti/VERSION @@ -1 +1 @@ -1.12.1 +1.12.2 diff --git a/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiCodecFactory.java b/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiCodecFactory.java index 5924bf5..1943f47 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiCodecFactory.java +++ b/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiCodecFactory.java @@ -20,23 +20,28 @@ import org.apache.mina.filter.codec.ProtocolEncoder; import org.apache.mina.filter.codec.demux.DemuxingProtocolCodecFactory; +/** + * Various classes for apache mina connectivity. + * + * @author Jing + */ public class PtiCodecFactory extends DemuxingProtocolCodecFactory { - private ProtocolDecoder decoder; - private ProtocolEncoder encoder; + private final ProtocolDecoder decoder; + private final ProtocolEncoder encoder; - public PtiCodecFactory(Charset charset) { + public PtiCodecFactory(final Charset charset) { decoder = new PtiProtocolDecoder(); encoder = new PtiProtocolEncoder(charset); } @Override - public ProtocolEncoder getEncoder(IoSession ioSession) throws Exception { + public ProtocolEncoder getEncoder(final IoSession ioSession) throws Exception { return encoder; } @Override - public ProtocolDecoder getDecoder(IoSession ioSession) throws Exception { + public ProtocolDecoder getDecoder(final IoSession ioSession) throws Exception { return decoder; } } diff --git a/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiMessageDecoder.java b/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiMessageDecoder.java index a07ca9e..aa16d54 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiMessageDecoder.java +++ b/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiMessageDecoder.java @@ -19,16 +19,22 @@ import org.apache.mina.filter.codec.demux.MessageDecoderAdapter; import org.apache.mina.filter.codec.demux.MessageDecoderResult; +/** + * Various classes for apache mina connectivity. + * + * @author Jing + */ public class PtiMessageDecoder extends MessageDecoderAdapter { @Override - public MessageDecoderResult decodable(IoSession session, IoBuffer in) { + public MessageDecoderResult decodable(final IoSession session, final IoBuffer in) { return MessageDecoderResult.OK; } @Override - public MessageDecoderResult decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception { - byte[] array = new byte[in.remaining()]; + public MessageDecoderResult + decode(final IoSession session, final IoBuffer in, final ProtocolDecoderOutput out) throws Exception { + final byte[] array = new byte[in.remaining()]; in.get(array); out.write(array); return MessageDecoderResult.OK; diff --git a/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiProtocolDecoder.java b/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiProtocolDecoder.java index 64b0ee4..35bf6b7 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiProtocolDecoder.java +++ b/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiProtocolDecoder.java @@ -18,10 +18,15 @@ import org.apache.mina.filter.codec.ProtocolDecoderAdapter; import org.apache.mina.filter.codec.ProtocolDecoderOutput; +/** + * Various classes for apache mina connectivity. + * + * @author Jing + */ public class PtiProtocolDecoder extends ProtocolDecoderAdapter { @Override - public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception { - byte[] array = new byte[in.remaining()]; + public void decode(final IoSession session, final IoBuffer in, final ProtocolDecoderOutput out) throws Exception { + final byte[] array = new byte[in.remaining()]; in.get(array); out.write(array); } diff --git a/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiProtocolEncoder.java b/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiProtocolEncoder.java index ed8774e..ef203c4 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiProtocolEncoder.java +++ b/silabs-pti/src/main/java/com/silabs/pti/adapter/PtiProtocolEncoder.java @@ -21,18 +21,23 @@ import org.apache.mina.filter.codec.ProtocolEncoderAdapter; import org.apache.mina.filter.codec.ProtocolEncoderOutput; +/** + * Various classes for apache mina connectivity. + * + * @author Jing + */ public class PtiProtocolEncoder extends ProtocolEncoderAdapter { private final Charset charset; - public PtiProtocolEncoder(Charset charset) { + public PtiProtocolEncoder(final Charset charset) { this.charset = charset; } @Override - public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception { - CharsetEncoder encoder = charset.newEncoder(); - String value = message == null ? "" : message.toString(); - IoBuffer buf = IoBuffer.allocate(value.length()).setAutoExpand(true); + public void encode(final IoSession session, final Object message, final ProtocolEncoderOutput out) throws Exception { + final CharsetEncoder encoder = charset.newEncoder(); + final String value = message == null ? "" : message.toString(); + final IoBuffer buf = IoBuffer.allocate(value.length()).setAutoExpand(true); buf.putString(value, encoder); buf.flip(); out.write(buf); diff --git a/silabs-pti/src/main/java/com/silabs/pti/decode/AemDecoder.java b/silabs-pti/src/main/java/com/silabs/pti/decode/AemDecoder.java index 68ff992..041f8b3 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/decode/AemDecoder.java +++ b/silabs-pti/src/main/java/com/silabs/pti/decode/AemDecoder.java @@ -1,4 +1,16 @@ -// Copyright (c) 2021 Silicon Labs. All rights reserved. +/******************************************************************************* + * # License + * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.decode; @@ -27,14 +39,14 @@ public AemDecoder(final long time, final byte[] contents) { // Little endian int decoding. private int decode(final int length) { final int offset = index; - int val = ByteArrayUtil.byteArrayToInt(contents, offset, length, false); + final int val = ByteArrayUtil.byteArrayToInt(contents, offset, length, false); index += length; return val; } // Little endian float decoding. private float decodeFloat(final int length) { - float val = MiscUtil.byteArrayToFloat(contents, index, length, false).floatValue(); + final float val = MiscUtil.byteArrayToFloat(contents, index, length, false).floatValue(); index += length; return val; } @@ -60,10 +72,10 @@ private AemSample firstSample() { } private AemSample subsequentSample() { - long sampleT = time + (1000000 * sampleCount) / sampleRate; + final long sampleT = time + (1000000 * sampleCount) / sampleRate; if (notEnoughBytesLeft(AemField.current.length())) return null; - float current = decodeFloat(AemField.current.length()); + final float current = decodeFloat(AemField.current.length()); sampleCount++; return new AemSample(sampleT, current, voltage); } diff --git a/silabs-pti/src/main/java/com/silabs/pti/decode/AemField.java b/silabs-pti/src/main/java/com/silabs/pti/decode/AemField.java index 7f3ccb6..aa52a5c 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/decode/AemField.java +++ b/silabs-pti/src/main/java/com/silabs/pti/decode/AemField.java @@ -1,4 +1,16 @@ -// Copyright (c) 2021 Silicon Labs. All rights reserved. +/******************************************************************************* + * # License + * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.decode; diff --git a/silabs-pti/src/main/java/com/silabs/pti/decode/Endianess.java b/silabs-pti/src/main/java/com/silabs/pti/decode/Endianess.java index b0c1c0e..b8218ec 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/decode/Endianess.java +++ b/silabs-pti/src/main/java/com/silabs/pti/decode/Endianess.java @@ -1,4 +1,16 @@ -// Copyright (c) 2016 Silicon Labs. All rights reserved. +/******************************************************************************* + * # License + * Copyright 2016 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.decode; diff --git a/silabs-pti/src/main/java/com/silabs/pti/decode/IAemCurrentSample.java b/silabs-pti/src/main/java/com/silabs/pti/decode/IAemCurrentSample.java index 9a5e8c8..9b2baec 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/decode/IAemCurrentSample.java +++ b/silabs-pti/src/main/java/com/silabs/pti/decode/IAemCurrentSample.java @@ -1,4 +1,16 @@ -// Copyright (c) 2022 Silicon Labs. All rights reserved. +/******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.decode; diff --git a/silabs-pti/src/main/java/com/silabs/pti/decode/IAemCurrentSampleWindow.java b/silabs-pti/src/main/java/com/silabs/pti/decode/IAemCurrentSampleWindow.java index d8c6e89..8d2cb5e 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/decode/IAemCurrentSampleWindow.java +++ b/silabs-pti/src/main/java/com/silabs/pti/decode/IAemCurrentSampleWindow.java @@ -1,4 +1,16 @@ -// Copyright (c) 2017 Silicon Labs. All rights reserved. +/******************************************************************************* + * # License + * Copyright 2017 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.decode; diff --git a/silabs-pti/src/main/java/com/silabs/pti/decode/IAemLogicAnalyzerSample.java b/silabs-pti/src/main/java/com/silabs/pti/decode/IAemLogicAnalyzerSample.java index 8f8b86d..c57a75e 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/decode/IAemLogicAnalyzerSample.java +++ b/silabs-pti/src/main/java/com/silabs/pti/decode/IAemLogicAnalyzerSample.java @@ -1,4 +1,16 @@ -// Copyright (c) 2022 Silicon Labs. All rights reserved. +/******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.decode; diff --git a/silabs-pti/src/main/java/com/silabs/pti/decode/IAemLogicAnalyzerSampleWindow.java b/silabs-pti/src/main/java/com/silabs/pti/decode/IAemLogicAnalyzerSampleWindow.java index 88411ad..11e8349 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/decode/IAemLogicAnalyzerSampleWindow.java +++ b/silabs-pti/src/main/java/com/silabs/pti/decode/IAemLogicAnalyzerSampleWindow.java @@ -1,4 +1,16 @@ -// Copyright (c) 2022 Silicon Labs. All rights reserved. +/******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.decode; diff --git a/silabs-pti/src/main/java/com/silabs/pti/decode/IAemTimedSample.java b/silabs-pti/src/main/java/com/silabs/pti/decode/IAemTimedSample.java index 2703f37..ba28fc6 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/decode/IAemTimedSample.java +++ b/silabs-pti/src/main/java/com/silabs/pti/decode/IAemTimedSample.java @@ -1,4 +1,16 @@ -// Copyright (c) 2022 Silicon Labs. All rights reserved. +/******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.decode; diff --git a/silabs-pti/src/main/java/com/silabs/pti/decode/IFieldName.java b/silabs-pti/src/main/java/com/silabs/pti/decode/IFieldName.java index be7b6b5..40953ac 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/decode/IFieldName.java +++ b/silabs-pti/src/main/java/com/silabs/pti/decode/IFieldName.java @@ -1,4 +1,16 @@ -// Copyright (c) 2011 Ember Corporation. All rights reserved. +/******************************************************************************* + * # License + * Copyright 2011 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.decode; diff --git a/silabs-pti/src/main/java/com/silabs/pti/decode/IFieldNameWithLength.java b/silabs-pti/src/main/java/com/silabs/pti/decode/IFieldNameWithLength.java index 681d3c0..29523f6 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/decode/IFieldNameWithLength.java +++ b/silabs-pti/src/main/java/com/silabs/pti/decode/IFieldNameWithLength.java @@ -1,4 +1,16 @@ -// Copyright (c) 2021 Silicon Labs. All rights reserved. +/******************************************************************************* + * # License + * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.decode; diff --git a/silabs-pti/src/main/java/com/silabs/pti/decode/ISparseFieldEnum.java b/silabs-pti/src/main/java/com/silabs/pti/decode/ISparseFieldEnum.java index 596bdc0..118931f 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/decode/ISparseFieldEnum.java +++ b/silabs-pti/src/main/java/com/silabs/pti/decode/ISparseFieldEnum.java @@ -1,4 +1,16 @@ -// Copyright (c) 2012 Silicon Labs. All rights reserved. +/******************************************************************************* + * # License + * Copyright 2012 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.decode; diff --git a/silabs-pti/src/main/java/com/silabs/pti/decode/LogicAnalyzerSample.java b/silabs-pti/src/main/java/com/silabs/pti/decode/LogicAnalyzerSample.java index 546f360..765360f 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/decode/LogicAnalyzerSample.java +++ b/silabs-pti/src/main/java/com/silabs/pti/decode/LogicAnalyzerSample.java @@ -1,4 +1,16 @@ -// Copyright (c) 2022 Silicon Labs. All rights reserved. +/******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.decode; diff --git a/silabs-pti/src/main/java/com/silabs/pti/discovery/DiscoveryProtocol.java b/silabs-pti/src/main/java/com/silabs/pti/discovery/DiscoveryProtocol.java index 7f103ca..4954613 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/discovery/DiscoveryProtocol.java +++ b/silabs-pti/src/main/java/com/silabs/pti/discovery/DiscoveryProtocol.java @@ -1,4 +1,16 @@ -// Copyright 2015 Silicon Laboratories, Inc. +/******************************************************************************* + * # License + * Copyright 2015 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.discovery; diff --git a/silabs-pti/src/main/java/com/silabs/pti/discovery/DiscoveryUtil.java b/silabs-pti/src/main/java/com/silabs/pti/discovery/DiscoveryUtil.java index 9057e4d..51adb5c 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/discovery/DiscoveryUtil.java +++ b/silabs-pti/src/main/java/com/silabs/pti/discovery/DiscoveryUtil.java @@ -42,7 +42,7 @@ public static int runDiscovery(final IDiscoveryListener listener) { try { discover(500, listener); return 0; - } catch (Exception e) { + } catch (final Exception e) { e.printStackTrace(); return 1; } @@ -51,22 +51,22 @@ public static int runDiscovery(final IDiscoveryListener listener) { private static void discoverIndividualAddress(final InetAddress localAddress, final int durationMs, final IDiscoveryListener listener) { - String log = localAddress.getHostName(); + final String log = localAddress.getHostName(); try (DatagramSocket socket = new DatagramSocket(0, localAddress)) { socket.setSoTimeout(durationMs / 10); - DatagramPacket dp = new DatagramPacket(DiscoveryProtocol.DISCOVERY_MESSAGE, - DiscoveryProtocol.DISCOVERY_MESSAGE.length); + final DatagramPacket dp = new DatagramPacket(DiscoveryProtocol.DISCOVERY_MESSAGE, + DiscoveryProtocol.DISCOVERY_MESSAGE.length); dp.setAddress(InetAddress.getByAddress(broadcast)); - dp.setPort(4920); + dp.setPort(DiscoveryProtocol.UDP_PORT); try { socket.send(dp); - } catch (Exception e) { + } catch (final Exception e) { System.err.println(log + ": failed to send discovery packet."); return; } - byte[] inBuff = new byte[DiscoveryProtocol.RECEIVE_LENGTH]; - DatagramPacket incoming = new DatagramPacket(inBuff, inBuff.length); + final byte[] inBuff = new byte[DiscoveryProtocol.RECEIVE_LENGTH]; + final DatagramPacket incoming = new DatagramPacket(inBuff, inBuff.length); incoming.setPort(DiscoveryProtocol.UDP_PORT); long lastDiscoverTime = System.currentTimeMillis(); do { @@ -74,11 +74,11 @@ private static void discoverIndividualAddress(final InetAddress localAddress, socket.receive(incoming); lastDiscoverTime = System.currentTimeMillis(); listener.discovered(incoming); - } catch (SocketTimeoutException ste) { + } catch (final SocketTimeoutException ste) { // Not a big deal. Keep going. } } while (System.currentTimeMillis() - lastDiscoverTime < durationMs); - } catch (Exception e) { + } catch (final Exception e) { System.err.println(log + ": discovery failed."); e.printStackTrace(); } @@ -91,7 +91,7 @@ private static void discoverIndividualAddress(final InetAddress localAddress, * @param packet * @return map of discovery keys. */ - public static Map parseDiscoveryMap(DatagramPacket packet) { + public static Map parseDiscoveryMap(final DatagramPacket packet) { return parseDiscoveryMap(new String(packet.getData())); } @@ -102,31 +102,31 @@ public static Map parseDiscoveryMap(DatagramPacket packet) * @return map of discovery keys */ public static Map parseDiscoveryMap(final String info) { - Map map = new LinkedHashMap<>(); - String[] tokens = info.split("\\n"); + final Map map = new LinkedHashMap<>(); + final String[] tokens = info.split("\\n"); outer: for (String token : tokens) { token = token.trim(); - String[] subToks = token.split("="); + final String[] subToks = token.split("="); if (subToks.length != 2) continue; // ignore values that aren't set if (subToks[1].equals("NotSet")) continue; if (subToks[0].equals(DiscoveryKey.CONNECTION_TIME.key())) { - String[] timeToken = subToks[1].split(":"); + final String[] timeToken = subToks[1].split(":"); try { - int day = Integer.parseInt(timeToken[0]); - int hour = Integer.parseInt(timeToken[1]); - int minute = Integer.parseInt(timeToken[2]); - int second = Integer.parseInt(timeToken[3]); - long timePassed = ((((((day * 24) + hour) * 60) + minute) * 60) + second) * 1000; - Date connectTime = new Date((new Date()).getTime() - timePassed); + final int day = Integer.parseInt(timeToken[0]); + final int hour = Integer.parseInt(timeToken[1]); + final int minute = Integer.parseInt(timeToken[2]); + final int second = Integer.parseInt(timeToken[3]); + final long timePassed = ((((((day * 24) + hour) * 60) + minute) * 60) + second) * 1000; + final Date connectTime = new Date((new Date()).getTime() - timePassed); map.put(DiscoveryKey.CONNECTION_TIME, connectTime.toString()); - } catch (Exception e) { + } catch (final Exception e) { // Ignore bogus connection times. } } else { - for (DiscoveryKey t : DiscoveryKey.values()) { + for (final DiscoveryKey t : DiscoveryKey.values()) { if (t.key().equals(subToks[0])) { map.put(t, subToks[1]); continue outer; @@ -139,15 +139,15 @@ public static Map parseDiscoveryMap(final String info) { } private static void discover(final int durationMs, final IDiscoveryListener listener) throws Exception { - List threads = new ArrayList<>(); - List allLocalAddresses = MiscUtil.getIpAddresses(); - for (InetAddress localAddress : allLocalAddresses) { - Runnable r = () -> discoverIndividualAddress(localAddress, durationMs, listener); + final List threads = new ArrayList<>(); + final List allLocalAddresses = MiscUtil.getIpAddresses(); + for (final InetAddress localAddress : allLocalAddresses) { + final Runnable r = () -> discoverIndividualAddress(localAddress, durationMs, listener); threads.add(new Thread(r)); } - for (Thread t : threads) + for (final Thread t : threads) t.start(); - for (Thread t : threads) + for (final Thread t : threads) t.join(); } diff --git a/silabs-pti/src/main/java/com/silabs/pti/extcap/ExtcapCapture.java b/silabs-pti/src/main/java/com/silabs/pti/extcap/ExtcapCapture.java index b7e7063..810fc17 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/extcap/ExtcapCapture.java +++ b/silabs-pti/src/main/java/com/silabs/pti/extcap/ExtcapCapture.java @@ -1,3 +1,16 @@ +/******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.extcap; import java.io.File; diff --git a/silabs-pti/src/main/java/com/silabs/pti/filter/CliDebugMessageFilter.java b/silabs-pti/src/main/java/com/silabs/pti/filter/CliDebugMessageFilter.java index f15066a..0ffd24a 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/filter/CliDebugMessageFilter.java +++ b/silabs-pti/src/main/java/com/silabs/pti/filter/CliDebugMessageFilter.java @@ -1,4 +1,16 @@ -// Copyright (c) 2022 Silicon Labs. All rights reserved. +/******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.filter; @@ -59,7 +71,7 @@ public boolean isMessageKept(final DebugMessage message) { } public static String helpText() { - StringBuilder sb = new StringBuilder(); + final StringBuilder sb = new StringBuilder(); sb.append(" " + FilterExpression.TYPE_IN.functionName() + "(x,y,z,...) - type matches one of the values specified as numbers or text\n"); sb.append(" " + FilterExpression.ORIGINATOR_IN.functionName() @@ -84,7 +96,7 @@ enum FilterExpression { private String fnName; - private FilterExpression(String name) { + private FilterExpression(final String name) { this.fnName = name; } @@ -92,8 +104,8 @@ private FilterExpression(String name) { * Given an expression, return the appropriate FilterExpression, or null if it * doesn't match. */ - public static FilterExpression locate(String expression) { - for (FilterExpression fe : FilterExpression.values()) { + public static FilterExpression locate(final String expression) { + for (final FilterExpression fe : FilterExpression.values()) { if (expression.startsWith(fe.functionName() + "(") && expression.endsWith(")")) { return fe; } @@ -101,8 +113,8 @@ public static FilterExpression locate(String expression) { return null; } - public IDebugMessageFilter createExpression(String expression) throws ParseException { - String parenthesesContent = expression.substring(fnName.length() + 1, expression.length() - 1); + public IDebugMessageFilter createExpression(final String expression) throws ParseException { + final String parenthesesContent = expression.substring(fnName.length() + 1, expression.length() - 1); IDebugMessageFilter dms = IDebugMessageFilter.NO_PASS_FILTER; switch (this) { case TYPE_IN: @@ -132,24 +144,24 @@ public String functionName() { class WithinFilter implements IDebugMessageFilter { public static final int SIZE = 0; public static final int TIME = 1; - private int mode; + private final int mode; private long lowerBound, upperBound; - WithinFilter(int mode, String values) throws ParseException { + WithinFilter(final int mode, final String values) throws ParseException { this.mode = mode; - String[] s = values.split(Pattern.quote(",")); + final String[] s = values.split(Pattern.quote(",")); if (s.length != 2) throw new ParseException("Two values required: " + values, 0); try { lowerBound = Long.parseLong(s[0]); upperBound = Long.parseLong(s[1]); - } catch (NumberFormatException nfe) { + } catch (final NumberFormatException nfe) { throw new ParseException("Not a number: " + values, 0); } } @Override - public boolean isMessageKept(DebugMessage message) { + public boolean isMessageKept(final DebugMessage message) { switch (mode) { case SIZE: return (message.contentLength() >= lowerBound && message.contentLength() <= upperBound); @@ -162,43 +174,43 @@ public boolean isMessageKept(DebugMessage message) { } class ContainsFilter implements IDebugMessageFilter { - private String pattern; + private final String pattern; - public ContainsFilter(String pattern) { + public ContainsFilter(final String pattern) { this.pattern = pattern; } @Override - public boolean isMessageKept(DebugMessage message) { - String s = new String(message.contents()); + public boolean isMessageKept(final DebugMessage message) { + final String s = new String(message.contents()); return s.contains(pattern); } } class TypeInFilter implements IDebugMessageFilter { - private List ints = new ArrayList<>(); - private List names = new ArrayList<>(); + private final List ints = new ArrayList<>(); + private final List names = new ArrayList<>(); - TypeInFilter(String types) { + TypeInFilter(final String types) { for (String s : types.split(Pattern.quote(","))) { s = s.toLowerCase(); try { ints.add(MiscUtil.parseInt(s)); - } catch (NumberFormatException e) { + } catch (final NumberFormatException e) { names.add(s); } } } @Override - public boolean isMessageKept(DebugMessage message) { - int dt = message.debugType(); - for (Integer i : ints) { + public boolean isMessageKept(final DebugMessage message) { + final int dt = message.debugType(); + for (final Integer i : ints) { if (dt == i) return true; } - DebugMessageType dmt = DebugMessageType.get(dt); - for (String s : names) { + final DebugMessageType dmt = DebugMessageType.get(dt); + for (final String s : names) { if (dmt.description().toLowerCase().equals(s)) return true; } @@ -207,16 +219,16 @@ public boolean isMessageKept(DebugMessage message) { } class OriginatorInFilter implements IDebugMessageFilter { - private String[] originators; + private final String[] originators; - OriginatorInFilter(String origs) { + OriginatorInFilter(final String origs) { originators = origs.split(Pattern.quote(",")); } @Override - public boolean isMessageKept(DebugMessage message) { - String orig = message.originatorId(); - for (String s : originators) { + public boolean isMessageKept(final DebugMessage message) { + final String orig = message.originatorId(); + for (final String s : originators) { if (s.equals(orig)) return true; } @@ -238,7 +250,7 @@ class DebugMessageFilterExpression implements IDebugMessageFilter { public DebugMessageFilterExpression(final int op, final String expression) throws ParseException { this.operator = op; - String exp = expression.strip(); + final String exp = expression.strip(); if (exp.startsWith("!")) { this.negated = true; parseExpression(exp.substring(1).strip()); @@ -248,7 +260,7 @@ public DebugMessageFilterExpression(final int op, final String expression) throw } } - private void parseExpression(String expression) throws ParseException { + private void parseExpression(final String expression) throws ParseException { FilterExpression fexp = null; if ("true".equals(expression)) { expressionFilter = IDebugMessageFilter.ALL_PASS_FILTER; @@ -262,7 +274,7 @@ private void parseExpression(String expression) throws ParseException { } @Override - public boolean isMessageKept(DebugMessage message) { + public boolean isMessageKept(final DebugMessage message) { boolean evaluatedExpression = expressionFilter.isMessageKept(message); if (negated) { evaluatedExpression = !evaluatedExpression; @@ -283,8 +295,8 @@ public int operator() { return operator; } - public void and(String expression) throws ParseException { - DebugMessageFilterExpression dmf = new DebugMessageFilterExpression(AND, expression); + public void and(final String expression) throws ParseException { + final DebugMessageFilterExpression dmf = new DebugMessageFilterExpression(AND, expression); if (next == null) { next = dmf; } else { @@ -295,8 +307,8 @@ public void and(String expression) throws ParseException { } } - public void or(String expression) throws ParseException { - DebugMessageFilterExpression dmf = new DebugMessageFilterExpression(OR, expression); + public void or(final String expression) throws ParseException { + final DebugMessageFilterExpression dmf = new DebugMessageFilterExpression(OR, expression); if (next == null) { next = dmf; } else { diff --git a/silabs-pti/src/main/java/com/silabs/pti/filter/IDebugMessageFilter.java b/silabs-pti/src/main/java/com/silabs/pti/filter/IDebugMessageFilter.java index 9ccd2c4..b43c52c 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/filter/IDebugMessageFilter.java +++ b/silabs-pti/src/main/java/com/silabs/pti/filter/IDebugMessageFilter.java @@ -1,4 +1,16 @@ -// Copyright (c) 2022 Silicon Labs. All rights reserved. +/******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ package com.silabs.pti.filter; From 6b466a491a8c9d0f05bc5e4ee01cfb8c4baf1043 Mon Sep 17 00:00:00 2001 From: Timotej Ecimovic Date: Thu, 22 Jun 2023 07:23:04 -0400 Subject: [PATCH 2/3] More cleanup. --- silabs-pti/.classpath | 45 +++++++++++-------- .../main/java/com/silabs/pti/Interactive.java | 10 ++--- .../pti/adapter/BufferedNioConnection.java | 21 +++++---- .../pti/debugchannel/DebugMessageType.java | 14 +++--- .../silabs/pti/debugchannel/EventType.java | 30 ++++++++----- 5 files changed, 68 insertions(+), 52 deletions(-) diff --git a/silabs-pti/.classpath b/silabs-pti/.classpath index 55dd540..0b5439f 100644 --- a/silabs-pti/.classpath +++ b/silabs-pti/.classpath @@ -1,37 +1,44 @@ - + - - + + - + - - + + - + - - - + + + - + - - - + + + - - + + - + - - + + diff --git a/silabs-pti/src/main/java/com/silabs/pti/Interactive.java b/silabs-pti/src/main/java/com/silabs/pti/Interactive.java index 460da36..8444b21 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/Interactive.java +++ b/silabs-pti/src/main/java/com/silabs/pti/Interactive.java @@ -177,7 +177,7 @@ public boolean quit() { public void version() { try { System.out.println(CommandLine.getVersionString()); - } catch (Exception e) { + } catch (final Exception e) { System.out.println(e.getMessage()); } } @@ -193,9 +193,9 @@ public void filter(final String... args) { System.out.println("Valid expressions:\n" + CliDebugMessageFilter.helpText()); } else { try { - CliDebugMessageFilter cf = new CliDebugMessageFilter(args[0]); + final CliDebugMessageFilter cf = new CliDebugMessageFilter(args[0]); this.filter = cf; - } catch (ParseException pe) { + } catch (final ParseException pe) { System.out.println("Filter expression error: " + pe.getMessage()); } } @@ -208,7 +208,7 @@ public void andFilter(final String... args) { } else { try { this.filter.andFilter(args[0]); - } catch (ParseException pe) { + } catch (final ParseException pe) { System.out.println("Filter expression error: " + pe.getMessage()); } } @@ -221,7 +221,7 @@ public void orFilter(final String... args) { } else { try { this.filter.orFilter(args[0]); - } catch (ParseException pe) { + } catch (final ParseException pe) { System.out.println("Filter expression error: " + pe.getMessage()); } } diff --git a/silabs-pti/src/main/java/com/silabs/pti/adapter/BufferedNioConnection.java b/silabs-pti/src/main/java/com/silabs/pti/adapter/BufferedNioConnection.java index b48ca9b..9085860 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/adapter/BufferedNioConnection.java +++ b/silabs-pti/src/main/java/com/silabs/pti/adapter/BufferedNioConnection.java @@ -43,12 +43,11 @@ public BufferedNioConnection(final String host, final int port, final IConnectiv super(host, port, logger); } - @SuppressWarnings("resource") @Override public void connect() throws IOException { if (isConnected()) return; - InetSocketAddress address = new InetSocketAddress(host, port); + final InetSocketAddress address = new InetSocketAddress(host, port); if (connectionEnabler != null) connectionEnabler.prepareConnection(host + ":" + port); channel = SocketChannel.open(address); @@ -58,30 +57,30 @@ public void connect() throws IOException { @Override public void run() { logInfo("Reading thread start."); - ByteBuffer buffer = ByteBuffer.allocate(100000); + final ByteBuffer buffer = ByteBuffer.allocate(100000); readLoop: while (true) { try { - int ret = selector.select(); + final int ret = selector.select(); if (ret > 0) { if (selector.selectedKeys().contains(readKey)) { // We can read: buffer.rewind(); - int readCount = channel.read(buffer); - long readTime = System.currentTimeMillis(); + final int readCount = channel.read(buffer); + final long readTime = System.currentTimeMillis(); if (readCount == -1) { // End of stream break readLoop; } else if (readCount > 0) { - byte[] data = new byte[readCount]; + final byte[] data = new byte[readCount]; buffer.rewind(); buffer.get(data); processIncomingData(readTime, readCount, data); } } } - } catch (ClosedSelectorException cse) { + } catch (final ClosedSelectorException cse) { break readLoop; - } catch (IOException ioe) { + } catch (final IOException ioe) { reportProblem("Error reading data", ioe); logError("Reading thread error.", ioe); } @@ -103,7 +102,7 @@ public void close() { logInfo("Disconnect."); channel.close(); selector.close(); - } catch (IOException ioe) { + } catch (final IOException ioe) { reportProblem("Close socket.", ioe); logError("Disconnect error.", ioe); } @@ -118,7 +117,7 @@ public void send(final byte[] message) throws IOException { logError("Attempting to write, but socket is not connected.", null); return; } - byte[] outgoing = (frameOutgoing ? outgoingFramer.frame(message) : message); + final byte[] outgoing = (frameOutgoing ? outgoingFramer.frame(message) : message); logInfo("Write " + outgoing.length + " bytes."); channel.write(ByteBuffer.wrap(outgoing)); diff --git a/silabs-pti/src/main/java/com/silabs/pti/debugchannel/DebugMessageType.java b/silabs-pti/src/main/java/com/silabs/pti/debugchannel/DebugMessageType.java index d471845..a60df59 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/debugchannel/DebugMessageType.java +++ b/silabs-pti/src/main/java/com/silabs/pti/debugchannel/DebugMessageType.java @@ -11,10 +11,8 @@ * sections of the MSLA applicable to Source Code. * ******************************************************************************/ - - -// !!!! This file is generated via 'gradle createDebugMessageTypes' command. Please do not edit manually!!!!! +// !!!! This file is generated via 'gradle createDebugMessageTypes' command. Please do not edit manually!!!!! package com.silabs.pti.debugchannel; @@ -142,10 +140,14 @@ public static DebugMessageType get(final int value) { } } return DebugMessageType.INVALID; - } + } - public static int featureLevel() { return 22; } + public static int featureLevel() { + return 22; + } - public static String featureDate() { return "2022.1.8"; } + public static String featureDate() { + return "2022.1.8"; + } } \ No newline at end of file diff --git a/silabs-pti/src/main/java/com/silabs/pti/debugchannel/EventType.java b/silabs-pti/src/main/java/com/silabs/pti/debugchannel/EventType.java index 4563f04..d36d60f 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/debugchannel/EventType.java +++ b/silabs-pti/src/main/java/com/silabs/pti/debugchannel/EventType.java @@ -95,9 +95,9 @@ public static final EventType fromDebugMessage(final DebugMessageType t) { EventType et = debugMessageEventTypes[t.ordinal()]; if (et == null) { int mask = 0; - if (t.name().startsWith("PACKET")) + if (isPacket(t)) mask = MASK_PACKET; - else if (t.name().startsWith("AEM")) + else if (isAem(t)) mask = MASK_AEM; String name = t.description(); if (name.length() > MAX_NAME_LENGTH) @@ -108,8 +108,16 @@ else if (t.name().startsWith("AEM")) return et; } + private static boolean isAem(final DebugMessageType t) { + return t.name().startsWith("AEM"); + } + + private static boolean isPacket(final DebugMessageType t) { + return t.name().startsWith("PACKET"); + } + static { - for (DebugMessageType dmt : DebugMessageType.values()) { + for (final DebugMessageType dmt : DebugMessageType.values()) { if (dmt == DebugMessageType.INVALID) continue; fromDebugMessage(dmt); @@ -530,8 +538,8 @@ private static EventType mkGrp(final int mask, final String name, final String d // Retrieves or creates the event type private static EventType make(final int mask, final byte category, final short subtype, final String name, final String description) { - int value = makeValue(mask, category, subtype); - String key = "" + value; + final int value = makeValue(mask, category, subtype); + final String key = "" + value; EventType eventType = storage.get(key); if (eventType != null) throw new IllegalArgumentException("Duplicate event type: " + name + "(" + mask + "/" + category + "/" + subtype @@ -573,7 +581,7 @@ public static final EventType[] getGroups() { * Returns all the event types. This is used by filters. */ public static final EventType[] getAllTypes() { - EventType[] array = storage.values().toArray(new EventType[0]); + final EventType[] array = storage.values().toArray(new EventType[0]); Arrays.sort(array); return array; } @@ -739,8 +747,8 @@ public short subtype() { // Internal method that constructs the value from individual elements private static int makeValue(final int mask, final byte category, final short subtype) { - int st = (0x0000FFFF & subtype); - int ct = (0x000000FF & category) << 16; + final int st = (0x0000FFFF & subtype); + final int ct = (0x000000FF & category) << 16; return ct | st | mask; } @@ -750,7 +758,7 @@ private static int makeValue(final int mask, final byte category, final short su * @return EventType */ public static final EventType findByName(final String name) { - for (EventType et : getAllTypes()) { + for (final EventType et : getAllTypes()) { if (et.name().equalsIgnoreCase(name)) return et; } @@ -760,7 +768,7 @@ public static final EventType findByName(final String name) { // Sorts according to name @Override public int compareTo(final EventType o) { - EventType et = o; + final EventType et = o; return name.compareTo(et.name); } @@ -785,7 +793,7 @@ public boolean equals(final Object obj) { return false; if (getClass() != obj.getClass()) return false; - EventType other = (EventType) obj; + final EventType other = (EventType) obj; return (value == other.value); } } From b818fec145df775dac719558814441f8ca2f1e0a Mon Sep 17 00:00:00 2001 From: Timotej Ecimovic Date: Wed, 27 Dec 2023 09:01:07 -0400 Subject: [PATCH 3/3] Add eventTypes interactive command. --- silabs-pti/.project | 11 +++++++++++ .../main/java/com/silabs/pti/Interactive.java | 16 ++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/silabs-pti/.project b/silabs-pti/.project index c6dba5f..cb62d34 100644 --- a/silabs-pti/.project +++ b/silabs-pti/.project @@ -20,4 +20,15 @@ org.eclipse.jdt.core.javanature org.eclipse.buildship.core.gradleprojectnature + + + 1703680810725 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/silabs-pti/src/main/java/com/silabs/pti/Interactive.java b/silabs-pti/src/main/java/com/silabs/pti/Interactive.java index 8444b21..636fe57 100644 --- a/silabs-pti/src/main/java/com/silabs/pti/Interactive.java +++ b/silabs-pti/src/main/java/com/silabs/pti/Interactive.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Comparator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -40,6 +41,7 @@ import com.silabs.pti.adapter.IFramer; import com.silabs.pti.adapter.TimeSynchronizer; import com.silabs.pti.debugchannel.DebugMessageConnectionListener; +import com.silabs.pti.debugchannel.EventType; import com.silabs.pti.debugchannel.TextConnectionListener; import com.silabs.pti.filter.CliDebugMessageFilter; import com.silabs.pti.format.FileFormat; @@ -500,4 +502,18 @@ public void format(final String... s) { System.out.println("Current format: " + formatType.name()); } + @Cli(help = "Print all event type") + public void eventTypes(final String... s) { + EventType[] types = EventType.getAllTypes(); + Arrays.sort(types, 0, types.length, new Comparator() { + @Override + public int compare(EventType o1, EventType o2) { + return o1.value() - o2.value(); + } + }); + for (EventType e : types) { + System.out.println("0x" + Integer.toHexString(e.value()) + " / " + e.value() + ": '" + e.name() + "', " + + e.description()); + } + } }