Code Monkey home page Code Monkey logo

elevator-simulator-'s Introduction

SYSC3303 Project

Authors

  • Boris Zugic, 101223924
  • Cole McPherson, 101185260
  • Johnny Nguyen, 101185885
  • Evan Baldwin, 101222276

Description

This assignment simulates an elevator system with a floor subsystem, a series of elevators, and a scheduler to determine the operation of the elevators based on the input from floors. This iteration utilizes synchronized threads which communicate between each other to parse a data input from the floor system.

This iteration has implemented UDP elements for effective communication between the three subsystems. State machines have been included in the code for both the Elevator and Scheduler which simulate the attached UML State Machine diagrams.

Using the program

  1. Utilzing the IntelliJ IDE, execute the main() method contained each subsystem (Scheduler, FloorSubsystem, ElevatorSubsystem). If desired, a configuration can be established that executes the methods in order of scheduler, floor_subsystem, and finally elevator_subsystem. A configuration file titled under config.json contains settings to modify floor/elevator numbers and timing values. Alternatively, each subsystem (Elevator, Floor, Scheduler) can be executed on a separate computer utilizing the same IP address and can perform UDP communication between each system. There is currently an input.txt file which can be modified to test as desired.

Issues/Limitations

  1. Can run a maximum of 64 floors and 63 elevators.
  2. There is currently a slight delay in scheduler response/output that slows the system performance

Responsibilities

  • Iteration 1:

    • UML Class and Sequence Diagrams:
      • Cole McPherson: UML Class Diagram
      • Johnny Nguyen: Sequence Diagram
    • Coding:
      • Boris Zugic: Elevator, Floor, Main, ButtonType, Door, Motor, Scheduler
      • Cole McPherson:
      • Johnny Nguyen:
      • Evan Baldwin: Elevator movement, documentation
    • Unit Testing:
      • Evan Baldwin: Elevator, Scheduler, Floor Tests
      • Boris Zugic: Elevator, Floor Tests
  • Iteration 2:

    • UML Class and Sequence Diagrams:
      • Cole McPherson: Updated Sequence, State Diagram
    • Coding:
      • Boris Zugic: UDP Communication (Elevator/Scheduler/Floor), Display
      • Cole McPherson: Elevator State Machine (ElevatorState, ElevatorStateMachine, etc)
      • Johnny Nguyen: Scheduler
      • Evan Baldwin: ElevatorStateMachine, documentation
    • Unit Testing:
      • Evan Baldwin: Updated UDP, Elevator, Scheduler, Floor Tests
  • Iteration 3:

    • UML Class and Sequence Diagrams:
      • Cole McPherson: Elevator/Scheduler State Diagrams
      • Evan Baldwin: Updated Elevator/Scheduler State Diagrams, UML Class Diagram
    • Coding:
      • Boris Zugic: GUI, Logger, Input file parsing
      • Cole McPherson:
      • Johnny Nguyen: Scheduler algorithms, UDP Communication
      • Evan Baldwin: Scheduler State Machine (SchedulerState, StateStateMachine, etc)
    • Unit Testing:
      • No major changes
  • Iteration 4:

    • UML Class and Sequence Diagrams:
      • Evan Baldwin: Elevator State Diagram, Sequence Diagram
    • Coding:
      • Boris Zugic: Elevator Selection Algorithm
      • Cole McPherson: UDP Communication, Schedule/Scheduler Request Communication with Elevators
      • Johnny Nguyen: Scheduler Communication/Logic, Parsing
      • Evan Baldwin: Elevator threading/subsystem, UDP Communication, Error injection/elevator response, Communication Help
    • Unit Testing:
      • Evan Baldwin: Updated Elevator tests, new Scheduler tests
  • Iteration 5:

    • UML Class, Sequence and Timing Diagrams:
      • Evan Baldwin:
      • Boris Zugic: Sequence Diagram
    • Coding:
      • Boris Zugic: GUI, Elevator State Machine
      • Cole McPherson:
      • Johnny Nguyen:
      • Evan Baldwin:
    • Unit Testing:
      • Evan Baldwin:

elevator-simulator-'s People

Contributors

boriszugic avatar evanb213 avatar colemcph avatar johnnynguyen3 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.