Connettore Overmind
- Tipo non definito
Overmind è un connettore Hub che fornisce dati virtuali per test e dimostrazioni. Permette di simulare un punto di regolazione, contatore, stato, data o posizione geografica, senza apparecchiature fisiche.
Gestisce due famiglie di variabili:
Defined—Il valore viene impostato al salvataggio, e poi cambiato tramite una scrittura da una sessione, un'applicazione o un altro connettore.Evolving—Il valore cambia automaticamente a un intervallo scelto. Gli abbonati ricevono le variazioni di valore, qualità e data di origine.
La definizione è portata dall'URL del handle. Name è obbligatoria e ne costituisce il riferimento principale. Una terza forma, Overmind://Metronome, ti permette di dichiarare metronomi che sincronizzano variabili in evoluzione.
In questo articolo
1. Definisci e trova un handle
1.1 Struttura del percorso
Il percorso di un handle è un URL. Il suo prefisso, o protocollo, è Overmind://. Per definire una variabile, essa è seguita da Defined oppureEvolving, e poi un punto interrogativo che ne presenta le impostazioni.
Ogni parametro è un'associazione Clé=Valeur. Il personaggio & separa i parametri, come nella parte di query di un URL.
Contatore da 0 a 100, incrementato di 1 ogni 5 secondi, poi ridotto a 0:
Overmind://Evolving?Name=Increment0To100Every5s&Type=Integer&InitialValue=0&EndValue=100&Step=1&Interval=5&Behavior=Increment
1.2 Nome: Identità e Sostituzione
Name identifica un handle in un'istanza di Overmind. Gli spazi all'inizio e alla fine del nome vengono rimossi, e il confronto non distingue le maiuscole e le cose. Quindi Counter e counter indichi la stessa variabile.
Salvare una definizione con un nome già presente sostituisce la vecchia definizione e reimposta il valore, anche se il percorso fornito è lo stesso. Le abbonamenti esistenti a quel nome continuano a ricevere le sue modifiche. Una definizione non valida viene rifiutata prima di sostituire la variabile esistente.
Un nome assente, vuoto o composto solo da spazi causa un errore esplicito. Anche un riferimento a un nome sconosciuto fallisce; non crea una variabile.
1.3 Leggi e iscriviti per nome
Dopo aver salvato la definizione, usa solo il suo nome per leggere il suo valore o iscriviti alle sue modifiche:
Overmind://Name=Increment0To100Every5s
Questo breve percorso non resetta la maniglia. Accetta solo il Name. Per cambiare la definizione, salva di nuovo un percorso Defined oppure Evolving con lo stesso nome.
1.4 Scrivere su un handle definito
Crea una politica modificabile:
Overmind://Defined?Name=MutableInteger20&Type=Integer&InitialValue=20
Poi invia il valore 25 à Overmind://Name=MutableInteger20 tramite l'operazione di scrittura Hub. Il nome rimane lo stesso, il valore diventa 25 e la data di modifica viene aggiornata.
Una scrittura incompatibile con il tipo viene rifiutata senza cambiare il valore o la data. Scrive su un handle Evolving sono rifiutati.
2. Tipi di valori
Il parametro Type Indica la natura del valore simulato. Determina come Overmind interpreta il valore ricevuto, quali valori sono accettati e quali calcoli sono possibili durante un'evoluzione o una scrittura.
Ad esempio, Type=Integer Interprete 10 come un intero a cui possiamo aggiungere un gradino. Type=String Scatola 10 come un messaggio. Type=DateTime Ti permette di anticipare una data di una data di una data stabilita.
Manici Defined e Evolving Usa gli stessi tipi. Un'affermazione Metronome ha un punto diretto Span e non usa il Type.
| Tipo | Valore manipolato |
|---|---|
Boolean |
Booleano true oppure false. |
Integer |
Tutto firmato da -2147483648 a 2147483647. |
SmallInteger |
Byte senza segno da 0 a 255. |
Single |
Numero decimale, memorizzato in doppia precisione in Overmind. |
DateTime |
Data e ora pubblicate su UTC. |
GISVector |
Posizione geografica. |
String |
Messaggio. |
Unknow, Any, Url, Guid |
Trattato come testo; un URL o un Guid non viene validato come tale. |
Color, Image, Array |
Tipi non supportati: La definizione è negata. |
Senza Type, Usi dell'Overmind Unknow. Un valore come 123 Il testo viene lasciato se non è indicato alcun tipo numerico.
3. Manici definiti
Un manico Defined rappresenta un valore che è fisso e poi modificato dall'esterno, scrivendo nell'Hub. È adatto, ad esempio, per un setpoint, uno stato forzato o un valore dimostrativo stabile. Non evolve automaticamente.
Più chiavi possono essere associate a Defined Nel suo URL: il nome identifica la variabile, il tipo ne specifica la natura e gli altri parametri permettono di scegliere il suo valore iniziale, la qualità o la data di sorgente. Le chiavi disponibili sono le seguenti.
| Parametro | Ruolo e default |
|---|---|
Name |
Nome richiesto, identificazione tramite indirizzo. |
Context |
Testo descrittivo opzionale, senza alcun effetto sull'identità. |
Type |
Tipo di valore; Unknow di default. |
InitialValue |
Valore iniziale, convertito in Type. |
Status |
Qualità iniziale; Good di default. |
LastModificationDate |
Data iniziale di fonte; data UTC attuale di default. |
Context è un'informazione descrittiva opzionale. Non separa le identità: due definizioni hanno la stessa Name e contesti diversi si riferiscono allo stesso manico.
Senza InitialValue, i numeri sono 0, il booleano è falso, il testo è vuoto, la data è il 1° gennaio, 1 UTC, e la posizione GIS è (0,0).
LastModificationDate descrive la data del valore, non la frequenza con cui cambia. Una voce di successo aggiorna questa data. Un'istruzione può quindi portare una qualità Unreachable e una data vecchia appena registrata per simulare dati non disponibili o obsoleti.
4. Maniglia in evoluzione
Un manico Evolving rappresenta una variabile che cambia automaticamente nel tempo. Può simulare un contatore, una misurazione casuale, una serie di stati, una data avanzata o uno spostamento geografico. Gli abbonati sono informati della sua evoluzione.
Le chiavi associate a Evolving nell'URL ti permette di scegliere il tipo di valore, la sua partenza, il suo arrivo, come evolverlo e la durata tra due modifiche. Step agisce sulla variazione di valore; Interval Regola il tempo tra una modifica e l'altra.
| Parametro | Ruolo e default |
|---|---|
Name |
Nome richiesto, identificazione tramite indirizzo. |
Context |
Testo descrittivo facoltativo. |
Type |
Tipo di valore; Unknow di default. |
InitialValue |
Il punto di partenza o l'ingresso iniziale dell'Aggregato. |
EndValue |
Segnale di arrivo, data o durata assoluta a seconda del tipo. |
Step |
Nessuna evoluzione, durata, salto in una lista o numero di transizioni GIS. |
Interval |
Tempo positivo tra due evoluzioni; 30 secondi di default. |
Behavior |
Increment di default; Decrement oppure Random come desiderato. Per testi senza Aggregato esplicito, il predefinito è Random (vedi Elenchi e testi). |
Aggregate |
Una lista di valori da sfogliare con virgole separata. |
Metronome |
Nome di un metronomo esistente; opzionale. |
Statuses |
Elenco delle possibili qualità, separate da trattini; Good di default. |
LastModificationTimeSpan |
Durata per sottrarre dalla data di origine; zero di default. |
EndValue è l'unico parametro finale accettato.
4.1 Comportamento e looping
Increment aggiunge Step ; Decrement lo sottrae. Per numeri e date, InitialValue è il punto di partenza e EndValue il limite nella direzione scelta. Dopo aver superato questo limite, il valore ritorna al punto di partenza. Il limite viene raggiunto se il gradino cade esattamente su di esso.
Con InitialValue=0, EndValue=100 e Step=1, la sequenza è 0, 1, 2, fino a 100, e poi 0. Con InitialValue=3, EndValue=0 e Behavior=Decrement, è 3, 2, 1, 0, poi 3.
Random sceglie un valore tra i limiti o da una lista di valori (vedi sotto per la nozione diAggregate). Step non viene usato per il sorteggio casuale. Se questo parametro viene fornito, il suo valore deve comunque essere valido.
Senza Behavior, il comportamento è Increment. Il caso particolare dei testi è spiegato nella sezione Elenchi e testi.
4.2 Impostazioni predefinite e step
| Tipo senza aggregato | Partenza predefinita | Terminale di arrivo predefinito | Passo predefinito |
|---|---|---|---|
Integer |
Minimo di tipo; massimo in Declino. | Massimo di tipo; minimo in Declino. | 1. |
SmallInteger |
0. | 255 ; 0 in declino. | 1. |
Single |
0. | Massimo di tipo; minimo in Declino. | 0.1. |
DateTime |
1 gennaio, 1 UTC. | Data massima; data minima in Declino. | 30 secondi. |
Boolean |
falso. | Alternanza o estrazione casuale. | Non usato. |
String e tipi simili |
Prima voce nella lista. | Elenco dei messaggi. | 1 ingresso. |
GISVector |
Longone 0, latitudine 0. | Punto finale storico: longitudine 5.877286, latitudine 47.858437 (vedi GISVector). | Un viaggio fatto in un solo viaggio. |
Scegli terminali autoesplicative per una simulazione leggibile. Step deve essere positivo: intero per Integer, SmallInteger, liste e transizioni GIS; decimale per Single ; Durata per DateTime.
Per un Boolean senza Aggregate, Lo step non viene utilizzato : il booleano viene invertito ad ogni scadenza con Increment oppure Decrement. Con Random, viene estratta casualmente e può mantenere lo stesso valore. Quando Aggregate fornisce una lista di Booleani, la lista viene attraversata secondo le regole descritte di seguito.
4.3 Elenchi aggregati e testi
Aggregate=A,B,C fornisce i valori consentiti. Increment avanzare nella lista, Decrement ritiri e Random sceglie un ingresso. Il percorso è ciclico; Step conta le voci da saltare, con 1 di default.
Il primo input viene usato inizialmente, anche con Decrement. InitialValue Ti permette di scegliere un'altra voce e devi quindi appartenere alla lista. EndValue non si verifica quando l'Aggregate è presente. Tutte le voci vengono convertite nel tipo richiesto.
In un manico Evolving, Un testo evolve sempre scegliendo una voce da un elenco. Questo riguarda String e i tipi assimilati al testo: Any, Unknow, Url e Guid.
Questa lista può avere tre origini:
- A
Aggregateesplicito: I valori forniti sono l'elenco. SenzaBehavior, sono sfogliate in ordine conIncrement. - Testi definiti da
InitialValueeEndValue—Formano una lista di due voci. Se una fine viene omettata, essa viene presa dalla lista integrata. - Nessuna di queste cose: Overmind utilizza la sua lista di messaggi integrata.
Negli ultimi due casi, senza un aggregato esplicito, il Behavior Il predefinito è Random. Puoi scegliere Behavior=Increment per sfogliare i testi in ordine. Un testo Defined, invece, rimane un valore fisso e non utilizza alcuna lista.
4.4 DateTime
Per un DateTime, InitialValue è la data di partenza. EndValue può essere una data di arrivo assoluta o una durata calcolata dalla partenza.
Step è la durata della data simulata. Interval è il tempo reale tra due evoluzioni: Step=30&Interval=1 Anticipa la data di 30 secondi ogni secondo reale.
Data di arrivo assoluta: inizia alle 10:00 UTC, avanza di 30 secondi per ogni secondo reale, e torna indietro dopo le 10:01 UTC.
Overmind://Evolving?Name=AdvanceDate30sEvery1s&Type=DateTime&InitialValue=2026-09-08T10:00:00Z&EndValue=2026-09-08T10:01:00Z&Step=30&Interval=1
Data relativa di arrivo: viaggio di un minuto dalle 10:00 UTC, avanzando di 500 ms per ogni secondo reale.
Overmind://Evolving?Name=AdvanceDate500msEvery1s&Type=DateTime&InitialValue=2026-09-08T10:00:00Z&EndValue=00:01:00&Step=00:00:00.500&Interval=1
Durata relativa in diminuzione: A partire dalle 10:01 UTC, sottraendo 30 secondi da ogni secondo effettivo, fino a un minuto prima della partenza, e poi ripetendo.
Overmind://Evolving?Name=RewindDate30sEvery1s&Type=DateTime&InitialValue=2026-09-08T10:01:00Z&EndValue=60&Step=30&Interval=1&Behavior=Decrement
Data casuale: Scegli una data ogni secondo reale entro un minuto dalle 10:00 UTC. Il passaggio non viene utilizzato.
Overmind://Evolving?Name=RandomDateWithinMinuteEvery1s&Type=DateTime&InitialValue=2026-09-08T10:00:00Z&EndValue=00:01:00&Interval=1&Behavior=Random
4.5 GISVector
Una singola posizione utilizza l'ordine longitude,latitude : InitialValue=2,48. I valori pubblicati utilizzano il longitude;latitude, ad esempio 2;48.
Per un GIS, EndValue è un punto di arrivo, non un valore massimo. Coordinate 5.877286,47.858437 hanno origine da un punto nel codice storico del connettore; non rappresentano alcun confine geografico. Specificare InitialValue e EndValue Ti permette di scegliere la tua strada.
Senza aggregato, un Transizione è il passaggio dalla posizione attuale alla successiva. Step indica quanti viaggi della stessa lunghezza il viaggio dall'inizio alla fine è diviso. Viene effettuata una transizione in ciascuno Interval.
Con una partenza (2.48), un arrivo (4.50), Step=2 e Interval=1, il risultato è:
| Tempo trascorso | Posizione pubblicata | Movimento |
|---|---|---|
| 0 secondi | 2;48 |
Punto di partenza. |
| 1 secondo | 3;49 |
Prima transizione: a metà. |
| 2 secondi | 4;50 |
Seconda transizione: arrivo. |
| 3 secondi | 2;48 |
Torna all'inizio per ricominciare il viaggio. |
Overmind://Evolving?Name=ForwardGisTripEvery1s&Type=GISVector&InitialValue=2,48&EndValue=4,50&Step=2&Interval=1
Retromarcia InitialValue e EndValue inverte il percorso. Con Random, un punto viene estratto casualmente dal segmento; Step non viene usato.
L'Aggregato GIS mantiene il suo formato storico: ogni coppia è scritta in latitudine, longitudine, con il suo punto decimale codificato. Quindi Aggregate=48%2C2,49%2C3,50%2C4 corrisponde alle posizioni pubblicate 2;48, 3;49 e 4;50.
5. Sincronizza le evoluzioni con un metronomo
5.1 Dichiarare un metronomo con manico
Un metronomo definisce una cadenza comune a diverse variabili. Si dichiara inoltre con un URL, prima di applicare le variabili che lo utilizzeranno.
Metronomo con battiti distanziati a 250 ms:
Overmind://Metronome?Span=00:00:00.250&Name=Demo250ms
| Chiave | Ruolo |
|---|---|
Name |
Nome obbligatorio del metronomo. |
Span |
Durata obbligatoria e rigorosamente positiva tra due battiti. Accetta secondi, inclusi frazionari, o una durata formattata. |
L'handle fornisce il suo periodo come valore, ad esempio 00:00:00.2500000. È leggibile con il riferimento per nome descritto all'inizio del documento. Non è un contatore di battito e non accetta scrittura diretta; per cambiare il punto, si salva una nuova definizione Metronome.
Riformulando gli aggiornamenti dello stesso nome Span senza riavviare la fase comune. Se il nuovo periodo è incompatibile con un intervallo di variabili attive o salvate, la dichiarazione fallisce esplicitamente e il periodo precedente rimane applicato.
I nomi seguono la stessa regola di unicità degli altri manigli. Un metronomo ancora in uso non può essere sostituito da una variabile Defined oppure Evolving.
5.2 L'intervallo rimane una durata
Il metronomo è opzionale. Senza Metronome, ogni maniglia evolve in base al suo intervallo dalla sua inizializzazione. Frazioni di secondo sono accettate: Interval=0.29 richiede un'evoluzione ogni 290 ms.
Con Metronome, la maniglia mantiene il suo intervallo e si unisce a un'origine temporale comune. Due maniglie con lo stesso metronomo e lo stesso intervallo si evolvono negli stessi intervalli temporali, anche se registrate in momenti diversi.
Un metronomo ha un nome Name e un periodo Span strettamente positivo. L'intervallo dell'handle deve essere un multiplo intero positivo di questo periodo. Queste sono sempre durate: Interval=1 significa un secondo, non un battito.
| Campata del metronomo | Interval du handle | Risultato |
|---|---|---|
| 250 ms | 1 secondo | Evoluzione ogni 4 battiti. |
| 250 ms | 500 ms | Evoluzione ogni 2 battimenti. |
| 250 ms | 750 ms | Evoluzione ogni 3 battiti. |
| 250 ms | 290 ms | Rifiuto: il rapporto non è completo. |
| 10 ms | 290 ms | Evoluzione ogni 29 battiti. |
Senza Interval, la durata di 30 secondi rimane in vigore e deve essere anch'essa un multiplo di Span. Un metronomo assente nella configurazione, un nome vuoto o un intervallo incompatibile producono un errore esplicito.
5.3 Scadenze comuni
Su un metronomo da 250 ms, le maniglie con intervalli di 500 ms e 750 ms hanno una scadenza comune ogni 1,5 secondi. Una maniglia aggiunta successivamente si unisce alla scadenza successiva corrispondente al suo intervallo.
Le notifiche vengono emesse successivamente, con la data della scadenza comune. La cadenza non è una garanzia in tempo reale. In caso di ritardo nel motore, viene applicata una singola evoluzione per l'ultima scadenza raggiunta, senza ripetere tutti i battiti persi. La riconnessione crea una nuova origine in tempo comune.
5.4 Prepara i metronomi per gli esempi
Il catalogo utilizza Demo250ms, espresso sopra, e Demo10ms, i cui battiti sono distanziati di 10 ms:
Overmind://Metronome?Span=00:00:00.010&Name=Demo10ms
Applica questi due URL prima dei sette esempi sincronizzati. Si trovano in cima alla tabella PreloadPaths fornito alla fine del documento. Non è più necessario preparare un file base per questi esempi.
Quando un singolo lotto di record contiene una dichiarazione di metronomo e le sue variabili, Overmind elabora prima la dichiarazione unica di quel metronomo. Se più definizioni condividono lo stesso nome nel lotto, il loro ordine rimane l'ordine della richiesta per preservare la regola dell'ultimo record.
Una dichiarazione tramite handle ha effetto in memoria, come quella di una variabile. Riapplicala dopo una riconnessione se non è stata salvata nel database. L'amministrazione Overmind permette anche di creare, modificare e salvare metronomi.
6. Qualità, data di fonte ed errori
La qualità indica lo stato simulato dei dati; è separata dallo stato di connessione di Overmind.
| Qualità | Situazione mostrata |
|---|---|
Good |
Dati validi. |
Unreachable |
Dati inaccessibili. |
SpecificError |
Errore specifico. |
Unhandled |
Maniglia non supportata. |
UnpluggedConnector |
Connettore disconnesso. |
NoConnectorFound |
Nessun connettore trovato. |
Pro Defined, usa Status. Pro Evolving, usa Statuses=Good-Unreachable-SpecificError : Da questa lista viene scelta una qualità per ogni modifica. Un'etichetta di qualità sconosciuta viene convertita in SpecificError.
LastModificationDate imposta la data iniziale di un handle Defined. LastModificationTimeSpan Sposta la data di fonte di un Evolving senza cambiare il suo intervallo: un valore aggiornato ogni secondo può essere presentato con cinque minuti di ritardo.
L'Hub e il ConnectorTester mantengono la qualità e la data originali della sorgente. Quindi una definizione che richiede Unreachable e una data fissa deve mostrare questa stessa informazione non appena viene salvata, e poi quando viene giocata per nome.
Un fallimento di record fornisce una ragione esplicita e un log a livello di errore, associato al connettore, al percorso e alla causa. Questo include un Name assenti, un tipo non supportato, un valore malformato, un intervallo nullo, un metronomo sconosciuto o una scrittura proibita.
Una simulazione che fallisce durante un'evoluzione pubblicata SpecificError. Le altre maniglie continuano a funzionare.
7. Formati URL e caratteri riservati
I nomi dei parametri, i tipi e i comportamenti sono indistinti a maiuscole e minuscole (case --county). I parametri che sono sconosciuti, ripetuti o inapplicabili alla famiglia degli handle vengono negati.
Poiché il percorso è un URL, alcuni caratteri hanno un ruolo riservato in esso. Ad esempio, ? introduce i parametri e & li separa. Quando uno di questi caratteri fa parte di un valore, deve essere codificato per rimanere all'interno di quel valore. Gli spazi, gli accenti e il segno + devono anch'essi essere codificati in valori di parametri.
| Carattere | Codifica in un valore |
|---|---|
| Spazio | %20 |
| Ampersand & | %26 |
| Segno + | %2B |
| Segno = | %3D |
| Punto interrogativo? | %3F |
| Sharp # | %23 |
| Percentuale % | %25 |
| Virgola in una coppia GIS di un aggregato | %2C |
I numeri usano il punto decimale: 21.5, 0.25. Uso dei booleani true oppure false, non 0 oppure 1.
Le date possono essere scritte, ad esempio, in ISO 8601 2026-09-08T10:00:00Z. Una data senza fuso orario viene interpretata in UTC; le date pubblicate sono normalizzate in UTC. In una differenza temporale positiva, si codifica il segno +: 2026-09-08T12:00:00%2B02:00.
Le durate accettano un certo numero di secondi, possibilmente frazionari, oppure il formato [jours.]hh:mm:ss[.fractions]. Ad esempio, 0.29 e 00:00:00.290 rappresentano 290 ms; 1.02:03:04 rappresenta 1 giorno, 2 ore, 3 minuti e 4 secondi.
8. Installazione e conservazione dei dati
Il connettore è distribuito sotto forma di GraphicStream.Immersive.Hub.Connectors.Overmind.dll. Al di fuori dell'runtime di .NET 10, la sua dipendenza applicativa è GraphicStream.Immersive.Hub.Abstractions.dll, fornito dall'ospite.
Per ConnectorTester, copiare la DLL Overmind nel Connectors accanto all'eseguibile, poi eseguire il test. Dovrebbe offrire un singolo connettore Overmind. Il tipo di configurazione è GraphicStream.Immersive.Hub.Connectors.Overmind.ConnectorSession.
Le basi Overmind/database.json Memorizza i percorsi del catalogo, le variabili di amministrazione e le definizioni del metronomo. I metronomi vengono caricati al momento dell'accesso. I percorsi salvati non diventano automaticamente handle attivi; devono essere registrati da un consumatore.
Una disconnessione interrompe le evoluzioni e svuota il registro delle maniglie attive. Al riavvio, si registrano nuovamente le variabili e i metronomi che non sono stati salvati. La base non è un salvataggio automatico dell'ultimo valore di ogni maniglia.
JSON base malformata o metronomi invalidi impediscono la connessione e producono un errore. Eliminare un percorso dal catalogo ne accetta il nome, il riferimento breve o la definizione; rimuove voci con lo stesso nome e salva il database.
Per adattare i vecchi percorsi, aggiungi Name a tutte le definizioni e danno nomi distinti a variabili che in precedenza erano differenziate solo da Context.
9. Esempi di manici
9.1 Metronomi
250ms di metronomo per sincronizzare le variabili.
Overmind://Metronome?Span=00:00:00.250&Name=Demo250ms
Metronomo da 10 ms per intervalli multipli di 10 ms.
Overmind://Metronome?Span=00:00:00.010&Name=Demo10ms
9.2 Valori definiti
Intero modificabile, inizializzato a 20.
Overmind://Defined?Name=MutableInteger20&Type=Integer&InitialValue=20
Boolean modificabile, inizializzato su false.
Overmind://Defined?Name=MutableBooleanFalse&Type=Boolean&InitialValue=false
Byte modificabile, inizializzato a 128.
Overmind://Defined?Name=MutableByte128&Type=SmallInteger&InitialValue=128
Decimale modificabile, inizializzato a 21.5.
Overmind://Defined?Name=MutableDecimal21Point5&Type=Single&InitialValue=21.5
Testo contenente accenti, spazi & e +.
Overmind://Defined?Name=TextWithReservedCharacters&Type=String&InitialValue=%C3%89tage%201%20%26%20accueil%20%2B%20caf%C3%A9
Data fissata per l'8 settembre 2026 alle 10:00 UTC.
Overmind://Defined?Name=FixedUtcDate&Type=DateTime&InitialValue=2026-09-08T10:00:00Z
Data alle 12:00 UTC+2, pubblicata alle 10:00 UTC.
Overmind://Defined?Name=DateWithTimeZone&Type=DateTime&InitialValue=2026-09-08T12:00:00%2B02:00
Posizione fissa: longitudine 2, latitudine 48.
Overmind://Defined?Name=FixedGisPosition&Type=GISVector&InitialValue=2,48
Testo libero di tipo Qualsiasi.
Overmind://Defined?Name=FreeText&Type=Any&InitialValue=texte%20libre
L'indirizzo URL che viene mantenuto come testo.
Overmind://Defined?Name=UrlAsText&Type=Url&InitialValue=https:%2F%2Fexample.com%2Fstatus%3Fzone%3DA%26mode%3Dlive
ID GUID tenuto come messaggio.
Overmind://Defined?Name=GuidAsText&Type=Guid&InitialValue=11111111-2222-3333-4444-555555555555
Testo senza conversione, di tipo Sconosciuto.
Overmind://Defined?Name=UnknownTypeAsText&Type=Unknow&InitialValue=valeur%20sans%20conversion
Un valore di 123 viene mantenuto come testo quando Tipo viene omesso.
Overmind://Defined?Name=OmittedTypeAsText&InitialValue=123
Un intero inizializzato a 0 di default.
Overmind://Defined?Name=DefaultIntegerZero&Type=Integer
Byte inizializzato a 0 di default.
Overmind://Defined?Name=DefaultByteZero&Type=SmallInteger
Decimale impostato a 0 di default.
Overmind://Defined?Name=DefaultDecimalZero&Type=Single
Boolean impostato su false di default.
Overmind://Defined?Name=DefaultBooleanFalse&Type=Boolean
Testo vuoto di default.
Overmind://Defined?Name=DefaultEmptyText&Type=String
Data inizializzata il 1° gennaio, 1 UTC.
Overmind://Defined?Name=DefaultMinimumDate&Type=DateTime
Posizione inizializzata a longitudine 0, latitudine 0.
Overmind://Defined?Name=DefaultGisOrigin&Type=GISVector
Valore 42 con buona qualità.
Overmind://Defined?Name=GoodQualityValue&Type=Integer&InitialValue=42&Status=Good
Valore 42 con qualità Inraggiungibile.
Overmind://Defined?Name=UnreachableQualityValue&Type=Integer&InitialValue=42&Status=Unreachable
Un valore di 42 con qualità SpecificError.
Overmind://Defined?Name=SpecificErrorQualityValue&Type=Integer&InitialValue=42&Status=SpecificError
Valore 42 con qualità Unhandle.
Overmind://Defined?Name=UnhandledQualityValue&Type=Integer&InitialValue=42&Status=Unhandled
Valore 42 con qualità UnpluggedConnector.
Overmind://Defined?Name=UnpluggedConnectorQualityValue&Type=Integer&InitialValue=42&Status=UnpluggedConnector
Valore 42 con qualità NoConnectorFound.
Overmind://Defined?Name=NoConnectorFoundQualityValue&Type=Integer&InitialValue=42&Status=NoConnectorFound
Valore 42 datato 1 gennaio 2026 alle 8:00 UTC.
Overmind://Defined?Name=FixedSourceDate&Type=Integer&InitialValue=42&LastModificationDate=2026-01-01T08:00:00Z
Qualità sconosciuta convertita in SpecificError.
Overmind://Defined?Name=UnknownQualityBecomesSpecificError&Type=Integer&InitialValue=42&Status=ErreurSimulee
Variabile chiamata "Stanza A & piano 1", con un contesto descrittivo.
Overmind://Defined?Name=Room%20A%20%26%20floor%201&Type=Integer&InitialValue=20&Context=B%C3%A2timent%20A%2F%C3%89tage%201
9.3 Valori scalabili autonomi
Contatta da 0 a 100, +1 ogni 5 secondi, poi torna a 0.
Overmind://Evolving?Name=Increment0To100Every5s&Type=Integer&InitialValue=0&EndValue=100&Step=1&Interval=5&Behavior=Increment
Conto alla rovescia da 3 a 0 ogni secondo, poi di nuovo a 3.
Overmind://Evolving?Name=Countdown3To0Every1s&Type=Integer&InitialValue=3&EndValue=0&Step=1&Interval=1&Behavior=Decrement
Intero casuale da 1 a 6 ogni secondo.
Overmind://Evolving?Name=RandomInteger1To6Every1s&Type=Integer&InitialValue=1&EndValue=6&Interval=1&Behavior=Random
Alternando tra 2147483646 e 2147483647 ogni secondo.
Overmind://Evolving?Name=IntegerMaximumEvery1s&Type=Integer&InitialValue=2147483646&EndValue=2147483647&Interval=1
Byte da 0 a 255, +85 ogni secondo.
Overmind://Evolving?Name=IncrementByte0To255Every1s&Type=SmallInteger&InitialValue=0&EndValue=255&Step=85&Interval=1&Behavior=Increment
Byte da 255 a 0, -85 ogni secondo.
Overmind://Evolving?Name=DecrementByte255To0Every1s&Type=SmallInteger&InitialValue=255&EndValue=0&Step=85&Interval=1&Behavior=Decrement
Byte casuale da 0 a 255 ogni secondo.
Overmind://Evolving?Name=RandomByteEvery1s&Type=SmallInteger&InitialValue=0&EndValue=255&Interval=1&Behavior=Random
Decimale da 0 a 1, +0,25 ogni secondo.
Overmind://Evolving?Name=IncrementDecimal0To1Every1s&Type=Single&InitialValue=0&EndValue=1&Step=0.25&Interval=1&Behavior=Increment
Decimale da 1 a 0, -0,25 ogni secondo.
Overmind://Evolving?Name=DecrementDecimal1To0Every1s&Type=Single&InitialValue=1&EndValue=0&Step=0.25&Interval=1&Behavior=Decrement
Decimale casuale tra 0 e 1 ogni secondo.
Overmind://Evolving?Name=RandomDecimal0To1Every1s&Type=Single&InitialValue=0&EndValue=1&Interval=1&Behavior=Random
Boolean invertite ogni secondo con Increment.
Overmind://Evolving?Name=ToggleBooleanIncrementEvery1s&Type=Boolean&InitialValue=false&Interval=1&Behavior=Increment
Booleano invertiva ogni secondo con Decrement.
Overmind://Evolving?Name=ToggleBooleanDecrementEvery1s&Type=Boolean&InitialValue=false&Interval=1&Behavior=Decrement
Booleano scelto casualmente ogni secondo.
Overmind://Evolving?Name=RandomBooleanEvery1s&Type=Boolean&InitialValue=false&Interval=1&Behavior=Random
Messaggio dalla lista integrata selezionato casualmente ogni 2 secondi.
Overmind://Evolving?Name=RandomBuiltInTextEvery2s&Type=String&Interval=2
I messaggi nella lista integrata vengono sfogliati in ordine ogni 2 secondi.
Overmind://Evolving?Name=OrderedBuiltInTextEvery2s&Type=String&Interval=2&Behavior=Increment
Alternando tra Stop e Start ogni 2 secondi.
Overmind://Evolving?Name=ToggleStoppedRunningEvery2s&Type=String&InitialValue=Arr%C3%AAt&EndValue=Marche&Interval=2&Behavior=Increment
Scegliere tra libero e occupato ogni 2 secondi.
Overmind://Evolving?Name=RandomFreeOccupiedEvery2s&Type=String&InitialValue=Libre&EndValue=Occup%C3%A9&Interval=2
Ciclo di benvenuto, preparazione, esecuzione, completato ogni 2 secondi.
Overmind://Evolving?Name=OrderedWorkflowEvery2s&Type=String&Aggregate=Accueil,Pr%C3%A9paration,Ex%C3%A9cution,Termin%C3%A9&Interval=2
Cicli A, C, B con diminuzione ogni 2 secondi.
Overmind://Evolving?Name=ReverseTextListEvery2s&Type=String&Aggregate=A,B,C&Behavior=Decrement&Interval=2
Stato libero, occupato o manutenzione scelto ogni 2 secondi.
Overmind://Evolving?Name=RandomStateListEvery2s&Type=String&Aggregate=Libre,Occup%C3%A9,Maintenance&Behavior=Random&Interval=2
Elenco A, B, C, D attraversati da B con salti di 2 ogni secondo.
Overmind://Evolving?Name=SkipTwoFromBEvery1s&Type=String&Aggregate=A,B,C,D&InitialValue=B&Step=2&Interval=1
Ciclo di passaggi 0, 10, 50, 100 ogni 2 secondi.
Overmind://Evolving?Name=IntegerLevelsEvery2s&Type=Integer&Aggregate=0,10,50,100&Interval=2
Cicla i byte 0, 128, 255 ogni 2 secondi.
Overmind://Evolving?Name=ByteLevelsEvery2s&Type=SmallInteger&Aggregate=0,128,255&Interval=2
Cicla i decimali 18,5, 20,25 e 23,75 ogni 2 secondi.
Overmind://Evolving?Name=DecimalLevelsEvery2s&Type=Single&Aggregate=18.5,20.25,23.75&Interval=2
Cicla falso, falso, vero ogni 2 secondi.
Overmind://Evolving?Name=BooleanSequenceEvery2s&Type=Boolean&Aggregate=false,false,true&Interval=2
Alterna tre date UTC ogni 2 secondi.
Overmind://Evolving?Name=DateSequenceEvery2s&Type=DateTime&Aggregate=2026-09-08T08:00:00Z,2026-09-08T12:00:00Z,2026-09-08T18:00:00Z&Interval=2
Ciclo di testi A, B, C del tipo Qualsiasi ogni 2 secondi.
Overmind://Evolving?Name=AnyTextListEvery2s&Type=Any&Aggregate=A,B,C&Interval=2
Ciclo di messaggi x, y, z sconosciuti ogni 2 secondi.
Overmind://Evolving?Name=UnknownTextListEvery2s&Type=Unknow&Aggregate=x,y,z&Interval=2
Alternando due URL ogni 2 secondi.
Overmind://Evolving?Name=UrlListEvery2s&Type=Url&Aggregate=https:%2F%2Fexample.com%2Fa,https:%2F%2Fexample.com%2Fb&Interval=2
Alternando tra due identificatori Guid ogni 2 secondi.
Overmind://Evolving?Name=GuidListEvery2s&Type=Guid&Aggregate=11111111-2222-3333-4444-555555555555,aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee&Interval=2
Data dalle 10:00 alle 10:01, anticipata di 30 secondi ogni secondo.
Overmind://Evolving?Name=AdvanceDate30sEvery1s&Type=DateTime&InitialValue=2026-09-08T10:00:00Z&EndValue=2026-09-08T10:01:00Z&Step=30&Interval=1
Anticipa la data di 500 ms ogni secondo, entro un intervallo di un minuto.
Overmind://Evolving?Name=AdvanceDate500msEvery1s&Type=DateTime&InitialValue=2026-09-08T10:00:00Z&EndValue=00:01:00&Step=00:00:00.500&Interval=1
Data dalle 10:01 alle 10:00, con un ritardo di 30 secondi ogni secondo.
Overmind://Evolving?Name=RewindDate30sEvery1s&Type=DateTime&InitialValue=2026-09-08T10:01:00Z&EndValue=60&Step=30&Interval=1&Behavior=Decrement
Data sorta casualmente entro un minuto, ogni secondo.
Overmind://Evolving?Name=RandomDateWithinMinuteEvery1s&Type=DateTime&InitialValue=2026-09-08T10:00:00Z&EndValue=00:01:00&Interval=1&Behavior=Random
Percorso da (2,48) a (4,50) in due transizioni, una al secondo.
Overmind://Evolving?Name=ForwardGisTripEvery1s&Type=GISVector&InitialValue=2,48&EndValue=4,50&Step=2&Interval=1
Percorso da (4,50) a (2,48) in due transizioni, una al secondo.
Overmind://Evolving?Name=ReverseGisTripEvery1s&Type=GISVector&InitialValue=4,50&EndValue=2,48&Step=2&Interval=1
Punto scelto nel segmento (2,48)-(4,50) ogni secondo.
Overmind://Evolving?Name=RandomGisPointEvery1s&Type=GISVector&InitialValue=2,48&EndValue=4,50&Interval=1&Behavior=Random
Esegui tre posizioni in ordine, una al secondo.
Overmind://Evolving?Name=OrderedGisRouteEvery1s&Type=GISVector&Aggregate=48%2C2,49%2C3,50%2C4&Interval=1&Behavior=Increment
Viaggia da tre posizioni nella direzione opposta, una al secondo.
Overmind://Evolving?Name=ReverseGisRouteEvery1s&Type=GISVector&Aggregate=48%2C2,49%2C3,50%2C4&Interval=1&Behavior=Decrement
Posizione scelta da tre punti ogni secondo.
Overmind://Evolving?Name=RandomGisRouteEvery1s&Type=GISVector&Aggregate=48%2C2,49%2C3,50%2C4&Interval=1&Behavior=Random
Conteggio da 0 a 10, +1 ogni 290 ms.
Overmind://Evolving?Name=CounterEvery290ms&Type=Integer&InitialValue=0&EndValue=10&Interval=0.29
Contatta da 0 a 10, +1 ogni 90 secondi.
Overmind://Evolving?Name=CounterEvery90s&Type=Integer&InitialValue=0&EndValue=10&Interval=00:01:30
Conteggio da 0 a 10, +1 ogni 1 giorno, 2 ore, 3 minuti e 4 secondi.
Overmind://Evolving?Name=CounterEvery1d2h3m4s&Type=Integer&InitialValue=0&EndValue=10&Interval=1.02:03:04
Contatore da 0 a 10 ogni 250 ms, con notazione scientifica.
Overmind://Evolving?Name=CounterEvery250msScientific&Type=Integer&InitialValue=0&EndValue=10&Interval=2.5e-1
Conteggio da 0 a 10 ogni 30 secondi, intervallo omesso.
Overmind://Evolving?Name=CounterDefault30s&Type=Integer&InitialValue=0&EndValue=10
Contatore da 0 a 2, +1 ogni secondo, con EndValue.
Overmind://Evolving?Name=Counter0To2Every1s&Type=Integer&InitialValue=0&EndValue=2&Interval=1
Rispondi con la qualità Good, Unreachable o SpecificError che viene sparato ogni secondo.
Overmind://Evolving?Name=RandomQualityCounterEvery1s&Type=Integer&InitialValue=0&EndValue=10&Interval=1&Statuses=Good-Unreachable-SpecificError
Il contro-cambiamento cambia ogni secondo con la qualità Inraggiungibile.
Overmind://Evolving?Name=UnreachableCounterEvery1s&Type=Integer&InitialValue=0&EndValue=10&Interval=1&Statuses=Unreachable
Cambio di contatore ogni secondo con qualità sconosciuta convertita in SpecificError.
Overmind://Evolving?Name=UnknownQualityCounterEvery1s&Type=Integer&InitialValue=0&EndValue=10&Interval=1&Statuses=ErreurSimulee
Il contatore viene aggiornato ogni secondo, con una data di fonte spostata di 5 minuti.
Overmind://Evolving?Name=CounterWith5MinuteOldDate&Type=Integer&InitialValue=0&EndValue=10&Interval=1&LastModificationTimeSpan=00:05:00&Context=D%C3%A9monstration%2FRetard
9.4 Valori sincronizzati con metronomo
Contatore sincronizzato ogni secondo su Demo250ms.
Overmind://Evolving?Name=SynchronizedCounterEvery1s&Type=Integer&InitialValue=0&EndValue=100&Interval=00:00:01&Metronome=Demo250ms
Booleano sincronizzato con il contatore precedente, ogni secondo.
Overmind://Evolving?Name=SynchronizedBooleanEvery1s&Type=Boolean&Interval=1&Metronome=Demo250ms
Counter-evolving ogni 2 battiti di Demo250ms, cioè 500 ms.
Overmind://Evolving?Name=SynchronizedCounterEvery500ms&Type=Integer&InitialValue=0&EndValue=100&Interval=0.5&Metronome=Demo250ms
Cambio di contatore ogni 3 battiti di Demo250ms, cioè 750ms.
Overmind://Evolving?Name=SynchronizedCounterEvery750ms&Type=Integer&InitialValue=0&EndValue=100&Interval=00:00:00.750&Metronome=Demo250ms
Counter-evolving ogni 29 battiti di Demo10ms, cioè 290ms.
Overmind://Evolving?Name=SynchronizedCounterEvery290ms&Type=Integer&InitialValue=0&EndValue=100&Interval=0.29&Metronome=Demo10ms
Contatore sincronizzato a Demo250ms ogni 30 secondi, intervallo omesso.
Overmind://Evolving?Name=SynchronizedCounterDefault30s&Type=Integer&InitialValue=0&EndValue=100&Metronome=Demo250ms
Contatore sincronizzato ogni secondo, con una data di origine spostata di 2 secondi.
Overmind://Evolving?Name=SynchronizedCounterWith2sOldDate&Type=Integer&InitialValue=0&EndValue=100&Interval=1&Metronome=Demo250ms&LastModificationTimeSpan=2
10. Carica tutti i campioni in ConnectorTester
La tabella JSON qui sotto contiene 88 URL: i due metronomi, poi le 86 variabili negli esempi. I loro nomi sono identici a quelli usati in questo documento.
- Chiudi ConnectorTester, poi apri
appsettings.jsonaccanto al suo eseguibile. - Integrare questi percorsi in
HubSettings.PreloadPaths, mantenendo già configurati i connettori, le proprietà e i percorsi. Non creare una seconda sezioneHubSettingsse esiste già. - Riavvia il test e attiva Overmind.
- Applica le prime due linee,
Demo250mseDemo10ms, con il pulsante "Applica la maniglia all'hub". - Applicare le variabili da testare. Gli esempi sincronizzati hanno poi i loro metronomi.
In ConnectorTester, PreloadPaths Visualizza i percorsi al lancio. La connessione del connettore e l'applicazione delle manici rimangono manuali. Dopo il ricollegamento, si applicano nuovamente i metronomi e poi le variabili. Non sono necessari ulteriori file base per questo catalogo.
{
"HubSettings": {
"PreloadPaths": [
"Overmind://Metronome?Span=00:00:00.250&Name=Demo250ms",
"Overmind://Metronome?Span=00:00:00.010&Name=Demo10ms",
"Overmind://Defined?Name=MutableInteger20&Type=Integer&InitialValue=20",
"Overmind://Defined?Name=MutableBooleanFalse&Type=Boolean&InitialValue=false",
"Overmind://Defined?Name=MutableByte128&Type=SmallInteger&InitialValue=128",
"Overmind://Defined?Name=MutableDecimal21Point5&Type=Single&InitialValue=21.5",
"Overmind://Defined?Name=TextWithReservedCharacters&Type=String&InitialValue=%C3%89tage%201%20%26%20accueil%20%2B%20caf%C3%A9",
"Overmind://Defined?Name=FixedUtcDate&Type=DateTime&InitialValue=2026-09-08T10:00:00Z",
"Overmind://Defined?Name=DateWithTimeZone&Type=DateTime&InitialValue=2026-09-08T12:00:00%2B02:00",
"Overmind://Defined?Name=FixedGisPosition&Type=GISVector&InitialValue=2,48",
"Overmind://Defined?Name=FreeText&Type=Any&InitialValue=texte%20libre",
"Overmind://Defined?Name=UrlAsText&Type=Url&InitialValue=https:%2F%2Fexample.com%2Fstatus%3Fzone%3DA%26mode%3Dlive",
"Overmind://Defined?Name=GuidAsText&Type=Guid&InitialValue=11111111-2222-3333-4444-555555555555",
"Overmind://Defined?Name=UnknownTypeAsText&Type=Unknow&InitialValue=valeur%20sans%20conversion",
"Overmind://Defined?Name=OmittedTypeAsText&InitialValue=123",
"Overmind://Defined?Name=DefaultIntegerZero&Type=Integer",
"Overmind://Defined?Name=DefaultByteZero&Type=SmallInteger",
"Overmind://Defined?Name=DefaultDecimalZero&Type=Single",
"Overmind://Defined?Name=DefaultBooleanFalse&Type=Boolean",
"Overmind://Defined?Name=DefaultEmptyText&Type=String",
"Overmind://Defined?Name=DefaultMinimumDate&Type=DateTime",
"Overmind://Defined?Name=DefaultGisOrigin&Type=GISVector",
"Overmind://Defined?Name=GoodQualityValue&Type=Integer&InitialValue=42&Status=Good",
"Overmind://Defined?Name=UnreachableQualityValue&Type=Integer&InitialValue=42&Status=Unreachable",
"Overmind://Defined?Name=SpecificErrorQualityValue&Type=Integer&InitialValue=42&Status=SpecificError",
"Overmind://Defined?Name=UnhandledQualityValue&Type=Integer&InitialValue=42&Status=Unhandled",
"Overmind://Defined?Name=UnpluggedConnectorQualityValue&Type=Integer&InitialValue=42&Status=UnpluggedConnector",
"Overmind://Defined?Name=NoConnectorFoundQualityValue&Type=Integer&InitialValue=42&Status=NoConnectorFound",
"Overmind://Defined?Name=FixedSourceDate&Type=Integer&InitialValue=42&LastModificationDate=2026-01-01T08:00:00Z",
"Overmind://Defined?Name=UnknownQualityBecomesSpecificError&Type=Integer&InitialValue=42&Status=ErreurSimulee",
"Overmind://Defined?Name=Room%20A%20%26%20floor%201&Type=Integer&InitialValue=20&Context=B%C3%A2timent%20A%2F%C3%89tage%201",
"Overmind://Evolving?Name=Increment0To100Every5s&Type=Integer&InitialValue=0&EndValue=100&Step=1&Interval=5&Behavior=Increment",
"Overmind://Evolving?Name=Countdown3To0Every1s&Type=Integer&InitialValue=3&EndValue=0&Step=1&Interval=1&Behavior=Decrement",
"Overmind://Evolving?Name=RandomInteger1To6Every1s&Type=Integer&InitialValue=1&EndValue=6&Interval=1&Behavior=Random",
"Overmind://Evolving?Name=IntegerMaximumEvery1s&Type=Integer&InitialValue=2147483646&EndValue=2147483647&Interval=1",
"Overmind://Evolving?Name=IncrementByte0To255Every1s&Type=SmallInteger&InitialValue=0&EndValue=255&Step=85&Interval=1&Behavior=Increment",
"Overmind://Evolving?Name=DecrementByte255To0Every1s&Type=SmallInteger&InitialValue=255&EndValue=0&Step=85&Interval=1&Behavior=Decrement",
"Overmind://Evolving?Name=RandomByteEvery1s&Type=SmallInteger&InitialValue=0&EndValue=255&Interval=1&Behavior=Random",
"Overmind://Evolving?Name=IncrementDecimal0To1Every1s&Type=Single&InitialValue=0&EndValue=1&Step=0.25&Interval=1&Behavior=Increment",
"Overmind://Evolving?Name=DecrementDecimal1To0Every1s&Type=Single&InitialValue=1&EndValue=0&Step=0.25&Interval=1&Behavior=Decrement",
"Overmind://Evolving?Name=RandomDecimal0To1Every1s&Type=Single&InitialValue=0&EndValue=1&Interval=1&Behavior=Random",
"Overmind://Evolving?Name=ToggleBooleanIncrementEvery1s&Type=Boolean&InitialValue=false&Interval=1&Behavior=Increment",
"Overmind://Evolving?Name=ToggleBooleanDecrementEvery1s&Type=Boolean&InitialValue=false&Interval=1&Behavior=Decrement",
"Overmind://Evolving?Name=RandomBooleanEvery1s&Type=Boolean&InitialValue=false&Interval=1&Behavior=Random",
"Overmind://Evolving?Name=RandomBuiltInTextEvery2s&Type=String&Interval=2",
"Overmind://Evolving?Name=OrderedBuiltInTextEvery2s&Type=String&Interval=2&Behavior=Increment",
"Overmind://Evolving?Name=ToggleStoppedRunningEvery2s&Type=String&InitialValue=Arr%C3%AAt&EndValue=Marche&Interval=2&Behavior=Increment",
"Overmind://Evolving?Name=RandomFreeOccupiedEvery2s&Type=String&InitialValue=Libre&EndValue=Occup%C3%A9&Interval=2",
"Overmind://Evolving?Name=OrderedWorkflowEvery2s&Type=String&Aggregate=Accueil,Pr%C3%A9paration,Ex%C3%A9cution,Termin%C3%A9&Interval=2",
"Overmind://Evolving?Name=ReverseTextListEvery2s&Type=String&Aggregate=A,B,C&Behavior=Decrement&Interval=2",
"Overmind://Evolving?Name=RandomStateListEvery2s&Type=String&Aggregate=Libre,Occup%C3%A9,Maintenance&Behavior=Random&Interval=2",
"Overmind://Evolving?Name=SkipTwoFromBEvery1s&Type=String&Aggregate=A,B,C,D&InitialValue=B&Step=2&Interval=1",
"Overmind://Evolving?Name=IntegerLevelsEvery2s&Type=Integer&Aggregate=0,10,50,100&Interval=2",
"Overmind://Evolving?Name=ByteLevelsEvery2s&Type=SmallInteger&Aggregate=0,128,255&Interval=2",
"Overmind://Evolving?Name=DecimalLevelsEvery2s&Type=Single&Aggregate=18.5,20.25,23.75&Interval=2",
"Overmind://Evolving?Name=BooleanSequenceEvery2s&Type=Boolean&Aggregate=false,false,true&Interval=2",
"Overmind://Evolving?Name=DateSequenceEvery2s&Type=DateTime&Aggregate=2026-09-08T08:00:00Z,2026-09-08T12:00:00Z,2026-09-08T18:00:00Z&Interval=2",
"Overmind://Evolving?Name=AnyTextListEvery2s&Type=Any&Aggregate=A,B,C&Interval=2",
"Overmind://Evolving?Name=UnknownTextListEvery2s&Type=Unknow&Aggregate=x,y,z&Interval=2",
"Overmind://Evolving?Name=UrlListEvery2s&Type=Url&Aggregate=https:%2F%2Fexample.com%2Fa,https:%2F%2Fexample.com%2Fb&Interval=2",
"Overmind://Evolving?Name=GuidListEvery2s&Type=Guid&Aggregate=11111111-2222-3333-4444-555555555555,aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee&Interval=2",
"Overmind://Evolving?Name=AdvanceDate30sEvery1s&Type=DateTime&InitialValue=2026-09-08T10:00:00Z&EndValue=2026-09-08T10:01:00Z&Step=30&Interval=1",
"Overmind://Evolving?Name=AdvanceDate500msEvery1s&Type=DateTime&InitialValue=2026-09-08T10:00:00Z&EndValue=00:01:00&Step=00:00:00.500&Interval=1",
"Overmind://Evolving?Name=RewindDate30sEvery1s&Type=DateTime&InitialValue=2026-09-08T10:01:00Z&EndValue=60&Step=30&Interval=1&Behavior=Decrement",
"Overmind://Evolving?Name=RandomDateWithinMinuteEvery1s&Type=DateTime&InitialValue=2026-09-08T10:00:00Z&EndValue=00:01:00&Interval=1&Behavior=Random",
"Overmind://Evolving?Name=ForwardGisTripEvery1s&Type=GISVector&InitialValue=2,48&EndValue=4,50&Step=2&Interval=1",
"Overmind://Evolving?Name=ReverseGisTripEvery1s&Type=GISVector&InitialValue=4,50&EndValue=2,48&Step=2&Interval=1",
"Overmind://Evolving?Name=RandomGisPointEvery1s&Type=GISVector&InitialValue=2,48&EndValue=4,50&Interval=1&Behavior=Random",
"Overmind://Evolving?Name=OrderedGisRouteEvery1s&Type=GISVector&Aggregate=48%2C2,49%2C3,50%2C4&Interval=1&Behavior=Increment",
"Overmind://Evolving?Name=ReverseGisRouteEvery1s&Type=GISVector&Aggregate=48%2C2,49%2C3,50%2C4&Interval=1&Behavior=Decrement",
"Overmind://Evolving?Name=RandomGisRouteEvery1s&Type=GISVector&Aggregate=48%2C2,49%2C3,50%2C4&Interval=1&Behavior=Random",
"Overmind://Evolving?Name=CounterEvery290ms&Type=Integer&InitialValue=0&EndValue=10&Interval=0.29",
"Overmind://Evolving?Name=CounterEvery90s&Type=Integer&InitialValue=0&EndValue=10&Interval=00:01:30",
"Overmind://Evolving?Name=CounterEvery1d2h3m4s&Type=Integer&InitialValue=0&EndValue=10&Interval=1.02:03:04",
"Overmind://Evolving?Name=CounterEvery250msScientific&Type=Integer&InitialValue=0&EndValue=10&Interval=2.5e-1",
"Overmind://Evolving?Name=CounterDefault30s&Type=Integer&InitialValue=0&EndValue=10",
"Overmind://Evolving?Name=Counter0To2Every1s&Type=Integer&InitialValue=0&EndValue=2&Interval=1",
"Overmind://Evolving?Name=RandomQualityCounterEvery1s&Type=Integer&InitialValue=0&EndValue=10&Interval=1&Statuses=Good-Unreachable-SpecificError",
"Overmind://Evolving?Name=UnreachableCounterEvery1s&Type=Integer&InitialValue=0&EndValue=10&Interval=1&Statuses=Unreachable",
"Overmind://Evolving?Name=UnknownQualityCounterEvery1s&Type=Integer&InitialValue=0&EndValue=10&Interval=1&Statuses=ErreurSimulee",
"Overmind://Evolving?Name=CounterWith5MinuteOldDate&Type=Integer&InitialValue=0&EndValue=10&Interval=1&LastModificationTimeSpan=00:05:00&Context=D%C3%A9monstration%2FRetard",
"Overmind://Evolving?Name=SynchronizedCounterEvery1s&Type=Integer&InitialValue=0&EndValue=100&Interval=00:00:01&Metronome=Demo250ms",
"Overmind://Evolving?Name=SynchronizedBooleanEvery1s&Type=Boolean&Interval=1&Metronome=Demo250ms",
"Overmind://Evolving?Name=SynchronizedCounterEvery500ms&Type=Integer&InitialValue=0&EndValue=100&Interval=0.5&Metronome=Demo250ms",
"Overmind://Evolving?Name=SynchronizedCounterEvery750ms&Type=Integer&InitialValue=0&EndValue=100&Interval=00:00:00.750&Metronome=Demo250ms",
"Overmind://Evolving?Name=SynchronizedCounterEvery290ms&Type=Integer&InitialValue=0&EndValue=100&Interval=0.29&Metronome=Demo10ms",
"Overmind://Evolving?Name=SynchronizedCounterDefault30s&Type=Integer&InitialValue=0&EndValue=100&Metronome=Demo250ms",
"Overmind://Evolving?Name=SynchronizedCounterWith2sOldDate&Type=Integer&InitialValue=0&EndValue=100&Interval=1&Metronome=Demo250ms&LastModificationTimeSpan=2"
]
}
}