├── DCCpp_Controller
├── data
│ ├── cab-54.jpg
│ ├── ARCENA-15.vlw
│ ├── Miriam-36.vlw
│ ├── cab-1202.jpg
│ ├── cab-1506.jpg
│ ├── cab-2004.jpg
│ ├── cab-6021.jpg
│ ├── cab-622.jpg
│ ├── cab-8601.jpg
│ ├── helpMenu.jpg
│ ├── IrisUPC-36.vlw
│ ├── JasmineUPC-36.vlw
│ ├── MiriamFixed-26.vlw
│ ├── LucidaConsole-18.vlw
│ └── OCRAExtended-26.vlw
├── coreConstants.java
├── dccStatus.xml
├── dRoutes.pde
├── gButtons.pde
├── dTurnouts.pde
├── DCCpp_Controller.pde
├── dTracks.pde
├── gTextBoxes.pde
├── serialComponents.pde
├── eventHandlers.pde
├── gWindows.pde
├── coreComponents.pde
├── progComponents.pde
├── dCabs.pde
├── dSensors.pde
└── controllerConfig.pde
└── README.md
/DCCpp_Controller/data/cab-54.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/cab-54.jpg
--------------------------------------------------------------------------------
/DCCpp_Controller/data/ARCENA-15.vlw:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/ARCENA-15.vlw
--------------------------------------------------------------------------------
/DCCpp_Controller/data/Miriam-36.vlw:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/Miriam-36.vlw
--------------------------------------------------------------------------------
/DCCpp_Controller/data/cab-1202.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/cab-1202.jpg
--------------------------------------------------------------------------------
/DCCpp_Controller/data/cab-1506.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/cab-1506.jpg
--------------------------------------------------------------------------------
/DCCpp_Controller/data/cab-2004.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/cab-2004.jpg
--------------------------------------------------------------------------------
/DCCpp_Controller/data/cab-6021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/cab-6021.jpg
--------------------------------------------------------------------------------
/DCCpp_Controller/data/cab-622.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/cab-622.jpg
--------------------------------------------------------------------------------
/DCCpp_Controller/data/cab-8601.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/cab-8601.jpg
--------------------------------------------------------------------------------
/DCCpp_Controller/data/helpMenu.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/helpMenu.jpg
--------------------------------------------------------------------------------
/DCCpp_Controller/data/IrisUPC-36.vlw:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/IrisUPC-36.vlw
--------------------------------------------------------------------------------
/DCCpp_Controller/data/JasmineUPC-36.vlw:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/JasmineUPC-36.vlw
--------------------------------------------------------------------------------
/DCCpp_Controller/data/MiriamFixed-26.vlw:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/MiriamFixed-26.vlw
--------------------------------------------------------------------------------
/DCCpp_Controller/data/LucidaConsole-18.vlw:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/LucidaConsole-18.vlw
--------------------------------------------------------------------------------
/DCCpp_Controller/data/OCRAExtended-26.vlw:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DccPlusPlus/Controller/HEAD/DCCpp_Controller/data/OCRAExtended-26.vlw
--------------------------------------------------------------------------------
/DCCpp_Controller/coreConstants.java:
--------------------------------------------------------------------------------
1 | //////////////////////////////////////////////////////////////////////////
2 | // DCC++ CONTROLLER: Constants
3 | //////////////////////////////////////////////////////////////////////////
4 |
5 | enum ButtonType{
6 | NORMAL,
7 | ONESHOT,
8 | HOLD,
9 | REVERSE,
10 | T_COMMAND,
11 | TI_COMMAND,
12 | Z_COMMAND
13 | }
14 |
15 | enum InputType{
16 | BIN ("[01]"),
17 | DEC ("[0-9]"),
18 | HEX ("[A-Fa-f0-9]");
19 |
20 | final String regexp;
21 | InputType(String regexp){
22 | this.regexp=regexp;
23 | }
24 | }
25 |
26 | enum CabFunction{
27 | F_LIGHT,
28 | R_LIGHT,
29 | D_LIGHT,
30 | BELL,
31 | HORN,
32 | S_HORN
33 | }
34 |
35 | enum ThrottleSpeed{
36 | FULL,
37 | SLOW,
38 | STOP,
39 | REVERSE,
40 | REVERSE_SLOW;
41 |
42 | static ThrottleSpeed index(String findName){
43 | for(ThrottleSpeed p : ThrottleSpeed.values()){
44 | if(p.name().equals(findName))
45 | return(p);
46 | }
47 | return(null);
48 | }
49 | }
50 |
51 | enum AutoProgram{
52 | NONE ("NONE"),
53 | ALL_CABS_RUN ("ALL CABS RUN"),
54 | ALL_CABS_PARK ("ALL CABS PARK"),
55 | SINGLE_CAB_PARK ("SINGLE CAB PARK"),
56 | AUTO_CLEAN ("AUTO CLEAN"),
57 | SINGLE_CAB_RUN ("SINGLE CAB RUN");
58 |
59 | String name;
60 | AutoProgram(String name){
61 | this.name=name;
62 | }
63 | static AutoProgram index(String findName){
64 | for(AutoProgram p : AutoProgram.values()){
65 | if(p.name.equals(findName))
66 | return(p);
67 | }
68 | return(null);
69 | }
70 |
71 | boolean equals(AutoProgram p){
72 | return(this==p);
73 | }
74 |
75 | }
--------------------------------------------------------------------------------
/DCCpp_Controller/dccStatus.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Emulator
4 |
5 | false
6 | false
7 | true
8 | false
9 | false
10 | false
11 | true
12 | true
13 | false
14 | false
15 | true
16 | false
17 | true
18 | false
19 |
20 |
21 | FULL
22 | FULL
23 | STOP
24 | STOP
25 | STOP
26 | FULL
27 | STOP
28 | 42
29 | 0
30 | 0
31 | SINGLE CAB PARK
32 | 622
33 | STOP
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | /dev/tty.usbmodem1431
62 | 192.168.1.169
63 |
64 |
--------------------------------------------------------------------------------
/DCCpp_Controller/dRoutes.pde:
--------------------------------------------------------------------------------
1 | //////////////////////////////////////////////////////////////////////////
2 | // DCC++ CONTROLLER: Class for Route Button
3 | //
4 | // RouteButton - creates a button to activate one or more Track Buttons
5 | // that in turn set one or more TURNOUTS or CROSSOVERS to either an
6 | // open or closed position representing a specific track route
7 | // - tracks may also be added to a route button so that they are highlighted
8 | // on the screen when the route button is first selected
9 | // - track highlights will be color-coded to indicate whether each
10 | // turnout or crossover that in in the route is already set properly,
11 | // or needs to be toggled if that route is activiated
12 | //
13 | // - two types of route buttons are supported:
14 | //
15 | // * large stand-alone button with a text label indicated the name of the route
16 | // * small button placed on a track where the route is obvious and does
17 | // not require a name (such as at the end of a siding)
18 | //
19 | //////////////////////////////////////////////////////////////////////////
20 |
21 | class RouteButton extends DccComponent{
22 | int xPos, yPos;
23 | int kWidth, kHeight;
24 | String label="";
25 | boolean routeOn=false;
26 | ArrayList aTrackButtons = new ArrayList();
27 | ArrayList bTrackButtons = new ArrayList();
28 | ArrayList