US6270040B1ExpiredUtility

Model train control system

Assignee: KAM INDPriority: Apr 3, 2000Filed: Apr 3, 2000Granted: Aug 7, 2001
Est. expiryApr 3, 2020(expired)· nominal 20-yr term from priority
A63H 2019/243A63H 19/24
97
PatentIndex Score
85
Cited by
12
References
235
Claims

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-modified
What 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.