Skip to content

Use case: mondo sistemi embedded #14

@francescobianco

Description

@francescobianco

(Questa issue è un promemoria nonchè una lista di appunti)

Nel mondo dei sistemi embedded dove le esigenze di sviluppo spesso impongono limiti di spazio e risorse o dove spesso l'introduzione di runtime engine addizionali (magari solo per lo sviluppo) può non portare benefici, abbiamo la possibilità di usare Mush, dato che esso non impone runtime engine (tutto scritto in bash e funziona senza dipendenze di alcun tipo)

Ecco una lista di casi d'uso potenziali

Preprocessore per elaborare i file sorgenti prima che arduino li compili.

Spesso può essere necessario pre-elaborare un file *.ino o *.h o *.c prima che esso venga processato dal compilatore arduino
questa tecnica può essere usata ad esempio per inserire un file di testo dentro le costanti o per serializzare dati binari in casi in cui non è possibile fare altrimenti o popolare delle constati con dei dati di sviluppo presi da un .env file. Per capire meglio Vedere questo tool: https://github.com/fulminati/arduino-web-inject

Fare il setup dell'ambiente di sviluppo

Il setup dell'ambiente di sviluppo spesso richiede delle dipendenze, installare i tool per fare il flash di una board, installare librerie, aggiungere tool di sviluppo. Tutto questo potrebbe essere dichiarato con un file manifest e installato tramine un tool unico, Mush potrebbe farlo. Esempio di un file di questo tipo e questo (con lo scopo di definire tutte le caratteristiche dell'ambite di sviluppo da preparare): https://github.com/fulminati/esp8266/blob/master/sketches.yml

Tool di vario genere

  • Si possono creare tool per il monitoraggio dell'ouput e dell'input seriale verso una board rendendo più semplice il setup
  • Si possono creare wrapper per comandi verso sismtemi esterni come Android o RaspberryOS
  • Si possono creare client per la domotica per integrare applicationi tipo IFTTT o MacroDroid

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions