123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- import threading
- from sanic import Sanic
- from sanic_cors import CORS, cross_origin
- from sanic import response
- from event_storage import EventStorage
- from utility import Utility
- from historical_data_storage import HistoricalDataStorage
- from feeding_statistics import FeedingStatistics
- from auto_feeding_line1 import AutoFeedingLine1
- from auto_feeding_line2 import AutoFeedingLine2
- from auto_charge import AutoCharge
- from alarm import Alarm
- from api_context import ApiContext
- from update_maintenance_info import UpdateMaintenanceInfo
- from auto_switch_device import AutoSwitchDevice
- from get_laliji_param import GetLalijiParam
- app = Sanic(__name__)
- CORS(app)
- gateway_storage = EventStorage()
- connector_config = gateway_storage.get_connector_config(read_write=0)
- Utility.start_connectors(connector_config)
- @app.route('/readRealText', methods=['POST'])
- async def read_point_data_text(request):
- list = request.json['pointList']
- dict = gateway_storage.get_real_data(list)
- point_list = gateway_storage.get_point_info(list)
- data_list = {}
- for info in point_list:
- data_list[info['io_point_name']] = str(dict["c"+str(info['serial_number'])]) + " " +str(info['unit'])
- return response.json(data_list)
- @app.route('/readReal', methods=['POST'])
- async def read_point_data(request):
- list = request.json['pointList']
- dict = gateway_storage.get_real_data(list)
- '''
- data_list = gateway_storage.get_point_info(list)
- for info in data_list:
- info['value'] = dict["c"+str(info['serial_number'])]
- '''
- return response.json(dict)
- @app.route('/api', methods=['POST'])
- async def read_statistics_data(request):
- if len(request.json) > 0:
- list = []
- for index in range(len(request.json)):
- api_object = request.json[index]['apiObject']
- parameter = request.json[index]['parameter']
- api = ApiContext()
- api.set_api_object(api_object)
- result = api.operation(parameter)
- list.append(result)
- data_json = Utility.data_encoder(list)
- return response.text(data_json)
- @app.route('/write',methods=['POST'])
- async def write_data(request):
- station_name = request.json["station_name"]
- command = request.json["command"]
- try:
- result = Utility.available_connectors[station_name].send_command(command)
- return response.json({'message': result})
- except Exception as e:
- print(station_name+"write[ERROR]:" + str(e))
- return response.json({'message': result})
- if __name__ == "__main__":
- '''
- # alarm1 = Alarm()
- # threading.Thread(target=alarm1.overrun_alarm).start()
- # alarm2 = Alarm()
- # threading.Thread(target=alarm2.displacement_alarm).start()
- historicalDataStorage = HistoricalDataStorage()
- threading.Thread(target=historicalDataStorage.run, daemon=True, name='historicalDataStorage').start()
- feedingStatistics = FeedingStatistics()
- threading.Thread(target=feedingStatistics.run, daemon=True, name='feedingStatistics').start()
- AutoFeedingLine1 = AutoFeedingLine1()
- AutoFeedingLine2 = AutoFeedingLine2()
- threading.Thread(target=AutoFeedingLine1.run, daemon=True, name='AutoFeedingLine1').start()
- threading.Thread(target=AutoFeedingLine2.run, daemon=True, name='AutoFeedingLine2').start()
- #autoUpdateMaintenanceInfo = UpdateMaintenanceInfo()
- #threading.Thread(target=autoUpdateMaintenanceInfo.update_info, daemon=True, name='UpdateMaintenanceInfo').start()
- #autoCharge = AutoCharge()
- #threading.Thread(target=autoCharge.run, daemon=True, name='autoCharge').start()
- # 自动开关水下云台灯
- threading.Thread(target=AutoSwitchDevice().run, daemon=True, name='AutoSwitchDevice').start()
- # 更新水下云台灯的状态(新增)
- # threading.Thread(target=AutoSwitchDevice().auto_update_device_status, daemon=True, name='AutoSwitchDevice').start()
- # 开关量综合报警的弹框提示
- alarm3 = Alarm()
- '''
- # alarm1 = Alarm()
- # threading.Thread(target=alarm1.overrun_alarm).start()
- # alarm2 = Alarm()
- # threading.Thread(target=alarm2.displacement_alarm).start()
- historicalDataStorage = HistoricalDataStorage(read_write=0)
- threading.Thread(target=historicalDataStorage.run, daemon=True, name='historicalDataStorage').start()
- threading.Thread(target=FeedingStatistics().run, daemon=True, name=FeedingStatistics).start()
-
- threading.Thread(target=AutoFeedingLine1().run, daemon=True, name=AutoFeedingLine1).start()
- threading.Thread(target=AutoFeedingLine2().run, daemon=True, name=AutoFeedingLine2).start()
- threading.Thread(target=UpdateMaintenanceInfo().update_info, daemon=True, name=UpdateMaintenanceInfo).start()
- #autoCharge = AutoCharge()
- #threading.Thread(target=autoCharge.run, daemon=True, name='autoCharge').start()
-
- # 自动开关水下云台灯
- threading.Thread(target=AutoSwitchDevice().run, daemon=True, name=AutoSwitchDevice).start()
- # 更新水下云台灯的状态(新增)
- # threading.Thread(target=AutoSwitchDevice().auto_update_device_status, daemon=True, name='AutoSwitchDevice').start()
- # 开关量综合报警的弹框提示
- alarm3 = Alarm()
- threading.Thread(target=Alarm().moxa_e1210_alarm, daemon=True, name=Alarm).start()
- # 实时更新拉力计的计算参数,存入redis
- threading.Thread(target=GetLalijiParam().run, daemon=True, name=GetLalijiParam).start()
-
- app.run(host="0.0.0.0", port=18080, workers=1)
|