Package jmri.jmrix.grapevine.simulator
Class SimulatorAdapter
java.lang.Object
jmri.jmrix.AbstractPortController
jmri.jmrix.AbstractSerialPortController
jmri.jmrix.grapevine.SerialPortController
jmri.jmrix.grapevine.simulator.SimulatorAdapter
- All Implemented Interfaces:
Runnable,PortAdapter,SerialPortAdapter
Provide access to a simulated Grapevine system.
Currently, the Grapevine SimulatorAdapter reacts to the following commands sent from the user
interface with an appropriate reply generateReply(SerialMessage):
- Software version (poll)
- Renumber (displays dialog: not supported)
- Node Init (2 replies + user configurable node-bank-bit status)
- Set signal/sensor/turnout (echoes message)
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) int(package private) int(package private) TimerFields 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 GrapevineSimulator connected to this port.voidconnect()Open the connection.Overridden in simulator adapter classes to return "";Get the InputStream from the port.Get the outputStream to the port.booleanokToSend()Can the port accept additional characters?Open a specified port.voidrun()voidsetOutputBufferEmpty(boolean s) Set if the output buffer is empty or full.setParity(SerialReply r, int start) Set parity on simulated Grapevine Node reply.booleanstatus()Query the status of this connection.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.grapevine.SerialPortController
getSystemConnectionMemoMethods inherited from class jmri.jmrix.AbstractSerialPortController
activatePort, activatePort, activatePort, closeConnection, closeSerialPort, configureBaudRate, configureBaudRateFromIndex, configureBaudRateFromNumber, configureLeads, configureLeadsAndFlowControl, configureLeadsAndFlowControl, currentBaudNumber, defaultBaudIndex, getActualPortNames, getCurrentBaudIndex, getCurrentBaudNumber, 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
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
-
signalBankSize
int signalBankSize -
sensorBankSize
int sensorBankSize -
timer
-
-
Constructor Details
-
SimulatorAdapter
public SimulatorAdapter()Create a new SimulatorAdapter.
-
-
Method Details
-
openPort
Open a specified port. Simulated input/output pipes.- 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.- 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.- Returns:
- true if port can accept additional characters; false otherwise
-
configure
Set up all of the other objects to operate with a GrapevineSimulator connected to this port.- Specified by:
configurein interfacePortAdapter- Specified by:
configurein interfaceSerialPortAdapter
-
connect
Open the connection.- Specified by:
connectin interfacePortAdapter- Overrides:
connectin classAbstractSerialPortController- Throws:
IOException- if unable to connect
-
getInputStream
Get the InputStream from the port.- Specified by:
getInputStreamin interfacePortAdapter- Overrides:
getInputStreamin classAbstractSerialPortController- Returns:
- the InputStream from the port
-
getOutputStream
Get the outputStream to the port.- Specified by:
getOutputStreamin interfacePortAdapter- Overrides:
getOutputStreamin classAbstractSerialPortController- Returns:
- the outputStream to the port
-
status
Query the status of this connection. This is a question of configuration, not transient hardware status.- Specified by:
statusin interfacePortAdapter- Specified by:
statusin interfaceSerialPortAdapter- Specified by:
statusin classSerialPortController- Returns:
- always true, given this SimulatorAdapter is running
-
validBaudRates
Get an array of valid baud rate strings; used to display valid options in Connections Preferences.- 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()
-
getCurrentBaudRate
Description copied from class:AbstractSerialPortController- Specified by:
getCurrentBaudRatein interfaceSerialPortAdapter- Overrides:
getCurrentBaudRatein classAbstractSerialPortController
-
getCurrentPortName
Description copied from class:AbstractSerialPortControllerOverridden in simulator adapter classes to return "";- Specified by:
getCurrentPortNamein interfacePortAdapter- Specified by:
getCurrentPortNamein interfaceSerialPortAdapter- Overrides:
getCurrentPortNamein classAbstractSerialPortController
-
run
-
setParity
Set parity on simulated Grapevine Node reply. Code copied fromSerialMessage.setParity(int)- Parameters:
r- the SerialReply to completestart- bit index to start- Returns:
- SerialReply with parity set
-