Skip to content

progetto201/progetto201-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PROGETTO201-API

This is the backend api of the "progetto201" project.

Python requests test result: external requests

Sezioni

Introduzione

Gli script si occupano di gestire i dati provvenienti dalla frontend e di gestirli inserendo/aggiornando/rimuovendo dati sul database.

Guida all'uso

Importare in MySQL il database con tutte le tabelle con il file db100_100.sql

Posizionare il contenuto della cartella www nella cartella servita dal server web (per apache /var/www) e infine modificare le credenziali nel file credentials.ini per poter connettere PHP a MySQL

Descrizione

Per la documentazione di tutti gli script andare in questa pagina

Sviluppo e espansione

Aggiungere planimetrie

Per aggiungere planimetrie non e' necessario modificare righe di codice: basta inserire nella cartella delle planimetrie il documento svg e selezionarlo dall'interfaccia

Aggiungere colori dell'interfaccia

Attualmente non e' possibile aggiugere colori dell'interfaccia dall'interfaccia stessa: occorre aggiungere un record nella tabella t_colors del database.

Aggiungere/togliere label alla planimetria

E' possibile modificare i label direttamente dall'interfaccia nella pagina delle impostazioni

Aggiungere nuovi tipi di sensore al sistema

Per aggiungere nuovi sensori al sistema, oltre ad adattare lo script mqtt_manager, occorre aggiungere allo script /api/sensors/columnnames.php i nuovi tipi.

Esempio, alla prima versione l'api accetta un sensore, il tipo "0":

$nodetypes = array("0" => "t_type0_data");

Se si dovessero aggiungere due nuovi tipi occorre aggiungerli all'array in questo modo:

$nodetypes = array("0" => "t_type0_data", "1" => "t_type1_data", "2" => "t_type2_data");

Poi occorre anche aggiungere i nuovi tipi allo script /api/sensors/data.php:

  1. andare nella funzione getData(), e aggiungere uno/piu' elseif nel punto:
if ($nodetype === 0){
    $action_res = getDataType0($t_conn_res, $nodeid, $min_timestamp, $max_timestamp);
}
else{
    // errore: tipo non riconosciuto
    array_push($action_res['errors'], array('id' => 930,
                                            'htmlcode' => 422,
                                            'message' => "can't get data for this node type (not supported)"));
}

Ad esempio:

if ($nodetype === 0){
    $action_res = getDataType0($t_conn_res, $nodeid, $min_timestamp, $max_timestamp);
}
elseif ($nodetype === 1){
    $action_res = getDataType1($t_conn_res, $nodeid, $min_timestamp, $max_timestamp);
}
elseif ($nodetype === 2){
    $action_res = getDataType2($t_conn_res, $nodeid, $min_timestamp, $max_timestamp);
}
else{
    // errore: tipo non riconosciuto
    array_push($action_res['errors'], array('id' => 930,
                                            'htmlcode' => 422,
                                            'message' => "can't get data for this node type (not supported)"));
}
  1. Creare tante funzioni quanti sono i tipi prendendo come riferimento la funzione getDataType0()

E infine modificare lo script /api/sysinfos/rssi.php: aggiungere alla variabile:

/// Array with data tables
$data_tables = array("t_type0_data");

i nuovi tipi. Esempio:

/// Array with data tables
$data_tables = array("t_type0_data", "t_type1_data", "t_type2_data");

Requisiti

  • php
  • server web
  • mysql

Changelog

01_01 2020-05-10:
Primo commit

Autore

Zenaro Stefano

About

backend api of the "progetto201" project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published