@Override public boolean equals(Object obj) { if (obj instanceof BidibMessage) { BidibMessage other = (BidibMessage) obj; if (other.getType() == getType() && other.getNum() == getNum() && Arrays.equals(other.getAddr(), getAddr()) && Arrays.equals(other.getData(), getData())) { return true; } } return super.equals(obj); }
@Override public void sendData(ByteArrayOutputStream data) { try { byte[] bytes = data.toByteArray(); LOGGER.info("Send is called with bytes: {}", ByteUtils.bytesToHex(bytes)); // encode the message SerialMessageEncoder.encodeMessage(data, output); List<BidibCommand> bidibMessages = requestFactory.create(output.toByteArray()); for (BidibCommand bidibMessage : bidibMessages) { byte[] address = ((BidibMessage) bidibMessage).getAddr(); String nodeAddress = NodeUtils.formatAddress(address); SimulatorNode simulator = SimulatorRegistry.getInstance().getSimulator(nodeAddress); if (simulator == null) { LOGGER.warn("No simulator found for nodeAddress: {}", nodeAddress); } else { simulator.processRequest(bidibMessage); } LOGGER.debug("Forwarded message to simulator: {}", bidibMessage); } } catch (Exception ex) { LOGGER.warn("Process request failed.", ex); } finally { output.reset(); } }
bidibNode = nodeRegistry.findNode(message.getAddr());
case BidibLibrary.MSG_BOOST_DIAGNOSTIC: BoostDiagnosticResponse diag = (BoostDiagnosticResponse) message; fireBoosterDiagnostic(message.getAddr(), diag.getCurrent(), diag.getVoltage(), diag.getTemperature()); break; case BidibLibrary.MSG_BOOST_STAT: fireBoosterState(message.getAddr(), ((BoostStatResponse) message).getState()); break; case BidibLibrary.MSG_BM_ADDRESS: fireAddress(message.getAddr(), ((FeedbackAddressResponse) message).getDetectorNumber(), ((FeedbackAddressResponse) message).getAddresses()); break; case BidibLibrary.MSG_BM_CONFIDENCE: fireConfidence(message.getAddr(), ((FeedbackConfidenceResponse) message).getInvalid(), ((FeedbackConfidenceResponse) message).getFreeze(), ((FeedbackConfidenceResponse) message).getNoSignal()); fireFree(message.getAddr(), ((FeedbackFreeResponse) message).getDetectorNumber(), ((FeedbackFreeResponse) message).getTimestamp()); break; fireOccupied(message.getAddr(), baseAddress + offset, null); fireFree(message.getAddr(), baseAddress + offset, null); fireOccupied(message.getAddr(), feedbackOccupiedResponse.getDetectorNumber(), feedbackOccupiedResponse.getTimestamp()); break; fireSpeed(message.getAddr(), ((FeedbackSpeedResponse) message).getAddress(),
case BidibLibrary.MSG_ACCESSORY_PARA: result = new AccessoryParaResponse(result.getAddr(), result.getNum(), result.getType(), result.getData()); break; case BidibLibrary.MSG_ACCESSORY_STATE: result = new AccessoryStateResponse(result.getAddr(), result.getNum(), result.getType(), result.getData()); break; case BidibLibrary.MSG_ACCESSORY_NOTIFY: result = new AccessoryNotifyResponse(result.getAddr(), result.getNum(), result.getType(), result.getData()); break; case BidibLibrary.MSG_BM_ADDRESS: result = new FeedbackAddressResponse(result.getAddr(), result.getNum(), result.getType(), result.getData()); break; case BidibLibrary.MSG_BM_CONFIDENCE: result = new FeedbackConfidenceResponse(result.getAddr(), result.getNum(), result.getType(), result.getData()); break; case BidibLibrary.MSG_BM_CURRENT: result = new FeedbackCurrentResponse(result.getAddr(), result.getNum(), result.getType(), result.getData()); break; case BidibLibrary.MSG_BM_FREE: result = new FeedbackFreeResponse(result.getAddr(), result.getNum(), result.getType(), result.getData()); break;