Model train control system
Abstract
A system which operates a digitally controlled model railroad transmitting a first command from a first client program to a resident external controlling interface through a first communications transport. A second command is transmitted from a second client program to the resident external controlling interface through a second communications transport. The first command and the second command are received by the resident external controlling interface which queues the first and second commands. The resident external controlling interface sends third and fourth commands representative of the first and second commands, respectively, to a digital command station for execution on the digitally controlled model railroad.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) transmitting a second command from a second client program to said resident external controlling interface through a second communications transport;
(c) receiving said first command and said second command at said resident external controlling interface;
(d) said resident external controlling interface queuing said first and second commands and deleting one of said first and second commands if they are the same; and
(e) said resident external controlling interface sending a third command representative of said one of said first and second commands not deleted to a digital command station for execution on said digitally controlled model railroad.
2. The method of claim 1 , further comprising the steps of:
(a) providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface that said first command was successfully validated against permissible actions regarding the interaction between a plurality of objects of said model railroad prior to validating said first command; and
(b) providing an acknowledgment to said second client program in response to receiving said second command by said resident external controlling interface that said second command was successfully validated against permissible actions regarding the interaction between a plurality of objects of said model railroad prior to validating said second command.
3. The method of claim 1 , further comprising the steps of selectively sending said third command to one of a plurality of digital command stations.
4. The method of claim 1 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said digital command station and validating said responses regarding said interaction.
5. The method of claim 1 wherein said first and second commands relate to the speed of locomotives.
6. The method of claim 2 , further comprising the step of updating said successful validation to at least one of said first and second client programs of at least one of said first and second commands with an indication that at least one of said first and second commands was unsuccessfully validated.
7. The method of claim 1 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
8. The method of claim 7 wherein said validation is performed by an event driven dispatcher.
9. The method of claim 7 wherein said one of said first and second command, and said third command are the same command.
10. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) receiving said first command at said resident external controlling interface;
(c) queuing said first command in a command queue if said first command is different than all other commands in said command queue; and
(d) said resident external controlling interface selectively sending a second command representative of said first command to one of a plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said first and second commands.
11. The method of claim 10 , further comprising the steps of:
(a) transmitting a third command from a second client program to said resident external controlling interface through a second communications transport;
(b) receiving said third command at said resident external controlling interface;
(c) queuing said third command in a command queue if said third command is different than all other commands in said command queue; and
(d) said resident external controlling interface selectively sending a fourth command representative of said third command to one of said plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said third and fourth commands.
12. The method of claim 11 wherein said first communications transport is at least one of a COM interface, a DCOM interface, and a COBRA interface.
13. The method of claim 11 wherein said first communications transport and said second communications transport are DCOM interfaces.
14. The method of claim 10 wherein said first client program and said resident external controlling interface are operating on the same computer.
15. The method of claim 11 wherein said first client program, said second client program, and said resident external controlling interface are all operating on different computers.
16. The method of claim 10 , further comprising the step of providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface prior to validating said first command against permissible actions regarding the interaction between a plurality of objects of said model railroad.
17. The method of claim 16 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station and validating said responses regarding said interaction.
18. The method of claim 17 , further comprising the step of comparing said command station responses to previous commands sent to said digital command station to determine which said previous commands it corresponds with.
19. The method of claim 16 , further comprising the step of updating validation of said first command based on data received from said digital command stations.
20. The method of claim 19 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon command station responses representative of said state of said digitally controlled model railroad.
21. The method of claim 20 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by said resident external controlling interface together with state information from said database related to said first command.
22. The method of claim 10 wherein said resident external controlling interface communicates in an asynchronous manner with said first client program while communicating in a synchronous manner with said plurality of digital command stations.
23. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) transmitting a second command from a second client program to a resident external controlling interface through a second communications transport;
(c) receiving said first command at said resident external controlling interface;
(d) receiving said second command at said resident external controlling interface;
(e) queuing said first and second commands, and deleting one of said first and second commands if they are the same; and
(f) said resident external controlling interface sending a third and fourth command representative of said first command and said second command, respectively, to the same digital command station for execution on said digitally controlled model railroad.
24. The method of claim 23 wherein said resident external controlling interface communicates in an asynchronous manner with said first and second client programs while communicating in a synchronous manner with said digital command station.
25. The method of claim 23 wherein said first communications transport is at least one of a COM interface and a DCOM interface.
26. The method of claim 23 wherein said first communications transport and said second communications transport are DCOM interfaces.
27. The method of claim 23 wherein said first client program and said resident external controlling interface are operating on the same computer.
28. The method of claim 23 wherein said first client program, said second client program, and said resident external controlling interface are all operating on different computers.
29. The method of claim 23 , further comprising the step of providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface that said first command was successfully validated against permissible actions regarding the interaction between a plurality of objects of said model railroad prior to validating said first command.
30. The method of claim 29 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station.
31. The method of claim 30 , further comprising the step of comparing said command station responses to previous commands sent to said digital command station to determine which said previous commands it corresponds with.
32. The method of claim 31 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
33. The method of claim 32 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by said resident external controlling interface together with state information from said database related to said first command.
34. The method of claim 23 wherein said validation is performed by an event driven dispatcher.
35. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a first processor through a first communications transport;
(b) receiving said first command at said first processor;
(c) queuing said first command in a command queue that is not a first-in-first-out command queue; and
(d) said first processor providing an acknowledgment to said first client program through said first communications transport indicating that said first command has been validated against permissible actions regarding the interaction between a plurality of objects of said model railroad and properly executed prior to execution of commands related to said first command by said digitally controlled model railroad.
36. The method of claim 35 , further comprising the step of sending said first command to a second processor which processes said first command into a state suitable for a digital command station for execution on said digitally controlled model railroad.
37. The method of claim 36 , further comprising the step of said second process queuing a plurality of commands received.
38. The method of claim 35 , further comprising the steps of:
(a) transmitting a second command from a second client program to said first processor through a second communications transport;
(b) receiving said second command at said first processor; and
(c) said first processor selectively providing an acknowledgment to said second client program through said second communications transport indicating that said second command has been validated against permissible actions regarding the interaction between a plurality of objects of said model railroad and properly executed prior to execution of commands related to said second command by said digitally controlled model railroad.
39. The method of claim 38 , further comprising the steps of:
(a) sending a third command representative of said first command to one of a plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said first and third commands; and
(b) sending a fourth command representative of said second command to one of said plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said second and fourth commands.
40. The method of claim 35 wherein said first communications transport is at least one of a COM interface and a DCOM interface.
41. The method of claim 38 wherein said first communications transport and said second communications transport are DCOM interfaces.
42. The method of claim 35 wherein said first client program and said first processor are operating on the same computer.
43. The method of claim 38 wherein said first client program, said second client program, and said first processor are all operating on different computers.
44. The method of claim 35 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station.
45. The method of claim 35 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
46. The method of claim 45 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by first processor together with state information from said database related to said first command.
47. The method of claim 43 wherein said first processor communicates in an asynchronous manner with said first client program while communicating in a synchronous manner with said plurality of digital command stations.
48. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) transmitting a second command from a second client program to said resident external controlling interface through a second communications transport;
(c) receiving said first command and said second command at said resident external controlling interface;
(d) said resident external controlling interface queuing said first and second commands;
(e) comparing said first and second commands to one another to determine if the result of executing said first and second commands would result in no net state change of said model railroad and the execution of one of said first and second command would result in a net state change of said model railroad; and
(f) said resident external controlling interface sending third and fourth commands representative of said first and second commands, respectively, to a digital command station for execution on said digitally controlled model railroad if as a result of said comparing a net state change of said model railroad would result.
49. The method of claim 48 , further comprising the steps of:
(a) providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface that said first command was successfully validated against permissible actions regarding the interaction between a plurality of objects of said model railroad prior to validating said first command; and
(b) providing an acknowledgment to said second client program in response to receiving said second command by said resident external controlling interface that said second command was successfully validated against permissible actions regarding the interaction between a plurality of objects of said model railroad prior to validating said second command.
50. The method of claim 48 , further comprising the steps of selectively sending said third command to one of a plurality of digital command stations.
51. The method of claim 48 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said digital command station and validating said responses regarding said interaction.
52. The method of claim 48 wherein said first and second commands relate to the speed of locomotives.
53. The method of claim 49 , further comprising the step of updating said successful validation to at least one of said first and second client programs of at least one of said first and second commands with an indication that at least one of said first and second commands was unsuccessfully validated.
54. The method of claim 48 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
55. The method of claim 54 wherein said validation is performed by an event driven dispatcher.
56. The method of claim 54 wherein one of said first and second command and said third command are the same command, and said second command and said fourth command are the same command.
57. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) receiving said first command at said resident external controlling interface;
(c) comparing said first command against other commands in a command queue to determine if the result of executing said first command and said other commands would result in no net state change of said model railroad and the execution of said first command would result in a net state change of said model railroad; and
(d) said resident external controlling interface selectively sending a second command representative of said first command to one of a plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said first and second commands.
58. The method of claim 57 , further comprising the steps of:
(a) transmitting a third command from a second client program to said resident external controlling interface through a second communications transport;
(b) receiving said third command at said resident external controlling interface;
(c) comparing said third command against other commands in said command queue to determine if the result of executing said third command and said other commands would result in no net state change of said model railroad and the execution of said third command would result in a net state change of said model railroad; and
(d) said resident external controlling interface selectively sending a fourth command representative of said third command to one of said plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said third and fourth commands.
59. The method of claim 58 wherein said first communications transport is at least one of a COM interface and a DCOM interface.
60. The method of claim 58 wherein said first communications transport and said second communications transport are DCOM interfaces.
61. The method of claim 57 wherein said first client program and said resident external controlling interface are operating on the same computer.
62. The method of claim 58 wherein said first client program, said second client program, and said resident external controlling interface are all operating on different computers.
63. The method of claim 57 , further comprising the step of providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface prior to validating said first command against permissible actions regarding the interaction between a plurality of objects of said model railroad.
64. The method of claim 63 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station and validating said responses regarding said interaction.
65. The method of claim 64 , further comprising the step of comparing said command station responses to previous commands sent to said digital command station to determine which said previous commands it corresponds with.
66. The method of claim 63 , further comprising the step of updating validation of said first command based on data received from said digital command stations.
67. The method of claim 66 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon command station responses representative of said state of said digitally controlled model railroad.
68. The method of claim 67 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by said resident external controlling interface together with state information from said database related to said first command.
69. The method of claim 57 wherein said resident external controlling interface communicates in an asynchronous manner with said first client program while communicating in a synchronous manner with said plurality of digital command stations.
70. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) transmitting a second command from a second client program to a resident external controlling interface through a second communications transport;
(c) receiving said first command at said resident external controlling interface;
(d) receiving said second command at said resident external controlling interface;
(e) comparing said first and second commands to one another to determine if the result of executing said first and second commands would result in no net state change of said model railroad and the execution of one of said first command and said second command would result in a net state change of said model railroad; and
(f) said resident external controlling interface sending a third and fourth command representative of said first command and said second command, respectively, to the same digital command station for execution on said digitally controlled model railroad if as a result of said comparing a net state change of said model railroad would result.
71. The method of claim 70 wherein said resident external controlling interface communicates in an asynchronous manner with said first and second client programs while communicating in a synchronous manner with said digital command station.
72. The method of claim 70 wherein said first communications transport is at least one of a COM interface and a DCOM interface.
73. The method of claim 70 wherein said first communications transport and said second communications transport are DCOM interfaces.
74. The method of claim 70 wherein said first client program and said resident external controlling interface are operating on the same computer.
75. The method of claim 70 wherein said first client program, said second client program, and said resident external controlling interface are all operating on different computers.
76. The method of claim 70 , further comprising the step of providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface that said first command was successfully validated against permissible actions regarding the interaction between a plurality of objects of said model railroad prior to validating said first command.
77. The method of claim 76 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station.
78. The method of claim 77 , further comprising the step of comparing said command station responses to previous commands sent to said digital command station to determine which said previous commands it corresponds with.
79. The method of claim 78 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
80. The method of claim 79 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by said resident external controlling interface together with state information from said database related to said first command.
81. The method of claim 70 wherein said validation is performed by an event driven dispatcher.
82. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a first processor through a first communications transport;
(b) receiving said first command at said first processor;
(c) comparing said first command against other commands in a command queue to determine if the result of executing said first command and at least one of said other commands would result in no net state change of said model railroad and the execution of said first command would result in a net state change of said model railroad; and
(d) said first processor providing an acknowledgment to said first client program through said first communications transport indicating that said first command has been executed.
83. The method of claim 82 , further comprising the step of sending said first command to a second processor which processes said first command into a state suitable for a digital command station for execution on said digitally controlled model railroad.
84. The method of claim 83 , further comprising the step of said second process queuing a plurality of commands received.
85. The method of claim 82 , further comprising the steps of:
(a) transmitting a second command from a second client program to said first processor through a second communications transport;
(b) receiving said second command at said first processor; and
(c) said first processor selectively providing an acknowledgment to said second client program through said second communications transport indicating that said second command has been executed.
86. The method of claim 85 , further comprising the steps of:
(a) sending a third command representative of said first command to one of a plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said first and third commands; and
(b) sending a fourth command representative of said second command to one of said plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said second and fourth commands.
87. The method of claim 82 wherein said first communications transport is at least one of a COM interface and a DCOM interface.
88. The method of claim 85 wherein said first communications transport and said second communications transport are DCOM interfaces.
89. The method of claim 82 wherein said first client program and said first processor are operating on the same computer.
90. The method of claim 85 wherein said first client program, said second client program, and said first processor are all operating on different computers.
91. The method of claim 82 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station.
92. The method of claim 82 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
93. The method of claim 92 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by first processor together with state information from said database related to said first command.
94. The method of claim 90 wherein said first processor communicates in an asynchronous manner with said first client program while communicating in a synchronous manner with said plurality of digital command stations.
95. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) transmitting a second command from a second client program to said resident external controlling interface through a second communications transport;
(c) receiving said first command and said second command at said resident external controlling interface;
(d) said resident external controlling interface queuing said first and second commands;
(e) comparing said first and second commands to one another to determine if the result of executing said first and second commands would result in a net state change of said model railroad that would also result from a single different command, and the execution of one of said first and second commands would result in a net state change of said model railroad; and
(f) said resident external controlling interface sending said single different command representative of the net state change of said first and second commands to a digital command station for execution on said digitally controlled model railroad.
96. The method of claim 95 , further comprising the steps of:
(a) providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface that said first command was successfully validated against permissible actions regarding the interaction between a plurality of objects of said model railroad prior to validating said first command; and
(b) providing an acknowledgment to said second client program in response to receiving said second command by said resident external controlling interface that said second command was successfully validated against permissible actions regarding the interaction between a plurality of objects of said model railroad prior to validating said second command.
97. The method of claim 95 , further comprising the steps of selectively sending said single different command to one of a plurality of digital command stations.
98. The method of claim 95 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said digital command station and validating said responses regarding said interaction.
99. The method of claim 95 wherein said first and second commands relate to the speed of locomotives.
100. The method of claim 96 , further comprising the step of updating said successful validation to at least one of said first and second client programs of at least one of said first and second commands with an indication that at least one of said first and second commands was unsuccessfully validated.
101. The method of claim 95 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
102. The method of claim 101 wherein said validation is performed by an event driven dispatcher.
103. The method of claim 101 wherein said first command and said third command are the same command, and said second command and said fourth command are the same command.
104. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) receiving said first command at said resident external controlling interface;
(c) comparing said first command against other commands in a command queue to determine if the result of executing said first and second commands would result in a net state change of said model railroad that would also result from a single different command, and the execution of said first command would result in a net state change of said model railroad; and
(d) said resident external controlling interface selectively sending said single different command to one of a plurality of digital command stations for execution on said digitally controlled model railroad.
105. The method of claim 104 , further comprising the steps of:
(a) transmitting a third command from a second client program to said resident external controlling interface through a second communications transport;
(b) receiving said third command at said resident external controlling interface;
(c) validating said third command against permissible actions regarding the interaction between a plurality of objects of said model railroad; and
(d) said resident external controlling interface selectively sending a fourth command representative of said third command to one of said plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said third and fourth commands.
106. The method of claim 105 wherein said first communications transport is at least one of a COM interface and a DCOM interface.
107. The method of claim 105 wherein said first communications transport and said second communications transport are DCOM interfaces.
108. The method of claim 104 wherein said first client program and said resident external controlling interface are operating on the same computer.
109. The method of claim 105 wherein said first client program, said second client program, and said resident external controlling interface are all operating on different computers.
110. The method of claim 104 , further comprising the step of providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface prior to validating said first command against permissible actions regarding the interaction between a plurality of objects of said model railroad.
111. The method of claim 110 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station and validating said responses regarding said interaction.
112. The method of claim 111 , further comprising the step of comparing said command station responses to previous commands sent to said digital command station to determine which said previous commands it corresponds with.
113. The method of claim 110 , further comprising the step of updating validation of said first command based on data received from said digital command stations.
114. The method of claim 113 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon command station responses representative of said state of said digitally controlled model railroad.
115. The method of claim 114 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by said resident external controlling interface together with state information from said database related to said first command.
116. The method of claim 104 wherein said resident external controlling interface communicates in an asynchronous manner with said first client program while communicating in a synchronous manner with said plurality of digital command stations.
117. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) transmitting a second command from a second client program to a resident external controlling interface through a second communications transport;
(c) receiving said first command at said resident external controlling interface;
(d) receiving said second command at said resident external controlling interface;
(e) comparing said first and second commands to one another to determine if the result of executing said first and second commands would result in a net state change of said model railroad that would also result from a single different command, and the execution of one of said first and second commands would result in a net state change of said model railroad; and
(f) said resident external controlling interface sending said single different command to a digital command station for execution on said digitally controlled model railroad if as a result of said comparing such a single different command exists.
118. The method of claim 117 wherein said resident external controlling interface communicates in an asynchronous manner with said first and second client programs while communicating in a synchronous manner with said digital command station.
119. The method of claim 117 wherein said first communications transport is at least one of a COM interface and a DCOM interface.
120. The method of claim 117 wherein said first communications transport and said second communications transport are DCOM interfaces.
121. The method of claim 117 wherein said first client program and said resident external controlling interface are operating on the same computer.
122. The method of claim 117 wherein said first client program, said second client program, and said resident external controlling interface are all operating on different computers.
123. The method of claim 117 , further comprising the step of providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface that said first command was successfully validated against permissible actions regarding the interaction between a plurality of objects of said model railroad prior to validating said first command.
124. The method of claim 123 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station.
125. The method of claim 124 , further comprising the step of comparing said command station responses to previous commands sent to said digital command station to determine which said previous commands it corresponds with.
126. The method of claim 125 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
127. The method of claim 126 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by said resident external controlling interface together with state information from said database related to said first command.
128. The method of claim 117 wherein said validation is performed by an event driven dispatcher.
129. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a first processor through a first communications transport;
(b) receiving said first command at said first processor;
(c) comparing said first command against other commands in a command queue to determine if the result of executing said first command and at least one of said other commands would result in net state change of said model railroad that would also result from a single different command, and the execution of said first command would result in a net state change of said model railroad; and
(d) said first processor providing an acknowledgment to said first client program through said first communications transport indicating that said first command has been executed.
130. The method of claim 129 , further comprising the step of sending said first command to a second processor which processes said first command into a state suitable for a digital command station for execution on said digitally controlled model railroad.
131. The method of claim 130 , further comprising the step of said second process queuing a plurality of commands received.
132. The method of claim 129 , further comprising the steps of:
(a) transmitting a second command from a second client program to said first processor through a second communications transport;
(b) receiving said second command at said first processor; and
(c) said first processor selectively providing an acknowledgment to said second client program through said second communications transport indicating that said second command has been executed.
133. The method of claim 132 , further comprising the steps of:
(a) sending a third command representative of said first command to one of a plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said first and third commands; and
(b) sending a fourth command representative of said second command to one of said plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said second and fourth commands.
134. The method of claim 129 wherein said first communications transport is at least one of a COM interface and a DCOM interface.
135. The method of claim 132 wherein said first communications transport and said second communications transport are DCOM interfaces.
136. The method of claim 129 wherein said first client program and said first processor are operating on the same computer.
137. The method of claim 132 wherein said first client program, said second client program, and said first processor are all operating on different computers.
138. The method of claim 129 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station.
139. The method of claim 129 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
140. The method of claim 139 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by first processor together with state information from said database related to said first command.
141. The method of claim 137 wherein said first processor communicates in an asynchronous manner with said first client program while communicating in a synchronous manner with said plurality of digital command stations.
142. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) transmitting a second command from a second client program to said resident external controlling interface through a second communications transport;
(c) receiving said first command and said second command at said resident external controlling interface;
(d) said resident external controlling interface queuing said first and second commands;
(e) queuing said first and second commands in a command queue based on a non-first-in-first-out prioritization; and
(f) said resident external controlling interface sending third and fourth commands representative of said first and second commands, respectively, to a digital command station for execution on said digitally controlled model railroad based upon said prioritization.
143. The method of claim 142 , further comprising the steps of:
(a) providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface that said first command was successfully validated against permissible actions regarding the interaction between a plurality of objects of said model railroad prior to validating said first command; and
(b) providing an acknowledgment to said second client program in response to receiving said second command by said resident external controlling interface that said second command was successfully validated against permissible actions regarding the interaction between a plurality of objects of said model railroad prior to validating said second command.
144. The method of claim 142 , further comprising the steps of selectively sending said third command to one of a plurality of digital command stations.
145. The method of claim 142 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said digital command station and validating said responses regarding said interaction.
146. The method of claim 142 wherein said first and second commands relate to the speed of locomotives.
147. The method of claim 143 , further comprising the step of updating said successful validation to at least one of said first and second client programs of at least one of said first and second commands with an indication that at least one of said first and second commands was unsuccessfully validated.
148. The method of claim 142 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
149. The method of claim 148 wherein said validation is performed by an event driven dispatcher.
150. The method of claim 148 wherein said first command and said third command are the same command, and said second command and said fourth command are the same command.
151. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) receiving said first command at said resident external controlling interface;
(c) queuing said first command in a command queue based on a non-first-in-first-out prioritization; and
(d) said resident external controlling interface selectively sending a second command representative of said first command to one of a plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said first and second commands and said prioritization.
152. The method of claim 151 , further comprising the steps of:
(a) transmitting a third command from a second client program to said resident external controlling interface through a second communications transport;
(b) receiving said third command at said resident external controlling interface;
(c) queuing said third command in said command queue based on a non-first-in-first-out prioritization; and
(d) said resident external controlling interface selectively sending a fourth command representative of said third command to one of said plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said third and fourth commands and said prioritization.
153. The method of claim 152 wherein said first communications transport is at least one of a COM interface and a DCOM interface.
154. The method of claim 152 wherein said first communications transport and said second communications transport are DCOM interfaces.
155. The method of claim 151 wherein said first client program and said resident external controlling interface are operating on the same computer.
156. The method of claim 152 wherein said first client program, said second client program, and said resident external controlling interface are all operating on different computers.
157. The method of claim 151 , further comprising the step of providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface prior to validating said first command against permissible actions regarding the interaction between a plurality of objects of said model railroad.
158. The method of claim 157 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station and validating said responses regarding said interaction.
159. The method of claim 158 , further comprising the step of comparing said command station responses to previous commands sent to said digital command station to determine which said previous commands it corresponds with.
160. The method of claim 157 , further comprising the step of updating validation of said first command based on data received from said digital command stations.
161. The method of claim 160 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon command station responses representative of said state of said digitally controlled model railroad.
162. The method of claim 151 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by said resident external controlling interface together with state information from said database related to said first command.
163. The method of claim 151 wherein said resident external controlling interface communicates in an asynchronous manner with said first client program while communicating in a synchronous manner with said plurality of digital command stations.
164. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) transmitting a second command from a second client program to a resident external controlling interface through a second communications transport;
(c) receiving said first command at said resident external controlling interface;
(d) receiving said second command at said resident external controlling interface;
(e) queuing said first and second commands in a command queue based on a non-first-in-first-out prioritization; and
(f) said resident external controlling interface sending a third and fourth command representative of said first command and said second command, respectively, to the same digital command station for execution on said digitally controlled model railroad based upon said prioritization.
165. The method of claim 164 wherein said resident external controlling interface communicates in an asynchronous manner with said first and second client programs while communicating in a synchronous manner with said digital command station.
166. The method of claim 164 wherein said first communications transport is at least one of a COM interface and a DCOM interface.
167. The method of claim 164 wherein said first communications transport and said second communications transport are DCOM interfaces.
168. The method of claim 164 wherein said first client program and said resident external controlling interface are operating on the same computer.
169. The method of claim 164 wherein said first client program, said second client program, and said resident external controlling interface are all operating on different computers.
170. The method of claim 164 , further comprising the step of providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface that said first command was successfully validated against permissible actions regarding the interaction between a plurality of objects of said model railroad prior to validating said first command.
171. The method of claim 170 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station.
172. The method of claim 171 , further comprising the step of comparing said command station responses to previous commands sent to said digital command station to determine which said previous commands it corresponds with.
173. The method of claim 172 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
174. The method of claim 173 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by said resident external controlling interface together with state information from said database related to said first command.
175. The method of claim 164 wherein said validation is performed by an event driven dispatcher.
176. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a first processor through a first communications transport;
(b) receiving said first command at said first processor;
(c) queuing said first command in a command queue based on a non-first-in-first-out prioritization; and
(d) said first processor providing an acknowledgment to said first client program through said first communications transport indicating that said first command has been executed.
177. The method of claim 176 , further comprising the step of sending said first command to a second processor which processes said first command into a state suitable for a digital command station for execution on said digitally controlled model railroad.
178. The method of claim 177 , further comprising the step of said second process queuing a plurality of commands received.
179. The method of claim 176 , further comprising the steps of:
(a) transmitting a second command from a second client program to said first processor through a second communications transport;
(b) receiving said second command at said first processor; and
(c) said first processor selectively providing an acknowledgment to said second client program through said second communications transport indicating that said second command has been executed.
180. The method of claim 179 , further comprising the steps of:
(a) sending a third command representative of said first command to one of a plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said first and third commands; and
(b) sending a fourth command representative of said second command to one of said plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said second and fourth commands.
181. The method of claim 176 wherein said first communications transport is at least one of a COM interface and a DCOM interface.
182. The method of claim 179 wherein said first communications transport and said second communications transport are DCOM interfaces.
183. The method of claim 176 wherein said first client program and said first processor are operating on the same computer.
184. The method of claim 179 wherein said first client program, said second client program, and said first processor are all operating on different computers.
185. The method of claim 176 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station.
186. The method of claim 176 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
187. The method of claim 186 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by first processor together with state information from said database related to said first command.
188. The method of claim 184 wherein said first processor communicates in an asynchronous manner with said first client program while communicating in a synchronous manner with said plurality of digital command stations.
189. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) transmitting a second command from a second client program to said resident external controlling interface through a second communications transport;
(c) receiving said first command and said second command at said resident external controlling interface;
(d) said resident external controlling interface queuing said first and second commands;
(e) queuing said first and second commands in a command queue having the characteristic that valid commands in said command queue are removed from said command queue without being executed by said model railroad; and
(f) said resident external controlling interface sending third and fourth commands representative of said first and second commands, respectively, to a digital command station for execution on said digitally controlled model railroad if not said removed.
190. The method of claim 189 , further comprising the steps of:
(a) providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface that said first command was successfully validated against permissible actions regarding the interaction between a plurality of objects of said model railroad prior to validating said first command; and
(b) providing an acknowledgment to said second client program in response to receiving said second command by said resident external controlling interface that said second command was successfully validated against permissible actions regarding the interaction between a plurality of objects of said model railroad prior to validating said second command.
191. The method of claim 189 , further comprising the steps of selectively sending said third command to one of a plurality of digital command stations.
192. The method of claim 189 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said digital command station and validating said responses regarding said interaction.
193. The method of claim 189 wherein said first and second commands relate to the speed of locomotives.
194. The method of claim 190 , further comprising the step of updating said successful validation to at least one of said first and second client programs of at least one of said first and second commands with an indication that at least one of said first and second commands was unsuccessfully validated.
195. The method of claim 189 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
196. The method of claim 195 wherein said validation is performed by an event driven dispatcher.
197. The method of claim 195 wherein said first command and said third command are the same command, and said second command and said fourth command are the same command.
198. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) receiving said first command at said resident external controlling interface;
(c) queuing said first command in a command queue having the characteristics that valid commands in said command queue are removed from said command queue without being executed by said model railroad; and
(d) said resident external controlling interface selectively sending a second command representative of said first command to one of a plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said first and second commands if not said removed.
199. The method of claim 198 , further comprising the steps of:
(a) transmitting a third command from a second client program to said resident external controlling interface through a second communications transport;
(b) receiving said third command at said resident external controlling interface;
(c) queuing said third command in said command queue; and
(d) said resident external controlling interface selectively sending a fourth command representative of said third command to one of said plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said third and fourth commands if not said removed.
200. The method of claim 199 wherein said first communications transport is at least one of a COM interface and a DCOM interface.
201. The method of claim 199 wherein said first communications transport and said second communications transport are DCOM interfaces.
202. The method of claim 198 wherein said first client program and said resident external controlling interface are operating on the same computer.
203. The method of claim 199 wherein said first client program, said second client program, and said resident external controlling interface are all operating on different computers.
204. The method of claim 198 , further comprising the step of providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface prior to validating said first command against permissible actions regarding the interaction between a plurality of objects of said model railroad.
205. The method of claim 204 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station and validating said responses regarding said interaction.
206. The method of claim 205 , further comprising the step of comparing said command station responses to previous commands sent to said digital command station to determine which said previous commands it corresponds with.
207. The method of claim 204 , further comprising the step of updating validation of said first command based on data received from said digital command stations.
208. The method of claim 207 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon command station responses representative of said state of said digitally controlled model railroad.
209. The method of claim 208 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by said resident external controlling interface together with state information from said database related to said first command.
210. The method of claim 204 wherein said resident external controlling interface communicates in an asynchronous manner with said first client program while communicating in a synchronous manner with said plurality of digital command stations.
211. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a resident external controlling interface through a first communications transport;
(b) transmitting a second command from a second client program to a resident external controlling interface through a second communications transport;
(c) receiving said first command at said resident external controlling interface;
(d) receiving said second command at said resident external controlling interface;
(e) queuing said first and second commands in a command queue having the characteristic that valid commands in said command queue are removed from said command queue without being executed by said model railroad; and
(f) said resident external controlling interface sending a third and fourth command representative of said first command and said second command, respectively, to the same digital command station for execution on said digitally controlled model railroad if not said removed.
212. The method of claim 211 wherein said resident external controlling interface communicates in an asynchronous manner with said first and second client programs while communicating in a synchronous manner with said digital command station.
213. The method of claim 211 wherein said first communications transport is at least one of a COM interface and a DCOM interface.
214. The method of claim 211 wherein said first communications transport and said second communications transport are DCOM interfaces.
215. The method of claim 211 wherein said first client program and said resident external controlling interface are operating on the same computer.
216. The method of claim 211 wherein said first client program, said second client program, and said resident external controlling interface are all operating on different computers.
217. The method of claim 211 , further comprising the step of providing an acknowledgment to said first client program in response to receiving said first command by said resident external controlling interface that said first command was successfully validated prior to validating said first command against permissible actions regarding the interaction between a plurality of objects of said model railroad.
218. The method of claim 217 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station.
219. The method of claim 218 , further comprising the step of comparing said command station responses to previous commands sent to said digital command station to determine which said previous commands it corresponds with.
220. The method of claim 219 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
221. The method of claim 220 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by said resident external controlling interface together with state information from said database related to said first command.
222. The method of claim 211 wherein said validation is performed by an event driven dispatcher.
223. A method of operating a digitally controlled model railroad comprising the steps of:
(a) transmitting a first command from a first client program to a first processor through a first communications transport;
(b) receiving said first command at said first processor;
(c) queuing said first command in a command queue having the characteristic that valid commands in said command queue are removed from said command queue without being executed by said model railroad; and
(d) said first processor providing an acknowledgment to said first client program through said first communications transport indicating that said first command has been executed if not said removed.
224. The method of claim 223 , further comprising the step of sending said first command to a second processor which processes said first command into a state suitable for a digital command station for execution on said digitally controlled model railroad.
225. The method of claim 224 , further comprising the step of said second process queuing a plurality of commands received.
226. The method of claim 223 , further comprising the steps of:
(a) transmitting a second command from a second client program to said first processor through a second communications transport;
(b) receiving said second command at said first processor; and
(c) said first processor selectively providing an acknowledgment to said second client program through said second communications transport indicating that said second command has been executed if not said removed.
227. The method of claim 226 , further comprising the steps of:
(a) sending a third command representative of said first command to one of a plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said first and third commands if not said removed; and
(b) sending a fourth command representative of said second command to one of said plurality of digital command stations for execution on said digitally controlled model railroad based upon information contained within at least one of said second and fourth commands if not said removed.
228. The method of claim 223 wherein said first communications transport is at least one of a COM interface and a DCOM interface.
229. The method of claim 226 wherein said first communications transport and said second communications transport are DCOM interfaces.
230. The method of claim 223 wherein said first client program and said first processor are operating on the same computer.
231. The method of claim 226 wherein said first client program, said second client program, and said first processor are all operating on different computers.
232. The method of claim 223 , further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said of digital command station.
233. The method of claim 223 , further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses representative of said state of said digitally controlled model railroad.
234. The method of claim 233 , further comprising the step of updating said successful validation to said first client program in response to receiving said first command by first processor together with state information from said database related to said first command.
235. The method of claim 231 wherein said first processor communicates in an asynchronous manner with said first client program while communicating in a synchronous manner with said plurality of digital command stations.Join the waitlist — get patent alerts
Track US6270040B1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.