Skip to content

Commit 137dc4e

Browse files
committed
adicao do arquivo central que contem a classe CommandCenter que contem todas as funcoes necessarias para o funcionamendo da SmartFarm
1 parent 1c0c6e4 commit 137dc4e

File tree

4 files changed

+91
-7
lines changed

4 files changed

+91
-7
lines changed

codigos_python/Adicionar.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import pandas as pd
22
import sqlalchemy
3-
import mysql.connector
3+
import mysql.connector
44

55
engine = sqlalchemy.create_engine('mysql+pymysql://u165471834_admin:admin@92.249.44.52/u165471834_smartfarmdb')
66

codigos_python/Central.py

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#Arquivo central para reunir as funcoes necessarias para serem aplicadas na smartfarm
2+
import mysql.connector
3+
import pandas as pd
4+
import sqlalchemy
5+
from sqlalchemy.orm import sessionmaker
6+
import time
7+
8+
9+
class ComandCenter():
10+
11+
def __init__(self,host_ip,user,password,database,tablename,tags):
12+
"""
13+
Construtor central da classe responsavel
14+
por iniciar as variaveis do codigo
15+
e iniciar conexao com a base de dados
16+
17+
Args:
18+
host_ip (str): ip do host da base de dados
19+
user (str): usuario para acessar a base de dados
20+
password (str): senha para acessar a base de dados
21+
database (str): nome da base de dados a ser acessada
22+
tablename (str): nome da tabela a ser modificada
23+
tags (dict): Dicionario dos sensores e valvulas do sistema
24+
"""
25+
self.__host = host_ip
26+
self.__user = user
27+
self.__pw = password
28+
self.__dbpath = database
29+
self._table_name = tablename
30+
self._db = mysql.connector.connect (
31+
host=self.__host,
32+
user= self.__user,
33+
password= self.__pw,
34+
database= self.__dbpath
35+
)
36+
self._cursor = self._db.cursor()
37+
#TODO:(testar funcionamento do addr)
38+
addr = 'mysql+pymysql://'+self.__user + ':' + self.__pw + "@" + self.__host + '/' + self.__dbpath
39+
self._engine = sqlalchemy.create_engine(addr)
40+
41+
def getData(self):
42+
"""
43+
Obtem dados da DB e faz print no console
44+
"""
45+
df_index = pd.read_sql_query('select * from {self._table_name}',self._engine,index_col='id')
46+
print(df_index)
47+
48+
def addData(self,data):
49+
#TODO: Adicionar o Lock.aquire() e Lock.release()
50+
str_cols = str_cols = ','.join(data.keys())
51+
str_values = []
52+
str_values.append([data[tag] for tag in data.keys()])
53+
sql = f'INSERT INTO {self._table_name} ({str_cols}) VALUES (%s, %s, %s, %s)'
54+
self._cursor.executemany(sql,str_values)
55+
print(self._cursor.rowcount, "Dados foram adicionados.")
56+
57+
def removeData(self):
58+
pass
59+
60+
def getValveState(self):
61+
pass
62+
63+
def controleValvula(self):
64+
pass

codigos_python/Remover.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
com = sql+J+ "'"
2424
mycursor.execute(com)
2525
teste_db.commit()
26-
26+
2727
print("Linhas removidas.")
2828

2929
a = "ALTER TABLE dados AUTO_INCREMENT = "

codigos_python/query_dados.py

+25-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,27 @@
1-
import pandas as pd
2-
import sqlalchemy
1+
# import pandas as pd
2+
# import sqlalchemy
33

4-
engine = sqlalchemy.create_engine('mysql+pymysql://u165471834_admin:admin@92.249.44.52/u165471834_smartfarmdb')
5-
df_index = pd.read_sql_query('select * from dados',engine,index_col='id')
6-
print(df_index)
4+
# engine = sqlalchemy.create_engine('mysql+pymysql://u165471834_admin:admin@92.249.44.52/u165471834_smartfarmdb')
5+
# df_index = pd.read_sql_query('select * from dados',engine,index_col='id')
6+
# print(df_index)
77

8+
9+
"""
10+
Testes para os codigos
11+
"""
12+
dict={
13+
'Sensor1': 1,
14+
'Sensor2': 2,
15+
'Senseor3': 3,
16+
'Valvula': 4
17+
}
18+
19+
val = [
20+
('1', '2', '3', '1')
21+
]
22+
print(dict)
23+
str_cols = ','.join(dict.keys())
24+
str_values=[]
25+
str_values.append([dict[tag] for tag in dict.keys()])
26+
print(len(str_values))
27+
print(len(val))

0 commit comments

Comments
 (0)