Package jmri.jmrix.loconet.locobuffer
Class LocoBufferAdapter
- java.lang.Object
-
- jmri.jmrix.AbstractPortController
-
- jmri.jmrix.AbstractSerialPortController
-
- jmri.jmrix.loconet.LnPortController
-
- jmri.jmrix.loconet.locobuffer.LocoBufferAdapter
-
- All Implemented Interfaces:
PortAdapter
,SerialPortAdapter
- Direct Known Subclasses:
IntelliboxAdapter
,LocoBufferIIAdapter
,LocoBufferNGAdapter
,LocoBufferUsbAdapter
,PR2Adapter
,PR3Adapter
,PR4Adapter
,UhlenbrockAdapter
,UsbDcs210PlusAdapter
,UsbDcs240Adapter
,UsbDcs240PlusAdapter
,UsbDcs52Adapter
,UsbUhlenbrock63120Adapter
public class LocoBufferAdapter extends LnPortController
Provide access to LocoNet via a LocoBuffer attached to a serial com port.Normally controlled by the LocoBufferFrame class.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class jmri.jmrix.AbstractPortController
AbstractPortController.Option
-
-
Field Summary
Fields Modifier and Type Field Description (package private) purejavacomm.SerialPort
activeSerialPort
(package private) java.util.Vector<java.lang.String>
portNameVector
(package private) java.io.InputStream
serialStream
protected java.lang.String[]
validOption1
protected java.lang.String[]
validSpeeds
protected int[]
validSpeedValues
-
Fields inherited from class jmri.jmrix.loconet.LnPortController
commandStationNames, commandStationType, commandStationTypes, mInterrogateAtStart, mLoconetProtocolAutoDetect, mTranspondingAvailable, mTurnoutExtraSpace, mTurnoutNoRetry
-
Fields inherited from class jmri.jmrix.AbstractSerialPortController
mBaudRate, mPort
-
Fields inherited from class jmri.jmrix.AbstractPortController
allowConnectionRecovery, manufacturerName, option1Name, option2Name, option3Name, option4Name, options, reconnectinterval, reconnectMaxAttempts, reconnectMaxInterval
-
-
Constructor Summary
Constructors Constructor Description LocoBufferAdapter()
LocoBufferAdapter(LocoNetSystemConnectionMemo adapterMemo)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
configure()
Set up all of the other objects to operate with a LocoBuffer connected to this port.int
defaultBaudIndex()
Get the index of the default port speed for this adapter from the validSpeeds and validRates arrays.java.lang.String[]
getCommandStationListWithStandaloneLN()
Create a list of possible command stations and append "Standalone LocoNet" Note: This is not suitable for use by any class which extends this class if the hardware interface is part of a command station.java.io.DataInputStream
getInputStream()
Get the InputStream from the port.java.io.DataOutputStream
getOutputStream()
Get the outputStream to the port.protected LnPacketizer
getPacketizer(java.lang.String s)
protected java.lang.String
getPacketizerOption(java.lang.String s)
for a given readable choice return internal value or the defaultjava.util.Vector<java.lang.String>
getPortNames()
Provide a vector of valid port names, each a String.boolean
okToSend()
Can the port accept additional characters?java.lang.String
openPort(java.lang.String portName, java.lang.String appName)
Open a specified port.protected void
setSerialPort(purejavacomm.SerialPort activeSerialPort)
Local method to do specific configuration, overridden in classboolean
status()
Check that this object is ready to operate.int[]
validBaudNumbers()
Get an array of valid baud rate numbers; used to store/load adapter speed option.java.lang.String[]
validBaudRates()
Get an array of valid baud rate strings; used to display valid options in Connections Preferences.-
Methods inherited from class jmri.jmrix.loconet.LnPortController
getSystemConnectionMemo, setCommandStationType, setCommandStationType, setInterrogateOnStart, setLoconetProtocolAutoDetect, setTranspondingAvailable, setTurnoutHandling
-
Methods inherited from class jmri.jmrix.AbstractSerialPortController
closeConnection, configureBaudRate, configureBaudRateFromIndex, configureBaudRateFromNumber, configureLeadsAndFlowControl, configureLeadsAndFlowControl, connect, currentBaudNumber, getCurrentBaudIndex, getCurrentBaudNumber, getCurrentBaudRate, getCurrentPortName, handlePortBusy, handlePortNotFound, reconnectFromLoop, resetupConnection, setPort, setPortEventLogging
-
Methods inherited from class jmri.jmrix.AbstractPortController
configureOption1, configureOption2, configureOption3, configureOption4, dispose, getDisabled, getManufacturer, getOption1Name, getOption2Name, getOption3Name, getOption4Name, getOptionChoices, getOptionDisplayName, getOptions, getOptionState, getReconnectMaxAttempts, getReconnectMaxInterval, getSystemPrefix, getUserName, isDirty, isOptionAdvanced, isOptionTypePassword, isOptionTypeText, isRestartRequired, purgeStream, reconnect, recover, safeSleep, setClosed, setDisabled, setManufacturer, setOpened, setOptionState, setReconnectMaxAttempts, setReconnectMaxInterval, setSystemConnectionMemo, setSystemPrefix, setUserName
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface jmri.jmrix.PortAdapter
dispose, getDisabled, getOption1Name, getOption2Name, getOption3Name, getOption4Name, getOptionChoices, getOptionDisplayName, getOptions, getOptionState, getReconnectMaxAttempts, getReconnectMaxInterval, getSystemPrefix, getUserName, isDirty, isOptionAdvanced, isOptionTypePassword, isOptionTypeText, isRestartRequired, recover, setDisabled, setOptionState, setReconnectMaxAttempts, setReconnectMaxInterval, setSystemConnectionMemo, setSystemPrefix, setUserName
-
Methods inherited from interface jmri.jmrix.SerialPortAdapter
configureOption1, configureOption2, configureOption3, configureOption4, getManufacturer, setManufacturer
-
-
-
-
Field Detail
-
portNameVector
java.util.Vector<java.lang.String> portNameVector
-
activeSerialPort
purejavacomm.SerialPort activeSerialPort
-
validSpeeds
protected java.lang.String[] validSpeeds
-
validSpeedValues
protected int[] validSpeedValues
-
validOption1
protected java.lang.String[] validOption1
-
serialStream
java.io.InputStream serialStream
-
-
Constructor Detail
-
LocoBufferAdapter
public LocoBufferAdapter()
-
LocoBufferAdapter
public LocoBufferAdapter(LocoNetSystemConnectionMemo adapterMemo)
-
-
Method Detail
-
getCommandStationListWithStandaloneLN
public java.lang.String[] getCommandStationListWithStandaloneLN()
Create a list of possible command stations and append "Standalone LocoNet" Note: This is not suitable for use by any class which extends this class if the hardware interface is part of a command station.- Returns:
- String[] containing the array of command stations, plus "Standalone LocoNet"
-
getPortNames
public java.util.Vector<java.lang.String> getPortNames()
Description copied from class:AbstractSerialPortController
Provide a vector of valid port names, each a String.- Specified by:
getPortNames
in interfaceSerialPortAdapter
- Overrides:
getPortNames
in classAbstractSerialPortController
- Returns:
- port names.
-
openPort
public java.lang.String openPort(java.lang.String portName, java.lang.String appName)
Description copied from interface:SerialPortAdapter
Open a specified port.- Parameters:
portName
- name tu use for this portappName
- provided to the underlying OS during startup so that it can show on status displays, etc.- Returns:
- null indicates OK return, else error message.
-
okToSend
public boolean okToSend()
Can the port accept additional characters? The state of CTS determines this, as there seems to be no way to check the number of queued bytes and buffer length. This might go false for short intervals, but it might also stick off if something goes wrong.- Overrides:
okToSend
in classLnPortController
- Returns:
- an indication of whether the interface is accepting transmit messages.
-
configure
public void configure()
Set up all of the other objects to operate with a LocoBuffer connected to this port.
-
getInputStream
public java.io.DataInputStream getInputStream()
Description copied from class:AbstractPortController
Get the InputStream from the port.- Specified by:
getInputStream
in interfacePortAdapter
- Specified by:
getInputStream
in classLnPortController
- Returns:
- the InputStream from the port
-
getOutputStream
public java.io.DataOutputStream getOutputStream()
Description copied from class:AbstractPortController
Get the outputStream to the port.- Specified by:
getOutputStream
in interfacePortAdapter
- Specified by:
getOutputStream
in classLnPortController
- Returns:
- the outputStream to the port
-
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 interfacePortAdapter
- Specified by:
status
in interfaceSerialPortAdapter
- Specified by:
status
in classLnPortController
- Returns:
- true if OK, at least as far as known
-
setSerialPort
protected void setSerialPort(purejavacomm.SerialPort activeSerialPort) throws purejavacomm.UnsupportedCommOperationException
Local method to do specific configuration, overridden in class- Parameters:
activeSerialPort
- is the serial port to be configured- Throws:
purejavacomm.UnsupportedCommOperationException
- Usually if the hardware isn't present or capable
-
validBaudRates
public java.lang.String[] validBaudRates()
Get an array of valid baud rate strings; used to display valid options in Connections Preferences.- Specified by:
validBaudRates
in interfaceSerialPortAdapter
- Overrides:
validBaudRates
in classAbstractSerialPortController
- Returns:
- array of I18N display strings of port speed settings valid for this serial adapter,
must match order and values from
SerialPortAdapter.validBaudNumbers()
-
validBaudNumbers
public int[] validBaudNumbers()
Get an array of valid baud rate numbers; used to store/load adapter speed option.- Specified by:
validBaudNumbers
in interfaceSerialPortAdapter
- Overrides:
validBaudNumbers
in classAbstractSerialPortController
- Returns:
- integer array of speeds, must match order and values from
SerialPortAdapter.validBaudRates()
-
defaultBaudIndex
public int defaultBaudIndex()
Description copied from interface:SerialPortAdapter
Get the index of the default port speed for this adapter from the validSpeeds and validRates arrays.- Specified by:
defaultBaudIndex
in interfaceSerialPortAdapter
- Overrides:
defaultBaudIndex
in classAbstractSerialPortController
- Returns:
- -1 to indicate not supported, unless overridden in adapter
-
getPacketizerOption
protected java.lang.String getPacketizerOption(java.lang.String s)
for a given readable choice return internal value or the default- Parameters:
s
- string containing ?a packetizer name?- Returns:
- internal value
-
getPacketizer
protected LnPacketizer getPacketizer(java.lang.String s)
- Parameters:
s
- the packetizer to use in its readable form.- Returns:
- a LnPacketizer
-
-