Skip to content

Latest commit

 

History

History
124 lines (99 loc) · 4 KB

readme.md

File metadata and controls

124 lines (99 loc) · 4 KB

#Tool Skeleton


This is skeleton code for adding your own entries to the Arduino Tools dropdown, since the example code shipped with arduino 1.6.5 doesn't actually work.


##How to install the Tool_Skeleton Repository Files


First, grab the Arduino source code from their git repository. Make sure to install all the various tools you need to build Arduino 1.6.5 (or higher, unless they change stuff (again.))

Make sure you can build Arduino. If you can't, you probably won't be able to build tools for it either.

Dive into the build/shared/tools directory, and and clone this archive into a directory named Tool_Skeleton there. If you downloaded the zip archive, rename the directory Arduino_IDE_Tool_Skeleton-master to Tool_Skeleton and put it in build/shared/tools. Tool_Skeleton based tools won't build without all the Arduino stuff upstream.

When correctly installed, the directory tree should look like this:

Arduino-master/build/shared 
└── tools
    └── Tool_Skeleton
        ├── bin
        │   └── com
        │       └── tool_skeleton
        │           └── Tool_Skeleton.class
        ├── build.xml
        ├── make.sh
        ├── src
        │   └── Tool_Skeleton.java
        └── tool
            └── Tool_Skeleton.jar

Everything under bin /should/ be automatically generated by ant, but it's easier this way, and the compiled jar I've included is smaller than this document.


##How to use Tool_Skeleton


If you've written many Arduino sketches, Tool_skeleton should seem eerily familiar. Once all the declarations are done, your code actually goes in the init() method and the run() method. There's some housework to take care of before we get started.

First, rename the package It needs to be com.<your package name>. Don't take out the com. You'll mess up the paths.

Import whatever imports you need next.

Next, declare the public class.

public class <your class name> implements Tool { Editor editor;
	public void init(Editor editor) { this.editor = editor; }

Next, declare the title as it will be seen in the Tools menu:

public String getMenuTitle() 
	{ return "Your Tool's Name in the Menu"; }

Everything else goes in run(). The stuff that goes in run can be calls to the editor class or, with some tinkering and includes (make sure you modify the classpaths in build.xml), you can abuse most of the classes that are part of Arduino.


##How to build Tool_Skeleton


cd into the Tool_Skeleton directory. Build the tool with ant.

$ant

Ant should have a lot to say, and it should look something like this:

Buildfile:
<your home>/Arduino-master/build/shared/tools/Tool\_Skeleton/build.xml

compile: [javac] Compiling 1 source file to
<your home>/Arduino-master/build/shared/tools/Tool\_Skeleton/bin

build: [jar] Building jar:
<your home>/Arduin-master/build/shared/tools/Tool\_Skeleton/tool/Tool\_Skeleton.jar

BUILD SUCCESSFUL Total time: 0 seconds

##Where to put Tools


Your finished tool is in Arduino-master/build/shared/tools/Tool_Skeleton.

To install, go to your Sketchbook directory and create a directory called "tools". (or CD into if it exists)

Move the directory formerly known as Arduino-master/build/shared/tools/Tool_Skeleton into Sketchbook/tools

Like this:

sketchbook
└── tools
    └── Tool_Skeleton
        ├── bin
        │   └── com
        │       └── tool_skeleton
        │           └── Tool_Skeleton.class
        ├── build.xml
        ├── make.sh
        ├── src
        │   └── Tool_Skeleton.java
        └── tool
            └── Tool_Skeleton.jar

Could you just put the bin directory in the tools directory of sketchbook and have it work? Probably, but I haven't tried it.


##Caviats


build.xml doesn't contain much in the way of useful paths into the guts of Arduino. I'll fix that soon by backporting from the project I actually built Tool_Skeleton to understand.