001package jmri.jmrix.roco.z21; 002 003import jmri.jmrix.AbstractMRReply; 004import jmri.jmrix.lenz.XNetInitializationManager; 005 006import java.io.DataInputStream; 007import java.io.DataOutputStream; 008 009/** 010 * Override default XpressNet classes to use z21 specific versions. 011 * 012 * @author Paul Bender Copyright (C) 2004, 2010, 2014 013 */ 014public class Z21XNetStreamPortController extends jmri.jmrix.lenz.XNetStreamPortController { 015 016 public Z21XNetStreamPortController(DataInputStream in, DataOutputStream out, String pname) { 017 super(in, out, pname); 018 } 019 020 @Override 021 public void configure() { 022 // connect to a packetizing traffic controller 023 jmri.jmrix.lenz.XNetTrafficController packets = new Z21XNetPacketizer(new jmri.jmrix.lenz.LenzCommandStation()){ 024 @Override 025 protected AbstractMRReply newReply() { 026 return new Z21XNetReply(); 027 } 028 }; 029 packets.connectPort(this); 030 031 this.getSystemConnectionMemo().setXNetTrafficController(packets); 032 this.getSystemConnectionMemo().setThrottleManager(new Z21XNetThrottleManager(this.getSystemConnectionMemo())); 033 034 new XNetInitializationManager() 035 .memo(this.getSystemConnectionMemo()) 036 .setDefaults() 037 .throttleManager(Z21XNetThrottleManager.class) 038 .programmer(Z21XNetProgrammer.class) 039 .programmerManager(Z21XNetProgrammerManager.class) 040 .turnoutManager(Z21XNetTurnoutManager.class) 041 .consistManager(null) 042 .noCommandStation() 043 .init(); 044 jmri.jmrix.ConnectionStatus.instance().setConnectionState(getUserName(), getCurrentPortName(),jmri.jmrix.ConnectionStatus.CONNECTION_UP); 045 } 046 047 @Override 048 public void dispose() { 049 jmri.jmrix.lenz.XNetTrafficController packets = this.getSystemConnectionMemo().getXNetTrafficController(); 050 this.getSystemConnectionMemo().dispose(); 051 packets.terminateThreads(); 052 super.dispose(); 053 } 054 055}