001package jmri.jmrix.roco.z21;
002
003
004import jmri.jmrix.ConnectionStatus;
005import jmri.jmrix.lenz.LenzCommandStation;
006import jmri.jmrix.lenz.XNetPacketizer;
007import org.slf4j.Logger;
008import org.slf4j.LoggerFactory;
009
010/**
011 * Extension of the XNetPacketizer for Roco: the Roco Z21 XpressNet
012 * Tunnel.
013 *
014 * @author Paul Bender Copyright (C) 2017
015 */
016public class Z21XNetPacketizer extends XNetPacketizer {
017
018    /**
019     * Must provide a LenzCommandStation reference at creation time.
020     *
021     * @param pCommandStation reference to associated command station object,
022     *                        preserved for later.
023     */
024    Z21XNetPacketizer(LenzCommandStation pCommandStation) {
025        super(pCommandStation);
026    }
027
028    @Override
029    public void handleOneIncomingReply() {
030       try{
031           super.handleOneIncomingReply();
032       } catch(java.io.IOException ioe){
033           log.info("Z21 XpressNet Connection Terminated");
034           ConnectionStatus.instance().setConnectionState(
035                   controller.getSystemConnectionMemo(), ConnectionStatus.CONNECTION_DOWN);
036           terminateThreads();
037       }
038    }
039
040    private static final Logger log = LoggerFactory.getLogger(Z21XNetPacketizer.class);
041
042}