Differenze tra le versioni di "Gruppo Meteo/RemoteProcedure"

Da raspibo.
Jump to navigation Jump to search
(Creata pagina con '= r-map implementation overview = Un elemento fondamentale per il concentramento di osservazioni e campionamenti è il BUS MQTT http://en.wikipedia.org/wiki/MQ_Telemetry_Tran...')
 
 
(54 versioni intermedie di 5 utenti non mostrate)
Riga 1: Riga 1:
 
= r-map implementation overview =
 
= r-map implementation overview =
  
Un elemento fondamentale per il concentramento di osservazioni e campionamenti è il BUS MQTT http://en.wikipedia.org/wiki/MQ_Telemetry_Transport .
+
=== Remote procedure supportate ===
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:
+
Ogni comando/risposta Jsonrpc sarebbe meglio rimanesse entro i 144 caratteri.
* 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.
+
==== configure ====
Tutte le operazioni che vengono richieste ai moduli, o che i moduli richiedono ad altri moduli sono rpc-json.
+
configura il modulo.
  
I moduli possono essere così caratterizzati dal trasporto supportato, se eseguono RPC, se richiedono RPC, se pubblicano su MQTT.
+
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
 +
* int[6] date: set date and time [2014,2,10,18,45,18]
 +
* long int thisnode: RF24Network node address
 +
* int channel: RF 24 channel
 +
* byte mac[6]= ethernet mac address; use (0,0,0,0,0,1) for master1, use (0,0,0,0,0,2) for master2
 +
* bool save: save configuration into EEPROM
  
I tre moduli prototipati in r-map sono coì demoninati e caratterizzati:
+
relativi a un sensore (aggiunge 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
  
{|class="wikitable"
+
==== prepare ====
|                  || att/pas        ||Seriale || TCP/IP || radio RF24Network || funzioni server
+
prepare sensors for successive read
|-
+
return waittime in ms; the time to wait before read the data from sensor
| Modulo Base      || attivo        || Si      || Si    || da svilupare      || Si
+
 
|-
+
parametri:
| Modulo master    || attivo/passivo || Si      || Si    || Si                || No
+
* char driver: driver locale del sensore
|-
+
* int node: RF24Network node
| Modulo satellite || passivo        || Si      || No    || Si                || No
+
* char type: driver remoto
|}
+
* int address: address I2C
 +
 
 +
==== prepandget ====
 +
get the measure from sensor
 +
 
 +
parametri:
 +
* char driver: driver locale del sensore
 +
* int node: RF24Network node
 +
* char type: driver remoto
 +
* int address: address I2C
 +
 
 +
==== getjson ====
 +
return json with btable and values
 +
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 incapsula 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}
 +
 
 +
==== togglepin ====
 +
Attuatore che accende/spegne uno o più pin.
 +
 
 +
parametri:
 +
* integer n: pin number (pins 4,5,6,7 are supported)
 +
* bool s: true=on; false=off
 +
 
 +
{"jsonrpc": "2.0", "method": "togglepin", "params": [{"n":4,"s":true},{"n":5,"s":false}], "id": 0}
 +
 
 +
==== sdrecovery ====
 +
Richiede il re-invio dei dati non trasmessi al server; senza parametri
 +
 
 +
  {"jsonrpc": "2.0", "method": "sdrecovery", "params": [], "id": 0}
 +
 
 +
==== reboot ====
 +
Richiede il riavvio della stazione
 +
 
 +
{"jsonrpc": "2.0", "method": "reboot", "params": [], "id": 0}

Versione attuale delle 20:10, 5 ott 2016

r-map implementation overview

Remote 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
  • int[6] date: set date and time [2014,2,10,18,45,18]
  • long int thisnode: RF24Network node address
  • int channel: RF 24 channel
  • byte mac[6]= ethernet mac address; use (0,0,0,0,0,1) for master1, use (0,0,0,0,0,2) for master2
  • bool save: save configuration into EEPROM

relativi a un sensore (aggiunge 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

prepare

prepare sensors for successive read return waittime in ms; the time to wait before read the data from sensor

parametri:

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

prepandget

get the measure from sensor

parametri:

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

getjson

return json with btable and values 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 incapsula 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}

togglepin

Attuatore che accende/spegne uno o più pin.

parametri:

  • integer n: pin number (pins 4,5,6,7 are supported)
  • bool s: true=on; false=off
{"jsonrpc": "2.0", "method": "togglepin", "params": [{"n":4,"s":true},{"n":5,"s":false}], "id": 0}

sdrecovery

Richiede il re-invio dei dati non trasmessi al server; senza parametri

{"jsonrpc": "2.0", "method": "sdrecovery", "params": [], "id": 0}

reboot

Richiede il riavvio della stazione

{"jsonrpc": "2.0", "method": "reboot", "params": [], "id": 0}