Giter Club home page Giter Club logo

libsmce's Introduction

libSMCE

Spiritual successor to the backend of SMartCarEmul
Copyright © ItJustWorks™

Build codecov

Status: Actively maintained

This cross-platform C++ library provides its consumers the ability to compile and execute Arduino sketches on a hosted environment, with bindings to its virtual I/O ports to allow the host application to interact with its child sketches.

Check our Wiki for more information about usage.

Supported I/O

  • GPIO (Arduino's digitalRead, analogWrite, etc)
  • UART (Arduino's Serial global)
  • SD (writes to host's filesystem in a pre-configured root)
  • MQTT (interface of arduino-mqtt) - Note: cannot be monitored by host application
  • OV767X Camera (interface of Arduino_OV767X) - Note: available pixel formats differ

Build Requirements

  • CMake >= 3.16
  • C++20 compiler (tested with GCC >= 10, Clang/LLVM >= 10, MSVC >= 19.28, AppleClang)
  • Boost >= 1.74 - Not an interface requirement however (you only need Boost headers to build the library, not when using it precompiled)
  • OpenSSL (tested with 1.1.1)

Automatically built from source

Runtime Requirements

  • CMake >= 3.12
  • C++ compiler with support for at least C++11 - MinGW and MSVC-Wine are NOT officially supported

Optional

  • Ninja - On Un*x, will be used by setting CMAKE_GENERATOR (if that environment variable is unset)

Build instructions

cmake -S . -B build
cd build
cmake --build .

Running the testsuite

cmake --build . --target SMCE_Tests
ctest

Packaging

cpack

Future development

  • Serve the Doxygen-generated docs
  • Making a proper Hugo-generated wiki in Markdown
  • std::error_codeify smce::Board
  • Add more I/O features, in particular the ones that were in SMartCarEmul
  • Add interrupts support
  • Allow consumers to specify toolchain files

First-party frontend

See SMCE-gd, designed for Arduino RC vehicles.

libsmce's People

Contributors

aerostun avatar danielolssonit avatar ruthgerd avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.