Skip to content

destroyedlolo/Selene

v6
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Séléné

Séléné is a lightweight and versatile framework to build Lua event driven application.

Séléné provides :

  • tasks list management : tasks needing to run in sequence or which doesn't need to be real-time are queued. They will be launched when main application thread is idle
  • Asynchronous tasks : tasks can detach from their mother process. Unlike Lua's coroutine, they are working totally independently, without having to manage concurrent access to their own context. Especially suitable for real-time actions.
  • data exchange between tasks are managed using shared variables or data queues (have a look on SelShared and Collection objects). Notez-bien : due to Lua's limitation, detached tasks can't access to objects (including functions) declared in the main thread, Shared objects and collections handle data sharing as well as locking to avoid race condition and concurrent access.
  • Tasks are waked-up by various types of events :
    • timers (absolute and relative times)
    • MQTT messages arrivals. Consequently, an external application can trigger tasks by sending an MQTT message. Séléné provides some APIs to expose MQTT payload to Lua scripts and can send new messages.
    • files’ events
    • Unix events

Thanks to plug-ins, Séléné allows to easily create events driven dashboard :

  • Text based ones using the industry standard Curses library
  • Graphicals ones :
    • Tiny OLED displays
    • Linux Framebuffers so without having to install and manage obese X layer

Pluggins dashboard examples

DRM/Cairo

DRMCairo

DRM/Cairo dashboard more elaborated graphics especially with transparency

DirectFB

DFB

DirectFB dashboard flat design due to constraints of the screen used

Curses

Curses

Textusal Curses dashboard displayed on a old terminal : Séléné only manages the text itself


docs directory containes various ... documentations : installation procedures, API of pluggins ...

About

Automation tool based on MQTT data. Optionnal backends to create "DRM/Cairo" "DirectFB" or "Curses" graphical applications.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published