Computer-Controlled Railroad Simulator

Project Description: Develop a simulator that supports real applications for the Computer-Controlled Railroad (CCR).

General Requirements:

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