Package jmri.jmrit.withrottle
Class DeviceServer
java.lang.Object
jmri.jmrit.withrottle.DeviceServer
- All Implemented Interfaces:
Runnable
,EventListener
,ControllerInterface
,ThrottleControllerListener
public class DeviceServer extends Object implements Runnable, ThrottleControllerListener, ControllerInterface
-
Field Summary
Fields Modifier and Type Field Description (package private) String
deviceName
(package private) String
deviceUDID
(package private) BufferedReader
in
(package private) boolean
isClockDisplayed
(package private) boolean
isRouteAllowed
(package private) boolean
isTrackPowerAllowed
(package private) boolean
isTurnoutAllowed
(package private) HashMap<Character,MultiThrottle>
multiThrottles
(package private) String
newLine
(package private) PrintStream
out
(package private) String
railroadName
(package private) ThrottleController
secondThrottleController
(package private) ThrottleController
throttleController
-
Constructor Summary
Constructors Constructor Description DeviceServer(Socket socket, DeviceManager manager)
-
Method Summary
Modifier and Type Method Description void
addDeviceListener(DeviceListener l)
Add a DeviceListenervoid
closeSocket()
void
closeThrottles()
String
getCurrentAddressString()
String
getCurrentRosterIdString()
Get the Roster ID String.String
getName()
String
getUDID()
static String
getWebServerPort()
static String
getWiTVersion()
void
notifyControllerAddressDeclined(ThrottleController tc, DccLocoAddress address, String reason)
System has declined the address request, may be an in-use address.void
notifyControllerAddressFound(ThrottleController TC)
void
notifyControllerAddressReleased(ThrottleController TC)
void
removeDeviceListener(DeviceListener l)
Remove a DeviceListenervoid
run()
void
sendAlertMessage(String message)
Send an Alert message (simple text string) to this clientvoid
sendInfoMessage(String message)
Send an Info message (simple text string) to this clientvoid
sendPacketToDevice(String message)
Called by various Controllers to send a string message to a connected device.String
sendRoster()
Format a package to be sent to the device for roster list selections.void
startEKG()
void
stopEKG()
-
Field Details
-
Constructor Details
-
DeviceServer
DeviceServer(Socket socket, DeviceManager manager)
-
-
Method Details
-
run
-
closeThrottles
-
closeSocket
-
startEKG
-
stopEKG
-
getUDID
-
getName
-
getCurrentAddressString
-
getCurrentRosterIdString
Get the Roster ID String.- Returns:
- roster ID string.
- Since:
- 4.15.4
-
getWiTVersion
-
getWebServerPort
-
sendPacketToDevice
Called by various Controllers to send a string message to a connected device. Appends a newline to the end.- Specified by:
sendPacketToDevice
in interfaceControllerInterface
- Parameters:
message
- The string to send.
-
sendAlertMessage
Send an Alert message (simple text string) to this client- Specified by:
sendAlertMessage
in interfaceControllerInterface
- Parameters:
message
- Format: HMmessage
-
sendInfoMessage
Send an Info message (simple text string) to this client- Specified by:
sendInfoMessage
in interfaceControllerInterface
- Parameters:
message
- Format: Hmmessage
-
addDeviceListener
Add a DeviceListener- Parameters:
l
- handle for listener to add
-
removeDeviceListener
Remove a DeviceListener- Parameters:
l
- listener to remove
-
notifyControllerAddressFound
- Specified by:
notifyControllerAddressFound
in interfaceThrottleControllerListener
-
notifyControllerAddressReleased
- Specified by:
notifyControllerAddressReleased
in interfaceThrottleControllerListener
-
notifyControllerAddressDeclined
public void notifyControllerAddressDeclined(ThrottleController tc, DccLocoAddress address, String reason)System has declined the address request, may be an in-use address. Need to clear the address from the proper multiThrottle.- Specified by:
notifyControllerAddressDeclined
in interfaceThrottleControllerListener
- Parameters:
tc
- The throttle controller that was listening for a response to an address requestaddress
- The address to send a cancel toreason
- The reason the request was declined, to be sent back to client
-
sendRoster
Format a package to be sent to the device for roster list selections.- Returns:
- String containing a formatted list of some of each RosterEntry's info. Include a header with the length of the string to be received.
-