WIP
DirectOutput framework for virtual pinball cabinets WIP
Go to:
Overview 
DirectOutput.Cab.Out.OutputControllerCompleteBase Class Referenceabstract

This abstract class implement the full base logic for a output controller with a separate thread for the hardware communication. All you have to do to create your own output controller class is to inherit this class and to implement a few abstract methods (int GetNumberOfConfiguredOutputs(), bool VerifySettings(), void ConnectToController(), void DisconnectFromController(), void UpdateOutputs(byte[] OutputValues). More...

Inheritance diagram for DirectOutput.Cab.Out.OutputControllerCompleteBase:
DirectOutput.General.Generic.NamedItemBase DirectOutput.Cab.Out.IOutputController DirectOutput.Cab.Out.ISupportsSetValues DirectOutput.General.Generic.INamedItem DirectOutput.General.Generic.INamedItem DirectOutput.Cab.Out.IOutputController DirectOutput.General.Generic.INamedItem DirectOutput.Cab.Out.AdressableLedStrip.TeensyStripController DirectOutput.Cab.Out.ComPort.PinControl DirectOutput.Cab.Out.DMX.ArtNet DirectOutput.Cab.Out.OutputControllerFlexCompleteBase DirectOutput.Cab.Out.PS.Pinscape

Public Member Functions

void SetValues (int FirstOutput, byte[] Values)
 Sets the values for one or several outputs of the controller. More...
 
virtual void Init (Cabinet Cabinet)
 Initializes the output controller and starts the updater thread. More...
 
virtual void Finish ()
 Finishes the output controller and stop the updater thread. More...
 
void Update ()
 Triggers the update of the physical outputs More...
 

Protected Member Functions

void SetupOutputs ()
 Manages to output object of the output controller. Use the GetNumberOfConfiguredOutputs() method to determine the number of outputs to be setup. More...
 
override void AfterNameChange (string OldName, string NewName)
 
abstract int GetNumberOfConfiguredOutputs ()
 This method must return the number of configured outputs. The method is used internaly to determine the number of output objects which have to be setup. Return a fixed value for output controllers which have a fixed number of outputs. Return the value of a configurable property for controllers with a defineable number of outputs. More...
 
abstract bool VerifySettings ()
 Verifies the settings of the output controller. More...
 
abstract void UpdateOutputs (byte[] OutputValues)
 This method is called whenever new data has to be sent to the output controller. Implement the communication with your hereware in this method. More...
 
abstract void ConnectToController ()
 This method is called when DOF wants to connect to the controller. Implement your own logic to connect to the controller here. More...
 
abstract void DisconnectFromController ()
 This method is called when DOF wants to disconnect from the controller. Implement your own logic to disconnect from the controller here. More...
 
- Protected Member Functions inherited from DirectOutput.General.Generic.NamedItemBase
virtual void BeforeNameChange (string OldName, string NewName)
 
virtual void OnPropertyChanged (string propertyName)
 
virtual void OnPropertyChanging (string propertyName)
 

Properties

OutputList Outputs [get, set]
 Contains the OutputList object for the outputs of the output controller.
More...
 
bool UpdaterThreadIsActive [get]
 Indicates whether the UpdaterThread is active or not. More...
 
- Properties inherited from DirectOutput.General.Generic.NamedItemBase
string Name [get, set]
 Name of the named item.
Triggers BeforeNameChange before a new Name is set.
Triggers AfterNameChanged after a new name has been set. More...
 
- Properties inherited from DirectOutput.General.Generic.INamedItem
string Name [get, set]
 Gets or sets the name of the item.
Must fire the BeforeNameChange and AfterNameChange events when the value of the property is changed. More...
 
- Properties inherited from DirectOutput.Cab.Out.IOutputController
new string Name [get, set]
 Name of the IOutputController. This property is fully implemented in the abstract OutputControllerBase class. More...
 
OutputList Outputs [get, set]
 OutputList containing the IOutput objects for a IOutputController. More...
 

Additional Inherited Members

- Events inherited from DirectOutput.General.Generic.NamedItemBase
EventHandler< NameChangeEventArgsAfterNameChanged
 Event is fired after the value of the property Name has changed. More...
 
EventHandler< NameChangeEventArgsBeforeNameChanged
 Event is fired before the value of the property Name is changed. More...
 
PropertyChangedEventHandler PropertyChanged
 
PropertyChangingEventHandler PropertyChanging
 
- Events inherited from DirectOutput.General.Generic.INamedItem
EventHandler< NameChangeEventArgsBeforeNameChanged
 Occurs before the name of the item changes. More...
 
EventHandler< NameChangeEventArgsAfterNameChanged
 Occurs when after the name of the item has changed. More...
 

Detailed Description

This abstract class implement the full base logic for a output controller with a separate thread for the hardware communication. All you have to do to create your own output controller class is to inherit this class and to implement a few abstract methods (int GetNumberOfConfiguredOutputs(), bool VerifySettings(), void ConnectToController(), void DisconnectFromController(), void UpdateOutputs(byte[] OutputValues).

Definition at line 15 of file OutputControllerCompleteBase.cs.

Member Function Documentation

override void DirectOutput.Cab.Out.OutputControllerCompleteBase.AfterNameChange ( string  OldName,
string  NewName 
)
protectedvirtual

Reimplemented from DirectOutput.General.Generic.NamedItemBase.

Definition at line 60 of file OutputControllerCompleteBase.cs.

abstract void DirectOutput.Cab.Out.OutputControllerCompleteBase.ConnectToController ( )
protectedpure virtual

This method is called when DOF wants to connect to the controller. Implement your own logic to connect to the controller here.

Implemented in DirectOutput.Cab.Out.AdressableLedStrip.TeensyStripController, DirectOutput.Cab.Out.PS.Pinscape, DirectOutput.Cab.Out.DMX.ArtNet, and DirectOutput.Cab.Out.ComPort.PinControl.

abstract void DirectOutput.Cab.Out.OutputControllerCompleteBase.DisconnectFromController ( )
protectedpure virtual

This method is called when DOF wants to disconnect from the controller. Implement your own logic to disconnect from the controller here.

Implemented in DirectOutput.Cab.Out.AdressableLedStrip.TeensyStripController, DirectOutput.Cab.Out.PS.Pinscape, DirectOutput.Cab.Out.ComPort.PinControl, and DirectOutput.Cab.Out.DMX.ArtNet.

virtual void DirectOutput.Cab.Out.OutputControllerCompleteBase.Finish ( )
virtual

Finishes the output controller and stop the updater thread.

Implements DirectOutput.Cab.Out.IOutputController.

Reimplemented in DirectOutput.Cab.Out.PS.Pinscape.

Definition at line 180 of file OutputControllerCompleteBase.cs.

abstract int DirectOutput.Cab.Out.OutputControllerCompleteBase.GetNumberOfConfiguredOutputs ( )
protectedpure virtual

This method must return the number of configured outputs. The method is used internaly to determine the number of output objects which have to be setup. Return a fixed value for output controllers which have a fixed number of outputs. Return the value of a configurable property for controllers with a defineable number of outputs.

Returns
The number of outputs to be configured.

Implemented in DirectOutput.Cab.Out.AdressableLedStrip.TeensyStripController, DirectOutput.Cab.Out.DMX.ArtNet, DirectOutput.Cab.Out.ComPort.PinControl, and DirectOutput.Cab.Out.OutputControllerFlexCompleteBase.

virtual void DirectOutput.Cab.Out.OutputControllerCompleteBase.Init ( Cabinet  Cabinet)
virtual

Initializes the output controller and starts the updater thread.

Parameters
CabinetThe cabinet object which is using the output controller instance.

Implements DirectOutput.Cab.Out.IOutputController.

Reimplemented in DirectOutput.Cab.Out.PS.Pinscape.

Definition at line 151 of file OutputControllerCompleteBase.cs.

void DirectOutput.Cab.Out.OutputControllerCompleteBase.SetupOutputs ( )
protected

Manages to output object of the output controller. Use the GetNumberOfConfiguredOutputs() method to determine the number of outputs to be setup.

Definition at line 27 of file OutputControllerCompleteBase.cs.

void DirectOutput.Cab.Out.OutputControllerCompleteBase.SetValues ( int  FirstOutput,
byte[]  Values 
)

Sets the values for one or several outputs of the controller.

Parameters
FirstOutputThe first output to be updated with a new value (zero based).
ValuesThe values to be used.

Implements DirectOutput.Cab.Out.ISupportsSetValues.

Definition at line 129 of file OutputControllerCompleteBase.cs.

void DirectOutput.Cab.Out.OutputControllerCompleteBase.Update ( )

Triggers the update of the physical outputs

Implements DirectOutput.Cab.Out.IOutputController.

Definition at line 189 of file OutputControllerCompleteBase.cs.

abstract void DirectOutput.Cab.Out.OutputControllerCompleteBase.UpdateOutputs ( byte[]  OutputValues)
protectedpure virtual

This method is called whenever new data has to be sent to the output controller. Implement the communication with your hereware in this method.

Parameters
OutputValuesArray of output values for each numbered output.

Implemented in DirectOutput.Cab.Out.AdressableLedStrip.TeensyStripController, DirectOutput.Cab.Out.PS.Pinscape, DirectOutput.Cab.Out.DMX.ArtNet, and DirectOutput.Cab.Out.ComPort.PinControl.

abstract bool DirectOutput.Cab.Out.OutputControllerCompleteBase.VerifySettings ( )
protectedpure virtual

Verifies the settings of the output controller.

Returns
true if the verification is OK, otherwise false

Implemented in DirectOutput.Cab.Out.AdressableLedStrip.TeensyStripController, DirectOutput.Cab.Out.PS.Pinscape, DirectOutput.Cab.Out.DMX.ArtNet, and DirectOutput.Cab.Out.ComPort.PinControl.

Property Documentation

OutputList DirectOutput.Cab.Out.OutputControllerCompleteBase.Outputs
getset

Contains the OutputList object for the outputs of the output controller.

Remarks
This property is marked with the XMLIgnore attributte so its content does not get serialized, which means that output controller implementations inherting from this class have to create the output objects in the list.
The XMLIgnore attribute is inherted to classes inheriting from this base class. This means that inherited classes do not serialize this property unless a specific serialization implementation is used in that class.

Definition at line 74 of file OutputControllerCompleteBase.cs.

bool DirectOutput.Cab.Out.OutputControllerCompleteBase.UpdaterThreadIsActive
get

Indicates whether the UpdaterThread is active or not.

Definition at line 292 of file OutputControllerCompleteBase.cs.


The documentation for this class was generated from the following file: