Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Outline

Libs

Here you can author libraries for the Espruino with native code.

For more information on the actual build process, see the build process page

To get you started, here are some steps that can be made to enable Hello.world() in Espruino. Of course you have guessed that it will print "Hello World!" to the console. Let's get on with it!

Create a directory to contain your library files

We'll create a new folder libs/hello. In this directory, we'll create our .h and .c files.

Create the jswrap_hello.h and jswrap_hello.c files

jswrap_hello.h

void jswrap_hello_world();

jswrap_hello.c

#include "jswrap_hello.h"  // We need the declaration of the jswrap_hello_world function
#include "jsinteractive.h" // Pull inn the jsiConsolePrint function

// Let's define the JavaScript class that will contain our `world()` method. We'll call it `Hello`
/*JSON{
  "type" : "class",
  "class" : "Hello"
}*/

// Now, we define the `jswrap_hello_world` to be a `staticmethod` on the `Hello` class
/*JSON{
  "type" : "staticmethod",
  "class" : "Hello",
  "name" : "world",
  "generate" : "jswrap_hello_world"
}*/
void jswrap_hello_world() {
    jsiConsolePrint("Hello World!\r\n");
}

You can add more files here if you need. It's up to you!

Modify the Makefile

Go to line 606 and append

INCLUDE += -I$(ROOT)/libs/hello
WRAPPERSOURCES += libs/hello/jswrap_hello.c #you can add more files here if your library depend on them

If you want to make a pull request for your new library you'll need to make a ifdef guard for it, and specify which platforms should have access to your library. To see it in action, follow the USE_TRIGGER definition.

Compile and test!

First run make, now you can run ./espruino and test your new Hello.world() command.

>Hello.world()
Hello World!
undefined
Morty Proxy This is a proxified and sanitized view of the page, visit original site.