Transcript
Page 1: CCR (COMPUTER CONTROLLED RAILROAD)

CCR(COMPUTER CONTROLLED

RAILROAD)

A Senior Capstone Project byBrice Hilgemann

Page 2: CCR (COMPUTER CONTROLLED RAILROAD)

Project DefinitionDesign and implement interfaces for the CCR that campus visitors can use to control trains.

TRACK IMAGE HERE

Page 3: CCR (COMPUTER CONTROLLED RAILROAD)

Project Requirements1. Allow PC control of the model railroad2. Consider multiple interfaces – PC, Mobile, WiFi3. Create easy-to-understand interfaces4. Provide continual feedback and logs5. Implement a simplified OS to handle multiple

trains and prevent collisions

Page 4: CCR (COMPUTER CONTROLLED RAILROAD)

Previous Projects• Strengths

▫ Powerful▫ Adaptable

• Weaknesses▫ AIU issues▫ Collision prevention▫ Organization

Page 5: CCR (COMPUTER CONTROLLED RAILROAD)

Initial Strategy• Get familiar with hardware• Review previous code and methods

▫ Understand previous project specifications and goals behind project

• Create simplified interfaces• Implement OS principles/strategies from CS370• Test and confirm reliability• Documentation!

Page 6: CCR (COMPUTER CONTROLLED RAILROAD)

Language Selection and Abilities

• C-Sharp and .NET Framework• Monitor object• Asynchronization communication and threading• Visuals (Form objects)• Event-driven• MSDN documentation and support

Page 7: CCR (COMPUTER CONTROLLED RAILROAD)

SolutionsClient/Server Design

Page 8: CCR (COMPUTER CONTROLLED RAILROAD)

Diagrams to Application

Page 9: CCR (COMPUTER CONTROLLED RAILROAD)

Protocol for CommunicationCMD FORMAT DESCRIPTION

[ 1 ] ; [ TRAIN ID ] Increase speed or up arrow issued[ 2 ] ; [ TRAIN ID ] Decrease speed or down arrow issued[ 3 ] ; [ TRAIN ID ] Stop train has been issued[ 4 ] ; [ TRAIN ID ] Direction forward has been issued[ 5 ] ; [ TRAIN ID ] Direction backward has been issued[ 6 ] ; [ TO # ] Toggle turnout has been issued

[ 7 ] ; [ TRAIN ID ] ; [ DIRECTION ] ; [ ORIENTATION ] ; [ COLOR ] ; [ TRACK ]

User wants to Add a train from the server – get basic information from form and call with protocol to add

[ 9 ] ; [ TRAIN ID ] Toggle light has been issued[ 10 ] ; [ TRAIN ID ] Toggle horn has been issued

CMD FORMAT DESCRIPTION[ 0 ] There are no trains available – disconnect[ 1 ] ; [ TRAIN ID ] ; [ SPEED ] ; [ DIRECTION ] ; [ LIGHT ] ; [ HORN ] ; [ BLOCKED ] ; [ TO_NEAREST ] ; [ NBR TOS ] ; [ TO# ST ]...

General update of train information sent from the server to the client to update images and status indicators

[ 2 ] Train has been deleted or client has been disconnected from server

[ 3 ] ; [ TRAIN ID ] ; [ NBR TOS] ; [ TO # ]... Beginning train information for setting labels

Protocol to Server

Protocol to Client

Page 10: CCR (COMPUTER CONTROLLED RAILROAD)

Behind the Scenes Structures

• Structures that hold ownership▫ Prevent collisions▫ Used in sending updates▫ Used for visuals▫ Monitors hold integrity

Turnout # Turnout State Turnout Owner4 top none8 bottom none

12 top none16 top none

Example: Turnout Structure

Page 11: CCR (COMPUTER CONTROLLED RAILROAD)

Exceptions• Real-time communication lapses• AIU processing

▫ Infrequent sensor misses• Derailments• Track shortages

Page 12: CCR (COMPUTER CONTROLLED RAILROAD)

Methodology• Rapid prototype development

▫ Scaffolding• Modularity and Flexibility• Back-up and make small changes• Create diagrams and flow charts• Document throughout development

Page 13: CCR (COMPUTER CONTROLLED RAILROAD)

DEMONSTRATION

(COMPUTER CONTROLLED RAILROAD)

Video as Backup

Page 14: CCR (COMPUTER CONTROLLED RAILROAD)

Strategies• MSDN Documentation

▫ Forums and sample programs• Other online resources and examples• Previous CCR Projects• Computer Science Faculty

▫ Assistance▫ Opinions

• Fellow CS Students• Trial and Error ???

Page 15: CCR (COMPUTER CONTROLLED RAILROAD)

CS Courses and ConceptsCSCI 220 – Data and file structures CSCI 225 – Byte processing and hardware conceptsCSCI 322 – Language constructsCSCI 350 – Event-driven functionsCSCI 370 – Mutual exclusion and OS concepts

Page 16: CCR (COMPUTER CONTROLLED RAILROAD)

Extensions• Create your own client• Bring application mobile with .NET Framework

and Windows Mobile

• Web application

• More adaptable to other tracks

or

Page 17: CCR (COMPUTER CONTROLLED RAILROAD)

Advice for Others• Start early

▫ Create realistic goals and a timeline…FAST• Focus on the big picture; don’t get stalled on

little problems• Communicate progress/ideas with CS faculty• Create a balance between working on project

and other aspirations (like finding a job)

• Make it fun!

Good Luck!

Page 18: CCR (COMPUTER CONTROLLED RAILROAD)

Questions?Comments?

Do you want more information?

Visit my site at http://compsci.snc.edu/cs460/hilgbs/


Recommended