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 program to an interface;
- (b) transmitting a second command from a second program to said interface; and
- (c) sending third and fourth commands from said interface representative of said first and second commands, respectively, to a digital command station.
2. The method of claim 1, further comprising the steps of:
- (a) providing an acknowledgment to said first program in response to receiving said first command by said interface prior to sending said third command to said digital command station; and
- (b) providing an acknowledgment to said second program in response to receiving said second command by said interface prior to sending said fourth command to said digital command station.
3. The method of claim 2, further comprising the steps of:
- (a) selectively sending said third command to one of a plurality of digital command stations; and
- (b) selectively sending said fourth command to one of said plurality of digital command stations.
4. The method of claim 3, further comprising the step of receiving command station responses representative of the state of said digitally controlled model railroad from said plurality of digital command stations.
5. The method of claim 4, further comprising the step of comparing said command station responses to previous commands sent to at least one of said plurality of digital command stations to determine which of said previous commands it corresponds with.
6. The method of claim 5, further comprising the steps of:
- (a) maintaining a sending queue of commands to be transmitted to said plurality of digital command stations; and
- (b) retransmitting at least one of said commands in said sending queue periodically until removed from said sending queue as a result of the comparison of said command station responses to previous commands.
7. The method of claim 6, 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, further comprising the step of providing said acknowledgment to said first program in response to receiving said first command by said interface together with state information from said database related to said first command.
9. The method of claim 8 wherein said first command and said third command are the same command, and said second command and said fourth 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 program to an interface; and
- (b) 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 program to said interface; and
- (b) 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 program and said interface are operating on the same computer.
13. The method of claim 11 wherein said first program, said second 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 program in response to receiving said first command by said interface prior to sending said second command to one of said plurality of said digital command stations.
15. The method of claim 10 wherein said interface communicates in an asynchronous manner with said first program while communicating in a synchronous manner with said plurality of digital command stations.
16. A method of operating a digitally controlled model railroad comprising the steps of:
- (a) transmitting a first command from a first program to an interface;
- (b) transmitting a second command from a second program to said interface; and
- (c) said interface sending a third and fourth command representative of said first command and said second command, respectively, to the same digital command station.
17. The method of claim 16 wherein said interface communicates in an asynchronous manner with said first and second programs while communicating in a synchronous manner with said digital command station.
18. The method of claim 16, further comprising the step of providing an acknowledgment to said first program in response to receiving said first command by said interface prior to sending said third command to said digital command station.
19. A method of operating a digitally controlled model railroad comprising the steps of:
- (a) transmitting a first command from a first program to a first processor; and
- (b) said first processor providing an acknowledgment to said first program indicating that said first command has properly executed prior to execution of commands related to said first command by said digitally controlled model railroad.
20. The method of claim 19, 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.
21. The method of claim 19, further comprising the steps of:
- (a) transmitting a second command from a second program to said first processor; and
- (b) said first processor selectively providing an acknowledgment to said second program indicating that said second command has properly executed prior to execution of commands related to said second command by said digitally controlled model railroad.
22. The method of claim 21, further comprising the steps of:
- (a) sending a third 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 third commands; and
- (b) sending a fourth command representative of said second command to one of said plurality of digital command stations based upon information contained within at least one of said second and fourth commands.
23. A method of operating a digitally controlled model railroad comprising the steps of:
- (a) transmitting a first command from a first program to an asynchronous command processor;
- (b) said asynchronous command processor providing an acknowledgment to said first program indicating that said first command has properly executed prior to execution of said first command by said digitally controlled model railroad;
- (c) sending said first command to a command queue where said asynchronous command processor considers the intended destination device of said first command; and
- (d) processing said first command by said synchronous command processor into a suitable format for execution by a digital command station for said digitally controlled model railroad.
24. The method of claim 23 further comprising the steps of:
- (a) receiving responses from said digital command station; and
- (b) updating a first database of the state of said digitally controlled model railroad based upon said responses from said digital command station.
25. The method of claim 24, further comprising the steps of:
- (a) sending a first response to said command queue from said synchronous command processor where said synchronous command processor considers said command queue the intended destination device of said first response; and
- (b) processing said first response by said asynchronous command processor into a suitable format for said first program.
26. The method of claim 25, further comprising the step of updating a second database of the state of said digitally controlled model railroad by said asynchronous command processor based upon said first response from said synchronous command processor.
27. The method of claim 26, further comprising the step of querying said second database by said asynchronous command processor providing said acknowledgment to said first program providing the information requested and not sending said first command to said command queue.