Skip to content
Snippets Groups Projects
Commit 29cc1d1a authored by Adrien Chabod's avatar Adrien Chabod
Browse files

README

parent c30035e9
Branches
No related tags found
1 merge request!1MAJ BDD + Data commande fonctionnel
# Backend Python du projet Robotise
# Introduction
## Initialisation de la base de données
Le projet Robotise est découpé en trois parties, une application Android, une base de données et du code Python.
Dans le terminal linux :
Le code Python réalise toutes les interactions entre la base de données et l'application Android, mais il sert aussi au pilotage des différents composants de la machine.
`sudo mysql < /home/pi/python-backend/bdd/bdd.sql`
Ce dépôt contient uniquement la partie Python.
## Lancement des scripts Python
# Organisation du dépot
## Introduction
Ce dépôt est organisé de la même manière que le projet global, à savoir :
1. `une partie traitement SGBD (SQL dans notre cas)`
2. `une partie communication via l'utilisation de la technologie BLE`
3. `Une partie pilotage en utilisant les ports GPIO du Raspberry PI`
Afin de simplifier le code et permettre une meilleure maintenabilité/lisibilité, nous avons fait le choix de séparer les trois parties en trois bibliothèques de fonctions.
Puis chaque fonction est appelée dans le fichier main.py qui coordonne l'intégralité des opérations.
## Tree du projet
```
python-backend
├── README.md
├── bibliotheques
│ ├── ble
│ │ ├── advertisement.py
│ │ ├── conversion_UUID_BLE.txt
│ │ ├── gatt_server.py
│ │ └── main.py
│ ├── machine
│ │ └── script_flowmeter.py
│ └── sql
│ └── sql.py
├── main.py
├── requirements.txt
└── tests
└── test_sql.py
```
## Détail de chaque dossier
Chacune des trois parties est localisée dans le dossier `bibliotheques`.
Le dossier `BLE` regroupe toutes les fonctions nécessaires à la communication entre la Raspberry et l'application Android
Le dossier `sql` regroupe toutes les fonctions utilisées pour lire ou écrire dans la base de données.
Le dossier `machine` contient les différentes fonctions permettant le pilotage des éléments physiques de la machine (pompe, capteur, etc.).
# Explication de chaque partie
## Partie BLE
### Dossier rattaché : `python-backend/bibliotheques/ble`
### Organisation
Cette bibliothèque contient 3 fichiers :
1. `advertisement.py` : Contiens les classes nécessaires à l'émission des différents UUIDs après la création du serveur.
2. `gatt_server.py` : Contiens les classes nécessaires à la création du serveur et l'initialisation de ses différents paramètres.
3. `main.py` : Initialise le serveur BLE en utilisant les classes réalisées précédemment.
### Fonctionnement
TODO
## Partie SQL
### Dossier rattaché : `python-backend/bibliotheques/sql`
### Organisation
TODO
### Fonctionnement
TODO
## Partie pilotage machine
### Dossier rattaché : `python-backend/bibliotheques/machine`
### Organisation
TODO
### Fonctionnement
TODO
\ No newline at end of file
......@@ -62,15 +62,6 @@ def mysql_get_cocktail_composition_with_bec(id_cocktail):
connection.close()
return data
def mysql_get_ingredient_quantite_with_bec(id_cocktail):
connection = connect_db()
cursor = connection.cursor()
cursor.execute("SELECT cocktail.id_cocktail, nom_cocktail, nom_ingredient, quantite, id_bec FROM composition INNER JOIN cocktail ON composition.id_cocktail = cocktail.id_cocktail INNER JOIN ingredient ON composition.id_ingredient = ingredient.id_ingredient WHERE cocktail.id_cocktail = %s", (id_cocktail,))
data = cursor.fetchall()
cursor.close()
connection.close()
return data
def formalize_data_list(function):
initial_data = function()
new_data = "/".join([",".join([str(k) for k in x]) for x in initial_data])
......
from bibliotheques.ble.tx_rx import main as main_ble
from bibliotheques.ble.main import main as main_ble
#from .bibliotheques.machine.script_flowmeter import main as main_machine
if __name__=="__main__":
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment