001package jmri.jmrix.tams;
002
003/**
004 * Define interface for sending and receiving messages to the Tams command
005 * station.
006 *
007 * Based on work by Bob Jacobsen
008 *
009 * @author Kevin Dickerson Copyright (C) 2012
010 */
011public interface TamsInterface {
012
013    void addTamsListener(TamsListener l);
014
015    void removeTamsListener(TamsListener l);
016
017    /**
018     * Test operational status of interface.
019     *
020     * @return true is interface implementation is operational.
021     */
022    boolean status();
023
024    /**
025     * Send a message through the interface.
026     *
027     * @param m Message to be sent.
028     * @param l Listener to be notified of reply.
029     */
030    void sendTamsMessage(TamsMessage m, TamsListener l);
031}
032
033