Skip to content
All of X9's core software for the 2016-2017 Purdue ROV team. #software
C Python HTML JavaScript Vue C++ Other
Branch: development
Clone or download
Pull request Compare This branch is 1 commit behind purduerov:development.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
frontend
install
rov
tests
.gitignore
.pylintrc
.travis.yml
LICENSE
README.md
application.py
scotty

README.md

X9-Core

All of X9's core software for the 2016-2017 Purdue ROV team.

Scotty:

scotty is our favorite cheif engineer that install the dependencies, runs the software, and runs tests.

tl;dr

sudo ./scotty install # do once, or when dependencies have updated
sudo ./scotty run

Using Scotty to Install Dependencies:

scotty install [--pi] [--dev [--cam]]
   Installs required files. Autodetects install type
   --pi:     Install as if this is a Pi
   --dev:    Install as if this is a dev machine
   --cam:    Also install mjpg streamer for dev

sudo ./scotty install will auto detect if you're on a Raspberry Pi or not, and install all the needed items. This includes:

  • pip
  • install/requirements.txt and install/requirements-hw.txt
  • mjpg-streamer
  • configure I2C

If you aren't on a Raspberry Pi, it will not install the hardware items or mjpg streamer. If auto detect fails, you can pass in --pi or --dev. If you're installing on dev machine and want mjpg streamer, pass in --cam.

Installs should be idempotent, which means you can rerun them with no adverse effects. If requirements ever get updated, just rerun the install.

Note: sudo is needed, because some dependencies need to be installed via apt-get

Running the App:

scotty run [--rov] [--debug]
   Runs the full ROV stack
   --rov:    Just test the ROV main loop
   --debug:  Set FLASK_DEBUG and ROV_DEBUG

If you want to run the full ROV program, run ./scotty run. This starts the flask application. If you want to just test the ROV main loop, run ./scotty run --rov. This starts the rov for tests, without the flask app. Passing in --debug sets the environmental variables configured in environment.debug in install/config.json. By default, it will set the FLASK_DEBUG to true, as well as ROV_DEBUG, which can be used to optionally turn things on and off in debug:

if os.environ['ROV_DEBUG']
    print "This only prints with --debug!"

Shell/Virtualenv:

scotty shell [--debug]
   Runs a new shell, with the activated venv. Exit to leave venv
   --debug:  Set FLASK_DEBUG and ROV_DEBUG

./scotty shell will start a new version of your current shell, with the appropriate environmental variables set. This lets you run flask run, and mjpg_streamer, as they will be added to your paths. The virtualenv is also added to your path, so dependencies will be installed there. If you pass in --debug, the environment.debug variables in install/config.json will be set as well.

Test:

scotty test [files...] [--pep8] [--pylint]
   Runs the full testing framework
   files:    optional list of files to test
   --pep8:   Run pep8 test
   --pylint: Run pylint test

Scotty will run linting tests to check for things like unused variables, bad imports, bad spacing, etc. Think of it like a compiler. This helps to catch errors that will not show up until runtime. Right now there are two tests:

  • pep8: tests against pep8 style guide
  • pylint: tests for undeclared variables, bad whitespace, misspelled items

Will hope to add more tests that can test our modules individually

You can’t perform that action at this time.