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.
- 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 with electron-packager. Run the following from the
dawn
folder:
electron-packager . dawn --platform=darwin --arch=x64 --version=0.36.2 --prune
Here
--platform
is the target platform (darwin means OSX) and--version
corresponds to the Electron version.--prune
removes all dev-dependencies before packaging, since these needlessly increase the packaged filesize. If you use--prune
, make sure tonpm install
again afterwards to get your dev-dependencies back. - Packaging Dawn is done with electron-packager. 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)