All Projects → kmarkus → microblx

kmarkus / microblx

Licence: other
microblx: real-time, embedded, reflective function blocks.

Programming Languages

c
50402 projects - #5 most used programming language
lua
6591 projects
Makefile
30231 projects
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to microblx

control
Control in C++
Stars: ✭ 17 (-54.05%)
Mutual labels:  signal-processing, control-systems
Yomo
🦖 Streaming-Serverless Framework for Low-latency Edge Computing applications, running atop QUIC protocol, engaging 5G technology.
Stars: ✭ 279 (+654.05%)
Mutual labels:  realtime, edge-computing
torchsubband
Pytorch implementation of subband decomposition
Stars: ✭ 63 (+70.27%)
Mutual labels:  signal-processing
PyCBC-Tutorials
Learn how to use PyCBC to analyze gravitational-wave data and do parameter inference.
Stars: ✭ 91 (+145.95%)
Mutual labels:  signal-processing
realtime-geolocation
Geolocation tracking app with Node.js, Socket.io, & AngularJS
Stars: ✭ 29 (-21.62%)
Mutual labels:  realtime
microservice-graph-explorer
Navigate and explore all of the microservices in your application in real time using the real application connections.
Stars: ✭ 71 (+91.89%)
Mutual labels:  realtime
eidos-audition
Collection of auditory models.
Stars: ✭ 25 (-32.43%)
Mutual labels:  signal-processing
smart-social-distancing
Social Distancing Detector using deep learning and capable to run on edge AI devices such as NVIDIA Jetson, Google Coral, and more.
Stars: ✭ 129 (+248.65%)
Mutual labels:  edge-computing
serverless-websockets-chat
Realtime chat app based on AWS Lambda, API Gateway, DynamoDB, Websockets, React in TS
Stars: ✭ 19 (-48.65%)
Mutual labels:  realtime
icassp2019-latex-template
ICASSP 2019 official Latex template
Stars: ✭ 21 (-43.24%)
Mutual labels:  signal-processing
Nonlinear-Systems-and-Control
Files for my Nonlinear Systems and Controls class.
Stars: ✭ 16 (-56.76%)
Mutual labels:  control-systems
PHPench
Realtime benchmarks for PHP code
Stars: ✭ 53 (+43.24%)
Mutual labels:  realtime
ewtpy
Empirical wavelet transform (EWT) in Python
Stars: ✭ 52 (+40.54%)
Mutual labels:  signal-processing
Channel-Estimation
Simulates an FBMC and OFDM transmission over a doubly-selective channel. Allows to reproduce all figures from "Doubly-Selective Channel Estimation in FBMC-OQAM and OFDM Systems", IEEE VTC Fall, 2018
Stars: ✭ 64 (+72.97%)
Mutual labels:  signal-processing
ui
PostgreSQL Editor and Dashboard
Stars: ✭ 128 (+245.95%)
Mutual labels:  realtime
kalman-jax
Approximate inference for Markov Gaussian processes using iterated Kalman smoothing, in JAX
Stars: ✭ 84 (+127.03%)
Mutual labels:  signal-processing
jui-chart
SVG-based JUI chart that can be used in the browser and Node.js. Support many types of charts. (Dashboard, Map, Topology, Full 3D, Realtime)
Stars: ✭ 58 (+56.76%)
Mutual labels:  realtime
yocto-tinkerboard
Yocto Sources for Tinkerboard
Stars: ✭ 23 (-37.84%)
Mutual labels:  yocto
gr-eventstream
gr-eventstream is a set of GNU Radio blocks for creating precisely timed events and either inserting them into, or extracting them from normal data-streams precisely. It allows for the definition of high speed time-synchronous c++ burst event handlers, as well as bridging to standard GNU Radio Async PDU messages with precise timing easily.
Stars: ✭ 38 (+2.7%)
Mutual labels:  signal-processing
FluX
A convenient way of processing digital signals in F#
Stars: ✭ 17 (-54.05%)
Mutual labels:  signal-processing

microblx logo

microblx: hard realtime function blocks

Build status Documentation status

Microblx is a lightweight and hard real-time safe function block framework for use-cases such as embedded control or signal processing. It provides generic and configurable code for typical challenges such as lock-free communication between different criticality domains, real-time safe logging or triggers with configurable POSIX realtime properties.

Main features:

  • hard real-time safe: no run-time allocations or non-deterministic system calls
  • simple model: everything is a block
  • extensible: easy to add a new type, trigger block or connection
  • composing applications: applications are described using a simple textual lanugage
  • standard blocks and tools included:
    • communication: lock free buffers, POSIX message queues,
    • computations: PID controller, ramps, constants, random ...
    • triggers: periodic, passive incl. built in latency profiling
    • real-time safe logging
  • no HAL: no arbitrary abstractions, just "configurable" POSIX
  • minimal: tiny memory footprint, few dependencies, embedded-friendly

Documentation

The documentation is here or can be built locally (requires sphinx to be installed):

$ cd docs/
$ make html
Running Sphinx v1.8.5
...

There is also a ChangeLog which summarizes API changes or important features and a high-level roadmap.

Getting help

Please feel free to ask questions or report problems on the microblx mailing list:

https://groups.google.com/forum/#!forum/microblx

It is possible to subscribe by email by sending a mail to [email protected]

Related Projects

The following is a list of projects related to microblx:

Contributing

Contributions are very welcome. Please check that the following requirements are met:

  • contributions must conform to the Linux kernel coding style.

  • before submitting, please run the the tests (./run_tests.sh after installing) and static checking (make cppcheck, shouldn't output anything).

  • the preferred ways of submitting patches is via the mailing list. If you must, a github merge request is OK too.

  • please don't forget to add a line Signed-off-by: Random J Developer <[email protected]> to certify conformance with the Developer's Certificate of Origin 1.1 below.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.

License

See COPYING. The microblx core is licensed under the weak copyleft Mozilla Public License Version 2.0 (MPL-2.0). Standard blocks are mostly licensed under the permissive BSD 3-Clause "New" or "Revised" License or also under the MPLv2.

It boils down to the following. Use microblx as you wish in free and proprietary applications. You can distribute binary function blocks as modules. Only if you make changes to the core files (mostly the files in libubx/) library), and distribute these, then you are required to release these under the conditions of the MPL-2.0.

Acknowledgement

Microblx is considerably inspired by the OROCOS Real-Time Toolkit. Other influences are the IEC standards covering function block IEC-61131 and IEC-61499.

Microblx was supported by the European H2020 project RobMoSys via the COCORF (Component Composition for Real-time Function blocks) Integrated Technical Project.

This work was supported by the European FP7 projects RoboHow (FP7-ICT-288533), BRICS (FP7- ICT-231940), Rosetta (FP7-ICT-230902), Pick-n-Pack (FP7-NMP-311987) and euRobotics (FP7-ICT-248552).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].