Differenze tra le versioni di "Gruppo Meteo/RemoteProcedure"

Da raspibo.
Jump to navigation Jump to search
Riga 1: Riga 1:
 
= r-map implementation overview =
 
= r-map implementation overview =
 +
 +
=== MQTT e Json-rpc ===
  
 
Un elemento fondamentale per il concentramento di osservazioni e campionamenti è il BUS MQTT http://en.wikipedia.org/wiki/MQ_Telemetry_Transport .
 
Un elemento fondamentale per il concentramento di osservazioni e campionamenti è il BUS MQTT http://en.wikipedia.org/wiki/MQ_Telemetry_Transport .
Riga 25: Riga 27:
 
| Modulo satellite  || passivo        || Si      || No    || Si                || No              || No
 
| Modulo satellite  || passivo        || Si      || No    || Si                || No              || No
 
|}
 
|}
 +
 +
 +
=== procedure supportate ===
 +
Ogni comando/risposta Jsonrpc sarebbe meglio rimanesse entro i 144 caratteri.
 +
 +
==== configure ====
 +
configura il modulo.
 +
 +
parametri:
 +
* bool reset: riporta le configurazioni ai valori di default
 +
* char mqttrootpath: prima parte del path di pubblicazione su MQTT
 +
* int mqttsampletime: intervallo tra le minure in secondi
 +
* char mqttserver:  server MQTT
 +
* char mqttuser: MQTT user
 +
* char mqttpassword: MQTT password
 +
* int[16] key: AES key
 +
* int[16] iv: AES CBC iv
 +
* char ntpserver:  server MQTT
 +
* bool save: salva le configurazioni permanentemente
 +
 +
relativi a un sensore:
 +
* char mqttpath: seconda parte del path di pubblicazione su MQTT
 +
* char driver: driver locale del sensore
 +
* int node: RF24Network node
 +
* char type: driver remoto
 +
* int address: address I2C
 +
 +
==== getvalues ====
 +
torna i valori di una o più osservazione/campionamento.
 +
 +
parametri:
 +
* char driver: driver locale del sensore
 +
* int node: RF24Network node
 +
* char type: driver remoto
 +
* int address: address I2C
 +
 +
==== rf24rpc ====
 +
Esegue una procedura remota su un altro nodo tramite trasporto RF24Network.
 +
In pratica incapula una RPC in una RPC.
 +
* node": nodo su cui eseguire la remote call procedure
 +
*  tutti parametri standard di una json-rpc del tipo
 +
"jsonrpc":"2.0","method":"configure","params":{"reset":true},"id":0},"id":0
 +
 +
==== toggleled ====
 +
Attuatore che accende e spegne un led.
 +
 +
parametri:
 +
bool status: true=on; false=off

Versione delle 15:37, 13 giu 2014

r-map implementation overview

MQTT e Json-rpc

Un elemento fondamentale per il concentramento di osservazioni e campionamenti è il BUS MQTT http://en.wikipedia.org/wiki/MQ_Telemetry_Transport . E' su questo che vengono convogliati tutti i dati dei sensori; r-map definisce uno standard per pubblicare i dati nel root path rmap.

I moduli propedeutici alla pubblicazione MQTT sono connessi tramite 3 differenti trasporti:

  • porta seriale (USB)
  • TCP/IP
  • radiofrequenza con modulo RF24Network

Sopra questi trasporti transitano remote procedure call in formato Json, rpc-json versione 2.0 http://en.wikipedia.org/wiki/JSON-RPC. Tutte le operazioni che vengono richieste ai moduli, o che i moduli richiedono ad altri moduli sono rpc-json.

I moduli possono essere così caratterizzati dal trasporto supportato, se eseguono RPC, se richiedono RPC, se pubblicano su MQTT.

I tre moduli prototipati in r-map sono coì demoninati e caratterizzati:

att/pas Seriale TCP/IP radio RF24Network pubblish on MQTT funzioni server
Modulo Base attivo Si Si da svilupare Si Si
Modulo master attivo/passivo Si Si Si Si No
Modulo satellite passivo Si No Si No No


procedure supportate

Ogni comando/risposta Jsonrpc sarebbe meglio rimanesse entro i 144 caratteri.

configure

configura il modulo.

parametri:

  • bool reset: riporta le configurazioni ai valori di default
  • char mqttrootpath: prima parte del path di pubblicazione su MQTT
  • int mqttsampletime: intervallo tra le minure in secondi
  • char mqttserver: server MQTT
  • char mqttuser: MQTT user
  • char mqttpassword: MQTT password
  • int[16] key: AES key
  • int[16] iv: AES CBC iv
  • char ntpserver: server MQTT
  • bool save: salva le configurazioni permanentemente

relativi a un sensore:

  • char mqttpath: seconda parte del path di pubblicazione su MQTT
  • char driver: driver locale del sensore
  • int node: RF24Network node
  • char type: driver remoto
  • int address: address I2C

getvalues

torna i valori di una o più osservazione/campionamento.

parametri:

  • char driver: driver locale del sensore
  • int node: RF24Network node
  • char type: driver remoto
  • int address: address I2C

rf24rpc

Esegue una procedura remota su un altro nodo tramite trasporto RF24Network. In pratica incapula una RPC in una RPC.

  • node": nodo su cui eseguire la remote call procedure
  • tutti parametri standard di una json-rpc del tipo
"jsonrpc":"2.0","method":"configure","params":{"reset":true},"id":0},"id":0

toggleled

Attuatore che accende e spegne un led.

parametri: bool status: true=on; false=off