private void ReceivedNewPacket() {
    byte[] msgBytes = new byte[m_receivedBytes.size()];
    for (int i = 0; i < m_receivedBytes.size(); i++) {
      msgBytes[i] = m_receivedBytes.get(i);
    }

    m_receivedBytes.clear();

    // only create and transmit the message if it is valid
    if (isPacketValid(msgBytes)) {
      synchronized (m_RXguard) {
        LIMessage msg = LIMessage.setEncodedMsg(msgBytes);
        m_messageListener.receivedNewMessage(msg);
      }
    } else {
      System.out.println("Invalid Packet:" + new String(msgBytes));
    }
  }