|
@@ -12,6 +12,7 @@ from typing import List, Optional
|
|
import json
|
|
import json
|
|
# path
|
|
# path
|
|
import sys
|
|
import sys
|
|
|
|
+from pydantic.errors import ArbitraryTypeError
|
|
|
|
|
|
from sqlalchemy.sql.elements import False_
|
|
from sqlalchemy.sql.elements import False_
|
|
# time
|
|
# time
|
|
@@ -143,44 +144,79 @@ async def register(request: Request, form_data: OAuth2PasswordRequestForm = Depe
|
|
# 跳轉頁面至登入
|
|
# 跳轉頁面至登入
|
|
return templates.TemplateResponse(name='login.html', context={'request': request})
|
|
return templates.TemplateResponse(name='login.html', context={'request': request})
|
|
|
|
|
|
-@app.get('/tower_add_data', response_class=HTMLResponse)
|
|
|
|
-async def login(request: Request):
|
|
|
|
- return templates.TemplateResponse(name='tower_post.html', context={'request': request})
|
|
|
|
|
|
|
|
-@app.post('/tower_addData')
|
|
|
|
-async def register(request: Request,data : models.tower_data,key:str):
|
|
|
|
|
|
+@app.post('/record_tower/{tower_id}')
|
|
|
|
+async def record_tower(request: Request,tower_id:str,data : models.record_tower_data,key:str):
|
|
#data = models.tower_data(**await request.form())
|
|
#data = models.tower_data(**await request.form())
|
|
if key!="21232f297a57a5a743894a0e4a801fc3":
|
|
if key!="21232f297a57a5a743894a0e4a801fc3":
|
|
return {'msg':'no access'}
|
|
return {'msg':'no access'}
|
|
|
|
+ loc_dt = datetime.today()
|
|
|
|
+ loc_dt_format = loc_dt.strftime("%Y-%m-%d %H:%M:%S")
|
|
db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/Water_tower?charset=utf8mb4')
|
|
db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/Water_tower?charset=utf8mb4')
|
|
cmd ="SELECT * FROM device"
|
|
cmd ="SELECT * FROM device"
|
|
cmd2={}
|
|
cmd2={}
|
|
- check = 0
|
|
|
|
|
|
+ check = False
|
|
for row in db.query(cmd):
|
|
for row in db.query(cmd):
|
|
- if row['id']== data.device:
|
|
|
|
- check = 1
|
|
|
|
|
|
+ if row['id']== tower_id:
|
|
|
|
+ check = True
|
|
if check :
|
|
if check :
|
|
- for row in ['hotTemp','waterFlow','coldTemp','fanMotorCur','fanMotorSpeedFreq']:
|
|
|
|
- cmd = "cmd2['cmd'] = \"UPDATE `record_dcs` SET `value` = \"+str(data.DCS_{}) +\" WHERE `device_id` = '\"+data.device+\"' AND `key` = '{}'\"".format(row,row)
|
|
|
|
|
|
+ record_tower_dict = data.__dict__
|
|
|
|
+ keys = []
|
|
|
|
+ for key in record_tower_dict.keys():
|
|
|
|
+ keys.append(key)
|
|
|
|
+ for row in keys:
|
|
|
|
+ cmd = "cmd2['cmd'] = \"UPDATE `record_tower` SET `value` = \"+str(data.{}) +\",`time_stamp` = '\"+loc_dt_format +\"' WHERE `device_id` = '\"+tower_id+\"' AND `key` = '{}'\"".format(row,row)
|
|
exec(cmd)
|
|
exec(cmd)
|
|
- print(cmd2['cmd'])
|
|
|
|
- db.query(cmd2['cmd'])
|
|
|
|
- for row in ['reducer','waterFlow','wetTemp','coldTempData1','coldTempData2','staticPressure']:
|
|
|
|
- exec("cmd2['cmd'] = \"UPDATE `record_tower` SET `value` = \"+str(data.{}) +\" WHERE `device_id` = '\"+data.device+\"' AND `key` = '{}'\"".format(row,row))
|
|
|
|
- print(cmd2)
|
|
|
|
|
|
+ print(cmd)
|
|
db.query(cmd2['cmd'])
|
|
db.query(cmd2['cmd'])
|
|
- for row in ['ch01','ch02','ch03','ch04']:
|
|
|
|
- exec("cmd2['cmd'] = \"UPDATE `vibration` SET `DataValue` = \"+str(data.DataValue_{})+\",`CVIndex` = \"+str(data.CVIndex_{}) +\" WHERE `device_id` = '\"+data.device+\"' AND `channelName` = '{}'\"".format(row,row,row))
|
|
|
|
- print(cmd2)
|
|
|
|
- db.query(cmd2['cmd'])
|
|
|
|
- #exec("db['vibration'].update(dict(channelName={},device_id=data.device,DataValue=data.DataValue_{},CVIndex=data.CVIndex_{}),['channelName'],['device_id'])".format(row,row))
|
|
|
|
|
|
+ result={'msg':"success"}
|
|
|
|
+ else:
|
|
|
|
+ result = {'msg':"no device"}
|
|
|
|
+ return json.dumps(result,ensure_ascii=False)
|
|
|
|
|
|
|
|
+@app.post('/record_dcs/{tower_id}')
|
|
|
|
+async def record_dcs(request: Request,tower_id:str,data : models.record_dcs_data,key:str):
|
|
|
|
+ #data = models.tower_data(**await request.form())
|
|
|
|
+ if key!="21232f297a57a5a743894a0e4a801fc3":
|
|
|
|
+ return {'msg':'no access'}
|
|
|
|
+ loc_dt = datetime.today()
|
|
|
|
+ loc_dt_format = loc_dt.strftime("%Y-%m-%d %H:%M:%S")
|
|
|
|
+ db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/Water_tower?charset=utf8mb4')
|
|
|
|
+ cmd ="SELECT * FROM device"
|
|
|
|
+ cmd2={}
|
|
|
|
+ check = False
|
|
|
|
+ for row in db.query(cmd):
|
|
|
|
+ if row['id']== tower_id:
|
|
|
|
+ check = True
|
|
|
|
+ if check :
|
|
|
|
+ record_tower_dict = data.__dict__
|
|
|
|
+ keys = []
|
|
|
|
+ for key in record_tower_dict.keys():
|
|
|
|
+ keys.append(key)
|
|
|
|
+ for row in keys:
|
|
|
|
+ cmd = "cmd2['cmd'] = \"UPDATE `record_dcs` SET `value` = \"+str(data.{}) +\",`time_stamp` = '\"+loc_dt_format +\"' WHERE `device_id` = '\"+tower_id+\"' AND `key` = '{}'\"".format(row,row)
|
|
|
|
+ exec(cmd)
|
|
|
|
+ print(cmd)
|
|
|
|
+ db.query(cmd2['cmd'])
|
|
result={'msg':"success"}
|
|
result={'msg':"success"}
|
|
else:
|
|
else:
|
|
result = {'msg':"no device"}
|
|
result = {'msg':"no device"}
|
|
|
|
+ return json.dumps(result,ensure_ascii=False)
|
|
|
|
|
|
|
|
+@app.post('/record_diagnosis')
|
|
|
|
+async def record_dcs(request: Request,data : models.record_diagnosis_data,key:str):
|
|
|
|
+ #data = models.tower_data(**await request.form())
|
|
|
|
+ if key!="21232f297a57a5a743894a0e4a801fc3":
|
|
|
|
+ return {'msg':'no access'}
|
|
|
|
+ loc_dt = datetime.today()
|
|
|
|
+ loc_dt_format = loc_dt.strftime("%Y-%m-%d %H:%M:%S")
|
|
|
|
+ db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/Water_tower?charset=utf8mb4')
|
|
|
|
+ dict_tmp = data.__dict__
|
|
|
|
+ dict_tmp['createTime']=loc_dt_format
|
|
|
|
+ db['record_diagnosis'].update(dict(dict_tmp),['vibration_id'])
|
|
|
|
+ result={'msg':'success insert'}
|
|
return json.dumps(result,ensure_ascii=False)
|
|
return json.dumps(result,ensure_ascii=False)
|
|
-
|
|
|
|
|
|
+
|
|
@app.get('/add_tower')
|
|
@app.get('/add_tower')
|
|
async def home(request: Request, Authorize: AuthJWT = Depends()):
|
|
async def home(request: Request, Authorize: AuthJWT = Depends()):
|
|
return templates.TemplateResponse(name='add_tower.html', context={'request': request})
|
|
return templates.TemplateResponse(name='add_tower.html', context={'request': request})
|