1 package org.opentrafficsim.imb.transceiver;
2
3 import org.opentrafficsim.imb.IMBException;
4 import org.opentrafficsim.imb.connector.Connector;
5
6 import nl.tno.imb.TByteBuffer;
7
8 /**
9 * Relay events between IMB domain and OTS domain.
10 * <p>
11 * Copyright (c) 2013-2016 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
12 * BSD-style license. See <a href="http://opentrafficsim.org/docs/current/license.html">OpenTrafficSim License</a>.
13 * </p>
14 * $LastChangedDate: 2015-07-24 02:58:59 +0200 (Fri, 24 Jul 2015) $, @version $Revision: 1147 $, by $Author: averbraeck $,
15 * initial version Oct 18, 2016 <br>
16 * @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a>
17 * @author <a href="http://www.tudelft.nl/pknoppers">Peter Knoppers</a>
18 * @author <a href="http://www.transport.citg.tudelft.nl">Wouter Schakel</a>
19 */
20 public interface Transceiver
21 {
22 /**
23 * Retrieve the id for the Transceiver channel, e.g. "GTU" or "Simulator Control".
24 * @return String; the id for the Transceiver channel, e.g. "GTU" or "Simulator Control".
25 */
26 String getId();
27
28 /**
29 * Retrieve the IMB connector.
30 * @return Connector the IMB connector.
31 */
32 Connector getConnector();
33
34 /**
35 * Handle an IMB message sent to OTS.
36 * @param imbEventName String; the IMB event name of the message that was received from IMB
37 * @param imbPayload TByteBuffer; the packed IMB message payload
38 * @throws IMBException in case the IMB event cannot be handled by this Transceiver
39 */
40 void handleMessageFromIMB(String imbEventName, TByteBuffer imbPayload) throws IMBException;
41 }
42