Salta al contenuto
Nessun risultato
  • Account
  • Articoli e libri
  • bbpress template
  • Calcolatrice legge di Ohm
  • Calcolatrici e convertitori
  • Convertitore Farad condensatori
  • Convertitore Ohm resistenze
  • Convertitore sistema numerico
  • Datasheet
  • Download
  • GeXY… Idea!
  • Login
  • Password Reset
  • Privacy e condizioni
  • Progetti
  • Video list
GeXY
Login/registrati
  • Progetti
  • Forum
  • Risorse
    • Datasheets
    • Calcolatrici & convertitori
    • Libri & articoli
    • Video
GeXY

OpenLab Developer

14
  • Custom port per LogicBlock
  • Creare un project storage
  • Creare un LogicBlock
  • Setup ambiente di sviluppo e installazione librerie
  • Creare un logger storage
  • Creare un plugin base

OpenLab Studio Developer

8
  • Gestore dei tipi di dati
  • Gestore degli errori
  • Schemi validazione configurazione
  • Elenco eventi standard
  • Logger standard
  • Logger base
  • Gestore degli eventi
  • Gestore della UI

GeJSON

3
  • Validazione json
  • Parsing json
  • Uso di GeJSON
View Categories
  • Home
  • OpenLab Docs
  • OpenLab Developer
  • Creare un plugin base

Creare un plugin base

1 min read

OpenLab Studio >= 0.10.x
OpenLab SDK >= 1.0.x
IDE Visual Studio 2022 Ver.: 17.14.13
Linguaggi C#
Versione .NET 8

 

Generale #

Questa guida spiega il funzionamento di base di un plugin e come crearlo, verrà creato un plugin basilare che scrive dei messaggi di log e utilizza l’events manager per scrivere un messaggio nel alla fine del caricamento di OpenLab Studio

I plugin vengono usati per aggiungere funzionalità o eseguire operazioni ad esempio per aggiungere funzionalità ad OpenLab Studio o OpenLab Standalone, etc. In sostanza un plugin estende la classe Plugin ed interagisce col sistema OpenLab tramite gli eventi ed manager( EventManager, PluginManager, etc

Per il setup dell’ambiente di sviluppo e installare il plugin seguire questa guida

 

Implementare le basi #

Un plugin estende la classe Plugin innanzi tutto dobbiamo creare i metodi init e deinit e la classe per le info del plugin. Le info del plugin servono a specificare il nome, la versione, l’ID univoco del produttore del plugin e altre informazioni.

using OpenLabSDK.config;
using OpenLabSDK.error;
using OpenLabSDK.events;
using OpenLabSDK.plugin;
using OpenLabSDK.ui;
using OpenLabStudio.project;
using System.Windows;

namespace PluginUIBaseTutorial1
{
    public class PluginUIBaseTutorial1 : Plugin
    {
        internal class Info : IPluginInfo
        {
            public string Name { get; } = "PluginUIBaseTutorial1";
            public string Title { get; } = "Plugin UI Base Tutorial 1";
            public int[] version { get; } = { 1, 0, 0 };
            public string vendorUID { get; }
            public string url { get; }
            public string description { get; }
        }

        public PluginUIBaseTutorial1(
            IErrorManager _errorManager, 
            IPluginsManager _pluginsManager, 
            IEventsManager _eventsManager, 
            IWindowsManager _windowsManager, 
            ProjectsManager _projectsManager,
            PluginDefinition _pluginDefinition) : base(
                _errorManager, 
                _pluginsManager, 
                _eventsManager, 
                _windowsManager, 
                _projectsManager,
                _pluginDefinition)
        {
            pluginInfo = new Info();
        }

        public override int deinit()
        {
            log.info("Deinit plugin" + pluginInfo.Title);
            return 0;
        }

        public override int init()
        {
            log.info("Init plugin " + pluginInfo.Title);

            eventsManager.addEventHandler("ols.ready", (object sender, EventArgs e) =>
            {
                log.info($"Plugin: {pluginInfo.Name} hello!!");
                return true;
            });

            return 0;
        }
    }
}

 

Nel codice sopra vengono definiti construttore e metodi basilari e viene implementata la classe per info del plugin. Al costruttore vengono passate le istanze del ErrorManager , PluginManager, EventsManager, WindowsManager, ProjectManager create da OpenLab Studio per gestire errori e plugin ed eventi. Al costruttore viene anche passata l’instanza di PluginDefinition con la configurazione e i parametri del plugin. Nel costruttore del plugin viene estratta l’istanza del log da ErrorManager e assegnata alla variabile log.

 

Sequenza di caricamento #

All’avvio di OpenLab Studio viene letto il file di configurazione(JSON) config.json. In questo file sono definiti i plugin(path del dll, abilitato/disabilitato, etc) e la loro configurazione.

Viene letto e caricato un plugin per volta. Una volta caricato un plugin viene chiamato il suo metodo init.

Attenzione
A questo punto OpenLab Studio non è ancora pronto, alcune parti come la UI devono essere ancora caricate, è sconsigliato interagire con OpenLab Studio nel metodo init.

 

Updated on 02/04/2026

What are your Feelings

  • Happy
  • Normal
  • Sad

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest

Powered by BetterDocs

Table of Contents
  • Generale
  • Implementare le basi
  • Sequenza di caricamento
Copyright © 2026 - Tema WordPress sviluppato da CreativeThemes