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 builddoes a similar thing tonpm run-script watch, but it does not watch for changes, and it builds for production, not development. Usewatchfor development andbuildwhen 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 watchduring production). -
Package app:
- Packaging Dawn is done with electron-packager. Run the following from the
dawnfolder:
electron-packager . dawn --platform=darwin --arch=x64 --version=0.36.2 --pruneHere
--platformis the target platform (darwin means OSX) and--versioncorresponds to the Electron version.--pruneremoves all dev-dependencies before packaging, since these needlessly increase the packaged filesize. If you use--prune, make sure tonpm installagain 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.pymemcached -p 12357(from another terminal window)