Model Railroad System  2.2.1
main.h
1 // -!- c++ -!- //////////////////////////////////////////////////////////////
2 //
3 // System :
4 // Module :
5 // Object Name : $RCSfile$
6 // Revision : $Revision$
7 // Date : $Date$
8 // Author : $Author$
9 // Created By : Robert Heller
10 // Created : Tue Jul 14 12:40:17 2015
11 // Last Modified : <150816.1431>
12 //
13 // Description
14 //
15 // Notes
16 //
17 // History
18 //
19 /////////////////////////////////////////////////////////////////////////////
20 //
21 // Copyright (C) 2015 Robert Heller D/B/A Deepwoods Software
22 // 51 Locke Hill Road
23 // Wendell, MA 01379-9728
24 //
25 // This program is free software; you can redistribute it and/or modify
26 // it under the terms of the GNU General Public License as published by
27 // the Free Software Foundation; either version 2 of the License, or
28 // (at your option) any later version.
29 //
30 // This program is distributed in the hope that it will be useful,
31 // but WITHOUT ANY WARRANTY; without even the implied warranty of
32 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33 // GNU General Public License for more details.
34 //
35 // You should have received a copy of the GNU General Public License
36 // along with this program; if not, write to the Free Software
37 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
38 //
39 //
40 //
41 //////////////////////////////////////////////////////////////////////////////
42 
43 #ifndef __MAIN_H
44 #define __MAIN_H
45 /** @mainpage Signal Abstract Types (Classes)
46  *
47  * This folder contains a collection of Tcl code to implement signals, using
48  * various methods.
49  *
50  * @section SourceFiles Source files
51  *
52  * Using Azatrax's SR4's to control signals is illustrated in the file
53  * Azatrax_Signals.tcl. One or two SR4's can control one, two, or three headed
54  * signals, either common anode to common cathode.
55  *
56  * Using an Ardunio with a MAX72XX LED Driver to control signals is
57  * illustrated in the file ArdunioMAX72XX_Signals.tcl. Upto eight LEDs per
58  * signal is possible, although the code assumes a maximum of six LEDs in
59  * a three over three two headed signal.
60  *
61  * Using Dr. Bruce Chubb's SMINI or SUSIC/USIC to control signals is
62  * illustrated in the file Chubb_Signals.tcl. Output ports on these nodes can
63  * control one, two, or three headed signals.
64  *
65  * Using CTI's Acela Network Bridge with CTI controler boards to control
66  * signals is illustrated in the file CTI_Signals.tcl.
67  *
68  * @section common Common methods and functionality
69  *
70  * All of the signal type constructors have a common structure. The
71  * constructors take the form:
72  *
73  * @code
74  * typename objectname [optional options]
75  * @endcode
76  *
77  * Eg:
78  *
79  * @code
80  * azatrax_signals::OneHead3Color cp27w -signalname CP27W -signalsn 040001234
81  * @endcode
82  *
83  * There is one common option, @c -signalname. This is the name of the signal
84  * object on the track work schematic. When the signal aspect is changed,
85  * the track work symbol is changed to display the signal's new aspect.
86  *
87  * There is one common method, @c setaspect, which is used to set the signal's
88  * aspect. For a one headed signal, this method takes a single word (eg a
89  * single element list) that is the signal aspect. This will be one of the
90  * colors red, yellow, green, or dark. For a two headed signal, this method
91  * takes a list of two elements, each of which is one of the colors red,
92  * yellow, green, or dark. A three headed signal will take a a list of three
93  * elements, each of which is one of the colors red, yellow, green, or dark.
94  * It should be noted that not all possible combinations are allowed, only
95  * those aspects that make sense. This usually means that only one head will
96  * display a color other than red, with the other heads displaying red. That is
97  * {red yellow} or {green red} or {red red yellow} are allowed, but not
98  * {green yellow} or {green red yellow}.
99  *
100  */
101 
102 #endif // __MAIN_H
103