Trax3 3.1.0
trax track library
Loading...
Searching...
No Matches
trax::Signal Struct Referenceabstract

A Signal is positioned along a track and is submitted to a Train if it runs over it. More...

#include <C:/Trend/Development/Trax3/Code/trax/Signal.h>

Inheritance diagram for trax::Signal:

Public Types

enum class  Status {
  none = -1 , stop = 0 , clear = 1 , slow ,
  velocity0 = stop , velocity1 = clear , velocity2 = slow , velocity3 ,
  velocity4 , velocity5 , velocity6 , velocity7 ,
  velocity8 , velocity9 , velocity10 , velocity11 ,
  velocity12 , velocityMax = velocity12 , caution , doors_open ,
  doors_close , uncouple , lights_on , jump ,
  count , toggle , change
}
 Various Signal status settings.

Public Member Functions

virtual const char * TypeName () const noexcept=0
virtual Status Set (Status status, bool pulse=true)=0
 Set the Signal's setting.
virtual void Toggle (bool pulse=true)=0
 Sets the signal state to the next setting.
virtual Status Get () const =0
 Get the Signal's setting.
virtual int CountStatus () const =0
 Gets the number of signal status the signal provides.
virtual void Attach (TrackBuilder *pTrackBuilder) noexcept=0
 Attaches the Signal to a TrackBuilder.
virtual TrackBuilderTrackAttached () const =0
virtual void GetTrackRange (TrackRange &trackRange) const =0
 Gets the range on the track on wich the signal is effective.
virtual Location GetLocation () const =0
 Creates a Location for the signals reference point on the tracks.
virtual MultiPlugPlugToToggle ()=0
virtual JackJackOnChange ()=0
virtual JackJackOn (Status status)=0
 Gets a Jack that pulses its Plug if the specified Status is set.
virtual JackJackOnChangeTo (Status status)=0
 Gets a Jack that pulses its Plug if the specified Status is set and was not set before.
virtual MultiPlugPlugTo (Status status)=0
 Gets a Plug that switches to the specified Status.
virtual void RegisterSockets (SocketRegistry &modul)=0
 Registers all the Plugs with the module and supplies the Jacks with plug ids for connecting.
virtual void UnregisterSockets (SocketRegistry &modul)=0
 Removes all references to Plugs and Jacks from the module.
Public Member Functions inherited from trax::Identified< Signal >
virtual const std::string & Reference (const std::string &name) const=0
 Gets a reference that was set for this object by name.
virtual const std::vector< char const * > & ReferenceNames (const std::string &namePart) const=0
 Searches for all reference names that countain namePart as substring in the name.
virtual IDType ID () const noexcept=0
 Identified (const Identified &)=delete
Identified & operator= (const Identified &)=delete

Detailed Description

A Signal is positioned along a track and is submitted to a Train if it runs over it.

All messages that count potentially for all trains should be implemented as Signals.

Member Function Documentation

◆ GetLocation()

virtual Location trax::Signal::GetLocation ( ) const
pure virtual

Creates a Location for the signals reference point on the tracks.

This would be the Far() value of the range it is registered with.

Returns
A location on the track.

◆ JackOnChange()

virtual Jack & trax::Signal::JackOnChange ( )
pure virtual
Returns
A Jack that pulses its Plug if the connector setting is changed.

◆ PlugToToggle()

virtual MultiPlug & trax::Signal::PlugToToggle ( )
pure virtual
Returns
A Plug to trigger the toggle method.

◆ Set()

virtual Status trax::Signal::Set ( Status status,
bool pulse = true )
pure virtual

Set the Signal's setting.

Parameters
statusStatus to set the signal to.
pulseTrue if the action shall pulse a plug.
Returns
The previous setting.

◆ Toggle()

virtual void trax::Signal::Toggle ( bool pulse = true)
pure virtual

Sets the signal state to the next setting.

Parameters
pulseTrue if the action shall pulse a plug.

◆ TrackAttached()

virtual TrackBuilder * trax::Signal::TrackAttached ( ) const
pure virtual
Returns
Pointer to the track this Signal is attached to, or nullptr, if not attached.

◆ TypeName()

virtual const char * trax::Signal::TypeName ( ) const
pure virtualnoexcept
Returns
the name for the object type that implements this interface.

The documentation for this struct was generated from the following file:
  • C:/Trend/Development/Trax3/Code/trax/Signal.h