Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

connected mode via socket interface #865

Draft
wants to merge 32 commits into
base: develop
Choose a base branch
from
Draft

Conversation

DJ2LS
Copy link
Owner

@DJ2LS DJ2LS commented Jan 22, 2025

This PR contains a socket interface and a connected mode ( in development ). It is under development and not working, yet. The release date is unknown. This PR should help tracking progress and getting a better feeling and understanding of this feature.

@DJ2LS DJ2LS added enhancement New feature or request help wanted Extra attention is needed ARQ ARQ related problem modem feature request TODO development labels Jan 22, 2025
@DJ2LS DJ2LS linked an issue Jan 22, 2025 that may be closed by this pull request
@DJ2LS DJ2LS marked this pull request as draft January 22, 2025 08:57
…l as the reference to socket_interface_manager. Not sure if intention, but nothing was returned prior on line 69 of service_manager.py

Started work to store some info we will receive from CMD client. Not sure where to store this data yet. We will need to make an array of several callsigns the client will listen for, and add an exception for them within the "is_frame_for_me" method in frame_handler.py.

Before, all instances of socket_interface_manager were None within the actual command handlers, and it's created P2PSessions, as nothing was passed for it. When I passed the SocketInterfaceHandler to the CommandSocket as the socket_interface_manager, it was still invalid to use within P2PSessions because it was referencing self.socket_interface_manager.command_server as a CustomThreadedTCPServer, and not a CommandSocket type, so the command_handler was an invalid reference.
Adding the hasattr seems to make sure the command_handler is accessible. Not very sure about this solution, but I can now access the command_handler methods from within each session using self.socket_interface_manager.command_server.command_handler.

When connecting to another station using a "CONNECT" command in the command socket, the other station will not reply to the P2P_CONNECTION_CONNECT packet unless lines 221/222 are present within the connected_irs method. Not sure if this is intentional, or if this was only partially complete due to a move to use an ARQ connection. For now the connection command still calls P2PConnectionCommand, so need to find out when ARQ comes into play.
@DJ2LS
Copy link
Owner Author

DJ2LS commented Jan 25, 2025

@modernham i suggest before working on specific features like the callsign stuff, we should maybe ensure, the basic transmission is working. So just sending data to a specific callsign, provided bis CONNECT command. Additional stuff like ignoring not registered callsign could be added afterwards.

@DJ2LS
Copy link
Owner Author

DJ2LS commented Jan 25, 2025

Regarding ARQ inside the connection- my idea was, sending single small data bursts, acknowledging them via ACK burst. As soon as we have data, which doesn't fit into a single burst, we are calling the existing ARQ protocol also used for message transmission, which is doing then the entire work.

By doing it like this, I wanted to have a trade off between reliability and efficiency for smaller data, but also having a reliable protocol for bigger data.

…ke sure the handlers are accessible.

Started work on getting the client to accept several callsigns as connection methods, and passing the correct connecting one to the receiving client.

For now, storing some variables that need used later within the SocketInterfaceHandler.
@DJ2LS
Copy link
Owner Author

DJ2LS commented Jan 29, 2025

Hi, I merged changes from develop into this branch - so don't forget doing a git pull before committing for avoiding issues :-)

DJ2LS and others added 12 commits January 29, 2025 08:22
…ke sure the handlers are accessible.

Started work on getting the client to accept several callsigns as connection methods, and passing the correct connecting one to the receiving client.

For now, storing some variables that need used later within the SocketInterfaceHandler.
…ats working for now is catching command socket for IRS and ISS. Pushing data on ISS side to data socket is working as well. But we are still trying to get data on IRS.
…nected-mode

# Conflicts:
#	freedata_server/p2p_connection.py
#	freedata_server/socket_interface_commands.py
…ats working for now is catching command socket for IRS and ISS. Pushing data on ISS side to data socket is working as well. But we are still trying to get data on IRS.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ARQ ARQ related problem development enhancement New feature or request feature request help wanted Extra attention is needed modem TODO
Projects
Status: In progress
Development

Successfully merging this pull request may close these issues.

[Feature Request]: connected mode for Winlink out of the box support
3 participants