Model Railroad System
2.2.1
|
Block occupation detection using Circuits4Tracks Quad Occupancy Detectors and Azatrax SR4s. More...
Public Member Functions | |
C4TSR4_Block (name,...) | |
Constructor: initialize the block object. More... | |
occupiedp () | |
The occupiedp method returns yes or no (true or false) indicating block occupation. More... | |
propagate (aspect, from,...) | |
Method used to propagate distant signal states back down the line. More... | |
Static Public Member Functions | |
static | validate (object) |
Type validating code Raises an error if object is not either the empty string or a C4TSR4_Block type. More... | |
Private Member Functions | |
_entering () | |
Method for entering a block. More... | |
_exiting () | |
Method for exiting a block. More... | |
Private Attributes | |
sensor | |
SR4 object. More... | |
forwardsignal | |
Signal object (typically a three color, one head block signal. More... | |
reversesignal | |
Signal object (typically a three color, one head block signal. More... | |
isoccupied | |
Saved occupation state. More... | |
Static Private Attributes | |
static | sensemap |
Sensor bit mapping to sensor functions. More... | |
Block occupation detection using Circuits4Tracks Quad Occupancy Detectors and Azatrax SR4s.
Above is a simple diagram for using Circuits4Tracks Quad Occupancy Detectors for block occupation detection. A Circuits4Tracks Quad Occupancy board has four current sensors. One wires one side of the track power (either DCC or DC) to a common rail and the other side through the Circuits4Tracks Quad Occupancy Detector to rails isolated with gaps (possibly with insulating rail joiners). This code uses Azatrax SR4s to connect a Circuits4Tracks Quad Occupancy Detectors to the computer via USB. A small circuit board with two ASSR-4128s (dual Solid State Relays) and four 1,000 Ohm resistors and some headers connects the Circuits4Tracks board to the SR4.
Typical usage:
Four blocks in a loop:
A Schematic of the layout would look like this:
For the track work elements use "blockN occupiedp" for the track work elements' occupied command: eg Block1 would have 'block1 occupiedp' as its occupied command, that is its edit window would look like:
The other three blocks would be similar.
Then in the Main Loop, you would have:
Definition at line 59 of file C4TSR4_Block.tcl.
C4TSR4_Block::C4TSR4_Block | ( | name | , |
... | |||
) |
Constructor: initialize the block object.
Create a lowlevel sensor object and install it as a component. Install the blocks signal (created elsewhere).
name | Name of the block object |
... | Options:
|
|
private |
Method for entering a block.
|
private |
Method for exiting a block.
C4TSR4_Block::occupiedp | ( | ) |
The occupiedp method returns yes or no (true or false) indicating block occupation.
C4TSR4_Block::propagate | ( | aspect | , |
from | , | ||
... | |||
) |
Method used to propagate distant signal states back down the line.
aspect | The signal aspect that is being propagated. |
from | The propagating block (not used). |
... | Options:
|
|
static |
Type validating code Raises an error if object is not either the empty string or a C4TSR4_Block type.
|
private |
Signal object (typically a three color, one head block signal.
Definition at line 81 of file C4TSR4_Block.tcl.
|
private |
Saved occupation state.
Definition at line 89 of file C4TSR4_Block.tcl.
|
private |
Signal object (typically a three color, one head block signal.
Definition at line 85 of file C4TSR4_Block.tcl.
|
staticprivate |
Sensor bit mapping to sensor functions.
Definition at line 93 of file C4TSR4_Block.tcl.
|
private |
SR4 object.
Definition at line 77 of file C4TSR4_Block.tcl.