Package jmri.jmrix.dccpp.simulator
Class DCCppSimulatorAdapter
java.lang.Object
jmri.jmrix.AbstractPortController
jmri.jmrix.AbstractSerialPortController
jmri.jmrix.dccpp.DCCppSimulatorPortController
jmri.jmrix.dccpp.simulator.DCCppSimulatorAdapter
- All Implemented Interfaces:
Runnable,DCCppPortController,PortAdapter,SerialPortAdapter
Provide access to a simulated DCC++ system.
Currently, the DCCppSimulator reacts to commands sent from the user interface
with messages an appropriate reply message.
NOTE: Most DCC++ commands are still unsupported in this implementation.
Normally controlled by the dccpp.DCCppSimulator.DCCppSimulatorFrame class.
NOTE: Some material in this file was modified from other portions of the
support infrastructure.
-
Nested Class Summary
Nested classes/interfaces inherited from class jmri.jmrix.AbstractSerialPortController
AbstractSerialPortController.Blocking, AbstractSerialPortController.FlowControlNested classes/interfaces inherited from class jmri.jmrix.AbstractPortController
AbstractPortController.Option -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static DCCppSimulatorAdapter(package private) static final intFields inherited from class jmri.jmrix.AbstractSerialPortController
currentSerialPort, mBaudRate, mPortFields inherited from class jmri.jmrix.AbstractPortController
allowConnectionRecovery, manufacturerName, opened, option1Name, option2Name, option3Name, option4Name, options, reconnectinterval, reconnectMaxAttempts, reconnectMaxInterval -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidSet up all of the other objects to operate with a DCCppSimulator connected to this portGet the InputStream from the port.Get the outputStream to the port.booleanokToSend()Can the port accept additional characters?Open a specified port.protected bytereadByteProtected(DataInputStream istream) Read a single byte, protecting against various timeouts, etc.voidrun()voidsetOutputBufferEmpty(boolean s) Set if the output buffer is empty or full.booleanstatus()Check that this object is ready to operate.int[]Get an array of valid baud rate numbers; used to store/load adapter speed option.String[]Get an array of valid baud rate strings; used to display valid options in Connections Preferences.Methods inherited from class jmri.jmrix.dccpp.DCCppSimulatorPortController
getSystemConnectionMemoMethods inherited from class jmri.jmrix.AbstractSerialPortController
activatePort, activatePort, activatePort, closeConnection, closeSerialPort, configureBaudRate, configureBaudRateFromIndex, configureBaudRateFromNumber, configureLeads, configureLeadsAndFlowControl, configureLeadsAndFlowControl, connect, currentBaudNumber, defaultBaudIndex, getActualPortNames, getCurrentBaudIndex, getCurrentBaudNumber, getCurrentBaudRate, getCurrentPortName, getFlowControl, getPortSettingsString, handlePortBusy, handlePortNotFound, handlePortNotFound, isPortOpen, replacePortWithFakePort, reportPortStatus, resetupConnection, setBaudRate, setComPortTimeouts, setDataListener, setFlowControl, setPortMethods 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, reconnectFromLoop, recover, safeSleep, setClosed, setDisabled, setManufacturer, setOpened, setOptionState, setReconnectMaxAttempts, setReconnectMaxInterval, setSystemConnectionMemo, setSystemPrefix, setUserNameMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface jmri.jmrix.PortAdapter
connect, 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, setUserNameMethods inherited from interface jmri.jmrix.SerialPortAdapter
configureOption1, configureOption2, configureOption3, configureOption4, getManufacturer, getPortNames, setManufacturer
-
Field Details
-
SENSOR_MSG_RATE
- See Also:
-
mInstance
-
-
Constructor Details
-
DCCppSimulatorAdapter
public DCCppSimulatorAdapter()
-
-
Method Details
-
openPort
Description copied from interface:SerialPortAdapterOpen a specified port.- Specified by:
openPortin interfaceSerialPortAdapter- 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.
-
setOutputBufferEmpty
Set if the output buffer is empty or full. This should only be set to false by external processes.- Specified by:
setOutputBufferEmptyin interfaceDCCppPortController- Specified by:
setOutputBufferEmptyin classDCCppSimulatorPortController- Parameters:
s- true if output buffer is empty; false otherwise
-
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.- Specified by:
okToSendin interfaceDCCppPortController- Specified by:
okToSendin classDCCppSimulatorPortController- Returns:
- true if port can accept additional characters; false otherwise
-
configure
Set up all of the other objects to operate with a DCCppSimulator connected to this port- Specified by:
configurein interfacePortAdapter- Specified by:
configurein interfaceSerialPortAdapter
-
getInputStream
Get the InputStream from the port.- Specified by:
getInputStreamin interfacePortAdapter- Specified by:
getInputStreamin classDCCppSimulatorPortController- Returns:
- the InputStream from the port
-
getOutputStream
Get the outputStream to the port.- Specified by:
getOutputStreamin interfacePortAdapter- Specified by:
getOutputStreamin classDCCppSimulatorPortController- Returns:
- the outputStream to the port
-
status
Check that this object is ready to operate. This is a question of configuration, not transient hardware status.- Specified by:
statusin interfaceDCCppPortController- Specified by:
statusin interfacePortAdapter- Specified by:
statusin interfaceSerialPortAdapter- Specified by:
statusin classDCCppSimulatorPortController- Returns:
- true if OK, at least as far as known
-
validBaudRates
Get an array of valid baud rate strings; used to display valid options in Connections Preferences. Currently just a message saying it's fixed.- Specified by:
validBaudRatesin interfaceSerialPortAdapter- Overrides:
validBaudRatesin classAbstractSerialPortController- Returns:
- null
-
validBaudNumbers
Get an array of valid baud rate numbers; used to store/load adapter speed option.- Specified by:
validBaudNumbersin interfaceSerialPortAdapter- Overrides:
validBaudNumbersin classAbstractSerialPortController- Returns:
- integer array of speeds, must match order and values from
SerialPortAdapter.validBaudRates()
-
run
-
readByteProtected
Read a single byte, protecting against various timeouts, etc.When a port is set to have a receive timeout (via the enableReceiveTimeout() method), some will return zero bytes or an EOFException at the end of the timeout. In that case, the read should be repeated to get the next real character.
- Parameters:
istream- source of data- Returns:
- next available byte, when available
- Throws:
IOException- from underlying operation
-