Embedded UI for the aREST framework

Related tags

Arduino aREST_UI
Overview

aREST_UI Build Status

Version 1.1.1

Overview

aREST UI is an embedded UI for the aREST framework. Currently works with the Arduino Mega & Arduino Due with the CC3000 WiFi chip, the WiFi shield, and the Ethernet shield. It works as well with the Arduino Zero with the WiFi 101 shield, and with the Arduino MKR1000 board.

It also works with the ESP8266 WiFi chip.

If you want to know more about aREST, go over to http://arest.io/.

Contents

  • aREST_UI.h: the library file.
  • examples: several examples using the aREST UI library

Requirements

To use the library with Arduino boards you will need the latest version of the Arduino IDE:

You will also need the aREST library:

For WiFi using the CC3000 chip

Setup

To install the library, simply clone this repository in the /libraries folder of your Arduino folder.

Quick test (WiFi)

  1. Connect a LED & resistor to pin number 6 of your Arduino Mega board
  2. Open the WiFi_CC3000 example sketch and modify the WiFi SSID and password
  3. Upload the sketch to the board
  4. Go to a web browser and type http://arduino.local
  5. Click on the 'On' button and the LED should turn on

Quick test (WildFire)

  1. Connect a LED & resistor to pin number 6 of your WildFire board
  2. Open the WildFire example sketch and modify the WiFi SSID and password
  3. Upload the sketch to the board
  4. Go to a web browser and type http://wildfire.local
  5. Click on the 'On' button and the LED should turn on

API documentation

Create aREST UI instance

You can simply create an instance of aREST UI with the following command:

aREST_UI ui = aREST_UI();

Title

If you don't want to run with the default title, set your own for the UI.

ui.title("Your title");

Button

Buttons are used to control the state of a digital output pin. The command creates two button inside the interface, one 'On' button, and one 'Off' button. For example, the following command creates a pair of buttons to control pin number 6:

ui.button(6)

Slider

The slider command creates a slider to control a pin via PWM. For example, it can be used to control the intensity of a LED connected to this pin. The following command creates a pair of buttons to control pin number 6:

ui.slider(6);

Label

Labels are used to display the value of variables inside the interface. Before you can use this command, you need to create the corresponding variable first. The following command declares a variable called temperature:

ui.variable("temperature",&temperature);

After that, you can use the following command to create the corresponding label inside the interface:

ui.label("temperature");

Comments
  • Does not compile on ESP8266

    Does not compile on ESP8266

    Cannot compile on ESP8266

    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h: In member function 'virtual void aREST_UI::root_answer()':
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:71:69: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n");
                                                                         ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:72:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("<html><head>");
                                   ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:73:91: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
                                                                                               ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:74:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("<script ");
                               ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:75:70: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("src=\"http://code.jquery.com/jquery-2.1.3.min.js\">");
                                                                          ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:76:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("</script>");
                                ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:77:118: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("<script type='text/javascript' src='http://cdn.rawgit.com/Foliotek/AjaxQ/master/ajaxq.js'></script>");
                                                                                                                          ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:78:112: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("<style>.row {margin-top: 30px;} .indicator {font-size: 30px; vertical-align: middle;}</style>");
                                                                                                                    ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:79:123: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("<link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css\">");
                                                                                                                               ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:80:32: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("</head><body>");
                                    ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:81:44: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("<div class=\"container\">");
                                                ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:85:25: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("<h1>");
                             ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:86:27: error: no matching function for call to 'aREST_UI::addToBuffer(String&)'
           addToBuffer(ui_title);
                               ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:86:27: note: candidates are:
    In file included from ESP8266.ino:10:0:
    /Users/user/Documents/Arduino/libraries/aREST/aREST.h:832:6: note: void aREST::addToBuffer(char*)
     void addToBuffer(char * toAdd){
          ^
    /Users/user/Documents/Arduino/libraries/aREST/aREST.h:832:6: note:   no known conversion for argument 1 from 'String' to 'char*'
    /Users/user/Documents/Arduino/libraries/aREST/aREST.h:846:6: note: void aREST::addToBuffer(uint16_t)
     void addToBuffer(uint16_t toAdd){
          ^
    /Users/user/Documents/Arduino/libraries/aREST/aREST.h:846:6: note:   no known conversion for argument 1 from 'String' to 'uint16_t {aka short unsigned int}'
    /Users/user/Documents/Arduino/libraries/aREST/aREST.h:855:6: note: void aREST::addToBuffer(int)
     void addToBuffer(int toAdd){
          ^
    /Users/user/Documents/Arduino/libraries/aREST/aREST.h:855:6: note:   no known conversion for argument 1 from 'String' to 'int'
    /Users/user/Documents/Arduino/libraries/aREST/aREST.h:875:6: note: void aREST::addToBuffer(const __FlashStringHelper*)
     void addToBuffer(const __FlashStringHelper *toAdd){
          ^
    /Users/user/Documents/Arduino/libraries/aREST/aREST.h:875:6: note:   no known conversion for argument 1 from 'String' to 'const __FlashStringHelper*'
    In file included from ESP8266.ino:11:0:
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:87:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("</h1>");
                              ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:90:39: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("<h1>Interface</h1>");
                                           ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:95:40: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("<div class=\"row\">");
                                            ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:96:106: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("<div class=\"col-md-2\"><button class=\"btn btn-block btn-lg btn-primary\" id='btn_on");
                                                                                                              ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:98:40: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("'>On</button></div>");
                                            ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:99:106: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("<div class=\"col-md-2\"><button class=\"btn btn-block btn-lg btn-danger\" id='btn_off");
                                                                                                              ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:101:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("'>Off</button></div>");
                                             ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:102:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("</div>");
                               ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:107:40: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("<div class=\"row\">");
                                            ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:108:112: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("<div class=\"col-md-2\"><input type='range' value='0' max='255' min='0' step='5' id='slider");
                                                                                                                    ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:110:29: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("'></div>");
                                 ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:111:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("</div>");
                               ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:116:40: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("<div class=\"row\">");
                                            ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:117:53: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("<div class='col-md-3 indicator'>");
                                                         ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:119:29: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer(": </div>");
                                 ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:120:57: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("<div class='col-md-3 indicator' id='");
                                                             ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:122:29: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("'></div>");
                                 ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:123:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("</div>");
                               ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:126:25: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("</div>");
                             ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:128:59: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("<script>$( document ).ready(function() {");
                                                               ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:132:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("$('#btn_on");
                                   ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:134:67: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("').click(function() {$.getq('queue','/digital/");
                                                                       ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:136:29: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("/1');});");
                                 ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:137:32: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("$('#btn_off");
                                    ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:139:67: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("').click(function() {$.getq('queue','/digital/");
                                                                       ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:141:29: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("/0');});");    
                                 ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:146:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("$('#slider");
                                   ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:148:64: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("').mouseup(function() {var val = $('#slider");
                                                                    ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:150:55: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("').val(); $.getq('queue','/analog/");
                                                           ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:152:35: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("/' + val); });");      
                                       ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:157:38: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("$.getq('queue','/");
                                          ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:159:45: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("', function(data) { $('#");
                                                 ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:161:34: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("').html(data.");
                                      ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:163:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
           addToBuffer("); });"); 
                               ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:166:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("});</script>");
                                   ^
    /Users/user/Documents/Arduino/libraries/aREST_UI-master/aREST_UI.h:168:37: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
         addToBuffer("</body></html>\r\n");
                                         ^
    ESP8266.ino: In function 'void setup()':
    ESP8266.ino:41:43: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    ESP8266.ino:44:33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    ESP8266.ino:47:18: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    ESP8266.ino:48:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    Error compiling.
    

    I am using the latest http://github.com/esp8266/Arduino from git.

    help wanted 
    opened by probonopd 15
  • Bug: Cannot add more than 3 buttons

    Bug: Cannot add more than 3 buttons

    Howdy, I try to controls a relay on a Wemos D1 mini. I was able to add buttons (on/off) to toggle three relay channels.

     // Create UI
      rest.title("WeMos D1 Relay Control");
      rest.button(1); // GPIO1 on ESP8266 is D1
      rest.button(2); // GPIO2 on ESP8266 is D2
      rest.button(5); // GPIO3 on ESP8266 is D5
      //rest.button(6); // GPIO4 on ESP8266 is D6
    

    However, adding a forth button does not work. The fourth row of buttons is displayed on screen, but below, some text appears:

    ').click(function() {$.g¸˙
    

    I pulled the latest aREST/aREST_UI and esp8266com for Wemos D1 mini.

    Can you give me a hint what might be wrong?

    Cheers, /luetzel

    opened by luetzel 3
  • Multiple warnings at Arduino IDE v1.8.n

    Multiple warnings at Arduino IDE v1.8.n

    E.g. ../Arduino/libraries/aREST/aREST.h:1338:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] addToBuffer(HARDWARE);

    opened by flidget 2
  • EADDRINUSE mqtt 1883

    EADDRINUSE mqtt 1883

    Hi Everyone,

    Keep in your mind if you are trying to run arest in local;

    You will get this when you run meteor with mosquitto-->> Error: listen EADDRINUSE

    Mosca is making trouble if mosquitto is running check it -->> sudo lsof -i tcp:1883 then -->> sudo kill -9 "PID"

    Don't forget to run mongod if its not running you will get -->> Error: connect ECONNREFUSED

    No problem with latest meteor 1.3.2.4 and mosca 1.3.0 and node v6.1.0 (npm v3.8.6) and mongodb

    opened by kiralikbeyin 1
  • Arduino IDE not Accepting

    Arduino IDE not Accepting "ui."

    Hi, Just now i was making a code but when i wrote "ui.button(2)" ( as defined in description) it gives an error and does not accept it, but when i try again with "rest.button(2)" it accepts it and compiles the code. Is it Okay?

    Thanks & Regards, Ayush

    opened by ghost 1
  • ESP 32 Unable to expose string variable

    ESP 32 Unable to expose string variable

    Using the following configuration on ESP 32 I see an empty string:

    // Config
    char nowstring[4] = "Test";
    rest.variable("test", &nowstring, true);
    
    //Output
    {"variables": {"test": ""}, "id": "1", "name": "esp32", "hardware": "esp32", "connected": true}
    

    Am I missing something?

    opened by andrea-daru 0
  • added button name parameter to button function

    added button name parameter to button function

    I've added Button name parameter to button() function. In current version there is no way to know which button does what when there are more than one buttons.

    opened by sourabhbelekar 0
  • not compiling Arduino 1.8.5. and arest 2.7.0

    not compiling Arduino 1.8.5. and arest 2.7.0

    very long error message Arduino:1.8.5 (Mac OS X), Płytka:"Adafruit Feather HUZZAH ESP8266, 80 MHz, 4M (3M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"

    In file included from /Users/michalsprawka/Documents/Arduino/libraries/aREST_UI/examples/ESP8266/ESP8266.ino:11:0: /Users/michalsprawka/Documents/Arduino/libraries/aREST_UI/aREST_UI.h: In member function 'virtual void aREST_UI::root_answer()': /Users/michalsprawka/Documents/Arduino/libraries/aREST_UI/aREST_UI.h:93:69: error: no matching function for call to 'aREST_UI::addToBuffer(const char [45])' addToBuffer("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"); ^ /Users/michalsprawka/Documents/Arduino/libraries/aREST_UI/aREST_UI.h:93:69: note: candidates are: In file included from /Users/michalsprawka/Documents/Arduino/libraries/aREST_UI/examples/ESP8266/ESP8266.ino:10:0: /Users/michalsprawka/Documents/Arduino/libraries/aREST/aREST.h:1600:6: note: template void aREST::addToBuffer(T, bool) void addToBuffer(T toAdd, bool quotable) { ^ /Users/michalsprawka/Documents/Arduino/libraries/aREST/aREST.h:1600:6: note: template argument deduction/substitution failed: In file included from /Users/michalsprawka/Documents/Arduino/libraries/aREST_UI/examples/ESP8266/ESP8266.ino:11:0: /Users/michalsprawka/Documents/Arduino/libraries/aREST_UI/aREST_UI.h:93:69: note: candidate expects 2 arguments, 1 provided addToBuffer("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"); ^ In file included from /Users/michalsprawka/Documents/Arduino/libraries/aREST_UI/examples/ESP8266/ESP8266.ino:10:0: /Users/michalsprawka/Documents/Arduino/libraries/aREST/aREST.h:1606:6: note: template void aREST::addToBuffer(T (*)(), bool) void addToBuffer(T(*toAdd)(), bool quotable) { ^ (...)

    opened by michalsprawka 1
  • Webpage won't load if one more rest.button() is added to example code

    Webpage won't load if one more rest.button() is added to example code

    If I run the example code exactly as is (only pwd and ssid changed) on an ESP8266-01 everything works great.

    But if I add one more button like in the code below the webbrowser never gets any web page back. I can still do REST calls ("blindly") to turn pins on and off but the webbrowser does not get any html web page data back what so ever.

      // Set the title
      rest.title("aREST UI Demo");
    
      // Create button to control pin 5
      rest.button(5);
      rest.button(2);                                     // ADDING THIS WILL MAKE WEB PAGE LOAD FAIL
    
      // Init variables and expose them to REST API
      temperature = 22;
      humidity = 39.1;
      rest.variable("temperature", &temperature);
      rest.variable("humidity", &humidity);
    
      // Labels
      rest.label("temperature");
      rest.label("humidity");
    

    Interestingly though is that if I do have two buttons but comment out all labels everything works again, except the labels of course.

    bug 
    opened by MagnusThome 2
  • ESP8266 Dies

    ESP8266 Dies

    Hej.

    It looks like the aREST_UI is hanging after some min using the UI version.

    It responds to ping but nothing else. I tried the plain aREST and got the same problem at first. Checking out the https://github.com/marcoschwartz/aREST/pull/183 it was more stable. Any tips on how to debug this?

    opened by jhagberg 3
  • security on UI page

    security on UI page

    I would like to use aRest_UI to open and close my garage door. Easily done. I made the on button momentary by adding:

    if (digitalRead(relay) == HIGH){ digitalWrite(relay, LOW); }

    to the loop function.

    Just one problem. My UI pages is exposed through DuckDNS and I don't want some hacker opening and closing my garage door. Is there a way to add security such as a /user?something/password?something after the port number?

    opened by bill-orange 3
Releases(1.1.1)
Owner
null
✔️The smallest header-only GUI library(4 KLOC) for all platforms

Welcome to GUI-lite The smallest header-only GUI library (4 KLOC) for all platforms. 中文 Lightweight ✂️ Small: 4,000+ lines of C++ code, zero dependenc

null 6.5k Nov 24, 2022
Mongoose Embedded Web Server Library - a multi-protocol embedded networking library with TCP/UDP, HTTP, WebSocket, MQTT built-in protocols, async DNS resolver, and non-blocking API.

Mongoose - Embedded Web Server / Embedded Networking Library Mongoose is a networking library for C/C++. It implements event-driven non-blocking APIs

Cesanta Software 8.9k Nov 21, 2022
A place to collaborate on code for the Embedded.fm book club. Currently reading "STM32 ARM Programming for Embedded Systems".

Welcome to the Book Club Code site! This is a place for the Embedded.fm book club to collaborate and learn together. Repo Structure Guide Top-level fo

Peter Griffin 11 Jul 21, 2022
Embedded Flutter runtime targeting Embedded Linux with Wayland

ivi-homescreen IVI Homescreen for Wayland Strongly Typed (C++) Lightweight Clang 11 Release Stripped = 151k GCC 9.3 Release Stripped = 168k Source run

null 167 Nov 15, 2022
Lab2: using a physical embedded systems to interact with virtual embedded systems.

Lab2: dotDevice EmSys Autumn 2021 In this lab you will use your TinyPico to interact with a virtual embedded system. Current Virtual Lab URL: [http://

Shane Fleming 1 Oct 20, 2021
Lightweight Embedded Audio Framework

LEAF (Lightweight Embedded Audio Framework) is a C library for audio synthesis and processing created by Jeff Snyder, Mike Mulshine, and Matt Wang at Princeton University's New Instrument Research Lab. It was originally called OOPS when we started writing it in 2017, so you may see references to it under that name as well.

Jeff Snyder 107 Nov 1, 2022
Enabling services on your device 79 Nov 13, 2022
Chromium Embedded Framework with OpenGL Core or SDL2

Chromium Embedded Framework's cefsimple Off-Screen Rendering I needed to use a modifed version of cefsimple using either SDL or OpenGL Core. I tried t

Quentin Quadrat 12 Nov 8, 2022
Edf is an event-driven framework for embedded system (e.g. FreeRTOS) with state machine and subscriber-publisher pattern.

Edf means event-driven framework. Event-driven programming is a common pattern in embedded systems. However, if you develop software directly on top o

Arrow89 7 Oct 16, 2022
C++ open hierarchy RTTI framework for embedded projects

Open-hierarchy custom RTTI for C++17 and up with support for multiple inheritance and dynamic casting.

Roy van Dam 15 Nov 1, 2022
Kigs framework is a C++ modular multipurpose cross platform framework.

Kigs framework is a C++ modular multi-purpose cross-platform framework. It was used as a basis for many professionnal projects. The main goal was to b

null 73 Nov 10, 2022
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.

Cutelyst - The Qt Web Framework A Web Framework built on top of Qt, using the simple and elegant approach of Catalyst (Perl) framework. Qt's meta obje

Cutelyst 799 Nov 11, 2022
TreeFrog Framework : High-speed C++ MVC Framework for Web Application

Small but Powerful and Efficient TreeFrog Framework is a high-speed and full-stack web application framework based on C++ and Qt, which supports HTTP

TreeFrog Framework 1.1k Nov 24, 2022
Cute Framework (CF for short) is the cutest framework available for making 2D games in C/C++

Cute Framework (CF for short) is the cutest framework available for making 2D games in C/C++. CF comprises of different features, where the various features avoid inter-dependencies. In this way using CF is about picking and choosing which pieces are needed for your game

null 297 Nov 14, 2022
TengineGst is a streaming media analytics framework, based on GStreamer multimedia framework, for creating varied complex media analytics pipelines.

TengineGst is a streaming media analytics framework, based on GStreamer multimedia framework, for creating varied complex media analytics pipelines. It ensures pipeline interoperability and provides optimized media, and inference operations using Tengine Toolkit Inference Engine backend, across varied architecture - CPU, iGPU and VPU.

OAID 66 Nov 22, 2022
Embedded Template Library

Embedded Template Library (ETL) Motivation C++ is a great language to use for embedded applications and templates are a powerful aspect. The standard

Embedded Template Library 1.4k Nov 15, 2022
Simple .INI file parser in C, good for embedded systems

inih (INI Not Invented Here) inih (INI Not Invented Here) is a simple .INI file parser written in C. It's only a couple of pages of code, and it was d

Ben Hoyt 1.9k Nov 24, 2022
JSON parser and generator for C/C++ with scanf/printf like interface. Targeting embedded systems.

JSON parser and emitter for C/C++ Features ISO C and ISO C++ compliant portable code Very small footprint No dependencies json_scanf() scans a string

Cesanta Software 632 Nov 20, 2022
A lightweight C++ machine learning library for embedded electronics and robotics.

Fido Fido is an lightweight, highly modular C++ machine learning library for embedded electronics and robotics. Fido is especially suited for robotic

The Fido Project 412 Sep 19, 2022
C++ library for creating an embedded Rest HTTP server (and more)

The libhttpserver reference manual Tl;dr libhttpserver is a C++ library for building high performance RESTful web servers. libhttpserver is built upon

Sebastiano Merlino 702 Nov 15, 2022