@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); }
byte[] content = message.message.getContent(); ByteArrayOutputStream output = new ByteArrayOutputStream(); output.write(content);
public String toString() { return getName() + "[" + (addr != null ? ByteUtils.toString(addr) + "," : "") + "num=" + (num & 0xFF) + ",type=" + (type & 0xFF) + ",data=" + ByteUtils.toString(data) + "]"; }
int type = ByteUtils.getInt(message.getType()); switch (type) { 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;
bidibNode = nodeRegistry.findNode(message.getAddr()); && (bidibNode.getNodeMagic() != null || message instanceof SysMagicResponse)) { int numExpected = bidibNode.getNextReceiveMsgNum(message); int numReceived = message.getNum(); LOGGER .trace("Compare the message numbers, expected: {}, received: {}", numExpected, numReceived); int numReceived = message.getNum(); LOGGER .warn(
@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(); } }
public String toExtendedString() { StringBuilder sb = new StringBuilder("[ "); sb.append(super.toString()); sb.append(", macroNumber: ").append(getMacroNumber()); sb.append(", macroState: ").append(getMacroState()); return sb.toString(); }
@Override public boolean equals(Object obj) { if (obj instanceof BidibCommandMessage) { BidibCommandMessage other = (BidibCommandMessage) 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 LcMacro setMacro(LcMacro macroStep) throws ProtocolException { LOGGER.info("Set the macro point: {}", macroStep); BidibMessage response = delegate.send(new LcMacroSetMessage(macroStep), RECEIVE_TIMEOUT, true, LcMacroResponse.TYPE); LcMacro result = null; if (response instanceof LcMacroResponse) { result = MacroUtils.getMacro(response.getData()); LOGGER.debug("Set macro returned: {}", result); } return result; }
/** * Prepare the next receive message number in the communication with the communication partner. Every received * message should be incremented by 1 and on overflow start again with 1. * * @param message * the message * @return the next receive message number */ public int getNextReceiveMsgNum(BidibMessage message) { synchronized (nextReceiveMsgNumLock) { nextReceiveMsgNum++; if (nextReceiveMsgNum > 255) { nextReceiveMsgNum = 1; } if (message.getNum() == 0) { nextReceiveMsgNum = 0; } } return nextReceiveMsgNum; }
private BidibCommand createConcreteMessage(byte[] message) throws ProtocolException { int type = BidibMessage.getMessageType(message); switch (type) { case BidibLibrary.MSG_SYS_RESET:
@Test public void receive4Test() throws IOException, ProtocolException { NodeRegistry nodeFactory = Mockito.mock(NodeRegistry.class); BidibNode bidibNode = Mockito.mock(BidibNode.class); MessageListener messageListener = Mockito.mock(MessageListener.class); SerialMessageReceiver receiver = new SerialMessageReceiver(nodeFactory); receiver.addMessageListener(messageListener); // set the receive queue byte[] rawmessage = { 0x08, 0x03, 0x00, 0x1E, (byte) 0xC6, 0x00, 0x07, 0x00, 0x00, 0x08, 0x03, 0x00, 0x1F, (byte) 0xC6, 0x00, 0x08, 0x00, 0x00, 0x08, 0x03, 0x00, 0x20, (byte) 0xC6, 0x00, 0x09, 0x00, 0x00, 0x08, 0x03, 0x00, 0x21, (byte) 0xC6, 0x00, 0x0A, 0x00, 0x00, 0x08, 0x03, 0x00, 0x22, (byte) 0xC6, 0x00, 0x0B, 0x00, 0x00, 0x08, 0x03, 0x00, 0x23, (byte) 0xC6, 0x00, 0x0C, 0x00, 0x00, 0x08, 0x03, 0x00, 0x24, (byte) 0xC6, 0x00, 0x0D, 0x00, 0x00, (byte) 0xF5, (byte) 0xFE }; byte[] message = new byte[] { 0x08, 0x03, 0x00, 0x17, (byte) 0xC6, 0x00, 0x00, 0x00, 0x00 }; final byte[] nodeAddress = new byte[] { 3 }; Mockito.when(nodeFactory.findNode(nodeAddress)).thenReturn(bidibNode); Mockito .when(bidibNode.getNextReceiveMsgNum(Mockito.any(BidibMessage.class))).thenReturn(Integer.valueOf(0x1E), Integer.valueOf(0x1F), Integer.valueOf(0x20), Integer.valueOf(0x21), Integer.valueOf(0x22), Integer.valueOf(0x23), Integer.valueOf(0x24)); receiver.receive(pack(rawmessage)); BidibMessage response = new BidibResponseFactory().create(message); // verify that message was signaled Mockito.verify(messageListener, Mockito.times(7)).lcConfigX(Mockito.eq(nodeAddress), Mockito.any()); Assert.assertEquals(response.getType(), ByteUtils.getLowByte(BidibLibrary.MSG_LC_CONFIGX)); }
public String toExtendedString() { StringBuilder sb = new StringBuilder("[ "); sb.append(super.toString()); byte[] data = getData(); sb.append(", num: ").append(ByteUtils.getInt(data[0]));
@Override public boolean equals(Object obj) { if (obj instanceof BidibResponseMessage) { BidibResponseMessage other = (BidibResponseMessage) obj; if (other.getType() == getType() && other.getNum() == getNum() && Arrays.equals(other.getAddr(), getAddr()) && Arrays.equals(other.getData(), getData())) { return true; } } return super.equals(obj); } }
/** * Get the macro step with the specified step number. * * @param macroNumber * the number of the macro * @param stepNumber * the number of the step * @return the macro step * @throws ProtocolException */ public LcMacro getMacroStep(int macroNumber, int stepNumber) throws ProtocolException { LOGGER.info("Get the macro step, macroNumber: {}, stepNumber: {}", macroNumber, stepNumber); LcMacro result = null; BidibMessage response = delegate.send(new LcMacroGetMessage(macroNumber, stepNumber), RECEIVE_TIMEOUT, true, LcMacroResponse.TYPE); if (response instanceof LcMacroResponse) { result = MacroUtils.getMacro(response.getData()); LOGGER.info("The returned macro step is: {}", result); } return result; }
BidibMessage result = new BidibMessage(message); int type = ByteUtils.getInt(result.getType()); switch (type) { 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:
Assert.assertEquals(response.getType(), ByteUtils.getLowByte(BidibLibrary.MSG_LC_CONFIGX));
public String toExtendedString() { StringBuilder sb = new StringBuilder("[ "); sb.append(super.toString()); byte[] data = getData(); boolean errorDetected = false;
@Test public void receive5Test() throws IOException, ProtocolException { NodeRegistry nodeFactory = Mockito.mock(NodeRegistry.class); BidibNode bidibNode = Mockito.mock(BidibNode.class); MessageListener messageListener = Mockito.mock(MessageListener.class); SerialMessageReceiver receiver = new SerialMessageReceiver(nodeFactory); receiver.addMessageListener(messageListener); // set the receive queue byte[] rawmessage = { 0x08, 0x03, 0x00, 0x25, (byte) 0xC6, 0x00, 0x0E, 0x00, 0x00, 0x08, 0x03, 0x00, 0x26, (byte) 0xC6, 0x00, 0x0F, 0x00, 0x00, (byte) 0xDA, (byte) 0xFE }; byte[] message = new byte[] { 0x08, 0x03, 0x00, 0x17, (byte) 0xC6, 0x00, 0x00, 0x00, 0x00 }; final byte[] nodeAddress = new byte[] { 3 }; Mockito.when(nodeFactory.findNode(nodeAddress)).thenReturn(bidibNode); Mockito .when(bidibNode.getNextReceiveMsgNum(Mockito.any(BidibMessage.class))) .thenReturn(Integer.valueOf(0x25), Integer.valueOf(0x26)); receiver.receive(pack(rawmessage)); BidibMessage response = new BidibResponseFactory().create(message); // verify that message was signaled Mockito.verify(messageListener, Mockito.times(2)).lcConfigX(Mockito.eq(nodeAddress), Mockito.any()); Assert.assertEquals(response.getType(), ByteUtils.getLowByte(BidibLibrary.MSG_LC_CONFIGX)); }