mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
bind p2p connection to interface
This commit is contained in:
parent
24f41edb63
commit
4d3a0832d5
5 changed files with 47 additions and 19 deletions
|
@ -18,6 +18,11 @@ class DataFrameFactory:
|
|||
}
|
||||
|
||||
def __init__(self, config):
|
||||
print(config)
|
||||
print(config['STATION']['mycall'])
|
||||
print(config['STATION']['myssid'])
|
||||
print(config['STATION']['mygrid'])
|
||||
|
||||
self.myfullcall = f"{config['STATION']['mycall']}-{config['STATION']['myssid']}"
|
||||
self.mygrid = config['STATION']['mygrid']
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@ import command_arq_raw
|
|||
import command_message_send
|
||||
import event_manager
|
||||
import atexit
|
||||
from socket_interface import SocketInterfaceHandler
|
||||
|
||||
from message_system_db_manager import DatabaseManager
|
||||
from message_system_db_messages import DatabaseManagerMessages
|
||||
|
@ -328,6 +329,8 @@ def sock_states(sock):
|
|||
def stop_server():
|
||||
try:
|
||||
app.service_manager.modem_service.put("stop")
|
||||
app.socket_interface_manager.stop_servers()
|
||||
|
||||
if app.service_manager.modem:
|
||||
app.service_manager.modem.sd_input_stream.stop
|
||||
audio.sd._terminate()
|
||||
|
@ -358,6 +361,11 @@ if __name__ == "__main__":
|
|||
app.schedule_manager = ScheduleManager(app.MODEM_VERSION, app.config_manager, app.state_manager, app.event_manager)
|
||||
# start service manager
|
||||
app.service_manager = service_manager.SM(app)
|
||||
|
||||
|
||||
#app.socket_interface_manager = SocketInterfaceHandler(app.service_manager.modem, app.config_manager, app.state_manager, app.event_manager)
|
||||
|
||||
|
||||
# start modem service
|
||||
app.modem_service.put("start")
|
||||
# initialize database default values
|
||||
|
@ -373,4 +381,7 @@ if __name__ == "__main__":
|
|||
if not modemport:
|
||||
modemport = 5000
|
||||
|
||||
#app.socket_interface_manager.start_servers()
|
||||
|
||||
app.run(modemaddress, modemport)
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ class SM:
|
|||
self.state_manager = app.state_manager
|
||||
self.event_manager = app.event_manager
|
||||
self.schedule_manager = app.schedule_manager
|
||||
self.socket_interface_manager = SocketInterfaceHandler(self.config, self.state_manager, self.event_manager)
|
||||
self.socket_interface_manager = None
|
||||
|
||||
runner_thread = threading.Thread(
|
||||
target=self.runner, name="runner thread", daemon=True
|
||||
|
@ -33,8 +33,7 @@ class SM:
|
|||
self.config = self.app.config_manager.read()
|
||||
self.start_radio_manager()
|
||||
self.start_modem()
|
||||
|
||||
self.socket_interface_manager.start_servers()
|
||||
self.socket_interface_manager = SocketInterfaceHandler(self.modem, self.app.config_manager, self.state_manager, self.event_manager).start_servers()
|
||||
|
||||
elif cmd in ['stop'] and self.modem:
|
||||
self.stop_modem()
|
||||
|
|
|
@ -10,12 +10,15 @@ data_queue = Queue()
|
|||
|
||||
class CommandSocket(socketserver.BaseRequestHandler):
|
||||
#def __init__(self, request, client_address, server):
|
||||
def __init__(self, request, client_address, server, state_manager=None, event_manager=None):
|
||||
def __init__(self, request, client_address, server, modem=None, state_manager=None, event_manager=None, config_manager=None):
|
||||
self.state_manager = state_manager
|
||||
|
||||
self.event_manager = event_manager
|
||||
self.config_manager = config_manager
|
||||
self.modem = modem
|
||||
print(self.config_manager)
|
||||
self.logger = structlog.get_logger(type(self).__name__)
|
||||
|
||||
self.command_handler = SocketCommandHandler(request, self.state_manager)
|
||||
self.command_handler = SocketCommandHandler(request, self.modem, self.config_manager, self.state_manager, self.event_manager)
|
||||
|
||||
self.handlers = {
|
||||
'CONNECT': self.command_handler.handle_connect,
|
||||
|
@ -69,8 +72,11 @@ class CommandSocket(socketserver.BaseRequestHandler):
|
|||
|
||||
class DataSocket(socketserver.BaseRequestHandler):
|
||||
#def __init__(self, request, client_address, server):
|
||||
def __init__(self, request, client_address, server, state_manager=None, event_manager=None):
|
||||
def __init__(self, request, client_address, server, modem=None, state_manager=None, event_manager=None, config_manager=None):
|
||||
self.state_manager = state_manager
|
||||
self.event_manager = event_manager
|
||||
self.config_manager = config_manager
|
||||
self.modem = modem
|
||||
|
||||
self.logger = structlog.get_logger(type(self).__name__)
|
||||
|
||||
|
@ -120,8 +126,10 @@ class CustomThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServe
|
|||
self.RequestHandlerClass(request, client_address, self, **self.extra_args)
|
||||
|
||||
class SocketInterfaceHandler:
|
||||
def __init__(self, config, state_manager, event_manager):
|
||||
self.config = config
|
||||
def __init__(self, modem, config_manager, state_manager, event_manager):
|
||||
self.modem = modem
|
||||
self.config_manager = config_manager
|
||||
self.config = self.config_manager.read()
|
||||
self.state_manager = state_manager
|
||||
self.event_manager = event_manager
|
||||
self.logger = structlog.get_logger(type(self).__name__)
|
||||
|
@ -148,7 +156,7 @@ class SocketInterfaceHandler:
|
|||
self.log(f"Interfaces started")
|
||||
|
||||
def run_server(self, port, handler):
|
||||
with CustomThreadedTCPServer(('127.0.0.1', port), handler, state_manager=self.state_manager, event_manager=self.event_manager) as server:
|
||||
with CustomThreadedTCPServer(('127.0.0.1', port), handler, modem=self.modem, state_manager=self.state_manager, event_manager=self.event_manager, config_manager=self.config_manager) as server:
|
||||
self.log(f"Server started on port {port}")
|
||||
if port == self.command_port:
|
||||
self.command_server = server
|
||||
|
|
|
@ -2,30 +2,35 @@ from command_p2p_connection import P2PConnectionCommand
|
|||
|
||||
class SocketCommandHandler:
|
||||
|
||||
def __init__(self, request, state_manager):
|
||||
def __init__(self, request, modem, config_manager, state_manager, event_manager):
|
||||
self.request = request
|
||||
self.modem = modem
|
||||
self.config_manager = config_manager
|
||||
self.state_manager = state_manager
|
||||
|
||||
print(self.state_manager)
|
||||
|
||||
self.event_manager = event_manager
|
||||
|
||||
def send_response(self, message):
|
||||
self.request.sendall(message.encode())
|
||||
|
||||
|
||||
|
||||
def handle_connect(self, data):
|
||||
# Your existing connect logic
|
||||
self.send_response("OK\r\n")
|
||||
|
||||
|
||||
|
||||
print(self.modem)
|
||||
print(self.config_manager)
|
||||
print(self.state_manager)
|
||||
print(self.event_manager)
|
||||
|
||||
params = {
|
||||
'destination': "BB2BBB-2",
|
||||
'origin': "AA1AAA-1",
|
||||
}
|
||||
cmd = P2PConnectionCommand(self.config, self.iss_state_manager, self.iss_event_queue, params)
|
||||
session = cmd.run(self.iss_event_queue, self.iss_modem)
|
||||
cmd = P2PConnectionCommand(self.config_manager.read(), self.state_manager, self.event_manager, params)
|
||||
session = cmd.run(self.event_manager.queues, self.modem)
|
||||
if session.session_id:
|
||||
self.iss_state_manager.register_p2p_connection_session(session)
|
||||
self.state_manager.register_p2p_connection_session(session)
|
||||
session.connect()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue