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:// |
http:// |
http:// |
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"
}
}
}
}
{
"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"
}
}
}
}
{
"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>"
}
}
}
}
{
"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
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
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.).
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
}
}
}
}
}
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 Argomento di risposta: sensore di temperatura/konfigurazione/uscita 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 Argomento di risposta: sensore di temperatura/konfigurazione/uscita
Visualizza temperatura e stato dell'allarme¶
- Unità: Unità di temperatura
- Attenzione: vero (innescato) o falso
Argomento richiesto: tempSensor/Runtime
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:
- L'attuatore TFT inizializza il display
- L'ultimo nastro disponibile è caricato
- Il primo schermo viene visualizzato
- Gli abbonamenti ai joystick saranno attivati
- 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
}
}
}
{
"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?"
}
\]
}
}
}
| 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 Argomento risposta: analoglnputs/config/out
Dati di esecuzione¶
Argomento: Ingressi analogici/Runtime/In.
Azione:
- LEGGI
- PAUSE (applicabile solo in modalità continua)
- RESUME (applicabile solo in modalità continua) Argomento di risposta: inserti analogici/runtime/disattivo
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\_>
}
}
}
}
{
"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\_>
}
}
}
}
{
"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"
}
}
}
}
{
"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"
}
}
}
}
{
"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
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
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"
}
}
}
}
{
"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"
}
}
{
"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¶
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]