Vai al contenuto

Softwarespezifikationen

Plastiche intelligenti IGUS®

Specifiche software e codice i.Cee²

Informazioni sul software

Nodo-Rosso Grafana lnfluxDB
Versione 4.1.4 12.3.1 2.8.0
Porto 1880 3000 8086
Condizione Pulito Pulito Pulito
Autenticazione Nessuno Utente/Pass (Admin/Admin) Non definito, configurato la prima volta che l'interfaccia è stata effettuata l'accesso.
GUI su http://:1880 http://:3000 http://:8086

Broker MQTT

Porto: 1883

Indirizzo: AP-> 192.168.30.1

Eth1: 93.48.86.253

Utente: Non < necessario>

Accesso

Attore che esegue il relè

Interfaccia app

Interfaccia e funzionalità dell'app utente disponibili per la parte aperta del broker MQTT. Interfaccia semplificata per configurare e ricevere dati periferici. La connessione con il broker per quest'area non richiede alcun dato di accesso.

Impostazione/reset dello stato del pin/pin di uscita digitale

Lo stato predefinito di entrambi i relè è aperto.

Argomento della domanda: relayOutputs/config/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "D01": {
        "state": "open"
      },
      "D02": {
        "state": "open"
      }
    }
  }
}
Argomento risposta: relayOutputs/config/out
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "D01": {
        "success": true,
        "state": "open"
      },
      "D02": {
        "success": true,
        "state": "open"
      }
    }
  }
}

Attiva tutti i relè

Argomento richiesto: relayOutputs/runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "READ"
  }
}

Reply-Topic: relayOutputs/runtime/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "D01": {
        "success": true,
        "state": "open"
      },
      "D02": {
        "success": true,
        "state": "close"
      }
    }
  }
}

Imposta lo stato di tutti i relè

Argomento richiesto: relayOutputs/runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "SET",
    "taskParams": {
      "D01": {
        "state": "open"
      },
      "D02": {
        "state": "close"
      }
    }
  }
}
Argomento di risposta: relayOutputs/runtime/out
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "D01": {
        "success": true,
        "state": "open"
      },
      "D02": {
        "success": true,
        "state": "close"
      }
    }
  }
}

Attore RTC

Interfaccia app

Interfaccia e funzionalità dell'app utente disponibili per la parte aperta del broker MQTT. Interfaccia semplificata per configurare e ricevere dati periferici. Il collegamento con il broker per questo ambito non richiede un voto di fiducia.

Imposta interruzione timer/sveglia

Modalità: Timer, sveglia o no.

alarmSet: Data e ora per l'interruzione dell'allarme (Nessun effetto se la modalità è timer o meno).

timerSetSeconds: Periodo in secondi per l'interruzione del timer (nessun effetto se la modalità è allarme o meno).

Argomento desiderato: Orologio/Configurazione/Impostazione

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "CLOCK\_SET\_MODE": {
        "mode": "timer",
        "alarmSet": "\[timestamp epoch ms\]",
        "timerSetSeconds": "<INT>"
      }
    }
  }
}
Argomento desiderato: Orologio/Configurazione/Guasto
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "success": true,
      "CLOCK\_SET\_MODE": {
        "mode": "timer",
        "alarmSet": "\[timestamp epoch ms\]",
        "timerSetSeconds": "<INT>"
      }
    }
  }
}

Logica di sincronizzazione RTC a commutazione (descritta di seguito)

tcState: Stato della logica di sincronizzazione dell'RTC, questo valore è non persistente, quindi ad ogni riavvio il valore torna al valore predefinito (di default, il valore è ON)

Argomento desiderato: Orologio/Configurazione/Impostazione

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "TOGGLE"
  }
}

Req-Topic: clock/config/out

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "success": true,
      "rtcState": "OFF"
    }
  }
}

configurazioni a clock di lettura

Modalità: Timer, sveglia o no.

alarmSet: Data e ora per l'interruzione dell'allarme (Nessun effetto se la modalità è timer o meno).

timerSetSeconds: Periodo in secondi per l'interruzione del timer (nessun effetto se la modalità è allarme o meno).

rtcState: Stato attuale della logica di sincronizzazione del RTC.

Argomento desiderato: Orologio/Configurazione/Impostazione

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "READ"
  }
}
Argomento di risposta: Orologio/Configurazione/Spegnimento
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "success": true,
      "CLOCK\_CONFIGS": {
        "mode": "timer",
        "alarmSet": "\[timestamp epoch ms\]",
        "timerSetSeconds": "<INT>",
        "rtcState": "ON"
      }
    }
  }
}

Orologio di Lettura

Argomento Domanda: Orologio/Runtime/Fase

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "success": true,
      "timestamp": "\[timestamp epoch ms\]"
    }
  }
}

Diagramma di flusso del ciclo di sincronizzazione (ogni 30 secondi)

Attore RTC – Panoramica

RTCActor_Overview.svg

Attore della Salute del Sistema Centrale

Interfaccia app

Interfaccia e funzionalità dell'app utente disponibili per la parte aperta del broker MQTT.

Questa interfaccia consente a qualsiasi app esterna di ricevere metriche di sistema come carico della CPU, utilizzo della RAM, utilizzo del disco, temperatura, frequenza dei core, stato del throttling del sistema e disponibilità. Non sono richieste qualifiche per iscriversi a questo argomento. L'Attore di Salute del Sistema non riceve alcun comando. È completamente autonomo e pubblica le sue metriche ogni 1 secondo.

Dati di esecuzione

Argomento: Cura del sistema l/Runtime/ spento

Tasso di rilascio: 1 Hz (un messaggio al secondo, sicuramente salto dell'orologio)

metriche fornite
Chiavi Descrizione Unità
CP_percent U\ Carico attuale della CPU %
CP_tempC U\ Temperatura della CPU letta dalle zone termiche Linux ºC
CPU0_freq Core CPU O Frequenza di corrente Hz
cpul_freq Frequenza di alimentazione CPU Core 1 Hz
CPU2_freq Frequenza di alimentazione del core CPU 2 Hz
CPU3_freq Frequenza di alimentazione del core CPU 3 Hz
CPU0_throttle Registro dello stato della manetta di sistema Hex
Ram_percent Utilizzo della RAM %
disco_percent Utilizzo del disco per la radice del file system / %
Uptime_sec\ Tempo dall'ultimo riavvio Secondi

Esempio di carico utile (sistemaSalute/runtime/uscita)

{ "id": 1736022028123, "Origine": "Salute del sistema", "Compito": { "taskResult": { "CPU_percent": 7.1, "CPU_tempC": 47,3, "CPU0_freq": 15000000000, "CPU1_freq": 15000000000, "CPU2_freq": 15000000000, "CPU3_freq": 1500000000, "CPU0_throttle": "0x0", "Ram_percent": 32,9, "disk_percent\": 41,2, "Uptime_sec": 5321 } } }

Salute del dispositivo periferico

Per mantenere la salute delle periferiche, abbiamo dovuto implementare un attore SystemHealth in ogni gestore del bus (busi2cO, busi2c-1, ecc.).

Peripherals_health.svg

esempio

Per busi2c-0:

Argomento di risposta: sistemaSalute/busi2c-0/runtime/out

Carico utile:

{
  "id": 1770378753024,
  "origin": "system-health-busi2c-0",
  "task": {
    "taskResult": {
      "ADC": {
        "status": "ERROR",
        "description": "IRQ Retrying",
        "last\_report": 1770378753006,
        "stats": {
          "AI1": {
            "samples": 563154,
            "retries": 760548,
            "discards": 253313
          },
          "AI2": {
            "samples": 563154,
            "retries": 760475,
            "discards": 253314
          },
          "AI3": {
            "samples": 563154,
            "retries": 760528,
            "discards": 253313
          },
          "AI4": {
            "samples": 563154,
            "retries": 760549,
            "discards": 253312
          }
        }
      },
      "DAC": {
        "status": "OK",
        "description": "Running....",
        "last\_report": 1770378752576,
        "stats": {
          "AO1": {
            "samples": 240755,
            "retries": 0,
            "discards": 0
          },
          "AO2": {
            "samples": 240755,
            "retries": 0,
            "discards": 0
          }
        }
      },
      "RTC": {
        "status": "OK",
        "description": "",
        "last\_report": 1770378752094,
        "stats": {
          "samples": 248710,
          "retries": 0,
          "discards": 0
        }
      },
      "TEMP": {
        "status": "OK",
        "description": "",
        "last\_report": 1770378752579,
        "stats": {
          "samples": 240754,
          "retries": 0,
          "discards": 0
        }
      }
    }
  }
}
Per busi2c-1:

Argomento di risposta: sistemaSalute/busi2c-1/runtime/out

Carico utile:

{
  "id": 1770382405107,
  "origin": "system-health-busi2c-1",
  "task": {
    "taskResult": {
      "JOYSTICK": {
        "status": "OK",
        "description": "Running....",
        "last\_report": 1770382405050,
        "stats": {
          "read\_all": {
            "samples": 410154,
            "retries": 0,
            "discards": 0
          },
          "read\_raw": {
            "samples": 0,
            "retries": 0,
            "discards": 0
          },
          "buttons": {
            "JDOWN": {
              "reads": 410154,
              "last\_state": "pressed"
            },
            "JRIGHT": {
              "reads": 410154,
              "last\_state": "pressed"
            },
            "JUP": {
              "reads": 410154,
              "last\_state": "pressed"
            },
            "JLEFT": {
              "reads": 410154,
              "last\_state": "pressed"
            },
            "JCENTER": {
              "reads": 410154,
              "last\_state": "pressed"
            }
          }
        }
      },
      "RELAYS": {
        "status": "OK",
        "description": "Relay Output MQTT connected",
        "last\_report": 1770298859099,
        "stats": {
          "read\_all": {
            "samples": 0,
            "retries": 0,
            "discards": 0
          },
          "set": {
            "samples": 0,
            "retries": 0,
            "discards": 0
          },
          "set\_many": {
            "samples": 0,
            "retries": 0,
            "discards": 0
          },
          "raw\_read\_all": {
            "samples": 0,
            "retries": 0,
            "discards": 0
          }
        },
        "outputs": {
          "DO1": {
            "writes": 0,
            "last\_state": "unknown"
          },
          "DO2": {
            "writes": 0,
            "last\_state": "unknown"
          }
        }
      },
      "DI": {
        "status": "OK",
        "description": "Running",
        "last\_report": 1770382404832,
        "stats": {
          "read\_all": {
            "samples": 181758,
            "retries": 0,
            "discards": 0
          },
          "read\_raw": {
            "samples": 0,
            "retries": 0,
            "discards": 0
          },
          "inputs": {
            "DI1": {
              "reads": 181758,
              "last\_state": "low"
            },
            "DI2": {
              "reads": 181758,
              "last\_state": "low"
            },
            "DI3": {
              "reads": 181758,
              "last\_state": "low"
            },
            "DI4": {
              "reads": 181758,
              "last\_state": "low"
            }
          }
        }
      }
    }
  }
}

Attore Sensore Temporale

Interfaccia app

Interfaccia e funzionalità dell'app utente disponibili per la parte aperta del broker MQTT. Interfaccia semplificata per configurare e ricevere dati periferici. Il collegamento con il broker per questo ambito non richiede un voto di fiducia.

Impostazioni del sensore di temperatura

Argomento richiesto: tempSensor/config/in

ALLARME:

  • Attiva: vero(attivo)/falso
  • Temperatura: Limite inferiore della temperatura dell'allarme
  • TemperaturaAlta: Limite superiore della temperatura dell'allarme
    {
      "id": "<TIMESTAMP>",
      "origin": "APP",
      "task": {
        "taskParams": {
          "ALERT": {
            "activate": true,
            "tempLow": 0,
            "tempHigh": 80
          }
        }
      }
    }
    
    Argomento di risposta: sensore di temperatura/konfigurazione/uscita
    {
      "id": "<TIMESTAMP>",
      "origin": "APP",
      "task": {
        "taskResult": {
          "success": true,
          "ALERT": {
            "activate": true,
            "tempLow": 0,
            "tempHigh": 80
          }
        }
      }
    }
    
    Leggi ##### Configurazioni dei sensori di temperatura

Argomento richiesto: tempSensor/config/in

ALLARME:

  • Attiva: vero(attivo)/falso

LIMITI:

  • Temperatura: Limite inferiore della temperatura dell'allarme
  • TemperaturaAlta: Limite superiore della temperatura dell'allarme
    {
      "id": "<TIMESTAMP>",
      "origin": "APP",
      "task": {
        "action": "READ"
      }
    }
    
    Argomento di risposta: sensore di temperatura/konfigurazione/uscita
    {
      "id": "<TIMESTAMP>",
      "origin": "APP",
      "task": {
        "taskResult": {
          "success": true,
          "ALERT": {
            "activate": true,
            "tempLow": 0,
            "tempHigh": 80
          }
        }
      }
    }
    
Visualizza temperatura e stato dell'allarme
  • Unità: Unità di temperatura
  • Attenzione: vero (innescato) o falso

Argomento richiesto: tempSensor/Runtime

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "READ"
  }
}
Argomento di risposta: temperaturaSensore/runtime/uscita
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "success": true,
      "data": {
        "temperature": <\_FLOAT\_>,
        "unit": "C",
        "alert": true
      }
    }
  }
}

Attore TFT

Interfaccia app

Interfaccia e funzionalità dell'app utente disponibili per la parte aperta del broker MQTT. Interfaccia utente semplificata per il controllo e l'interazione con il display TFT o il pannello frontale LCD. La connessione con il broker per quest'area non richiede alcun dato di accesso.

Attore del display TFT

L'attore TFT è responsabile di:

  • Rendering statico e informativo sullo schermo TFT
  • Reagente sull'input della joystick (SINISTRA/DESTRA/CENTRO/ SU/GIÙ)
  • Gestire la navigazione sullo schermo e i flussi di conferma utente
  • Fornire feedback all'applicazione tramite MQTT
concetto di giostra schermo

L'attore TFT tiene una lista ordinata di schermi (giostra).

  • Gli schermi si navigano con il joystick:

- SINISTRA --> Schermo precedente

- CORRETTO --> Schermata successiva

  • La giostra avvolge intorno a:

- SINISTRA sul primo schermo --> ultimo schermo

- ESATTAMENTE sull'ultima schermata --> prima schermata

tipi di schermo

L'attore TFT supporta i seguenti tipi di schermo:

a.) Schermo illustrato

  • Visualizza un'immagine JPEG statica
  • La schermata predefinita viene visualizzata all'avvio
  • Nessuna interazione dell'utente richiesta

b.) Schermo Informativo di Rete

  • Visualizzare un'interfaccia con informazioni sulle reti del dispositivo
  • Aggiornato al caricamento
  • Nessuna interazione dell'utente richiesta
logica di navigazione con joystick

Navigazione con la giostra:

Input Joystick Azione
LINK Schermo precedente
VERO Schermo successivo
GIÙ Aggiorna schermo attuale
comportamento di avvio

Per gli avvii di sistema:

  1. L'attuatore TFT inizializza il display
  2. L'ultimo nastro disponibile è caricato
  3. Il primo schermo viene visualizzato
  4. Gli abbonamenti ai joystick saranno attivati
  5. L'attore aspetta i comandi in tempo reale
Note di design e limitazioni
  • L'attore TFT non mostra liberamente lo stato del joystick
  • L'attore del joystick rimane indipendente
  • L'attore TFT consuma internamente gli eventi del joystick
  • Carousel State è locale per l'attore TFT
  • Il rendering dello schermo è sincrono; Il trattamento in ingresso viene eseguito in modo asincrono
  • Le schermate di conferma richiedono sempre una stampa esplicita CENTER

Interazione tramite MQTT

Permettendo l'interazione con la giostra tramite l'argomento tft/runtime/in . Le azioni disponibili sono pubbliche per l'utente.

Comandi di Runtime

Vai allo schermo

Argomento richiesto: tft/runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "SET\_CAROUSEL",
    "params": {
      "index": 2
    }
  }
}
Argomento di risposta: tft/runtime/out
{
  "id": "<TIMESTAMP>",
  "origin": "tft",
  "task": {
    "taskResult": {
      "success": true,
      "index": 2
    }
  }
}
Imposta la giostra TFT Screen Argomento desiderato: tft/runtime/in
{
  "id": "TIMESTAMP",
  "origin": "APP",
  "task": {
    "action": "SET\_CAROUSEL",
    "params": {
      "startIndex": 0,
      "screens": \[
        {
          "type": "image",
          "image": "default.jpg"
        },
        {
          "type": "image",
          "image": "status.jpg"
        },
        {
          "type": "confirm",
          "question": "Do you want to continue?"
        }
      \]
    }
  }
}
Parametri:

Campo Descrizione
Schermi Elenco ordinato di schermi
Home Index Schermata attiva iniziale (opzionale, predefinito = 0)

Risposta

Argomento di risposta: tft/runtime/out

{
  "id": "TIMESTAMP",
  "origin": "tft",
  "task": {
    "taskResult": {
      "success": true,
      "activeIndex": 0,
      "totalScreens": 3
    }
  }
}

Analog Met Actor

Interfaccia app

Interfaccia e funzionalità dell'app utente disponibili per la parte aperta del broker MQTT. Interfaccia semplificata per configurare e ricevere dati periferici. Il collegamento con il broker per questo ambito non richiede un voto di fiducia.

Configurazioni

Argomento: analoglnputs/konfiguration/in – Impostazione delle configurazioni dei canali ADC

Mode

  • continuo
  • Singolo

Tipo

  • Tensione
  • Attuale
    {
      "id": "<TIMESTAMP>",
      "origin": "APP",
      "task": {
        "taskParams": {
          "AI1": {
            "mode": "single",
            "type": "voltage"
          },
          "AI2": {
            "mode": "single",
            "type": "voltage"
          },
          "AI3": {
            "mode": "single",
            "type": "current"
          },
          "AI4": {
            "mode": "single",
            "type": "current"
          }
        }
      }
    }
    
    Argomento risposta: analoglnputs/config/out
    {
      "id": "<TIMESTAMP>",
      "origin": "APP",
      "task": {
        "taskResult": {
          "AI1": {
            "success": true
          },
          "AI2": {
            "success": true
          },
          "AI3": {
            "success": true
          },
          "AI4": {
            "success": true
          }
        }
      }
    }
    
Dati di esecuzione

Argomento: Ingressi analogici/Runtime/In.

Azione:

  • LEGGI
  • PAUSE (applicabile solo in modalità continua)
  • RESUME (applicabile solo in modalità continua)
    {
      "id": "<TIMESTAMP>",
      "origin": "APP",
      "task": {
        "taskParams": {
          "AI1": {
            "action": "READ"
          },
          "AI2": {
            "action": "READ"
          },
          "AI3": {
            "action": "READ"
          },
          "AI4": {
            "action": "READ"
          }
        }
      }
    }
    
    Argomento di risposta: inserti analogici/runtime/disattivo
    {
      "id": "<TIMESTAMP>",
      "origin": "APP",
      "task": {
        "taskResult": {
          "AI1": {
            "success": true,
            "value": <\_FLOAT\_>
          },
          "AI2": {
            "success": true,
            "value": <\_FLOAT\_>
          },
          "AI3": {
            "success": true,
            "value": <\_FLOAT\_>
          },
          "AI4": {
            "success": true,
            "value": <\_FLOAT\_>
          }
        }
      }
    }
    

Attore di uscita analogica

Interfaccia app

Interfaccia e funzionalità dell'app utente disponibili per la parte aperta del broker MQTT. Interfaccia semplificata per configurare e ricevere dati periferici. Il collegamento con il broker per questo ambito non richiede un voto di fiducia.

Impostazione del segnale di uscita analogica

Argomento desiderato: analogOutputs/config/in

Uscita: Corrente entro 0-20 mA

Modalità: Acceso/Spento

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "mode": "on",
      "AO1": {
        "current": <\_FLOAT\_>
      },
      "AO2": {
        "current": <\_FLOAT\_>
      }
    }
  }
}
Argomento di risposta: analogOutput/config/out
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "mode": "on",
      "AO1": {
        "success": true,
        "current": <\_FLOAT\_>
      },
      "AO2": {
        "success": true,
        "current": <\_FLOAT\_>
      }
    }
  }
}

Impostazione delle uscite analogiche

Argomento del requisito: spesa/durata analogica

Corrente: Corrente entro 0-20 mA

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "AO1": {
        "action": "SET",
        "current": <\_FLOAT\_>
      },
      "AO2": {
        "action": "SET",
        "current": <\_FLOAT\_>
      }
    }
  }
}
Argomento risposta: analoigOutputs/runtime/out
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "AO1": {
        "success": true,
        "current": <\_FLOAT\_>
      },
      "AO2": {
        "success": true,
        "current": <\_FLOAT\_>
      }
    }
  }
}

Lettura delle impostazioni di uscita analogiche

Argomento del requisito: spesa/durata analogica

Corrente: Corrente entro 0-20 mA

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "AO1": {
        "action": "READ"
      },
      "AO2": {
        "action": "READ"
      }
    }
  }
}
Argomento risposta: analogicoOutput/Runtime/uscita
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "AO1": {
        "success": true,
        "current": <\_FLOAT\_>
      },
      "AO2": {
        "success": true,
        "current": <\_FLOAT\_>
      }
    }
  }
}

Attore di Input Digitale

Interfaccia app

Interfaccia e funzionalità dell'app utente disponibili per la parte aperta del broker MQTT. Interfaccia semplificata per configurare e ricevere dati periferici. La connessione con il broker per quest'area non richiede alcun dato di accesso.

Regolare rapidamente e lentamente la velocità dei pin/pin di ingresso digitali

L'impostazione di velocità veloce supporta il rilevamento dei bordi fino a 100 Hz e la velocità lenta fino a 10 Hz.

Modalità Rapida genera un messaggio ogni volta che lo stato di I/O cambia, il che può portare a un carico utile di messaggi elevato durante l'operazione. Pertanto, la Modalità Rapida dovrebbe essere abilitata solo se assolutamente necessario è richiesto.

Argomento prerequisito: digitallnputs/config/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "DI1": {
        "speed": "fast"
      },
      "DI2": {
        "speed": "slow"
      },
      "DI3": {
        "speed": "fast"
      },
      "DI4": {
        "speed": "fast"
      }
    }
  }
}
Argomento risposta: digitallnputs/config/out
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "DI1": {
        "success": true,
        "speed": "fast"
      },
      "DI2": {
        "success": true,
        "speed": "slow"
      },
      "DI3": {
        "success": true,
        "speed": "fast"
      },
      "DI4": {
        "success": true,
        "speed": "fast"
      }
    }
  }
}

Verifica lo stato di tutti i pin di ingresso digitali.

Argomento desiderato: voci digitali/runtime

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "READ"
  }
}
Argomento risposta: inputs digitali/runtime/stato di uscita: alto/basso
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "DI1": {
        "success": true,
        "state": "high"
      },
      "DI2": {
        "success": true,
        "state": "low"
      },
      "DI3": {
        "success": true,
        "state": "high"
      },
      "DI4": {
        "success": true,
        "state": "low"
      }
    }
  }
}

Attore Fonte Digitale

Interfaccia app

Interfaccia e funzionalità dell'app utente disponibili per la parte aperta del broker MQTT. Interfaccia semplificata per configurare e ricevere dati periferici. Il collegamento con il broker per quest'area non richiede dichiarazioni di fede.

Ottieni lo stato di tutti i pin di uscita digitali

Argomento requisito: digitalOutputs/Runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "READ"
  }
}
Argomento di risposta: digitalOutput/Runtime/out
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "DO1": {
        "success": true,
        "state": "low"
      },
      "DO2": {
        "success": true,
        "state": "high"
      },
      "DO3": {
        "success": true,
        "state": "high"
      },
      "DO4": {
        "success": true,
        "state": "low"
      },
      "DO5": {
        "success": true,
        "state": "low"
      },
      "DO6": {
        "success": true,
        "state": "low"
      },
      "DO7": {
        "success": true,
        "state": "low"
      },
      "DO8": {
        "success": true,
        "state": "low"
      }
    }
  }
}

Imposta lo stato di tutti i pin di uscita digitali

Argomento requisito: digitalOutputs/Runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskParams": {
      "DO1": {
        "action": "SET",
        "state": "low"
      },
      "DO2": {
        "action": "SET",
        "state": "high"
      },
      "DO3": {
        "action": "SET",
        "state": "high"
      },
      "DO4": {
        "action": "SET",
        "state": "low"
      },
      "DO5": {
        "action": "SET",
        "state": "low"
      },
      "DO6": {
        "action": "SET",
        "state": "low"
      },
      "DO7": {
        "action": "SET",
        "state": "low"
      },
      "DO8": {
        "action": "SET",
        "state": "low"
      }
    }
  }
}
Argomento di risposta: digitalOutput/Runtime/out
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "D01": {
        "success": true,
        "state": "low"
      },
      "D02": {
        "success": true,
        "state": "high"
      },
      "D03": {
        "success": true,
        "state": "high"
      },
      "D04": {
        "success": true,
        "state": "high"
      },
      "D05": {
        "success": true,
        "state": "high"
      },
      "D06": {
        "success": true,
        "state": "low"
      },
      "D07": {
        "success": true,
        "state": "low"
      },
      "D08": {
        "success": true,
        "state": "low"
      }
    }
  }
}

Note

Se il Busi2c-3 non è alimentato, otterremo i seguenti:

Oggetto: Paragrafo a lSpesa/Durata/da

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "DO1": {
        "success": false,
        "state": "DO\_not\_powered"
      },
      "DO2": {
        "success": false,
        "state": "DO\_not\_powered"
      },
      "DO3": {
        "success": false,
        "state": "DO\_not\_powered"
      },
      "DO4": {
        "success": false,
        "state": "DO\_not\_powered"
      },
      "DO5": {
        "success": false,
        "state": "DO\_not\_powered"
      },
      "DO6": {
        "success": false,
        "state": "DO\_not\_powered"
      },
      "DO7": {
        "success": false,
        "state": "DO\_not\_powered"
      },
      "DO8": {
        "success": false,
        "state": "DO\_not\_powered"
      }
    }
  }
}

Attore Joystick

Interfaccia app

Interfaccia e funzionalità dell'app utente disponibili per la parte aperta del broker MQTT. Interfaccia semplificata per configurare e ricevere dati periferici. Il collegamento con il broker per questo ambito non richiede un voto di fiducia.

Mettere tutti i perni del joystick in stato

Req-Topic: joystick/runtime/in

{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "action": "READ"
  }
}
Argomento risposta: Joystick//Runtime/Stato spento: Premuto/Rilasciato
{
  "id": "<TIMESTAMP>",
  "origin": "APP",
  "task": {
    "taskResult": {
      "JLEFT": {
        "success": true,
        "state": "pressed"
      },
      "JRIGHT": {
        "success": true,
        "state": "released"
      },
      "JUP": {
        "success": true,
        "state": "released"
      },
      "JDOWN": {
        "success": true,
        "state": "released"
      },
      "JCENTER": {
        "success": true,
        "state": "released"
      }
    }
  }
}

Pila Software Inclusa

AtlasCode.svg

Librerie hardware

[IMMAGINE PROVVISORIA]

Prodotti correlati

PA Nome Requisiti

Accessori

PA Nome Requisiti

Storia del documento

Versione Descrizione Data
SBADATAv0.1 Prima versione della scheda tecnica i.Cee² 03 nov 2026

i.Cee² sul campo

[IMMAGINE PROVVISORIA]