This repository was archived by the owner on Sep 15, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrun.py
More file actions
74 lines (60 loc) · 2.32 KB
/
run.py
File metadata and controls
74 lines (60 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# coding=utf-8
# author: Lan_zhijiang
# description: 启动ALR_Cloud的脚本
import sys
import threading
import argparse
import json
import socket
from main_system.log import AlrCloudLog
from network_communicator.connection_manager.websocket_server import AlrCloudWebsocketServer
sys.path.append("./network_communicator/connection_manager/")
import http_server
class AlrCloudRunInit():
def __init__(self):
self.basic_setting = json.load(open("./setting/cloud_setting/basic_setting.json", encoding="utf-8"))
self.log = AlrCloudLog()
self.ws_server = AlrCloudWebsocketServer(self.log)
# update host ip
self.basic_setting["hostIp"] = self.get_ip()
json.dump(self.basic_setting, open("./setting/cloud_setting/basic_setting.json", "w", encoding="utf-8"))
self.basic_setting = json.load(open("./setting/cloud_setting/basic_setting.json", encoding="utf-8"))
def get_ip(self):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
finally:
s.close()
return ip
def run(self):
"""
启动ALR_Cloud
:return:
"""
print("""
##################################
Hadream-AutoLearningRobotCloud
Author: Lan_zhijiang
##################################
Github:
https://github.com/AutoLearningRobotHadream/ALR_Cloud
E-mail:
lanzhijiang@foxmail.com
""")
self.log.add_log(1, "### New ALR_Cloud Log ###", is_print=False, is_period=False)
self.log.add_log(1, "RunInit: Start ALR_Cloud")
# 启动HTTP+WEBSOCKET服务器-并发线程 #
self.log.add_log(1, "RunInit: Start http and websocket server...")
http_server_thread = threading.Thread(target=http_server.run_flask, args=(self.log,))
websocket_server_thread = threading.Thread(target=self.ws_server.run_websocket_server, args=())
http_server_thread.start()
websocket_server_thread.start()
acri = AlrCloudRunInit()
parser = argparse.ArgumentParser()
parser.add_argument("-m", "--mode", default="normal")
args = parser.parse_args()
if args.mode == "normal":
acri.run()
else:
print("It's still not finished...")