test server/client setup
This commit is contained in:
parent
0bbfa2d49c
commit
c3fc682123
57
run.py
57
run.py
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
import get_specs
|
import get_specs
|
||||||
import traceback
|
import traceback
|
||||||
import logging
|
#import logging
|
||||||
import yaml
|
import yaml
|
||||||
from multiprocessing import Process, Manager, Pool, TimeoutError, active_children, log_to_stderr
|
from multiprocessing import Process, Manager, Pool, TimeoutError, active_children, log_to_stderr
|
||||||
from multiprocessing.pool import Pool
|
from multiprocessing.pool import Pool
|
||||||
@ -14,6 +14,9 @@ import sys
|
|||||||
import ur5_control
|
import ur5_control
|
||||||
import os
|
import os
|
||||||
import signal
|
import signal
|
||||||
|
import socket
|
||||||
|
from flask import Flask, render_template, request
|
||||||
|
import requests
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -55,6 +58,46 @@ def wait_for(val, name):
|
|||||||
while val is False:
|
while val is False:
|
||||||
sleep(0.1)
|
sleep(0.1)
|
||||||
|
|
||||||
|
def start_server_socket():
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
@app.route('/report_ip', methods=['POST'])
|
||||||
|
def report_ip():
|
||||||
|
client_ip = request.json.get('ip')
|
||||||
|
fprint(f"Received IP: {client_ip}")
|
||||||
|
# You can store or process the IP address as needed
|
||||||
|
return "IP Received", 200
|
||||||
|
|
||||||
|
app.run(host='0.0.0.0', port=5000)
|
||||||
|
|
||||||
|
def start_client_socket(server_ip):
|
||||||
|
app = Flask(__name__)
|
||||||
|
server_url = 'http://' + server_ip + ':5000/report_ip'
|
||||||
|
|
||||||
|
|
||||||
|
def send_ip_to_server(server_url, client_ip):
|
||||||
|
try:
|
||||||
|
response = requests.post(server_url, json={'ip': client_ip}, timeout=1)
|
||||||
|
fprint(f"Server response: {response.text}")
|
||||||
|
return True
|
||||||
|
except requests.exceptions.RequestException as e:
|
||||||
|
fprint(f"Error sending IP to server: {e}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
@app.route('/control_client', methods=['POST'])
|
||||||
|
def message_from_server():
|
||||||
|
# Handle message from server
|
||||||
|
data = request.json
|
||||||
|
fprint(f"Message from server: {data.get('message')}")
|
||||||
|
return "Message received", 200
|
||||||
|
|
||||||
|
while not send_ip_to_server(server_url, config["core"]["clientip"]):
|
||||||
|
sleep(1)
|
||||||
|
global vm_ready
|
||||||
|
vm_ready = True
|
||||||
|
app.run(host='0.0.0.0', port=6000)
|
||||||
|
|
||||||
|
|
||||||
def setup_server(pool):
|
def setup_server(pool):
|
||||||
# linux server setup
|
# linux server setup
|
||||||
global config
|
global config
|
||||||
@ -69,6 +112,10 @@ def setup_server(pool):
|
|||||||
#pool.apply_async(led_control.init, callback=led_start_callback)
|
#pool.apply_async(led_control.init, callback=led_start_callback)
|
||||||
#pool.apply_async(camera_control.init, callback=camera_start_callback)
|
#pool.apply_async(camera_control.init, callback=camera_start_callback)
|
||||||
#pool.apply_async(sensor_control.init, callback=sensor_start_callback)
|
#pool.apply_async(sensor_control.init, callback=sensor_start_callback)
|
||||||
|
p = Process(target=start_server_socket)
|
||||||
|
p.start()
|
||||||
|
|
||||||
|
# wait for user to confirm init on webpage
|
||||||
|
|
||||||
wait_for(led_ready, "LED controller initialization")
|
wait_for(led_ready, "LED controller initialization")
|
||||||
wait_for(sensor_ready, "Sensor Initialization")
|
wait_for(sensor_ready, "Sensor Initialization")
|
||||||
@ -92,13 +139,13 @@ def mainloop_server(pool):
|
|||||||
counter = counter + 1
|
counter = counter + 1
|
||||||
|
|
||||||
def run_loading_app():
|
def run_loading_app():
|
||||||
from flask import Flask, render_template
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
def index():
|
def index():
|
||||||
return render_template('index.html')
|
return render_template('index.html')
|
||||||
|
|
||||||
app.run(debug=True, use_reloader=False)
|
app.run(debug=True, use_reloader=False, port=7000)
|
||||||
|
|
||||||
def setup_client(pool):
|
def setup_client(pool):
|
||||||
# Windows client setup
|
# Windows client setup
|
||||||
@ -110,14 +157,14 @@ def setup_client(pool):
|
|||||||
|
|
||||||
firefox = webdriver.Firefox()
|
firefox = webdriver.Firefox()
|
||||||
firefox.fullscreen_window()
|
firefox.fullscreen_window()
|
||||||
firefox.get('http://localhost:5000')
|
firefox.get('http://localhost:7000')
|
||||||
|
|
||||||
# start Linux server VM
|
# start Linux server VM
|
||||||
if config["core"]["server"] == "Hyper-V":
|
if config["core"]["server"] == "Hyper-V":
|
||||||
run_cmd("Start-VM -Name Jukebox*") # any and all VMs starting with "Jukebox"
|
run_cmd("Start-VM -Name Jukebox*") # any and all VMs starting with "Jukebox"
|
||||||
|
|
||||||
# Wait for VM to start and be reachable over the network
|
# Wait for VM to start and be reachable over the network
|
||||||
#pool.apply_async(vm_control.init, callback=vm_start_callback)
|
pool.apply_async(start_client_socket)
|
||||||
|
|
||||||
wait_for(vm_ready, "VM Startup")
|
wait_for(vm_ready, "VM Startup")
|
||||||
p.terminate()
|
p.terminate()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user