NOTE: This readme is a brief overview. For more in-depth docs on any specific component, refer to the wiki.
This repo currently contains Dawn and Runtime in the dawn/
and runtime/
folders, respectively.
Dawn is a cross-platform frontend for the PiE robotics control system. It is the applications students will see and use when programming and testing their robots.
Dawn is a desktop app, but it is written with web technologies and packaged via Electron.
These are experimental builds for internal PiE use, and contain the latest features. For the latest stable release, download from here.
- Install Required Software:
- Get NodeJS or (if you already have it) make sure to update to v5.0.0 (download from the NodeJS website)
- Get electron:
npm install -g electron-prebuilt
- Get code and dependencies
- Pull the latest code from
pioneers/develop
. - Enter the dawn directory:
cd dawn
. - Install dependencies with npm:
npm install
. Remember to do this step whenever the dependencies change.
- Pull the latest code from
- Start developing:
- Start webpack in watch mode:
npm run-script watch
- Leave this terminal window running: webpack compiles your code, and automatically recompiles it when it detects changes.
- Note:
npm run-script build
does a similar thing tonpm run-script watch
, but it does not watch for changes, and it builds for production, not development. Usewatch
for development andbuild
when you are about to package an app for production.
- Launch the application:
npm start
.- Leave this terminal window running also. Dawn should open.
- When you make a change, the webpack watcher should automatically recompile your code. To see your changes, hit refresh:
CMD-R
(Mac) orCTRL-R
(Windows).
- Start webpack in watch mode:
-
Install electron-packager:
npm install -g electron-packager
-
Build for production:
npm run-script build
(as opposed tonpm run-script watch
during production). -
Package app:
- Packaging Dawn is done via a release script. To build for all platforms, run the following from the
dawn
folder:
node release.js
You can build for a specific platform and arch by adding
--platform=<PLATFORM> --arch=<ARCH>
, where<PLATFORM>
is one of {win32, darwin, linux} and<ARCH>
is one of {ia32, x64}. To build without pruning (which removes your devDependencies) add--noprune
. - Packaging Dawn is done via a release script. To build for all platforms, run the following from the
Runtime (formerly griff) is a python based platform for executing student code and controlling the robot hardware.
From the 'runtime' directory, run:
- Install memcached
- Use pip to install flask, eventlet, flask-socketio, and python-memcached
python runtime.py
memcached -p 12357
(from another terminal window)