Differenze tra le versioni di "Gruppo Meteo/RemoteProcedure"
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 14: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