Computer-Controlled Railroad Simulator
Project Description: Develop a simulator that supports real applications for the Computer-Controlled Railroad (CCR).
General Requirements:
- Support the protocol for decoders (stationary and mobile) and Auxiliary Input Units (AIU) as specified by the National Model Railroad Association (NMRA).
- Develop API functions that match the protocol for the existing CCR functions.
- Users can define their own track layouts.
- The simulator supports multiple trains.
- A built-in graphical interface shows states of trains, sensors, and turnouts in real time and allows users to switch turnouts and operate trains.
- Design an initialization model and corresponding API that can be applied to the physical CCR.
- Include error conditionals such as broken trains and hardware failure.
- Write application modules for the simulator, such as a collision-avoidance module.