File Structure Overview
Breakout release file overview
This section provides and overview of the Breakout file structure. If you downloaded the Breakout release from this website, then you should have the following file structure:
The following sections describe the directory contents:
A log of the changes in each release.
This folder contains a few examples that demonstrate how to use Breakout without StandardFirmata. See Using Breakout Without StandardFirmata for details. The schematics.pdf file contains wiring diagrams for the examples. Any libraries required to run the example files are included in the libs subdirectory.
The dist directory contains the minified Breakout files. You will need to include one of these files in your applications. There are 3 versions described below:
This minified file contains everything in Breakout/src/ except the files in Breakout/io/. Use this version if you are not using any of the IO objects (from Breakout/io/) or would only like to include the IO objects you are using in your application. In the later case, you must include the IO objects individually after including the Breakout-base.js file. Also, if an IO object has a corresponding Event object, the Event object must be included before the IO object. For example if the only IO object you are using is an analog accelerometer, you could include the following rather than the full Breakout.js file which would include all IO objects:
This file contains only the minimal objects required to communicate with the I/O board. The only use for this version is in creating applications that don’t rely on StandardFirmata. See the Breakout/custom_examples/rfid_example2.html. Currently this file contains more than you need for custom applications. A lighter file will be created in the future for this type of application.
The firmware folder contains the AdvancedFirmata arduino sketch. You must upload AdvancedFirmata to your board before using Breakout. Open the AdvancedFirmata.ino file in the Arudino IDE (version 1.0 or higher), select your board from Tools -> Board, compile and upload.
This file contains the text of the MIT license that applies to Breakout.
A node.js-based server is also included with Breakout. It has the same functionality as the Java-based Breakout Server, but is headless (runs from the command line). See the wiki for details on using this server.
This file provides an overview of the Breakout project. It is also what you see when you view the Breakout project on github.
If you downloaded the Breakout beta release package, the contents of the server directory should be as follows:
If you see more files than above such as a build and lib folder etc, then you downloaded (or cloned) the full Breakout repository rather than the distribution release. That’s okay, just refer the server section of Breakout Repository file structure overview below.
The release version of the server directory contains a compressed version of each server. You will need to expand the Server for your platform (see the Installation section of the Using Breakout Server guide for details). You can also delete the files for the other platforms. In order to simplify the downloadable Breakout distribution, the download does not include the server source code. You must clone the Breakout source code on Github to get the Breakout Server source.
The core files are the base of the Breakout framework.
The custom directory contains files for objects that do not use StandardFirmata, but are useful enough to be included in the distribution source code. The files in the custom directory are not included in the minified Breakout.js file. See Breakout/custom_exemples/ for examples of use.
This directory contains a number of objects that are used to filter analog input. See the examples in Breakout/examples/filters/ and the Using Filters guide for details.
This directory contains an oscillator object that can generate signals on an output pin. For example it can be used to blink or fade an LED. See the examples in Breakout/examples/generators/ and the Using Generators guide for details.
The files/objects in the io directory are hardware abstractions of physical components. These objects greatly simplify the ability to interface with various input (sensors) and output (actuators). Expect additional io objects to be added in the future. See the examples in Breakout/examples/actuators/ and Breakout/examples/sensors/. Also see the examples in Breakout/examples/processing_js/ and Breakout/examples/three_js/ for applications of using sensors with WebGL graphics.
Breakout repository file structure overview
If you cloned the repository from github then you’ll have some additional folders and files:
The biggest difference between the repository and the release build is the structure of the Breakout/server/ directory. By cloning the repository you have access to the Breakout Server source code. In the repositoy the server directory contains the following files:
- The first 4 items are versions of the server for Mac, Win and Linux.
- The build subdirectory contains the Jar file. You can run Breakout Server from this jar file or if you’re using Mac OS X or Windows you can use the more convenient executables found in the respective platform folders above.
- An eclipse_archive is included as a convenience for any eclipse users who would like to modify the source code.
- The lib subdirectory contains the jar files required to build the server.
- README.md explains how to build Breakout Server. The build step is only required if you modify Breakout Server. Pre-built versions are already included for Mac, Win, and Linux.
- The release subdirectory contains graphics and other files used to build the executables.
- src contains the java source files and the manifest file.
The repository also includes the following files and folders that are not present in the release distribution: