Claims
- 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 an interface; (b) transmitting a second command from a second client program to said interface; (c) receiving said first command and said second command at said interface; (d) said interface queuing said first and second commands and deleting one of said first and second commands if they are the same; and (e) said 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 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 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 an interface; (b) receiving said first command at said 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 interface selectively sending a second command representative of said first command to one of a plurality of digital command stations 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 interface through a second communications transport; (b) receiving said third command at said 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 interface selectively sending a fourth command representative of said third command to one of said plurality of digital command stations based upon information contained within at least one of said third and fourth commands.
- 12. The method of claim 10 wherein said first client program and said interface are operating on the same computer.
- 13. The method of claim 11 wherein said first client program, said second client program, and said interface are all operating on different computers.
- 14. 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 interface prior to validating said first command against permissible actions.
- 15. The method of claim 14, further comprising the step of receiving command station responses from said of digital command station and validating said responses regarding said interaction.
- 16. The method of claim 15, 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.
- 17. The method of claim 14, further comprising the step of updating validation of said first command based on data received from said digital command stations.
- 18. The method of claim 17, further comprising the step of updating a database of the state of said digitally controlled model railroad based upon command station responses.
- 19. The method of claim 18, further comprising the step of updating said successful validation to said first client program in response to receiving said first command by said interface together with state information from said database related to said first command.
- 20. The method of claim 10 wherein said interface communicates in an asynchronous manner with said first client program while communicating in a synchronous manner with said plurality of digital command stations.
- 21. A method of operating a digitally controlled model railroad comprising the steps of:(a) transmitting a first command from a first client program to an interface; (b) transmitting a second command from a second client program to said interface; (c) receiving said first command at said interface; (d) receiving said second command at said 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 interface sending a third and fourth command representative of said first command and said second command, respectively, to the same digital command station.
- 22. The method of claim 21, further comprising the step of providing an acknowledgment to said first client program in response to receiving said first command by said interface that said first command was successfully validated against permissible actions prior to validating said first command.
- 23. The method of claim 22, 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.
- 24. The method of claim 23, 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.
- 25. The method of claim 24, further comprising the step of updating a database of the state of said digitally controlled model railroad based upon said receiving command station responses.
- 26. The method of claim 25, further comprising the step of updating said successful validation to said first client program in response to receiving said first command by said interface together with state information from said database related to said first command.
- 27. 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; (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 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.
- 28. A method of operating a digitally controlled model railroad comprising the steps of:(a) transmitting a first command from a first client program to an interface; (b) transmitting a second command from a second client program to said interface; (c) receiving said first command and said second command at said interface; (d) said 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 interface sending third and fourth commands representative of said first and second commands, respectively, to a digital command station if as a result of said comparing a net state change of said model railroad would result.
- 29. The method of claim 28, further comprising the steps of:(a) providing an acknowledgment to said first client program in response to receiving said first command by said interface that said first command was successfully validated against permissible actions 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 interface that said second command was successfully validated against permissible actions prior to validating said second command.
- 30. A method of operating a digitally controlled model railroad comprising the steps of:(a) transmitting a first command from a first client program to an interface; (b) receiving said first command at said 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 (d) said interface selectively sending a second command representative of said first command to one of a plurality of digital command stations based upon information contained within at least one of said first and second commands.
- 31. A method of operating a digitally controlled model railroad comprising the steps of:(a) transmitting a first command from a first client program to an interface; (b) transmitting a second command from a second client program to said interface; (c) receiving said first command at said interface; (d) receiving said second command at said 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 (f) said interface sending a third and fourth command representative of said first command and said second command, respectively, to the same digital command station if as a result of said comparing a net state change of said model railroad would result.
- 32. 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; (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 (d) said first processor providing an acknowledgment to said first client program indicating that said first command has been executed.
- 33. A method of operating a digitally controlled model railroad comprising the steps of:(a) transmitting a first command from a first client program to an interface; (b) transmitting a second command from a second client program to said interface; (c) receiving said first command and said second command at said interface; (d) said 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 (f) said interface sending said single different command representative of the net state change of said first and second commands to a digital command station.
- 34. The method of claim 33, further comprising the steps of:(a) providing an acknowledgment to said first client program in response to receiving said first command by said interface that said first command was successfully validated against permissible actions 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 interface that said second command was successfully validated against permissible actions prior to validating said second command.
- 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 an interface; (b) receiving said first command at said 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 (d) said interface selectively sending said single different command to one of a plurality of digital command stations.
- 36. The method of claim 35, further comprising the steps of:(a) transmitting a third command from a second client program to said interface; (b) receiving said third command at said interface; (c) validating said third command against permissible actions; and (d) said interface selectively sending a fourth command representative of said third command to one of said plurality of digital command stations based upon information contained within at least one of said third and fourth commands.
- 37. A method of operating a digitally controlled model railroad comprising the steps of:(a) transmitting a first command from a first client program to an interface; (b) transmitting a second command from a second client program to said interface; (c) receiving said first command at said interface; (d) receiving said second command at said 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 (f) said interface sending said single different command to a digital command station if as a result of said comparing such a single different command exists.
- 38. A method of operating a digitally controlled model railroad comprising the steps of:(a) transmitting a first command from a first client program to an interface; (b) transmitting a second command from a second client program to said interface; (c) receiving said first command and said second command at said interface; (d) said 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 interface sending third and fourth commands representative of said first and second commands, respectively, to a digital command station based upon said prioritization.
- 39. The method of claim 38, further comprising the steps of:(a) providing an acknowledgment to said first client program in response to receiving said first command by said interface that said first command was successfully validated 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 interface that said second command was successfully validated prior to validating said second command.
- 40. A method of operating a digitally controlled model railroad comprising the steps of:(a) transmitting a first command from a first client program to an interface; (b) transmitting a second command from a second client program to said interface; (c) receiving said first command at said interface; (d) receiving said second command at said interface; (e) queuing said first and second commands in a command queue based on a non-first-in-first-out prioritization; and (f) said interface sending a third and fourth command representative of said first command and said second command, respectively, to the same digital command station based upon said prioritization.
- 41. 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; (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 indicating that said first command has been executed.
- 42. A method of operating a digitally controlled model railroad comprising the steps of:(a) transmitting a first command from a first client program to an interface; (b) transmitting a second command from a second client program to said interface; (c) receiving said first command and said second command at said interface; (d) said 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 interface sending third and fourth commands representative of said first and second commands, respectively, to a digital command station if not said removed.
- 43. 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; (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 indicating that said first command has been executed if not said removed.
Parent Case Info
This is a continuation of U.S. application Ser. No. 09/541,926, filed Apr. 3, 2000, now U.S. Pat. No. 6,270,040, for MODEL TRAIN CONTROL SYSTEM.
US Referenced Citations (16)
Non-Patent Literature Citations (1)
Entry |
Chapell, David. Understanding ActiveX and OLE. Redmond: Microsoft Press, 1996. |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09/541926 |
Apr 2000 |
US |
Child |
09/858297 |
|
US |