@Override public void setIgnoreWrongMessageNumber(boolean ignoreWrongMessageNumber) { LOGGER.info("Set ignoreWrongMessageNumber: {}", ignoreWrongMessageNumber); getMessageReceiver().setIgnoreWrongMessageNumber(ignoreWrongMessageNumber); }
messageReceiver.addNodeListener(nodeListener); messageReceiver.addMessageListener(messageListener);
@Override public void publishResponse(ByteArrayOutputStream output) throws ProtocolException { LOGGER .info("Publish the response from the SimulationMessageReceiver to the messageReceiver: {}", ByteUtils.bytesToHex(output)); getMessageReceiver().processMessages(output); }
messageReceiver.receive(bytes);
getBidib().getMessageReceiver().addMessageListener(new DefaultMessageListener() {
@Override public void removeNodeListener(NodeListener nodeListener) { getMessageReceiver().removeNodeListener(nodeListener); }
@Override public void receive(final DataPacket packet) { // a data packet was received ... process the envelope and extract the message if (LOGGER.isTraceEnabled()) { LOGGER.trace("Received a packet from address: {}, port: {}, data: {}", packet.getAddress(), packet.getPort(), ByteUtils.bytesToHex(packet.getData())); } try { output.write(packet.getData(), 0, packet.getData().length); // forward to the MessageReceiver LOGGER.info("Forward received message to messageReceiverDelegate: {}, data: {}", messageReceiverDelegate, ByteUtils.bytesToHex(output)); messageReceiverDelegate.receive(output); } catch (Exception ex) { LOGGER.warn("Process messages failed.", ex); throw new RuntimeException(ex); } finally { output.reset(); } }
getBidib().getMessageReceiver().addMessageListener(new DefaultMessageListener() {
@Override public void receive(final DataPacket packet) { // a data packet was received ... process the envelope and extract the message if (LOGGER.isTraceEnabled()) { LOGGER.trace("Received a packet from address: {}, port: {}, data: {}", packet.getAddress(), packet.getPort(), ByteUtils.bytesToHex(packet.getData())); } // prepare data from packet wrapper data and forward to the MessageReceiver try { receivePacketBuffer.write(packet.getData()); LOGGER.info("Forward received message to messageReceiverDelegate: {}, data: {}", messageReceiverDelegate, ByteUtils.bytesToHex(receivePacketBuffer)); messageReceiverDelegate.receive(receivePacketBuffer); } catch (Exception ex) { LOGGER.warn("Process messages failed.", ex); throw new RuntimeException(ex); } finally { receivePacketBuffer.reset(); } }
protected void startReceiverAndQueues(final BidibMessageProcessor messageReceiver, final Context context) { startSendQueueWorker(); startReceiveQueueWorker(); if (messageReceiver != null && context != null) { Boolean ignoreWrongMessageNumber = context.get("ignoreWrongReceiveMessageNumber", Boolean.class, Boolean.FALSE); messageReceiver.setIgnoreWrongMessageNumber(ignoreWrongMessageNumber); } else { LOGGER.warn("No message receiver available."); } }
@Override public void receive(final DataPacket packet) { // a data packet was received ... process the envelope and extract the message if (LOGGER.isTraceEnabled()) { LOGGER.trace("Received a packet from address: {}, port: {}, data: {}", packet.getAddress(), packet.getPort(), ByteUtils.bytesToHex(packet.getData())); } // prepare data from packet wrapper data and forward to the MessageReceiver try { receiveBuffer.write(packet.getData()); LOGGER.info("Forward received message to messageReceiverDelegate: {}, data: {}", messageReceiverDelegate, ByteUtils.bytesToHex(receiveBuffer)); messageReceiverDelegate.receive(receiveBuffer); } catch (Exception ex) { LOGGER.warn("Process messages failed.", ex); throw new RuntimeException(ex); } finally { receiveBuffer.reset(); } }
messageReceiver.setIgnoreWrongMessageNumber(ignoreWrongMessageNumber);
@Override public void receive(final DataPacket packet) { // a data packet was received ... process the envelope and extract the message // if (LOGGER.isTraceEnabled()) { LOGGER.warn("Received a packet from address: {}, port: {}, data: {}", packet.getAddress(), packet.getPort(), ByteUtils.bytesToHex(packet.getData())); // } BidibNetAddress current = new BidibNetAddress(packet.getAddress(), packet.getPort()); if (!knownBidibHosts.contains(current)) { LOGGER.info("Adding new known Bidib host: {}", current); knownBidibHosts.add(current); } // TODO for the first magic response we need special processing because we need to keep the session key // remove the UDP paket wrapper data and forward to the MessageReceiver ByteArrayOutputStream output = new ByteArrayOutputStream(); output.write(packet.getData(), 0, packet.getData().length); LOGGER.info("Forward received message to messageReceiverDelegate: {}, output: {}", messageReceiverDelegate, ByteUtils.bytesToHex(output)); try { messageReceiverDelegate.receive(output); } catch (Exception ex) { LOGGER.warn("Process messages failed.", ex); throw new RuntimeException(ex); } }
@Override public void open( String portName, ConnectionListener connectionListener, Set<NodeListener> nodeListeners, Set<MessageListener> messageListeners, Set<TransferListener> transferListeners, final Context context) throws PortNotFoundException, PortNotOpenedException { LOGGER.info("Open the serial simulation."); setConnectionListener(connectionListener); registerListeners(nodeListeners, messageListeners, transferListeners); final BidibMessageProcessor messageReceiver = getSimulationMessageReceiver(); if (context != null) { Boolean ignoreWrongMessageNumber = context.get("ignoreWrongReceiveMessageNumber", Boolean.class, Boolean.FALSE); messageReceiver.setIgnoreWrongMessageNumber(ignoreWrongMessageNumber); } startReceiverAndQueues(messageReceiver, context); if (getConnectionListener() != null) { LOGGER.info("Notify that the port was opened: {}", requestedPortName); getConnectionListener().opened(requestedPortName); } LOGGER.info("The port was opened internally, get the magic."); try { int magic = sendResetAndMagic(); LOGGER.info("The root node returned the magic: {}", ByteUtils.magicToHex(magic)); } catch (ProtocolException ex) { LOGGER.error("Send reset and magic to root node failed.", ex); } }
@Override public void receive(final DataPacket packet) { // a data packet was received ... process the envelope and extract the message // if (LOGGER.isTraceEnabled()) { LOGGER.info("Received a packet from address: {}, port: {}, data: {}", packet.getAddress(), packet.getPort(), ByteUtils.bytesToHex(packet.getData())); // } BidibNetAddress current = new BidibNetAddress(packet.getAddress(), packet.getPort()); if (!knownBidibHosts.contains(current)) { LOGGER.info("Adding new known Bidib host: {}", current); knownBidibHosts.add(current); } try { receiveBuffer.write(packet.getData(), 0, packet.getData().length); // forward to the MessageReceiver LOGGER.info("Forward received message to messageReceiverDelegate: {}, data: {}", messageReceiverDelegate, ByteUtils.bytesToHex(receiveBuffer)); messageReceiverDelegate.receive(receiveBuffer); } catch (Exception ex) { LOGGER.warn("Process messages failed.", ex); throw new RuntimeException(ex); } finally { receiveBuffer.reset(); } }