jmri.jmrix.loconet.hexfile
Class LnHexFilePort

java.lang.Object
  extended by jmri.jmrix.AbstractPortController
      extended by jmri.jmrix.loconet.LnPortController
          extended by jmri.jmrix.loconet.hexfile.LnHexFilePort
All Implemented Interfaces:
Runnable, PortAdapter, SerialPortAdapter

public class LnHexFilePort
extends LnPortController
implements Runnable

LnHexFilePort implements a LnPortController via a ASCII-hex input file. See below for the file format There are user-level controls for send next message how long to wait between messages An object of this class should run in a thread of its own so that it can fill the output pipe as needed. The input file is expected to have one message per line. Each line can contain as many bytes as needed, each represented by two Hex characters and separated by a space. Variable whitespace is not (yet) supported

Author:
Bob Jacobsen Copyright (C) 2001

Field Summary
 
Fields inherited from class jmri.jmrix.loconet.LnPortController
commandStationName, commandStationNames, mCanRead, mProgPowersOff
 
Fields inherited from class jmri.jmrix.AbstractPortController
mBaudRate, mOpt1, mOpt2, mPort
 
Constructor Summary
LnHexFilePort()
           
 
Method Summary
 void configure()
          Configure all of the other jmrix widgets needed to work with this adapter
 DataInputStream getInputStream()
           
 DataOutputStream getOutputStream()
           
 Vector<String> getPortNames()
          Provide a vector of valid port names, each a String.
static LnHexFilePort instance()
           
 void load(File file)
           
 boolean okToSend()
          Can the port accept additional characters?
 String openPort(String portName, String appName)
          Open a specified port.
 void run()
           
 boolean running()
           
 void setDelay(int newDelay)
          Provide a new message delay value, but don't allow it to go below 2 msec.
 boolean status()
          Check that this object is ready to operate.
 String[] validBaudRates()
          Get an array of valid baud rates; used to display valid options.
 
Methods inherited from class jmri.jmrix.loconet.LnPortController
configureCommandStation, configureManagers, setCommandStationType
 
Methods inherited from class jmri.jmrix.AbstractPortController
configureBaudRate, configureOption1, configureOption2, currentBaudNumber, getCurrentBaudRate, getCurrentOption1Setting, getCurrentOption2Setting, getCurrentPortName, handlePortBusy, handlePortNotFound, option1Name, option2Name, reloadDriver, setPort, validBaudNumber, validOption1, validOption2
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LnHexFilePort

public LnHexFilePort()
Method Detail

load

public void load(File file)

run

public void run()
Specified by:
run in interface Runnable

setDelay

public void setDelay(int newDelay)
Provide a new message delay value, but don't allow it to go below 2 msec.


getInputStream

public DataInputStream getInputStream()
Specified by:
getInputStream in interface PortAdapter
Specified by:
getInputStream in class LnPortController

getOutputStream

public DataOutputStream getOutputStream()
Specified by:
getOutputStream in interface PortAdapter
Specified by:
getOutputStream in class LnPortController

status

public boolean status()
Description copied from class: LnPortController
Check that this object is ready to operate. This is a question of configuration, not transient hardware status.

Specified by:
status in interface PortAdapter
Specified by:
status in interface SerialPortAdapter
Specified by:
status in class LnPortController

running

public boolean running()

okToSend

public boolean okToSend()
Description copied from class: LnPortController
Can the port accept additional characters? This might go false for short intervals, but it might also stick off if something goes wrong.

Provide a default implementation for the MS100, etc, in which this is _always_ true, as we rely on the queueing in the port itself.

Overrides:
okToSend in class LnPortController

getPortNames

public Vector<String> getPortNames()
Description copied from interface: SerialPortAdapter
Provide a vector of valid port names, each a String.

Specified by:
getPortNames in interface SerialPortAdapter
Overrides:
getPortNames in class AbstractPortController

openPort

public String openPort(String portName,
                       String appName)
Description copied from interface: SerialPortAdapter
Open a specified port. The appname argument is to be provided to the underlying OS during startup so that it can show on status displays, etc

Specified by:
openPort in interface SerialPortAdapter

configure

public void configure()
Description copied from interface: PortAdapter
Configure all of the other jmrix widgets needed to work with this adapter

Specified by:
configure in interface PortAdapter
Specified by:
configure in interface SerialPortAdapter

validBaudRates

public String[] validBaudRates()
Description copied from interface: SerialPortAdapter
Get an array of valid baud rates; used to display valid options.

Specified by:
validBaudRates in interface SerialPortAdapter

instance

public static LnHexFilePort instance()


Copyright © 1997 - 2009 JMRI Community.
JMRI, DecoderPro, PanelPro, SoundPro, DispatcherPro and associated logos are our trademarks.

Additional information on copyright, trademarks and licenses is linked here.
Site hosted by: Get JMRI Model Railroad Interface at SourceForge.net. Fast, secure and Free Open Source software downloads