123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- import asyncio
- import get_config
- import json
- from get_opc_data import get_opc_data, point_data_to_arr, get_redis_conn
- from flask import Flask, request, render_template
- app = Flask(__name__)
- # route
- @app.route("/", methods=['GET', 'POST'])
- @app.route("/get/", methods=['GET', 'POST'])
- def get():
- try:
- # 1、获取请求参数
- # 矿名key
- sys_key = request.values.get('sys_key')
- # 自动化系统key
- sys_name = request.values.get('sys_name')
- # 2、参数判断
- if sys_key is None or len(sys_key) == 0 or sys_name is None or len(sys_name) == 0:
- return api_get_error("参数错误")
- except BaseException as e:
- print(f"异常,参数错误!")
- return api_get_error(e)
- # 3、开启服务
- # 3.1 获取opc点位arr
- opc_point_arr = get_config.get_opc_point_arr_conf(sys_key, sys_name)
- # 3.2 根据点位获取数据
- opc_sys_conf = get_config.get_opc_sys_conf(sys_key, sys_name)
- opc_data = asyncio.run(get_opc_data(opc_sys_conf.opc_server_url, opc_point_arr))
- # opc_data = get_opc_data(opc_sys_conf.opc_server_url, opc_point_arr)
- # 3.3 数据处理
- opc_json_data = get_config.get_opc_point_json_conf(sys_key, sys_name)
- if opc_data is None or isinstance(opc_data, str):
- return api_get_error("数据读取错误!请检查点位或服务配置!")
- else:
- # 接口数据处理
- json_data = point_data_to_arr(opc_json_data, opc_data)
- # 获取redis
- redis_conn = get_redis_conn()
- # 接口数据存入redis
- redis_key = f"{sys_key}_{sys_name}"
- json_str = json.dumps(json_data)
- redis_conn.set(str(redis_key), json_str)
- # 数据处理
- return json_data
- @app.route("/get_base_json/", methods=['GET', 'POST'])
- def get_base_json():
- try:
- # 1、获取请求参数
- # 矿名key
- sys_key = request.values.get('sys_key')
- # 自动化系统key
- sys_name = request.values.get('sys_name')
- # 2、参数判断
- if sys_key is None or len(sys_key) == 0 or sys_name is None or len(sys_name) == 0:
- return api_get_error("参数错误")
- except BaseException as e:
- print(f"异常,参数错误!")
- return api_get_error(e)
- opc_json_data = get_config.get_opc_point_json_conf(sys_key, sys_name)
- return opc_json_data
- @app.route("/get_point_arr/", methods=['GET', 'POST'])
- def get_point_arr():
- try:
- # 1、获取请求参数
- # 矿名key
- sys_key = request.values.get('sys_key')
- # 自动化系统key
- sys_name = request.values.get('sys_name')
- # 2、参数判断
- if sys_key is None or len(sys_key) == 0 or sys_name is None or len(sys_name) == 0:
- return api_get_error("参数错误")
- except BaseException as e:
- print(f"异常,参数错误!")
- return api_get_error(e)
- opc_point_arr = get_config.get_opc_point_arr_conf(sys_key, sys_name)
- return opc_point_arr
- def api_get_error(msg):
- return '{"code":-1, "msg":"' + msg + '"}'
- # 开启接口服务
- def run_api_server():
- config = get_config.get_base_conf()
- port = config.server_port
- app.run(
- host='0.0.0.0',
- port=port
- )
- if __name__ == "__main__":
- run_api_server()
|